Watch Face Legibility & Safe-Zone Audit
Watch Face Legibility & Safe-Zone Audit is for the last look before you publish a smartwatch face. You give it the face image(s) (or a description) plus the planned time and complication zones and the text colour. It measures what it can, labels what it cannot, and never edits or uploads anything.
Example output
Mode M — 2 faces — PASS 0 / FIX 2 / UNSURE 0 ## Faces and zones - Mode M: Python 3 with Pillow is available and both files were readable. Script saved to /tmp/qa3/wfaudit.py, run with `python3 -I`, one run per zone per face. - good.png: 400x400, square file, round face (visible area = inscribed circle, radius 200 px). - bad.png: 400x400, square file, round face. - Planned layout (user): time in the centre, date near the top. - Zone boxes (x0,y0,x1,y1) were chosen by me as tight boxes around the glyphs I measured in the pixels. All are "derived", not user-supplied. | Face | Zone | Box | Text colour | Source of colour | |---|---|---|---|---| | good | time | 36,155,370,243 | #FFFFFF | user: "white-ish"; pixels show exactly (255,255,255) | | good | date | 142,58,256,81 | #C8C8C8 | not stated; sampled from pixels (200,200,200) | | bad | time | 36,155,370,243 | #808080 | user: "grey"; pixels show exactly (128,128,128) | | bad | date | 152,25,248,49 | #787878 | not stated; sampled from pixels (120,120,120) on a yellow plate (250,250,120) | - Ambient image supplied: no (C3a is the script's dimmed grayscale simulation, an estimate). - Preview/mockup supplied: no. - Defaults used: 4.5:1 target, 6% bezel inset (limit 94% of radius), 0.5 ambient dimming, 9 px minimum zone height at 120 px, busy-art thresholds. ## Per-face results | Face | L1 time contrast | L2 safe zone | L3 ambient/small | L4 preview | Verdict | Evidence | |---|---|---|---|---|---|---| | good | PASS | UNSURE | FIX | UNSURE | FIX | Time zone: `C1 contrast median 16.09:1 \| worst-5% 15.34:1 \| 1% of zone <3:1 -> PASS`; `C2a busy art 3% ... -> PASS`; `C2b ... 88% of radius (limit 94%) -> PASS`; `C3a ambient median 9.54:1 \| 2% <3:1 -> PASS`; `C3b zone height 26.4px \| median 15.97:1 -> PASS`. Date zone: `C1 median 10.81:1 \| worst-5% 5.09:1 \| 4% <3:1 -> PASS`; `C2a busy art 9% of zone pixels are strong edges -> UNSURE`; `C2b 77% of radius -> PASS`; `C3a median 6.27:1 -> PASS`; `C3b small 120px preview: zone height 6.9px \| median 9.93:1 \| 11% <3:1 -> FIX` (under 9 px). L4: no preview or real-layout statement supplied; image time box centre 51% across, 50% down, date box centre 50% across, 17% down, consistent with the plan but no preview to compare. | …
Real output from running the skill on a sample problem, shortened. The skill file itself is not published here.