Styling Guide
The T1 Component Library uses Tailwind CSS v4 with a custom design token system based on CSS custom properties. This guide explains how styling works in the library and how to use it effectively.Tailwind CSS v4
The library uses Tailwind CSS v4, which is imported using the new@import directive:
CSS Custom Properties (Design Tokens)
All components use CSS custom properties (CSS variables) defined inglobals.css:4. These tokens ensure consistent theming across light and dark modes.
Color Tokens
Spacing & Radius Tokens
Shadow Tokens
Dark Mode
Dark mode is automatically supported through CSS custom properties. The.dark class switches all tokens:
Variant Styles Pattern
Components use a variant styles pattern with TypeScript Record types for type-safe styling.Button Variant Example
FromButton.tsx:16:
Size Styles Example
FromButton.tsx:53:
Applying Styles
Styles are applied dynamically using template literals (Button.tsx:80):
Card Component Variants
FromCard.tsx:19:
Using CSS Variables in Tailwind
You can reference CSS variables directly in Tailwind classes:Tailwind Theme Integration
The design tokens are integrated into Tailwind using the@theme directive (globals.css:124):
Animations
Custom animations are defined inglobals.css:193:
Best Practices
- Always use design tokens instead of hardcoded colors
- Use the variant pattern for component variations
- Leverage Tailwind utilities for layout and spacing
- Use CSS variables for values that change between themes
- Apply transitions for smooth interactive feedback
Example: Complete Button Styling
- Primary variant styles (bg-primary, hover states, focus ring)
- Medium size styles (px-4 py-2 text-base)
- Custom width (w-full)
- Default transition timing (var(—transition-fast))
- Border radius (var(—radius-md))