Design Tokens
Axiom uses CSS variables to declare design tokens.
#
Declaring tokens
#
#
CSS variables
#
All tokens are available as CSS variables under the --ax-*
prefix.
So given a tokens object like this:
const tokens = {
colors: {
"aqua.50": "#e5f7fb",
"aqua.200": "#9ae5ef",
},
spacing: {
"2": "2px",
"8": "8px",
sm: "12px",
},
};
The following css custom properties will be available:
:root {
--ax-colors-aqua-50: "#e5f7fb";
--ax-colors-aqua-200: "#9ae5ef";
--ax-spacing-2: "2px";
--ax-spacing-8: "8px";
--ax-spacing-sm: "12px";
}
#
Consuming tokens
#
#
Using style props
#
For all react components you can use the various style props to set the styles using tokens.
import { Box } from "@optiaxiom/react";
export function App() {
return (
<Box bg="bg.success" color="fg.success" p="md">
Using component props
</Box>
);
}
#
Consuming variables from CSS
#
You can also directly use the CSS variable name in your .css
files.
import styles from "./App.module.css";
export function App() {
return <div className={styles.container}>Using CSS variables</div>;
}
#
Consuming variables from JS
#
Axiom exports a theme
contract that contains a map of all tokens to the corresponding CSS custom property name.
You can use this theme
object when implementing any CSS-in-JS solutions.
import { theme } from "@optiaxiom/react";
export function App() {
return (
<div
style={{
background: theme.colors["bg.success"],
color: theme.colors["fg.success"],
padding: theme.spacing.md,
}}
>
Using inline styles
</div>
);
}
#
Reference
#
#
borderRadius
#
Name | Value |
---|---|
xs | var(--ax-borderRadius-xs) |
sm | var(--ax-borderRadius-sm) |
md | var(--ax-borderRadius-md) |
lg | var(--ax-borderRadius-lg) |
xl | var(--ax-borderRadius-xl) |
full | var(--ax-borderRadius-full) |
none | var(--ax-borderRadius-none) |
#
borderWidth
#
Name | Value |
---|---|
0 | var(--ax-borderWidth-0) |
1 | var(--ax-borderWidth-1) |
2 | var(--ax-borderWidth-2) |
4 | var(--ax-borderWidth-4) |
#
boxShadow
#
Name | Value |
---|---|
xs | var(--ax-boxShadow-xs) |
sm | var(--ax-boxShadow-sm) |
md | var(--ax-boxShadow-md) |
lg | var(--ax-boxShadow-lg) |
xl | var(--ax-boxShadow-xl) |
inner | var(--ax-boxShadow-inner) |
none | var(--ax-boxShadow-none) |
#
colors
#
Name | Value |
---|---|
current | var(--ax-colors-current) |
transparent | var(--ax-colors-transparent) |
black | var(--ax-colors-black) |
white | var(--ax-colors-white) |
aqua.50 | var(--ax-colors-aqua-50) |
aqua.200 | var(--ax-colors-aqua-200) |
aqua.500 | var(--ax-colors-aqua-500) |
aqua.600 | var(--ax-colors-aqua-600) |
blue.50 | var(--ax-colors-blue-50) |
blue.200 | var(--ax-colors-blue-200) |
blue.500 | var(--ax-colors-blue-500) |
blue.600 | var(--ax-colors-blue-600) |
blue.900 | var(--ax-colors-blue-900) |
brand.50 | var(--ax-colors-brand-50) |
brand.100 | var(--ax-colors-brand-100) |
brand.200 | var(--ax-colors-brand-200) |
brand.300 | var(--ax-colors-brand-300) |
brand.400 | var(--ax-colors-brand-400) |
brand.500 | var(--ax-colors-brand-500) |
brand.600 | var(--ax-colors-brand-600) |
brand.700 | var(--ax-colors-brand-700) |
brand.800 | var(--ax-colors-brand-800) |
brand.900 | var(--ax-colors-brand-900) |
dark.50 | var(--ax-colors-dark-50) |
dark.200 | var(--ax-colors-dark-200) |
dark.500 | var(--ax-colors-dark-500) |
dark.600 | var(--ax-colors-dark-600) |
gray.50 | var(--ax-colors-gray-50) |
gray.100 | var(--ax-colors-gray-100) |
gray.200 | var(--ax-colors-gray-200) |
gray.300 | var(--ax-colors-gray-300) |
gray.400 | var(--ax-colors-gray-400) |
gray.500 | var(--ax-colors-gray-500) |
gray.600 | var(--ax-colors-gray-600) |
gray.700 | var(--ax-colors-gray-700) |
gray.800 | var(--ax-colors-gray-800) |
gray.900 | var(--ax-colors-gray-900) |
green.50 | var(--ax-colors-green-50) |
green.100 | var(--ax-colors-green-100) |
green.200 | var(--ax-colors-green-200) |
green.300 | var(--ax-colors-green-300) |
green.400 | var(--ax-colors-green-400) |
green.500 | var(--ax-colors-green-500) |
green.600 | var(--ax-colors-green-600) |
green.700 | var(--ax-colors-green-700) |
green.800 | var(--ax-colors-green-800) |
green.900 | var(--ax-colors-green-900) |
magenta.50 | var(--ax-colors-magenta-50) |
magenta.200 | var(--ax-colors-magenta-200) |
magenta.500 | var(--ax-colors-magenta-500) |
magenta.600 | var(--ax-colors-magenta-600) |
neutral.50 | var(--ax-colors-neutral-50) |
neutral.75 | var(--ax-colors-neutral-75) |
neutral.100 | var(--ax-colors-neutral-100) |
neutral.150 | var(--ax-colors-neutral-150) |
neutral.200 | var(--ax-colors-neutral-200) |
neutral.300 | var(--ax-colors-neutral-300) |
neutral.500 | var(--ax-colors-neutral-500) |
neutral.600 | var(--ax-colors-neutral-600) |
neutral.700 | var(--ax-colors-neutral-700) |
neutral.800 | var(--ax-colors-neutral-800) |
neutral.900 | var(--ax-colors-neutral-900) |
neutral.1000 | var(--ax-colors-neutral-1000) |
neutral.1100 | var(--ax-colors-neutral-1100) |
neutral.1200 | var(--ax-colors-neutral-1200) |
neutral.50/6 | var(--ax-colors-neutral-50-6) |
neutral.50/32 | var(--ax-colors-neutral-50-32) |
neutral.1200/4 | var(--ax-colors-neutral-1200-4) |
neutral.1200/12 | var(--ax-colors-neutral-1200-12) |
neutral.1200/18 | var(--ax-colors-neutral-1200-18) |
neutral.1200/22 | var(--ax-colors-neutral-1200-22) |
neutral.1200/32 | var(--ax-colors-neutral-1200-32) |
orange.50 | var(--ax-colors-orange-50) |
orange.200 | var(--ax-colors-orange-200) |
orange.500 | var(--ax-colors-orange-500) |
orange.600 | var(--ax-colors-orange-600) |
purple.50 | var(--ax-colors-purple-50) |
purple.200 | var(--ax-colors-purple-200) |
purple.500 | var(--ax-colors-purple-500) |
purple.600 | var(--ax-colors-purple-600) |
purple.900 | var(--ax-colors-purple-900) |
red.50 | var(--ax-colors-red-50) |
red.100 | var(--ax-colors-red-100) |
red.200 | var(--ax-colors-red-200) |
red.300 | var(--ax-colors-red-300) |
red.400 | var(--ax-colors-red-400) |
red.500 | var(--ax-colors-red-500) |
red.600 | var(--ax-colors-red-600) |
red.700 | var(--ax-colors-red-700) |
red.800 | var(--ax-colors-red-800) |
red.900 | var(--ax-colors-red-900) |
slate.50 | var(--ax-colors-slate-50) |
slate.100 | var(--ax-colors-slate-100) |
slate.200 | var(--ax-colors-slate-200) |
slate.300 | var(--ax-colors-slate-300) |
slate.400 | var(--ax-colors-slate-400) |
slate.500 | var(--ax-colors-slate-500) |
slate.600 | var(--ax-colors-slate-600) |
slate.700 | var(--ax-colors-slate-700) |
slate.800 | var(--ax-colors-slate-800) |
slate.900 | var(--ax-colors-slate-900) |
slate.950 | var(--ax-colors-slate-950) |
yellow.50 | var(--ax-colors-yellow-50) |
yellow.100 | var(--ax-colors-yellow-100) |
yellow.200 | var(--ax-colors-yellow-200) |
yellow.300 | var(--ax-colors-yellow-300) |
yellow.400 | var(--ax-colors-yellow-400) |
yellow.500 | var(--ax-colors-yellow-500) |
yellow.600 | var(--ax-colors-yellow-600) |
yellow.700 | var(--ax-colors-yellow-700) |
yellow.800 | var(--ax-colors-yellow-800) |
yellow.900 | var(--ax-colors-yellow-900) |
bg.brand | var(--ax-colors-bg-brand) |
bg.brand.solid | var(--ax-colors-bg-brand-solid) |
bg.brand.solid.hover | var(--ax-colors-bg-brand-solid-hover) |
bg.disabled | var(--ax-colors-bg-disabled) |
bg.discovery | var(--ax-colors-bg-discovery) |
bg.error | var(--ax-colors-bg-error) |
bg.error.solid | var(--ax-colors-bg-error-solid) |
bg.error.solid.hover | var(--ax-colors-bg-error-solid-hover) |
bg.information | var(--ax-colors-bg-information) |
bg.information.solid | var(--ax-colors-bg-information-solid) |
bg.input.disabled | var(--ax-colors-bg-input-disabled) |
bg.neutral | var(--ax-colors-bg-neutral) |
bg.neutral.inverse | var(--ax-colors-bg-neutral-inverse) |
bg.neutral.inverse.hover | var(--ax-colors-bg-neutral-inverse-hover) |
bg.neutral.solid | var(--ax-colors-bg-neutral-solid) |
bg.neutral.solid.hover | var(--ax-colors-bg-neutral-solid-hover) |
bg.success | var(--ax-colors-bg-success) |
bg.success.solid | var(--ax-colors-bg-success-solid) |
bg.success.solid.hover | var(--ax-colors-bg-success-solid-hover) |
bg.warning | var(--ax-colors-bg-warning) |
bg.warning.solid | var(--ax-colors-bg-warning-solid) |
bg.warning.solid.hover | var(--ax-colors-bg-warning-solid-hover) |
border.active | var(--ax-colors-border-active) |
border.active.hover | var(--ax-colors-border-active-hover) |
border.brand | var(--ax-colors-border-brand) |
border.default | var(--ax-colors-border-default) |
border.disabled | var(--ax-colors-border-disabled) |
border.error | var(--ax-colors-border-error) |
border.secondary | var(--ax-colors-border-secondary) |
border.success | var(--ax-colors-border-success) |
border.tertiary | var(--ax-colors-border-tertiary) |
border.warning | var(--ax-colors-border-warning) |
fg.accent.blue | var(--ax-colors-fg-accent-blue) |
fg.accent.magenta | var(--ax-colors-fg-accent-magenta) |
fg.accent.purple | var(--ax-colors-fg-accent-purple) |
fg.accent.red | var(--ax-colors-fg-accent-red) |
fg.brand | var(--ax-colors-fg-brand) |
fg.default | var(--ax-colors-fg-default) |
fg.default.inverse | var(--ax-colors-fg-default-inverse) |
fg.disabled | var(--ax-colors-fg-disabled) |
fg.error | var(--ax-colors-fg-error) |
fg.information | var(--ax-colors-fg-information) |
fg.link | var(--ax-colors-fg-link) |
fg.link.hover | var(--ax-colors-fg-link-hover) |
fg.link.visited | var(--ax-colors-fg-link-visited) |
fg.secondary | var(--ax-colors-fg-secondary) |
fg.success | var(--ax-colors-fg-success) |
fg.tertiary | var(--ax-colors-fg-tertiary) |
fg.warning | var(--ax-colors-fg-warning) |
outline.brand | var(--ax-colors-outline-brand) |
overlay | var(--ax-colors-overlay) |
surface | var(--ax-colors-surface) |
#
fontFamily
#
Name | Value |
---|---|
mono | var(--ax-fontFamily-mono) |
sans | var(--ax-fontFamily-sans) |
#
fontSize
#
Name | Value |
---|---|
xs | fontSize: var(--ax-fontSize-xs-fontSize) lineHeight: var(--ax-fontSize-xs-lineHeight) |
sm | fontSize: var(--ax-fontSize-sm-fontSize) lineHeight: var(--ax-fontSize-sm-lineHeight) |
md | fontSize: var(--ax-fontSize-md-fontSize) lineHeight: var(--ax-fontSize-md-lineHeight) |
lg | fontSize: var(--ax-fontSize-lg-fontSize) lineHeight: var(--ax-fontSize-lg-lineHeight) |
xl | fontSize: var(--ax-fontSize-xl-fontSize) lineHeight: var(--ax-fontSize-xl-lineHeight) |
2xl | fontSize: var(--ax-fontSize-2xl-fontSize) lineHeight: var(--ax-fontSize-2xl-lineHeight) |
3xl | fontSize: var(--ax-fontSize-3xl-fontSize) lineHeight: var(--ax-fontSize-3xl-lineHeight) |
4xl | fontSize: var(--ax-fontSize-4xl-fontSize) lineHeight: var(--ax-fontSize-4xl-lineHeight) |
5xl | fontSize: var(--ax-fontSize-5xl-fontSize) lineHeight: var(--ax-fontSize-5xl-lineHeight) |
6xl | fontSize: var(--ax-fontSize-6xl-fontSize) lineHeight: var(--ax-fontSize-6xl-lineHeight) |
7xl | fontSize: var(--ax-fontSize-7xl-fontSize) lineHeight: var(--ax-fontSize-7xl-lineHeight) |
#
letterSpacing
#
Name | Value |
---|---|
tighter | var(--ax-letterSpacing-tighter) |
tight | var(--ax-letterSpacing-tight) |
normal | var(--ax-letterSpacing-normal) |
wide | var(--ax-letterSpacing-wide) |
wider | var(--ax-letterSpacing-wider) |
widest | var(--ax-letterSpacing-widest) |
#
lineHeight
#
Name | Value |
---|---|
none | var(--ax-lineHeight-none) |
tight | var(--ax-lineHeight-tight) |
normal | var(--ax-lineHeight-normal) |
loose | var(--ax-lineHeight-loose) |
#
margins
#
Name | Value |
---|---|
xs | var(--ax-margins-xs) |
sm | var(--ax-margins-sm) |
md | var(--ax-margins-md) |
lg | var(--ax-margins-lg) |
xl | var(--ax-margins-xl) |
0 | var(--ax-margins-0) |
2 | var(--ax-margins-2) |
4 | var(--ax-margins-4) |
6 | var(--ax-margins-6) |
8 | var(--ax-margins-8) |
10 | var(--ax-margins-10) |
12 | var(--ax-margins-12) |
16 | var(--ax-margins-16) |
20 | var(--ax-margins-20) |
24 | var(--ax-margins-24) |
32 | var(--ax-margins-32) |
48 | var(--ax-margins-48) |
64 | var(--ax-margins-64) |
80 | var(--ax-margins-80) |
-xs | var(--ax-margins--xs) |
-sm | var(--ax-margins--sm) |
-md | var(--ax-margins--md) |
-lg | var(--ax-margins--lg) |
-xl | var(--ax-margins--xl) |
-2 | var(--ax-margins--2) |
-4 | var(--ax-margins--4) |
-6 | var(--ax-margins--6) |
-8 | var(--ax-margins--8) |
-10 | var(--ax-margins--10) |
-12 | var(--ax-margins--12) |
-16 | var(--ax-margins--16) |
-24 | var(--ax-margins--24) |
-32 | var(--ax-margins--32) |
-48 | var(--ax-margins--48) |
-64 | var(--ax-margins--64) |
-80 | var(--ax-margins--80) |
#
maxSize
#
Name | Value |
---|---|
xs | var(--ax-maxSize-xs) |
sm | var(--ax-maxSize-sm) |
md | var(--ax-maxSize-md) |
lg | var(--ax-maxSize-lg) |
xl | var(--ax-maxSize-xl) |
2xl | var(--ax-maxSize-2xl) |
full | var(--ax-maxSize-full) |
#
screens
#
Name | Value |
---|---|
sm | var(--ax-screens-sm) |
md | var(--ax-screens-md) |
lg | var(--ax-screens-lg) |
#
size
#
Name | Value |
---|---|
xs | var(--ax-size-xs) |
sm | var(--ax-size-sm) |
md | var(--ax-size-md) |
lg | var(--ax-size-lg) |
xl | var(--ax-size-xl) |
0 | var(--ax-size-0) |
1 | var(--ax-size-1) |
2 | var(--ax-size-2) |
4 | var(--ax-size-4) |
6 | var(--ax-size-6) |
8 | var(--ax-size-8) |
12 | var(--ax-size-12) |
16 | var(--ax-size-16) |
20 | var(--ax-size-20) |
24 | var(--ax-size-24) |
32 | var(--ax-size-32) |
40 | var(--ax-size-40) |
48 | var(--ax-size-48) |
56 | var(--ax-size-56) |
64 | var(--ax-size-64) |
80 | var(--ax-size-80) |
96 | var(--ax-size-96) |
112 | var(--ax-size-112) |
128 | var(--ax-size-128) |
144 | var(--ax-size-144) |
160 | var(--ax-size-160) |
176 | var(--ax-size-176) |
192 | var(--ax-size-192) |
208 | var(--ax-size-208) |
224 | var(--ax-size-224) |
240 | var(--ax-size-240) |
256 | var(--ax-size-256) |
288 | var(--ax-size-288) |
320 | var(--ax-size-320) |
384 | var(--ax-size-384) |
5xl | var(--ax-size-5xl) |
1/2 | var(--ax-size-1-2) |
1/3 | var(--ax-size-1-3) |
2/3 | var(--ax-size-2-3) |
1/4 | var(--ax-size-1-4) |
2/4 | var(--ax-size-2-4) |
3/4 | var(--ax-size-3-4) |
auto | var(--ax-size-auto) |
fit | var(--ax-size-fit) |
full | var(--ax-size-full) |
max | var(--ax-size-max) |
min | var(--ax-size-min) |
#
spacing
#
Name | Value |
---|---|
xs | var(--ax-spacing-xs) |
sm | var(--ax-spacing-sm) |
md | var(--ax-spacing-md) |
lg | var(--ax-spacing-lg) |
xl | var(--ax-spacing-xl) |
0 | var(--ax-spacing-0) |
2 | var(--ax-spacing-2) |
4 | var(--ax-spacing-4) |
6 | var(--ax-spacing-6) |
8 | var(--ax-spacing-8) |
10 | var(--ax-spacing-10) |
12 | var(--ax-spacing-12) |
16 | var(--ax-spacing-16) |
20 | var(--ax-spacing-20) |
24 | var(--ax-spacing-24) |
32 | var(--ax-spacing-32) |
48 | var(--ax-spacing-48) |
64 | var(--ax-spacing-64) |
80 | var(--ax-spacing-80) |
#
zIndex
#
Name | Value |
---|---|
0 | var(--ax-zIndex-0) |
10 | var(--ax-zIndex-10) |
20 | var(--ax-zIndex-20) |
30 | var(--ax-zIndex-30) |
40 | var(--ax-zIndex-40) |
50 | var(--ax-zIndex-50) |
auto | var(--ax-zIndex-auto) |
popover | var(--ax-zIndex-popover) |
toast | var(--ax-zIndex-toast) |
tooltip | var(--ax-zIndex-tooltip) |