Skip to content

Built-in Themes, the picker and the page's own look #824

Open

Description

@JacobStephens2

Parent

#776

What to build

The built-in Themes, and the page setting its own look (ADR 0016 as amended, ADR 0018).

  • Six Themes: Focus (the default), Plain, Press, Signal, Garden and Factory, each in auto, light and dark. They're compiled in, with their fonts embedded as Latin-subset woff2 files at the weights they use. All ten families are under the SIL Open Font License.

  • The tokens: a Theme is only tokens: colours, fonts, type, shape, tags, effects and motion. Text on a solid fill is black or white, whichever reads better.

  • The picker opens with Shift+T. It writes the chosen Theme to the User config's [console] section.

  • The Sections chooser hides sections, also saved under [console].

  • CLI equivalents: thirdshift console theme <name>, console theme list and console sections [--hide …] [--show …] do the same from the CLI.

  • Config writes keep the file's comments and layout, as Setup's do. They never touch anything outside [console]'s look keys, and each one goes in the Console log naming the account.

  • Motion is only for thirdshift's activity:

    • the Working spinner;
    • the heartbeat dot;
    • the latest-line flash;
    • the live log cursor;
    • the stopping bar;
    • the running stage's stripes;
    • the Silent alarm, which pulses three times, then holds.

    Factory's conveyor and Garden's bed move only while a Command is live. Pause motion stops it all, per browser, and prefers-reduced-motion is respected.

Acceptance criteria

  • All six Themes render in auto, light and dark, with no font loaded from another site.
  • A test checks AA contrast for every text-on-background pair in every built-in Theme.
  • Choosing a Theme or hiding a section on the page, or with the CLI, changes only those keys in [console], keeps the comments, and writes a Console log line.
  • The page can't write any other key.
  • Both routes are paired with their CLI commands in the parity test.
  • Nothing moves when no Command is live. Pause motion and reduced motion stop everything.
  • Playwright covers switching Themes and Pause motion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions