arcane_jaspr 2.5.0
arcane_jaspr: ^2.5.0 copied to clipboard
A Jaspr web framework port of the Arcane UI component library. Build beautiful web applications with Dart using familiar Arcane patterns.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.5.0 #
Added #
Automatic Fallback Scripts for Static Sites
ArcaneApp now automatically injects JavaScript fallback scripts when Jaspr client hydration is unavailable (e.g., on static sites built with jaspr build).
- Zero configuration: Just use
ArcaneAppand interactivity works on static sites - Hydration-aware: Scripts detect if Jaspr hydration is active and skip themselves
- Comprehensive coverage: All interactive components (sliders, checkboxes, toggles, inputs, accordions, tabs, etc.)
- Opt-out available: Set
includeFallbackScripts: falseif not needed
// Works automatically on static sites
ArcaneApp(
theme: ArcaneTheme.green,
child: MyContent(),
)
// Opt out if using full Jaspr hydration
ArcaneApp(
includeFallbackScripts: false,
child: MyContent(),
)
New exports:
ArcaneScripts- Contains all fallback JavaScriptArcaneScriptsComponent- Component to manually inject scripts
Modular Script Organization
Scripts are now organized into separate files for maintainability:
SliderScripts- Range slidersInputScripts- Checkboxes, toggles, color pickers, file uploads, tag inputs, number inputsButtonScripts- Buttons, toggle buttons, cycle buttons, theme togglesNavigationScripts- Tabs, accordions, dropdowns, selectors, tree views, pagination, chipsDialogScripts- Dialogs, toasts, popovers, tooltips, drawers, mobile menus
Complete Component Coverage
JavaScript handlers added for all interactive components:
- Sliders and range sliders
- Color inputs with preset swatches
- Checkboxes and radio buttons
- Toggle switches and toggle buttons
- Cycle buttons (rotating options)
- Number inputs (+/- buttons)
- Tag inputs (add/remove tags)
- File uploads (dropzone and button styles)
- Theme toggles (fancy and simple)
- Tabs and accordions
- Dropdown selectors
- Tree views with expand/collapse
- Pagination controls
- Dismissible chips
- Back-to-top buttons
- Dialogs and modals
- Toasts and notifications
- Popovers and hovercards
- Tooltips
- Drawers and mobile menus
Codex Documentation Site
- Fixed interactive component demos on static site
- Custom layouts like
ArcaneDocsLayoutnow properly injectArcaneScriptsComponentfor fallback interactivity
Redesigned ArcaneSlider
Modern shadcn-inspired slider with cleaner aesthetics:
- Thinner, more elegant track (4-8px based on size)
- Refined thumb with border accent instead of heavy shadow
- Size variants:
SliderSize.sm,SliderSize.md,SliderSize.lg - Optional step markers (
showSteps: true) - Disabled state support
- Decimal place control for value display (
valueDecimals) - Better hit area for easier interaction
ArcaneSlider(
value: 50,
size: SliderSize.md,
step: 10,
showSteps: true,
onChanged: (v) => setState(() => value = v),
)
Enhanced ArcaneSearch
showIconparameter to optionally hide the search icon- Uses
ArcaneIcon.search(SVG) instead of emoji
Enhanced ArcaneSelector
Comprehensive upgrade with many new customization options:
Size Variants
SelectorSize.sm,SelectorSize.md,SelectorSize.lgfor different contexts
Multi-Select Support
multiSelect: trueto allow multiple selectionsvaluesandonMultiChangedfor multi-select state managementmaxSelectionsto limit number of selectionsshowCheckboxesto display checkboxes in optionsshowSelectedCountto display count badge when multiple selectedcloseOnSelectto control dropdown behavior after selection
Loading State
loading: trueshows spinner and loading textloadingTextto customize loading message
Form Integration
requiredto show required indicator asteriskhelperTextfor additional guidance below selectorerrorfor validation error messages
Dropdown Customization
maxDropdownHeightto control dropdown sizedropdownDirection(up/down) for positioningprefixto add icon/component before valuesearchPlaceholderto customize search input textemptyMessagefor custom "no results" text
Enhanced Options
ArcaneSelectorOption.subtitlefor secondary textArcaneSelectorOption.descriptionfor right-side textArcaneSelectorOption.searchKeywordsfor additional search termsArcaneSelectorOption.groupfor option groupingfilterFnfor custom search filtering logic
// Multi-select with all features
ArcaneSelector<String>(
label: 'Skills',
required: true,
multiSelect: true,
searchable: true,
values: selectedSkills,
maxSelections: 5,
helperText: 'Select up to 5 skills',
options: skills.map((s) => ArcaneSelectorOption(
value: s.id,
label: s.name,
subtitle: s.category,
)).toList(),
onMultiChanged: (v) => setState(() => selectedSkills = v),
)
Enhanced ArcaneCycleButton
- Options now embedded as data attributes for static site support
- Properly cycles through all options on click
- Added
.arcane-cycle-button-labeland.arcane-cycle-button-indicatorclasses for reliable JS targeting
Completely Rewritten Components for Static Site Support
The following components have been completely rewritten with proper class-based selectors and data attributes for reliable JavaScript interactivity on static sites:
ArcaneColorInput (Rewritten)
- Simplified, focused design with clear class structure
- Classes:
.arcane-color-input,.arcane-color-input-swatch,.arcane-color-input-native,.arcane-color-input-hex,.arcane-color-input-preset - Data attributes:
data-value,data-disabled,data-color(on presets) - Size variants via
ColorInputSizeenum (sm, md, lg) showHexInputparameter to optionally hide hex text input- Proper synchronization between native picker, hex input, and preset swatches
ArcaneColorInput(
value: '#10b981',
size: ColorInputSize.md,
label: 'Primary Color',
onChanged: (color) => print(color),
)
ArcaneThemeToggle (Rewritten)
- Now uses
<button>element for proper accessibility - Classes:
.arcane-theme-toggle,.arcane-theme-toggle-thumb,.arcane-theme-toggle-sun,.arcane-theme-toggle-moon - Data attribute:
data-theme("dark" or "light") - Size variants via
ThemeToggleSizeenum (sm, md, lg) - Proper ARIA attributes (
role="switch",aria-checked,aria-label) - Clean toggle animation with smooth transitions
ArcaneThemeToggle(
isDark: true,
size: ThemeToggleSize.md,
onChanged: (isDark) => print(isDark),
)
ArcaneThemeToggleSimple (Rewritten)
- Inline toggle with sun/moon labels
- Classes:
.arcane-theme-toggle-simple,.arcane-theme-toggle-simple-track,.arcane-theme-toggle-simple-thumb - Same accessibility improvements as main toggle
ArcaneNumberInput (Rewritten)
- Clean stepper design with +/- buttons
- Classes:
.arcane-number-input,.arcane-number-input-decrement,.arcane-number-input-increment,.arcane-number-input-display,.arcane-number-input-value - Data attributes:
data-value,data-min,data-max,data-step,data-decimals - Size variants via
NumberInputSizeenum (sm, md, lg) decimalsparameter for decimal place display- Proper button state management (disabled when at min/max)
ArcaneNumberInput(
value: 5,
min: 0,
max: 100,
step: 1,
size: NumberInputSize.md,
prefix: '\$',
onChanged: (value) => print(value),
)
Slider Start/End Indicators
Both ArcaneSlider and ArcaneRangeSlider now have visual indicators at the track boundaries:
- Start indicator (0%): Accent-colored vertical bar, more prominent
- End indicator (100%): Muted/accent-colored vertical bar
- 3px wide bars extending slightly beyond track height for visibility
- Makes slider boundaries immediately obvious to users
ArcaneTextArea Resize Enhancement
- Demo page now uses
resize: TextAreaResize.bothfor bidirectional resizing - Added
minWidthandminHeightconstraints in demo
JavaScript Handler Improvements
Completely rewritten JavaScript handlers in input_scripts.dart and button_scripts.dart:
Color Input Handler
- Targets
.arcane-color-inputcontainer - Synchronizes native picker, hex input, and preset swatches
- Updates
data-valueattribute for state tracking - Proper preset border highlighting
Number Input Handler
- Targets
.arcane-number-inputcontainer - Reads min/max/step/decimals from data attributes
- Updates display and button states on value change
- Proper clamping to min/max bounds
Theme Toggle Handler
- Targets
.arcane-theme-toggleand.arcane-theme-toggle-simple - Updates
data-themeattribute - Animates thumb position and icon opacity
- Updates background colors based on theme
Cycle Button Handler
- Targets
.arcane-cycle-button - Reads options from
data-options(pipe-delimited) - Updates
.arcane-cycle-button-labeltext - Spins
.arcane-cycle-button-indicatoron click
Enhanced ArcaneStyleData with New CSS Abstractions
This release significantly reduces the need for raw: CSS by adding type-safe enums for common CSS patterns.
Flex Shorthand (FlexPreset)
FlexPreset.none- No flex (0 0 auto)FlexPreset.initial- Initial flex (0 1 auto)FlexPreset.auto- Auto flex (1 1 auto)FlexPreset.expand- Expand to fill (1 1 0%)FlexPreset.fixed- Fixed size, no shrink (0 0 auto)FlexPreset.growOnly- Grow but don't shrink (1 0 auto)FlexPreset.shrinkOnly- Shrink but don't grow (0 1 auto)FlexPreset.equal- Equal distribution (1 1 0)
Grid Template Columns (GridColumns)
GridColumns.onethroughGridColumns.six- Fixed column countsGridColumns.autoFitSm/Md/Lg- Auto-fit with min widths (200px/280px/320px)GridColumns.autoFillSm/Md/Lg- Auto-fill with min widthsGridColumns.sidebar- Sidebar layout (280px 1fr)GridColumns.mainSidebar- Main with sidebar (1fr 300px)GridColumns.holyGrail- Classic three-column (200px 1fr 200px)
Grid Template Rows (GridRows)
GridRows.onethroughGridRows.three- Fixed row countsGridRows.auto- Auto rowsGridRows.headerContentFooter- App layout (auto 1fr auto)GridRows.minContent/GridRows.maxContent
Grid Utilities
GridAutoFlowenum - row, column, dense, rowDense, columnDensePlaceItemsenum - start, end, center, stretch, baselinePlaceContentenum - start, end, center, stretch, spaceBetween, spaceAround, spaceEvenly
Border Width Properties
borderWidth- All sidesborderLeftWidth,borderRightWidth,borderTopWidth,borderBottomWidth- Individual sides- Uses existing
BorderWidthenum (none, hairline, thin, medium, thick, heavy)
New Layout Component
ArcaneScrollRail - Sticky scrollable sidebar that maintains position independently of page scroll
ArcaneScrollRail- Base component with scroll persistenceArcaneScrollRailLayout- Complete two-column layout with scroll rail- Features:
- Sticky positioning relative to viewport
- Independent scrolling from main content
- Scroll position persistence via sessionStorage
- Customizable width, offsets, borders
- Custom scrollbar styling
ArcaneScrollRail(
width: '280px',
topOffset: '64px', // Below fixed header
scrollPersistenceId: 'sidebar',
children: [
// Navigation items...
],
)
Changed #
Improved CSS Abstraction
Before (raw CSS):
ArcaneDiv(
styles: ArcaneStyleData(
flexGrow: 1,
raw: {
'flex': '1',
'grid-template-columns': 'repeat(3, 1fr)',
'border-left-width': '3px',
'min-width': '0',
},
),
)
After (type-safe):
ArcaneDiv(
styles: ArcaneStyleData(
flex: FlexPreset.expand,
gridColumns: GridColumns.three,
borderLeftWidth: BorderWidth.thick,
minWidth: '0',
),
)
Fixed #
ArcaneSlider and ArcaneRangeSlider
- Interactivity: Fixed sliders being purely visual with no user interaction
- Root cause: Components rendered custom visual elements but had no event handlers or native input elements
- Fix: Added hidden native
<input type="range">elements that overlay the visual slider and capture user input - Both
ArcaneSliderandArcaneRangeSlidernow respond to drag/click interactions
ArcaneColorInput
- Click handling: Fixed color picker not opening when clicking the color swatch
- Root cause: Overlapping positioned elements blocked pointer events to the hidden color input
- Fix: Wrapped swatch in
<label>element and addedpointer-events: noneto visual layers, ensuring clicks reach the native color picker
ArcaneHovercard and ArcanePopover
- Hover functionality: Fixed hover events not triggering properly on
ArcaneHovercardandArcanePopover(hover mode)- Root cause: Events were on separate inner divs for trigger and content, causing premature close when mouse moved between them
- Fix: Events now placed on outer wrapper so mouse movement between trigger and content doesn't trigger close
- Removed unused
@cssstyles fields that were generating analyzer warnings
Documentation Site (Codex)
- Font loading: Added Google Fonts (Inter, Fira Code) via CSS imports - fonts now load correctly on GitHub Pages
- Base href: Fixed asset paths for GitHub Pages subdirectory hosting at
/arcane_jaspr/ - Theme consistency: Fonts now consistent between local development and production deployment
- Interactive demos: Added comprehensive JavaScript handlers for all interactive components on static site
- Input components: Range sliders, color inputs with preset swatches, number input increment/decrement, tag input add/remove, select dropdowns, toggle button groups, radio buttons, cycle buttons
- View components: Expanders/accordions expand/collapse, inline tabs selection, toast notifications, tree view node expand/collapse, popovers and hovercards on hover/click
- Navigation components: Drawer open/close with backdrop, sidebar nav item selection, bottom nav selection
Documentation #
- Updated docs_sidebar to use
borderLeftWidth: BorderWidth.thickinstead of raw CSS - Updated layout components to use
flex: FlexPreset.expandinstead ofraw: {'flex': '1'} - Added ArcaneScrollRail to component exports
2.4.1 #
Added #
New View Components
ArcaneHovercard- Hover-triggered floating card with rich interactive content, configurable delays, and multiple positions
Enhanced #
ArcanePopover
- Added
openDelayparameter for delayed opening in hover mode - Added
closeDelayparameter for delayed closing in hover mode - Both components now have feature parity with timer-based delay logic
Documentation #
- Added ArcaneHovercard documentation page
- Updated ArcanePopover documentation with delay properties
- Added demos for both components
2.4.0 #
Added #
New Input Components
ArcaneTagInput- Tag/chip input for collecting multiple values with add/remove functionalityArcaneNumberInput- Numeric input with increment/decrement controls and prefix/suffix supportArcaneFileUpload- File upload component with drag-and-drop support, dropzone/button/inline styles, andhelperTextparameterArcaneColorInput- Color picker with swatch display, hex input, and preset color swatches
New View Components
ArcaneCallout- Inline notice box for tips, warnings, and contextual information (info, success, warning, error, tip, note styles)ArcaneKbd- Keyboard shortcut display with raised, flat, and outline styles, pluscombo()factory for key combinationsArcaneMeter- Progress meter/gauge with bar, gradient, segmented, and circular stylesArcaneAlert- Inline alert for status messages with subtle, solid, outline, and accent stylesArcaneTreeView- Hierarchical tree structure with expand/collapse, selection modes, and line/clean/compact stylesArcanePopover- Floating content panel with click/hover/manual triggers and multiple positions
New Navigation Components
ArcaneBreadcrumbs- Navigation breadcrumb trail with chevron, slash, arrow, and dot separatorsArcanePagination- Page navigation controls with outline, filled, ghost, and simple styles (usesonPageChangecallback)
New Layout Components
ArcaneDrawer- Slide-in side panel from any screen edge (left, right, top, bottom) with multiple sizesArcaneTabBar- Simple inline tab bar for view switching (usesArcaneTabBarItem, index-based selection)
SVG Abstractions
ArcaneSvg- SVG wrapper component with size presets (xs, sm, md, lg, xl, xxl)ArcaneSvgPath- SVG path element with fill, stroke, and line cap/join attributesArcaneSvgCircle- SVG circle elementArcaneSvgRect- SVG rect element with corner radius supportArcaneSvgLine- SVG line elementArcaneSvgPolyline- SVG polyline elementArcaneSvgPolygon- SVG polygon elementArcaneSvgGroup- SVG group element with transform support
Enhanced ArcaneIcon
- Added 30+ new icon factory constructors:
plus,minus,trash,edit,download,upload,user,mail,heart,star,lock,bell,calendar,folder,file,image,code,terminal,link,globe,info,warning,error,success,refresh,filter,moreHorizontal,moreVertical,eye,eyeOff,send,loader
Documentation #
- Added comprehensive documentation for all new components in codex
- Added demos for all new components
- Updated navigation sidebar with new component entries
- Fixed documentation for
ArcanePaginationto use correctonPageChangecallback name - Updated inline tabs documentation to reflect
ArcaneTabBarAPI
2.2.0 #
Added #
Renamed HTML Components (with backwards-compatible aliases)
ArcaneCodeBlock- Renamed fromArcanePrefor clarity, withCodeBlockStyleenum (raw, code, minimal, inline, terminal)ArcaneQuote- Renamed fromArcaneBlockquoteArcaneBulletList- Renamed fromArcaneUnorderedListArcaneNumberedList- Renamed fromArcaneOrderedListArcaneSideContent- Renamed fromArcaneAside
New Style Enums
PaddingPreset.badge- Compact padding for badge/tag elements (2px 8px)PaddingPreset.inlineCode- Padding for inline code snippets (2px 6px)PaddingPreset.chip- Padding for chip/pill elements (4px 12px)Background.glassTint- Subtle glass tint effect (rgba 5%)Background.glassHeader- Glass header effect (rgba 3%)Background.glassOverlay- Glass overlay effect (rgba 8%)Background.destructive- Alias for error backgroundMaxHeightenum - Preset max-heights (none, sm, md, lg, codeBlock, xl, modal, screen)MinWidthenum - Preset min-widths (none, touchTarget, sm, md, lg)
Changed #
- Updated codex documentation site to use enum-based styling instead of raw CSS
- Factory constructors like
ArcaneButton.ghost()now recommended asArcaneButton(style: ButtonStyle.ghost) - All legacy HTML component names preserved as typedefs for backwards compatibility
Documentation #
- Added new enum values to spacing documentation (badge, inlineCode, chip)
- Added Glass Effects section to colors documentation
- Added MaxHeight and MinWidth sections to display documentation
2.1.0 #
Added #
Authentication System
ArcaneAuthProvider- Context provider for Firebase authenticationAuthGuard- Route protection for authenticated usersGuestGuard- Route protection for unauthenticated users (login/signup pages)JasprAuthService- Firebase Auth service via JS interop
Auth UI Components
ArcaneLoginCard- Complete login form with email/password and social optionsArcaneSignupCard- Registration form with terms acceptance and password policyArcaneForgotPasswordCard- Password reset request form
Social Sign-in Buttons
GithubSignInButton- GitHub OAuth buttonGoogleSignInButton- Google OAuth buttonAppleSignInButton- Apple Sign-In button
Auth Layouts
AuthSplitLayout- Two-column layout for auth pages (branding + form)AuthBrandingPanel- Branding content panel with tagline, features, testimonials
Auth Form Primitives
AuthInput- Styled input for auth formsAuthButton- Submit button for auth formsAuthDivider- "or continue with" dividerAuthSocialRow- Row of social sign-in buttonsAuthFormCard- Card container for auth forms
Auth Utilities
PasswordPolicy- Password validation with presets (weak, medium, strong)AuthState- Authentication state containerAuthUser- Authenticated user modelAuthMethod- Enum for auth methods (email, github, google, apple, anonymous)AuthStatus- Enum for auth status (unknown, loading, authenticated, unauthenticated, error)
Context Extensions
context.authState- Access current auth statecontext.currentUser- Access current usercontext.isAuthenticated- Check authentication statuscontext.signInWithGitHub()- Trigger GitHub OAuthcontext.signInWithGoogle()- Trigger Google OAuthcontext.signInWithApple()- Trigger Apple Sign-Incontext.signOut()- Sign out current user
Changed #
- Added
web: ^1.1.1dependency for Firebase JS interop - Added
http: ^1.6.0dependency for auth API calls - Updated documentation with authentication section
- Added auth demos to codex documentation site
Documentation #
- Rewrote root README with comprehensive component and auth documentation
- Created codex root README
- Expanded codex web README with detailed project structure
- Added authentication section to docs sidebar
- Added auth component demos
Tests #
- Added
auth_test.dartwith 45+ tests covering:- PasswordPolicy (weak, medium, strong presets and custom)
- AuthMethod enum
- AuthStatus enum
- AuthUser class
- AuthState class
2.0.0 #
Breaking Changes #
All components now use the Arcane* prefix consistently. This is a breaking change that removes backwards compatibility.
Migration Guide:
Components have been renamed from their short names to the full Arcane* prefix. Examples:
Button→ArcaneButtonCard→ArcaneCardDiv→ArcaneDivHeading→ArcaneHeadingSection→ArcaneSectionBox→ArcaneBoxRow→ArcaneRowColumn→ArcaneColumnCheckbox→ArcaneCheckboxSlider→ArcaneSliderSearch→ArcaneSearchToast→ArcaneToastBar→ArcaneBarGlass→ArcaneGlassScreen→ArcaneScreen- ... and all other components
Added #
aliases.dart- ShorthandA*typedefs for all components (e.g.,AButton = ArcaneButton)- Import with
import 'package:arcane_jaspr/aliases.dart'; - Provides shorter names while keeping
Arcane*as the primary API
- Import with
Changed #
- Renamed all components to use consistent
Arcane*prefix - HTML element wrappers now use
Arcane*prefix:Div→ArcaneDivNav→ArcaneNavAside→ArcaneAsideHeading→ArcaneHeadingParagraph→ArcaneParagraphMain→ArcaneMainHtmlSection→ArcaneHtmlSectionHtmlFooter→ArcaneHtmlFooterBlockquote→ArcaneBlockquotePre→ArcanePre
- Layout components renamed:
Box→ArcaneBoxRow→ArcaneRowColumn→ArcaneColumnSection→ArcaneSectionGutter→ArcaneGutterFlow→ArcaneFlowButtonPanel→ArcaneButtonPanelCenterBody→ArcaneCenterBody
- Input components renamed:
Checkbox→ArcaneCheckboxRadio→ArcaneRadioSlider→ArcaneSliderRangeSlider→ArcaneRangeSliderToggleSwitch→ArcaneToggleSwitchSearch→ArcaneSearchSelector→ArcaneSelectorCycleButton→ArcaneCycleButtonFAB→ArcaneFABThemeToggle→ArcaneThemeToggle
- View components renamed:
Bar→ArcaneBarGlass→ArcaneGlassExpander→ArcaneExpanderAccordion→ArcaneAccordionTooltip→ArcaneTooltipToast→ArcaneToastStaticTable→ArcaneStaticTableTimeline→ArcaneTimelineStepper→ArcaneStepper
- Navigation components renamed:
Sidebar→ArcaneSidebarSidebarItem→ArcaneSidebarItemBottomNavigationBar→ArcaneBottomNavigationBarBottomNavItem→ArcaneBottomNavItem
- Screen components renamed:
Screen→ArcaneScreenFillScreen→ArcaneFillScreen
- Dialog/Feedback components renamed:
ConfirmDialog→ArcaneConfirmDialogAlertDialog→ArcaneAlertDialog
- Collection components renamed:
Collection→ArcaneCollectionListView→ArcaneListViewGridView→ArcaneGridViewMasonryGrid→ArcaneMasonryGridCardCarousel→ArcaneCardCarousel
1.0.0 #
Added #
Core
ArcaneApp- Main application wrapper with theme supportArcaneTheme- Theming system with Supabase-style dark-first designContrastedColorScheme- Comprehensive color scheme with accent themes (violet, green, orange)
Input Components
ArcaneButton- Primary button with multiple variants and sizesArcaneIconButton- Icon-only button with hover statesCheckbox- Styled checkbox inputCycleButton- Button that cycles through optionsFAB- Floating action buttonSearch- Search input with iconSelector- Dropdown selector componentSlider- Range slider inputTextInput- Text input field with validation supportThemeToggle- Dark/light mode toggleToggleSwitch- On/off toggle switch
View Components
AnimatedCounter- Animated number counterAvatar- User avatar with fallback initialsBadge- Status badges with variantsBar- Horizontal bar componentArcaneCard- Card container with hover effectsCardSection- Section within a cardCenterBody- Centered content wrapperChip- Tag/chip componentCodeSnippet- Syntax-highlighted code blockDataTable- Interactive data tableDivider- Horizontal/vertical dividerExpander- Expandable/collapsible contentFeatureCard- Feature showcase cardGameTile- Game server tile with status indicatorsGlass- Glassmorphism containerGradientText- Text with gradient colorIntegrationCard- Integration showcase cardPricingCard- Pricing tier cardProgressBar- Progress indicator barRatingStars- Star rating displaySkeleton- Loading skeleton placeholderSocialIcons- Social media icon linksStatCard- Statistics display cardStaticTable- Simple static tableStatusIndicator- Online/offline status dotStepper- Multi-step progress indicatorTestimonialCard- Customer testimonial cardTile- Clickable tile componentTimeline- Vertical timeline display
Layout Components
ButtonPanel- Row/column of buttonsCarpet- Full-width background sectionCTABanner- Call-to-action bannerFlow- Flexbox flow layoutFooter- Page footer with linksGutter- Spacing/margin utilityHeroSection- Hero banner sectionLogoCarousel- Scrolling logo carouselRadioCards- Radio button card selectorSection- Page section wrapperArcaneTabs- Tabbed content container
Navigation Components
BottomNavigationBar- Mobile bottom navDropdownMenu- Dropdown menu with itemsHeader- Page header/navbarMobileMenu- Responsive mobile menuSidebar- Side navigation panel
Screen Components
Screen- Base screen wrapperFillScreen- Full-height screenNavigationScreen- Screen with navigation
Dialog Components
ArcaneDialog- Modal dialogConfirmDialog- Confirmation dialogTextInputDialog- Text input modalToast- Toast notification
Feedback Components
AlertBanner- Alert/notification bannerLoader- Loading spinnerTooltip- Hover tooltip
Form Components
Field- Form field with labelFieldWrapper- Field container with validationFormProvider- Form state managementNewsletterForm- Email signup form
Interactive Components
Accordion- Collapsible accordion panelsBackToTop- Scroll to top button
Typography
Headline- Styled heading component
Collection Components
CardCarousel- Horizontally scrolling cardsCollection- Grid/list collection view
Design Tokens
ArcaneTokens- Spacing, radius, shadows, transitionsCommonStyles- Reusable style mapsStylePresets- Pre-built component styles- Button, Card, Badge, Chip, Input, FAB, IconButton, Alert, Progress, Control styles
Utilities
ArcaneStyles- Style helper utilities- Color utilities and extensions