Implement gradient themes in CSS, enhance print functionality, and update card styles in templates. Add a PDF save button and improve layout for better accessibility and user experience.
This commit is contained in:
@@ -1,102 +1,169 @@
|
||||
@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 0);
|
||||
--color-base-200: oklch(98% 0 0);
|
||||
--color-base-300: oklch(95% 0 0);
|
||||
--color-base-content: oklch(21% 0.006 285.885);
|
||||
--color-primary: #0A2896;
|
||||
--color-primary-content: oklch(93% 0.034 272.788);
|
||||
--color-secondary: #428BCA;
|
||||
--color-secondary-content: oklch(100% 0 0);
|
||||
--color-accent: #A492FF;
|
||||
--color-accent-content: oklch(21% 0.006 285.885);
|
||||
--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;
|
||||
}
|
||||
|
||||
@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(95% 0.01 260);
|
||||
--color-primary: oklch(58% 0.2 270);
|
||||
--color-primary-content: oklch(96% 0.02 272);
|
||||
--color-secondary: oklch(62% 0.15 250);
|
||||
--color-secondary-content: oklch(96% 0.02 250);
|
||||
--color-accent: oklch(72% 0.18 280);
|
||||
--color-accent-content: oklch(20% 0.02 280);
|
||||
--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;
|
||||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/* Accessibility: ensure focus ring is visible on key controls */
|
||||
.btn:focus-visible,
|
||||
.select:focus-within,
|
||||
label.swap:focus-within {
|
||||
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";
|
||||
@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;
|
||||
}
|
||||
|
||||
@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);
|
||||
--color-primary: #0a2973;
|
||||
--color-primary-content: #ffffff;
|
||||
--color-secondary: #009fdf;
|
||||
--color-secondary-content: #ffffff;
|
||||
--color-accent: #009fdf;
|
||||
--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;
|
||||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/* 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user