A premium, concierge-inspired design system built for TeamPilot. Light, calm, professional — every component is crafted to feel like a trusted co-pilot.
The TeamPilot color system is built around a premium teal primary, navy typography, and gold accents. All interfaces use a white background with slate surfaces.
Teal (Primary)
--color-teal-brand
Navy
--color-navy
Gold (Accent)
--color-gold-brand
White
--color-surface-white
Surface Slate
--color-surface-slate
Slate 100
Slate 200
Slate 900
--foreground
Design Tokens (globals.css)
@theme inline {
--color-teal-brand: #14b8a6;
--color-navy: #1E293B;
--color-gold-brand: #D97706;
--color-surface-white: #FFFFFF;
--color-surface-slate: #F8FAFC;
}
:root {
--background: #FFFFFF;
--foreground: #0F172A;
}
.glass {
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(12px);
border: 1px solid rgba(241, 245, 249, 0.8);
}
.text-gradient {
background: linear-gradient(135deg, #1E293B 0%, #14b8a6 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}TeamPilot uses Geist Sans (with Inter fallback) for a clean, modern reading experience. The type scale is designed for clarity and hierarchy.
h1
5xl / 7xl / Black (900)
The quick brown fox
h2
3xl / 4xl / Black (900)
Team experiences, reimagined
h3
2xl / Bold (700)
How It Works
h4
xl / Bold (700)
Popular Activities
body
base / lg / Medium (500)
From 2-hour outings to weekend retreats — discover, plan, and book in seconds.
caption
xs / Semibold (600)
UPPERCASE TRACKING WIDER
small
xs / Normal (400)
© 2026 TeamPilot • All rights reserved
Font Stack
font-family: Inter, ui-sans-serif, system-ui, -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;Cards are the primary content containers. They provide structure for information in a clean, approachable layout.
Standard card with white background and subtle border.
Default Card
Clean, minimal, versatile.
Hover-lift effect for clickable cards.
Clickable Card
Hover me to see the lift effect.
Emphasized card with a gold left border accent.
Highlighted
Gold accent for important content.
Card Subcomponents
import { Card, CardHeader, CardBody, CardFooter } from '@/app/components/ui';
<Card variant="default">
<CardHeader>
<h3>Title</h3>
</CardHeader>
<CardBody>
<p>Main content with text-slate-600 text-sm leading-relaxed</p>
</CardBody>
<CardFooter>
<p>Footer with border-t border-slate-100</p>
</CardFooter>
</Card>Badges provide quick visual labels for status, categories, and metadata. Seven variants cover all use cases.
Primary brand badge for featured content.
Accent badge for highlights and premium content.
Dark badge for high-contrast labels.
Neutral badge for metadata and secondary info.
Green badge for positive states.
Red badge for errors or warnings.
Amber badge for in-progress states.
Form inputs follow a clean, consistent design with clear labels, helpful validation, and accessible focus states.
Standard text input with label.
Multi-line input for longer text.
Input with validation error.
Please enter a valid email address
Dropdown select with options.
Helper Text & Disabled State
// Helper text (no error)
<p class="text-xs text-slate-400">We'll never share your email</p>
// Disabled input
<input disabled class="... disabled:bg-slate-50
disabled:text-slate-400 disabled:cursor-not-allowed" />Consistent spacing creates a calm, premium feel. Use these tokens for all margin and padding decisions.
4xs
2px
3xs
4px
2xs
8px
xs
12px
sm
16px
md
24px
lg
32px
xl
48px
2xl
64px
3xl
96px
Layout Max Width
// Page content wrapper
max-w-7xl mx-auto px-4 sm:px-6 lg:px-8
// Standard section padding
py-16 md:py-24
// Card padding
p-6 (standard) / p-10 (featured cards)Best practices for using the TeamPilot Design System consistently across all pages.
The complete shared component library and where to find each file.
| Component | File Path | Exports |
|---|---|---|
| Button | src/app/components/ui/Button.tsx | Button (default) |
| Card | src/app/components/ui/Card.tsx | Card, CardHeader, CardBody, CardFooter |
| Badge | src/app/components/ui/Badge.tsx | Badge (default) |
| Input | src/app/components/ui/Input.tsx | Input (default) |
| Navigation | src/app/components/ui/Navigation.tsx | Navigation (default) |
| Footer | src/app/components/ui/Footer.tsx | Footer (default) |
Barrel Export
// src/app/components/ui/index.ts — barrel export
export { default as Button } from './Button';
export { default as Card, CardHeader, CardBody, CardFooter } from './Card';
export { default as Badge } from './Badge';
export { default as Input } from './Input';
export { default as Navigation } from './Navigation';
export { default as Footer } from './Footer';