Source of truth inspected for this pass:
codencer-web-main.zipfrom the task attachment;- live
https://codencer.devCSS and markup for confirmation.
The public Gateway Console uses the same visual language as the Codencer website, adapted from marketing/documentation sections into an operational console surface.
- Next.js App Router
- React + TypeScript
- Tailwind CSS v4 token model
- Radix UI for behavior and accessibility
- Zod for runtime validation
- TanStack Query/Table for server state and tables
- Zustand for local UI state only
- React Hook Form + Zod resolver for forms
Codencer is a warm paper/ink interface with a restrained orange brand accent. Orange is reserved for primary actions, focus, and official/brand emphasis. It is not the generic warning color.
| Token | Value | Use |
|---|---|---|
--color-ink-primary |
#0f1419 |
primary text, dark sections |
--color-ink-secondary |
#52525b |
secondary prose |
--color-ink-muted |
#94949e |
metadata, captions |
--color-paper |
#faf9f6 |
page background |
--color-paper-tinted |
#f2f1ed |
alternate surfaces |
--color-paper-strong |
#ffffff |
raised surfaces |
--color-accent |
#e4571e |
primary actions, brand/focus |
--color-accent-hover |
#c94818 |
primary hover |
--color-accent-tint-bg |
#fff4ee |
restrained brand callouts |
--color-info / --color-info-soft |
blue semantic pair | informational notices |
--color-success / --color-success-soft |
green semantic pair | successful checks/mutations |
--color-warning / --color-warning-soft |
amber semantic pair | operator attention |
--color-danger / --color-danger-soft |
red semantic pair | errors/destructive states |
--color-border |
#e8e6e1 |
warm separators |
--color-border-strong |
#d4d4d8 |
stronger field/table borders |
--color-code-bg |
#0f1419 |
terminal/code background |
Dark theme keeps the same semantic tokens and changes paper/ink values rather than introducing a separate palette. Semantic panels use subtle tinted backgrounds with clear borders/text instead of large saturated blocks.
- Sans:
"Helvetica Neue", Inter, system-ui, -apple-system, sans-serif - Mono:
"Courier New", "JetBrains Mono", ui-monospace, monospace - Headlines are bold, tight, and slightly compact.
- Kicker labels are mono-like in behavior: uppercase,
0.12emtracking. - Console metadata uses mono at
13pxwith0.04emtracking.
Base rhythm follows the website:
xs: 4pxsm: 8pxmd: 16pxlg: 32pxxl: 64px2xl: 120px
Console pages use denser md/lg spacing inside cards and preserve wider
website spacing for page headers.
- Cards and controls use
--radius-card: 4px. - Borders are visible, warm, and usually
1px. - Strong borders use
1.5pxor accent left bars. - Shadows are reserved for floating Radix surfaces such as dialogs, popovers, dropdowns, and tooltips.
- Hover/focus transitions use
150ms ease. - Reduced motion disables long transitions.
- No decorative animation is used in the operational console.
- Buttons: solid brand primary, ink-outline secondary, quiet paper controls, danger outline for destructive actions.
- Cards: flat bordered surfaces, no nested card stacks.
- Fields: explicit labels, warm borders, visible focus rings.
- Code/terminal: restrained dark ink background, mono text, copy button, no raw tokens.
- Status: text label plus tone; never color-only.
Light and dark themes are token-based. The console uses Zustand only for local
theme preference and writes the selected theme to document.documentElement.
No auth tokens or server data are stored in Zustand.