Components Typography
Text
StableBody copy with size, weight and semantic tone from the type scale.
Text sets every piece of non-heading copy. Tones are semantic. Muted is for secondary information and subtle is for tertiary detail, and both meet AA contrast. The status tones are only for messages about state. It renders a paragraph by default; use `as="span"` inline.
Overview
Signatures are deployed to every mailbox in your organisation automatically.
import { Text } from '@bindshq/stance-react';
export function Basic() {
return <Text>Signatures are deployed to every mailbox in your organisation automatically.</Text>;
}Light, dark and high contrast
Every Stance component is designed and tested in all three appearance modes.
Signatures are deployed to every mailbox in your organisation automatically.
Signatures are deployed to every mailbox in your organisation automatically.
Signatures are deployed to every mailbox in your organisation automatically.
Import
import { Text } from '@bindshq/stance-react';Platforms
Text has native counterparts. They share Stance tokens and intent, and use each platform’s own controls and conventions. The live previews on this page are the web implementation.
import { Text } from '@bindshq/stance-react';Playground
Signatures deploy to Outlook within five minutes.
<Text>Signatures deploy to Outlook within five minutes.</Text>Examples
Default: primary content
Muted: secondary information
Subtle: tertiary detail
Success: deployment completed
Warning: 3 users missing a job title
Danger: Exchange connection failed
import { Stack, Text } from '@bindshq/stance-react';
export function Tones() {
return (
<Stack gap={2}>
<Text tone="default">Default: primary content</Text>
<Text tone="muted">Muted: secondary information</Text>
<Text tone="subtle">Subtle: tertiary detail</Text>
<Text tone="success">Success: deployment completed</Text>
<Text tone="warning">Warning: 3 users missing a job title</Text>
<Text tone="danger">Danger: Exchange connection failed</Text>
</Stack>
);
}xl: Consistent foundations
lg: Consistent foundations
md: Consistent foundations
sm: Consistent foundations
xs: Consistent foundations
2xs: Consistent foundations
import { Stack, Text } from '@bindshq/stance-react';
export function Sizes() {
return (
<Stack gap={2}>
{(['xl', 'lg', 'md', 'sm', 'xs', '2xs'] as const).map((s) => (
<Text key={s} size={s}>
{s}: Consistent foundations
</Text>
))}
</Stack>
);
}Master services agreement, Acme Holdings International Ltd (revised)
This agreement governs the provision of design, engineering and support services between the parties listed in schedule one.
import { Stack, Text } from '@bindshq/stance-react';
export function Truncation() {
return (
<Stack gap={3} style={{ maxWidth: 280 }}>
<Text size="sm" truncate>
Master services agreement, Acme Holdings International Ltd (revised)
</Text>
<Text size="sm" truncate={2} tone="muted">
This agreement governs the provision of design, engineering and support services between the
parties listed in schedule one.
</Text>
</Stack>
);
}API reference
| Prop | Type | Default | Description |
|---|---|---|---|
as | keyof JSX.IntrinsicElements | 'p' | Element to render. |
size | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'md' | Font size token. |
weight | 'regular' | 'medium' | 'semibold' | 'bold' | None | Font weight token. |
tone | 'default' | 'muted' | 'subtle' | 'danger' | 'success' | 'warning' | 'inverse' | 'inherit' | 'default' | Semantic colour. |
align | 'start' | 'center' | 'end' | None | Alignment. |
truncate | boolean | number | None | true truncates one line; a number clamps lines. |
eyebrow | boolean | None | Uppercase label with wide tracking. |
tabular | boolean | None | Tabular figures for aligned numbers. |
leading | 'tight' | 'snug' | 'normal' | 'relaxed' | 'normal' | Line height. |
Accessibility
- Every tone meets WCAG AA (4.5:1) on canvas and surface backgrounds in all three themes.
- Never rely on colour alone. Pair status tones with an icon or words.
- Truncated text should be available in full elsewhere, such as a tooltip or detail view.
Usage guidelines
Do
- Use muted for secondary metadata.
Don’t
- Use subtle for essential information.
- Use danger tone for anything other than errors.