Heading
A component for displaying headings.
Headings provide hierarchy to the content
import { Heading } from 'cwl-ui'
export function Default() {
return <Heading>Headings provide hierarchy to the content</Heading>
}
Examples
With alignment
Heading components can take an align property to align text.
Left aligned
Center aligned
Right aligned
import { Heading } from 'cwl-ui'
export function Align() {
return (
<div className="w-full space-y-2">
<Heading align="left">Left aligned</Heading>
<Heading align="center">Center aligned</Heading>
<Heading align="right">Right aligned</Heading>
</div>
)
}
With color
Heading comes with a color property to change the text color.
Primary
Secondary
Positive
Destructive
import { Heading } from 'cwl-ui'
export function Align() {
return (
<div className="flex space-x-2">
<Heading color="primary">Primary</Heading>
<Heading color="secondary">Secondary</Heading>
<Heading color="positive">Positive</Heading>
<Heading color="destructive">Destructive</Heading>
</div>
)
}
With sizes
Heading comes in a few different sizes.
Xsmall text
Small text
Standard text
Large text
import { Heading } from 'cwl-ui'
export function Sizes() {
return (
<div className="space-y-2">
<Heading size="small">Xsmall text</Heading>
<Heading size="small">Small text</Heading>
<Heading size="standard">Standard text</Heading>
<Heading size="large">Large text</Heading>
</div>
)
}
With truncation
Heading can be truncated with an ellipsis.
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi corrupti. Accusamus, inventore quaerat?
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi corrupti. Accusamus, inventore quaerat?
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi corrupti. Accusamus, inventore quaerat?
import { Heading } from 'cwl-ui'
export function Color() {
return (
<div className="flex flex-col space-y-4">
<Heading truncate={1}>
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi
maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam
ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam
voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi
corrupti. Accusamus, inventore quaerat?
</Heading>
<Heading truncate={2}>
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi
maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam
ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam
voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi
corrupti. Accusamus, inventore quaerat?
</Heading>
<Heading truncate={3}>
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repellendus, eaque eligendi
maiores, aperiam et exercitationem possimus quisquam fuga iste qui, voluptate laboriosam
ipsa. Iusto, nesciunt. Vel incidunt iure quas voluptate dicta qui alias ea aliquam
voluptatum, architecto facilis provident laborum iste commodi tempora labore itaque eligendi
corrupti. Accusamus, inventore quaerat?
</Heading>
</div>
)
}
Installation
To install, copy the code below and paste into your project.
import { type HeadingProperties } from './lib/types'
import { cn } from './lib/utils'
const Heading = ({
children,
color,
Tag = 'h1',
align,
className,
size,
truncate,
...props
}: HeadingProperties) => {
return (
<Tag
className={cn(
size === 'small' && 'text-lg font-normal leading-7',
size === 'standard' && 'text-2xl font-normal leading-8',
size === 'large' && 'text-3xl font-normal leading-9',
align === 'left' && 'text-left',
align === 'center' && 'text-center',
align === 'right' && 'text-right',
color === 'primary' && 'text-primary',
color === 'secondary' && 'text-secondary',
color === 'positive' && 'text-positive',
color === 'destructive' && 'text-destructive',
truncate === 1 && 'line-clamp-1',
truncate === 2 && 'line-clamp-2',
truncate === 3 && 'line-clamp-3',
className,
)}
{...props}
>
{children}
</Tag>
)
}
export { Heading }