|
|
@ -81,7 +81,7 @@ Where the two disagree, `PRODUCT_PLAN.md` is the specification and
|
|||
| `docs/planning/` | `PRODUCT_PLAN` — the V1 specification. `PROJECT_PLAN` — the vision. Neither is the schedule; that is the tracker. |
|
||||
| `docs/qa/` | `ClaudeQAPlan` (playbook, passes A–H), `ClaudeQACoverage` (what each pass reached), `ClaudeReport` (the verdict) |
|
||||
| `docs/architecture/` | modules, boundaries, data shapes, the migration table; `GUARDS.md`; `githooks/README.md` |
|
||||
| `docs/design/` | `README.md` — tone, the four rules that settle arguments, and which specification sections own each surface. `BRAND_GUIDE.md` — the owner-supplied visual identity, which outranks `PRODUCT_PLAN.md` §39 on colour. `brand/` — the owner's source art, including the emblem the launcher icon is cut from. `dist/` — the onboarding illustration sources, and `splash.webp`, the lockup `docs/data/img/logo.webp` and `banner.webp` are generated from. `screenshots/` — captured app screenshots, for the product page on privacyllc.dev and the Play listing |
|
||||
| `docs/design/` | `README.md` — tone, the four rules that settle arguments, and which specification sections own each surface. `BRAND_GUIDE.md` — the owner-supplied visual identity, which outranks `PRODUCT_PLAN.md` §39 on colour. `brand/` — the owner's source art, including the emblem the launcher icon is cut from and the Play listing exports. `dist/` — the onboarding illustration sources, and `splash.webp`, the lockup `docs/data/img/logo.webp` and `banner.webp` are generated from. `screenshots/` — captured app screenshots, for the product page on privacyllc.dev and the Play listing |
|
||||
| `docs/security/` | `SECURITY` — threat model, the advertising boundary, logging rules. `SECURITY_CHECKLIST` — the pre-release list |
|
||||
| `docs/history/` | `DEVELOPMENT_LOG` (dated, append-only), `HISTORY` (decisions and their reasons), `BATCH_LEDGER` (archived) |
|
||||
| `docs/data/` | `README.md` — the rule, and why this folder cannot be exempted. `img/README.md` — the three required names, their dimensions and the 512 KB ceiling. `img/icon.webp`, `img/logo.webp`, `img/banner.webp` — the marks privacyllc.dev renders |
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
```
|
||||
Status: Current
|
||||
Owner: _null
|
||||
Last reviewed: 2026-08-18
|
||||
Last reviewed: 2026-08-20
|
||||
Governs: the visual identity — palette, logo, iconography, typography, tone of artwork
|
||||
Review trigger: A rebrand; any new artwork; any change to the palette or to the
|
||||
logo, and in particular any change to the colours the calendar
|
||||
|
|
@ -782,4 +782,18 @@ Visually:
|
|||
+ **rose/plum botanical accent**
|
||||
+ **soft lavender/pink gradients**
|
||||
|
||||
That combination is the core visual identity of **Privacy: Period Tracker**.
|
||||
That combination is the core visual identity of **Privacy: Period Tracker**.
|
||||
|
||||
---
|
||||
|
||||
# 25. Google Play Listing Assets
|
||||
|
||||
The Play listing exports live in [`brand/play-store/`](brand/play-store/). They
|
||||
derive from this guide rather than adding a new campaign direction: the feature
|
||||
graphic uses the existing lockup composition, the Play icon uses the existing
|
||||
app-card mark, and the screenshots come from seeded demo data.
|
||||
|
||||
The same claim discipline applies here as inside the app. Listing artwork may
|
||||
say the app predicts a period window and protects privacy; it must not imply a
|
||||
medical diagnosis, contraception, certainty about fertility, or real user
|
||||
history.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
```
|
||||
Status: Current
|
||||
Owner: _null
|
||||
Last reviewed: 2026-08-18
|
||||
Last reviewed: 2026-08-20
|
||||
Governs: docs/design/**, core/designsystem/**, app/src/main/kotlin/**,
|
||||
app/src/main/res/values/** — the design tokens, every user-facing
|
||||
screen, and the product's tone and interface copy
|
||||
|
|
@ -262,7 +262,7 @@ shipping in the app. [`dist/`](dist/) holds the sources and the reasoning — no
|
|||
text painted into the pixels, no step numbers, and a forecast illustration that
|
||||
names no fields so it cannot contradict the live one beside it.
|
||||
|
||||
The art still outstanding is tracked as issues #31, #32 and #44, not listed here.
|
||||
Remaining artwork is tracked in the issue tracker, not listed here.
|
||||
|
||||
**Screenshots of the running app live in [`screenshots/`](screenshots/)** —
|
||||
eleven frames from a seeded demo history, for the product page on privacyllc.dev
|
||||
|
|
@ -270,6 +270,11 @@ and for the Play listing. Its README carries the seeded dates, the capture
|
|||
recipe, and the rules every frame has to satisfy; the first of those is that a
|
||||
screenshot of a period tracker is a screenshot of health data.
|
||||
|
||||
**The Play listing exports live in [`brand/play-store/`](brand/play-store/)** —
|
||||
the required feature graphic, Play icon and phone screenshots. They are PNG
|
||||
exports from the existing brand lockup and seeded screenshots, with Google's
|
||||
current dimensions checked on 2026-08-20 and recorded beside the files.
|
||||
|
||||
The visual language is deliberately narrow — **overlapping circular forms** and
|
||||
nothing else. §42's forbidden list (blood drops, tampons, pads, uterus imagery,
|
||||
gender symbols, anatomy) is a product decision rather than squeamishness: this
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
# Google Play listing assets
|
||||
|
||||
```
|
||||
Status: Current
|
||||
Owner: _null
|
||||
Last reviewed: 2026-08-20
|
||||
Governs: docs/design/brand/play-store/**
|
||||
Review trigger: Any Google Play preview asset requirement changing; any change
|
||||
to the source screenshots, brand lockup or declared form factors
|
||||
```
|
||||
|
||||
These are the upload-ready Google Play preview assets for issue #32. The source
|
||||
of truth for requirements is
|
||||
[Google's Play Console Help](https://support.google.com/googleplay/android-developer/answer/9866151?hl=en),
|
||||
checked on 2026-08-20:
|
||||
|
||||
- Feature graphic: `1024 x 500`, JPEG or 24-bit PNG, no alpha.
|
||||
- App icon: `512 x 512`, 32-bit PNG with alpha, max 1024 KB.
|
||||
- Screenshots: at least two, up to eight per device type, JPEG or 24-bit PNG,
|
||||
no alpha, each side `320..3840` px, and the long side no more than twice the
|
||||
short side.
|
||||
- Apps are more eligible for recommendation surfaces with at least four phone
|
||||
screenshots at `1080 x 1920` or larger in `9:16`.
|
||||
|
||||
This app declares no Wear OS, TV, Automotive or XR surface in its manifest, so
|
||||
the committed upload set is the phone listing set plus the required feature
|
||||
graphic and icon. Tablet and Chromebook screenshots can be added here if the
|
||||
Play Console asks for them at submission.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose | Dimensions | Format |
|
||||
| --- | --- | --- | --- |
|
||||
| `feature-graphic.png` | Required feature graphic | `1024 x 500` | 24-bit PNG |
|
||||
| `icon-512.png` | Play listing icon | `512 x 512` | 32-bit PNG |
|
||||
| `phone-screenshots/*.png` | Phone screenshots | `1080 x 1920` | 24-bit PNG |
|
||||
|
||||
## Upload alt text
|
||||
|
||||
| Asset | Alt text |
|
||||
| --- | --- |
|
||||
| Feature graphic | Privacy: Period Tracker lockup with calendar, shield and cycle ring |
|
||||
| `05-privacy-promise.png` | Privacy promise explaining that cycle data is not sold |
|
||||
| `06-reminder-privacy.png` | Reminder privacy choices with discreet, maximum privacy and direct modes |
|
||||
| `08-today-forecast.png` | Today screen showing a period window and confidence label |
|
||||
| `09-calendar.png` | Calendar showing logged, predicted, fertile and ovulation markers |
|
||||
| `10-insights.png` | Insights screen showing learned cycle averages from seeded history |
|
||||
| `11-settings-privacy.png` | Settings screen with notification, privacy and data controls |
|
||||
| `01-onboarding-welcome.png` | Welcome screen with cycle rings and the app's opening promise |
|
||||
|
||||
The screenshots are top crops from the seeded demo captures in
|
||||
[`../../screenshots/`](../../screenshots/). The source captures remain there
|
||||
because their README records the demo history, the status-bar setup and the
|
||||
privacy checks. Cropping from the top keeps the real app UI, removes only the
|
||||
extra tall-device tail, and brings the assets under Play's aspect-ratio rule.
|
||||
|
||||
## Regenerate
|
||||
|
||||
From the repository root:
|
||||
|
||||
```bash
|
||||
convert docs/data/img/banner.webp -resize 1024x500^ -gravity center \
|
||||
-extent 1024x500 -strip PNG24:docs/design/brand/play-store/feature-graphic.png
|
||||
|
||||
convert docs/data/img/icon.webp -resize 512x512 -alpha set -strip \
|
||||
-define png:color-type=6 docs/design/brand/play-store/icon-512.png
|
||||
|
||||
for f in \
|
||||
docs/design/screenshots/05-privacy-promise.webp \
|
||||
docs/design/screenshots/06-reminder-privacy.webp \
|
||||
docs/design/screenshots/08-today-forecast.webp \
|
||||
docs/design/screenshots/09-calendar.webp \
|
||||
docs/design/screenshots/10-insights.webp \
|
||||
docs/design/screenshots/11-settings-privacy.webp \
|
||||
docs/design/screenshots/01-onboarding-welcome.webp
|
||||
do
|
||||
b=$(basename "$f" .webp)
|
||||
convert "$f" -crop 1080x1920+0+0 +repage -strip \
|
||||
PNG24:"docs/design/brand/play-store/phone-screenshots/$b.png"
|
||||
done
|
||||
```
|
||||
|
||||
Run this check before upload or commit:
|
||||
|
||||
```bash
|
||||
identify -format '%f %wx%h %[channels] %b\n' \
|
||||
docs/design/brand/play-store/feature-graphic.png \
|
||||
docs/design/brand/play-store/icon-512.png \
|
||||
docs/design/brand/play-store/phone-screenshots/*.png
|
||||
```
|
||||
|
||||
## Review rules
|
||||
|
||||
- The screenshots must stay seeded demo data, never real period history.
|
||||
- The status bar must show only demo furniture: time, wifi and battery, with no
|
||||
notification visible.
|
||||
- No asset may state or imply a medical, diagnostic or contraceptive claim.
|
||||
- PRODUCT_PLAN.md §42's forbidden imagery list applies here too: no blood drops,
|
||||
tampons, pads, uterus imagery, gender symbols or anatomical reproductive
|
||||
graphics.
|
||||
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 586 KiB |
|
After Width: | Height: | Size: 708 KiB |
|
After Width: | Height: | Size: 567 KiB |
|
After Width: | Height: | Size: 300 KiB |
|
After Width: | Height: | Size: 353 KiB |
|
After Width: | Height: | Size: 326 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
|
@ -3,7 +3,7 @@
|
|||
```
|
||||
Status: Current
|
||||
Owner: _null
|
||||
Last reviewed: 2026-08-19
|
||||
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
|
||||
|
|
@ -53,8 +53,9 @@ countdown instead, which is the screen the app is built around.
|
|||
|
||||
## Reproducing them
|
||||
|
||||
Light mode throughout: it matches the site's light aesthetic, and it avoids #44,
|
||||
where dark mode's Welcome illustration is still a forecast scene.
|
||||
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:
|
||||
|
|
@ -88,10 +89,13 @@ Each is a rule #32 states, and each was checked on this set rather than assumed:
|
|||
|
||||
## Format
|
||||
|
||||
WebP quality 86 at native 1080 × 2400, 520 KB for the set. 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.
|
||||
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
|
||||
|
|
|
|||
|
|
@ -32,6 +32,38 @@ written and stay true. It is exempt from review for the same reason a receipt is
|
|||
|
||||
## Entries
|
||||
|
||||
### 2026-08-20 (later) — Play listing assets created
|
||||
|
||||
Issue #32 is ready: the Play listing artwork now exists under
|
||||
`docs/design/brand/play-store/`. The set includes the required feature graphic,
|
||||
the 512 px Play icon and seven phone screenshots exported from the seeded demo
|
||||
captures. The screenshots are top crops rather than resized screenshots, so they
|
||||
keep the real app UI and land at Play's recommended `1080 x 1920` portrait
|
||||
shape.
|
||||
|
||||
Google's Play Console Help was checked on 2026-08-20 before choosing the export
|
||||
formats: feature graphic `1024 x 500`, screenshots as JPEG or 24-bit PNG with no
|
||||
alpha and a long side no more than twice the short side, and at least four app
|
||||
screenshots at `1080px+` for recommendation eligibility. The app manifest
|
||||
declares no Wear OS, TV, Automotive or XR surface, so no extra form-factor asset
|
||||
set was created.
|
||||
|
||||
The folder README records the upload alt text, regeneration commands and the
|
||||
rules that matter for a period tracker: seeded demo data only, no notification
|
||||
in the status bar, no medical or contraceptive claim, and none of §42's forbidden
|
||||
imagery.
|
||||
|
||||
**What this proved:** `identify` reported `1024x500 srgb` for the feature
|
||||
graphic, `512x512 srgba` for the Play icon, and seven `1080x1920 srgb` phone
|
||||
screenshots. A failing validation script checked exact dimensions, channel
|
||||
rules, Play screenshot aspect ratio and file size ceilings. `doc-triggers.py`
|
||||
and `doc-claims.sh` were run after the docs updates; doc-claims passed with only
|
||||
the repository's expected menu notices.
|
||||
|
||||
**Next action:** finish #31, the neutral incognito launcher label and icon.
|
||||
|
||||
**Blockers:** none.
|
||||
|
||||
### 2026-08-20 — Dark welcome artwork corrected
|
||||
|
||||
Issue #44 is fixed in the artwork set and in the shipping drawables. The dark
|
||||
|
|
|
|||