UNPKG

@orchard9ai/design-system

Version:

DaisyUI-based component library for Orchard9 applications

323 lines (278 loc) 9.49 kB
/* Orchard Grove Theme Custom Styles */ /* Grove Dark Theme Variables */ [data-theme='grove-dark'] { color-scheme: dark; --color-primary: oklch(60% 0.16 142); /* Rich emerald green */ --color-primary-content: oklch(100% 0 0); /* White text */ --color-secondary: oklch(70% 0.18 50); /* Rich amber/gold */ --color-secondary-content: oklch(100% 0 0); /* White text for better contrast */ --color-accent: oklch(65% 0.15 142); /* Softer emerald */ --color-accent-content: oklch(100% 0 0); /* White text */ --color-neutral: oklch(25% 0.01 240); /* Subtle blue-gray */ --color-neutral-content: oklch(95% 0 0); /* Light text */ --color-base-100: oklch(8% 0.01 240); /* Rich dark background */ --color-base-200: oklch(12% 0.01 240); --color-base-300: oklch(16% 0.01 240); --color-base-content: oklch(95% 0 0); /* Light text */ --color-info: oklch(65% 0.18 220); /* Clear blue */ --color-info-content: oklch(100% 0 0); /* White text */ --color-success: oklch(65% 0.18 142); /* Emerald green */ --color-success-content: oklch(100% 0 0); /* White text */ --color-warning: oklch(70% 0.18 65); /* Rich amber */ --color-warning-content: oklch(100% 0 0); /* White text for better contrast */ --color-error: oklch(65% 0.24 27); /* Crisp red */ --color-error-content: oklch(100% 0 0); /* White text */ /* Semantic layout variables */ --site-bg: var(--color-base-300); /* Uses base-300 as requested for site background */ --content-bg: var(--color-base-100); /* Main content areas */ --sidebar-bg: var(--color-base-200); /* Sidebars and panels */ } /* Grove Light Theme Variables */ [data-theme='grove-light'] { color-scheme: light; --color-primary: oklch(55% 0.22 142); /* Deep emerald green */ --color-primary-content: oklch(100% 0 0); /* White text */ --color-secondary: oklch(65% 0.2 50); /* Rich amber/gold */ --color-secondary-content: oklch(100% 0 0); /* White text */ --color-accent: oklch(60% 0.18 142); /* Medium emerald */ --color-accent-content: oklch(100% 0 0); /* White text */ --color-neutral: oklch(30% 0.02 0); /* Cool gray */ --color-neutral-content: oklch(98% 0 0); /* Light text */ --color-base-100: oklch(99% 0 0); /* Clean white background */ --color-base-200: oklch(97% 0.01 0); --color-base-300: oklch(94% 0.01 0); --color-base-content: oklch(15% 0 0); /* Dark text */ --color-info: oklch(55% 0.2 220); /* Bright blue */ --color-info-content: oklch(100% 0 0); /* White text */ --color-success: oklch(55% 0.2 142); /* Emerald green */ --color-success-content: oklch(100% 0 0); /* White text */ --color-warning: oklch(65% 0.2 65); /* Vibrant amber */ --color-warning-content: oklch(100% 0 0); /* White text */ --color-error: oklch(55% 0.25 27); /* Clear red */ --color-error-content: oklch(100% 0 0); /* White text */ /* Semantic layout variables */ --site-bg: var(--color-base-100); /* Clean white site background */ --content-bg: var(--color-base-100); /* Main content areas match site bg */ --sidebar-bg: var(--color-base-200); /* Slightly darker for visual separation */ } /* Signature Emerald-to-Amber Gradient */ :root { --grove-gradient-from: #10b981; /* Vibrant Emerald */ --grove-gradient-to: #f59e0b; /* Rich Amber */ --grove-gradient: linear-gradient( 135deg, var(--grove-gradient-from) 0%, var(--grove-gradient-to) 100% ); --grove-gradient-text: linear-gradient( 135deg, var(--grove-gradient-from) 0%, var(--grove-gradient-to) 100% ); } /* Gradient utilities */ .grove-gradient { background: var(--grove-gradient); } .grove-gradient-text { background: var(--grove-gradient-text); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } /* Enhanced focus rings for Grove themes - exclude all interactive elements */ [data-theme='grove-dark'] *:focus-visible:not(a):not(button):not(input):not(textarea):not(select):not(.focus-ring):not( [role='button'] ):not([role='link']), [data-theme='grove-light'] *:focus-visible:not(a):not(button):not(input):not(textarea):not(select):not(.focus-ring):not( [role='button'] ):not([role='link']) { outline: 2px solid #10b981; outline-offset: 2px; } /* Explicitly disable grove outline for all links */ [data-theme='grove-dark'] a:focus-visible, [data-theme='grove-light'] a:focus-visible { outline: none !important; } [data-theme='grove-dark'] [role='link']:focus-visible, [data-theme='grove-light'] [role='link']:focus-visible { outline: none !important; } /* Custom scrollbars for Grove themes */ [data-theme='grove-dark'] ::-webkit-scrollbar { width: 8px; height: 8px; } [data-theme='grove-dark'] ::-webkit-scrollbar-track { background: #18181b; border-radius: 4px; } [data-theme='grove-dark'] ::-webkit-scrollbar-thumb { background: #10b981; border-radius: 4px; -webkit-transition: background-color 0.2s ease; transition: background-color 0.2s ease; } [data-theme='grove-dark'] ::-webkit-scrollbar-thumb:hover { background: #059669; } [data-theme='grove-light'] ::-webkit-scrollbar { width: 8px; height: 8px; } [data-theme='grove-light'] ::-webkit-scrollbar-track { background: #f5f5f4; border-radius: 4px; } [data-theme='grove-light'] ::-webkit-scrollbar-thumb { background: #10b981; border-radius: 4px; -webkit-transition: background-color 0.2s ease; transition: background-color 0.2s ease; } [data-theme='grove-light'] ::-webkit-scrollbar-thumb:hover { background: #059669; } /* Enhanced shadows for grove-dark */ [data-theme='grove-dark'] .shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3); } [data-theme='grove-dark'] .shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3); } [data-theme='grove-dark'] .shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3); } [data-theme='grove-dark'] .shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3); } [data-theme='grove-dark'] .shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3); } [data-theme='grove-dark'] .shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.3); } /* Lighter shadows for grove-light */ [data-theme='grove-light'] .shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); } [data-theme='grove-light'] .shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15), 0 1px 2px -1px rgba(0, 0, 0, 0.15); } [data-theme='grove-light'] .shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -2px rgba(0, 0, 0, 0.15); } [data-theme='grove-light'] .shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.15), 0 4px 6px -4px rgba(0, 0, 0, 0.15); } [data-theme='grove-light'] .shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.15); } [data-theme='grove-light'] .shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15); } /* Pulse animation for interactive elements */ @keyframes grove-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.8; } } .grove-pulse { animation: grove-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* Smooth transitions for theme switching */ [data-theme='grove-dark'], [data-theme='grove-light'] { transition: background-color 0.3s ease, color 0.3s ease; } [data-theme='grove-dark'] *, [data-theme='grove-light'] * { transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; } /* Brand gradient buttons for Grove themes */ [data-theme='grove-dark'] .btn-grove-gradient, [data-theme='grove-light'] .btn-grove-gradient { background: var(--grove-gradient); border: none; color: white; font-weight: 600; transition: all 0.3s ease; } [data-theme='grove-dark'] .btn-grove-gradient:hover, [data-theme='grove-light'] .btn-grove-gradient:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3); } /* Grove theme specific card styling */ [data-theme='grove-dark'] .card-grove { background: #18181b; border: 1px solid #27272a; } [data-theme='grove-light'] .card-grove { background: #ffffff; border: 1px solid #e7e5e4; } /* Grove theme badge variants */ [data-theme='grove-dark'] .badge-grove, [data-theme='grove-light'] .badge-grove { background: var(--grove-gradient); color: white; border: none; } /* Grove theme alert styling */ [data-theme='grove-dark'] .alert-grove, [data-theme='grove-light'] .alert-grove { background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(245, 158, 11, 0.1) 100%); border: 1px solid #10b981; color: var(--fallback-bc, oklch(var(--bc) / 1)); } /* Alert component overrides for better readability in grove-dark */ [data-theme='grove-dark'] .alert-warning { background-color: oklch(25% 0.12 65 / 0.2); border-color: oklch(70% 0.18 65 / 0.5); color: oklch(85% 0.15 65); } [data-theme='grove-dark'] .alert-error { background-color: oklch(25% 0.15 27 / 0.2); border-color: oklch(65% 0.24 27 / 0.5); color: oklch(85% 0.2 27); } [data-theme='grove-dark'] .alert-success { background-color: oklch(25% 0.12 142 / 0.2); border-color: oklch(65% 0.18 142 / 0.5); color: oklch(85% 0.15 142); } [data-theme='grove-dark'] .alert-info { background-color: oklch(25% 0.12 220 / 0.2); border-color: oklch(65% 0.18 220 / 0.5); color: oklch(85% 0.15 220); }