mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-07-15 21:03:47 +00:00
491 lines
14 KiB
CSS
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;
|
|
}
|
|
}
|