feat: implement new layout components and routing structure
- Added HeaderLayout component for the application header. - Introduced KeepAliveViewport for managing tab states and rendering. - Created TabNav for tab navigation with animated indicator. - Removed old Tabs component in favor of new layout structure. - Updated routing with AppRouter and defined appTabs for navigation. - Enhanced theme context to manage dark mode styles. - Added new UI components: Badge, Button, Separator, and Tabs. - Refactored pages to utilize new layout components and improve responsiveness. - Updated global styles for better theming and layout consistency. - Introduced TypeScript path aliases for cleaner imports.
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=TeleNeo:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
|
||||
@import "tw-animate-css";
|
||||
@import "tailwindcss";
|
||||
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/* Light mode (default) */
|
||||
:root {
|
||||
@@ -19,6 +20,38 @@
|
||||
--t-orange: #ff7700;
|
||||
--t-accent-glow: rgba(226,0,116,0.08);
|
||||
--t-pattern-opacity: 0.04;
|
||||
--background: var(--t-bg);
|
||||
--foreground: var(--t-text);
|
||||
--card: var(--t-bg-card);
|
||||
--card-foreground: var(--t-text);
|
||||
--popover: var(--t-bg-card);
|
||||
--popover-foreground: var(--t-text);
|
||||
--primary: #e20074;
|
||||
--primary-foreground: #ffffff;
|
||||
--secondary: var(--t-bg-hover);
|
||||
--secondary-foreground: var(--t-text);
|
||||
--muted: var(--t-bg-hover);
|
||||
--muted-foreground: var(--t-text3);
|
||||
--accent: rgba(226, 0, 116, 0.08);
|
||||
--accent-foreground: #e20074;
|
||||
--destructive: #ff4444;
|
||||
--border: var(--t-border);
|
||||
--input: var(--t-border);
|
||||
--ring: rgba(226, 0, 116, 0.35);
|
||||
--chart-1: #e20074;
|
||||
--chart-2: #be0060;
|
||||
--chart-3: #00b89c;
|
||||
--chart-4: #ff7700;
|
||||
--chart-5: #4a4a5a;
|
||||
--radius: 0.625rem;
|
||||
--sidebar: var(--t-bg-card);
|
||||
--sidebar-foreground: var(--t-text);
|
||||
--sidebar-primary: #e20074;
|
||||
--sidebar-primary-foreground: #ffffff;
|
||||
--sidebar-accent: var(--t-bg-hover);
|
||||
--sidebar-accent-foreground: var(--t-text);
|
||||
--sidebar-border: var(--t-border);
|
||||
--sidebar-ring: rgba(226, 0, 116, 0.35);
|
||||
}
|
||||
|
||||
/* Dark mode */
|
||||
@@ -36,6 +69,37 @@
|
||||
--t-orange: #ff8800;
|
||||
--t-accent-glow: rgba(226,0,116,0.12);
|
||||
--t-pattern-opacity: 0.03;
|
||||
--background: var(--t-bg);
|
||||
--foreground: var(--t-text);
|
||||
--card: var(--t-bg-card);
|
||||
--card-foreground: var(--t-text);
|
||||
--popover: var(--t-bg-card);
|
||||
--popover-foreground: var(--t-text);
|
||||
--primary: #e20074;
|
||||
--primary-foreground: #ffffff;
|
||||
--secondary: var(--t-bg-hover);
|
||||
--secondary-foreground: var(--t-text);
|
||||
--muted: var(--t-bg-hover);
|
||||
--muted-foreground: var(--t-text3);
|
||||
--accent: rgba(226, 0, 116, 0.14);
|
||||
--accent-foreground: #ff7abf;
|
||||
--destructive: #ff4444;
|
||||
--border: var(--t-border);
|
||||
--input: var(--t-border-light);
|
||||
--ring: rgba(226, 0, 116, 0.45);
|
||||
--chart-1: #e20074;
|
||||
--chart-2: #f04090;
|
||||
--chart-3: #00d4aa;
|
||||
--chart-4: #ff8800;
|
||||
--chart-5: #c0c0d0;
|
||||
--sidebar: var(--t-bg-card);
|
||||
--sidebar-foreground: var(--t-text);
|
||||
--sidebar-primary: #e20074;
|
||||
--sidebar-primary-foreground: #ffffff;
|
||||
--sidebar-accent: var(--t-bg-hover);
|
||||
--sidebar-accent-foreground: var(--t-text);
|
||||
--sidebar-border: var(--t-border);
|
||||
--sidebar-ring: rgba(226, 0, 116, 0.45);
|
||||
}
|
||||
|
||||
/* Base styles */
|
||||
@@ -100,6 +164,11 @@ button, input {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
/* Shell navigation manages its own transition timing. */
|
||||
[data-shell-tab='true'] {
|
||||
transition: color 0.2s ease-out;
|
||||
}
|
||||
|
||||
/* T-Systems Button Style */
|
||||
.t-btn,
|
||||
.t-btn:hover {
|
||||
@@ -271,4 +340,60 @@ button, input {
|
||||
.gradient-accent-hover {
|
||||
background: linear-gradient(135deg, #f0208a 0%, #d01070 100%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--font-heading: 'TeleNeo', 'Segoe UI', system-ui, sans-serif;
|
||||
--font-sans: 'TeleNeo', 'Segoe UI', system-ui, sans-serif;
|
||||
--font-mono: 'JetBrains Mono', monospace;
|
||||
--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);
|
||||
--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);
|
||||
}
|
||||
|
||||
@layer base {
|
||||
* {
|
||||
@apply border-border outline-ring/50;
|
||||
}
|
||||
body {
|
||||
@apply bg-background text-foreground;
|
||||
}
|
||||
html {
|
||||
@apply font-sans;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user