For AI agents: the complete documentation index is available at https://wallarm.github.io/design-system/llms.txt, the full documentation bundle is available at https://wallarm.github.io/design-system/llms-full.txt, and this page is available as Markdown at https://wallarm.github.io/design-system/components/text.md.

Text

Geist for body copy, labels and anything read as prose — reach for Heading when the text is a title and Link when it navigates. Weight carries emphasis and colour carries de-emphasis, so build hierarchy from those rather than by changing size.

Source · Storybook

Usage

import { Text } from '@wallarm-org/design-system/Text';

Examples

Sizes

The ramp, for density rather than hierarchy — step down in a dense table, not to signal that something matters less. Note that md sets no size of its own and inherits from its container, so prefer an explicit step until that is fixed.

Weights

All four weights at one size. Weight is emphasis within a level, never a way to create one.

Colors

The de-emphasis ladder. Colour is how text recedes; a smaller size only makes it harder to read.

As child

asChild puts the typography on your own element, for when the tag matters to the document but the styling should still come from here.

Props

PropTypeDefaultDescription
titlestring | undefined
defaultCheckedboolean | undefined
defaultValuestring | number | readonly string[] | undefined
autoFocusboolean | undefined
idstring | undefined
tabIndexnumber | undefined
relstring | undefined
onChangeChangeEventHandler<T, Element> | undefined
color{ primary: string; 'primary-alt': string; secondary: string; 'secondary-alt': string; 'tertiary-alt': string; danger: string; inherit: string; }inherit
size{ xs: string; sm: string; md: string; lg: string; xl: string; }lg
weight{ light: string; regular: string; medium: string; bold: string; }regular
align{ left: string; center: string; right: string; }
inline{ true: string; }
grow{ true: string; }false
truncate{ true: string; false: string; }false
decoration{ dashed: string; }
lineHeight{ none: string; tight: string; snug: string; normal: string; relaxed: string; }
textTransform{ uppercase: string; lowercase: string; capitalize: string; none: string; }
asChildboolean | undefinedfalse
lineClampnumber | undefined
data-testidstring | undefined