Installation
1. Install the library
2. Install the peer dependencies
All of them are required:
reactandreact-dom: the components are written for React 19.tailwindcss: the styling system; your build compiles the component classes.tw-animate-css: enter and exit animations.@internationalized/date: date values for the calendar and date inputs.
3. Add the Tailwind PostCSS plugin
Tailwind v4 compiles through its PostCSS plugin. Install it:
and register it in postcss.config.mjs at the project root:
4. Import the styles
Create the CSS entry of your app:
The theme declares the tokens, the Geist fonts and the @source paths that let Tailwind find
the classes used inside the components, so no extra content configuration is needed.
5. Wrap the app in ThemeProvider
ThemeProvider writes the theme as data-theme on <html> and remembers the user's choice
in localStorage. All props are optional:
The frame style is the AppShell look next to light and dark: the neutral gray surround or
the warm branded one. Read and change both with useTheme(); see Theming.
Keep defaultTheme and defaultFrameStyle identical in the host and every micro-frontend. Each
ThemeProvider writes <html> when it mounts, so a different default flips the whole console
when that product opens.
Tree-shaking
Import each component from its own entry point:
Icons have their own entry, @wallarm-org/design-system/icons; see Icons.
Troubleshooting
Styles are not applied. Check that @wallarm-org/design-system/theme is imported after
tailwindcss and tw-animate-css, that the PostCSS plugin is registered, and that the app is
wrapped in ThemeProvider.
TypeScript import errors. Use TypeScript 5.0 or newer with a moduleResolution that reads
package exports (bundler or nodenext), add "skipLibCheck": true to tsconfig.json, and
restart the TypeScript server in your editor.
React version conflict. Make sure the app uses React 19, then delete node_modules and the
lock file and reinstall.
Fonts do not load. The Geist fonts are bundled with @wallarm-org/design-system/theme.
Check that the theme is imported and look for the font requests in the browser's Network tab.