araharah-executor
|
b462936678
|
feat(01-04): Playwright capture toolchain + DSGN-02 approval gallery (D-14, D-12)
- screenshot.mjs: committed real-browser capture tool — tiny node static
server (theme/ docroot), sheet fullPage capture (390px), 4 mockup captures
via file:// (network CDN renders; committed screen.png fallback on failure —
mockups never edited, D-06), basemap capture gated on the proof page's
RAMS-BASEMAP-READY console signal + 2s tile settle (1280x800); blank gate
>=10KB per capture; wired as root+theme `capture`
- gallery.html: the DSGN-02 mechanism template — 4 mockup-vs-sheet comparison
rows + basemap direction row + token ledger (13 typography specimens + 6 hero
color swatches, names only per D-07) + approval scope strip; CDN-free, built
from dist/rams.css + var()-only page shell; every later UI phase extends
this same page
- audit.mjs: gallery.html registered as an implementation page — audit
covers its <style> block + style attributes + class harvest (354
declarations, still 0 off-token)
- verified: CAPTURE OK 6/6 (45KB-1.2MB), gallery render check 0 failed
requests / all 6 images decode, AUDIT CLEAN
|
2026-10-22 08:31:14 +08:00 |
|
araharah-executor
|
b39317de64
|
feat(01-04): automated off-token audit (GREEN) — D-13
- audit.mjs: zero-dep rendered-CSS scanner — flags off-token hex/rgb()/hsl()
literals, non-sanctioned font families, non-zero border-radius, box-shadow,
backdrop-filter, blur/drop-shadow; violations printed as file:line: declaration
- drift guards (exit 2): <40 color tokens, any non-zero --radius-* token,
missing token sheet / registered page / CSS input — no silent passes (T-1-07)
- scope adjudication: framework layers + @property --tw-* skipped; @layer
utilities audited only for classes used by implementation pages (mockup
vocabulary is reference material, D-06; sheet/basemap pages are the registry)
- token-hue+alpha 8-digit forms sanctioned; rounded-full sanctioned as circle
primitive (spec geometry — puck/medallion signets); 50% radius stays flagged
- wired: theme npm audit + test scripts (root audit delegate resolves)
|
2026-10-22 08:26:57 +08:00 |
|
araharah-executor
|
2332779ad6
|
feat(01-design-tokens-rams-foundation-03): browser proof page — Rams basemap + signal-orange route placeholder at KL metro
- index.html: MapLibre GL v4 viewer loading ./liberty-rams.json at the KLCC anchor (101.6958, 3.1513, zoom 13); page chrome token-only (var(--color-*) via ../dist/rams.css, self-hosted Geist/Space Grotesk per D-10/D-16)
- placeholder route vector: 6px signal-orange polyline + 1px matte-black dashed centerline (mockup route ribbon), color read from the token package at runtime (var(--color-signal-orange)); route layers added LAST (accent lives above grayscale, never inside it); README comment marks the vector as consumed by Phase 5
- basemap:preview script: python3 -m http.server 8123 (cwd=theme serves /basemap/ + /dist/rams.css + /fonts within one docroot — plan's cd-variant was doubly broken; open http://localhost:8123/basemap/)
- real-browser render proof (scratch, plan 04 owns committed capture tooling): 8/8 checks pass — maplibre style validation clean, zero failed requests/non-200s, 296 sampled orange route pixels, 0 saturated non-red-hue pixels (grayscale grounding proven pixel-level), 100% warm-gray map area, header chrome rgb(26,26,26)
|
2026-10-22 08:10:05 +08:00 |
|
araharah-executor
|
891caa1c5f
|
feat(01-design-tokens-rams-foundation-03): Rams cartography basemap — liberty fork derived from token package
- build.mjs: fetches OpenFreeMap liberty style, parses theme/src/tokens.css, derives the full role palette in-script via desaturate(tokenHex, satMultiplier, lightnessPerRole) — no hand-tuned cartography hex (D-09)
- liberty-rams.json (110 layers): grayscale/muted land + water, desaturated roads (hierarchy by weight only), muted matte-black labels at reduced opacity, zero-radius aesthetic enforced (halo-blur zeroed, building-3d faux-3D removed) (D-08)
- accent guard: build fails if #EB8008/#ED3F1C/#736B1E (or rgb forms) leak into layers — route accent reserved for Phase 5
- D-10 font fallback: Space Grotesk/Geist probed on glyphs endpoint (404) → Noto Sans Bold/Regular substituted, recorded in style.metadata rams-font-substitutions
- raster relief desaturated (raster-saturation -1); derivation provenance embedded in style.metadata rams-cartography
- theme/package.json: basemap script
|
2026-10-22 08:05:54 +08:00 |
|
araharah-executor
|
e95f4043b9
|
feat(01-design-tokens-rams-foundation-02): rendered component sheet — all mockup-derived families via token package
- sheet.html: typography specimen (all 13 scale entries), buttons, inputs, chips (CONGESTION / CRASH / BLOCK / POLICE RADAR), telemetry card (SEC-04 // SPEED), maneuver banner, checkbox + two-way toggle
- consumes built dist/rams.css only; markup uses component classes, no utility soup; inline SVG icons (no icon-font CDN, D-16); shell consumes --shell-bg/--shell-on-surface slots (D-04)
- package.json: sheet script (build + open hint)
- real-browser computed-style audit: 41/41 checks render from tokens; woff2 fonts verified loaded
|
2026-10-22 07:52:56 +08:00 |
|
araharah-executor
|
8dea270bbe
|
chore(01-design-tokens-rams-foundation-01): scaffold npm workspace + theme package
- Root package.json: araharah, private, type module, workspaces [theme], scripts delegating to theme (build/sheet/gallery/audit/capture)
- theme/package.json: @araharah/theme with tailwindcss v4 + @tailwindcss/cli v4 devDeps, playwright dep (plan 03/04 captures), build + send scripts (D-15, D-17 local-only)
|
2026-10-22 07:33:18 +08:00 |
|