Unstyled UI components for your Design System

A headless library with 45+ accessible components. Bring your own styles and build a design system that works across React, Solid, Vue, and Svelte.

React Icon

React

Solid Icon

Solid

Vue Icon

Vue

Svelte Icon

Svelte

Truly Headless

No default styles to fight. Bring your own CSS — Panda, Tailwind, CSS-in-JS, or plain stylesheets.

Framework Agnostic

Write once, use everywhere. The same API works across React, Solid, Vue, and Svelte.

Accessible by Default

WAI-ARIA patterns baked in. Keyboard navigation and screen reader support out of the box.

State Machine Powered

Predictable behavior you can rely on. Complex interactions handled with edge cases covered.

import { Slider } from '@ark-ui/react/slider'
import { useState } from 'react'
  
export const MySlider = () => {
  const [value, setValue] = useState([30])
    
  return (
    <Slider.Root
      min={-50}
      max={50}
      value={value}
      onValueChange={(e) => setValue(e.value)}
    >
      <Slider.Label>Label</Slider.Label>
      <Slider.ValueText>{value}</Slider.ValueText>
      <Slider.Control>
        <Slider.Track>
          <Slider.Range />
        </Slider.Track>
        <Slider.Thumb index={0} />
      </Slider.Control>
    </Slider.Root>
  )
}

Designed for product teams and organizations

With support for a wide range of JS frameworks, you can create a design system that can be seamlessly integrated across multiple platforms and applications.

Get started

Driven by State Machines
to make your life easier.

React Icon
Vue Icon
Solid Icon
Svelte Icon

Utilizing state machines, Ark UI substantially cuts down on errors while ensuring predictable behavior in every component. Develop with confidence.

Join the Ark UI Community

For insights, support, and updates, connect on Discord. For real-time news, follow us on Twitter.

CS
SA
A
EA