Wolves League UI is a proof of concept of a component library.
The goal of this project is to create a component library (almost) from the ground up with these principles in mind:
- Accessibility
- Easy to Maintain/Develop
- Easy to Use
- No need for TailwindCSS in the project using this library
This project is a monorepo using Turborepo and PNPM Workspaces.
These are the packages present in the packages
folder:
docs
: Storybook app to showcase and document all componentseslint-config
: ESLint configuration and rules to be used by all other packagesreact
: The actual implementation of the components using Reacttokens
: Values related to styles separated from any framework or tool so it can be reused anywherets-config
: TypeScript configuration to be used by all other packages
- PNPM
- Turborepo
- Tsup
- Changesets
- TypeScript
- ESLint
- Prettier
- React
- RadixUI
- TailwindCSS
- Tailwind Variants
- Storybook
Since I am not a designer, the styles applied to the components are purely based on my personal preferences, which may not align with established design guidelines.
Run the following command to start the development environment, which includes watching all packages, including Storybook:
pnpm dev
Use this command to run linting checks on the codebase:
pnpm lint
Execute this command to build the project:
pnpm build
To manage versioning and releases, follow these steps:
Run the Changesets CLI to choose which packages to version and add a description:
pnpm changeset
Change the versions of selected packages and creates CHANGELOG.md files:
pnpm version-packages
Publish the packages to NPM:
pnpm release
- Button
- Tooltip
- Dialog
- Checkbox
- Switch
- Slider
- Input
- Accordion
- Avatar
- Autocomplete
- Dropdown Menu
- Progress
- Radio
- Scroll Area
- Select
- Separator
- Toast