This repository has been archived on 2026-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
orchestrator/agent-team/web/tailwind.config.js
Adam Moussa 022befa796 feat(agent-team): Tailwind + shadcn foundation for dashboard redesign
Adds the styling foundation for the UI redesign (vibe-kanban / Magentic-UI /
Langflow references): Tailwind CSS + shadcn/ui primitives, HSL design tokens
(index.css) ported from theme.css, @/ alias, and the App.tsx Board|Pipeline tabs
shell. Extends StateResponse with the backend's existing stages[] for the Board.

theme.css kept transiently until components migrate to Tailwind. No backend
changes. Component fan-out (Board, MapNode, TaskDrawer, TopBar) follows.
2026-06-24 13:35:56 -04:00

100 lines
3.2 KiB
JavaScript

import animate from "tailwindcss-animate";
/**
* Tailwind config for the agent-team dashboard.
*
* Colors are driven by HSL CSS variables defined in src/index.css (shadcn/ui
* convention) so the dark theme stays in one place. On top of the standard
* shadcn tokens we add pipeline `status.*` colors (active/waiting/parked/done/
* failed) that the Board, MapNode, and badges share.
*/
/** @type {import('tailwindcss').Config} */
export default {
darkMode: ["class"],
content: ["./index.html", "./src/**/*.{ts,tsx}"],
theme: {
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))",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
// Pipeline status palette — each has a tinted surface (`bg`) and a
// bright foreground (`fg`), mirroring the original theme.css mapping.
status: {
active: "hsl(var(--status-active))",
"active-bg": "hsl(var(--status-active-bg))",
waiting: "hsl(var(--status-waiting))",
"waiting-bg": "hsl(var(--status-waiting-bg))",
parked: "hsl(var(--status-parked))",
"parked-bg": "hsl(var(--status-parked-bg))",
done: "hsl(var(--status-done))",
"done-bg": "hsl(var(--status-done-bg))",
failed: "hsl(var(--status-failed))",
"failed-bg": "hsl(var(--status-failed-bg))",
},
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
fontFamily: {
sans: [
"-apple-system",
"BlinkMacSystemFont",
"Segoe UI",
"Roboto",
"Helvetica",
"Arial",
"sans-serif",
],
mono: ["ui-monospace", "SFMono-Regular", "Menlo", "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" },
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
},
},
},
plugins: [animate],
};