arcane_jaspr 3.1.0
arcane_jaspr: ^3.1.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.
3.1.0 - 2026-03-13 #
Changed #
-
Flutter-First Primary Surface
package:arcane_jaspr/arcane_jaspr.dartnow exposes a curated Flutter-shaped surface instead of re-exporting raw Jaspr and DOM APIs- Added
Widget,StatelessWidget,StatefulWidget,State,InheritedWidget,BuildContext,Key, and the normalrunApppath on the primary import - Moved low-level HTML wrappers and raw Jaspr escape hatches onto explicit secondary imports
-
Secondary Surface Split
- Added
package:arcane_jaspr/flutter.dart - Added
package:arcane_jaspr/html.dart - Added
package:arcane_jaspr/web.dart - Updated package internals that still needed low-level access to import those surfaces explicitly
- Added
-
Developer Experience Reset
- Removed HTML-first wrappers from the primary docs path and rewrote the default documentation flow around the Flutter-first authoring model
- Added plain Jaspr versus Arcane Jaspr comparison examples in the docs intro to explain the intended Flutter-like goal directly
- Reworked the docs demo system around a central registry and generated component catalog output to keep examples and counts in sync
- Updated the repo-owned Oracular ArcaneJaspr templates to teach the new primary surface instead of old Jaspr component base classes
Added #
- Primary Surface Guardrails
- Added
tool/check_primary_surface.dartto scan docs, demos, and templates for banned primary-surface examples such as old component base classes,htmlFor, and explicit generic angle-bracket usage
- Added
Removed #
- Counter Smoke App
- Removed the temporary counter smoke app fixture created during the parity reset work
2.9.1 Unreleased #
Changed #
Props Consolidation - Shared Type System
- Created
lib/core/shared/size.dartwith unifiedComponentSizeenum supporting both naming conventions:sm,md,lg(preferred)small,medium,large(aliases pointing to same values)
- Created
lib/core/shared/variants.dartwith standardized variant enums:ColorVariant: primary, secondary, destructive, success, warning, infoStyleVariant: solid, outline, ghost, link
- Updated 25+ props files to use shared types instead of component-specific enums
- Standardized on "destructive" naming (not "error") across all components
ArcaneMenuItem Refactored to Sealed Classes
- Converted
ArcaneMenuItemfrom single class with boolean flags to sealed class hierarchy - New type-safe menu item classes:
MenuItemAction- Standard clickable menu item with label, icon, shortcutMenuItemSeparator- Visual divider between menu itemsMenuItemCheckbox- Toggleable checkbox menu itemMenuItemRadio- Radio button menu item (mutually exclusive selection)MenuItemSubmenu- Nested submenu containerMenuItemLabel- Non-interactive label/header
- All menu renderers (DropdownMenu, ContextMenu, Menubar) updated to use pattern matching
- Enables compile-time exhaustiveness checking for menu item handling
Form Components Unified into SimpleForm
- Merged
NewsletterFormandWaitlistForminto unifiedSimpleFormcomponent - New
SimpleFormPropswith factory constructors:SimpleFormProps.newsletter()- Email signup with inline layoutSimpleFormProps.waitlist()- Waitlist form with optional name collectionSimpleFormProps.contact()- Contact form with name, email, message
- New
SimpleFormFieldclass for flexible field definitions:SimpleFormFieldType: text, email, password, phone, url, textarea- Custom validation via
validatorcallback - Labels, placeholders, hints, and required field support
- Convenience wrapper components:
ArcaneSimpleForm- General purpose formArcaneNewsletterForm- Email signup (uses SimpleForm internally)ArcaneWaitlistForm- Waitlist form (uses SimpleForm internally)ArcaneContactForm- Contact form (uses SimpleForm internally)
Removed #
Form Component Files Deleted
- Removed
lib/core/props/newsletter_form_props.dart(useSimpleFormProps) - Removed
lib/stylesheets/shadcn/renderers/newsletter_form.dart(usesimple_form.dart) - Removed
lib/component/form/newsletter_form.dart(usesimple_form.dart)
Added #
ArcaneIcon Semantic Aliases
- Added
ArcaneIcon.key()alias mapping tokey-roundicon for intuitive usage in security-related UI - Added
ArcaneIcon.map()alias for the map icon (resolves conflict with Dart'sMaptype)
Fixed #
Browser Scrollbar Styling
ArcaneAppnow injects stylesheet CSS into the document<head>usingDocument.head()instead of inside the#arcane-rootdivArcaneAppnow adds the brightness class (dark/light) to the<html>element usingDocument.html()CssGeneratornow outputs CSS variables onhtml.dark/html.lightselectors in addition to.dark/.light, enabling scrollbar pseudo-elements to access theme variables- Document-level scrollbars now properly inherit theme colors (
--background,--primary) and match the styling of other scrollbars
Changed #
Redesigned Light Themes for Richer Surfaces
PaletteGeneratorlight mode tinting increased for more visible surface contrast:- Secondary: 6% darken + 12% primary blend (was 4%/8%)
- Accent: 10% darken + 18% primary blend (was 6%/12%)
- Border: 18% darken + 10% primary blend (was 12%/6%)
- Card: 2% darken + 5% primary blend (was 1%/3%)
- Muted: 5% darken + 10% primary blend (was 3%/6%)
ShadcnThemepastel themes now use white backgrounds with richer tinted surfaces:- All pastel themes changed from tinted backgrounds to clean white (
0xFFffffff) - Explicit secondary/accent colors provide visible contrast against white
- Professional aesthetic with clearly distinguishable surface layers
- All pastel themes changed from tinted backgrounds to clean white (
CodexThemenow includes bold, gaming-inspired light surface colors:- Each theme (green, red, blue, purple, cyan, pink, orange, rainbow) defines explicit
lightSecondary,lightAccent, andlightBorder - Light surfaces are intentionally more saturated for gaming aesthetic
- Example: green theme uses mint surfaces (
0xFFd1fae5,0xFFa7f3d0,0xFF6ee7b7)
- Each theme (green, red, blue, purple, cyan, pink, orange, rainbow) defines explicit
CodexStylesheet.lightSeedupdated to use explicit theme colors instead of auto-derivation
ArcaneMap Theme Integration
MapStylenow uses CSS variables by default for theme-aware styling:- Default constructor uses
var(--card),var(--muted),var(--border),var(--primary), etc. - Added
MapStyle.themedconstant (default behavior, uses CSS variables) - Existing
MapStyle.darkandMapStyle.lightstill available with explicit hex colors
- Default constructor uses
- Added
arcaneMapCssconstant with comprehensive styling:- ShadCN (base): Clean map styling with theme variable integration
- Hover effects on regions and location pins
- Debug tooltip styling using theme colors
- Codex (overrides): Neon cyberpunk map effects
- Glowing region hover effects with
drop-shadow - Pulsing pin animation (
arcane-map-pin-pulse) - Neon-styled debug tooltips with text shadows
- Added
data-active="true"attribute to active regions for CSS targeting
ArcaneFlexiCards Smooth Animation
- Redesigned height animation to use CSS Grid
grid-template-rowstechnique:0frto1frtransition provides smooth, natural height animation- No more abrupt "jumping" when long text is revealed
- Footer animates smoothly alongside text content
- Text no longer "shuffles" during resize:
- Inner content wrapper with
overflow: hiddenandmin-height: 0 - Opacity fades in sync with height animation
- Inner content wrapper with
- Improved transition timing with
cubic-bezier(0.4, 0, 0.2, 1)easing - Non-hovered cards now shrink to
0.8xwhen another card is hovered - Added
.hoveredCSS class for additional styling hooks - Codex renderer enhancements:
- Icon glows on hover with
box-shadow - Title changes to primary color with text shadow on hover
- Card background tints toward primary on hover
- Border glows with neon effect
- Icon glows on hover with
Improved TOC and Sidebar Tree Styles
arcaneTocTreeLinesCss- Complete rewrite with proper tree line visualization:- ShadCN (base): Clean, subtle tree lines using
var(--border)color - Added scrollbar styling for
.kb-tocand.toc-containerclasses - Uses
::beforefor horizontal branches and::afterfor vertical connectors - Proper last-child handling with L-bend effect (vertical line stops at center for last item)
- Fading tree lines at deeper nesting levels
- Single-child detection to hide unnecessary tree lines
- Smaller, more subtle link styling (12px font, refined padding)
- Codex (overrides): Glowing neon tree lines with
var(--primary)color - Thicker 2px lines with
box-shadowglow effects - Border-left accent on links with glowing active states
- Monospace font for headers
- ShadCN (base): Clean, subtle tree lines using
arcaneSidebarTreeStyles- Complete rewrite matching Codex website patterns:- ShadCN (base): Clean tree lines with subtle borders
- Added
.sidebar-treecontainer class support - Consistent tree line implementation using
::before/::afterpseudo-elements - Added collapsible section styles (
.sidebar-details,.sidebar-summary,.sidebar-chevron) - Added animated chevron icon for expand/collapse
- Proper
.sidebar-linkstyling with hover and active states - Fading tree lines at deeper nesting levels
- Codex (overrides): Cyberpunk glowing tree lines
- Thicker 2px primary-colored lines with glow effects
- Border-left accent styling with straight left edges
- Prominent glow on active states with inset box-shadow
- Monospace font for section headers and summaries
Added #
Project Conventions
- Documented sitemap generation: Use
--sitemap-domain=<domain>withjaspr build - Documented favicon convention: Place
icon.pnginweb/assets/directory - Updated
ArcaneDocsLayoutto useassets/icon.pngfor favicon with apple-touch-icon support
Documentation Components (migrated from arcane_inkwell)
ArcaneDocsLayout- Documentation-style layout with fixed header, sidebar, main content, and optional TOCArcaneToc- Table of contents component with tree-line visual connectorsArcanePageNav- Previous/Next page navigation component for documentationTocEntryandPageNavItemdata classes for navigation
Content Utilities
calculateReadingTime()- Calculate estimated reading time from markdown contentReadingTimeResultclass with minutes, wordCount, and formatted text getterString.readingTimeextension for convenient reading time calculation
Prose CSS Styles
arcaneProseStyles- Typography styles for markdown content (headings, paragraphs, lists, links, blockquotes, tables)arcaneProseCodeStyles- Syntax highlighting for code blocks (light/dark modes with GitHub-inspired colors)arcaneCodeCopyButtonStyles- Copy button styles for code blocksarcaneCalloutStyles- Callout/admonition block styles (note, tip, important, warning, caution)arcaneSidebarTreeStyles- Tree-line navigation styles for sidebarsarcaneTocTreeLinesCss- Tree-line styles for table of contentsarcaneAllDocsStyles- Combined constant with all documentation stylesarcaneDocsLayoutResponsiveCss- Responsive breakpoint styles for docs layoutarcanePageNavCss- Hover styles for page navigation
2.9.0 Unreleased #
Added #
ArcaneColor Type-Safe Theme Colors
- Added
ArcaneColorenum with all theme color references (primary, accent, success, warning, info, destructive, etc.) .cssgetter returns CSS variable reference (e.g.,var(--accent)).withOpacity(double)returns propercolor-mix()syntax for transparency- Added
GradientStopclass for gradient color stops with optional positions - Added
GradientBuilderclass for fluent gradient building API - Added
List<ArcaneColor>.toGradient()extension for easy gradient creation
ArcaneGradientText Enhancements
- Added
.successconstructor (success to accent gradient) - Added
.warningconstructor (warning to destructive gradient) - Added
.errorconstructor (destructive to warning gradient) - Added
.rainbowconstructor (multi-color theme gradient) - Added
.fromColors()factory forList<ArcaneColor>with even distribution - Added
.custom()constructor forList<GradientStop>with custom positions - Added
GradientTextProps.buildGradient()method for unified gradient building
ArcaneButton CTA Enhancements
- Added
ButtonVariant.accentfor gradient background buttons (green-to-cyan in Codex, primary-to-secondary in ShadCN) - Added
hrefproperty to render button as anchor tag (<a>) for navigation CTAs - Added
showArrowproperty to display arrow indicator after label - Added
ArcaneButton.accent()named constructor - Updated both Codex and ShadCN renderers
CodexStylesheet Accent Variables
- Added
--codex-accent-gradientCSS variable for gradient backgrounds - Added
--codex-accent-glow-mediumCSS variable for button glows - Added
--codex-accent-borderCSS variable for accent-colored borders - Variables defined for all accent presets (green, red, blue, purple)
ArcaneCatImage Component
- Added
ArcaneCatImagecomponent for placeholder/testing images using cataas.com API - Supports
seedparameter for consistent random cats - Named constructors:
.gif()for animated cats,.says()for text overlay,.lazy()for lazy loading - Optional
apiWidthandapiHeightparameters for custom dimensions
CSS Design Token System
- Added spacing scale CSS variables (
--arcane-space-0through--arcane-space-32) - Added font size CSS variables (
--arcane-font-size-xsthrough--arcane-font-size-5xl) - Added font weight CSS variables (
--arcane-font-weight-normal,medium,semibold,bold) - Added
--arcane-transition-slower(300ms) for slower animations - Updated transitions to use
easetiming function for consistency
Unified Floating Component
- Added
ArcaneFloatingcomponent that consolidates Tooltip, Popover, and Hovercard into one - Named constructors:
.tooltip(),.tooltipCustom(),.popover(),.hovercard() - Unified
FloatingPropswithFloatingTrigger(hover, click, manual) andFloatingPosition(8 positions)
Unified Separator Component
- Merged
ArcaneDividerandArcaneSeparatorinto singleArcaneSeparatorcomponent - Named constructors:
.vertical(),.withLabel(),.withIcon(),.dashed(),.subtle(),.bold() - Combined feature sets: variants (standard/subtle/bold), dashed lines, labels, icons, custom colors
- Unified
SeparatorPropswithSeparatorVariantandSeparatorOrientationenums
Changed #
CodexStylesheet API Consistency
- Renamed
CodexAccentenum toCodexThemefor consistency withShadcnTheme - Renamed
accentparameter tothemeinCodexStylesheetconstructor - Migration:
CodexStylesheet(accent: CodexAccent.orange)->CodexStylesheet(theme: CodexTheme.orange)
Renderer CSS Variable Migration
- Migrated 800+ hardcoded style values across 60+ renderer files to use CSS variables
- All
transitionvalues now usevar(--arcane-transition-*)variables - All
border-radiusvalues now usevar(--arcane-radius-*)variables - All
gapvalues now usevar(--arcane-space-*)variables - All
font-sizevalues now usevar(--arcane-font-size-*)variables - All
font-weightvalues now usevar(--arcane-font-weight-*)variables - Updated both ShadCN and Codex stylesheets and renderers
Breaking Changes #
Stylesheet Now Required
ArcaneAppandArcaneWindownow require thestylesheetparameter (previously defaulted toShadcnStylesheet)- You must now explicitly choose a stylesheet for your app
- No fallback stylesheet behavior - explicit configuration required
Removed #
Dialog Component Consolidation
- Removed
ArcaneInputDialogcomponent - useArcaneDialogwith form inputs as children - Removed
ArcaneItemPickercomponent - useArcaneDialogwith custom list content - Removed
InputDialogPropsandItemPickerPropsclasses - Removed
inputDialog()anditemPicker()methods fromComponentRenderers - Removed ShadCN and Codex renderer implementations for
inputDialoganditemPicker - The unified
ArcaneDialognow handles all dialog use cases through composition
Divider Component Consolidation
- Removed
ArcaneDividercomponent - useArcaneSeparatorwith appropriate named constructor - Removed
ArcaneVerticalDivider- useArcaneSeparator.vertical() - Removed
DividerPropsandDividerVariant/DividerOrientationenums - Removed
divider()method fromComponentRenderers - Removed ShadCN and Codex renderer implementations for
divider - The unified
ArcaneSeparatornow handles all divider/separator use cases
Floating Component Consolidation
- Removed
ArcaneTooltipcomponent - useArcaneFloating.tooltip() - Removed
ArcaneTooltipCustomcomponent - useArcaneFloating.tooltipCustom() - Removed
ArcaneInfoTooltipcomponent - Removed
ArcanePopovercomponent - useArcaneFloating.popover() - Removed
ArcaneHovercardcomponent - useArcaneFloating.hovercard() - Removed
TooltipProps,PopoverProps,HovercardPropsclasses - Removed
tooltip(),popover(),hovercard()methods fromComponentRenderers - Removed ShadCN and Codex renderer implementations for
tooltip,popover,hovercard - The unified
ArcaneFloatingnow handles all floating UI patterns
Fixed #
Theme Color Consistency
- Fixed hardcoded HSL colors across 20+ component files to use theme CSS variables
- Replaced
hsl(142 76% 36%)withvar(--success) - Replaced
hsl(38 92% 50%)withvar(--warning) - Replaced
hsl(199 89% 48%)withvar(--info) - Fixed invalid
hsl(var(--x) / opacity)CSS syntax to usecolor-mix(in srgb, var(--x) X%, transparent)pattern - Fixed
ArcaneGradientText.brandto usevar(--primary)tovar(--accent)instead of info color
2.8.0 Unreleased #
Changed #
Component Consolidation and Folder Reorganization, and more! Check out the docs for new usage
Social Sign-In Buttons Consolidated (11 -> 1)
- Merged 10 individual social button files into single
SocialSignInButtoncomponent - New factory constructors:
.google(),.github(),.apple(),.microsoft(),.discord(),.twitter(),.facebook(),.linkedin(),.slack(),.gitlab() - Added
SocialProviderenum for programmatic provider selection
Menu System Unified
- Created shared
ArcaneMenuItemclass incore/props/menu_item_props.dart - Unified menu items across
ArcaneDropdownMenu,ArcaneContextMenu, andArcaneMenubar - Removed redundant
DropdownItemProps,ContextMenuItemProps, andMenubarItemProps
Dialog Components Consolidated
- Merged
ArcaneEmailDialogandArcaneTextInputDialogintoArcaneInputDialog - New factory constructors:
.text(),.email(),.password(),.multiline(),.number() - Added
InputDialogTypeenum
Removed #
Icon Button Close Factory
- Removed
ArcaneIconButton.close()factory constructor (redundant - useArcaneIconButton(icon: ArcaneIcon.x())instead)
Dropdown Menu Component
- Removed
ArcaneDropdownMenufrom navigation (consolidated with Select functionality)
Search Components Consolidated
- Merged
ArcaneSearchBarintoArcaneSearch - Added
ArcaneSearch.withResults()factory for dropdown results - Added
SearchResultclass (replacingArcaneSearchResult) - Extended
SearchPropswith results, resultsId, showDropdown, dropdownMaxHeight, width
Slider Components Consolidated
- Merged
ArcaneRangeSliderintoArcaneSlider - Added
ArcaneSlider.range()factory for range selection with two handles - Extended
SliderPropswith isRange, rangeMin, rangeMax, onRangeChanged ArcaneRangeSlideris now a deprecated typedef pointing toArcaneSlider.range()
DateTime Picker Components Consolidated
- Merged
ArcaneDatePickerandArcaneTimePickerintoArcaneDateTimePicker - New factory constructors:
.date()for date-only,.time()for time-only - Default constructor provides combined date and time picker
- Added
DateTimePickerModeenum (date, time, dateTime) - Added
DateTimePickerSizeenum (sm, md, lg)
Folder Reorganization
- New
component/menu/folder:dropdown_menu.dart,context_menu.dart,menubar.dart - New
component/card/folder:card.dart,feature_card.dart,pricing_card.dart,testimonial_card.dart,integration_card.dart,stat_card.dart,author_card.dart,surface_card.dart,flexi_cards.dart,card_section.dart - New
component/data/folder:data_table.dart,static_table.dart,tree_view.dart,timeline.dart,tracker.dart - Moved
disclosure.dartandexpander.darttocomponent/interactive/
Removed #
- Individual social button files (
google_button.dart,github_button.dart, etc.) ArcaneEmailDialog(useArcaneInputDialog.email())ArcaneTextInputDialog(useArcaneInputDialog.text())ArcaneCloseButton(useArcaneIconButton.close())- Duplicate
ArcaneAccordionfromexpander.dart(keep version ininteractive/accordion.dart) - Duplicate
ArcaneProgressBarandArcaneLoaderfromalert_banner.dart ArcaneCtaLink(useArcaneButtonwithhrefparameter orArcaneLinkfor links)ArcaneSearchBar(consolidated intoArcaneSearch- useArcaneSearch.withResults()for dropdown results)ArcaneRangeSlider(consolidated intoArcaneSlider- useArcaneSlider.range()for range mode)ArcaneDatePicker(consolidated intoArcaneDateTimePicker- use.date()factory)ArcaneTimePicker(consolidated intoArcaneDateTimePicker- use.time()factory)
Added #
Map Debug Mode
- Added
debugModeparameter toArcaneWorldMapandArcaneUSAMap - When enabled, hovering anywhere on the map shows lat/lng and SVG coordinates in a tooltip
- Clicking copies the coordinates to clipboard for easy location calibration
- Added
svgToLatLng()reverse conversion method toArcaneUSAMapProjection
Sidebar Enhancement
ArcaneSidebarSubMenu- Collapsible nested submenu itemsArcaneSidebarExpanded- Content visible only when sidebar is expandedArcaneSidebarCollapsed- Content visible only when sidebar is collapsedArcaneSidebarSeparator- Visual separator between groups- Added
hrefandtooltipproperties toArcaneSidebarItem
Architecture Migration Complete
The renderer-based architecture is now complete with 204 renderer methods in the interface and 123 component files using the renderer pattern. All visual components now delegate to context.renderers.xxx() for stylesheet-specific rendering.
One line changes your entire app's design:
ArcaneApp(
styleSheet: ShadcnStyleSheet(), // or CodexStyleSheet()
child: MyApp(),
)
Convenience Factory Methods for SlotCounterProps
Added factory constructors to SlotCounterProps for common use cases:
SlotCounterProps.latency()- Pre-configured for latency/ping displays withmssuffixSlotCounterProps.percentage()- Pre-configured for percentage displays with%suffixSlotCounterProps.currency()- Pre-configured for currency displays with$prefix
Changed #
Layout Components Migrated to Renderer Architecture
All layout components now delegate to the renderer system:
| Component | Renderer Method | Props Class |
|---|---|---|
ArcaneScrollRail |
context.renderers.scrollRail() |
ScrollRailProps |
ArcaneScrollRailLayout |
context.renderers.scrollRailLayout() |
ScrollRailLayoutProps |
ArcaneResizable |
context.renderers.resizable() |
ResizableProps |
ArcaneRadioCards |
context.renderers.radioCards() |
RadioCardsProps |
ArcaneChip |
context.renderers.arcaneChip() |
ArcaneChipProps |
ArcaneFlow |
context.renderers.flow() |
FlowProps |
ArcaneRow |
context.renderers.flow() |
FlowProps |
ArcaneColumn |
context.renderers.flow() |
FlowProps |
Naming Clarifications
ChipGroupPropsrenamed toSelectableChipGroupPropsto avoid conflict with existingChipGroupPropsArcaneResizablefactory constructors (sidebarLayout,splitView) now return properArcaneResizableinstances
Fixed #
Codex Demo API Corrections
ArcaneFlexiCardItemcorrected toFlexiCardItem(class was renamed)ArcanePrecorrected toArcaneCodeBlock(legacy name removed)CalloutStylecorrected toCalloutVariant(enum renamed)SlotCounterColorusage in demos now uses correct enum typeArcaneSlotCounterRow.countersnow correctly usesList<SlotCounterProps>instead of component list
Removed #
Dead Code Cleanup
- Removed unused
Arcaneclass fromlib/util/arcane.dart(had stale references to old theme system) - Removed empty
lib/stylesheets/codex/directory (was just a placeholder) - Removed hidden name warnings in
arcane_jaspr.dartfor non-existent exports
Old Token System (Fully Removed)
The legacy token system has been completely removed. Components now use CSS variables directly.
Deleted Files:
lib/util/tokens/tokens.dart- OldArcaneColors,ArcaneSpacing,ArcaneTypography,ArcaneRadius,ArcaneEffects,ArcaneLayout,ArcaneZIndexclasseslib/util/tokens/style_presets.dart- OldButtonStyle,InputStyle,CardStyle, etc.lib/util/tokens/common_styles.dart- Old common style mapslib/util/tokens/index.dart- Token barrel exportlib/util/tokens/styles/- All old style token fileslib/util/tools/styles.dart- OldArcaneStyleshelper classlib/util/tokens/directory - Completely removedlib/util/tools/directory - Completely removed
Updated Style Type Files: All enum-based style types now use direct CSS values instead of token references:
lib/util/style_types/borders.dart- Direct CSS variables (var(--border), etc.)lib/util/style_types/colors.dart- Direct CSS variables (var(--foreground), etc.)lib/util/style_types/effects.dart- Direct CSS values for shadows, transitionslib/util/style_types/layout.dart- Direct pixel/string values for z-index, max-widthlib/util/style_types/spacing.dart- Direct pixel values for spacinglib/util/style_types/typography.dart- Direct rem values for font sizes