Logo & Brand Identity
How the Noether Capital brand appears across all pages
NC
NOETHER CAPITAL
Logo Mark"NC" monogram inside a rounded square
Logo Dimensions40×40px in header. Minimum size: 24×24px.
Logo Background #1d293d (Primary Navy)
Logo Text Colour #ffffff (White)
Logo FontPlayfair Display, 700 weight, 16px
Logo Border Radius6px
Brand Name"NOETHER CAPITAL" — always uppercase, always letter-spacing: 2px
Brand Name FontSystem sans-serif, 600 weight, 18px
Clear SpaceMinimum 12px on all sides of the lockup
NeverNever change logo colours. Never rotate. Never use below 24px. Never place on busy backgrounds without a white container.
Colour Palette
All colours used across the dashboard — use CSS variables, never hardcode hex values
Core Colours
Primary Navy
--color-primary
#1d293d
Headings, header, logo, active nav, card titles
Black
--color-black
#000000
Body text
Near Black
--color-near-black
#09090b
Code block backgrounds only
White
--color-white
#ffffff
Card backgrounds, page elements
Accent
--color-accent
#4a5565
Secondary emphasis
Accent Light
--color-accent-light
#e5e7eb
Active category borders
Grays
Gray
--color-gray
#6a7282
Subtitles, metadata, version tags
Gray Medium
--color-gray-medium
#6b7280
Icons, secondary text
Gray Dark
--color-gray-dark
#364153
Descriptions, body copy in cards
Gray Light
--color-gray-light
#f3f4f6
Table headers, card borders, dividers
Gray Lighter
--color-gray-lighter
#f9fafb
Page background, alternating rows
Status Colours (semantic — use for data meaning only)
PASS
Success Green
--status-green / --status-green-bg
#065f46 on #d1fae5
Pass, healthy, complete, verified
WARN
Warning Amber
--status-amber / --status-amber-bg
#92400e on #fef3c7
Warnings, attention, in-progress
FAIL
Danger Red
--status-red / --status-red-bg
#991b1b on #fee2e2
Fail, error, broken, critical
INFO
Info Blue
--status-info / --status-info-bg
#1e40af on #dbeafe
Informational, in-progress, neutral
Zone Colours (dashboard categories)
DATA
Blue Zone
#185FA5 / #E6F1FB
Data & Awareness dashboards
DISC
Teal Zone
#0F6E56 / #E1F5EE
Discovery & Intelligence
PORT
Green Zone
#3B6D11 / #EAF3DE
Portfolio & Quality
EXEC
Amber Zone
#854F0B / #FAEEDA
Execution & Cost
GOV
Purple Zone
#534AB7 / #EEEDFE
Governance & Configuration
RISK
Coral Zone
#993C1D / #FAECE7
Risk & Failure
SYS
Grey Zone
#5F5E5A / #F1EFE8
System & Infrastructure
Rules
  • ALWAYS use CSS variables (var(--color-primary)) not hex values in code
  • Status colours are semantic — green always means success, red always means failure
  • Zone colours identify dashboard categories — do not mix across zones
  • NEVER use rainbow colour maps for data — they are perceptually non-uniform
  • NEVER invent new colours — only use what is defined above
Typography
Font families, sizes, and weights — every text element defined
Font Families
Brand Font'Playfair Display', serif — headings, titles, card titles
UI Fontui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif — body, labels, buttons
Code Fontmonospace — packet IDs, code references, hashes
Type Scale
Page Title · 30px · 700 · Playfair
Factory Structure
Card Title · 22px · 700 · Playfair
Build Steps & Packet Slots
Section Heading · 18px · 700 · Playfair
Step 1: Core Infrastructure
Body Large · 15px · 400 · Sans
Paragraph text in overview sections
Body · 14px · 400 · Sans
Default body text for content
Body Small · 13px · 400 · Sans
Subtitles, descriptions, metadata
Label · 12px · 600 · Sans
TABLE HEADER · STAT LABEL
Caption · 11px · 600 · Sans
BADGE TEXT · SMALL LABELS
Micro · 10px · 400 · Mono
token_count: 3420 | sha256: dcc076...
Code · 12px · 400 · Mono
F-01-01 · PKT-H08-CB-L1-004
Rules
  • Playfair Display is ONLY for headings and titles. Never for body text.
  • Body text is ALWAYS system sans-serif. Never Playfair.
  • Line height: 1.6 for body text, 1.3 for headings, 1.0 for single-line labels.
  • Monospace is ONLY for code, IDs, and technical values. Never for labels.
Spacing & Layout
Consistent spacing, page structure, and grid rules
Spacing Scale
4px
xs
8px
sm
12px
component
16px
md
20px
section
24px
lg / card
32px
xl
40px
2xl / page
Page Layout
Header Height72px, fixed at top
Main Contentmax-width 1440px, centered, padding 40px 32px
Card Margin24px margin-bottom between cards
Card Structure
BackgroundWhite (#ffffff)
Border1px solid var(--color-gray-light)
Border Radius8.4px (--radius-sm)
Padding24px
LayoutTitle + subtitle at top, body below
Component Library
Standard components — copy these patterns exactly
Buttons
Action Button
bg #1d293d, white text, 6px radius, 13px
Small Button
white bg, gray border, 4px radius, 11px
Disabled Button
opacity 0.35, cursor not-allowed
Badges
Status Badges
PASS FAIL WARN INFO EMPTY
Version Badge
v3 (3 versions)
Change Type Badges
INITIAL BUILD BUG FIX SPEC CHANGE IMPROVEMENT REBUILD
Gate Badge
READY BLOCKED COMPLETE
Calibration Badge
CALIBRATED MISCALIBRATED
Cards
Standard Card
Card Title
White bg, 1px gray-light border, 8.4px radius, 24px padding
Highlight Card
Highlight Card
4px left border in --color-primary for overview/callout
Warning Callout
Current status: Amber background, amber border, for status/warning callouts
Progress Bars
Standard Progress
8px height, gray-light bg, 4px radius, primary fill
Stat Boxes
Packets Built
12
Verified
8
Failed
2
Numeric Display Rule
Tabular numerals for all live-updating numbers

Every numerical value that changes frequently (price, P&L, latency, token count, percentage, cost) must use tabular numerals to prevent text “jumping” during refreshes.

/* Apply to ALL elements displaying live-updating numbers */
.numeric, .stat-value, .metric-value, .latency-value, .cost-value, .pnl-value {
    font-variant-numeric: tabular-nums;
    font-family: var(--font-numeric);
}

/* CSS Variable (add to :root) */
--font-numeric: ui-monospace, 'SF Mono', 'Cascadia Code', monospace;

Rule: Any element whose text content changes on a refresh interval must have font-variant-numeric: tabular-nums. This ensures digits are fixed-width and the layout does not shift when “1” changes to “8” or “0.05” changes to “12.34”.

Status Colour Rules (Updated)
Blue = busy, Amber = degraded — never interchangeable
StateColourCSS VariableUse ForNOT For
Success / Pass / HealthyGreen--status-green / --status-green-bgVerified, complete, healthy, pass, connected
In Progress / Busy / LoadingBlue--status-info / --status-info-bgVerifying, building, scanning, calculating, connectingDo NOT use for warnings or degraded states
Warning / Degraded / AttentionAmber--status-amber / --status-amber-bgDegraded performance, approaching limit, needs review, stale dataDo NOT use for “system is busy” — use Blue instead
Error / Fail / CriticalRed--status-red / --status-red-bgFailed, broken, offline, breach, critical alert
Unchecked / Pending / UnknownGray--color-gray-light / --color-grayNot yet checked, no data, awaiting input

Critical rule: Blue and Amber must NEVER be used interchangeably. Blue means “the system is actively working.” Amber means “something is degraded and may need attention.” If a button shows a spinner, it is Blue (busy). If a corridor latency is 115% of baseline, it is Amber (degraded). Mixing these causes warning fatigue.

CSS Variable Reference
Copy-paste ready — include this :root block in every page
:root { /* Colours */ --color-primary: #1d293d; --color-black: #000000; --color-near-black: #09090b; --color-white: #ffffff; --color-accent: #4a5565; --color-accent-light: #e5e7eb; --color-gray-medium: #6b7280; --color-gray: #6a7282; --color-gray-dark: #364153; --color-gray-light: #f3f4f6; --color-gray-lighter: #f9fafb; --color-primary-light: rgba(29,41,61,0.04); /* Status */ --status-green: #065f46; --status-green-bg: #d1fae5; --status-amber: #92400e; --status-amber-bg: #fef3c7; --status-red: #991b1b; --status-red-bg: #fee2e2; --status-info: #1e40af; --status-info-bg: #dbeafe; /* Fonts */ --font-brand: 'Playfair Display', serif; --font-numeric: ui-monospace, 'SF Mono', 'Cascadia Code', monospace; --font-ui: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; /* Spacing */ --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --spacing-2xl: 40px; /* Radii */ --radius-sm: 8.4px; --radius-pill: 9999px; /* Layout */ --header-height: 72px; --max-width: 1440px; }
Do's and Don'ts
Rules that apply to every page built for Noether Capital
Do
  • Use CSS variables for all colours and fonts
  • Follow the type scale exactly
  • Use Playfair Display ONLY for headings
  • Use status colours semantically (green = success, red = failure)
  • Keep cards at 24px padding
  • Include breadcrumbs on every page
  • Match the header/nav exactly — copy from an existing page
  • Left-align all body text (stat values may be centred)
Don't
  • Don't hardcode hex colours — use var(--color-*)
  • Don't use Playfair Display for body text
  • Don't use rainbow colour scales for data
  • Don't add box shadows to cards (the design is flat)
  • Don't change the header height or nav structure
  • Don't use icon libraries (no FontAwesome, no Material Icons) — use Unicode symbols or plain text
  • Don't add custom fonts beyond Playfair Display and system sans-serif
  • Don't use gradients
  • Don't centre body text — always left-aligned except stat values

Extended visual specification: Chart types, data visualisation colours, refresh rates, interaction patterns, and empty states are defined in the Dashboard Visual Specification →