Features Install Components Integrations Tokens White Paper
v0.5.0 — 30 components

Build faster with stoked-ds

A lightweight, accessible React design system with zero-runtime CSS. Ship beautiful interfaces without the performance overhead.

Built for modern React apps

Everything you need to build accessible, performant user interfaces.

Zero-Runtime CSS

CSS Modules with CSS custom properties. No JavaScript overhead at runtime. Your bundle stays lean and fast.

Accessible

WAI-ARIA compliant with keyboard navigation. Built-in focus management and screen reader support.

TypeScript First

Full type definitions for every component. IntelliSense-powered development experience out of the box.

30 Components

Form controls, feedback, data display, layout, and navigation. Everything you need to build complete applications.

Dark & Light Themes

Dark mode by default. Switch with a single data-theme attribute. Tokens adapt automatically.

Tree-Shakeable

Import only what you need. ESM exports ensure unused components are eliminated from your bundle.

Up and running in minutes

Install from npm and start building right away.

1. Install the package

Add stoked-ds to your project using your preferred package manager.

npm install stoked-ds

2. Import and use

Import components and styles, then use them in your React app.

import { Button, Input } from 'stoked-ds';
import 'stoked-ds/dist/index.css';

function App() {
  return (
    <div data-theme="dark">
      <Input placeholder="Enter your name" />
      <Button variant="solid">Submit</Button>
    </div>
  );
}

3. Use design tokens (optional)

Import CSS tokens to use the same variables in your custom styles.

@import 'stoked-ds/dist/tokens/index.css';

.my-card {
  background: var(--stoked-color-surface);
  border-radius: var(--stoked-radius-xl);
  box-shadow: var(--stoked-shadow-md);
  padding: var(--stoked-spacing-6);
}

30 components, ready to use

Organized by category. Every component is fully typed, accessible, and themeable.

Form Controls

8
B

Button

Solid, outline, ghost, and link variants with multiple sizes

I

Input

Text input with label, helper text, and error states

S

SearchInput

Input with search icon and Enter-to-search action

C

Checkbox

Single or multiple selection with controlled state

R

Radio

Single selection with RadioGroup container

S

Select

Dropdown selection with custom styling

T

Switch

Toggle on/off with accessible labeling

G

ButtonGroup

Toggle group for mutually exclusive options

Feedback

7
A

Alert

Informational messages with variant support

M

Modal

Dialog overlays with focus trap and backdrop

T

Toast

Temporary notification popups with auto-dismiss

S

Spinner

Circular loading indicator with CSS keyframes

P

Progress

Progress bar with animated stripes and indeterminate

K

Skeleton

Content placeholder with pulse and wave animation

T

Tooltip

Contextual information on hover or focus

Data Display

8
B

Badge

Status indicators and labels with color variants

T

Tag

Removable labels with solid and outline variants

A

Avatar

User images with initials fallback and sizes

C

Card

Content containers with header and footer slots

S

StatCard

Metric card with icon, value, trend, and status

A

Accordion

Collapsible content sections with smooth animation

T

Tabs

Tabbed navigation with keyboard support

T

Table

Data tables with responsive styling

Layout

2
S

Sidebar

Collapsible navigation with sections and items

A

AppShell

Layout wrapper with sidebar, header, and content area

Navigation

2
B

Breadcrumb

Hierarchical navigation trail with custom separators

P

Pagination

Page navigation with smart ellipsis handling

Works with your favorite libraries

Optional adapters that connect popular React libraries with stoked-ds styling and tokens. Import only what you need.

Available

React Hook Form

Form and FormField wrappers that connect RHF Controller with stoked-ds Input, Select, Checkbox, Radio, and Switch.

import { Form, FormField } from 'stoked-ds/integrations/react-hook-form';

<FormField control={form.control} name="email"
  render={({ field, error }) => (
    <Input {...field} label="Email" error={error?.message} />
  )}
/>
Available

TanStack Table

DataTable component with sorting, pagination, loading states, and row click using stoked-ds Table primitives.

Available

react-day-picker

DatePicker and DateRangePicker with calendar popup, min/max dates, and stoked-ds theming.

Available

react-select

AdvancedSelect with search, multi-select, creatable, and async loading styled with stoked-ds tokens.

Available

Recharts

Themed LineChart, BarChart, AreaChart, and PieChart pre-configured with stoked-ds design tokens.

Planned

React Flow

Styled node components using Card, Badge, and Button for building workflow editors and flow diagrams.

Consistent design tokens

CSS custom properties for colors, spacing, typography, and more. Use them in your own styles for a cohesive look.

Colors

Spacing

Typography

Manrope Display Inter Body Text JetBrains Mono

Border Radius

Shadows

Transitions

--stoked-duration-fast: 100ms --stoked-duration-normal: 200ms --stoked-duration-slow: 300ms --stoked-easing-default: cubic-bezier(0.4, 0, 0.2, 1)
/* Import all tokens */
@import 'stoked-ds/dist/tokens/index.css';

/* Or import individual token files */
@import 'stoked-ds/dist/tokens/colors.css';
@import 'stoked-ds/dist/tokens/spacing.css';
@import 'stoked-ds/dist/tokens/typography.css';