Files
watcher-visio/static/css/main.css
Nikolay Tatarinov 0ecad9bd72 Refactor Dockerfile and enhance CSS for improved theme support
- Updated Dockerfile to standardize environment variable syntax and improve readability.
- Added new CSS variables for chart grid color and enhanced dark theme contrast for CPU chart statistics.
- Modified index.html to utilize new CSS variables for better theme adaptability and improved chart rendering.
2026-02-07 14:42:59 +03:00

207 lines
6.0 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@import "tailwindcss";
@plugin "daisyui";
@theme {
--font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
@plugin "daisyui/theme" {
name: "light";
default: true;
prefersdark: false;
color-scheme: "light";
--color-base-100: oklch(100% 0.004 260);
--color-base-200: oklch(98% 0.004 260);
--color-base-300: oklch(95% 0.004 260);
--color-base-content: oklch(22% 0.02 260);
--color-primary: #0a2973;
--color-primary-content: #ffffff;
--color-secondary: #009fdf;
--color-secondary-content: #ffffff;
--color-accent: #009fdf;
--color-accent-content: #ffffff;
--color-neutral: #333333;
--color-neutral-content: oklch(92% 0.004 286.32);
--color-info: oklch(74% 0.16 232.661);
--color-info-content: oklch(29% 0.066 243.157);
--color-success: oklch(76% 0.177 163.223);
--color-success-content: oklch(37% 0.077 168.94);
--color-warning: oklch(82% 0.189 84.429);
--color-warning-content: oklch(41% 0.112 45.904);
--color-error: oklch(71% 0.194 13.428);
--color-error-content: oklch(27% 0.105 12.094);
--radius-selector: 0.5rem;
--radius-field: 0.25rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 0;
--chart-grid-color: color-mix(in oklch, var(--color-base-content) 22%, transparent);
}
@plugin "daisyui/theme" {
name: "dark";
default: false;
prefersdark: true;
color-scheme: "dark";
--color-base-100: oklch(22% 0.014 260);
--color-base-200: oklch(19% 0.012 260);
--color-base-300: oklch(16% 0.01 260);
--color-base-content: oklch(96% 0.01 260);
/* Lighter primary/secondary for readability on dark background (cards, progress, %) */
--color-primary: oklch(65% 0.2 260);
--color-primary-content: #ffffff;
--color-secondary: oklch(72% 0.16 230);
--color-secondary-content: #ffffff;
--color-accent: oklch(72% 0.16 230);
--color-accent-content: #ffffff;
--color-neutral: oklch(28% 0.02 260);
--color-neutral-content: oklch(92% 0.004 286.32);
--color-info: oklch(74% 0.16 232.661);
--color-info-content: oklch(29% 0.066 243.157);
--color-success: oklch(76% 0.177 163.223);
--color-success-content: oklch(37% 0.077 168.94);
--color-warning: oklch(82% 0.189 84.429);
--color-warning-content: oklch(41% 0.112 45.904);
--color-error: oklch(71% 0.194 13.428);
--color-error-content: oklch(27% 0.105 12.094);
--radius-selector: 0.5rem;
--radius-field: 0.25rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 0;
--chart-grid-color: color-mix(in oklch, var(--color-base-content) 22%, transparent);
}
/* VTB gradient (both themes) */
:root {
--gradient-vtb: linear-gradient(135deg, #0a2973 0%, #009fdf 100%);
}
/* Gradient top border for cards */
.border-t-gradient-vtb {
position: relative;
}
.border-t-gradient-vtb::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: var(--gradient-vtb);
border-radius: var(--radius-box) var(--radius-box) 0 0;
}
/* Gradient button (e.g. Load Analysis) */
.btn-gradient-vtb {
background: var(--gradient-vtb);
color: #ffffff;
border: none;
}
.btn-gradient-vtb:hover {
opacity: 0.9;
color: #ffffff;
}
/* Main content area: distinct background so cards (base-100) stand out */
[data-theme=light] main {
background-color: var(--color-base-200);
}
[data-theme=dark] main {
background-color: var(--color-base-200);
}
/* Dark theme: improve contrast for muted text and controls */
[data-theme=dark] .text-base-content\/60 {
color: color-mix(in oklch, var(--color-base-content) 88%, transparent);
}
[data-theme=dark] .text-base-content\/70 {
color: color-mix(in oklch, var(--color-base-content) 92%, transparent);
}
[data-theme=dark] .text-base-content\/30 {
color: color-mix(in oklch, var(--color-base-content) 55%, transparent);
}
[data-theme=dark] .badge-outline {
border-color: color-mix(in oklch, var(--color-base-content) 75%, transparent);
color: color-mix(in oklch, var(--color-base-content) 90%, transparent);
}
[data-theme=dark] .badge-neutral {
background-color: var(--color-base-300);
color: var(--color-base-content);
border-color: transparent;
}
[data-theme=dark] .btn-ghost {
color: color-mix(in oklch, var(--color-base-content) 90%, transparent);
}
[data-theme=dark] .btn-ghost:hover {
color: var(--color-base-content);
background-color: color-mix(in oklch, var(--color-base-content) 12%, transparent);
}
/* Dark theme: better contrast for CPU chart stats (Mean, ±0.5σ) */
[data-theme=dark] section[aria-label="CPU distribution chart"] .text-success {
color: oklch(85% 0.16 163);
}
[data-theme=dark] section[aria-label="CPU distribution chart"] .text-error\/60 {
color: oklch(82% 0.18 13);
}
/* Accessibility: ensure focus ring is visible on key controls */
.btn:focus-visible,
.select:focus-within,
label.swap:focus-within:not(.theme-toggle) {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
}
/* Light theme: slightly stronger card shadow for depth */
[data-theme=light] .card.shadow-sm {
box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.06);
}
[data-theme=light] .card.shadow-sm:hover {
box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.08), 0 2px 4px -2px rgb(0 0 0 / 0.06);
}
@source "../../templates";
/* --- Print (Save as PDF) --- */
@media print {
.no-print {
display: none !important;
}
.print-only {
display: block !important;
}
/* Keep card backgrounds and colors when printing */
.card,
main,
.badge,
.progress {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
/* Avoid breaking cards and sections across pages */
.card {
break-inside: avoid;
page-break-inside: avoid;
}
section {
break-inside: avoid;
page-break-inside: avoid;
}
/* Reduce top padding so content starts higher */
main {
padding-top: 0.5rem !important;
}
}
@media screen {
.print-only {
display: none !important;
}
}