Video Studio SDKv0.0.3
UI

UI overview

The editor shell, the design tokens powering it, the icon system, and the UI primitives you can use in your own panels.

The UI layer ships three things you'll actually touch when extending the SDK:

  1. A theme system — CSS custom properties for color, radius, motion, surface, border, text, and timeline/track styling. Overridable per-mode (light/dark) and per-instance.
  2. An icon system — a typed icon map (StudioIconMap) with ~100 semantic names. Override any icon globally; plugins can register their own.
  3. A UI component library — Button, Input, Dialog, Popover, Tooltip, Tabs, Slider, etc., all re-exported from @studio-dev/vsdk-ui through the @studio-dev/vsdk/ui subpath.

Import paths

Most UI primitives are exposed in two places — pick whichever import path fits your code:

Import pathWhat you get
@studio-dev/vsdkEverything, including Button, Input, hooks, provider
@studio-dev/vsdk/uiSame, but only UI-layer exports (smaller tree-shake target)
@studio-dev/vsdk-ui/components/<name>Direct, deep import of a single component
// All three work — pick one and be consistent.
import { Button, useStudioStore } from '@studio-dev/vsdk'
import { Button, useStudioStore } from '@studio-dev/vsdk/ui'
import { Button } from '@studio-dev/vsdk-ui/components/button'

What's underneath

LibraryRole
Tailwind v4Utility classes — including all studio tokens registered as --color-studio-*
Radix UI / Base UIHeadless behavior for Dialog, Popover, Dropdown, Select, Tabs, Toggle, Tooltip, etc.
class-variance-authorityVariant systems on Button, Badge, Toggle
Hugeicons + LucideDefault icon set (overridable)
dnd-kit, react-moveable, @tanstack/react-virtualTimeline DnD, transform handles, virtualization

You don't need to import these directly — VSDK wraps them. But it's useful context when reading source or composing your own panels.

On this page