Skip to content

feat(design): welcome message in the design, a top band and headline, and presets - #837

Closed
mortondev wants to merge 4 commits into
feat/portal-design-v2-phase2-appearancefrom
feat/portal-design-v2-phase2-sections
Closed

mortondev wants to merge 4 commits into
feat/portal-design-v2-phase2-appearancefrom
feat/portal-design-v2-phase2-sections

Conversation

@mortondev

@mortondev mortondev commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

The fifth of the stack that builds a new design engine for the portal. This one moves the feedback page's welcome message into the design, adds a top band with a headline, and adds eight presets to start from. Behind the portalDesignV2 Labs switch; with it off, nothing changes.

The welcome message

On the design engine, the feedback page reads its welcome message from the design, where it can be switched off, rather than from the portal settings. A converted workspace keeps its text, since the converter carries the welcome card over.

Appearance edits it under Sections, with the editor the settings page used, now a component of its own, and the preview shows it as it changes. On the design engine the Navigation tab no longer offers the legacy welcome card, so there is one place to edit it.

The top band and headline

  • Band styles: none, a tint of the subtle accent, a fade from it into the page, or the accent itself.
  • Look: band tokens and data-qb-band, with the band's text solved to 4.5:1 on the band.
  • Headline: a headline and subtitle sit in the band, in the visitor's language, falling back to its base language, then English, then any.
  • No extra markup: a plain band with no headline adds nothing to the page, so a converted design keeps today's markup.
  • Editing: Appearance edits both under Sections. A draft headline reaches the preview with the rest of the draft design.

solveContrast moves into contrast.ts, which the component tokens now share with the resolver.

Presets

Eight starting looks: Classic (today's portal), Studio, Editorial, Calm, Technical, Midnight, Paper and Bold.

  • Each sets the mode, colours, fonts, corners and layout, and they differ in layout and type, not only hue.
  • Each passes every pair the portal paints in light and dark.
  • Applying one changes the draft's look and leaves its pages, menu, words and logo alone.
  • Brand opens with Start from a preset, a gallery that draws each look.

Screens

Checked in a real browser against the production build: the preset gallery, and the Studio preset with a headline in the preview. No console errors.

Verification

  • Typecheck, lint, the production build and the server-function manifest check pass.
  • Unit suite: 22,315 passed. The run found the welcome switch drawn outside SettingRow and a feed test mock missing the band's hook, both fixed in the last commit.
  • Style snapshots, 16 pages: unchanged with the engine off and on.
  • New tests:
    • band tokens per style, with readable text on the tint and the brand band;
    • the band's language fallback, saved and draft headlines, and no markup for a plain band;
    • the welcome message's choice between the design and the portal settings;
    • every preset against the golden pairs in both modes;
    • applying a preset in the view.

@mortondev
mortondev added this pull request to stack #833 October 30, 2026 19:04
@mortondev mortondev changed the title feat/portal design v2 phase2 sections feat(design): welcome message in the design, a top band and headline, and presets Oct 30, 2026
@mortondev
mortondev force-pushed the feat/portal-design-v2-phase2-sections branch from febdfe5 to 51d9268 Compare October 30, 2026 20:19
@mortondev
mortondev force-pushed the feat/portal-design-v2-phase2-sections branch from 51d9268 to d2e991b Compare October 30, 2026 20:40
On the design engine the feedback page reads its welcome message from the
design, where it can be switched off, rather than from the portal settings.
A converted workspace keeps its text, since the converter carries the
welcome card over. Appearance edits it under Sections with the editor the
settings page used, now a component of its own, and the preview shows it as
it changes. The Navigation tab no longer offers the legacy welcome card on
the design engine, so there is one place to edit it.
A design chooses a band for the top of the feedback page: none, a tint of
the subtle accent, a fade from it into the page, or the accent itself. Its
look comes from band tokens and data-qb-band, with its text solved to 4.5:1
on the band. A headline and subtitle sit in it, in the visitor's language,
falling back to its base language, then English, then any. A plain band with
no headline adds nothing to the page, so a converted design keeps today's
markup.

Appearance edits both under Sections, and the preview shows a draft headline
as it changes. solveContrast moves into contrast.ts, which the component
tokens now share with the resolver.

Computed styles on 16 portal pages are unchanged with the engine off and on.
Presets are design looks: Classic (today's portal), Studio, Editorial,
Calm, Technical, Midnight, Paper and Bold. Each sets the mode, colours,
fonts, corners and layout, and each passes every pair the portal paints in
light and dark. Applying one changes the draft's look and leaves its pages,
menu, words and logo alone.

Brand opens with Start from a preset, a gallery that draws each look: its
page and band colours, heading face and card style.
The admin consistency check wants every settings switch drawn by
SettingRow, and the feed page test's preview context mock gains the
headline hook the band reads.
@mortondev

Copy link
Copy Markdown
Member Author

Condensed into #878. The stack is now five PRs, #878 to #882; this branch is kept as it was.

@mortondev mortondev closed this Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant