UI review (main 05f89591): cross-cutting consistency, focus and dark-mode defects
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 20/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- css, python
- Ambito
- accessibility, design, frontend
Direzione di ricerca
Start with the token values in ui/tokens.css and the overlay and avatar rules in ui/ui.css, then the dark-mode rules in live/live.css. The contrast figures come from scripts/check_contrast.py. Several items need a design decision (the --t3 token, the dark token change already in progress), so this is not a single fix. Done means each numbered item is fixed, split into its own issue, or explicitly declined by the design owner.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Cross-cutting UI review of main at 05f89591 against the final design "Prostota" (docs/design/final/README.md §2, tokens "Soft volume"). Refs #336.
Method and limits. This pass is a static audit of the shared stylesheets (app/apps/web/src/ui/tokens.css, ui/ui.css) and a scan of area CSS for literals, plus computed WCAG contrast for every text-token / surface-token pair. The planned running-app pass (Playwright in Docker against the preview) did not run: the review container could not install the Playwright Python package in time. Keyboard walk, CLS, console/network errors, 200 % zoom and 320 px overflow are therefore unverified in this issue.
Severity: H = visible to most people or an accessibility failure; M = visible defect on some screens; L = consistency / maintainability.
Contrast (computed from the token values)
- M — light
--t3on outer and fill surfaces is below AA.--t3 #6b6b6bgives 4.48:1 on--side #ebebed, 4.47:1 on--sub #ebebecand 4.16:1 on--hov #e3e3e5(AA needs 4.5:1 for 12–14 px meta). The design only guarantees 4.5:1 on--bgand--el. Affects meta text in the sidebar (on--side), in chips/segmented tracks (--sub) and on hovered rows (--hov). Source:ui/tokens.css:31. Expected: meta on--side/--subuses--t2, or the design owner adjusts the token. - M — dark
--t3on--hov4.15:1 and on--sub4.62:1; dark--t2on--hov6.15:1. Being handled separately (dark--t2/--t3token change inui/tokens.cssandscripts/check_contrast.py); listed for completeness. - H — dark mode: live-session "screen" toggle is white on near-white.
.lv-dev--screen.is-on { background: var(--t1); color: #fff; }— in dark--t1is#f0f0f0, so the text is ~1.1:1. Source:live/live.css:96. Expected:background: var(--inv); color: var(--oninv). - H — dark mode: live-session count badge white on
--t2.background: var(--t2); color: #fff→ ~2.2:1 in dark (#acacac), and 10 px / 700 hard-coded. Source:live/live.css:100. Expected:--inv/--oninv, size from--fs-xs.
Hard-coded values outside the token set
- M — avatar initials use fixed px sizes (9 / 11 / 12 px).
.ui-avatar--sm|md|lg(ui/ui.css:308-310). 9 px is below the 12 px meta floor and none of them follow the system text size (README §2 Typography: "The phone follows the system text size"). Expected: rem values tied to the avatar size, e.g.--fs-avatar-*tokens. - M — phone bottom bar labels are 11 px and 10.5 px.
.ui-bottomnav__item(ui/ui.css:156,:168). README §4 Phone: "Meta text is at least 12.5 px". Expected--fs-xs(12.5 px on the phone). (The phone shell work in #341 / PR #414 may replace this bar; if it stays, it needs the token.) - L — agent colours are literal hex, repeated three times.
.kreska--clay…--roselight values and two copies of the dark values (ui/ui.css:260-270). Expected:--agent-clay…--agent-rosetokens inui/tokens.css, switched with the theme like every other token, so the two dark copies cannot drift. - L — radii outside the scale.
border-radius: 3px(.ui-link,ui/ui.css:96; sheet grabber:194),2px/1pxindicator ends (:129,:141). Token scale:--r-sm 10,--r 14,--r-card 18,--r-lg 20,--r-pill. Indicator/grabber ends should be--r-pill; the link focus shape a named small radius token. - L —
--fs-xsand--fs-smare the same value (.75rem/.78125remon the phone,ui/tokens.css:53-54,:149). Two names for one size invite drift; keep one or document the difference. - L — white literals in theme-aware controls. Switch knobs
background: #fff(app/settings.css:49,live/live.css:151), theme previews#F4F4F5/#0B0B0B(app/settings.css:71-73, intentional as pictures of the themes), live viewer backdrop#0e0f11(live/live.css:190). Expected--el/--oninvfor knobs; previews may stay literal but should reference the token values in a comment.
Focus
- M — overlay surfaces suppress the focus ring.
.ui-overlay__surface { outline: none }(ui/ui.css:181). When a dialog or sheet moves initial focus to its surface (tabindex -1), a keyboard person sees no indication of where focus is. Expected: a visible inset ring (:focus-visible→outline-offset: -2px) like[tabindex="-1"]:focus-visibleatui/ui.css:31. Runtime confirmation pending.
Not verified (to repeat on the running app)
- Keyboard-only walk, focus trap and Escape in ⌘K / Create task / detail panel.
- CLS, font-swap flash (Geist uses
font-display: swap), reduced motion. - Console errors and failed requests per screen.
- 200 % text zoom and 320 × 640 overflow, WebKit phone spot check.
- Lingua principale
- TypeScript
- Stelle
- 3
- Fork
- 0
- Merge medio
- 14h 40m
- PR unite (30g)
- 242
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ColdPhase/flux
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
F-027 A10 — Connect AI order and labels in Settings (rest of #410)Forse già presa @Zamojski5 l’ha presa oggi. Aperta
ColdPhase/flux#493 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ColdPhase/flux
Issue simili
-
cleanName keeps a state code that's joined to the word before it (SavannahGa → "Savannah Ga")Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
openwatersio/slackwater-database#281 ·
I maintainer di solito rispondono entro 1 giorno
-
accepted bug via-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
pingdotgg/t3code#18690 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Bayern feature:Application ready web
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
digitalfabrik/entitlementcard#3176 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NanmiCoder/cc-haha#1533 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno