Early days: 25 components shipped

chakra-ui-solid is a component system for building products with speed

Accessible SolidJS components for building high-quality web apps and design systems. Zero runtime CSS

Start building
pnpm add chakra-ui-solid

Requires SolidJS 2.0 · Panda CSS · ESM only

SolidSubtleOutline

Badge

Checkmark

Color Swatch

Spinner

p="4" borderWidth="1px"

Style props

bg.subtle
bg.emphasized
colorPalette.subtle

Semantic tokens

Hover me

Conditional styles

Render prop

Design system

Build your design system on top of chakra-ui-solid

Spend less time writing UI code and more time building a great experience for your customers.

  • Tokens. Streamline design decisions with semantic tokens

  • Typography. Set your font properties once and use them everywhere

  • Recipes. Design component variants with ease

import { defineChakraConfig } from "@chakra-ui-solid/panda-preset";

export default defineChakraConfig({
  theme: {
    extend: {
      semanticTokens: {
        colors: {
          brand: {
            value: { base: "{colors.teal.600}", _dark: "{colors.teal.400}" },
          },
        },
      },
    },
  },
  include: ["./src/**/*.{ts,tsx}"],
  outdir: "styled-system-app",
});

Parity

The same API and tokens, compiled into your own stylesheet

This is as close to Chakra v3 parity as is achievable without runtime CSS-in-JS. It isn’t a 1:1 port, and it doesn’t pretend to be one.

You get

  • Chakra v3’s component API, part for part
  • Its design system, through the official Panda preset
  • Its theming config in panda.config.ts: tokens, semantic tokens, recipes
  • Zag.js behavior, and the accessibility semantics that come with it
  • Style props, recipes, variants and colour mode

You don’t get

  • Style values computed while the app runs
  • asChild: polymorphism is a render prop, and it takes a function

Whichever owns your server, the build configures itself

Both run on the same Vite plugin, and it works out what our packages need from your dependency tree.

What isn’t here yet

This library ships one batch at a time

A page never appears before the component does, though a component can ship before its page. The sidebar is the reading list, not the inventory.

Charts are the one deliberate gap, and dependencies are the reason rather than styling. Chakra’s chart tier peer-depends on Recharts and React, and Solid has no charting substrate to bind to.