Files
Control-Center/frontend/src/index.css
Joshua 8b8cb8210c
All checks were successful
Dev Build / build-test (pull_request) Successful in 2m11s
Dev Build / build-test (push) Successful in 2m18s
CUB-121: build React pages with real API integration
- HubPage: agent summary stats, cards, status badges, progress bars, refresh
- LogsPage: activity feed from tasks, status filter, loading skeleton
- ProjectsPage: project cards with status badges and agent counts
- SessionsPage: responsive table/card view with model/token info
- SettingsPage: dark mode toggle, gateway URL, refresh interval persist
- ThemeProvider with dark/light mode via CSS custom properties
- useLocalStorage hook for settings persistence
- Loading/error/empty states across all pages
- npm run build passes cleanly
2026-05-08 19:53:21 -04:00

77 lines
2.3 KiB
CSS

@import "tailwindcss";
@theme {
--color-surface-darkest: #0D0F12;
--color-surface-dark: #13161A;
--color-surface-medium: #1C2027;
--color-surface-light: #252B33;
--color-surface-lighter: #2D3748;
--color-on-surface: #E2E8F0;
--color-on-surface-variant: #8A9BB0;
--color-on-surface-muted: #64748B;
--color-primary: #38BDF8;
--color-secondary: #2DD4BF;
--color-accent: #A78BFA;
--color-danger: #F87171;
--color-status-active: #38BDF8;
--color-status-idle: #2DD4BF;
--color-status-thinking: #A78BFA;
--color-status-error: #F87171;
--color-status-offline: #64748B;
/* Light mode overrides */
--color-light-surface-darkest: #F8FAFC;
--color-light-surface-dark: #F1F5F9;
--color-light-surface-medium: #E2E8F0;
--color-light-surface-light: #CBD5E1;
--color-light-surface-lighter: #94A3B8;
--color-light-on-surface: #0F172A;
--color-light-on-surface-variant: #475569;
--color-light-on-surface-muted: #64748B;
--color-light-primary: #0284C7;
}
body {
margin: 0;
min-height: 100vh;
background-color: var(--color-surface-darkest);
color: var(--color-on-surface);
font-family: 'Inter', 'Roboto', sans-serif;
}
/* Dark theme (default) */
html.dark body {
background-color: var(--color-surface-darkest);
color: var(--color-on-surface);
}
/* Light theme */
html.light body {
background-color: var(--color-light-surface-darkest);
color: var(--color-light-on-surface);
}
html.light {
--color-surface-darkest: var(--color-light-surface-darkest);
--color-surface-dark: var(--color-light-surface-dark);
--color-surface-medium: var(--color-light-surface-medium);
--color-surface-light: var(--color-light-surface-light);
--color-surface-lighter: var(--color-light-surface-lighter);
--color-on-surface: var(--color-light-on-surface);
--color-on-surface-variant: var(--color-light-on-surface-variant);
--color-on-surface-muted: var(--color-light-on-surface-muted);
--color-primary: var(--color-light-primary);
}
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
.skeleton {
background: linear-gradient(90deg, var(--color-surface-light) 25%, var(--color-surface-lighter) 50%, var(--color-surface-light) 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 0.5rem;
}