Files
ss-tools/frontend/tailwind.config.js
busya 8219540ade feat(backend): add v2 LLM validation fields to health service
- DashboardHealthItem schema: add run_id, policy_id, execution_path,
  issues_count, timings, token_usage, screenshot_paths, chunk_count,
  dashboard_name fields for v2 LLM validation reporting.
- HealthService: populate v2 fields from validation run records.
- ValidationService: update to support v2 validation run fields.
- validation_tasks route: minor fix for v2 field handling.
- tailwind.config.js: refactor design tokens — add success/warning/info
  palettes, surface/border/text hierarchy, semantic action colors.
- Agent configs: update svelte-coder and semantics-svelte for
  .svelte.ts runes and Screen Model patterns.
2026-06-02 09:54:42 +03:00

110 lines
3.8 KiB
JavaScript
Executable File

/** @type {import('tailwindcss').Config} */
export default {
content: [
"./index.html",
"./src/**/*.{svelte,js,ts,jsx,tsx}",
],
theme: {
extend: {
colors: {
// ── Semantic action palette (light surfaces) ──────────────
primary: {
DEFAULT: '#2563eb', // blue-600
hover: '#1d4ed8', // blue-700
ring: '#3b82f6', // blue-500
light: '#eff6ff', // blue-50
},
secondary: {
DEFAULT: '#f3f4f6', // gray-100
hover: '#e5e7eb', // gray-200
text: '#111827', // gray-900
ring: '#6b7280', // gray-500
},
destructive: {
DEFAULT: '#dc2626', // red-600
hover: '#b91c1c', // red-700
ring: '#ef4444', // red-500
light: '#fef2f2', // red-50
},
success: {
DEFAULT: '#22c55e', // green-500
hover: '#16a34a', // green-600
ring: '#4ade80', // green-400
light: '#f0fdf4', // green-50
},
warning: {
DEFAULT: '#f59e0b', // amber-500
hover: '#d97706', // amber-600
ring: '#fbbf24', // amber-400
light: '#fffbeb', // amber-50
},
info: {
DEFAULT: '#0ea5e9', // sky-500
hover: '#0284c7', // sky-600
ring: '#38bdf8', // sky-400
light: '#f0f9ff', // sky-50
},
ghost: {
hover: '#f3f4f6', // gray-100
text: '#374151', // gray-700
ring: '#6b7280', // gray-500
},
// ── Surface hierarchy ─────────────────────────────────────
surface: {
page: '#f8fafc', // slate-50
card: '#ffffff', // white
muted: '#f1f5f9', // slate-100
},
// ── Border hierarchy ──────────────────────────────────────
border: {
DEFAULT: '#e2e8f0', // slate-200
strong: '#cbd5e1', // slate-300
},
// ── Text hierarchy ────────────────────────────────────────
text: {
DEFAULT: '#0f172a', // slate-900
muted: '#64748b', // slate-500
subtle: '#94a3b8', // slate-400
inverse: '#ffffff', // white
},
// ── Dark terminal palette (log viewer, task drawer) ───────
terminal: {
bg: '#0f172a', // slate-900
surface: '#1e293b', // slate-800
border: '#334155', // slate-700
text: {
DEFAULT: '#cbd5e1', // slate-300
muted: '#475569', // slate-600
subtle: '#64748b', // slate-500
bright: '#e2e8f0', // slate-200
heading: '#f1f5f9', // slate-100
},
accent: '#22d3ee', // cyan-400
},
// ── Log level palette ─────────────────────────────────────
log: {
debug: '#64748b',
info: '#38bdf8',
warning: '#fbbf24',
error: '#f87171',
},
// ── Log source palette ────────────────────────────────────
source: {
plugin: '#4ade80',
api: '#c084fc',
git: '#fb923c',
system: '#38bdf8',
},
},
width: {
sidebar: '240px',
'sidebar-collapsed': '64px',
},
fontFamily: {
mono: ['"JetBrains Mono"', '"Fira Code"', 'monospace'],
},
},
},
plugins: [],
}