103 lines
5.2 KiB
Markdown
103 lines
5.2 KiB
Markdown
# App screenshots
|
||
|
||
```
|
||
Status: Current
|
||
Owner: _null
|
||
Last reviewed: 2026-08-20
|
||
Governs: docs/design/screenshots/** — the captured app screenshots and the state
|
||
they were taken from
|
||
Review trigger: Any screen in the set changing enough that its shot is no longer
|
||
what the app looks like; any new screen worth showing
|
||
```
|
||
|
||
> Eleven frames of the real app, captured from a **seeded demo history**. They
|
||
> exist for the product page on privacyllc.dev, where every other Privacy LLC
|
||
> product already has a captioned portrait gallery and this one has no page at
|
||
> all. The same frames are the phone screenshots [issue #32](https://dream.scheller.ltd/null/Privacy-Period-Tracker/issues/32)
|
||
> needs for the Play listing.
|
||
|
||
## The set, in gallery order
|
||
|
||
| File | Screen | Suggested caption |
|
||
| --- | --- | --- |
|
||
| `01-onboarding-welcome.webp` | Onboarding, step 1 | Full-bleed artwork and a plain promise |
|
||
| `02-onboarding-last-period.webp` | Onboarding, step 2 | One date to begin with |
|
||
| `03-onboarding-period-end.webp` | Onboarding, step 3 | "Still going" and "I'm not sure" are real answers |
|
||
| `04-onboarding-history.webp` | Onboarding, step 4 | Earlier dates make the first forecast better |
|
||
| `05-privacy-promise.webp` | Onboarding, step 5 | Your cycle belongs to you |
|
||
| `06-reminder-privacy.webp` | Onboarding, step 6 | You choose what a reminder says |
|
||
| `07-first-forecast.webp` | Onboarding, step 7 | A window and a confidence, never a bare date |
|
||
| `08-today-forecast.webp` | Today | The forecast, and what it will not claim |
|
||
| `09-calendar.webp` | Calendar | States that differ in shape, not colour |
|
||
| `10-insights.webp` | Insights | Learned from your history, and says how much |
|
||
| `11-settings-privacy.webp` | Settings | Delete my data, and it means it |
|
||
|
||
The site's other product pages run six or seven images. If the gallery takes
|
||
seven, **05, 06, 08, 09, 10, 11 and 01** are the set — those carry the argument.
|
||
02, 03 and 04 are the data-entry steps and are the first to drop.
|
||
|
||
## The state they were captured from
|
||
|
||
Six invented period starts — **8 March, 5 April, 3 May, 31 May, 28 June and
|
||
26 July 2026** — giving cycle gaps of 28, 29, 28, 28 and 29 days. On a device
|
||
clock of 19 August 2026 that is cycle day 25, and the engine earns *period likely
|
||
in 4 days, most likely 23 August, expected 22–24 August, confidence High*.
|
||
|
||
**Nothing here is real data.** That is not a nicety: a screenshot of a period
|
||
tracker is a screenshot of health data, and #32 says so in as many words.
|
||
|
||
Today was reshot once. The first seeding put the capture day *on* the estimated
|
||
ovulation date, so the hero read "estimated ovulation in 0 days" — true, and a
|
||
poor lead for a gallery. Shifting the history ten days earlier gives the period
|
||
countdown instead, which is the screen the app is built around.
|
||
|
||
## Reproducing them
|
||
|
||
Light mode throughout: it matches the site's light aesthetic and keeps the set
|
||
visually consistent. #44 is fixed now, so dark mode is no longer avoided because
|
||
of a known wrong Welcome illustration.
|
||
|
||
The status bar is SysUI demo mode, so all eleven are identical — 9:30, wifi, full
|
||
battery, nothing else:
|
||
|
||
```bash
|
||
adb shell settings put global sysui_demo_allowed 1
|
||
adb shell am broadcast -a com.android.systemui.demo -e command enter
|
||
adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 0930
|
||
adb shell am broadcast -a com.android.systemui.demo -e command network -e wifi show -e level 4 -e fully true
|
||
adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile hide
|
||
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 -e plugged false
|
||
# … capture …
|
||
adb shell am broadcast -a com.android.systemui.demo -e command exit
|
||
```
|
||
|
||
Seeding is faster through the date picker's **text input mode** than by tapping
|
||
across months: its toggle is `content-desc="Switch to text input mode"`, and the
|
||
field then accepts `MM/DD/YYYY` typed straight in.
|
||
|
||
## What must be true of every frame
|
||
|
||
Each is a rule #32 states, and each was checked on this set rather than assumed:
|
||
|
||
- **No real history.** Seed deliberately, every time.
|
||
- **Nothing in the status bar but the demo furniture.** A reminder visible in a
|
||
published screenshot is a privacy failure at scale — the top strip of all
|
||
eleven was cropped and compared in one image to confirm it.
|
||
- **No medical, diagnostic or contraceptive claim.** The not-contraception line
|
||
is visible in `08` and `09`, which is the honest direction to err in.
|
||
- **PRODUCT_PLAN.md §42's forbidden list applies**, as it does to all artwork.
|
||
|
||
## Format
|
||
|
||
WebP quality 86 at native 1080 × 2400, 520 KB for the set. The Play-ready phone
|
||
exports are top-cropped PNGs in
|
||
[`../brand/play-store/phone-screenshots/`](../brand/play-store/phone-screenshots/)
|
||
so they keep the real app UI while meeting Play's aspect-ratio rule. Play's own
|
||
required sizes and counts are **confirmed in the Play Console at submission
|
||
time**, not from this file — the same rule the security checklist applies to the
|
||
target-API deadline.
|
||
|
||
These are not the three marks privacyllc.dev renders for the project card. Those
|
||
live in [`../../data/img/`](../../data/img/) under fixed names, and that folder
|
||
says plainly that screenshots do not belong in it.
|