# 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.
