UI components library which implements the Kleros design system.
npm install @kleros/ui-components-libraryThe Kleros UI Components Library is a comprehensive collection of React components that implement the Kleros design system. This library provides a consistent and accessible user interface for Kleros applications, making it easier to build cohesive user experiences across the Kleros ecosystem.
Built with React, TypeScript, and Tailwind CSS, this library offers a wide range of components from basic UI elements to complex interactive widgets. Each component is designed with accessibility, customization, and ease of use in mind.
- React-based components: Built with React 18 and TypeScript for type safety
- Tailwind CSS integration: Leverages Tailwind for styling with consistent design tokens
- Accessibility: Components follow WAI-ARIA guidelines for maximum accessibility
- Responsive design: Components adapt to different screen sizes
- Customizable: Easily theme and extend components to match your application's design
- Storybook documentation: Interactive documentation with usage examples
The library includes a wide variety of components, including but not limited to:
- Layout: Box, Card, Modal
- Navigation: Breadcrumb, Pagination, Tabs
- Form Elements: TextField, TextArea, NumberField, Checkbox, RadioGroup, Switch, DatePicker, FileUploader
- Data Display: DisplaySmall, DisplayLarge, DisplayIcon, Tag, Tooltip
- Feedback: Alert, Push Notifications
- Progress: LinearProgress, CircularProgress, Steps, Timeline
- Interactive Elements: Button, Accordion, Dropdown, Cascader
Install the package using your preferred package manager:
``bashUsing yarn
yarn add @kleros/ui-components-library
$3
1. Import the CSS:
a. For Non-tailwind apps, import the CSS at top level of your app.
`javascript
import "@kleros/ui-components-library/style.css";
` b. For Tailwind apps, import the theme and mark the library as a source in your global.css file.
`css
@import "../../../node_modules/@kleros/ui-components-library/dist/assets/theme.css";
@source "../../../node_modules/@kleros/ui-components-library";
`2. Import and use components in your application:
`jsx
import { Button, TextField, Alert } from "@kleros/ui-components-library";function MyComponent() {
return (
Operation completed successfully!
);
}
`$3
If you wish the use the library's tailwind theme variables in your tailwind app. You can utilize it by importing the theme file in your
global.css file.`css
@import tailwindcss;
@import "../../../node_modules/@kleros/ui-components-library/dist/assets/theme.css";
`You can find the available theme variables here.
If want to override or edit the defined theme variables, you can do so like this:
`css
:root {
--klerosUIComponentsWhiteBackground: #832323;
}
:root[class="dark"] {
--klerosUIComponentsWhiteBackground: #832323;
}
`$3
This library requires the following peer dependencies:
- React 18+
- React DOM 18+
- Tailwind CSS 4+
Make sure these are installed in your project.
Development
$3
1. Clone the repository:
`bash
git clone https://github.com/kleros/ui-components-library.git
cd ui-components-library
`2. Install dependencies:
`bash
yarn install
`3. Start the Storybook development server:
`bash
yarn start
`4. Build the library:
`bash
yarn build
`$3
This project uses:
- TypeScript for type checking
- ESLint for code linting
- Prettier for code formatting
- Husky for Git hooks
- Conventional Commits for commit messages
Run checks with:
`bash
yarn check-types # Type checking
yarn check-style # Linting
`Package Publication
$3
1. Bump the version in
package.json
2. Run a clean build: yarn clean && yarn build
3. Commit the change to git: git add -u ; git commit -m "chore: release"
4. Tag this version: version=v$(cat package.json | jq -r .version) && git tag -m $version $version
5. Push both commit and tag: git push && git push --tags$3
1. Export your NPM token:
export YARN_NPM_AUTH_TOKEN=
2. Publish: yarn publish$3
1. Login:
`bash
npm login --registry https://npm.pkg.github.com --auth-type legacy
> Username: YOUR_GITHUB_USERNAME
> Password: YOUR_GITHUB_PERSONAL_ACCESS_TOKEN
`2. Publish:
npm publish --registry https://npm.pkg.github.comContributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (
git checkout -b feature/amazing-feature)
3. Commit your changes using conventional commits (git commit -m 'feat: add some amazing feature')
4. Push to the branch (git push origin feature/amazing-feature`)This project is licensed under the MIT License - see the LICENSE file for details.