Design tokens enable easy theming for all BlueprintUI components. The base theme and additional built in themes are defined in the @blueprintui/themes
package. BlueprintUI Themes can be used standalone of other BlueprintUI components and utilities.
Installation
npm install @blueprintui/themes
@import '@blueprintui/themes/index.min.css'; // light
@import '@blueprintui/themes/dark/index.min.css'; // dark
@import '@blueprintui/themes/compact/index.min.css'; // compact
To enable the tokens and addon themes add the bp-theme
attribute to the root HTML element.
<html bp-theme="">
Color
TokenValueExample--bp-colorBlack
hsl(0, 0%, 0%)--bp-colorBlue0
oklch(0.63 0.2 255)--bp-colorBlue100
oklch(from var(--bp-color-blue-0) 0.95 0.05 h)--bp-colorBlue1000
oklch(from var(--bp-color-blue-0) 0.1 c h)--bp-colorBlue200
oklch(from var(--bp-color-blue-0) 0.9 0.1 h)--bp-colorBlue300
oklch(from var(--bp-color-blue-0) 0.8 0.15 h)--bp-colorBlue400
oklch(from var(--bp-color-blue-0) 0.7 c h)--bp-colorBlue500
oklch(from var(--bp-color-blue-0) 0.6 c h)--bp-colorBlue600
oklch(from var(--bp-color-blue-0) 0.5 c h)--bp-colorBlue700
oklch(from var(--bp-color-blue-0) 0.4 c h)--bp-colorBlue800
oklch(from var(--bp-color-blue-0) 0.3 c h)--bp-colorBlue900
oklch(from var(--bp-color-blue-0) 0.2 c h)--bp-colorGray0
oklch(0.5 0.015 268)--bp-colorGray100
oklch(from var(--bp-color-gray-0) 0.95 0.008 h)--bp-colorGray1000
oklch(from var(--bp-color-gray-0) 0.15 0.01 h)--bp-colorGray200
oklch(from var(--bp-color-gray-0) 0.9 0.01 h)--bp-colorGray300
oklch(from var(--bp-color-gray-0) 0.8 c h)--bp-colorGray400
oklch(from var(--bp-color-gray-0) 0.65 c h)--bp-colorGray500
oklch(from var(--bp-color-gray-0) 0.5 c h)--bp-colorGray600
oklch(from var(--bp-color-gray-0) 0.4 c h)--bp-colorGray700
oklch(from var(--bp-color-gray-0) 0.3 c h)--bp-colorGray800
oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-colorGray900
oklch(from var(--bp-color-gray-0) 0.2 0.01 h)--bp-colorGreen0
oklch(0.7 0.16 155.48)--bp-colorGreen100
oklch(from var(--bp-color-green-0) 0.95 0.05 h)--bp-colorGreen1000
oklch(from var(--bp-color-green-0) 0.1 c h)--bp-colorGreen200
oklch(from var(--bp-color-green-0) 0.9 0.1 h)--bp-colorGreen300
oklch(from var(--bp-color-green-0) 0.8 0.15 h)--bp-colorGreen400
oklch(from var(--bp-color-green-0) 0.7 c h)--bp-colorGreen500
oklch(from var(--bp-color-green-0) 0.6 c h)--bp-colorGreen600
oklch(from var(--bp-color-green-0) 0.5 c h)--bp-colorGreen700
oklch(from var(--bp-color-green-0) 0.4 c h)--bp-colorGreen800
oklch(from var(--bp-color-green-0) 0.3 c h)--bp-colorGreen900
oklch(from var(--bp-color-green-0) 0.2 c h)--bp-colorRed0
oklch(0.59 0.23 19)--bp-colorRed100
oklch(from var(--bp-color-red-0) 0.98 c h)--bp-colorRed1000
oklch(from var(--bp-color-red-0) 0.2 c h)--bp-colorRed200
oklch(from var(--bp-color-red-0) 0.95 c h)--bp-colorRed300
oklch(from var(--bp-color-red-0) 0.9 c h)--bp-colorRed400
oklch(from var(--bp-color-red-0) 0.8 c h)--bp-colorRed500
oklch(from var(--bp-color-red-0) 0.7 c h)--bp-colorRed600
oklch(from var(--bp-color-red-0) 0.59 c h)--bp-colorRed700
oklch(from var(--bp-color-red-0) 0.5 c h)--bp-colorRed800
oklch(from var(--bp-color-red-0) 0.4 c h)--bp-colorRed900
oklch(from var(--bp-color-red-0) 0.3 c h)--bp-colorScheme
normal--bp-colorViolet0
oklch(0.56 0.19 295)--bp-colorViolet100
oklch(from var(--bp-color-violet-0) 0.95 0.05 h)--bp-colorViolet1000
oklch(from var(--bp-color-violet-0) 0.1 c h)--bp-colorViolet200
oklch(from var(--bp-color-violet-0) 0.9 0.1 h)--bp-colorViolet300
oklch(from var(--bp-color-violet-0) 0.8 0.15 h)--bp-colorViolet400
oklch(from var(--bp-color-violet-0) 0.7 c h)--bp-colorViolet500
oklch(from var(--bp-color-violet-0) 0.6 c h)--bp-colorViolet600
oklch(from var(--bp-color-violet-0) 0.5 c h)--bp-colorViolet700
oklch(from var(--bp-color-violet-0) 0.4 c h)--bp-colorViolet800
oklch(from var(--bp-color-violet-0) 0.3 c h)--bp-colorViolet900
oklch(from var(--bp-color-violet-0) 0.2 c h)--bp-colorWhite
hsl(0, 0%, 100%)--bp-colorYellow0
oklch(0.85 0.18 79)--bp-colorYellow100
oklch(from var(--bp-color-yellow-0) 0.98 0.05 h)--bp-colorYellow1000
oklch(from var(--bp-color-yellow-0) 0.2 c h)--bp-colorYellow200
oklch(from var(--bp-color-yellow-0) 0.95 0.1 h)--bp-colorYellow300
oklch(from var(--bp-color-yellow-0) 0.9 0.15 h)--bp-colorYellow400
oklch(from var(--bp-color-yellow-0) 0.85 c h)--bp-colorYellow500
oklch(from var(--bp-color-yellow-0) 0.8 c h)--bp-colorYellow600
oklch(from var(--bp-color-yellow-0) 0.75 c h)--bp-colorYellow700
oklch(from var(--bp-color-yellow-0) 0.6 c h)--bp-colorYellow800
oklch(from var(--bp-color-yellow-0) 0.5 c h)--bp-colorYellow900
oklch(from var(--bp-color-yellow-0) 0.4 c h)Status
TokenValueExample--bp-statusAccentBackground100
oklch(from var(--bp-color-blue-0) 0.9 0.1 h)--bp-statusAccentBackground200
oklch(from var(--bp-color-blue-0) 0.5 c h)--bp-statusAccentBackground300
oklch(from var(--bp-color-blue-0) 0.4 c h)--bp-statusAccentColor100
hsl(0, 0%, 100%)--bp-statusDangerBackground100
oklch(from var(--bp-color-red-0) 0.95 c h)--bp-statusDangerBackground200
oklch(from var(--bp-color-red-0) 0.59 c h)--bp-statusDangerBackground300
oklch(from var(--bp-color-red-0) 0.5 c h)--bp-statusDangerColor100
hsl(0, 0%, 100%)--bp-statusDisabledBackground100
oklch(from var(--bp-color-gray-0) 0.8 c h)--bp-statusDisabledBackground200
oklch(from var(--bp-color-gray-0) 0.65 c h)--bp-statusDisabledBackground300
oklch(from var(--bp-color-gray-0) 0.5 c h)--bp-statusDisabledColor100
oklch(from var(--bp-color-gray-0) 0.4 c h)--bp-statusNeutralBackground100
oklch(from var(--bp-color-gray-0) 0.9 0.01 h)--bp-statusNeutralBackground200
oklch(from var(--bp-color-gray-0) 0.4 c h)--bp-statusNeutralBackground300
oklch(from var(--bp-color-gray-0) 0.3 c h)--bp-statusNeutralColor100
hsl(0, 0%, 100%)--bp-statusSuccessBackground100
oklch(from var(--bp-color-green-0) 0.9 0.1 h)--bp-statusSuccessBackground200
oklch(from var(--bp-color-green-0) 0.5 c h)--bp-statusSuccessBackground300
oklch(from var(--bp-color-green-0) 0.4 c h)--bp-statusSuccessColor100
hsl(0, 0%, 100%)--bp-statusWarningBackground100
oklch(from var(--bp-color-yellow-0) 0.95 0.1 h)--bp-statusWarningBackground200
oklch(from var(--bp-color-yellow-0) 0.75 c h)--bp-statusWarningBackground300
oklch(from var(--bp-color-yellow-0) 0.6 c h)--bp-statusWarningColor100
hsl(0, 0%, 0%)Object
TokenValueExample--bp-objectBorderColor100
oklch(from var(--bp-color-gray-0) 0.9 0.01 h)oklch(from var(--bp-color-gray-0) 0.9 0.01 h)--bp-objectBorderColor200
oklch(from var(--bp-color-gray-0) 0.8 c h)oklch(from var(--bp-color-gray-0) 0.8 c h)--bp-objectBorderColor300
oklch(from var(--bp-color-gray-0) 0.65 c h)oklch(from var(--bp-color-gray-0) 0.65 c h)--bp-objectBorderRadius100
4px4px--bp-objectBorderRadius200
24px24px--bp-objectBorderRadius300
50%50%--bp-objectBorderWidth100
1px1px--bp-objectBorderWidth200
2px2px--bp-objectBorderWidth300
4px4px--bp-objectOpacity100
hsla(222, 7%, 46%, 0)hsla(222, 7%, 46%, 0)--bp-objectOpacity200
hsla(222, 7%, 46%, 0.1)hsla(222, 7%, 46%, 0.1)--bp-objectOpacity300
hsla(222, 7%, 46%, 0.4)hsla(222, 7%, 46%, 0.4)--bp-objectOpacity400
hsla(222, 7%, 46%, 0.6)hsla(222, 7%, 46%, 0.6)--bp-objectShadow100
0 2px 2px hsla(0, 0%, 0%, 0.2)0 2px 2px hsla(0, 0%, 0%, 0.2)--bp-objectShadow200
0 3px 4px hsla(0, 0%, 0%, 0.2)0 3px 4px hsla(0, 0%, 0%, 0.2)--bp-objectShadow300
0 4px 6px hsla(0, 0%, 0%, 0.2)0 4px 6px hsla(0, 0%, 0%, 0.2)Layer
TokenValueExample--bp-layer
100100--bp-layerBackground100
oklch(from var(--bp-color-gray-0) 0.95 0.008 h)oklch(from var(--bp-color-gray-0) 0.95 0.008 h)--bp-layerBackground200
hsl(0, 0%, 100%)hsl(0, 0%, 100%)--bp-layerBackground300
oklch(from var(--bp-color-gray-0) 0.95 0.008 h)oklch(from var(--bp-color-gray-0) 0.95 0.008 h)--bp-layerBackground400
oklch(from var(--bp-color-gray-0) 0.2 0.01 h)oklch(from var(--bp-color-gray-0) 0.2 0.01 h)--bp-layerHeaderBackground
oklch(from var(--bp-color-gray-0) 0.3 c h)oklch(from var(--bp-color-gray-0) 0.3 c h)--bp-layerHeaderColor
hsl(0, 0%, 100%)hsl(0, 0%, 100%)Interaction
TokenValueExample--bp-interactionAccentBackground
oklch(from var(--bp-color-blue-0) 0.5 c h)oklch(from var(--bp-color-blue-0) 0.5 c h)--bp-interactionActiveColor
oklch(from var(--bp-color-gray-0) 0.25 c h)oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-interactionActiveOffset
7%7%--bp-interactionDefaultColor
oklch(from var(--bp-color-gray-0) 0.25 c h)oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-interactionDefaultOffset
0%0%--bp-interactionDisabledColor
oklch(from var(--bp-color-gray-0) 0.65 c h)oklch(from var(--bp-color-gray-0) 0.65 c h)--bp-interactionDisabledOffset
10%10%--bp-interactionFocusedColor
oklch(from var(--bp-color-gray-0) 0.3 c h)oklch(from var(--bp-color-gray-0) 0.3 c h)--bp-interactionFocusedOffset
0%0%--bp-interactionHighlightBackground
hsla(211, 100%, 88%, 0.25)hsla(211, 100%, 88%, 0.25)--bp-interactionHoverColor
oklch(from var(--bp-color-gray-0) 0.25 c h)oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-interactionHoverOffset
3.5%3.5%--bp-interactionOutline
Highlight solid 2pxHighlight solid 2px--bp-interactionOutlineOffset
2px2px--bp-interactionOutlineWebkit
5px auto -webkit-focus-ring-color5px auto -webkit-focus-ring-color--bp-interactionSelectedColor
oklch(from var(--bp-color-gray-0) 0.25 c h)oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-interactionSelectedOffset
3%3%--bp-interactionTouchTarget
36px36pxScale
TokenValueExample--bp-scaleSize
11--bp-scaleSpace
11--bp-scaleText
11Text
TokenValueExample--bp-textColor100
hsl(0, 0%, 100%)hsl(0, 0%, 100%)--bp-textColor200
oklch(from var(--bp-color-gray-0) 0.95 0.008 h)oklch(from var(--bp-color-gray-0) 0.95 0.008 h)--bp-textColor300
oklch(from var(--bp-color-gray-0) 0.65 c h)oklch(from var(--bp-color-gray-0) 0.65 c h)--bp-textColor400
oklch(from var(--bp-color-gray-0) 0.4 c h)oklch(from var(--bp-color-gray-0) 0.4 c h)--bp-textColor500
oklch(from var(--bp-color-gray-0) 0.25 c h)oklch(from var(--bp-color-gray-0) 0.25 c h)--bp-textColor600
hsl(0, 0%, 0%)hsl(0, 0%, 0%)--bp-textFont
'system-ui', 'Avenir Next', 'Helvetica Neue', Helvetica, Arial, sans-serif'system-ui', 'Avenir Next', 'Helvetica Neue', Helvetica, Arial, sans-serif--bp-textMonospaceFont
'ui-monospace', Consolas, Menlo, Monaco, monospace--bp-textSize100
calc(var(--bp-scale-text * 12px)calc(var(--bp-scale-text * 12px)--bp-textSize200
calc(var(--bp-scale-text * 14px)calc(var(--bp-scale-text * 14px)--bp-textSize300
calc(var(--bp-scale-text * 16px)calc(var(--bp-scale-text * 16px)--bp-textSize400
calc(var(--bp-scale-text * 20px)calc(var(--bp-scale-text * 20px)--bp-textSize500
calc(var(--bp-scale-text * 24px)calc(var(--bp-scale-text * 24px)--bp-textSize600
calc(var(--bp-scale-text * 32px)calc(var(--bp-scale-text * 32px)--bp-textSize700
calc(var(--bp-scale-text * 36px)calc(var(--bp-scale-text * 36px)--bp-textSize800
calc(var(--bp-scale-text * 48px)calc(var(--bp-scale-text * 48px)--bp-textWeightBold
600600--bp-textWeightExtrabold
600600--bp-textWeightLight
300300--bp-textWeightMedium
500500--bp-textWeightRegular
400400--bp-textWeightSemibold
500500Layout
TokenValueExample--bp-layoutGridCols
1212--bp-layoutWidthLg
1200px1200px--bp-layoutWidthMd
1024px1024px--bp-layoutWidthSm
768px768px--bp-layoutWidthXl
1440px1440px--bp-layoutWidthXs
576px576pxSize
TokenValueExample--bp-size0
calc(var(--bp-scale-size * 0px)--bp-size100
calc(var(--bp-scale-size * 1px)--bp-size1000
calc(var(--bp-scale-size * 64px)--bp-size1100
calc(var(--bp-scale-size * 72px)--bp-size1200
calc(var(--bp-scale-size * 96px)--bp-size200
calc(var(--bp-scale-size * 2px)--bp-size300
calc(var(--bp-scale-size * 4px)--bp-size400
calc(var(--bp-scale-size * 8px)--bp-size500
calc(var(--bp-scale-size * 12px)--bp-size600
calc(var(--bp-scale-size * 16px)--bp-size700
calc(var(--bp-scale-size * 24px)--bp-size800
calc(var(--bp-scale-size * 32px)--bp-size900
calc(var(--bp-scale-size * 48px)Space
TokenValueExample--bp-spaceLg
calc(var(--bp-scale-space * 48px)--bp-spaceMd
calc(var(--bp-scale-space * 24px)--bp-spaceSm
calc(var(--bp-scale-space * 16px)--bp-spaceXl
calc(var(--bp-scale-space * 64px)--bp-spaceXs
calc(var(--bp-scale-space * 8px)Animation
TokenValueExample--bp-animationDuration100
0.1s0.1s--bp-animationDuration200
0.2s0.2s--bp-animationDuration300
0.3s0.3s--bp-animationEasing
ease-in-outease-in-outCopied to clipboard