Arcane Jaspr
A Flutter-like UI component library for Jaspr web applications. Write familiar Dart code, get semantic HTML + CSS.
Works everywhere: Full interactivity on both hydrated Jaspr apps and static sites.
The Problem: Web Development in Dart
Building web UIs in Dart traditionally means wrestling with raw HTML and CSS strings:
Raw HTML + CSS (The Pain)
<div style="display: flex; flex-direction: column; gap: 8px; width: 100%;">
<label style="font-size: 0.875rem; font-weight: 500; color: var(--text-secondary);">
Username
</label>
<input
type="text"
placeholder="Enter username"
style="
padding: 10px 14px;
font-size: 0.875rem;
border: 1px solid var(--border-color);
border-radius: 8px;
background: var(--surface);
color: var(--text-primary);
outline: none;
transition: border-color 0.15s ease, box-shadow 0.15s ease;
"
/>
<span style="font-size: 0.75rem; color: var(--text-muted);">
Choose a unique username
</span>
</div>
Problems:
- No autocomplete for CSS properties
- Typos become runtime bugs
- Copy-paste styling everywhere
- No type safety
Jaspr (Better, but...)
div(
styles: Styles(raw: {
'display': 'flex',
'flex-direction': 'column',
'gap': '8px',
'width': '100%',
}),
[
label(
styles: Styles(raw: {
'font-size': '0.875rem',
'font-weight': '500',
'color': 'var(--text-secondary)',
}),
[text('Username')],
),
input(
type: InputType.text,
attributes: {'placeholder': 'Enter username'},
styles: Styles(raw: {
'padding': '10px 14px',
'font-size': '0.875rem',
'border': '1px solid var(--border-color)',
'border-radius': '8px',
'background': 'var(--surface)',
'color': 'var(--text-primary)',
// ... more CSS strings
}),
[],
),
span(
styles: Styles(raw: {'font-size': '0.75rem', 'color': 'var(--text-muted)'}),
[text('Choose a unique username')],
),
],
)
Still requires:
- Memorizing CSS property names
- String-based values with no validation
- Manual theming integration
Arcane Jaspr (The Solution)
ArcaneTextInput(
label: 'Username',
placeholder: 'Enter username',
helperText: 'Choose a unique username',
onChanged: (value) => print(value),
)
That's it. One component, type-safe, themed, accessible.
Flutter Developers Feel at Home
If you know Flutter, you already know Arcane Jaspr:
| Flutter | Arcane Jaspr |
|---|---|
TextField(decoration: InputDecoration(...)) |
ArcaneTextInput(label: ..., placeholder: ...) |
DropdownButton(items: [...]) |
ArcaneSelector(options: [...]) |
Column(children: [...]) |
ArcaneColumn(children: [...]) |
Container(padding: ..., child: ...) |
ArcaneDiv(styles: ArcaneStyleData(...), children: [...]) |
ElevatedButton(onPressed: ...) |
ArcaneButton.primary(onPressed: ...) |
Type-Safe Styling with Enums
No more magic strings. Every CSS property is an enum:
// Flutter
Container(
padding: EdgeInsets.all(16),
decoration: BoxDecoration(
color: Colors.surface,
borderRadius: BorderRadius.circular(8),
boxShadow: [BoxShadow(...)],
),
child: child,
)
// Arcane Jaspr
ArcaneDiv(
styles: const ArcaneStyleData(
padding: PaddingPreset.lg, // Not 'padding': '16px'
background: Background.surface, // Not 'background': 'var(--surface)'
borderRadius: Radius.md, // Not 'border-radius': '8px'
shadow: Shadow.md, // Not 'box-shadow': '0 4px 6px...'
),
children: [child],
)
Real-World Examples
Searchable Dropdown (ArcaneSelector)
Raw HTML approach - ~150 lines of HTML, CSS, and JavaScript
Arcane Jaspr approach:
ArcaneSelector<String>(
label: 'Country',
options: [
ArcaneSelectorOption(value: 'us', label: 'United States', icon: flagUs),
ArcaneSelectorOption(value: 'uk', label: 'United Kingdom', icon: flagUk),
ArcaneSelectorOption(value: 'ca', label: 'Canada', icon: flagCa),
],
value: selectedCountry,
onChanged: (value) => setState(() => selectedCountry = value),
searchable: true, // Built-in search
clearable: true, // Built-in clear button
size: SelectorSize.md, // Enum, not 'height': '40px'
dropdownDirection: DropdownDirection.down, // Type-safe positioning
)
Inline Editable Text (ArcaneMutableText)
The old way: Build a text display, build an input, manage edit state, handle keyboard events, style both states...
Arcane Jaspr:
ArcaneMutableText(
value: documentTitle,
placeholder: 'Untitled Document',
onSave: (newTitle) => updateTitle(newTitle),
trigger: MutableTextTrigger.click, // or .doubleClick, .icon
inputType: MutableTextInputType.text, // or .multiline, .number
displayStyle: MutableTextStyle.subtle, // or .prominent, .minimal
selectAllOnEdit: true,
)
Features
- 75+ Components - Buttons, inputs, dialogs, navigation, data display, and more
- One-Line Theming - 20+ built-in themes with full customization
- Static Site Support - Automatic JavaScript fallbacks when hydration is unavailable
- Type-Safe Styling -
ArcaneStyleDatawith enum-based CSS properties - Firebase Auth - Built-in authentication UI with OAuth support
- Accessible - ARIA attributes, keyboard navigation, semantic HTML
Installation
dependencies:
arcane_jaspr: ^2.5.0
Quick Start
import 'package:arcane_jaspr/arcane_jaspr.dart';
class App extends StatelessComponent {
@override
Component build(BuildContext context) {
return ArcaneApp(
theme: ArcaneTheme.green,
child: ArcaneScreen(
header: const ArcaneBar(titleText: 'My App'),
child: ArcaneContainer(
child: ArcaneColumn(
children: [
const ArcaneHeadline('Welcome'),
ArcaneButton.primary(
label: 'Get Started',
onPressed: () {},
),
],
),
),
),
);
}
}
Theming
Change your entire app's look with one line:
ArcaneApp(
theme: ArcaneTheme.blue, // or .green, .purple, .orange, etc.
child: MyApp(),
)
Available Themes
| Category | Themes |
|---|---|
| Primary | red, orange, yellow, green, blue, indigo, purple, pink |
| Neutral | darkGrey, grey, lightGrey, white, black |
| OLED | oledRed, oledGreen, oledBlue, oledPurple, oledWhite |
Theme Customization
ArcaneApp(
theme: ArcaneTheme.blue.copyWith(
themeMode: ThemeMode.dark,
radius: 0.75, // Corner roundness
surfaceOpacity: 0.9, // Glass effect
),
child: MyApp(),
)
Components at a Glance
Inputs
ArcaneTextInput(label: 'Email', placeholder: 'you@example.com')
ArcaneSelector(options: [...], value: selected, searchable: true)
ArcaneCheckbox(checked: true, onChanged: (_) {})
ArcaneSlider(value: 50, min: 0, max: 100)
ArcaneMutableText(value: 'Click to edit', onSave: (v) {})
Layout
ArcaneRow(children: [...])
ArcaneColumn(children: [...])
ArcaneCard(child: ...)
ArcaneContainer(maxWidth: MaxWidth.lg, child: ...)
Navigation
ArcaneBar(titleText: 'App', trailing: [...])
ArcaneSidebar(children: [...])
ArcaneTabs(tabs: [...])
ArcaneDropdownMenu(trigger: ..., items: [...])
Display
ArcaneAvatar(imageUrl: '...', size: 48)
ArcaneBadge(label: 'New', variant: BadgeVariant.success)
ArcaneProgressBar(value: 0.75)
ArcaneDataTable(columns: [...], rows: [...])
Feedback
ArcaneDialog(title: 'Confirm', child: ...)
ArcaneToast(message: 'Saved!')
ArcaneAlertBanner(message: 'Success!', variant: AlertVariant.success)
Static Site Support
ArcaneApp automatically injects JavaScript fallbacks for static sites built with jaspr build. All interactive components work without hydration:
ArcaneApp(
theme: ArcaneTheme.green,
child: MyContent(), // Works on static sites!
)
Documentation
Full documentation with live examples: arcanearts.github.io/arcane_jaspr
License
GNU Public
Libraries
- aliases
- Shorthand A* aliases for all Arcane* components.
- arcane_jaspr
- component/auth/forgot_password_card
- component/auth/login_card
- component/auth/signup_card
- component/card/card
- component/card/card_section
- component/card/feature_card
- component/card/flexi_cards
- component/card/integration_card
- component/card/pricing_card
- component/card/stat_card
- component/card/surface_card
- component/card/testimonial_card
- component/collection/card_carousel
- component/collection/collection
- component/collection/infinite_carousel
- component/data/data_table
- component/data/static_table
- component/data/timeline
- component/data/tracker
- component/data/tree_view
- component/dialog/command
- component/dialog/confirm
- component/dialog/dialog
- component/dialog/input
- component/dialog/item_picker
- component/dialog/time
- component/dialog/toast
- component/dialog/toast_manager
- component/dialog/toast_types
- component/feedback/loader
- component/feedback/status_badge
- component/feedback/tooltip
- component/form/auth/auth_divider
- component/form/auth/auth_form_card
- component/form/auth/auth_input
- component/form/field
- component/form/field_wrapper
- component/form/provider
- component/html/arcane_cat_image
- component/html/arcane_image
- component/html/arcane_input
- component/html/arcane_label
- component/html/arcane_link
- component/html/arcane_span
- component/html/arcane_text
- component/html/code_block
- component/html/div
- component/html/header
- component/html/heading
- component/html/index
- component/html/lists
- component/html/main
- component/html/main_element
- component/html/paragraph
- component/html/quote
- component/html/section
- component/html/side_content
- component/html/svg
- component/html/table
- component/input/calendar
- component/input/checkbox
- component/input/color_input
- component/input/combobox
- component/input/date_picker
- component/input/datetime_picker
- component/input/fab
- component/input/file_upload
- component/input/formatted_input
- component/input/mutable_text
- component/input/mutable_text_types
- component/input/number_input
- component/input/otp_input
- component/input/radio_group
- component/input/search
- component/input/selector
- component/input/selector_types
- component/input/slider
- component/input/slider_types
- component/input/tag_input
- component/input/text_input
- component/input/time_picker
- component/input/toggle_group
- component/input/toggle_switch
- component/interactive/accordion
- component/interactive/back_to_top
- component/interactive/disclosure
- component/interactive/expander
- component/layout/aspect_ratio
- component/layout/auth_layout
- component/layout/auth_split_layout
- component/layout/carpet
- component/layout/dashboard_layout
- component/layout/drawer
- component/layout/feature_showcase
- component/layout/flow
- component/layout/gutter
- component/layout/hero_section
- component/layout/logo_carousel
- component/layout/radio_cards
- component/layout/resizable
- component/layout/scroll_area
- component/layout/scroll_rail
- component/layout/section
- component/layout/section_header
- component/layout/sheet
- component/layout/sheet_types
- component/layout/tabs
- component/navigation/dot_indicator
- component/navigation/header
- component/navigation/pagination
- component/screen/chat_screen
- component/screen/fill_screen
- component/screen/screen
- component/support/app
- component/typography/headline
- component/typography/text
- component/view/alert
- component/view/animated_counter
- component/view/arrow_link
- component/view/auth_branding_panel
- component/view/avatar
- component/view/badge
- component/view/bar
- component/view/callout
- component/view/center_body
- component/view/check_list
- component/view/chip
- component/view/code_snippet
- component/view/code_window
- component/view/divider
- component/view/empty_state
- component/view/fade_edge
- component/view/game_tile
- component/view/glass
- component/view/gradient_text
- component/view/hovercard
- component/view/icon
- component/view/kbd
- component/view/map/arcane_map
- component/view/map/map_data
- component/view/map/map_projection
- component/view/map/map_style
- component/view/map/paths/usa_paths
- component/view/map/paths/world_paths
- component/view/marquee
- component/view/meter
- component/view/popover
- component/view/progress_bar
- component/view/rating_stars
- component/view/separator
- component/view/settings_section
- component/view/skeleton
- component/view/slot_counter
- component/view/stat_display
- component/view/status_indicator
- component/view/stepper
- component/view/switcher
- component/view/tile
- core/props/accordion_props
- core/props/alert_props
- core/props/animated_counter_props
- core/props/arrow_link_props
- core/props/aspect_ratio_props
- core/props/auth_branding_panel_props
- core/props/auth_layout_props
- core/props/auth_split_layout_props
- core/props/avatar_props
- core/props/badge_props
- core/props/bar_props
- core/props/calendar_props
- core/props/callout_props
- core/props/card_props
- core/props/card_section_props
- core/props/carpet_props
- core/props/center_body_props
- core/props/check_list_props
- core/props/checkbox_props
- core/props/chip_props
- core/props/code_snippet_props
- core/props/code_window_props
- core/props/color_input_props
- core/props/command_props
- core/props/confirm_dialog_props
- core/props/dashboard_layout_props
- core/props/data_table_props
- core/props/date_picker_props
- core/props/dialog_props
- core/props/disclosure_props
- core/props/divider_props
- core/props/dot_indicator_props
- core/props/drawer_props
- core/props/empty_state_props
- core/props/expander_props
- core/props/fab_props
- core/props/fade_edge_props
- core/props/feature_card_props
- core/props/feature_showcase_props
- core/props/field_wrapper_props
- core/props/file_upload_props
- core/props/flexi_cards_props
- core/props/flow_props
- core/props/game_tile_props
- core/props/glass_props
- core/props/gradient_text_props
- core/props/gutter_props
- core/props/header_props
- core/props/hero_section_props
- core/props/hovercard_props
- core/props/input_dialog_props
- core/props/integration_card_props
- core/props/item_picker_props
- core/props/kbd_props
- core/props/loader_props
- core/props/logo_carousel_props
- core/props/marquee_props
- core/props/meter_props
- core/props/number_input_props
- core/props/otp_input_props
- core/props/pagination_props
- core/props/popover_props
- core/props/pricing_card_props
- core/props/progress_props
- core/props/radio_cards_props
- core/props/radio_group_props
- core/props/rating_stars_props
- core/props/resizable_props
- core/props/scroll_area_props
- core/props/scroll_rail_props
- core/props/search_props
- core/props/section_header_props
- core/props/section_props
- core/props/select_props
- core/props/separator_props
- core/props/settings_section_props
- core/props/skeleton_props
- core/props/slider_props
- core/props/slot_counter_props
- core/props/stat_card_props
- core/props/stat_display_props
- core/props/static_table_props
- core/props/status_badge_props
- core/props/status_indicator_props
- core/props/stepper_props
- core/props/surface_card_props
- core/props/switcher_props
- core/props/tabs_props
- core/props/tag_input_props
- core/props/testimonial_card_props
- core/props/text_input_props
- core/props/tile_props
- core/props/time_dialog_props
- core/props/time_picker_props
- core/props/timeline_props
- core/props/toast_props
- core/props/toggle_group_props
- core/props/toggle_switch_props
- core/props/tooltip_props
- core/props/tracker_props
- core/props/tree_view_props
- core/renderers
- core/theme_provider
- provider/auth_guard
- provider/auth_guard_export
- provider/auth_guard_stub
- provider/auth_provider
- provider/auth_provider_export
- provider/auth_provider_stub
- service/auth_service
- service/auth_service_export
- service/auth_service_stub
- service/auth_state
- stylesheets/codex/codex_stylesheet
- stylesheets/codex/renderers/accordion
- stylesheets/codex/renderers/alert
- stylesheets/codex/renderers/animated_counter
- stylesheets/codex/renderers/arrow_link
- stylesheets/codex/renderers/aspect_ratio
- stylesheets/codex/renderers/auth_branding_panel
- stylesheets/codex/renderers/auth_layout
- stylesheets/codex/renderers/auth_split_layout
- stylesheets/codex/renderers/avatar
- stylesheets/codex/renderers/badge
- stylesheets/codex/renderers/bar
- stylesheets/codex/renderers/calendar
- stylesheets/codex/renderers/callout
- stylesheets/codex/renderers/card
- stylesheets/codex/renderers/card_section
- stylesheets/codex/renderers/carpet
- stylesheets/codex/renderers/center_body
- stylesheets/codex/renderers/check_list
- stylesheets/codex/renderers/checkbox
- stylesheets/codex/renderers/chip
- stylesheets/codex/renderers/code_snippet
- stylesheets/codex/renderers/code_window
- stylesheets/codex/renderers/codex_renderers
- stylesheets/codex/renderers/color_input
- stylesheets/codex/renderers/command
- stylesheets/codex/renderers/confirm_dialog
- stylesheets/codex/renderers/dashboard_layout
- stylesheets/codex/renderers/data_table
- stylesheets/codex/renderers/date_picker
- stylesheets/codex/renderers/dialog
- stylesheets/codex/renderers/disclosure
- stylesheets/codex/renderers/divider
- stylesheets/codex/renderers/dot_indicator
- stylesheets/codex/renderers/drawer
- stylesheets/codex/renderers/empty_state
- stylesheets/codex/renderers/expander
- stylesheets/codex/renderers/fab
- stylesheets/codex/renderers/fade_edge
- stylesheets/codex/renderers/feature_card
- stylesheets/codex/renderers/feature_showcase
- stylesheets/codex/renderers/field_wrapper
- stylesheets/codex/renderers/file_upload
- stylesheets/codex/renderers/flexi_cards
- stylesheets/codex/renderers/flow
- stylesheets/codex/renderers/form
- stylesheets/codex/renderers/game_tile
- stylesheets/codex/renderers/glass
- stylesheets/codex/renderers/gradient_text
- stylesheets/codex/renderers/gutter
- stylesheets/codex/renderers/header
- stylesheets/codex/renderers/hero_section
- stylesheets/codex/renderers/hovercard
- stylesheets/codex/renderers/input_dialog
- stylesheets/codex/renderers/integration_card
- stylesheets/codex/renderers/item_picker
- stylesheets/codex/renderers/kbd
- stylesheets/codex/renderers/loader
- stylesheets/codex/renderers/logo_carousel
- stylesheets/codex/renderers/marquee
- stylesheets/codex/renderers/meter
- stylesheets/codex/renderers/number_input
- stylesheets/codex/renderers/otp_input
- stylesheets/codex/renderers/pagination
- stylesheets/codex/renderers/popover
- stylesheets/codex/renderers/pricing_card
- stylesheets/codex/renderers/progress
- stylesheets/codex/renderers/radio_cards
- stylesheets/codex/renderers/radio_group
- stylesheets/codex/renderers/rating_stars
- stylesheets/codex/renderers/resizable
- stylesheets/codex/renderers/scroll_area
- stylesheets/codex/renderers/scroll_rail
- stylesheets/codex/renderers/search
- stylesheets/codex/renderers/section
- stylesheets/codex/renderers/section_header
- stylesheets/codex/renderers/select
- stylesheets/codex/renderers/separator
- stylesheets/codex/renderers/settings_section
- stylesheets/codex/renderers/skeleton
- stylesheets/codex/renderers/slider
- stylesheets/codex/renderers/slot_counter
- stylesheets/codex/renderers/stat_card
- stylesheets/codex/renderers/stat_display
- stylesheets/codex/renderers/static_table
- stylesheets/codex/renderers/status_badge
- stylesheets/codex/renderers/status_indicator
- stylesheets/codex/renderers/stepper
- stylesheets/codex/renderers/surface_card
- stylesheets/codex/renderers/switcher
- stylesheets/codex/renderers/tabs
- stylesheets/codex/renderers/tag_input
- stylesheets/codex/renderers/testimonial_card
- stylesheets/codex/renderers/text_input
- stylesheets/codex/renderers/tile
- stylesheets/codex/renderers/time_dialog
- stylesheets/codex/renderers/time_picker
- stylesheets/codex/renderers/timeline
- stylesheets/codex/renderers/toast
- stylesheets/codex/renderers/toggle_group
- stylesheets/codex/renderers/toggle_switch
- stylesheets/codex/renderers/tooltip
- stylesheets/codex/renderers/tracker
- stylesheets/codex/renderers/tree_view
- stylesheets/shadcn/renderers/accordion
- stylesheets/shadcn/renderers/alert
- stylesheets/shadcn/renderers/animated_counter
- stylesheets/shadcn/renderers/arrow_link
- stylesheets/shadcn/renderers/aspect_ratio
- stylesheets/shadcn/renderers/auth_branding_panel
- stylesheets/shadcn/renderers/auth_layout
- stylesheets/shadcn/renderers/auth_split_layout
- stylesheets/shadcn/renderers/avatar
- stylesheets/shadcn/renderers/badge
- stylesheets/shadcn/renderers/bar
- stylesheets/shadcn/renderers/calendar
- stylesheets/shadcn/renderers/callout
- stylesheets/shadcn/renderers/card
- stylesheets/shadcn/renderers/card_section
- stylesheets/shadcn/renderers/carpet
- stylesheets/shadcn/renderers/center_body
- stylesheets/shadcn/renderers/check_list
- stylesheets/shadcn/renderers/checkbox
- stylesheets/shadcn/renderers/chip
- stylesheets/shadcn/renderers/code_snippet
- stylesheets/shadcn/renderers/code_window
- stylesheets/shadcn/renderers/color_input
- stylesheets/shadcn/renderers/command
- stylesheets/shadcn/renderers/confirm_dialog
- stylesheets/shadcn/renderers/dashboard_layout
- stylesheets/shadcn/renderers/data_table
- stylesheets/shadcn/renderers/date_picker
- stylesheets/shadcn/renderers/dialog
- stylesheets/shadcn/renderers/disclosure
- stylesheets/shadcn/renderers/divider
- stylesheets/shadcn/renderers/dot_indicator
- stylesheets/shadcn/renderers/drawer
- stylesheets/shadcn/renderers/empty_state
- stylesheets/shadcn/renderers/expander
- stylesheets/shadcn/renderers/fab
- stylesheets/shadcn/renderers/fade_edge
- stylesheets/shadcn/renderers/feature_card
- stylesheets/shadcn/renderers/feature_showcase
- stylesheets/shadcn/renderers/field_wrapper
- stylesheets/shadcn/renderers/file_upload
- stylesheets/shadcn/renderers/flexi_cards
- stylesheets/shadcn/renderers/flow
- stylesheets/shadcn/renderers/form
- stylesheets/shadcn/renderers/game_tile
- stylesheets/shadcn/renderers/glass
- stylesheets/shadcn/renderers/gradient_text
- stylesheets/shadcn/renderers/gutter
- stylesheets/shadcn/renderers/header
- stylesheets/shadcn/renderers/hero_section
- stylesheets/shadcn/renderers/hovercard
- stylesheets/shadcn/renderers/input_dialog
- stylesheets/shadcn/renderers/integration_card
- stylesheets/shadcn/renderers/item_picker
- stylesheets/shadcn/renderers/kbd
- stylesheets/shadcn/renderers/loader
- stylesheets/shadcn/renderers/logo_carousel
- stylesheets/shadcn/renderers/marquee
- stylesheets/shadcn/renderers/meter
- stylesheets/shadcn/renderers/number_input
- stylesheets/shadcn/renderers/otp_input
- stylesheets/shadcn/renderers/pagination
- stylesheets/shadcn/renderers/popover
- stylesheets/shadcn/renderers/pricing_card
- stylesheets/shadcn/renderers/progress
- stylesheets/shadcn/renderers/radio_cards
- stylesheets/shadcn/renderers/radio_group
- stylesheets/shadcn/renderers/rating_stars
- stylesheets/shadcn/renderers/resizable
- stylesheets/shadcn/renderers/scroll_area
- stylesheets/shadcn/renderers/scroll_rail
- stylesheets/shadcn/renderers/search
- stylesheets/shadcn/renderers/section
- stylesheets/shadcn/renderers/section_header
- stylesheets/shadcn/renderers/select
- stylesheets/shadcn/renderers/separator
- stylesheets/shadcn/renderers/settings_section
- stylesheets/shadcn/renderers/shadcn_renderers
- stylesheets/shadcn/renderers/skeleton
- stylesheets/shadcn/renderers/slider
- stylesheets/shadcn/renderers/slot_counter
- stylesheets/shadcn/renderers/stat_card
- stylesheets/shadcn/renderers/stat_display
- stylesheets/shadcn/renderers/static_table
- stylesheets/shadcn/renderers/status_badge
- stylesheets/shadcn/renderers/status_indicator
- stylesheets/shadcn/renderers/stepper
- stylesheets/shadcn/renderers/surface_card
- stylesheets/shadcn/renderers/switcher
- stylesheets/shadcn/renderers/tabs
- stylesheets/shadcn/renderers/tag_input
- stylesheets/shadcn/renderers/testimonial_card
- stylesheets/shadcn/renderers/text_input
- stylesheets/shadcn/renderers/tile
- stylesheets/shadcn/renderers/time_dialog
- stylesheets/shadcn/renderers/time_picker
- stylesheets/shadcn/renderers/timeline
- stylesheets/shadcn/renderers/toast
- stylesheets/shadcn/renderers/toggle_group
- stylesheets/shadcn/renderers/toggle_switch
- stylesheets/shadcn/renderers/tooltip
- stylesheets/shadcn/renderers/tracker
- stylesheets/shadcn/renderers/tree_view
- stylesheets/shadcn/shadcn_stylesheet
- stylesheets/stylesheet
- theme/color_seed
- theme/css_generator
- theme/font_config
- theme/index
- Theme generation system for Arcane Jaspr.
- theme/palette
- theme/palette_generator
- theme/radius_config
- util/appearance/colors
- util/arcane
- util/auth/password_policy
- util/design_tokens
- util/interactivity/arcane_scripts
- Copy button interactivity scripts.
- util/interactivity/scripts/dialog/chat_scripts
- util/interactivity/scripts/dialog/dialog_scripts
- util/interactivity/scripts/dialog/drawer_scripts
- util/interactivity/scripts/dialog/email_dialog_scripts
- util/interactivity/scripts/dialog/item_picker_scripts
- util/interactivity/scripts/dialog/modal_scripts
- util/interactivity/scripts/dialog/popover_scripts
- util/interactivity/scripts/dialog/sheet_scripts
- util/interactivity/scripts/dialog/time_dialog_scripts
- util/interactivity/scripts/dialog/toast_scripts
- util/interactivity/scripts/dialog/tooltip_scripts
- util/interactivity/scripts/input/calendar_scripts
- util/interactivity/scripts/input/checkbox_scripts
- util/interactivity/scripts/input/color_input_scripts
- util/interactivity/scripts/input/combobox_scripts
- util/interactivity/scripts/input/date_picker_scripts
- util/interactivity/scripts/input/file_upload_scripts
- util/interactivity/scripts/input/formatted_input_scripts
- util/interactivity/scripts/input/input_scripts
- util/interactivity/scripts/input/mutable_text_scripts
- util/interactivity/scripts/input/number_input_scripts
- util/interactivity/scripts/input/otp_input_scripts
- util/interactivity/scripts/input/radio_scripts
- util/interactivity/scripts/input/tag_input_scripts
- util/interactivity/scripts/input/time_picker_scripts
- util/interactivity/scripts/input/toggle_switch_scripts
- util/interactivity/scripts/navigation/accordion_scripts
- util/interactivity/scripts/navigation/back_to_top_scripts
- util/interactivity/scripts/navigation/chip_scripts
- util/interactivity/scripts/navigation/command_palette_scripts
- util/interactivity/scripts/navigation/dot_indicator_scripts
- util/interactivity/scripts/navigation/dropdown_scripts
- util/interactivity/scripts/navigation/pagination_scripts
- util/interactivity/scripts/navigation/resizable_scripts
- util/interactivity/scripts/navigation/selector_scripts
- util/interactivity/scripts/navigation/steps_scripts
- util/interactivity/scripts/navigation/tabs_scripts
- util/interactivity/scripts/navigation/timeline_scripts
- util/interactivity/scripts/navigation/tracker_scripts
- util/interactivity/scripts/navigation/tree_view_scripts
- util/interactivity/scripts/scripts
- util/interactivity/scripts/slider_scripts
- util/interactivity/scripts/theme/rainbow_scripts
- util/interactivity/scripts/view/map_scripts
- util/interactivity/scripts/view/view_scripts
- util/style_types/arcane_color
- util/style_types/arcane_style_data
- util/style_types/borders
- util/style_types/colors
- util/style_types/effects
- util/style_types/index
- Barrel export for all style types
- util/style_types/layout
- util/style_types/spacing
- util/style_types/style_presets
- util/style_types/typography