Files
hristudio/src/styles/globals.css
Sean O'Connor 544207e9a2 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.
2025-08-05 02:36:44 -04:00

348 lines
8.7 KiB
CSS

@import "tailwindcss";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
@theme {
--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";
}
@theme inline {
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--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:
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;
}
@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 {
* {
@apply border-border outline-ring/50;
}
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);
}