@buddhacognitivelab/theme-glassmorphic
Version:
Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions
1,448 lines (1,446 loc) • 646 kB
JavaScript
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
import React, { createContext, useContext, useMemo, useState, useEffect, forwardRef, useRef, useCallback } from 'react';
import styled, { ThemeProvider as ThemeProvider$1, keyframes, css } from 'styled-components';
import { useFluidBuddhaStore } from '@buddhacognitivelab/state-manager';
import { motion, AnimatePresence, useDragControls } from 'framer-motion';
import clsx from 'clsx';
import { createPortal } from 'react-dom';
/**
* @fileoverview Enhanced Color palettes for Glassmorphic Theme
* Defines light and dark mode color schemes with expanded color scales
*/
// Enhanced vibrant color scales for light mode
const lightPrimaryScale = {
50: '#EBF4FF', // Ultra light blue
100: '#DBEAFE', // Very light blue
200: '#BFDBFE', // Light blue
300: '#93C5FD', // Light medium blue
400: '#60A5FA', // Medium blue
500: '#3B82F6', // Base blue (main)
600: '#2563EB', // Medium dark blue
700: '#1D4ED8', // Dark blue
800: '#1E40AF', // Very dark blue
900: '#1E3A8A', // Ultra dark blue
A100: '#82B1FF', // Accent light
A200: '#448AFF', // Accent medium
A400: '#2979FF', // Accent dark
A700: '#2962FF', // Accent ultra dark
// Legacy compatibility
main: '#3B82F6',
light: '#60A5FA',
dark: '#1D4ED8',
contrastText: '#FFFFFF',
};
const lightSecondaryScale = {
50: '#F3E8FF', // Ultra light violet
100: '#E9D5FF', // Very light violet
200: '#DDD6FE', // Light violet
300: '#C4B5FD', // Light medium violet
400: '#A78BFA', // Medium violet
500: '#8B5CF6', // Base violet (main)
600: '#7C3AED', // Medium dark violet
700: '#6D28D9', // Dark violet
800: '#5B21B6', // Very dark violet
900: '#4C1D95', // Ultra dark violet
A100: '#B388FF', // Accent light
A200: '#7C4DFF', // Accent medium
A400: '#651FFF', // Accent dark
A700: '#6200EA', // Accent ultra dark
// Legacy compatibility
main: '#8B5CF6',
light: '#A78BFA',
dark: '#7C3AED',
contrastText: '#FFFFFF',
};
const lightTertiaryScale = {
50: '#ECFDF5', // Ultra light emerald
100: '#D1FAE5', // Very light emerald
200: '#A7F3D0', // Light emerald
300: '#6EE7B7', // Light medium emerald
400: '#34D399', // Medium emerald
500: '#10B981', // Base emerald (main)
600: '#059669', // Medium dark emerald
700: '#047857', // Dark emerald
800: '#065F46', // Very dark emerald
900: '#064E3B', // Ultra dark emerald
A100: '#69F0AE', // Accent light
A200: '#00E676', // Accent medium
A400: '#00C853', // Accent dark
A700: '#00B248', // Accent ultra dark
// Legacy compatibility
main: '#10B981',
light: '#34D399',
dark: '#059669',
contrastText: '#FFFFFF',
};
// Light mode palette
const lightPalette = {
primary: lightPrimaryScale,
secondary: lightSecondaryScale,
tertiary: lightTertiaryScale,
background: {
default: '#F8FAFC', // Slate 50
paper: '#FFFFFF', // White
glass: 'rgba(255, 255, 255, 0.25)', // Glass overlay
primary: '#FFFFFF', // White
secondary: '#F8FAFC', // Slate 50
tertiary: '#F1F5F9', // Slate 100
hover: 'rgba(71, 85, 105, 0.04)', // Slate 600 with low opacity
active: 'rgba(59, 130, 246, 0.08)', // Primary with low opacity
disabled: '#F1F5F9', // Slate 100
},
surface: {
primary: 'rgba(255, 255, 255, 0.8)', // Primary glass surface
secondary: 'rgba(248, 250, 252, 0.9)', // Secondary glass surface
tertiary: 'rgba(241, 245, 249, 0.7)', // Tertiary glass surface
},
text: {
primary: '#0F172A', // Slate 900
secondary: '#475569', // Slate 600
disabled: '#94A3B8', // Slate 400
hint: '#CBD5E1', // Slate 300
placeholder: '#94A3B8', // Slate 400
},
error: {
50: '#FEF2F2', // Red 50
100: '#FEE2E2', // Red 100
200: '#FECACA', // Red 200
300: '#FCA5A5', // Red 300
400: '#F87171', // Red 400
500: '#EF4444', // Red 500
600: '#DC2626', // Red 600
700: '#B91C1C', // Red 700
800: '#991B1B', // Red 800
900: '#7F1D1D', // Red 900
A100: '#FF8A80', // Red A100
A200: '#FF5252', // Red A200
A400: '#FF1744', // Red A400
A700: '#D50000', // Red A700
// Legacy compatibility
main: '#EF4444',
light: '#F87171',
dark: '#DC2626',
contrastText: '#FFFFFF',
},
warning: {
50: '#FFFBEB', // Amber 50
100: '#FEF3C7', // Amber 100
200: '#FDE68A', // Amber 200
300: '#FCD34D', // Amber 300
400: '#FBBF24', // Amber 400
500: '#F59E0B', // Amber 500
600: '#D97706', // Amber 600
700: '#B45309', // Amber 700
800: '#92400E', // Amber 800
900: '#78350F', // Amber 900
A100: '#FFE57F', // Amber A100
A200: '#FFD740', // Amber A200
A400: '#FFC400', // Amber A400
A700: '#FFAB00', // Amber A700
// Legacy compatibility
main: '#F59E0B',
light: '#FBBF24',
dark: '#D97706',
contrastText: '#FFFFFF',
},
info: {
50: '#ECFEFF', // Cyan 50
100: '#CFFAFE', // Cyan 100
200: '#A5F3FC', // Cyan 200
300: '#67E8F9', // Cyan 300
400: '#22D3EE', // Cyan 400
500: '#06B6D4', // Cyan 500
600: '#0891B2', // Cyan 600
700: '#0E7490', // Cyan 700
800: '#155E75', // Cyan 800
900: '#164E63', // Cyan 900
A100: '#84FFFF', // Cyan A100
A200: '#18FFFF', // Cyan A200
A400: '#00E5FF', // Cyan A400
A700: '#00B8D4', // Cyan A700
// Legacy compatibility
main: '#06B6D4',
light: '#22D3EE',
dark: '#0891B2',
contrastText: '#FFFFFF',
},
success: {
50: '#ECFDF5', // Emerald 50
100: '#D1FAE5', // Emerald 100
200: '#A7F3D0', // Emerald 200
300: '#6EE7B7', // Emerald 300
400: '#34D399', // Emerald 400
500: '#10B981', // Emerald 500
600: '#059669', // Emerald 600
700: '#047857', // Emerald 700
800: '#065F46', // Emerald 800
900: '#064E3B', // Emerald 900
A100: '#69F0AE', // Emerald A100
A200: '#00E676', // Emerald A200
A400: '#00C853', // Emerald A400
A700: '#00B248', // Emerald A700
// Legacy compatibility
main: '#10B981',
light: '#34D399',
dark: '#059669',
contrastText: '#FFFFFF',
},
divider: 'rgba(148, 163, 184, 0.2)', // Slate 400 with opacity
action: {
active: '#475569', // Slate 600
hover: 'rgba(71, 85, 105, 0.04)', // Slate 600 with low opacity
selected: 'rgba(59, 130, 246, 0.08)', // Primary with low opacity
disabled: '#CBD5E1', // Slate 300
disabledBackground: 'rgba(203, 213, 225, 0.12)', // Slate 300 with opacity
},
border: {
primary: 'rgba(148, 163, 184, 0.3)', // Slate 400 with opacity
secondary: 'rgba(203, 213, 225, 0.5)', // Slate 300 with opacity
glass: 'rgba(255, 255, 255, 0.2)', // Glass border
hover: 'rgba(59, 130, 246, 0.3)', // Primary with opacity
default: 'rgba(148, 163, 184, 0.2)', // Slate 400 with low opacity
light: 'rgba(203, 213, 225, 0.4)', // Slate 300 with opacity
},
};
// Enhanced dark mode color scales
const darkPrimaryScale = {
50: '#EFF6FF', // Blue 50
100: '#DBEAFE', // Blue 100
200: '#BFDBFE', // Blue 200
300: '#93C5FD', // Blue 300
400: '#60A5FA', // Blue 400
500: '#3B82F6', // Blue 500
600: '#2563EB', // Blue 600
700: '#1D4ED8', // Blue 700
800: '#1E40AF', // Blue 800
900: '#1E3A8A', // Blue 900
A100: '#82B1FF', // Blue A100
A200: '#448AFF', // Blue A200
A400: '#2979FF', // Blue A400
A700: '#2962FF', // Blue A700
// Legacy compatibility
main: '#3B82F6',
light: '#60A5FA',
dark: '#1D4ED8',
contrastText: '#FFFFFF',
};
const darkSecondaryScale = {
50: '#F5F3FF', // Violet 50
100: '#EDE9FE', // Violet 100
200: '#DDD6FE', // Violet 200
300: '#C4B5FD', // Violet 300
400: '#A78BFA', // Violet 400
500: '#8B5CF6', // Violet 500
600: '#7C3AED', // Violet 600
700: '#6D28D9', // Violet 700
800: '#5B21B6', // Violet 800
900: '#4C1D95', // Violet 900
A100: '#B388FF', // Violet A100
A200: '#7C4DFF', // Violet A200
A400: '#651FFF', // Violet A400
A700: '#6200EA', // Violet A700
// Legacy compatibility
main: '#8B5CF6',
light: '#A78BFA',
dark: '#7C3AED',
contrastText: '#FFFFFF',
};
const darkTertiaryScale = {
50: '#ECFDF5', // Emerald 50
100: '#D1FAE5', // Emerald 100
200: '#A7F3D0', // Emerald 200
300: '#6EE7B7', // Emerald 300
400: '#34D399', // Emerald 400
500: '#10B981', // Emerald 500
600: '#059669', // Emerald 600
700: '#047857', // Emerald 700
800: '#065F46', // Emerald 800
900: '#064E3B', // Emerald 900
A100: '#69F0AE', // Emerald A100
A200: '#00E676', // Emerald A200
A400: '#00C853', // Emerald A400
A700: '#00B248', // Emerald A700
// Legacy compatibility
main: '#10B981',
light: '#34D399',
dark: '#059669',
contrastText: '#FFFFFF',
};
// Dark mode palette
const darkPalette = {
primary: {
...darkPrimaryScale,
// Legacy compatibility
main: darkPrimaryScale[400],
light: darkPrimaryScale[300],
dark: darkPrimaryScale[500],
contrastText: '#0F172A',
},
secondary: {
...darkSecondaryScale,
// Legacy compatibility
main: darkSecondaryScale[400],
light: darkSecondaryScale[300],
dark: darkSecondaryScale[500],
contrastText: '#0F172A',
},
tertiary: {
...darkTertiaryScale,
// Legacy compatibility
main: darkTertiaryScale[400],
light: darkTertiaryScale[300],
dark: darkTertiaryScale[500],
contrastText: '#0F172A',
},
background: {
default: '#0F172A', // Slate 900
paper: '#1E293B', // Slate 800
glass: 'rgba(30, 41, 59, 0.4)', // Glass overlay
primary: '#1E293B', // Slate 800
secondary: '#334155', // Slate 700
tertiary: '#475569', // Slate 600
hover: 'rgba(203, 213, 225, 0.08)', // Slate 300 with low opacity
active: 'rgba(96, 165, 250, 0.16)', // Primary with low opacity
disabled: '#334155', // Slate 700
},
surface: {
primary: 'rgba(30, 41, 59, 0.8)', // Primary glass surface
secondary: 'rgba(51, 65, 85, 0.9)', // Secondary glass surface
tertiary: 'rgba(71, 85, 105, 0.7)', // Tertiary glass surface
},
text: {
primary: '#F8FAFC', // Slate 50
secondary: '#CBD5E1', // Slate 300
disabled: '#64748B', // Slate 500
hint: '#475569', // Slate 600
placeholder: '#64748B', // Slate 500
},
error: {
50: '#FEF2F2', // Red 50
100: '#FEE2E2', // Red 100
200: '#FECACA', // Red 200
300: '#FCA5A5', // Red 300
400: '#F87171', // Red 400
500: '#EF4444', // Red 500
600: '#DC2626', // Red 600
700: '#B91C1C', // Red 700
800: '#991B1B', // Red 800
900: '#7F1D1D', // Red 900
A100: '#FF8A80', // Red A100
A200: '#FF5252', // Red A200
A400: '#FF1744', // Red A400
A700: '#D50000', // Red A700
// Legacy compatibility
main: '#F87171',
light: '#FCA5A5',
dark: '#EF4444',
contrastText: '#0F172A',
},
warning: {
50: '#FFFBEB', // Amber 50
100: '#FEF3C7', // Amber 100
200: '#FDE68A', // Amber 200
300: '#FCD34D', // Amber 300
400: '#FBBF24', // Amber 400
500: '#F59E0B', // Amber 500
600: '#D97706', // Amber 600
700: '#B45309', // Amber 700
800: '#92400E', // Amber 800
900: '#78350F', // Amber 900
A100: '#FFE57F', // Amber A100
A200: '#FFD740', // Amber A200
A400: '#FFC400', // Amber A400
A700: '#FFAB00', // Amber A700
// Legacy compatibility
main: '#FBBF24',
light: '#FCD34D',
dark: '#F59E0B',
contrastText: '#0F172A',
},
info: {
50: '#ECFEFF', // Cyan 50
100: '#CFFAFE', // Cyan 100
200: '#A5F3FC', // Cyan 200
300: '#67E8F9', // Cyan 300
400: '#22D3EE', // Cyan 400
500: '#06B6D4', // Cyan 500
600: '#0891B2', // Cyan 600
700: '#0E7490', // Cyan 700
800: '#155E75', // Cyan 800
900: '#164E63', // Cyan 900
A100: '#84FFFF', // Cyan A100
A200: '#18FFFF', // Cyan A200
A400: '#00E5FF', // Cyan A400
A700: '#00B8D4', // Cyan A700
// Legacy compatibility
main: '#22D3EE',
light: '#67E8F9',
dark: '#06B6D4',
contrastText: '#0F172A',
},
success: {
50: '#ECFDF5', // Emerald 50
100: '#D1FAE5', // Emerald 100
200: '#A7F3D0', // Emerald 200
300: '#6EE7B7', // Emerald 300
400: '#34D399', // Emerald 400
500: '#10B981', // Emerald 500
600: '#059669', // Emerald 600
700: '#047857', // Emerald 700
800: '#065F46', // Emerald 800
900: '#064E3B', // Emerald 900
A100: '#B9F6CA', // Emerald A100
A200: '#69F0AE', // Emerald A200
A400: '#00E676', // Emerald A400
A700: '#00C853', // Emerald A700
// Legacy compatibility
main: '#34D399',
light: '#6EE7B7',
dark: '#10B981',
contrastText: '#0F172A',
},
divider: 'rgba(100, 116, 139, 0.2)', // Slate 500 with opacity
action: {
active: '#CBD5E1', // Slate 300
hover: 'rgba(203, 213, 225, 0.08)', // Slate 300 with low opacity
selected: 'rgba(96, 165, 250, 0.16)', // Primary with low opacity
disabled: '#64748B', // Slate 500
disabledBackground: 'rgba(100, 116, 139, 0.12)', // Slate 500 with opacity
},
border: {
primary: 'rgba(100, 116, 139, 0.4)', // Slate 500 with opacity
secondary: 'rgba(71, 85, 105, 0.6)', // Slate 600 with opacity
glass: 'rgba(30, 41, 59, 0.3)', // Glass border
hover: 'rgba(96, 165, 250, 0.4)', // Primary with opacity
default: 'rgba(100, 116, 139, 0.3)', // Slate 500 with low opacity
light: 'rgba(71, 85, 105, 0.5)', // Slate 600 with opacity
},
};
// Utility function to get palette by mode
const getPalette = (mode) => {
return mode === 'dark' ? darkPalette : lightPalette;
};
// Utility function to create custom palette variants
const createPaletteVariant = (basePalette, overrides) => {
return {
...basePalette,
...overrides,
primary: {
...basePalette.primary,
...overrides.primary,
},
secondary: {
...basePalette.secondary,
...overrides.secondary,
},
background: {
...basePalette.background,
...overrides.background,
},
surface: {
...basePalette.surface,
...overrides.surface,
},
text: {
...basePalette.text,
...overrides.text,
},
error: {
...basePalette.error,
...overrides.error,
},
warning: {
...basePalette.warning,
...overrides.warning,
},
info: {
...basePalette.info,
...overrides.info,
},
success: {
...basePalette.success,
...overrides.success,
},
action: {
...basePalette.action,
...overrides.action,
},
border: {
...basePalette.border,
...overrides.border,
},
};
};
/**
* @fileoverview Enhanced Glassmorphism Effects
* Phase 2: Advanced glassmorphism effects with multi-layer system and theme modes
*/
// Legacy glassmorphism configurations
const lightGlassmorphism = {
light: {
backdropFilter: 'blur(10px) saturate(180%)',
backgroundColor: 'rgba(255, 255, 255, 0.25)',
border: '1px solid rgba(255, 255, 255, 0.18)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.37)'
},
medium: {
backdropFilter: 'blur(16px) saturate(180%)',
backgroundColor: 'rgba(255, 255, 255, 0.35)',
border: '1px solid rgba(255, 255, 255, 0.25)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.45)'
},
heavy: {
backdropFilter: 'blur(20px) saturate(180%)',
backgroundColor: 'rgba(255, 255, 255, 0.45)',
border: '1px solid rgba(255, 255, 255, 0.35)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.55)'
}
};
const darkGlassmorphism = {
light: {
backdropFilter: 'blur(10px) saturate(180%)',
backgroundColor: 'rgba(17, 25, 40, 0.25)',
border: '1px solid rgba(255, 255, 255, 0.125)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.37)'
},
medium: {
backdropFilter: 'blur(16px) saturate(180%)',
backgroundColor: 'rgba(17, 25, 40, 0.35)',
border: '1px solid rgba(255, 255, 255, 0.18)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.45)'
},
heavy: {
backdropFilter: 'blur(20px) saturate(180%)',
backgroundColor: 'rgba(17, 25, 40, 0.45)',
border: '1px solid rgba(255, 255, 255, 0.25)',
boxShadow: '0 8px 32px 0 rgba(31, 38, 135, 0.55)'
}
};
const glassmorphismEffects = {
light: lightGlassmorphism,
dark: darkGlassmorphism
};
// Enhanced Glass Variants with Multi-layer System
const enhancedGlassVariants = {
subtle: {
surface: {
light: {
background: {
blur: 8,
opacity: 0.15,
saturation: 120,
brightness: 105,
tint: 'rgba(255, 255, 255, 0.15)'
},
border: {
opacity: 0.1,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.05))'
},
shadow: {
outer: '0 2px 8px rgba(0, 0, 0, 0.1)',
glow: '0 0 16px rgba(255, 255, 255, 0.1)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
},
dark: {
background: {
blur: 8,
opacity: 0.2,
saturation: 140,
brightness: 90,
tint: 'rgba(17, 25, 40, 0.2)'
},
border: {
opacity: 0.15,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05))'
},
shadow: {
outer: '0 2px 8px rgba(0, 0, 0, 0.3)',
glow: '0 0 16px rgba(100, 150, 255, 0.1)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
}
},
elevated: {
light: {
background: {
blur: 12,
opacity: 0.2,
saturation: 130,
brightness: 110,
tint: 'rgba(255, 255, 255, 0.2)'
},
border: {
opacity: 0.15,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1))'
},
shadow: {
outer: '0 4px 16px rgba(0, 0, 0, 0.15)',
glow: '0 0 20px rgba(255, 255, 255, 0.15)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
},
dark: {
background: {
blur: 12,
opacity: 0.25,
saturation: 150,
brightness: 85,
tint: 'rgba(17, 25, 40, 0.25)'
},
border: {
opacity: 0.2,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08))'
},
shadow: {
outer: '0 4px 16px rgba(0, 0, 0, 0.4)',
glow: '0 0 20px rgba(100, 150, 255, 0.15)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
}
},
floating: {
light: {
background: {
blur: 16,
opacity: 0.25,
saturation: 140,
brightness: 115,
tint: 'rgba(255, 255, 255, 0.25)'
},
border: {
opacity: 0.2,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.15))'
},
shadow: {
outer: '0 8px 24px rgba(0, 0, 0, 0.2)',
glow: '0 0 24px rgba(255, 255, 255, 0.2)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
},
dark: {
background: {
blur: 16,
opacity: 0.3,
saturation: 160,
brightness: 80,
tint: 'rgba(17, 25, 40, 0.3)'
},
border: {
opacity: 0.25,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1))'
},
shadow: {
outer: '0 8px 24px rgba(0, 0, 0, 0.5)',
glow: '0 0 24px rgba(100, 150, 255, 0.2)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
}
},
modal: {
light: {
background: {
blur: 20,
opacity: 0.3,
saturation: 150,
brightness: 120,
tint: 'rgba(255, 255, 255, 0.3)'
},
border: {
opacity: 0.25,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.2))'
},
shadow: {
outer: '0 12px 32px rgba(0, 0, 0, 0.25)',
glow: '0 0 32px rgba(255, 255, 255, 0.25)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
},
dark: {
background: {
blur: 20,
opacity: 0.35,
saturation: 170,
brightness: 75,
tint: 'rgba(17, 25, 40, 0.35)'
},
border: {
opacity: 0.3,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.15))'
},
shadow: {
outer: '0 12px 32px rgba(0, 0, 0, 0.6)',
glow: '0 0 32px rgba(100, 150, 255, 0.25)'
},
effects: {
gradientBorder: true,
innerShadow: false,
outerGlow: true
}
}
}
},
prominent: {
surface: {
light: {
background: {
blur: 10,
opacity: 0.25,
saturation: 140,
brightness: 110,
tint: 'rgba(255, 255, 255, 0.25)'
},
border: {
opacity: 0.2,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.1))'
},
shadow: {
inner: 'inset 0 1px 2px rgba(255, 255, 255, 0.3)',
outer: '0 4px 12px rgba(0, 0, 0, 0.15)',
glow: '0 0 20px rgba(255, 255, 255, 0.2)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 10,
opacity: 0.3,
saturation: 160,
brightness: 85,
tint: 'rgba(17, 25, 40, 0.3)'
},
border: {
opacity: 0.25,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.1))'
},
shadow: {
inner: 'inset 0 1px 2px rgba(255, 255, 255, 0.2)',
outer: '0 4px 12px rgba(0, 0, 0, 0.4)',
glow: '0 0 20px rgba(100, 150, 255, 0.2)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
elevated: {
light: {
background: {
blur: 14,
opacity: 0.3,
saturation: 150,
brightness: 115,
tint: 'rgba(255, 255, 255, 0.3)'
},
border: {
opacity: 0.25,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.15))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.35)',
outer: '0 6px 18px rgba(0, 0, 0, 0.2)',
glow: '0 0 24px rgba(255, 255, 255, 0.25)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 14,
opacity: 0.35,
saturation: 170,
brightness: 80,
tint: 'rgba(17, 25, 40, 0.35)'
},
border: {
opacity: 0.3,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.25)',
outer: '0 6px 18px rgba(0, 0, 0, 0.5)',
glow: '0 0 24px rgba(100, 150, 255, 0.25)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
floating: {
light: {
background: {
blur: 18,
opacity: 0.35,
saturation: 160,
brightness: 120,
tint: 'rgba(255, 255, 255, 0.35)'
},
border: {
opacity: 0.3,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.2))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.4)',
outer: '0 10px 28px rgba(0, 0, 0, 0.25)',
glow: '0 0 28px rgba(255, 255, 255, 0.3)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 18,
opacity: 0.4,
saturation: 180,
brightness: 75,
tint: 'rgba(17, 25, 40, 0.4)'
},
border: {
opacity: 0.35,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.15))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.3)',
outer: '0 10px 28px rgba(0, 0, 0, 0.6)',
glow: '0 0 28px rgba(100, 150, 255, 0.3)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
modal: {
light: {
background: {
blur: 24,
opacity: 0.4,
saturation: 170,
brightness: 125,
tint: 'rgba(255, 255, 255, 0.4)'
},
border: {
opacity: 0.35,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.25))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.45)',
outer: '0 16px 40px rgba(0, 0, 0, 0.3)',
glow: '0 0 40px rgba(255, 255, 255, 0.35)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 24,
opacity: 0.45,
saturation: 190,
brightness: 70,
tint: 'rgba(17, 25, 40, 0.45)'
},
border: {
opacity: 0.4,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.2))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.35)',
outer: '0 16px 40px rgba(0, 0, 0, 0.7)',
glow: '0 0 40px rgba(100, 150, 255, 0.35)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
}
},
frosted: {
surface: {
light: {
background: {
blur: 12,
opacity: 0.3,
saturation: 110,
brightness: 105,
tint: 'rgba(255, 255, 255, 0.3)'
},
border: {
opacity: 0.15,
width: 1
},
shadow: {
outer: '0 3px 10px rgba(0, 0, 0, 0.12)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
},
dark: {
background: {
blur: 12,
opacity: 0.35,
saturation: 130,
brightness: 90,
tint: 'rgba(17, 25, 40, 0.35)'
},
border: {
opacity: 0.2,
width: 1
},
shadow: {
outer: '0 3px 10px rgba(0, 0, 0, 0.35)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
}
},
elevated: {
light: {
background: {
blur: 16,
opacity: 0.35,
saturation: 120,
brightness: 110,
tint: 'rgba(255, 255, 255, 0.35)'
},
border: {
opacity: 0.2,
width: 1
},
shadow: {
outer: '0 5px 15px rgba(0, 0, 0, 0.18)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
},
dark: {
background: {
blur: 16,
opacity: 0.4,
saturation: 140,
brightness: 85,
tint: 'rgba(17, 25, 40, 0.4)'
},
border: {
opacity: 0.25,
width: 1
},
shadow: {
outer: '0 5px 15px rgba(0, 0, 0, 0.45)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
}
},
floating: {
light: {
background: {
blur: 20,
opacity: 0.4,
saturation: 130,
brightness: 115,
tint: 'rgba(255, 255, 255, 0.4)'
},
border: {
opacity: 0.25,
width: 1
},
shadow: {
outer: '0 8px 20px rgba(0, 0, 0, 0.22)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
},
dark: {
background: {
blur: 20,
opacity: 0.45,
saturation: 150,
brightness: 80,
tint: 'rgba(17, 25, 40, 0.45)'
},
border: {
opacity: 0.3,
width: 1
},
shadow: {
outer: '0 8px 20px rgba(0, 0, 0, 0.55)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
}
},
modal: {
light: {
background: {
blur: 28,
opacity: 0.45,
saturation: 140,
brightness: 120,
tint: 'rgba(255, 255, 255, 0.45)'
},
border: {
opacity: 0.3,
width: 2
},
shadow: {
outer: '0 12px 28px rgba(0, 0, 0, 0.28)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
},
dark: {
background: {
blur: 28,
opacity: 0.5,
saturation: 160,
brightness: 75,
tint: 'rgba(17, 25, 40, 0.5)'
},
border: {
opacity: 0.35,
width: 2
},
shadow: {
outer: '0 12px 28px rgba(0, 0, 0, 0.65)'
},
effects: {
gradientBorder: false,
innerShadow: false,
outerGlow: false
}
}
}
},
crystal: {
surface: {
light: {
background: {
blur: 6,
opacity: 0.2,
saturation: 160,
brightness: 120,
tint: 'rgba(255, 255, 255, 0.2)'
},
border: {
opacity: 0.3,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1))'
},
shadow: {
inner: 'inset 0 1px 2px rgba(255, 255, 255, 0.5)',
outer: '0 2px 6px rgba(0, 0, 0, 0.08)',
glow: '0 0 12px rgba(255, 255, 255, 0.3)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 6,
opacity: 0.25,
saturation: 180,
brightness: 95,
tint: 'rgba(17, 25, 40, 0.25)'
},
border: {
opacity: 0.35,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.1))'
},
shadow: {
inner: 'inset 0 1px 2px rgba(255, 255, 255, 0.4)',
outer: '0 2px 6px rgba(0, 0, 0, 0.25)',
glow: '0 0 12px rgba(100, 150, 255, 0.3)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
elevated: {
light: {
background: {
blur: 8,
opacity: 0.25,
saturation: 170,
brightness: 125,
tint: 'rgba(255, 255, 255, 0.25)'
},
border: {
opacity: 0.35,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.15))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.55)',
outer: '0 4px 10px rgba(0, 0, 0, 0.12)',
glow: '0 0 16px rgba(255, 255, 255, 0.35)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 8,
opacity: 0.3,
saturation: 190,
brightness: 90,
tint: 'rgba(17, 25, 40, 0.3)'
},
border: {
opacity: 0.4,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.15))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.45)',
outer: '0 4px 10px rgba(0, 0, 0, 0.35)',
glow: '0 0 16px rgba(100, 150, 255, 0.35)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
floating: {
light: {
background: {
blur: 10,
opacity: 0.3,
saturation: 180,
brightness: 130,
tint: 'rgba(255, 255, 255, 0.3)'
},
border: {
opacity: 0.4,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.6)',
outer: '0 6px 16px rgba(0, 0, 0, 0.15)',
glow: '0 0 20px rgba(255, 255, 255, 0.4)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 10,
opacity: 0.35,
saturation: 200,
brightness: 85,
tint: 'rgba(17, 25, 40, 0.35)'
},
border: {
opacity: 0.45,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.2))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.5)',
outer: '0 6px 16px rgba(0, 0, 0, 0.45)',
glow: '0 0 20px rgba(100, 150, 255, 0.4)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
},
modal: {
light: {
background: {
blur: 14,
opacity: 0.35,
saturation: 190,
brightness: 135,
tint: 'rgba(255, 255, 255, 0.35)'
},
border: {
opacity: 0.45,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.25))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.65)',
outer: '0 10px 24px rgba(0, 0, 0, 0.2)',
glow: '0 0 32px rgba(255, 255, 255, 0.45)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
},
dark: {
background: {
blur: 14,
opacity: 0.4,
saturation: 210,
brightness: 80,
tint: 'rgba(17, 25, 40, 0.4)'
},
border: {
opacity: 0.5,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.25))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.55)',
outer: '0 10px 24px rgba(0, 0, 0, 0.55)',
glow: '0 0 32px rgba(100, 150, 255, 0.45)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true
}
}
}
},
ethereal: {
surface: {
light: {
background: {
blur: 15,
opacity: 0.12,
saturation: 200,
brightness: 130,
tint: 'rgba(255, 255, 255, 0.12)'
},
border: {
opacity: 0.4,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.6))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.7)',
outer: '0 4px 12px rgba(0, 0, 0, 0.05)',
glow: '0 0 24px rgba(255, 255, 255, 0.4)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true,
dynamicBlur: 2
}
},
dark: {
background: {
blur: 15,
opacity: 0.15,
saturation: 220,
brightness: 110,
tint: 'rgba(17, 25, 40, 0.15)'
},
border: {
opacity: 0.45,
width: 1,
gradient: 'linear-gradient(135deg, rgba(100, 150, 255, 0.6), rgba(255, 255, 255, 0.1), rgba(100, 150, 255, 0.6))'
},
shadow: {
inner: 'inset 0 1px 3px rgba(255, 255, 255, 0.6)',
outer: '0 4px 12px rgba(0, 0, 0, 0.15)',
glow: '0 0 24px rgba(100, 150, 255, 0.4)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true,
dynamicBlur: 2
}
}
},
elevated: {
light: {
background: {
blur: 18,
opacity: 0.15,
saturation: 210,
brightness: 135,
tint: 'rgba(255, 255, 255, 0.15)'
},
border: {
opacity: 0.45,
width: 1,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.65), rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.65))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.75)',
outer: '0 6px 18px rgba(0, 0, 0, 0.08)',
glow: '0 0 28px rgba(255, 255, 255, 0.45)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true,
dynamicBlur: 3
}
},
dark: {
background: {
blur: 18,
opacity: 0.18,
saturation: 230,
brightness: 105,
tint: 'rgba(17, 25, 40, 0.18)'
},
border: {
opacity: 0.5,
width: 1,
gradient: 'linear-gradient(135deg, rgba(100, 150, 255, 0.65), rgba(255, 255, 255, 0.15), rgba(100, 150, 255, 0.65))'
},
shadow: {
inner: 'inset 0 2px 4px rgba(255, 255, 255, 0.65)',
outer: '0 6px 18px rgba(0, 0, 0, 0.25)',
glow: '0 0 28px rgba(100, 150, 255, 0.45)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true,
dynamicBlur: 3
}
}
},
floating: {
light: {
background: {
blur: 22,
opacity: 0.18,
saturation: 220,
brightness: 140,
tint: 'rgba(255, 255, 255, 0.18)'
},
border: {
opacity: 0.5,
width: 2,
gradient: 'linear-gradient(135deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.7))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.8)',
outer: '0 8px 24px rgba(0, 0, 0, 0.1)',
glow: '0 0 36px rgba(255, 255, 255, 0.5)'
},
effects: {
gradientBorder: true,
innerShadow: true,
outerGlow: true,
dynamicBlur: 4
}
},
dark: {
background: {
blur: 22,
opacity: 0.22,
saturation: 240,
brightness: 100,
tint: 'rgba(17, 25, 40, 0.22)'
},
border: {
opacity: 0.55,
width: 2,
gradient: 'linear-gradient(135deg, rgba(100, 150, 255, 0.7), rgba(255, 255, 255, 0.2), rgba(100, 150, 255, 0.7))'
},
shadow: {
inner: 'inset 0 2px 6px rgba(255, 255, 255, 0.7)',