Add centralized theme CSS variables to input.css
Move theme CSS custom properties from individual templates to centralized location in web/static/input.css using Tailwind @layer directives for better maintainability and to eliminate duplicate code across templates.
This commit is contained in:
+183
-1
@@ -2,4 +2,186 @@
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/* Custom theme variables are handled in CSS custom properties in templates */
|
||||
@layer base {
|
||||
:root {
|
||||
--bg-primary: #1a1b26;
|
||||
--bg-secondary: #16161e;
|
||||
--text-primary: #a9b1d6;
|
||||
--text-secondary: #565f89;
|
||||
--accent: #7aa2f7;
|
||||
--border: #414868;
|
||||
}
|
||||
|
||||
.theme-tokyo-night {
|
||||
--bg-primary: #1a1b26;
|
||||
--bg-secondary: #16161e;
|
||||
--text-primary: #a9b1d6;
|
||||
--text-secondary: #565f89;
|
||||
--accent: #7aa2f7;
|
||||
--border: #414868;
|
||||
}
|
||||
|
||||
.theme-dracula {
|
||||
--bg-primary: #282a36;
|
||||
--bg-secondary: #21222c;
|
||||
--text-primary: #f8f8f2;
|
||||
--text-secondary: #6272a4;
|
||||
--accent: #bd93f9;
|
||||
--border: #44475a;
|
||||
}
|
||||
|
||||
.theme-nord {
|
||||
--bg-primary: #2e3440;
|
||||
--bg-secondary: #3b4252;
|
||||
--text-primary: #eceff4;
|
||||
--text-secondary: #5e81ac;
|
||||
--accent: #88c0d0;
|
||||
--border: #4c566a;
|
||||
}
|
||||
|
||||
.theme-solarized-dark {
|
||||
--bg-primary: #002b36;
|
||||
--bg-secondary: #073642;
|
||||
--text-primary: #93a1a1;
|
||||
--text-secondary: #586e75;
|
||||
--accent: #2aa198;
|
||||
--border: #586e75;
|
||||
}
|
||||
|
||||
.theme-monokai {
|
||||
--bg-primary: #272822;
|
||||
--bg-secondary: #3e3d32;
|
||||
--text-primary: #f8f8f2;
|
||||
--text-secondary: #75715e;
|
||||
--accent: #a6e22e;
|
||||
--border: #49483e;
|
||||
}
|
||||
|
||||
.theme-one-dark-pro {
|
||||
--bg-primary: #282c34;
|
||||
--bg-secondary: #21252b;
|
||||
--text-primary: #abb2bf;
|
||||
--text-secondary: #5c6370;
|
||||
--accent: #61dafb;
|
||||
--border: #3e4451;
|
||||
}
|
||||
|
||||
.theme-material-dark {
|
||||
--bg-primary: #263238;
|
||||
--bg-secondary: #37474f;
|
||||
--text-primary: #eeffff;
|
||||
--text-secondary: #546e7a;
|
||||
--accent: #80cbc4;
|
||||
--border: #455a64;
|
||||
}
|
||||
|
||||
.theme-catppuccin-mocha {
|
||||
--bg-primary: #1e1e2e;
|
||||
--bg-secondary: #181825;
|
||||
--text-primary: #cdd6f4;
|
||||
--text-secondary: #bac2de;
|
||||
--accent: #f38ba8;
|
||||
--border: #313244;
|
||||
}
|
||||
|
||||
.theme-catppuccin-macchiato {
|
||||
--bg-primary: #24273a;
|
||||
--bg-secondary: #1e2030;
|
||||
--text-primary: #cad3f5;
|
||||
--text-secondary: #b8c0e0;
|
||||
--accent: #f0c6c6;
|
||||
--border: #363a4f;
|
||||
}
|
||||
|
||||
.theme-catppuccin-frappe {
|
||||
--bg-primary: #303446;
|
||||
--bg-secondary: #292c3c;
|
||||
--text-primary: #c6d0f5;
|
||||
--text-secondary: #b5bfe2;
|
||||
--accent: #f2d5cf;
|
||||
--border: #414559;
|
||||
}
|
||||
|
||||
.theme-catppuccin-latte {
|
||||
--bg-primary: #eff1f5;
|
||||
--bg-secondary: #e6e9ef;
|
||||
--text-primary: #4c4f69;
|
||||
--text-secondary: #5c5f77;
|
||||
--accent: #d20f39;
|
||||
--border: #bcc0cc;
|
||||
}
|
||||
|
||||
.theme-wood-light {
|
||||
--bg-primary: rgba(222, 184, 135, 0.9);
|
||||
--bg-secondary: rgba(210, 166, 121, 0.95);
|
||||
--text-primary: #2c1810;
|
||||
--text-secondary: #5a3a2a;
|
||||
--accent: #8b5a2b;
|
||||
--border: #6b4423;
|
||||
}
|
||||
|
||||
.theme-wood-dark {
|
||||
--bg-primary: rgba(139, 115, 85, 0.9);
|
||||
--bg-secondary: rgba(107, 83, 68, 0.95);
|
||||
--text-primary: #f5e6d3;
|
||||
--text-secondary: #d4c4b0;
|
||||
--accent: #deb887;
|
||||
--border: #5a4636;
|
||||
}
|
||||
|
||||
.theme-wood-mahogany {
|
||||
--bg-primary: rgba(160, 82, 45, 0.9);
|
||||
--bg-secondary: rgba(139, 69, 19, 0.95);
|
||||
--text-primary: #ffe4c4;
|
||||
--text-secondary: #daa520;
|
||||
--accent: #f4a460;
|
||||
--border: #8b4513;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: var(--bg-secondary);
|
||||
border-color: var(--border);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--accent);
|
||||
color: var(--bg-primary);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
.loading-spinner {
|
||||
display: inline-block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 4px solid var(--border);
|
||||
border-top-color: var(--accent);
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
.status-pending { background-color: #f59e0b; color: white; }
|
||||
.status-processing { background-color: #3b82f6; color: white; }
|
||||
.status-completed { background-color: #10b981; color: white; }
|
||||
.status-failed { background-color: #ef4444; color: white; }
|
||||
|
||||
.priority-1 { background-color: #ef4444; color: white; }
|
||||
.priority-2 { background-color: #f97316; color: white; }
|
||||
.priority-3 { background-color: #f59e0b; color: white; }
|
||||
.priority-5 { background-color: #10b981; color: white; }
|
||||
.priority-7 { background-color: #6b7280; color: white; }
|
||||
.priority-10 { background-color: #9ca3af; color: white; }
|
||||
}
|
||||
Reference in New Issue
Block a user