Build your Julia
web app with Suite.jl
Accessible, composable UI components for Therapy.jl. Extract, customize, and own the code just like shadcn/ui.
Components that just work
Every component is accessible, dark-mode ready, and designed with warm neutrals.
| Component | Tier | Tests |
|---|---|---|
| Button | Pure Styling | 62 |
| Dialog | Island | 103 |
| Calendar | Island | 119 |
Julia Developer
using Suite
Own your components
Extract any component into your project. Customize it freely. No lock-in.
using Suite
# Extract and customize — just like shadcn/ui
Suite.extract(:Card, "src/components/")
# Then use your own copy:
Card(
CardHeader(
CardTitle("Welcome"),
CardDescription("Your new Julia web app")
),
CardContent(
Button(variant="default", "Get Started"),
Button(variant="outline", "Learn More")
)
)Why Suite.jl?
shadcn/ui Parity
Every component matches shadcn/ui behavior, styling, and accessibility. If you know shadcn, you know Suite.jl.
Copy-Paste Friendly
Own the code, not a dependency. Extract any component into your project and customize it freely.
Accessible by Default
WAI-ARIA compliant. Keyboard navigation. Focus management. Screen reader friendly. No extra work needed.
Dark Mode Built-in
Every component ships with light and dark mode. Toggle with one click. No configuration required.
5 Built-in Themes
Default, Ocean, Minimal, Nature, Islands. Apply a theme in one kwarg. Extract with a theme baked in.
Pure Julia + Wasm
Write UI logic in Julia. Compile to WebAssembly for interactivity. No JavaScript framework required.
50+
Components
2300+
Tests
3
Tiers
5
Themes
Three Implementation Tiers
Button, Badge, Card, Alert, Input, Table, Label, Typography, Avatar, Breadcrumb, Progress, Skeleton, Separator...
Dialog, Accordion, Tabs, Slider, Calendar, Select, Command, DropdownMenu, Sheet, NavigationMenu, Toggle, Switch, Popover, Tooltip...
Slider widget for notebooks — same Wasm interactivity plus bond protocol for @bind integration with Sessions.jl and Pluto