pixie-design-system-phase3
Version:
A comprehensive React component library for dental practice management applications
194 lines (191 loc) • 5.75 kB
JavaScript
import tailwindcssAnimate from 'tailwindcss-animate';
/** @type {import('tailwindcss').Config} */
export default {
darkMode: ['selector', '[data-color-theme="dark"]'],
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
"./stories/**/*.{js,ts,jsx,tsx}",
],
theme: {
container: {
center: true,
padding: "2rem",
screens: {
"2xl": "1400px",
},
},
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
// Extended palette (you can adjust hex values to match your Figma)
gray: {
50: "#f9fafb",
100: "#f3f4f6",
200: "#e5e7eb",
300: "#d1d5db",
400: "#9ca3af",
500: "#6b7280",
600: "#4b5563",
700: "#374151",
800: "#1f2937",
900: "#111827",
},
sky: {
50: "#f0f9ff",
100: "#e0f2fe",
200: "#bae6fd",
300: "#7dd3fc",
400: "#38bdf8",
500: "#0ea5e9",
600: "#0284c7",
700: "#0369a1",
800: "#075985",
900: "#0c4a6e",
},
violet: {
50: "#f5f3ff",
100: "#ede9fe",
200: "#ddd6fe",
300: "#c4b5fd",
400: "#a78bfa",
500: "#8b5cf6",
600: "#7c3aed",
700: "#6d28d9",
800: "#5b21b6",
900: "#4c1d95",
},
purple: {
50: "#f5f3ff",
100: "#ede9fe",
200: "#ddd6fe",
300: "#c4b5fd",
400: "#a78bfa",
500: "#8b5cf6",
600: "#7c3aed",
700: "#6d28d9",
800: "#5b21b6",
900: "#4c1d95",
},
emerald: {
50: "#ecfdf5",
100: "#d1fae5",
200: "#a7f3d0",
300: "#6ee7b7",
400: "#34d399",
500: "#10b981",
600: "#059669",
700: "#047857",
800: "#065f46",
900: "#064e3b",
},
orange: {
50: "#fff7ed",
100: "#ffedd5",
200: "#fed7aa",
300: "#fdba74",
400: "#fb923c",
500: "#f97316",
600: "#ea580c",
700: "#c2410c",
800: "#9a3412",
900: "#7c2d12",
},
rose: {
50: "#fff1f2",
100: "#ffe4e6",
200: "#fecdd3",
300: "#fda4af",
400: "#fb7185",
500: "#f43f5e",
600: "#e11d48",
700: "#be123c",
800: "#9f1239",
900: "#881337",
},
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
boxShadow: {
toast: '4px 20px 40px 0px rgba(0,0,0,0.03)',
},
fontFamily: {
'roboto-condensed': ['"Roboto Condensed"', 'sans-serif'],
'sans': ['"Roboto Condensed"', 'sans-serif'], // Default to Roboto Condensed
'serif': ['serif'], // Fallback serif
},
fontWeight: {
thin: '100', // Roboto Condensed Thin
light: '300', // Roboto Condensed Light
normal: '400', // Roboto Condensed Regular
medium: '500', // Roboto Condensed Medium
semibold: '600', // Roboto Condensed SemiBold
bold: '700', // Roboto Condensed Bold
},
fontSize: {
// Typography scale based on design system
'title': ['2.5rem', { lineHeight: '1.2', fontWeight: '700' }], // Page Title
'lead': ['1.25rem', { lineHeight: '1.6', fontWeight: '400' }], // Lead paragraph
'paragraph': ['1rem', { lineHeight: '1.6', fontWeight: '300' }], // Body text
'quote': ['1.125rem', { lineHeight: '1.5', fontWeight: '400' }], // Quote text
'link': ['1rem', { lineHeight: '1.5', fontWeight: '400' }], // Link text
'button': ['0.875rem', { lineHeight: '1.25', fontWeight: '500' }], // Button text
'caption': ['0.75rem', { lineHeight: '1.4', fontWeight: '300' }], // Small text
},
keyframes: {
"accordion-down": {
from: { height: "0" },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: "0" },
},
pulse: {
"50%": { opacity: 0.5 },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
pulse: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",
},
},
},
plugins: [tailwindcssAnimate],
};