Files
waggle-os/apps/web/tailwind.config.ts
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

162 lines
6.9 KiB
TypeScript

import type { Config } from "tailwindcss";
export default {
darkMode: ["class"],
content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"],
prefix: "",
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))" },
sidebar: {
DEFAULT: "hsl(var(--sidebar-background))",
foreground: "hsl(var(--sidebar-foreground))",
primary: "hsl(var(--sidebar-primary))",
"primary-foreground": "hsl(var(--sidebar-primary-foreground))",
accent: "hsl(var(--sidebar-accent))",
"accent-foreground": "hsl(var(--sidebar-accent-foreground))",
border: "hsl(var(--sidebar-border))",
ring: "hsl(var(--sidebar-ring))",
},
/* ── Hive DS: Status colors ──────────────────────────────────── */
status: {
healthy: "var(--status-healthy)",
warning: "var(--status-warning)",
error: "var(--status-error)",
info: "var(--status-info)",
ai: "var(--status-ai)",
},
/* ── Hive DS: Honey scale ────────────────────────────────────── */
honey: {
DEFAULT: "var(--honey-text)",
50: "var(--honey-50)",
100: "var(--honey-100)",
200: "var(--honey-200)",
300: "var(--honey-300)",
400: "var(--honey-400)",
500: "var(--honey-500)",
600: "var(--honey-600)",
},
/* ── Hive DS: Hive grays ─────────────────────────────────────── */
hive: {
50: "var(--hive-50)",
100: "var(--hive-100)",
200: "var(--hive-200)",
300: "var(--hive-300)",
400: "var(--hive-400)",
500: "var(--hive-500)",
600: "var(--hive-600)",
700: "var(--hive-700)",
800: "var(--hive-800)",
850: "var(--hive-850)",
900: "var(--hive-900)",
950: "var(--hive-950)",
},
},
/* ── Hive DS: Type Scale ──────────────────────────────────────── */
fontSize: {
'micro': 'var(--text-micro)',
'caption': 'var(--text-caption)',
'body-sm': 'var(--text-body-sm)',
'body': 'var(--text-body)',
'title': 'var(--text-title)',
'heading': 'var(--text-heading)',
'display': 'var(--text-display)',
},
borderRadius: {
xl: "var(--r-xl)",
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
fontFamily: {
sans: ["Hanken Grotesk", "Inter", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "sans-serif"],
display: ["Hanken Grotesk", "Inter", "sans-serif"],
mono: ["JetBrains Mono", "Cascadia Code", "Fira Code", "ui-monospace", "monospace"],
},
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" } },
"dock-bounce": {
"0%, 100%": { transform: "translateY(0)" },
"50%": { transform: "translateY(-8px)" },
},
"window-open": {
"0%": { opacity: "0", transform: "scale(0.9) translateY(20px)" },
"100%": { opacity: "1", transform: "scale(1) translateY(0)" },
},
"fade-up": {
"0%": { opacity: "0", transform: "translateY(10px)" },
"100%": { opacity: "1", transform: "translateY(0)" },
},
/* ── Hive DS Animations ─────────────────────────────────────── */
"honey-pulse": {
"0%, 100%": { boxShadow: "0 0 0 0 rgba(233, 165, 44, 0)" },
"50%": { boxShadow: "0 0 12px 4px rgba(233, 165, 44, 0.3)" },
},
"breathe": {
"0%, 100%": { opacity: "1", transform: "scale(1)" },
"50%": { opacity: "0.55", transform: "scale(0.82)" },
},
"heartbeat": {
"0%, 100%": { opacity: "1", transform: "scale(1)" },
"50%": { opacity: "0.7", transform: "scale(0.9)" },
},
"float": {
"0%, 100%": { transform: "translateY(0)" },
"50%": { transform: "translateY(-3px)" },
},
"hex-spin": {
from: { transform: "rotate(0deg)" },
to: { transform: "rotate(360deg)" },
},
"card-enter": {
from: { opacity: "0", transform: "translateY(8px)" },
to: { opacity: "1", transform: "translateY(0)" },
},
"token-fade": {
from: { opacity: "0" },
to: { opacity: "1" },
},
"send-flash": {
"0%": { borderColor: "var(--honey-500)" },
"100%": { borderColor: "var(--hive-700)" },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
"dock-bounce": "dock-bounce 0.4s ease-in-out",
"window-open": "window-open 0.3s ease-out",
"fade-up": "fade-up 0.4s ease-out",
/* ── Hive DS Animations ─────────────────────────────────────── */
"honey-pulse": "honey-pulse 0.6s ease-in-out",
"breathe": "breathe 2.4s ease-in-out infinite",
"heartbeat": "heartbeat 2s ease-in-out infinite",
"float": "float 3s ease-in-out infinite",
"hex-spin": "hex-spin 2s linear infinite",
"card-enter": "card-enter 0.2s ease-out",
"token-fade": "token-fade 0.04s ease-in forwards",
"send-flash": "send-flash 0.3s ease-out",
},
},
},
plugins: [require("tailwindcss-animate")],
} satisfies Config;