yujisium's picture
Fintech Dark Patterns NLP Detector - full project upload
5752a28 verified
Raw
History Blame Contribute Delete
6.89 kB
@custom-variant dark (&:is(.dark *));
:root {
--font-size: 16px;
--background: #f8fafc; /* Slate 50 (Light) */
--foreground: #0f172a; /* Slate 900 */
--card: #ffffff; /* White card */
--card-foreground: #0f172a;
--popover: #ffffff;
--popover-foreground: #0f172a;
--primary: #4f46e5; /* Indigo 600 */
--primary-foreground: #ffffff;
--secondary: #f1f5f9; /* Slate 100 */
--secondary-foreground: #0f172a;
--muted: #f1f5f9;
--muted-foreground: #64748b; /* Slate 500 */
--accent: #e2e8f0; /* Slate 200 */
--accent-foreground: #0f172a;
--destructive: #e11d48; /* Rose 600 */
--destructive-foreground: #ffffff;
--border: #e2e8f0; /* Slate 200 */
--input: #ffffff;
--input-background: #ffffff;
--switch-background: #cbd5e1;
--font-weight-medium: 500;
--font-weight-normal: 400;
--ring: #4f46e5;
--chart-1: #4f46e5; /* Indigo */
--chart-2: #10b981; /* Emerald */
--chart-3: #f59e0b; /* Amber */
--chart-4: #ec4899; /* Pink */
--chart-5: #06b6d4; /* Cyan */
--radius: 0.75rem;
}
.dark {
--background: #0b0f19; /* Deep navy (Dark) */
--foreground: #f8fafc; /* Slate 50 */
--card: #151d30; /* Dark slate card */
--card-foreground: #f8fafc;
--popover: #151d30;
--popover-foreground: #f8fafc;
--primary: #6366f1; /* Neon Indigo */
--primary-foreground: #ffffff;
--secondary: #1e293b; /* Slate 800 */
--secondary-foreground: #f8fafc;
--muted: #1e293b;
--muted-foreground: #94a3b8; /* Slate 400 */
--accent: #312e81; /* Deep Indigo accent */
--accent-foreground: #f8fafc;
--destructive: #f43f5e; /* Rose 500 */
--destructive-foreground: #ffffff;
--border: rgba(255, 255, 255, 0.08);
--input: #1e293b;
--input-background: #0f172a;
--switch-background: #334155;
--ring: #6366f1;
--chart-1: #6366f1;
--chart-2: #10b981;
--chart-3: #f59e0b;
--chart-4: #ec4899;
--chart-5: #06b6d4;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-input-background: var(--input-background);
--color-switch-background: var(--switch-background);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground transition-colors duration-300;
}
html {
font-size: var(--font-size);
}
h1 {
font-size: var(--text-2xl);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
h2 {
font-size: var(--text-xl);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
h3 {
font-size: var(--text-lg);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
h4 {
font-size: var(--text-base);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
label {
font-size: var(--text-base);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
button {
font-size: var(--text-base);
font-weight: var(--font-weight-medium);
line-height: 1.5;
}
input {
font-size: var(--text-base);
font-weight: var(--font-weight-normal);
line-height: 1.5;
}
}
/* Accessibility overrides for Tailwind hardcoded text, borders, and backdrops in Light Mode */
html:not(.dark) {
.text-slate-100 { color: #0f172a !important; }
.text-slate-200 { color: #1e293b !important; }
.text-slate-300 { color: #334155 !important; }
.text-slate-400 { color: #475569 !important; }
.text-slate-500 { color: #64748b !important; }
.text-slate-600 { color: #334155 !important; }
.text-slate-700 { color: #1e293b !important; }
/* Map glowing neon colors (designed for dark backgrounds) to high-contrast equivalents */
.text-indigo-400 { color: #4f46e5 !important; } /* indigo-600 */
.text-indigo-300 { color: #3730a3 !important; } /* indigo-800 */
.text-indigo-200 { color: #3730a3 !important; }
.text-rose-400 { color: #e11d48 !important; } /* rose-600 */
.text-rose-200 { color: #9f1239 !important; } /* rose-800 */
.text-orange-400 { color: #ea580c !important; } /* orange-600 */
.text-amber-400 { color: #d97706 !important; } /* amber-600 */
.text-emerald-400 { color: #059669 !important; } /* emerald-600 */
.text-emerald-200 { color: #065f46 !important; }
.text-cyan-400 { color: #0891b2 !important; } /* cyan-600 */
.text-purple-400 { color: #7c3aed !important; } /* purple-600 */
/* Map dark-theme background overlays to readable light-mode values */
.bg-slate-900\/30 { background-color: rgba(15, 23, 42, 0.04) !important; }
.bg-slate-950\/20 { background-color: rgba(15, 23, 42, 0.03) !important; }
.bg-slate-950\/40 { background-color: rgba(15, 23, 42, 0.05) !important; }
.bg-slate-900\/40 { background-color: rgba(15, 23, 42, 0.05) !important; }
.bg-slate-900\/60 { background-color: rgba(15, 23, 42, 0.04) !important; }
.bg-slate-900\/10 { background-color: rgba(15, 23, 42, 0.05) !important; }
.bg-card\/40 { background-color: rgba(255, 255, 255, 0.8) !important; }
.bg-card\/60 { background-color: rgba(255, 255, 255, 0.8) !important; }
/* Bypassing invisible borders on light backgrounds */
.border-white\/5 { border-color: rgba(15, 23, 42, 0.08) !important; }
.border-indigo-500\/20 { border-color: rgba(79, 70, 229, 0.15) !important; }
.border-rose-500\/20 { border-color: rgba(225, 29, 72, 0.15) !important; }
.border-emerald-500\/20 { border-color: rgba(16, 185, 129, 0.15) !important; }
/* Make sure ticking chart tooltips are readable */
.recharts-tooltip-wrapper {
& > div {
background-color: #ffffff !important;
border: 1px solid rgba(0, 0, 0, 0.1) !important;
color: #0f172a !important;
}
}
}