Colors

The Skeleton color system.

Skeleton provides guardrails and utilities to help you craft your custom color system. This includes a number of colors, shades, and contrast values that work together seamlessly. Providing a visually appealing and accessible palette for each theme.

Color Palette

Primary
50
100
200
300
400
500
600
700
800
900
950
Secondary
50
100
200
300
400
500
600
700
800
900
950
Tertiary
50
100
200
300
400
500
600
700
800
900
950
Success
50
100
200
300
400
500
600
700
800
900
950
Warning
50
100
200
300
400
500
600
700
800
900
950
Error
50
100
200
300
400
500
600
700
800
900
950
Surface
50
100
200
300
400
500
600
700
800
900
950

Supports all Tailwind color utility classes using the following pattern.

txt
{property}-{color}-{shade}
KeyAccepted Values
Propertyaccent, bg, border, caret, decoration, divide, fill, outline, ring, shadow, stroke, text
Colorprimary, secondary, tertiary, success, warning, error, surface
Shade50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950
html
<div class="bg-primary-500">...</div>
<div class="border border-secondary-600">...</div>
<svg class="fill-surface-950">...</svg>

Contrast Colors

Test the following with different themes and dark mode combinations.

Direct Use

Primary
Secondary
Tertiary

Presets

Primary
Secondary
Tertiary

Preset + Pairings

Primary
Secondary
Tertiary

Contrast color values are available for every shade in the color ramp. Use these to set accessible text color and icon fill values. You may also refer to the Preset system for utility classes that automatically mix each color and contrast tone.

txt
{property}-{color}-contrast-{shade}

Color Pairings

A visual preview of each pairing.

500
Brand
400
300
200
100
50
600
700
800
900
950

Toggle dark mode and monitor the dynamic reaction.

50 950
100 900
200 800
300 700
400 600
500
600 400
700 300
800 200
900 100
950 50
Based on mode
Static
Based on mode

Provides a condensed syntax for dual-tone color values, evenly balanced to swap between light and dark mode. Pairings are supported for all Tailwind utility color classes (bg, border, fill, etc).

txt
{property}-{color}-{lightModeShade}-{darkModeShade}
html
<div class="bg-surface-200-800">...</div>
<div class="border border-secondary-400-600">...</div>
<svg class="fill-secondary-50-950">...</svg>

How Pairings Work

Color Pairing are enabled through the use of the CSS light-dark function. This means instead of writing the standard light/dark syntax with Tailwind utilities:

html
<div class="text-primary-300 dark:text-primary-700">...</div>

You can instead use a much more condensed syntax:

html
<div class="text-primary-300-700">...</div>

This will then be implemented into your CSS bundle as follows:

css
.text-primary-300-700 {
	color: light-dark(var(--color-primary-300), var(--color-primary-700));
}

Plus, as a benefit to using the CSS light-dark() function, this also enables use of Tailwind’s Color Scheme utilities. Learn more about using Color Scheme .

When to Use Pairings

Color Parings are useful for generating a hierarchy of visual layers, ranging from foreground to background elements. Each reuse the same color ramp, but invert the order when switching from light to dark mode.

Dark Mode 950 900 800 700 600 500 400 300 200 100 50 Light Mode 50 100 200 300 400 500 600 700 800 900 950
  • We can use shade 950 for light mode and 50 from dark mode to represent our body text color.
  • Then use shade 50 from light mode and 950 from dark mode to represent our app background.
  • Use the static 500 shade for key branding elements, such as buttons or banners.
  • Then reserve multiple layers between for elements such as cards, inputs, and more.

Transparency

All available Skeleton Colors and Color Pairings support Tailwind’s color transparency syntax.

html
<div class="bg-primary-500/25">Primary Color @ 25% transparency</div>
<div class="bg-surface-50-950/60">Surface Pairing 50/950 @ 60% transparency</div>
View page on GitHub