Theming
Aqua Fusion uses CSS custom properties (variables) for theming. Override them in your own CSS to match your brand.
How it works
theme.css defines default values as CSS variables on :root
The Tailwind preset maps these variables to utility classes
You override variables to customize the entire system
Quick customization
:root {
/* Change the primary brand color */
--aqua-color-primary-500 : 99 102 241 ; /* indigo */
--aqua-color-primary-600 : 79 70 229 ;
--aqua-color-primary-700 : 67 56 202 ;
/* Change the font */
--aqua-font-sans : 'Roboto' , system-ui , sans-serif ;
/* Change border radius */
--aqua-radius-default : 0.5 rem ;
}
All components using bg-primary-500, text-primary-600, font-sans, or rounded-ui will automatically use your custom values.
Color tokens
Primary (brand)
Variable Default Description --aqua-color-primary-50240 249 255Lightest tint --aqua-color-primary-100224 242 254--aqua-color-primary-200186 230 253--aqua-color-primary-300125 211 252--aqua-color-primary-40056 189 248--aqua-color-primary-50014 165 233Base brand color --aqua-color-primary-6002 132 199Hover state --aqua-color-primary-7003 105 161Active state --aqua-color-primary-8007 89 133--aqua-color-primary-90012 74 110Darkest shade
Colors use space-separated RGB values (e.g., 14 165 233) to support Tailwind's opacity modifier syntax: bg-primary-500/50.
Semantic text
Variable Default Tailwind class --aqua-text-primary17 24 39 (gray-900)text-content-primary--aqua-text-secondary75 85 99 (gray-600)text-content-secondary--aqua-text-tertiary107 114 128 (gray-500)text-content-tertiary--aqua-text-disabled156 163 175 (gray-400)text-content-disabled--aqua-text-inverse255 255 255 (white)text-content-inverse
Semantic backgrounds
Variable Default Tailwind class --aqua-bg-default255 255 255 (white)bg-surface--aqua-bg-subtle249 250 251 (gray-50)bg-surface-subtle--aqua-bg-muted243 244 246 (gray-100)bg-surface-muted--aqua-bg-emphasis229 231 235 (gray-200)bg-surface-emphasis--aqua-bg-inverse17 24 39 (gray-900)bg-surface-inverse
Semantic borders
Variable Default Tailwind class --aqua-border-default229 231 235 (gray-200)border-line--aqua-border-subtle243 244 246 (gray-100)border-line-subtle--aqua-border-emphasis209 213 219 (gray-300)border-line-emphasis
Feedback colors
Token 50 500 600 700 800 --aqua-success-*Green tint Green Dark green Darker Darkest --aqua-warning-*Amber tint Amber Dark amber Darker Darkest --aqua-error-*Red tint Red Dark red Darker Darkest --aqua-info-*Blue tint Blue Dark blue Darker Darkest
Border radius
Variable Default Tailwind class --aqua-radius-sm0.125rem (2px)rounded-ui-sm--aqua-radius-default0.25rem (4px)rounded-ui--aqua-radius-md0.375rem (6px)rounded-ui-md--aqua-radius-lg0.5rem (8px)rounded-ui-lg--aqua-radius-xl0.75rem (12px)rounded-ui-xl--aqua-radius-2xl1rem (16px)rounded-ui-2xl--aqua-radius-full9999pxrounded-ui-full
Shadows
Variable Tailwind class Usage --aqua-shadow-smshadow-ui-smSubtle elevation --aqua-shadow-defaultshadow-uiStandard cards --aqua-shadow-mdshadow-ui-mdDropdowns --aqua-shadow-lgshadow-ui-lgModals --aqua-shadow-xlshadow-ui-xlMaximum elevation
Typography
Variable Default Tailwind class --aqua-font-sans'Inter', system-ui, sans-seriffont-sans--aqua-font-display'Poppins', sans-seriffont-display
Dark mode
Aqua Fusion includes dark mode support. Add the dark class to your <html> element:
< html class = "dark" >
The theme CSS defines .dark selector overrides for text, background, and border colors. No additional configuration is needed.
Toggle dark mode with JavaScript
function toggleDarkMode () {
document.documentElement.classList. toggle ( 'dark' );
}
Respect system preference
const prefersDark = window. matchMedia ( '(prefers-color-scheme: dark)' ).matches;
if (prefersDark) {
document.documentElement.classList. add ( 'dark' );
}
Aqua Fusion also provides the usePrefersDarkMode hook:
import { usePrefersDarkMode } from '@wavebooking/aqua-fusion/hooks' ;
function App () {
const prefersDark = usePrefersDarkMode ();
// Apply dark class based on preference
}