VOW // NEXTUI
Text
Polymorphic text component with body, caption, label, and code variants. Serif display for headings, clean sans for body.
$
Or install the base component for free:
Live Preview
Open full demoUsage
TSX
<Text variant="body">Botanical compositions for ceremonies and gatherings.</Text>Variants
<Text variant="body">Botanical compositions for ceremonies and gatherings.</Text>
<Text variant="caption">Photography by Studio Bloom</Text>
<Text variant="label">COLLECTION</Text>
<Text variant="code">const arrangement = await getSeasonalCollection()</Text>
Source
TSX
import { cn } from '@/lib/utils'
type TextVariant = 'body' | 'caption' | 'label' | 'code'
type TextElement = 'p' | 'span' | 'div'
const variantClass: Record<TextVariant, string> = {
body: 'text-body',
caption: 'text-caption',
label: 'text-label',
code: 'text-code',
}
interface TextProps {
variant: TextVariant
as?: TextElement
children: React.ReactNode
className?: string
}
export function Text({ variant, as: Tag = 'p', children, className }: TextProps): React.JSX.Element {
return (
<Tag className={cn(variantClass[variant], className)}>
{children}
</Tag>
)
}
Works withNext.js 15React 19Tailwind v4TypeScript 5
More from VOW // NEXT
Button
Elegant button with primary, secondary, and ghost variants in three sizes. Burgundy accent, serif labels, refined spacing. Renders as a Next.js Link when an href is provided.
Badge
Refined badge with burgundy, gold, sage, ink, and ivory variants. Delicate uppercase tracking for floral and event contexts.
Card
Service card with numbered index, title, description, and tag. Clean lines and refined spacing for floral atelier services.