The 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:
# Using yarn
yarn add @kleros/ui-components-library
# Using npm
npm install @kleros/ui-components-library- 
Import the CSS:
a. For Non-tailwind apps, import the CSS at top level of your app.
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.
@import "../../../node_modules/@kleros/ui-components-library/dist/assets/theme.css"; @source "../../../node_modules/@kleros/ui-components-library";
 - 
Import and use components in your application:
 
import { Button, TextField, Alert } from "@kleros/ui-components-library";
function MyComponent() {
  return (
    <div>
      <TextField label="Username" placeholder="Enter your username" />
      <Button>Submit</Button>
      <Alert type="success">Operation completed successfully!</Alert>
    </div>
  );
}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.
@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:
:root {
  --klerosUIComponentsWhiteBackground: #832323;
}
:root[class="dark"] {
  --klerosUIComponentsWhiteBackground: #832323;
}This library requires the following peer dependencies:
- React 18+
 - React DOM 18+
 - Tailwind CSS 4+
 
Make sure these are installed in your project.
- 
Clone the repository:
git clone https://github.com/kleros/ui-components-library.git cd ui-components-library - 
Install dependencies:
yarn install
 - 
Start the Storybook development server:
yarn start
 - 
Build the library:
yarn build
 
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:
yarn check-types    # Type checking
yarn check-style    # Linting- Bump the version in 
package.json - Run a clean build: 
yarn clean && yarn build - Commit the change to git: 
git add -u ; git commit -m "chore: release" - Tag this version: 
version=v$(cat package.json | jq -r .version) && git tag -m $version $version - Push both commit and tag: 
git push && git push --tags 
- Export your NPM token: 
export YARN_NPM_AUTH_TOKEN=<npm_xxxxxxxxxxxx> - Publish: 
yarn publish 
- 
Login:
npm login --registry https://npm.pkg.github.com --auth-type legacy > Username: YOUR_GITHUB_USERNAME > Password: YOUR_GITHUB_PERSONAL_ACCESS_TOKEN
 - 
Publish:
npm publish --registry https://npm.pkg.github.com 
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
 - Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes using conventional commits (
git commit -m 'feat: add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
 
This project is licensed under the MIT License - see the LICENSE file for details.