56 lines
2.7 KiB
Markdown
56 lines
2.7 KiB
Markdown
|
|
# Onboarding concept cards
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Status: Current
|
|||
|
|
Owner: _null
|
|||
|
|
Last reviewed: 2026-08-18
|
|||
|
|
Governs: docs/design/dist/** — the onboarding concept set and what it is for
|
|||
|
|
Review trigger: Any concept set added or replaced here; the onboarding artwork
|
|||
|
|
in issue #29 landing in the app
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
> **These are references, not assets.** Nothing in this folder ships in the APK.
|
|||
|
|
> They are the decided *direction* for onboarding, drawn from
|
|||
|
|
> [`../BRAND_GUIDE.md`](../BRAND_GUIDE.md) §22's master prompt, and the vectors
|
|||
|
|
> that eventually ship are drawn *from* them.
|
|||
|
|
|
|||
|
|
Seven cards, one per onboarding step, numbered to match the steps in
|
|||
|
|
`app/src/main/kotlin/dev/privacyllc/period/feature/onboarding/OnboardingScreen.kt`:
|
|||
|
|
|
|||
|
|
| File | Step | Composable |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `onboarding-01-welcome.webp` | 1 | `Welcome` |
|
|||
|
|
| `onboarding-02-last-period-start.webp` | 2 | `LastPeriod` |
|
|||
|
|
| `onboarding-03-period-end.webp` | 3 | `PeriodEnd` |
|
|||
|
|
| `onboarding-04-previous-history.webp` | 4 | `PreviousHistory` |
|
|||
|
|
| `onboarding-05-privacy-promise.webp` | 5 | `PrivacyPromise` |
|
|||
|
|
| `onboarding-06-reminder-privacy.webp` | 6 | `NotificationPrivacyStep` |
|
|||
|
|
| `onboarding-07-first-forecast.webp` | 7 | `FirstForecast` |
|
|||
|
|
|
|||
|
|
## Why they are not the shipping assets
|
|||
|
|
|
|||
|
|
Recorded here so nobody drops them into `res/drawable` and calls #29 done. The
|
|||
|
|
full argument, with evidence, is in the comment on that issue.
|
|||
|
|
|
|||
|
|
- **They are raster.** The set is 340 KB as WebP; it was 12 MB as PNG, against a
|
|||
|
|
1.9 MB release APK. §42 asks for Compose vector paths or `VectorDrawable`.
|
|||
|
|
- **The titles and subtitles are painted into the pixels**, and the app already
|
|||
|
|
renders all seven itself through `Heading(...)`. Used as-is, every title
|
|||
|
|
appears twice — and baked text cannot be translated, cannot scale with the
|
|||
|
|
user's font size, and is invisible to TalkBack.
|
|||
|
|
- **They are light mode only.** `BRAND_GUIDE.md` §22 names the dark palette, and
|
|||
|
|
[`../README.md`](../README.md) requires a light/dark preview pair per screen.
|
|||
|
|
A vector set recolours from theme tokens; a raster set has to be drawn twice.
|
|||
|
|
- **Card 7 shows a fertile window and ovulation**, which the first-forecast
|
|||
|
|
screen deliberately does not — on a fresh install it shows confidence Low and
|
|||
|
|
Today reads "Not enough history to estimate". That conflict is a product
|
|||
|
|
decision to settle before anything is drawn, not a detail to fix in the art.
|
|||
|
|
|
|||
|
|
## Provenance and format
|
|||
|
|
|
|||
|
|
Generated from `BRAND_GUIDE.md` §22's master prompt, which is the workflow that
|
|||
|
|
section exists to describe. Converted from the delivered PNGs to WebP at their
|
|||
|
|
original 1086×1448 — same resolution, about a fortieth of the bytes, and the
|
|||
|
|
same format [`../../data/img/`](../../data/img/) already uses for the marks
|
|||
|
|
privacyllc.dev renders.
|