fix(ui): make wood paneling text colors consistent and visible
Fix text color display issues on wood gradient backgrounds in the dashboard's collections container, ensuring small text matches big text and "View All" links stand out with proper wood-specific colors. Changes: - Remove .text-sm from grey text rule to match big text colors - Keep .text-secondary as only grey text class - Links maintain wood-specific standout colors via specific selectors Problem: - Small text (.text-sm) was forced to grey (--wood-text-secondary) - "View All" links inherited grey instead of wood link colors - Inconsistent text sizing created visual hierarchy issues Root Cause: input.css:243-247 applied --wood-text-secondary to .text-sm This overrode wood-specific link colors at lines 250-257 Solution: Remove .text-sm and p.text-sm from the grey text rule: - Before: .text-sm, .text-secondary, p.text-sm → grey - After: .text-secondary only → grey - .text-sm now uses --wood-text-primary (matches big text) - Links (including "View All") use wood-specific blue colors Impact: - All small text now matches big text color on wood backgrounds - "View All" links stand out with proper colors (#0066cc for light wood, #66ccff for dark) - Improved readability and visual consistency - Better user experience on wood gradient themes Wood Theme Colors: - Wood Light: #0066cc (dark blue for contrast on light background) - Wood Dark: #66ccff (light blue for visibility on dark background) - Wood Mahogany: #66ccff (light blue for visibility on dark background) Files: web/static/input.css Lines Modified: 243-247 (removed selectors) Related: templates/dashboard.templ:100 (View All link)
This commit is contained in:
+265
-235
@@ -4,277 +4,307 @@
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
--bg-primary: #1a1b26;
|
||||
--bg-secondary: #16161e;
|
||||
--text-primary: #a9b1d6;
|
||||
--text-secondary: #565f89;
|
||||
--accent: #7aa2f7;
|
||||
--border: #414868;
|
||||
}
|
||||
: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-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-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-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-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-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-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-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-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-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-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-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);
|
||||
}
|
||||
body {
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* Header component styles */
|
||||
.header-nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
/* Header component styles */
|
||||
.header-nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Make header sticky only on docs pages */
|
||||
body:not(.page-docs) .header-nav {
|
||||
position: static;
|
||||
}
|
||||
/* 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;
|
||||
}
|
||||
/* 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);
|
||||
}
|
||||
.card {
|
||||
background-color: var(--bg-secondary);
|
||||
border-color: var(--border);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--accent);
|
||||
color: var(--bg-primary);
|
||||
}
|
||||
.btn-primary {
|
||||
background-color: var(--accent);
|
||||
color: var(--bg-primary);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
.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); }
|
||||
}
|
||||
@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; }
|
||||
.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; }
|
||||
.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;
|
||||
}
|
||||
/* 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 code.hljs {
|
||||
background-color: #1a1b26 !important;
|
||||
padding: 0.2em 0.4em;
|
||||
}
|
||||
|
||||
.prose pre {
|
||||
background-color: #16161e !important;
|
||||
}
|
||||
.prose pre {
|
||||
background-color: #16161e !important;
|
||||
}
|
||||
|
||||
.prose .hljs {
|
||||
background-color: transparent !important;
|
||||
color: #c0caf5 !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;
|
||||
}
|
||||
/* 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;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
/* 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 light text */
|
||||
#collections-container[data-wood="wood-dark"] {
|
||||
--wood-text-primary: #f5f5f5;
|
||||
--wood-text-secondary: #c0c0c0;
|
||||
--wood-border: #5c3317;
|
||||
}
|
||||
/* Wood Dark - needs light text */
|
||||
#collections-container[data-wood="wood-dark"] {
|
||||
--wood-text-primary: #f5f5f5;
|
||||
--wood-text-secondary: #c0c0c0;
|
||||
--wood-border: #5c3317;
|
||||
}
|
||||
|
||||
/* Wood Mahogany - needs light text (darkest background) */
|
||||
#collections-container[data-wood="wood-mahogany"] {
|
||||
--wood-text-primary: #f5f5f5;
|
||||
--wood-text-secondary: #c0c0c0;
|
||||
--wood-border: #5c3317;
|
||||
}
|
||||
/* 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;
|
||||
}
|
||||
/* 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;
|
||||
}
|
||||
#collections-container[data-wood] .text-secondary {
|
||||
color: var(--wood-text-secondary) !important;
|
||||
}
|
||||
|
||||
/* Links on wood-light need darker color for visibility */
|
||||
#collections-container[data-wood="wood-light"] a {
|
||||
color: #0066cc !important;
|
||||
}
|
||||
/* Links on dark woods use lighter color */
|
||||
#collections-container[data-wood="wood-dark"] a,
|
||||
#collections-container[data-wood="wood-mahogany"] a {
|
||||
color: #66ccff !important;
|
||||
}
|
||||
/* Links on wood-light need darker color for visibility */
|
||||
#collections-container[data-wood="wood-light"] a {
|
||||
color: #0066cc !important;
|
||||
}
|
||||
/* Links on dark woods use lighter color */
|
||||
#collections-container[data-wood="wood-dark"] a,
|
||||
#collections-container[data-wood="wood-mahogany"] a {
|
||||
color: #66ccff !important;
|
||||
}
|
||||
|
||||
/* Wood Light - use darker gradient */
|
||||
#collections-container[data-wood="wood-light"] .carousel-nav-left {
|
||||
background: linear-gradient(to right, rgba(0, 0, 0, 0.6), transparent);
|
||||
}
|
||||
#collections-container[data-wood="wood-light"] .carousel-nav-right {
|
||||
background: linear-gradient(to left, rgba(0, 0, 0, 0.6), transparent);
|
||||
}
|
||||
/* Wood Dark/Mahogany - use subtle white/transparent gradient */
|
||||
#collections-container[data-wood="wood-dark"] .carousel-nav-left,
|
||||
#collections-container[data-wood="wood-mahogany"] .carousel-nav-left {
|
||||
background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);
|
||||
}
|
||||
#collections-container[data-wood="wood-dark"] .carousel-nav-right,
|
||||
#collections-container[data-wood="wood-mahogany"] .carousel-nav-right {
|
||||
background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);
|
||||
}
|
||||
#collections-container[data-wood="wood-light"] .carousel-nav-left {
|
||||
background: linear-gradient(to right, rgba(0, 0, 0, 0.6), transparent);
|
||||
}
|
||||
#collections-container[data-wood="wood-light"] .carousel-nav-right {
|
||||
background: linear-gradient(to left, rgba(0, 0, 0, 0.6), transparent);
|
||||
}
|
||||
/* Wood Dark/Mahogany - use subtle white/transparent gradient */
|
||||
#collections-container[data-wood="wood-dark"] .carousel-nav-left,
|
||||
#collections-container[data-wood="wood-mahogany"] .carousel-nav-left {
|
||||
background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);
|
||||
}
|
||||
#collections-container[data-wood="wood-dark"] .carousel-nav-right,
|
||||
#collections-container[data-wood="wood-mahogany"] .carousel-nav-right {
|
||||
background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);
|
||||
}
|
||||
|
||||
/* Add subtle borders to book cards on wood backgrounds */
|
||||
#collections-container[data-wood] .book-card {
|
||||
border: 1px solid var(--wood-border);
|
||||
}
|
||||
}
|
||||
/* Add subtle borders to book cards on wood backgrounds */
|
||||
#collections-container[data-wood] .book-card {
|
||||
border: 1px solid var(--wood-border);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user