Getting StartedComponentsDesign TokensThemingTheme SynthesizerFrameworksAccessibilityUtilitiesServer RenderingBrowser SupportContributingChangelogApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip
ARC UIARC Radiant Components
v4.9DocsComponentsTokensSynthesizer
Getting StartedFrameworksServer RenderingDesign TokensThemingTheme SynthesizerTypographyUtilitiesAll ComponentsAccessibilityBrowser SupportChangelogContributingStatsApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip

Design Tokens

CSS custom properties that power every ARC UI component. Import@arclux/arc-ui/base.css to use them in your own styles.

Colors

--bg-deeprgb(3, 3, 7)bg-deep
--bg-surfacergb(10, 10, 15)bg-surface
--bg-basergb(10, 10, 15)bg-base
--bg-cardrgb(13, 13, 18)bg-card
--bg-elevatedrgb(17, 17, 22)bg-elevated
--text-primaryrgb(232, 232, 236)text-primary
--text-secondaryrgb(150, 152, 162)text-secondary
--text-mutedrgb(142, 142, 155)text-muted
--text-ghostrgb(133, 133, 154)text-ghost
--border-subtlergb(24, 24, 30)border-subtle
--border-defaultrgb(34, 34, 41)border-default
--border-brightrgb(51, 51, 64)border-bright
--accent-primaryrgb(77, 126, 247)accent-primary
--accent-secondaryrgb(149, 103, 255)accent-secondary
--color-successrgb(52, 211, 153)color-success
--color-warningrgb(245, 158, 11)color-warning
--color-errorrgb(240, 69, 69)color-error
--color-inforgb(59, 130, 246)color-info

Accents also ship -rgb channel triplets (--accent-primary-rgb,--accent-secondary-rgb) that glows, gradients, and focus rings compose viavar(). Override the base pair and the rest follows. See Theming.

Charts

Categorical series palette for arc-chart and data visualization. Assign hues in fixed order by series position. Never cycle or reshuffle them. The set is validated for color-vision-deficiency separation and contrast against --bg-card in both themes (series 1, 4, and 6 shift automatically in light mode). Status colors are reserved for state and are not part of this palette.

Each series also ships its channels, --chart-1-rgb through--chart-6-rgb, for tints of the same series (a band, an area fill, a highlighted range): rgba(var(--chart-2-rgb), 0.35). They follow the light-mode shifts with their solids, so a tint never falls out of step with its line.

--chart-1#4d7ef7chart-1
--chart-2#ea580cchart-2
--chart-3#0d9488chart-3
--chart-4#8b5cf6chart-4
--chart-5#db2777chart-5
--chart-6#65a30dchart-6

Spacing

--space-xs4px
--space-sm8px
--space-md16px
--space-lg24px
--space-xl40px
--space-2xl64px
--space-3xl96px

Typography

ARC UI ships no font files, only role slots. Assign a face to each role via--font-<role>-family and every component follows. The samples below render live from the slots; --font-accent is a back-compat alias of--font-label.

--font-bodyThe quick brown fox jumps over the lazy dog
--font-labelThe quick brown fox
--font-monoconst x = 42;
TokenValue
--body-sizevar(--text-md) (17px)
--body-lh1.7
--body-weight500
--heading-sizevar(--text-xl) (clamp(22px, 2.5vw, 26px))
--heading-weight500
--ui-size14px
--ui-lh1.4
--code-size14px
--code-lh1.8

--ui-size is for dense interface text such as a chip, a toolbar button or a meta line, where 16px body text is too loud and the 12px label step too small. It is a role rather than a scale step, so there is no .arc-text-ui utility.

Borders & Radius

TokenValue
--radius-sm4px
--radius-md10px
--radius-lg14px
--radius-xl20px
--radius-full9999px

Shadows

--shadow-xs0 1px 2px
--shadow-sm0 2px 4px
--shadow-md0 4px 12px
--shadow-lg0 8px 24px
--shadow-xl0 16px 48px
--shadow-overlay0 8px 32px

Z-Index

TokenValueUsage
--z-base0Default stacking
--z-dropdown100Dropdown menus
--z-sticky200Sticky headers
--z-drawer300Side drawers
--z-modal400Modal dialogs
--z-popover500Popovers
--z-toast600Toast notifications
--z-tooltip700Tooltips
--z-max9999Emergency override

Breakpoints

TokenValue
--breakpoint-xs480px
--breakpoint-sm640px
--breakpoint-md768px
--breakpoint-lg1024px
--breakpoint-xl1280px
--breakpoint-2xl1536px

Opacity

--opacity-disabled 0.5
--opacity-muted 0.6
--opacity-hover 0.8
--opacity-visible 1

Motion

Motion is two base scales (four curves and five durations) that the--transition-* tokens compose. The curve carries the meaning: pick it by what the element is doing, not by taste.

TokenValueUsage
--ease-standardcubic-bezier(0.4, 0, 0.2, 1)A state change on an element that stays put: hover recolor, border shift
--ease-outcubic-bezier(0.16, 1, 0.3, 1)Something entering or expanding
--ease-incubic-bezier(0.7, 0, 0.84, 0)Something leaving, paired with a shorter duration
--ease-springcubic-bezier(0.34, 1.56, 0.64, 1)A control confirming a discrete action: toggle landing, checkbox filling
--duration-fast120msMicro state changes
--duration-base200msDefault for most transitions
--duration-slow400msLarge surfaces
--duration-enter500msEntrances
--duration-exit300msExits
--ease-out-expovar(--ease-out)Back-compat alias
--ease-in-outvar(--ease-standard)Back-compat alias

Display & Text Sizing

TokenValue
--display-xl-sizeclamp(36px, 5vw, 52px)
--display-xl-weight500
--display-xl-spacing-1px
--text-3xlclamp(28px, 3vw, 36px)
--text-lgclamp(18px, 1.5vw, 20px)
--wordmark-sizeclamp(20px, 2.5vw, 28px)
--wordmark-weight500
--wordmark-spacingclamp(8px, 1.2vw, 14px)
--section-title-size12px
--section-title-weight600
--section-title-spacing4px
--ui-accent-size16px
--ui-accent-weight600
--ui-accent-spacing1px
--label-inline-size10px
--label-inline-spacing3px

Glows

--glow-primary
--glow-secondary
--glow-white
--focus-glow

Glow Lines

--glow-line-white
--glow-line-blue
--glow-line-gradient

Gradients

--gradient-display-textPrimary → muted text fade
--gradient-accent-textBlue → violet accent
--gradient-dividerSubtle content separator
--gradient-divider-glowAccent-tinted divider glow
--gradient-border-glowSubtle border glow effect

Focus

Transitions

Each transition token composes a duration and a curve from themotion scales. Override the base--duration-* and --ease-* tokens and the compositions follow.

TokenComposition
--transition-fastvar(--duration-fast) var(--ease-standard)
--transition-basevar(--duration-base) var(--ease-standard)
--transition-slowvar(--duration-slow) var(--ease-standard)
--transition-entervar(--duration-enter) var(--ease-out)
--transition-exitvar(--duration-exit) var(--ease-in)

Utility

TokenValueUsage
--bg-hoverrgba(255, 255, 255, 0.04)Hover background tint
--bg-basergb(10, 10, 15)Page base background
--overlay-backdroprgba(0, 0, 0, 0.6)Modal/drawer overlay
--max-width1120pxContent max width
--max-width-sm720pxNarrow content max width
--nav-height64pxNavigation bar height

See Also