- Add data-wood attribute to collections container for CSS targeting - Update woodPaneling.ts and woodPanelingInit.ts to set/remove attribute - Add CSS variables for wood-specific text colors (dark text on light wood, light text on dark wood) - Add !important rules to override theme colors when wood is active - Replace wood-dark and wood-mahogany textures with darker variants - Add subtle borders to book cards on wood backgrounds
258 lines
6.1 KiB
CSS
258 lines
6.1 KiB
CSS
/* Tailwind CSS directives - required for framework */
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@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: #c0caf5;
|
|
--text-secondary: #c0caf5;
|
|
--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;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--bg-primary);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
/* Header component styles */
|
|
.header-nav {
|
|
position: sticky;
|
|
top: 0;
|
|
}
|
|
|
|
/* Make header sticky only on docs pages */
|
|
body:not(.page-docs) .header-nav {
|
|
position: static;
|
|
}
|
|
|
|
/* Add class to body on docs pages */
|
|
.page-docs .header-nav {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 50;
|
|
}
|
|
|
|
.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; }
|
|
|
|
/* Override highlight.js hardcoded colors for code blocks */
|
|
.prose pre code.hljs {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
.prose code.hljs {
|
|
background-color: #1a1b26 !important;
|
|
padding: 0.2em 0.4em;
|
|
}
|
|
|
|
.prose pre {
|
|
background-color: #16161e !important;
|
|
}
|
|
|
|
.prose .hljs {
|
|
background-color: transparent !important;
|
|
color: #c0caf5 !important;
|
|
}
|
|
|
|
/* Active/inactive states for theme and wood paneling buttons */
|
|
.bg-theme-active,
|
|
.bg-wood-active {
|
|
background-color: var(--bg-primary) !important;
|
|
}
|
|
|
|
.bg-theme-inactive,
|
|
.bg-wood-inactive {
|
|
background-color: var(--bg-secondary) !important;
|
|
}
|
|
|
|
/* Smart text colors for wood paneling backgrounds */
|
|
/* Wood Light - needs dark text for contrast */
|
|
#collections-container[data-wood="wood-light"] {
|
|
--wood-text-primary: #1a1a1a;
|
|
--wood-text-secondary: #4a4a4a;
|
|
--wood-border: #2a2a2a;
|
|
}
|
|
|
|
/* Wood Dark - needs medium text */
|
|
#collections-container[data-wood="wood-dark"] {
|
|
--wood-text-primary: #d0d0d0;
|
|
--wood-text-secondary: #a0a0a0;
|
|
--wood-border: #5a4a3a;
|
|
}
|
|
|
|
/* Wood Mahogany - needs light text (darkest background) */
|
|
#collections-container[data-wood="wood-mahogany"] {
|
|
--wood-text-primary: #f5f5f5;
|
|
--wood-text-secondary: #c0c0c0;
|
|
--wood-border: #5c3317;
|
|
}
|
|
|
|
/* Apply wood-specific text colors to all text within collections container */
|
|
#collections-container[data-wood] h1,
|
|
#collections-container[data-wood] h2,
|
|
#collections-container[data-wood] h3,
|
|
#collections-container[data-wood] p,
|
|
#collections-container[data-wood] span,
|
|
#collections-container[data-wood] a,
|
|
#collections-container[data-wood] button {
|
|
color: var(--wood-text-primary) !important;
|
|
}
|
|
|
|
#collections-container[data-wood] .text-sm,
|
|
#collections-container[data-wood] .text-secondary,
|
|
#collections-container[data-wood] p.text-sm {
|
|
color: var(--wood-text-secondary) !important;
|
|
}
|
|
|
|
/* Preserve accent color for links */
|
|
#collections-container[data-wood] a[style*="accent"] {
|
|
color: var(--accent) !important;
|
|
}
|
|
|
|
/* Add subtle borders to book cards on wood backgrounds */
|
|
#collections-container[data-wood] .book-card {
|
|
border: 1px solid var(--wood-border);
|
|
}
|
|
} |