React provider component for nice-styles CSS variables.
npm install nice-styles nice-react-stylesBoth packages are required: nice-styles provides the CSS variables, and nice-react-styles provides the React wrapper component.
Wrap your application (or any part of your component tree) with the StylesProvider component:
import { StylesProvider } from 'nice-react-styles'
function App() {
return (
<StylesProvider>
<YourComponents />
</StylesProvider>
)
}Once wrapped with StylesProvider, all child components can reference nice-styles CSS variables:
function MyComponent() {
return (
<div
style={{
backgroundColor: 'var(--background-color-base)',
color: 'var(--content-color-base)',
padding: 'var(--gap-size-medium)',
borderRadius: 'var(--border-radius-base)',
fontFamily: 'var(--font-family-base)',
}}
>
Hello World
</div>
)
}Or in CSS/styled-components:
.my-component {
background-color: var(--background-color-base);
color: var(--content-color-base);
padding: var(--gap-size-medium);
border-radius: var(--border-radius-base);
font-family: var(--font-family-base);
}You can pass additional props to customize the provider wrapper:
<StylesProvider
className="custom-class"
style={{
'--custom-variable': 'value',
padding: '20px'
}}
>
<YourComponents />
</StylesProvider>A wrapper component that ensures nice-styles CSS variables are available in the component tree.
children: ReactNode- Child components that will have access to CSS variablesclassName?: string- Optional className to apply to the wrapper divstyle?: React.CSSProperties- Optional style object for custom CSS variable overrides
Following the pattern of Tailwind CSS + Headless UI:
- nice-styles: Pure CSS package, framework-agnostic, zero dependencies
- nice-react-styles: React-specific wrapper for enhanced DX
This keeps the CSS layer lightweight and usable with any framework (Vue, Angular, Svelte, etc.), while providing React users with an ergonomic component-based API.
See the nice-styles documentation for the complete list of available CSS variables.
MIT