FG UI Development Laboratory

Colors & tokens

A deliberately small role-based colour system: twelve public roles, contrast-safe generated recipes and one intentional progress-bar shade exception.

Live FGUI-DEV
FG UI 1.3 THEME COMPOSITION IS ACTIVE IN DEVELOPMENT.

FG UI 1.2.0 is the immutable Stable baseline; 1.3 development adds Hybrid composition and controlled Accent Personalisation.

FG UI 1.3 COLOUR SYSTEM IS A CLEAN BREAK.

There are no numbered Blue or Slate scales in the 1.3 development API. With no external consumers to protect, obsolete compatibility aliases were removed rather than carried forward.

FGUI Public Colour Roles

These are the only twelve colours normal FGUI design work needs to understand. Site owners may personalise Accent; FG Brand stays locked; neutrals and feedback roles are controlled by FGUI for visibility and contrast.

12 public roles

Brand

Product identity, not site personalisation.

Locked
FG Brand
--fgui-brand
#0F79CC

Personalisation

One chosen hue; FGUI derives safe Light/Dark recipes.

Customisable
Accent
--fgui-accent
FG Blue by default

Neutrals

Page
--fgui-page
#f5f8fb
Surface
--fgui-surface
#ffffff
Border
--fgui-border
#dce5ec · subtle divider
Muted
--fgui-muted
#5b7180
Text
--fgui-text
#344c5d
Text Strong
--fgui-text-strong
#172b3a

Feedback

These are deliberately controlled by FGUI rather than site-pickable. Each main feedback colour is visible against both Light and Dark surfaces and supports a readable filled treatment.

Success
--fgui-success
#087f5b
Warning
--fgui-warning
#a36800
Danger
--fgui-danger
#d93646
Info
--fgui-info
#1675b7

Generated by FGUI

These supporting roles exist so components remain readable, but designers do not pick them. FGUI derives them from the active Light/Dark/Hybrid surface and, where applicable, the chosen Accent hue.

Automatic
Generated rolePurpose
--fgui-on-accentReadable foreground for the active Accent fill; Light and Dark recipes choose the appropriate foreground automatically.
--fgui-on-success / --fgui-on-warning / --fgui-on-danger / --fgui-on-infoReadable foregrounds for filled feedback treatments.
--fgui-accent-hover / --fgui-accent-activeInteractive Accent states generated from the chosen hue.
--fgui-accent-soft / --fgui-accent-border / --fgui-accent-border-strong / --fgui-accent-inkAccent surfaces, outlines and readable Accent text for the active theme surface.
--fgui-success-ink / --fgui-warning-ink / --fgui-danger-ink / --fgui-info-inkTheme-aware feedback text used on soft feedback surfaces. Signal/fill colours are not reused blindly as text.
--fgui-*-soft / --fgui-*-borderSoft feedback surfaces and borders.
--fgui-control-borderInternal high-visibility boundary for interactive controls. The public --fgui-border can remain a quiet divider.
--fgui-placeholderReadable placeholder text with normal-text contrast rather than a faint decorative grey.
--fgui-progress-highlightThe intentional two-tone progress-bar exception; follows the selected Accent hue.
--fgui-shadow-* / --fgui-focus / overlay recipesVisual effects, not public palette choices.

Contrast-safe recipe matrix

Core now treats contrast as a token contract. Normal text and filled-label pairs target at least 4.5:1; essential control/signal boundaries target at least 3:1 against adjacent surfaces.

Automated gate
CombinationCurrent Light resultTarget
Text / Surface8.98:1≥ 4.5:1
Muted / Surface5.10:1≥ 4.5:1
Muted / Page4.78:1≥ 4.5:1
Placeholder / Surface4.81:1≥ 4.5:1
Control boundary / Surface3.28:1≥ 3:1
Accent / On Accent4.54:1 default FG Blue≥ 4.5:1
Success / On Success5.00:1≥ 4.5:1
Warning / On Warning4.63:1≥ 4.5:1
Danger / On Danger4.60:1≥ 4.5:1
Info / On Info4.93:1≥ 4.5:1
Accent Personalisation is theme-awareThe same selected hue generates separate Light and Dark Accent fills. This prevents deep blue/purple choices from disappearing into Dark surfaces while keeping the user-facing control horizontal-hue-only.

Progress shade exemption

The progress bar intentionally keeps a second, lighter accent shade because the two-tone fill is part of its visual identity. It is component-specific rather than a general-purpose colour scale.

Intentional exception
--fgui-progress-highlightDefault #5db9f5 · follows custom accent hue

No legacy colour scale

The 1.3 development line intentionally removes obsolete numbered palette tokens instead of deprecating them.

Clean break
Removed now, not later--fgui-blue-*, --fgui-slate-*, --fgui-primary* and --fgui-action* are not part of the 1.3 development API. Components use semantic FGUI roles directly.

Buttons and action colours

Every current button colour treatment is shown. Hover and active colours can be inspected directly by hovering and pressing the buttons.

Core variants

Semantic actions

Notices, alerts and notifications

Default alert

Base information treatment.

Info alert

Primary information treatment.

NoteThe standard FG UI note treatment.
Success alert

Successful operation.

Warning alert

Something needs attention.

Danger alert

Destructive or failed state.

Notification

Read notification
Standard surface and border.
Unread notification
Primary-soft unread treatment.

Toast

✓
Saved successfully
Toast surface, border, shadow and success icon treatment.

Status, labels, tags and chips

DefaultSuccessWarningDangerInfoProminentSourceTagTopic label

Form and control colour states

Border, surface, text and help colours.
Looks good.
Please correct this field.
Disabled surface and muted text.
Checkbox / radio
Switch / range

Selection and navigation colours

Tabs

Pagination

Progress

Accent progress and loading colours

Selected card

Accent border and soft selection ring treatment.

Inverse and dark treatments

Source on dark

Visual-effect colour tokens

These are colour-bearing effects rather than flat swatches.

TokenCurrent valuePurpose
--fgui-shadow-xs0 1px 2px rgba(22, 45, 63, .04)Small elevation
--fgui-shadow-sm0 4px 14px rgba(22, 45, 63, .06)Card elevation
--fgui-shadow-md0 12px 34px rgba(22, 45, 63, .09)Menus / overlays
--fgui-shadow-lg0 24px 60px rgba(22, 45, 63, .14)Large overlays / mega menus
--fgui-focus0 0 0 3px rgba(15, 121, 204, .18)Keyboard focus ring
Advanced theme recipes

Dark, Light and Accent Personalisation use internal soft, border, ink, on-colour, control-boundary, focus, feedback and surface recipes. These are implementation roles, not a public shade palette.

Theme authors should normally start from the semantic roles shown above. FGUI derives the rest so component contrast and state behavior remain coherent.