Brand
Primary actions, links and selected states.
Foundations
A semantic palette that adapts to the theme. Every token has a light and dark value so interfaces remain legible in either mode.
The signal colours that identify the product and mark the primary path through a task.
Primary actions, links and selected states.
The brand colour under pointer or keyboard focus.
Text and icons placed on the brand colour.
Canvas and surface colours used to build calm, legible layers of content.
The base canvas behind every page.
Grouped sections and quiet panels.
Cards, dialogs and controls that sit above the page.
Reading colours with enough contrast for long-form content and compact controls.
Default body and heading text.
Supporting copy and secondary labels.
Structure and accessibility cues that keep interactive elements discoverable.
Dividers, outlines and control edges.
A high visibility indicator for keyboard focus.
Feedback colours for success, warning, information and destructive moments.
Completed work and healthy states.
Something needs attention.
Helpful context and neutral notices.
Destructive actions and errors.
Text and icons placed on the danger colour.
The published stylesheet exposes every token as a custom property. Theme switching only swaps the values, so component rules never need to change.
Link the stylesheet for this version, then reference tokens directly in your own CSS.
:root {
--sg-color-brand: #0d6efd;
}
[data-theme="dark"] {
--sg-color-brand: #6ea8fe;
}
.call-to-action {
background: var(--sg-color-brand);
color: var(--sg-color-on-brand);
}Text, borders and status colours are paired with a matching dark value. Use the theme toggle in the sidebar to compare the whole interface in both modes.