Getting StartedComponentsDesign TokensThemingTheme SynthesizerFrameworksAccessibilityUtilitiesServer RenderingBrowser SupportContributingChangelog App ShellAspect GridAuth ShellCenterClusterContainerDashboard GridDockFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbar Anchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkSpeed DialStepper NavTabsTop BarTree View AccordionAspect RatioAvatarAvatar GroupCalloutCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSeparatorSkeletonSpinnerStackVideoVirtual List Activity HeatmapAnimated NumberBadgeChartClockComparisonCountdown TimerData GridData TableDescription ListDiffEvent CalendarGaugeJSON TreeKanbanKey ValueLevel MeterListMeterSparklineStatStepperTableTagTimelineUptimeValue CardWaveform BlockquoteCode BlockGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriter ButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputOTP InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree Select AlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuGuided TourHover CardInline MessageLoading OverlayModalNotification PanelPopoverProgressProgress ToastSheetSnackbarSpotlightToastTooltip
ARC UI ARC Radiant Components
v3.2 Docs Components Tokens Synthesizer
Getting StartedFrameworksServer Rendering Design TokensThemingTheme SynthesizerTypographyUtilities All ComponentsAccessibilityBrowser SupportChangelogContributingStats App ShellAspect GridAuth ShellCenterClusterContainerDashboard GridDockFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbar Anchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkSpeed DialStepper NavTabsTop BarTree View AccordionAspect RatioAvatarAvatar GroupCalloutCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSeparatorSkeletonSpinnerStackVideoVirtual List Activity HeatmapAnimated NumberBadgeChartClockComparisonCountdown TimerData GridData TableDescription ListDiffEvent CalendarGaugeJSON TreeKanbanKey ValueLevel MeterListMeterSparklineStatStepperTableTagTimelineUptimeValue CardWaveform BlockquoteCode BlockGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriter ButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputOTP InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree Select AlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuGuided TourHover CardInline MessageLoading OverlayModalNotification PanelPopoverProgressProgress ToastSheetSnackbarSpotlightToastTooltip

Text

Typography component with variants matching the arclight type scale.

Components Text
typography static
<arc-text>

Overview

Text is the foundational typography primitive in ARC UI. It maps nine named variants to the design system's type scale, each with pre-configured font-size, weight, letter-spacing, line-height, and color. The "display" variant renders a large gradient-clipped headline, "heading" provides balanced section titles, and "body" covers standard paragraph content with the secondary text color. For specialized contexts, "accent" applies the accent gradient with a glow drop-shadow, "label" renders uppercase section titles using the Tomorrow font, and "wordmark" produces all-caps branding text with a blue glow text-shadow. The "code" variant switches to the monospace font stack with a violet color and subtle text-shadow, ideal for inline code references. "muted" and "ghost" provide progressively dimmer text colors for de-emphasized content. The `as` property controls the rendered HTML element (h1 through h6, span, or the default p), allowing you to maintain correct document heading hierarchy independently from the visual variant. This separation of semantic tag from visual style is essential for accessibility and SEO.

Guidelines

When to use

  • Use the "as" prop to match heading hierarchy (h1, h2, etc.) even when using a different visual variant
  • Use display for hero headlines and heading for section titles to establish clear hierarchy
  • Use muted or ghost for supporting text that should not compete with primary content
  • Pair the label variant with section containers to create clear content groupings
  • Use the code variant for inline code references within body text

When not to use

  • Do not render display or heading variants inside a <span> — they are block-level content
  • Skip heading levels (e.g. h1 to h3) just to get a particular visual size; use "as" and "variant" independently
  • Do not use the accent variant for large blocks of text — the gradient and glow are meant for short highlights
  • Do not apply the wordmark variant outside of branding contexts; it is specifically designed for product names
  • Do not nest multiple Text components when a single one with the right variant suffices

Features

  • Nine typography variants: display, heading, body, muted, ghost, accent, label, wordmark, and code
  • Gradient-clipped text rendering on display and accent variants
  • Configurable HTML element via the "as" prop (h1-h6, span, p) for semantic control
  • Balanced text wrapping on heading and body variants via text-wrap: balance
  • Monospace code variant with violet color and subtle glow text-shadow
  • Uppercase Tomorrow-font treatment for label and wordmark variants
  • Accent variant includes a drop-shadow glow filter for visual emphasis
  • Inline display for accent and code variants; block display for all others

Preview

Display Headline Section Heading Body paragraph text with balanced wrapping for readability. Muted supporting text Accent highlight Section Label const x = 42;

Usage

<arc-text variant="display">Display Headline</arc-text>
<arc-text variant="heading">Section Heading</arc-text>
<arc-text variant="body">Body paragraph text.</arc-text>
<arc-text variant="accent">Accent gradient</arc-text>
<arc-text variant="label">Section Label</arc-text>
<arc-text variant="code">const x = 42;</arc-text>
import { Text } from '@arclux/arc-ui-react';

export default function Example() {
  return (
    <>
      <Text variant="display">Display Headline</Text>
      <Text variant="heading">Section Heading</Text>
      <Text variant="body">Body paragraph text.</Text>
    </>
  );
}
<script setup>
import { Text } from '@arclux/arc-ui-vue';
</script>

<template>
  <Text variant="display">Display Headline</Text>
  <Text variant="heading">Section Heading</Text>
  <Text variant="body">Body paragraph text.</Text>
  <Text variant="accent">Accent gradient</Text>
  <Text variant="label">Section Label</Text>
  <Text variant="code">const x = 42;</Text>
</template>
<script>
  import { Text } from '@arclux/arc-ui-svelte';
</script>

<Text variant="display">Display Headline</Text>
<Text variant="heading">Section Heading</Text>
<Text variant="body">Body paragraph text.</Text>
<Text variant="accent">Accent gradient</Text>
<Text variant="label">Section Label</Text>
<Text variant="code">const x = 42;</Text>
import { Component } from '@angular/core';
import { Text } from '@arclux/arc-ui-angular';

@Component({
  imports: [Text],
  template: `
    <arc-text variant="display">Display Headline</arc-text>
    <arc-text variant="heading">Section Heading</arc-text>
    <arc-text variant="body">Body paragraph text.</arc-text>
    <arc-text variant="accent">Accent gradient</arc-text>
    <arc-text variant="label">Section Label</arc-text>
    <arc-text variant="code">const x = 42;</arc-text>
  `,
})
export class MyComponent {}
import { Text } from '@arclux/arc-ui-solid';

export default function Example() {
  return (
    <>
      <Text variant="display">Display Headline</Text>
      <Text variant="heading">Section Heading</Text>
      <Text variant="body">Body paragraph text.</Text>
      <Text variant="accent">Accent gradient</Text>
      <Text variant="label">Section Label</Text>
      <Text variant="code">const x = 42;</Text>
    </>
  );
}
import { Text } from '@arclux/arc-ui-preact';

export default function Example() {
  return (
    <>
      <Text variant="display">Display Headline</Text>
      <Text variant="heading">Section Heading</Text>
      <Text variant="body">Body paragraph text.</Text>
      <Text variant="accent">Accent gradient</Text>
      <Text variant="label">Section Label</Text>
      <Text variant="code">const x = 42;</Text>
    </>
  );
}
<!-- Auto-generated by @arclux/prism — do not edit manually -->
<!-- arc-text — requires text.css + base.css (or arc-ui.css) -->
<div class="arc-text">
  <p class="text--Variant">Text</p>
</div>
<!-- Auto-generated by @arclux/prism — do not edit manually -->
<!-- arc-text — self-contained, no external CSS needed -->
<div class="arc-text" style="display: block">
  <p>Text</p>
</div>

API

variant 'display' | 'heading' | 'body' | 'muted' | 'ghost' | 'accent' | 'label' | 'wordmark' | 'code' 'body'
Typography variant that controls font size, weight, letter-spacing, line-height, and color.
as 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' 'p'
The HTML element to render. Allows semantic heading hierarchy to be set independently from the visual variant.

See Also