Theming
Sona UI components use semantic CSS variables and Tailwind utility classes. They are designed to inherit your project's visual language, including its light and dark themes.
Use semantic tokens
Most components rely on the standard shadcn semantic tokens for surfaces, text, controls, borders, and focus states. Keep those names stable, then adjust their values to match your product.
Components that need Sona-specific values declare the small sona-theme foundation. The CLI installs it only when a component needs it. It adds the Sona radius and danger-state tokens without copying this documentation site's stylesheet into your project.
Set up dark mode
For a Next.js project, install next-themes and provide it at the root of the application. Other frameworks can use the same semantic tokens with their preferred theme strategy.
Customize the palette
Define semantic values in the Tailwind CSS entry file. The example below is a compact foundation that Sona UI components can inherit.
When the provider uses the class attribute, define both root and dark values explicitly. This keeps theme changes controlled by the class rather than the browser color-scheme setting.
Style the installed source
Sona UI gives you local source files, so you can change classes and structure where the component is used. Prefer semantic utilities from your theme so the component continues to work in every color mode.
Contact
Found a bug or need help theming a component? Open an issue on GitHub.
License & Usage
Sona UI is available under the MIT license. You may use, modify, and distribute components in personal and commercial projects.