Text

A component for displaying text.

We provide high-quality products and services top priority.

Explore our wide range of products designed to make your life easier.

import { Text } from 'cwl-ui'
 
export function Default() {
  return (
    <div className="space-y-2">
      <Text>We provide high-quality products and services top priority.</Text>
      <Text>Explore our wide range of products designed to make your life easier.</Text>
    </div>
  )
}

Examples

With text alignment

Text components can take an align property to align text.

Left aligned

Center aligned

Right aligned

import { Text } from 'cwl-ui'
 
export function Align() {
  return (
    <div className="space-y-2">
      <Text align="left">Left aligned</Text>
      <Text align="center">Center aligned</Text>
      <Text align="right">Right aligned</Text>
    </div>
  )
}

With text color

Text comes with a color property to change the text color.

Primary

Secondary

Positive

Destructive

import { Text } from 'cwl-ui'
 
export function Align() {
  return (
    <div className="flex space-x-2">
      <Text color="primary">Primary</Text>
      <Text color="secondary">Secondary</Text>
      <Text color="positive">Positive</Text>
      <Text color="destructive">Destructive</Text>
    </div>
  )
}

With text sizes

Text comes in a few different sizes.

Xsmall text

Small text

Standard text

Large text

import { Text } from 'cwl-ui'
 
export function Sizes() {
  return (
    <div className="space-y-2">
      <Text size="xsmall">Xsmall text</Text>
      <Text size="small">Small text</Text>
      <Text size="standard">Standard text</Text>
      <Text size="large">Large text</Text>
    </div>
  )
}

With text truncation

Text 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 { Text } from 'cwl-ui'
 
export function Color() {
  return (
    <div className="flex flex-col space-y-4">
      <Text 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?
      </Text>
      <Text 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?
      </Text>
      <Text 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?
      </Text>
    </div>
  )
}

Installation

To install, copy the code below and paste into your project.

import * as React from 'react'
 
import { type TextProperties } from './lib/types'
import { cn } from './lib/utils'
 
const Text = ({
  align,
  children,
  color = 'primary',
  className,
  size,
  truncate,
  Tag = 'p',
  ...props
}: TextProperties) => {
  return (
    <Tag
      className={cn(
        size === 'xsmall' && 'text-xs font-normal leading-4',
        size === 'small' && 'text-sm font-normal leading-5',
        size === 'standard' && 'text-base font-normal leading-6',
        size === 'large' && 'text-lg font-normal leading-7',
        align === 'left' && 'text-left',
        align === 'center' && 'text-center',
        align === 'right' && 'text-right',
        color === 'primary' && 'text-primary',
        color === 'secondary' && 'text-secondary',
        color === 'destructive' && 'text-destructive',
        color === 'positive' && 'text-positive',
        truncate === 1 && 'line-clamp-1',
        truncate === 2 && 'line-clamp-2',
        truncate === 3 && 'line-clamp-3',
        className,
      )}
      {...props}
    >
      {children}
    </Tag>
  )
}
 
Text.displayName = 'Text'
 
export { Text }