mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 22:54:45 -05:00
Enhance development standards and UI components
- Updated .rules to enforce stricter UI/UX standards, including exclusive use of Lucide icons and consistent patterns for entity view pages. - Added new UI components for entity views, including headers, sections, and quick actions to improve layout and reusability. - Refactored existing pages (experiments, participants, studies, trials) to utilize the new entity view components, enhancing consistency across the dashboard. - Improved accessibility and user experience by implementing loading states and error boundaries in async operations. - Updated package dependencies to ensure compatibility and performance improvements. Features: - Comprehensive guidelines for component reusability and visual consistency. - Enhanced user interface with new entity view components for better organization and navigation. Breaking Changes: None - existing functionality remains intact.
This commit is contained in:
@@ -4,7 +4,8 @@
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@theme {
|
||||
--font-sans: var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif,
|
||||
--font-sans:
|
||||
var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif,
|
||||
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
}
|
||||
|
||||
@@ -44,75 +45,188 @@
|
||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||
--color-sidebar-border: var(--sidebar-border);
|
||||
--color-sidebar-ring: var(--sidebar-ring);
|
||||
--font-sans:
|
||||
Geist Mono, monospace;
|
||||
--font-mono:
|
||||
Geist Mono, monospace;
|
||||
--font-serif:
|
||||
Geist Mono, monospace;
|
||||
--radius:
|
||||
0rem;
|
||||
--tracking-tighter:
|
||||
calc(var(--tracking-normal) - 0.05em);
|
||||
--tracking-tight:
|
||||
calc(var(--tracking-normal) - 0.025em);
|
||||
--tracking-wide:
|
||||
calc(var(--tracking-normal) + 0.025em);
|
||||
--tracking-wider:
|
||||
calc(var(--tracking-normal) + 0.05em);
|
||||
--tracking-widest:
|
||||
calc(var(--tracking-normal) + 0.1em);
|
||||
--tracking-normal: var(--tracking-normal);
|
||||
--shadow-2xl: var(--shadow-2xl);
|
||||
--shadow-xl: var(--shadow-xl);
|
||||
--shadow-lg: var(--shadow-lg);
|
||||
--shadow-md: var(--shadow-md);
|
||||
--shadow: var(--shadow);
|
||||
--shadow-sm: var(--shadow-sm);
|
||||
--shadow-xs: var(--shadow-xs);
|
||||
--shadow-2xs: var(--shadow-2xs);
|
||||
--spacing: var(--spacing);
|
||||
--letter-spacing: var(--letter-spacing);
|
||||
--shadow-offset-y: var(--shadow-offset-y);
|
||||
--shadow-offset-x: var(--shadow-offset-x);
|
||||
--shadow-spread: var(--shadow-spread);
|
||||
--shadow-blur: var(--shadow-blur);
|
||||
--shadow-opacity: var(--shadow-opacity);
|
||||
--color-shadow-color: var(--shadow-color);
|
||||
--color-destructive-foreground: var(--destructive-foreground);
|
||||
}
|
||||
|
||||
:root {
|
||||
--radius: 0.625rem;
|
||||
--background: oklch(1 0 0);
|
||||
--foreground: oklch(0.145 0 0);
|
||||
--card: oklch(1 0 0);
|
||||
--card-foreground: oklch(0.145 0 0);
|
||||
--popover: oklch(1 0 0);
|
||||
--popover-foreground: oklch(0.145 0 0);
|
||||
--primary: oklch(0.205 0 0);
|
||||
--primary-foreground: oklch(0.985 0 0);
|
||||
--secondary: oklch(0.97 0 0);
|
||||
--secondary-foreground: oklch(0.205 0 0);
|
||||
--muted: oklch(0.97 0 0);
|
||||
--muted-foreground: oklch(0.556 0 0);
|
||||
--accent: oklch(0.97 0 0);
|
||||
--accent-foreground: oklch(0.205 0 0);
|
||||
--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.646 0.222 41.116);
|
||||
--chart-2: oklch(0.6 0.118 184.704);
|
||||
--chart-3: oklch(0.398 0.07 227.392);
|
||||
--chart-4: oklch(0.828 0.189 84.429);
|
||||
--chart-5: oklch(0.769 0.188 70.08);
|
||||
--sidebar: oklch(0.985 0 0);
|
||||
--sidebar-foreground: oklch(0.145 0 0);
|
||||
--sidebar-primary: oklch(0.205 0 0);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent: oklch(0.97 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.205 0 0);
|
||||
--sidebar-border: oklch(0.922 0 0);
|
||||
--sidebar-ring: oklch(0.708 0 0);
|
||||
--radius:
|
||||
0rem;
|
||||
--background:
|
||||
oklch(1.0000 0 0);
|
||||
--foreground:
|
||||
oklch(0.1448 0 0);
|
||||
--card:
|
||||
oklch(1.0000 0 0);
|
||||
--card-foreground:
|
||||
oklch(0.1448 0 0);
|
||||
--popover:
|
||||
oklch(1.0000 0 0);
|
||||
--popover-foreground:
|
||||
oklch(0.1448 0 0);
|
||||
--primary:
|
||||
oklch(0.5555 0 0);
|
||||
--primary-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--secondary:
|
||||
oklch(0.9702 0 0);
|
||||
--secondary-foreground:
|
||||
oklch(0.2046 0 0);
|
||||
--muted:
|
||||
oklch(0.9702 0 0);
|
||||
--muted-foreground:
|
||||
oklch(0.5486 0 0);
|
||||
--accent:
|
||||
oklch(0.9702 0 0);
|
||||
--accent-foreground:
|
||||
oklch(0.2046 0 0);
|
||||
--destructive:
|
||||
oklch(0.5830 0.2387 28.4765);
|
||||
--border:
|
||||
oklch(0.9219 0 0);
|
||||
--input:
|
||||
oklch(0.9219 0 0);
|
||||
--ring:
|
||||
oklch(0.7090 0 0);
|
||||
--chart-1:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-2:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-3:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-4:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-5:
|
||||
oklch(0.5555 0 0);
|
||||
--sidebar:
|
||||
oklch(0.9851 0 0);
|
||||
--sidebar-foreground:
|
||||
oklch(0.1448 0 0);
|
||||
--sidebar-primary:
|
||||
oklch(0.2046 0 0);
|
||||
--sidebar-primary-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--sidebar-accent:
|
||||
oklch(0.9702 0 0);
|
||||
--sidebar-accent-foreground:
|
||||
oklch(0.2046 0 0);
|
||||
--sidebar-border:
|
||||
oklch(0.9219 0 0);
|
||||
--sidebar-ring:
|
||||
oklch(0.7090 0 0);
|
||||
--destructive-foreground:
|
||||
oklch(0.9702 0 0);
|
||||
--font-sans:
|
||||
Geist Mono, monospace;
|
||||
--font-serif:
|
||||
Geist Mono, monospace;
|
||||
--font-mono:
|
||||
Geist Mono, monospace;
|
||||
--shadow-color:
|
||||
hsl(0 0% 0%);
|
||||
--shadow-opacity:
|
||||
0;
|
||||
--shadow-blur:
|
||||
0px;
|
||||
--shadow-spread:
|
||||
0px;
|
||||
--shadow-offset-x:
|
||||
0px;
|
||||
--shadow-offset-y:
|
||||
1px;
|
||||
--letter-spacing:
|
||||
0em;
|
||||
--spacing:
|
||||
0.25rem;
|
||||
--shadow-2xs:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
--shadow-xs:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
--shadow-sm:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 1px 2px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 1px 2px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-md:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 2px 4px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-lg:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 4px 6px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-xl:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 8px 10px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-2xl:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
--tracking-normal:
|
||||
0em;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--background: oklch(0.145 0 0);
|
||||
--foreground: oklch(0.985 0 0);
|
||||
--card: oklch(0.205 0 0);
|
||||
--card-foreground: oklch(0.985 0 0);
|
||||
--popover: oklch(0.205 0 0);
|
||||
--popover-foreground: oklch(0.985 0 0);
|
||||
--primary: oklch(0.922 0 0);
|
||||
--primary-foreground: oklch(0.205 0 0);
|
||||
--secondary: oklch(0.269 0 0);
|
||||
--secondary-foreground: oklch(0.985 0 0);
|
||||
--muted: oklch(0.269 0 0);
|
||||
--muted-foreground: oklch(0.708 0 0);
|
||||
--accent: oklch(0.269 0 0);
|
||||
--accent-foreground: oklch(0.985 0 0);
|
||||
--destructive: oklch(0.704 0.191 22.216);
|
||||
--border: oklch(1 0 0 / 10%);
|
||||
--input: oklch(1 0 0 / 15%);
|
||||
--ring: oklch(0.556 0 0);
|
||||
--chart-1: oklch(0.488 0.243 264.376);
|
||||
--chart-2: oklch(0.696 0.17 162.48);
|
||||
--chart-3: oklch(0.769 0.188 70.08);
|
||||
--chart-4: oklch(0.627 0.265 303.9);
|
||||
--chart-5: oklch(0.645 0.246 16.439);
|
||||
--sidebar: oklch(0.205 0 0);
|
||||
--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.269 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.985 0 0);
|
||||
--sidebar-border: oklch(1 0 0 / 10%);
|
||||
--sidebar-ring: oklch(0.556 0 0);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: 2 6 23;
|
||||
--foreground: 248 250 252;
|
||||
--card: 15 23 42;
|
||||
--card-foreground: 248 250 252;
|
||||
--popover: 15 23 42;
|
||||
--popover-foreground: 248 250 252;
|
||||
--primary: 148 163 184;
|
||||
--primary-foreground: 15 23 42;
|
||||
--secondary: 30 41 59;
|
||||
--secondary-foreground: 248 250 252;
|
||||
--muted: 30 41 59;
|
||||
--muted-foreground: 148 163 184;
|
||||
--accent: 30 41 59;
|
||||
--accent-foreground: 248 250 252;
|
||||
--destructive: 239 68 68;
|
||||
--border: 51 65 85;
|
||||
--input: 51 65 85;
|
||||
--ring: 148 163 184;
|
||||
--chart-1: 148 163 184;
|
||||
--chart-2: 100 116 139;
|
||||
--chart-3: 239 68 68;
|
||||
--chart-4: 245 158 11;
|
||||
--chart-5: 34 197 94;
|
||||
--sidebar: 15 23 42;
|
||||
--sidebar-foreground: 148 163 184;
|
||||
--sidebar-primary: 148 163 184;
|
||||
--sidebar-primary-foreground: 15 23 42;
|
||||
--sidebar-accent: 30 41 59;
|
||||
--sidebar-accent-foreground: 248 250 252;
|
||||
--sidebar-border: 51 65 85;
|
||||
--sidebar-ring: 148 163 184;
|
||||
--destructive-foreground: 255 255 255;
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
@@ -121,5 +235,114 @@
|
||||
}
|
||||
body {
|
||||
@apply bg-background text-foreground;
|
||||
letter-spacing:
|
||||
var(--tracking-normal);
|
||||
}
|
||||
}
|
||||
|
||||
.dark {
|
||||
--background:
|
||||
oklch(0.1448 0 0);
|
||||
--foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--card:
|
||||
oklch(0.2134 0 0);
|
||||
--card-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--popover:
|
||||
oklch(0.2686 0 0);
|
||||
--popover-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--primary:
|
||||
oklch(0.5555 0 0);
|
||||
--primary-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--secondary:
|
||||
oklch(0.2686 0 0);
|
||||
--secondary-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--muted:
|
||||
oklch(0.2686 0 0);
|
||||
--muted-foreground:
|
||||
oklch(0.7090 0 0);
|
||||
--accent:
|
||||
oklch(0.3715 0 0);
|
||||
--accent-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--destructive:
|
||||
oklch(0.7022 0.1892 22.2279);
|
||||
--destructive-foreground:
|
||||
oklch(0.2686 0 0);
|
||||
--border:
|
||||
oklch(0.3407 0 0);
|
||||
--input:
|
||||
oklch(0.4386 0 0);
|
||||
--ring:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-1:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-2:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-3:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-4:
|
||||
oklch(0.5555 0 0);
|
||||
--chart-5:
|
||||
oklch(0.5555 0 0);
|
||||
--sidebar:
|
||||
oklch(0.2046 0 0);
|
||||
--sidebar-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--sidebar-primary:
|
||||
oklch(0.9851 0 0);
|
||||
--sidebar-primary-foreground:
|
||||
oklch(0.2046 0 0);
|
||||
--sidebar-accent:
|
||||
oklch(0.2686 0 0);
|
||||
--sidebar-accent-foreground:
|
||||
oklch(0.9851 0 0);
|
||||
--sidebar-border:
|
||||
oklch(1.0000 0 0);
|
||||
--sidebar-ring:
|
||||
oklch(0.4386 0 0);
|
||||
--radius:
|
||||
0rem;
|
||||
--font-sans:
|
||||
Geist Mono, monospace;
|
||||
--font-serif:
|
||||
Geist Mono, monospace;
|
||||
--font-mono:
|
||||
Geist Mono, monospace;
|
||||
--shadow-color:
|
||||
hsl(0 0% 0%);
|
||||
--shadow-opacity:
|
||||
0;
|
||||
--shadow-blur:
|
||||
0px;
|
||||
--shadow-spread:
|
||||
0px;
|
||||
--shadow-offset-x:
|
||||
0px;
|
||||
--shadow-offset-y:
|
||||
1px;
|
||||
--letter-spacing:
|
||||
0em;
|
||||
--spacing:
|
||||
0.25rem;
|
||||
--shadow-2xs:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
--shadow-xs:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
--shadow-sm:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 1px 2px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 1px 2px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-md:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 2px 4px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-lg:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 4px 6px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-xl:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00), 0px 8px 10px -1px hsl(0 0% 0% / 0.00);
|
||||
--shadow-2xl:
|
||||
0px 1px 0px 0px hsl(0 0% 0% / 0.00);
|
||||
}
|
||||
Reference in New Issue
Block a user