Design pass (all themes + chat UI), model picker, reduce-motion toggle
- Aero: blue gradients back on the active segment and every primary
(Review due, the card's Study button, the composer's send button); a
frosted backing behind the page heading and the All decks label; a
bottom-weighted rail tint; chat header/composer/welcome panels; calmer
orbs; stronger card veil + a stronger blur bake.
- Dark/Light: a dedicated --track token makes progress bars read (the
first attempt shifted --surface-sunken and the pixel scan caught the
sheet-contrast regression); brighter dark secondary text; darker light
segmented labels and difficulty tints; stronger light card border and
shadow.
- Chat UI: friendly model chip ("Gemma 4 31B") with the raw name in a
tooltip, larger chips, plain centered disclaimer, vertically centered
welcome panel, distinct chat-plus icon for new chat.
- Chat models: every chat-capable model from the server's /api/tags is
selectable (favourites first, search field when long, live-list
validation in the route); default CHAT_MODEL_DEFAULT or gemma4:31b.
- Reduce motion: Settings toggle (default off) that parks the scene,
collapses CSS animations and drives framer-motion's calm mode.
- Folders hint, "New" badge on fresh decks.
Contrast: 0 findings, axe clean, mobile 126/126, chat 102/102, wizard
95/95, regression 44/44, i18n 13/13, native 33/33.
Version 0.4.6, SW -> freezmo-v71.
This commit is contained in:
parent
b70b0e83cf
commit
6635b5d405
29 changed files with 468 additions and 90 deletions
37
README.md
37
README.md
|
|
@ -1411,6 +1411,43 @@ Things I chose while building, with the reasoning:
|
|||
pre-blurred wallpaper — the scene is clearly visible through the glass, and the
|
||||
pixel-contrast scan still passes.
|
||||
|
||||
80. **Chat UI pass: glass chrome, one composer panel, friendlier chips.** The chat header was a flat
|
||||
blue strip and the composer area floated on the wallpaper; both are glass surfaces now (the
|
||||
composer is one flat frosted panel behind input + chips + note). The disclaimer is plain
|
||||
centered text in Aero too (`AiDisclaimer plain`), the welcome block + suggestions sit on a soft
|
||||
frosted panel and are vertically centered between header and composer, the model chip shows a
|
||||
friendly name ("Gemma 4 31B") with the raw name in a tooltip, the chips are bigger with a
|
||||
stronger rim, the send button is the filled primary (blue in every theme, clearly dimmed only
|
||||
while empty/offline), and the header's "+" is a chat-plus icon so it no longer reads as the
|
||||
rail's "new deck". (The review also asked for the light/dark toggle to come back to the Aero
|
||||
header/rail — that stays out: Aero is switched from Settings by the owner's earlier rule.)
|
||||
|
||||
79. **Any model the server offers is selectable in chat, default `gemma4:31b`.** The picker used
|
||||
to be the server's allowlist only. The health check now appends every chat-capable model from
|
||||
the server's `/api/tags` (favourites first, embeddings filtered, 120 cap), the picker gained a
|
||||
search field when the list is long, and the chat route accepts a model that is in the
|
||||
favourites *or* in the live listing (one tags fetch for non-favourites, so nothing selectable
|
||||
is rejected). The default is `CHAT_MODEL_DEFAULT` (env) or `gemma4:31b`; when a server doesn't
|
||||
have the default, the client falls back to the first available model.
|
||||
|
||||
78. **Reduce motion: a Settings toggle, default off.** It mirrors the OS preference — an
|
||||
`html.reduce-motion` class (applied pre-paint by the boot script) parks the scene and collapses
|
||||
CSS animations/transitions, and `MotionPreference` wraps the app in framer-motion's
|
||||
`MotionConfig reducedMotion="always"`, so every JS animation calms too. Stored in
|
||||
`freezmo.reduce-motion.v1`; pinned in the mobile suite (126 checks).
|
||||
|
||||
77. **The Aero review pass (tabs, primaries, panels, tints).** The active segment keeps the blue
|
||||
gradient in Aero again (it had been glassed), and so does every `btn-primary`/`grad-ice` — the
|
||||
"Review due" action, the card's Study button (now the filled primary) and the composer's send
|
||||
button included. New Aero surfaces: a frosted backing behind the page heading, a chip behind
|
||||
the "All decks" label, a bottom-weighted tint on the rail (its lower rows sit over grass), and
|
||||
a dedicated `--track` token so progress bars read in every theme without shifting the shared
|
||||
surfaces (the first attempt moved `--surface-sunken` and broke sheet contrast — the pixel scan
|
||||
caught it). Difficulty labels got darker, the inactive segmented labels use the full text
|
||||
token, the card border/shadow are a touch stronger in light, orbs are calmer in light and
|
||||
dark, the folders list nudges "create a folder", and a fresh deck shows a "New" badge instead
|
||||
of the gray "Not played yet".
|
||||
|
||||
76. **A dropped connection says so.** A user's run failed with the wizard's generic "check your
|
||||
Ollama settings" card, and it could not be replicated on the owner's machine with the same key
|
||||
— because the key and model were never the problem. A raw error (a mid-run socket drop, a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue