Docs
🎨 ⏐ Themeing
Blocks

Theme Blocks

Theme blocks are a collection of components designed to display the various elements of your theme within Storybook. These components offer a visual representation of your design system, including typography, colors, spacing, borders, shadows, palette variations, and more. By incorporating these blocks into your Storybook, you can easily document and showcase your theme's design tokens.

Available Theme Block Components

  • Typography Block: Demonstrates the font families, sizes, and weights available in your theme.
  • Color Block: Displays the color palette defined in your theme, including primary, secondary, and any other custom colors.
  • Spacing Block: Visualizes the spacing scale used in your theme, helpful for understanding and using consistent spacing throughout your UI.
  • Border Block: Shows the available border radius options, aiding in the application of consistent border styles.
  • Shadow Block: Exhibits the shadow options defined in your theme, making it easy to apply consistent shadow effects.
  • Components Block: A comprehensive showcase of the styled components within your theme, including buttons, inputs, and more.
  • Icons Block: Displays the icons used in your theme. NOTE that icons are not included and must be supplied.

Implementing Theme Blocks in a Storybook Story

Below is an example that demonstrates how to use the theme block components in a Storybook story.

import React from 'react';
import {
  TypographyBlocks,
  ColorBlocks,
  SpacingBlocks,
  BorderBlocks,
  ShadowBlocks,
  ThemeProvider,
  theme,
  useTheme,
  extractTheme
} from 'reablocks';
import resolveConfig from 'tailwindcss/resolveConfig';
import tailwindConfig from '[PATH TO YOUR TW CONFIG]/tailwind.config';
 
const { theme: TWConfig } = resolveConfig(tailwindConfig);
 
export default {
  title: 'General/Theme',
  component: ThemeProvider,
  decorators: [
    Story => (
      <ThemeProvider theme={theme}>
        <div style={{ width: '90vw' }}>
          <Story />
        </div>
      </ThemeProvider>
    )
  ]
};
 
const {
  colors,
  borderRadius,
  boxShadow,
  spacing,
  fontFamily,
  fontSize,
  fontWeight
} = extractTheme(TWConfig);
 
export const Colors = () => <ColorBlocks colors={colors} />;
 
export const Typography = () => (
  <TypographyBlocks
    families={fontFamily}
    sizes={fontSize}
    weights={fontWeight}
  />
);
 
export const Spacings = () => <SpacingBlocks spacings={spacing} />;
 
export const Borders = () => <BorderBlocks borders={borderRadius} />;
 
export const Shadows = () => <ShadowBlocks shadows={boxShadow} />;
 
export const Components = () => {
  const { theme } = useTheme();
  return <ComponentBlocks components={theme.components} />;
};

NOTE: This example utilizes the ThemeProvider in the story decorator, allowing each story to inherit the dark theme context. Alternatively, you could use ThemeProvider in your .storybook/preview.js file to apply the theme globally to all stories.

You can see how it looks in the Storybook here (opens in a new tab).

Examples

Color

black

black
#000

white

white
#fff

slate

slate-50
#f8fafc
slate-100
#f1f5f9
slate-200
#e2e8f0
slate-300
#cbd5e1
slate-400
#94a3b8
slate-500
#64748b
slate-600
#475569
slate-700
#334155
slate-800
#1e293b
slate-900
#0f172a
slate-950
#020617

gray

gray-50
#f9fafb
gray-100
#f3f4f6
gray-200
#e5e7eb
gray-300
#d1d5db
gray-400
#9ca3af
gray-500
#6b7280
gray-600
#4b5563
gray-700
#374151
gray-800
#1f2937
gray-900
#111827
gray-950
#030712

zinc

zinc-50
#fafafa
zinc-100
#f4f4f5
zinc-200
#e4e4e7
zinc-300
#d4d4d8
zinc-400
#a1a1aa
zinc-500
#71717a
zinc-600
#52525b
zinc-700
#3f3f46
zinc-800
#27272a
zinc-900
#18181b
zinc-950
#09090b

neutral

neutral-50
#fafafa
neutral-100
#f5f5f5
neutral-200
#e5e5e5
neutral-300
#d4d4d4
neutral-400
#a3a3a3
neutral-500
#737373
neutral-600
#525252
neutral-700
#404040
neutral-800
#262626
neutral-900
#171717
neutral-950
#0a0a0a

stone

stone-50
#fafaf9
stone-100
#f5f5f4
stone-200
#e7e5e4
stone-300
#d6d3d1
stone-400
#a8a29e
stone-500
#78716c
stone-600
#57534e
stone-700
#44403c
stone-800
#292524
stone-900
#1c1917
stone-950
#0c0a09

red

red-50
#fef2f2
red-100
#fee2e2
red-200
#fecaca
red-300
#fca5a5
red-400
#f87171
red-500
#ef4444
red-600
#dc2626
red-700
#b91c1c
red-800
#991b1b
red-900
#7f1d1d
red-950
#450a0a

orange

orange-50
#fff7ed
orange-100
#ffedd5
orange-200
#fed7aa
orange-300
#fdba74
orange-400
#fb923c
orange-500
#f97316
orange-600
#ea580c
orange-700
#c2410c
orange-800
#9a3412
orange-900
#7c2d12
orange-950
#431407

amber

amber-50
#fffbeb
amber-100
#fef3c7
amber-200
#fde68a
amber-300
#fcd34d
amber-400
#fbbf24
amber-500
#f59e0b
amber-600
#d97706
amber-700
#b45309
amber-800
#92400e
amber-900
#78350f
amber-950
#451a03

yellow

yellow-50
#fefce8
yellow-100
#fef9c3
yellow-200
#fef08a
yellow-300
#fde047
yellow-400
#facc15
yellow-500
#eab308
yellow-600
#ca8a04
yellow-700
#a16207
yellow-800
#854d0e
yellow-900
#713f12
yellow-950
#422006

lime

lime-50
#f7fee7
lime-100
#ecfccb
lime-200
#d9f99d
lime-300
#bef264
lime-400
#a3e635
lime-500
#84cc16
lime-600
#65a30d
lime-700
#4d7c0f
lime-800
#3f6212
lime-900
#365314
lime-950
#1a2e05

green

green-50
#f0fdf4
green-100
#dcfce7
green-200
#bbf7d0
green-300
#86efac
green-400
#4ade80
green-500
#22c55e
green-600
#16a34a
green-700
#15803d
green-800
#166534
green-900
#14532d
green-950
#052e16

emerald

emerald-50
#ecfdf5
emerald-100
#d1fae5
emerald-200
#a7f3d0
emerald-300
#6ee7b7
emerald-400
#34d399
emerald-500
#10b981
emerald-600
#059669
emerald-700
#047857
emerald-800
#065f46
emerald-900
#064e3b
emerald-950
#022c22

teal

teal-50
#f0fdfa
teal-100
#ccfbf1
teal-200
#99f6e4
teal-300
#5eead4
teal-400
#2dd4bf
teal-500
#14b8a6
teal-600
#0d9488
teal-700
#0f766e
teal-800
#115e59
teal-900
#134e4a
teal-950
#042f2e

cyan

cyan-50
#ecfeff
cyan-100
#cffafe
cyan-200
#a5f3fc
cyan-300
#67e8f9
cyan-400
#22d3ee
cyan-500
#06b6d4
cyan-600
#0891b2
cyan-700
#0e7490
cyan-800
#155e75
cyan-900
#164e63
cyan-950
#083344

sky

sky-50
#f0f9ff
sky-100
#e0f2fe
sky-200
#bae6fd
sky-300
#7dd3fc
sky-400
#38bdf8
sky-500
#0ea5e9
sky-600
#0284c7
sky-700
#0369a1
sky-800
#075985
sky-900
#0c4a6e
sky-950
#082f49

blue

blue-50
#eff6ff
blue-100
#E7EFFF
blue-200
#C3D7FF
blue-300
#87AEFF
blue-400
#4C86FF
blue-500
#105EFF
blue-600
#0D4ED2
blue-700
#0A3DA6
blue-800
#082D79
blue-900
#051C4C
blue-950
#041028

indigo

indigo-50
#eef2ff
indigo-100
#e0e7ff
indigo-200
#c7d2fe
indigo-300
#a5b4fc
indigo-400
#818cf8
indigo-500
#6366f1
indigo-600
#4f46e5
indigo-700
#4338ca
indigo-800
#3730a3
indigo-900
#312e81
indigo-950
#1e1b4b

violet

violet-50
#f5f3ff
violet-100
#ede9fe
violet-200
#ddd6fe
violet-300
#c4b5fd
violet-400
#a78bfa
violet-500
#8b5cf6
violet-600
#7c3aed
violet-700
#6d28d9
violet-800
#5b21b6
violet-900
#4c1d95
violet-950
#2e1065

purple

purple-50
#faf5ff
purple-100
#f3e8ff
purple-200
#e9d5ff
purple-300
#d8b4fe
purple-400
#c084fc
purple-500
#a855f7
purple-600
#9333ea
purple-700
#7e22ce
purple-800
#6b21a8
purple-900
#581c87
purple-950
#3b0764

fuchsia

fuchsia-50
#fdf4ff
fuchsia-100
#fae8ff
fuchsia-200
#f5d0fe
fuchsia-300
#f0abfc
fuchsia-400
#e879f9
fuchsia-500
#d946ef
fuchsia-600
#c026d3
fuchsia-700
#a21caf
fuchsia-800
#86198f
fuchsia-900
#701a75
fuchsia-950
#4a044e

pink

pink-50
#fdf2f8
pink-100
#fce7f3
pink-200
#fbcfe8
pink-300
#f9a8d4
pink-400
#f472b6
pink-500
#ec4899
pink-600
#db2777
pink-700
#be185d
pink-800
#9d174d
pink-900
#831843
pink-950
#500724

rose

rose-50
#fff1f2
rose-100
#ffe4e6
rose-200
#fecdd3
rose-300
#fda4af
rose-400
#fb7185
rose-500
#f43f5e
rose-600
#e11d48
rose-700
#be123c
rose-800
#9f1239
rose-900
#881337
rose-950
#4c0519

primary

primary-DEFAULT
#105EFF
primary-hover
#4C86FF

secondary

secondary-DEFAULT
#87AEFF

content

content-primary
#F2F3F7
content-secondary
#C6CBD9

Typography

Typography

Font Families


font-sans

Aa

ui-sans-serifsystem-uisans-serif"Apple Color Emoji""Segoe UI Emoji""Segoe UI Symbol""Noto Color Emoji"

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890 /&*()?<>+-=$@%!”[]{}

font-xs
0.75rem
The quick brown fox jumps over the lazy dog.
font-sm
0.75rem
The quick brown fox jumps over the lazy dog.
font-base
0.875rem
The quick brown fox jumps over the lazy dog.
font-lg
1rem
The quick brown fox jumps over the lazy dog.
font-xl
1.25rem
The quick brown fox jumps over the lazy dog.
font-2xl
1.5rem
The quick brown fox jumps over the lazy dog.
font-3xl
1.875rem
The quick brown fox jumps over the lazy dog.
font-4xl
2.25rem
The quick brown fox jumps over the lazy dog.
font-5xl
3rem
The quick brown fox jumps over the lazy dog.
font-6xl
3.75rem
The quick brown fox jumps over the lazy dog.
font-7xl
4.5rem
The quick brown fox jumps over the lazy dog.
font-8xl
6rem
The quick brown fox jumps over the lazy dog.
font-9xl
8rem
The quick brown fox jumps over the lazy dog.

font-serif

Aa

ui-serifGeorgiaCambria"Times New Roman"Timesserif

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890 /&*()?<>+-=$@%!”[]{}

font-xs
0.75rem
The quick brown fox jumps over the lazy dog.
font-sm
0.75rem
The quick brown fox jumps over the lazy dog.
font-base
0.875rem
The quick brown fox jumps over the lazy dog.
font-lg
1rem
The quick brown fox jumps over the lazy dog.
font-xl
1.25rem
The quick brown fox jumps over the lazy dog.
font-2xl
1.5rem
The quick brown fox jumps over the lazy dog.
font-3xl
1.875rem
The quick brown fox jumps over the lazy dog.
font-4xl
2.25rem
The quick brown fox jumps over the lazy dog.
font-5xl
3rem
The quick brown fox jumps over the lazy dog.
font-6xl
3.75rem
The quick brown fox jumps over the lazy dog.
font-7xl
4.5rem
The quick brown fox jumps over the lazy dog.
font-8xl
6rem
The quick brown fox jumps over the lazy dog.
font-9xl
8rem
The quick brown fox jumps over the lazy dog.

font-mono

Aa

ui-monospaceSFMono-RegularMenloMonacoConsolas"Liberation Mono""Courier New"monospace

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890 /&*()?<>+-=$@%!”[]{}

font-xs
0.75rem
The quick brown fox jumps over the lazy dog.
font-sm
0.75rem
The quick brown fox jumps over the lazy dog.
font-base
0.875rem
The quick brown fox jumps over the lazy dog.
font-lg
1rem
The quick brown fox jumps over the lazy dog.
font-xl
1.25rem
The quick brown fox jumps over the lazy dog.
font-2xl
1.5rem
The quick brown fox jumps over the lazy dog.
font-3xl
1.875rem
The quick brown fox jumps over the lazy dog.
font-4xl
2.25rem
The quick brown fox jumps over the lazy dog.
font-5xl
3rem
The quick brown fox jumps over the lazy dog.
font-6xl
3.75rem
The quick brown fox jumps over the lazy dog.
font-7xl
4.5rem
The quick brown fox jumps over the lazy dog.
font-8xl
6rem
The quick brown fox jumps over the lazy dog.
font-9xl
8rem
The quick brown fox jumps over the lazy dog.

Font Weights

font-thin
100
The quick brown fox jumps over the lazy dog.
font-extralight
200
The quick brown fox jumps over the lazy dog.
font-light
300
The quick brown fox jumps over the lazy dog.
font-normal
400
The quick brown fox jumps over the lazy dog.
font-medium
500
The quick brown fox jumps over the lazy dog.
font-semibold
600
The quick brown fox jumps over the lazy dog.
font-bold
700
The quick brown fox jumps over the lazy dog.
font-extrabold
800
The quick brown fox jumps over the lazy dog.
font-black
900
The quick brown fox jumps over the lazy dog.

Spacing

0
0px

Content

1
0.25rem

Content

2
0.5rem

Content

3
0.75rem

Content

4
1rem

Content

5
1.25rem

Content

6
1.5rem

Content

7
1.75rem

Content

8
2rem

Content

9
2.25rem

Content

10
2.5rem

Content

11
2.75rem

Content

12
3rem

Content

14
3.5rem

Content

16
4rem

Content

20
5rem

Content

24
6rem

Content

28
7rem

Content

32
8rem

Content

36
9rem

Content

40
10rem

Content

44
11rem

Content

48
12rem

Content

52
13rem

Content

56
14rem

Content

60
15rem

Content

64
16rem

Content

72
18rem

Content

80
20rem

Content

96
24rem

Content

px
1px

Content

0.5
0.125rem

Content

1.5
0.375rem

Content

2.5
0.625rem

Content

3.5
0.875rem

Content

Border

rounded-none
0px

Content

rounded-sm
0.125rem

Content

rounded-DEFAULT
0.25rem

Content

rounded-md
0.375rem

Content

rounded-lg
0.5rem

Content

rounded-xl
0.75rem

Content

rounded-2xl
1rem

Content

rounded-3xl
1.5rem

Content

rounded-full
9999px

Content