Design System

Colors

Primary

50
#f0f9ff
300
#7dd3fc
600
#0284c7
900
#0c4a6e

Brand

Blue
#0284c7
Dark
#0c4a6e
Light
#e0f2fe
Accent
#f59e0b

Gray

100
#f3f4f6
300
#d1d5db
500
#6b7280
900
#111827

Typography

Display Font (Montserrat)

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Body Font (Inter)

Extra Small: The quick brown fox jumps over the lazy dog.

Small: The quick brown fox jumps over the lazy dog.

Base: The quick brown fox jumps over the lazy dog.

Large: The quick brown fox jumps over the lazy dog.

Extra Large: The quick brown fox jumps over the lazy dog.

Components

Buttons

Cards

Card Title

Card Description

Card content goes here. This is a basic card example.

Service Card

Full Truckload Service

Our full truckload service provides dedicated freight transportation for your shipments.

Form Elements

Form Components

Input, Label, and Form examples

Component Documentation

Button

Description

Buttons are used to trigger actions or events, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation.

Usage

import { Button } from '@/components/ui/button'

<Button>Click me</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="link">Link</Button>
<Button size="lg">Large</Button>

Props

NameTypeDefaultDescription
variant"default" | "outline" | "ghost" | "link"defaultThe visual style of the button
size"sm" | "md" | "lg"mdThe size of the button
asChildbooleanfalseWhen true, the button will be rendered as a child element

Example

Card

Description

Cards are used to group related content and actions. They create distinct sections of content within the page.

Usage

import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/card'

<Card>
  <CardHeader>
    <CardTitle>Card Title</CardTitle>
    <CardDescription>Card Description</CardDescription>
  </CardHeader>
  <CardContent>
    <p>Card content goes here</p>
  </CardContent>
  <CardFooter>
    <Button>Action</Button>
  </CardFooter>
</Card>

Example

Example Card

This is an example card component

This card demonstrates the typical usage pattern with header, content, and footer sections.

Design Guidelines

Typography

  • Use the font-display class for headings (Montserrat)
  • Use the default font (Inter) for body text
  • Limit the use of font sizes to the predefined scale
  • Maintain a type hierarchy with clear visual distinction between heading levels
  • Keep line lengths between 60-75 characters for optimal readability

Color Usage

  • Use brand-blue as the primary action color
  • Use brand-dark for headers and important text
  • Use brand-light for backgrounds and subtle highlights
  • Use brand-accent sparingly for emphasis and calls-to-action
  • Maintain a minimum 4.5:1 contrast ratio for text on backgrounds for accessibility
  • Use gray scale for most UI elements and containers

Spacing and Layout

  • Use the Tailwind spacing scale consistently (4px increment system)
  • Maintain a vertical rhythm with consistent spacing between sections
  • Use the container class with appropriate padding for responsive layouts
  • Use Grid for multi-column layouts and complex interfaces
  • Use Flexbox for aligning items and creating simpler layouts
  • Maintain whitespace to improve readability and focus

Responsive Design

  • Design mobile-first, then enhance for larger screens
  • Use Tailwind's responsive prefixes consistently (sm, md, lg, xl, 2xl)
  • Ensure all interactive elements have appropriate touch targets (min 44px)
  • Adjust typography scale for different viewport sizes
  • Test all components at various breakpoints

Animation Guidelines

  • Use subtle animations to enhance user experience, not distract
  • Keep animations under 300ms for UI interactions
  • Use Framer Motion for complex animations and transitions
  • Respect user preferences for reduced motion
  • Maintain consistent easing functions throughout the application
  • Use the predefined animation classes when possible