refactor: update class names for consistency and improve styling
Build & Push Docker Image / build (push) Successful in 4m21s

- Changed `flex-shrink-0` to `shrink-0` in multiple components for better consistency.
- Updated button and checkbox classes to use `rounded-sm` for a more uniform appearance.
- Adjusted backdrop blur classes for modals to `backdrop-blur-xs` for a subtler effect.
- Removed unused Tailwind CSS configuration file.
This commit is contained in:
2026-05-18 13:07:26 +02:00
parent aba7819f12
commit 4028e913c4
28 changed files with 1608 additions and 1425 deletions
+134 -84
View File
@@ -1,6 +1,126 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';
@theme {
--color-th-bg: var(--bg-primary);
--color-th-bg-s: var(--bg-secondary);
--color-th-bg-t: var(--bg-tertiary);
--color-th-text: var(--text-primary);
--color-th-text-s: var(--text-secondary);
--color-th-accent: var(--accent);
--color-th-accent-h: var(--accent-hover);
--color-th-accent-t: var(--accent-text);
--color-th-border: var(--border);
--color-th-card: var(--card-bg);
--color-th-input: var(--input-bg);
--color-th-input-b: var(--input-border);
--color-th-nav: var(--nav-bg);
--color-th-side: var(--sidebar-bg);
--color-th-hover: var(--hover-bg);
--color-th-success: var(--success);
--color-th-warning: var(--warning);
--color-th-error: var(--error);
--color-th-ring: var(--ring);
--font-sans: Inter, system-ui, -apple-system, sans-serif;
--shadow-th:
0 1px 3px 0 var(--shadow-color), 0 1px 2px -1px var(--shadow-color);
--shadow-th-lg:
0 10px 15px -3px var(--shadow-color), 0 4px 6px -4px var(--shadow-color);
}
/*
The default border color has changed to `currentcolor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.
If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentcolor);
}
}
@utility btn-primary {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-accent text-th-accent-t hover:bg-th-accent-h
transition-all duration-200 ease-out
focus:outline-hidden focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
@utility btn-secondary {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-bg-s text-th-text border border-th-border
hover:bg-th-hover transition-all duration-200 ease-out
focus:outline-hidden focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
@utility btn-danger {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-error text-white hover:opacity-90
transition-all duration-200 ease-out
focus:outline-hidden focus:ring-2 focus:ring-th-error focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
@utility btn-ghost {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
text-th-text-s hover:bg-th-hover hover:text-th-text
transition-all duration-200 ease-out
focus:outline-hidden focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
@utility input-field {
@apply w-full px-4 py-2.5 rounded-lg
bg-th-input text-th-text placeholder-th-text-s
border border-th-input-b
focus:outline-hidden focus:ring-2 focus:ring-th-ring focus:border-transparent
transition-all duration-200;
}
@utility card {
@apply bg-th-card rounded-xl border border-th-border
shadow-th transition-all duration-200;
}
@utility card-hover {
@apply card hover:shadow-th-lg cursor-pointer;
&:hover {
border-color: color-mix(in srgb, var(--accent) 30%, transparent);
}
}
@utility gradient-text {
background: linear-gradient(
135deg,
var(--gradient-start),
var(--gradient-end)
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
@utility gradient-bg {
background: linear-gradient(
135deg,
var(--gradient-start),
var(--gradient-end)
);
}
@layer base {
/* ===== DEFAULT LIGHT ===== */
@@ -444,8 +564,9 @@
}
}
@layer utilities {
/* ===== SCRUNKLY.CAT DARK ===== */
[data-theme="scrunkly-cat"] {
[data-theme='scrunkly-cat'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #161924;
@@ -472,8 +593,8 @@
--gradient-end: #d6336a;
}
/* ===== RED MODULAR LIGHT ===== */
[data-theme="red-modular-light"] {
/* ===== RED MODULAR LIGHT ===== */
[data-theme='red-modular-light'] {
color-scheme: light;
--picker-icon-filter: none;
--bg-primary: #ffffff;
@@ -501,7 +622,7 @@
}
/* ===== EVERFOREST DARK ===== */
[data-theme="everforest-dark"] {
[data-theme='everforest-dark'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #2d353b;
@@ -529,7 +650,7 @@
}
/* ===== EVERFOREST LIGHT ===== */
[data-theme="everforest-light"] {
[data-theme='everforest-light'] {
color-scheme: light;
--picker-icon-filter: none;
--bg-primary: #fdf6e3;
@@ -557,7 +678,7 @@
}
/* ===== KANAGAWA ===== */
[data-theme="kanagawa"] {
[data-theme='kanagawa'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #1f1f28;
@@ -585,7 +706,7 @@
}
/* ===== AYU DARK ===== */
[data-theme="ayu-dark"] {
[data-theme='ayu-dark'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #0d1017;
@@ -613,7 +734,7 @@
}
/* ===== MOONLIGHT ===== */
[data-theme="moonlight"] {
[data-theme='moonlight'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #212337;
@@ -641,7 +762,7 @@
}
/* ===== CYBERPUNK ===== */
[data-theme="cyberpunk"] {
[data-theme='cyberpunk'] {
color-scheme: dark;
--picker-icon-filter: invert(0.8);
--bg-primary: #0a0a0f;
@@ -669,7 +790,7 @@
}
/* ===== COTTON CANDY LIGHT ===== */
[data-theme="cotton-candy-light"] {
[data-theme='cotton-candy-light'] {
color-scheme: light;
--picker-icon-filter: none;
--bg-primary: #fff5f9;
@@ -695,77 +816,6 @@
--gradient-start: #ff85a2;
--gradient-end: #c084fc;
}
@layer components {
.btn-primary {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-accent text-th-accent-t hover:bg-th-accent-h
transition-all duration-200 ease-out
focus:outline-none focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
.btn-secondary {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-bg-s text-th-text border border-th-border
hover:bg-th-hover transition-all duration-200 ease-out
focus:outline-none focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
.btn-danger {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
bg-th-error text-white hover:opacity-90
transition-all duration-200 ease-out
focus:outline-none focus:ring-2 focus:ring-th-error focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
.btn-ghost {
@apply inline-flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg font-medium
text-th-text-s hover:bg-th-hover hover:text-th-text
transition-all duration-200 ease-out
focus:outline-none focus:ring-2 focus:ring-th-ring focus:ring-offset-2
disabled:opacity-50 disabled:cursor-not-allowed;
--tw-ring-offset-color: var(--bg-primary);
}
.input-field {
@apply w-full px-4 py-2.5 rounded-lg
bg-th-input text-th-text placeholder-th-text-s
border border-th-input-b
focus:outline-none focus:ring-2 focus:ring-th-ring focus:border-transparent
transition-all duration-200;
}
.card {
@apply bg-th-card rounded-xl border border-th-border
shadow-th transition-all duration-200;
}
.card-hover {
@apply card hover:shadow-th-lg cursor-pointer;
}
.card-hover:hover {
border-color: color-mix(in srgb, var(--accent) 30%, transparent);
}
}
@layer utilities {
.gradient-text {
background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gradient-bg {
background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end));
}
}
/* ═══════════════════════════════════════════════════════════════