Tailscale UI component library used by Tailscale web projects. Not maintained for external use.
Ensure you have the following tools installed:
- Node.js 22.14.0 (use
nvm
to manage Node versions)nvm use 22.14.0
- Yarn 1.22.19 (package manager)
npm install -g [email protected]
-
Clone the repository
git clone https://github.com/tailscale/tailscale-ui-components.git cd tailscale-ui-components
-
Install dependencies
yarn install
-
Start Storybook for development
yarn storybook
This will start Storybook on
http://localhost:6006
(or the next available port)
yarn storybook
- Start Storybook development serveryarn build-storybook
- Build Storybook for productionyarn build
- Build the component library for productionyarn test
- Run tests with Vitest
This project has been tested and works with:
- Node.js 22.14.0 (recommended for team consistency)
This project uses Yarn v1 as the package manager. The yarn.lock
file should be committed, and package-lock.json
should be ignored/removed if present.
Components are located in src/components/
and follow these patterns:
- OSS-ready structure with proper style mappings
- Comprehensive TypeScript types and exported constants
- Accessibility features with proper ARIA attributes
- Storybook stories for documentation and testing
Example component structure:
src/components/button/
├── button.tsx # Main component
├── button.stories.tsx # Storybook stories
- Use the
.button
,.input
, and other base CSS classes fromsrc/tailwind.css
- Follow the established design tokens and color system
- Ensure components have rounded corners and consistent spacing
- Support both light and dark themes
Node.js Version Issues: If you encounter build errors, ensure you're using Node.js 22.14.0:
node --version # Should output v22.14.0
Package Manager Issues: If dependencies fail to install, try:
rm -rf node_modules yarn.lock
yarn install