Files
Termix/src/ui/index.css
T
2026-05-14 00:55:12 -05:00

491 lines
14 KiB
CSS

@import "tailwindcss";
@import "tw-animate-css";
@import "shadcn/tailwind.css";
@import "@fontsource-variable/jetbrains-mono";
@custom-variant dark (&:is(.dark *));
@custom-variant dracula (&:is(.dracula *));
@custom-variant catppuccin (&:is(.catppuccin *));
@custom-variant nord (&:is(.nord *));
@custom-variant solarized (&:is(.solarized *));
@custom-variant tokyo-night (&:is(.tokyo-night *));
@custom-variant one-dark (&:is(.one-dark *));
@custom-variant gruvbox (&:is(.gruvbox *));
@theme inline {
--font-heading: var(--font-mono);
--font-mono: "JetBrains Mono Variable", monospace;
--color-accent-brand: var(--accent-brand);
--color-sidebar-ring: var(--sidebar-ring);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar: var(--sidebar);
--color-chart-5: var(--chart-5);
--color-chart-4: var(--chart-4);
--color-chart-3: var(--chart-3);
--color-chart-2: var(--chart-2);
--color-chart-1: var(--chart-1);
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
--color-muted-foreground: var(--muted-foreground);
--color-muted: var(--muted);
--color-secondary-foreground: var(--secondary-foreground);
--color-secondary: var(--secondary);
--color-primary-foreground: var(--primary-foreground);
--color-primary: var(--primary);
--color-popover-foreground: var(--popover-foreground);
--color-popover: var(--popover);
--color-card-foreground: var(--card-foreground);
--color-card: var(--card);
--color-foreground: var(--foreground);
--color-background: var(--background);
--color-surface: var(--surface);
--color-surface-dim: var(--surface-dim);
--radius-sm: calc(var(--radius) * 0.6);
--radius-md: calc(var(--radius) * 0.8);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) * 1.4);
--radius-2xl: calc(var(--radius) * 1.8);
--radius-3xl: calc(var(--radius) * 2.2);
--radius-4xl: calc(var(--radius) * 2.6);
}
:root {
--accent-brand: #f59145;
--background: oklch(1 0 0);
--foreground: oklch(0.1802 0.0043 128.73);
--card: oklch(1 0 0);
--card-foreground: oklch(0.1802 0.0043 128.73);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.1802 0.0043 128.73);
--primary: oklch(0.2115 0.0042 128.68);
--primary-foreground: oklch(0.985 0 0);
--secondary: oklch(0.97 0 0);
--secondary-foreground: oklch(0.2115 0.0042 128.68);
--muted: oklch(0.97 0 0);
--muted-foreground: oklch(0.556 0 0);
--accent: oklch(0.97 0 0);
--accent-foreground: oklch(0.2115 0.0042 128.68);
--destructive: oklch(0.577 0.245 27.325);
--border: oklch(0.922 0 0);
--input: oklch(0.922 0 0);
--ring: oklch(0.708 0 0);
--chart-1: oklch(0.87 0 0);
--chart-2: oklch(0.556 0 0);
--chart-3: oklch(0.439 0 0);
--chart-4: oklch(0.371 0 0);
--chart-5: oklch(0.269 0 0);
--radius: 0.625rem;
--surface: oklch(0.97 0 0);
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.1802 0.0043 128.73);
--sidebar-primary: oklch(0.2115 0.0042 128.68);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.97 0 0);
--sidebar-accent-foreground: oklch(0.2115 0.0042 128.68);
--sidebar-border: oklch(0.922 0 0);
--sidebar-ring: oklch(0.708 0 0);
}
.dark {
--background: oklch(0.155 0.004 128.73);
--foreground: oklch(0.985 0 0);
--card: oklch(0.21 0.004 128.68);
--card-foreground: oklch(0.985 0 0);
--popover: oklch(0.21 0.004 128.68);
--popover-foreground: oklch(0.985 0 0);
--primary: oklch(0.922 0 0);
--primary-foreground: oklch(0.2115 0.0042 128.68);
--secondary: oklch(0.269 0 0);
--secondary-foreground: oklch(0.985 0 0);
--surface: oklch(0.185 0.004 128.73);
--surface-dim: oklch(0.165 0.003 128.73);
--muted: oklch(0.255 0 0);
--muted-foreground: oklch(0.72 0 0);
--accent: oklch(0.255 0 0);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
--border: oklch(1 0 0 / 12%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.556 0 0);
--chart-1: oklch(0.87 0 0);
--chart-2: oklch(0.556 0 0);
--chart-3: oklch(0.439 0 0);
--chart-4: oklch(0.371 0 0);
--chart-5: oklch(0.269 0 0);
--sidebar: oklch(0.195 0.004 128.68);
--sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.255 0 0);
--sidebar-accent-foreground: oklch(0.985 0 0);
--sidebar-border: oklch(1 0 0 / 12%);
--sidebar-ring: oklch(0.556 0 0);
}
/* ── Dracula ────────────────────────────────────────────────── */
.dracula {
--background: #282a36;
--foreground: #f8f8f2;
--card: #21222c;
--card-foreground: #f8f8f2;
--popover: #21222c;
--popover-foreground: #f8f8f2;
--primary: #f8f8f2;
--primary-foreground: #282a36;
--secondary: #44475a;
--secondary-foreground: #f8f8f2;
--surface: #21222c;
--surface-dim: #191a21;
--muted: #44475a;
--muted-foreground: #6272a4;
--accent: #44475a;
--accent-foreground: #f8f8f2;
--destructive: #ff5555;
--border: rgba(98, 114, 164, 0.25);
--input: rgba(98, 114, 164, 0.2);
--ring: #6272a4;
--chart-1: #ff79c6;
--chart-2: #8be9fd;
--chart-3: #50fa7b;
--chart-4: #ffb86c;
--chart-5: #bd93f9;
--radius: 0.625rem;
--sidebar: #21222c;
--sidebar-foreground: #f8f8f2;
--sidebar-primary: #bd93f9;
--sidebar-primary-foreground: #282a36;
--sidebar-accent: #44475a;
--sidebar-accent-foreground: #f8f8f2;
--sidebar-border: rgba(98, 114, 164, 0.25);
--sidebar-ring: #6272a4;
}
/* ── Catppuccin Mocha ───────────────────────────────────────── */
.catppuccin {
--background: #1e1e2e;
--foreground: #cdd6f4;
--card: #181825;
--card-foreground: #cdd6f4;
--popover: #181825;
--popover-foreground: #cdd6f4;
--primary: #cdd6f4;
--primary-foreground: #1e1e2e;
--secondary: #313244;
--secondary-foreground: #cdd6f4;
--surface: #181825;
--surface-dim: #11111b;
--muted: #313244;
--muted-foreground: #6c7086;
--accent: #313244;
--accent-foreground: #cdd6f4;
--destructive: #f38ba8;
--border: rgba(108, 112, 134, 0.25);
--input: rgba(108, 112, 134, 0.2);
--ring: #6c7086;
--chart-1: #f38ba8;
--chart-2: #89dceb;
--chart-3: #a6e3a1;
--chart-4: #fab387;
--chart-5: #cba6f7;
--radius: 0.625rem;
--sidebar: #181825;
--sidebar-foreground: #cdd6f4;
--sidebar-primary: #cba6f7;
--sidebar-primary-foreground: #1e1e2e;
--sidebar-accent: #313244;
--sidebar-accent-foreground: #cdd6f4;
--sidebar-border: rgba(108, 112, 134, 0.25);
--sidebar-ring: #6c7086;
}
/* ── Nord ───────────────────────────────────────────────────── */
.nord {
--background: #2e3440;
--foreground: #eceff4;
--card: #272c36;
--card-foreground: #eceff4;
--popover: #272c36;
--popover-foreground: #eceff4;
--primary: #eceff4;
--primary-foreground: #2e3440;
--secondary: #3b4252;
--secondary-foreground: #eceff4;
--surface: #272c36;
--surface-dim: #22262e;
--muted: #3b4252;
--muted-foreground: #4c566a;
--accent: #3b4252;
--accent-foreground: #eceff4;
--destructive: #bf616a;
--border: rgba(76, 86, 106, 0.35);
--input: rgba(76, 86, 106, 0.3);
--ring: #4c566a;
--chart-1: #bf616a;
--chart-2: #88c0d0;
--chart-3: #a3be8c;
--chart-4: #ebcb8b;
--chart-5: #b48ead;
--radius: 0.625rem;
--sidebar: #272c36;
--sidebar-foreground: #eceff4;
--sidebar-primary: #88c0d0;
--sidebar-primary-foreground: #2e3440;
--sidebar-accent: #3b4252;
--sidebar-accent-foreground: #eceff4;
--sidebar-border: rgba(76, 86, 106, 0.35);
--sidebar-ring: #4c566a;
}
/* ── Solarized Dark ─────────────────────────────────────────── */
.solarized {
--background: #002b36;
--foreground: #839496;
--card: #073642;
--card-foreground: #93a1a1;
--popover: #073642;
--popover-foreground: #93a1a1;
--primary: #93a1a1;
--primary-foreground: #002b36;
--secondary: #073642;
--secondary-foreground: #839496;
--surface: #073642;
--surface-dim: #00212b;
--muted: #073642;
--muted-foreground: #586e75;
--accent: #073642;
--accent-foreground: #93a1a1;
--destructive: #dc322f;
--border: rgba(88, 110, 117, 0.3);
--input: rgba(88, 110, 117, 0.25);
--ring: #586e75;
--chart-1: #dc322f;
--chart-2: #2aa198;
--chart-3: #859900;
--chart-4: #b58900;
--chart-5: #6c71c4;
--radius: 0.625rem;
--sidebar: #073642;
--sidebar-foreground: #93a1a1;
--sidebar-primary: #268bd2;
--sidebar-primary-foreground: #002b36;
--sidebar-accent: #073642;
--sidebar-accent-foreground: #93a1a1;
--sidebar-border: rgba(88, 110, 117, 0.3);
--sidebar-ring: #586e75;
}
/* ── Tokyo Night ────────────────────────────────────────────── */
.tokyo-night {
--background: #1a1b26;
--foreground: #a9b1d6;
--card: #16161e;
--card-foreground: #a9b1d6;
--popover: #16161e;
--popover-foreground: #a9b1d6;
--primary: #a9b1d6;
--primary-foreground: #1a1b26;
--secondary: #24283b;
--secondary-foreground: #a9b1d6;
--surface: #16161e;
--surface-dim: #13131a;
--muted: #24283b;
--muted-foreground: #565f89;
--accent: #24283b;
--accent-foreground: #a9b1d6;
--destructive: #f7768e;
--border: rgba(86, 95, 137, 0.25);
--input: rgba(86, 95, 137, 0.2);
--ring: #565f89;
--chart-1: #f7768e;
--chart-2: #7dcfff;
--chart-3: #9ece6a;
--chart-4: #e0af68;
--chart-5: #bb9af7;
--radius: 0.625rem;
--sidebar: #16161e;
--sidebar-foreground: #a9b1d6;
--sidebar-primary: #7aa2f7;
--sidebar-primary-foreground: #1a1b26;
--sidebar-accent: #24283b;
--sidebar-accent-foreground: #a9b1d6;
--sidebar-border: rgba(86, 95, 137, 0.25);
--sidebar-ring: #565f89;
}
/* ── One Dark ───────────────────────────────────────────────── */
.one-dark {
--background: #282c34;
--foreground: #abb2bf;
--card: #21252b;
--card-foreground: #abb2bf;
--popover: #21252b;
--popover-foreground: #abb2bf;
--primary: #abb2bf;
--primary-foreground: #282c34;
--secondary: #2c313a;
--secondary-foreground: #abb2bf;
--surface: #21252b;
--surface-dim: #1b1f23;
--muted: #2c313a;
--muted-foreground: #5c6370;
--accent: #2c313a;
--accent-foreground: #abb2bf;
--destructive: #e06c75;
--border: rgba(92, 99, 112, 0.25);
--input: rgba(92, 99, 112, 0.2);
--ring: #5c6370;
--chart-1: #e06c75;
--chart-2: #56b6c2;
--chart-3: #98c379;
--chart-4: #e5c07b;
--chart-5: #c678dd;
--radius: 0.625rem;
--sidebar: #21252b;
--sidebar-foreground: #abb2bf;
--sidebar-primary: #61afef;
--sidebar-primary-foreground: #282c34;
--sidebar-accent: #2c313a;
--sidebar-accent-foreground: #abb2bf;
--sidebar-border: rgba(92, 99, 112, 0.25);
--sidebar-ring: #5c6370;
}
/* ── Gruvbox Dark ───────────────────────────────────────────── */
.gruvbox {
--background: #282828;
--foreground: #ebdbb2;
--card: #1d2021;
--card-foreground: #ebdbb2;
--popover: #1d2021;
--popover-foreground: #ebdbb2;
--primary: #ebdbb2;
--primary-foreground: #282828;
--secondary: #3c3836;
--secondary-foreground: #ebdbb2;
--surface: #1d2021;
--surface-dim: #181a1a;
--muted: #3c3836;
--muted-foreground: #928374;
--accent: #3c3836;
--accent-foreground: #ebdbb2;
--destructive: #cc241d;
--border: rgba(146, 131, 116, 0.2);
--input: rgba(146, 131, 116, 0.15);
--ring: #928374;
--chart-1: #cc241d;
--chart-2: #689d6a;
--chart-3: #98971a;
--chart-4: #d79921;
--chart-5: #b16286;
--radius: 0.625rem;
--sidebar: #1d2021;
--sidebar-foreground: #ebdbb2;
--sidebar-primary: #fabd2f;
--sidebar-primary-foreground: #282828;
--sidebar-accent: #3c3836;
--sidebar-accent-foreground: #ebdbb2;
--sidebar-border: rgba(146, 131, 116, 0.2);
--sidebar-ring: #928374;
}
@layer base {
* {
@apply outline-none;
scrollbar-width: thin;
scrollbar-color: oklch(1 0 0 / 20%) transparent;
}
*::-webkit-scrollbar {
width: 6px;
height: 6px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background: oklch(1 0 0 / 20%);
border-radius: 3px;
}
*::-webkit-scrollbar-thumb:hover {
background: oklch(1 0 0 / 35%);
}
*::-webkit-scrollbar-corner {
background: transparent;
}
html,
body,
#root {
height: 100dvh;
@apply overflow-hidden;
}
body {
@apply bg-background text-foreground font-mono;
}
html {
@apply font-mono;
}
}
/* Font size scale applied to html element */
html.fs-xs {
font-size: 11px;
}
html.fs-sm {
font-size: 12px;
}
html.fs-md {
font-size: 14px;
}
html.fs-lg {
font-size: 16px;
}
html.fs-xl {
font-size: 18px;
}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
.safe-bottom {
padding-bottom: env(safe-area-inset-bottom);
}
}
@utility scrollbar-none {
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}
@utility thin-scrollbar {
scrollbar-width: thin;
scrollbar-color: oklch(1 0 0 / 15%) transparent;
&::-webkit-scrollbar {
width: 4px;
}
&::-webkit-scrollbar-track {
background: transparent;
}
&::-webkit-scrollbar-thumb {
background: oklch(1 0 0 / 15%);
border-radius: 2px;
}
}
@keyframes blink {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0;
}
}