Some checks failed
Master CI / yarn_install_and_build (push) Has been cancelled
Phase 1: Foundation Setup - Create Unraid GraphQL client with type-safe queries/mutations - Add comprehensive TypeScript types for all Unraid data models - Implement tRPC router with 30+ endpoints for Unraid management - Add environment variables for Unraid connection Phase 2: Core Dashboard - Create SystemInfoCard component (CPU, RAM, OS, motherboard) - Create ArrayCard component (disks, parity, cache pools) - Create DockerCard component with start/stop controls - Create VmsCard component with power management - Add main Unraid dashboard page with real-time updates Phase 3: Orchis Theme Integration - Create Mantine theme override with Orchis design tokens - Add CSS custom properties for light/dark modes - Configure shadows, spacing, radius from Orchis specs - Style all Mantine components with Orchis patterns Files added: - src/lib/unraid/* (GraphQL client, types, queries) - src/server/api/routers/unraid/* (tRPC router) - src/components/Unraid/* (Dashboard components) - src/pages/unraid/* (Dashboard page) - src/styles/orchis/* (Theme configuration) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
156 lines
5.3 KiB
CSS
156 lines
5.3 KiB
CSS
/**
|
|
* Orchis Theme CSS Variables
|
|
* Based on the Orchis GTK Theme by vinceliuice
|
|
* https://github.com/vinceliuice/Orchis-theme
|
|
*/
|
|
|
|
:root {
|
|
/* ---- Primary / Accent ---- */
|
|
--orchis-primary: #1A73E8;
|
|
--orchis-primary-light: #3281EA;
|
|
--orchis-on-primary: #FFFFFF;
|
|
--orchis-on-primary-secondary: rgba(255, 255, 255, 0.7);
|
|
|
|
/* ---- Backgrounds (Light Mode) ---- */
|
|
--orchis-background: #F2F2F2;
|
|
--orchis-surface: #FFFFFF;
|
|
--orchis-base: #FFFFFF;
|
|
--orchis-base-alt: #FAFAFA;
|
|
|
|
/* ---- Text (Light Mode) ---- */
|
|
--orchis-text: rgba(0, 0, 0, 0.87);
|
|
--orchis-text-secondary: rgba(0, 0, 0, 0.6);
|
|
--orchis-text-disabled: rgba(0, 0, 0, 0.38);
|
|
|
|
/* ---- Semantic Colors ---- */
|
|
--orchis-error: #E53935;
|
|
--orchis-warning: #FFD600;
|
|
--orchis-success: #0F9D58;
|
|
--orchis-info: #1A73E8;
|
|
--orchis-link: #1A73E8;
|
|
--orchis-link-visited: #AB47BC;
|
|
|
|
/* ---- Borders ---- */
|
|
--orchis-border: rgba(0, 0, 0, 0.12);
|
|
--orchis-border-solid: #E2E2E2;
|
|
--orchis-divider: rgba(0, 0, 0, 0.12);
|
|
|
|
/* ---- Overlay States ---- */
|
|
--orchis-overlay-hover: rgba(0, 0, 0, 0.08);
|
|
--orchis-overlay-focus: rgba(0, 0, 0, 0.08);
|
|
--orchis-overlay-active: rgba(0, 0, 0, 0.12);
|
|
--orchis-overlay-checked: rgba(0, 0, 0, 0.10);
|
|
--orchis-overlay-selected: rgba(0, 0, 0, 0.06);
|
|
|
|
/* ---- Track / Fill ---- */
|
|
--orchis-track: rgba(0, 0, 0, 0.26);
|
|
--orchis-track-disabled: rgba(0, 0, 0, 0.15);
|
|
--orchis-fill: rgba(0, 0, 0, 0.04);
|
|
--orchis-secondary-fill: rgba(0, 0, 0, 0.08);
|
|
|
|
/* ---- Tooltip ---- */
|
|
--orchis-tooltip-bg: rgba(0, 0, 0, 0.9);
|
|
|
|
/* ---- Titlebar / Sidebar ---- */
|
|
--orchis-titlebar: #FFFFFF;
|
|
--orchis-titlebar-backdrop: #FAFAFA;
|
|
--orchis-sidebar: #FAFAFA;
|
|
|
|
/* ---- Window Buttons ---- */
|
|
--orchis-btn-close: #fd5f51;
|
|
--orchis-btn-maximize: #38c76a;
|
|
--orchis-btn-minimize: #fdbe04;
|
|
|
|
/* ---- Typography ---- */
|
|
--orchis-font-family: "M+ 1c", Roboto, Cantarell, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
--orchis-font-size: 14px;
|
|
--orchis-font-weight-button: 500;
|
|
|
|
/* ---- Spacing ---- */
|
|
--orchis-space: 6px;
|
|
--orchis-space-xs: 2px;
|
|
--orchis-space-sm: 4px;
|
|
--orchis-space-md: 6px;
|
|
--orchis-space-lg: 12px;
|
|
--orchis-space-xl: 18px;
|
|
--orchis-space-xxl: 24px;
|
|
|
|
/* ---- Border Radius ---- */
|
|
--orchis-radius: 12px;
|
|
--orchis-radius-window: 18px;
|
|
--orchis-radius-corner: 12px;
|
|
--orchis-radius-menu: 11px;
|
|
--orchis-radius-card: 11px;
|
|
--orchis-radius-tooltip: 6px;
|
|
--orchis-radius-menuitem: 5px;
|
|
--orchis-radius-circular: 9999px;
|
|
|
|
/* ---- Shadows ---- */
|
|
--orchis-shadow-z1: 0 2px 2px -2px rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.24), 0 1px 2px -1px rgba(0,0,0,0.17);
|
|
--orchis-shadow-z2: 0 3px 2px -3px rgba(0,0,0,0.3), 0 2px 2px -1px rgba(0,0,0,0.24), 0 1px 3px 0 rgba(0,0,0,0.12);
|
|
--orchis-shadow-z3: 0 3px 3px -2px rgba(0,0,0,0.2), 0 3px 3px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.12);
|
|
--orchis-shadow-z4: 0 2px 2px -1px rgba(0,0,0,0.2), 0 4px 4px 0 rgba(0,0,0,0.14), 0 1px 6px 0 rgba(0,0,0,0.12);
|
|
--orchis-shadow-z6: 0 3px 3px -1px rgba(0,0,0,0.2), 0 6px 6px 0 rgba(0,0,0,0.14), 0 1px 11px 0 rgba(0,0,0,0.12);
|
|
--orchis-shadow-z8: 0 5px 5px -3px rgba(0,0,0,0.2), 0 8px 8px 1px rgba(0,0,0,0.14), 0 3px 9px 2px rgba(0,0,0,0.12);
|
|
--orchis-shadow-z12: 0 7px 7px -4px rgba(0,0,0,0.2), 0 12px 12px 2px rgba(0,0,0,0.14), 0 5px 13px 4px rgba(0,0,0,0.12);
|
|
--orchis-shadow-z16: 0 8px 6px -5px rgba(0,0,0,0.2), 0 16px 16px 2px rgba(0,0,0,0.14), 0 6px 18px 5px rgba(0,0,0,0.12);
|
|
--orchis-shadow-z24: 0 11px 11px -7px rgba(0,0,0,0.2), 0 24px 24px 3px rgba(0,0,0,0.14), 0 9px 28px 8px rgba(0,0,0,0.12);
|
|
|
|
/* ---- Transitions ---- */
|
|
--orchis-duration: 75ms;
|
|
--orchis-duration-short: 150ms;
|
|
--orchis-duration-ripple: 225ms;
|
|
--orchis-ease: cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
--orchis-ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
|
|
--orchis-ease-in: cubic-bezier(0.4, 0.0, 1, 1);
|
|
--orchis-transition: all 75ms cubic-bezier(0.0, 0.0, 0.2, 1);
|
|
|
|
/* ---- Component Sizes ---- */
|
|
--orchis-size-small: 24px;
|
|
--orchis-size-medium: 36px;
|
|
--orchis-size-large: 48px;
|
|
--orchis-icon-size: 16px;
|
|
--orchis-icon-size-md: 24px;
|
|
--orchis-icon-size-lg: 32px;
|
|
--orchis-bar-size: 6px;
|
|
}
|
|
|
|
/* ---- Dark Mode Overrides ---- */
|
|
[data-mantine-color-scheme="dark"],
|
|
.mantine-ColorScheme-root[data-mantine-color-scheme="dark"] {
|
|
--orchis-primary: #3281EA;
|
|
--orchis-background: #212121;
|
|
--orchis-surface: #3C3C3C;
|
|
--orchis-base: #2C2C2C;
|
|
--orchis-base-alt: #242424;
|
|
|
|
--orchis-text: #FFFFFF;
|
|
--orchis-text-secondary: rgba(255, 255, 255, 0.7);
|
|
--orchis-text-disabled: rgba(255, 255, 255, 0.5);
|
|
|
|
--orchis-error: #F44336;
|
|
--orchis-warning: #FBC02D;
|
|
--orchis-success: #81C995;
|
|
--orchis-link: #3281EA;
|
|
--orchis-link-visited: #BA68C8;
|
|
|
|
--orchis-border: rgba(255, 255, 255, 0.12);
|
|
--orchis-border-solid: #3D3D3D;
|
|
--orchis-divider: rgba(255, 255, 255, 0.12);
|
|
|
|
--orchis-overlay-hover: rgba(255, 255, 255, 0.08);
|
|
--orchis-overlay-focus: rgba(255, 255, 255, 0.08);
|
|
--orchis-overlay-active: rgba(255, 255, 255, 0.12);
|
|
--orchis-overlay-checked: rgba(255, 255, 255, 0.10);
|
|
--orchis-overlay-selected: rgba(255, 255, 255, 0.06);
|
|
|
|
--orchis-track: rgba(255, 255, 255, 0.3);
|
|
--orchis-track-disabled: rgba(255, 255, 255, 0.15);
|
|
--orchis-fill: rgba(255, 255, 255, 0.04);
|
|
--orchis-secondary-fill: rgba(255, 255, 255, 0.08);
|
|
|
|
--orchis-titlebar: #2C2C2C;
|
|
--orchis-titlebar-backdrop: #3C3C3C;
|
|
--orchis-sidebar: #242424;
|
|
}
|