The AI DIAL UI Kit is an production-ready React component library designed to streamline your development process. It features a collection of base components, such as Buttons, Inputs, Dropdowns, and more — allowing you to effortlessly reuse elements, quick and easy.
- ✨ Highlights
- 📖 Documentation
- 🚀 Quick Start
- Development
- 🎨 Theming & Customization
- 📖 Storybook
- 🚀 Usage in Projects
- 🤝 Contributing
- 🔒 Security
- 📄 License
- 🌟 Related Projects
- 🎨 Unified User Experience: Ui Kit usage helps with design consistency across AI DIAL applications
- ⚡ Modern Stack: Built with latest React, TypeScript, Vite, and Tailwind CSS
- 🎨 Highly Customizable: Deep theming capabilities with CSS custom properties
- 🧪 Well-Tested: Comprehensive test coverage (70%+) with Vitest and React Testing Library
- 📚 Storybook Ready: Includes interactive component documentation and development playground
- 🛠️ Developer Experience: Leverage ESLint, Prettier, Husky for maintainable code quality
- 📦 Distribution Ready: Deployed as NPM package ready for easy integration
Explore our components and their usage in our interactive Storybook documentation.
- Node.js >= 22.2.0
- npm >= 10.7.0
npm install @epam/ai-dial-ui-kitimport { DialButton } from '@epam/ai-dial-ui-kit';
import '@epam/ai-dial-ui-kit/styles.css';
function App() {
return (
<div>
<DialButton
cssClass="dial-primary-button"
onClick={() => alert('Hello AI DIAL!')}
/>
</div>
);
}- Node.js >= 22.2.0
- npm >= 10.7.0
- Git
-
Clone the repo
git clone https://github.com/epam/ai-dial-ui-kit.git cd ai-dial-ui-kit -
Install Dependencies
npm install
-
Start Development Environment
# Start Storybook for component development npm run storybook # Run tests in watch mode npm run test -- --watch # Start Vite dev server npm run dev
# Run all tests with coverage
npm run testsrc/
├── components/ # React components
│ ├── Button/ # Example component
│ │ ├── Button.tsx
│ │ ├── Button.spec.tsx
│ │ └── Button.stories.tsx
│ └── ...
├── styles/ # Global styles and Tailwind configuration
│ ├── buttons.scss
│ ├── typography.scss
│ └── tailwind-entry.scss
├── types/ # TypeScript type definitions
└── index.ts # Main entry point
The library uses CSS custom properties for comprehensive theming. Override these variables to match your brand:
:root {
/* Background layers */
--bg-layer-0: #000000;
--bg-layer-1: #090D13;
--bg-layer-2: #171B21;
/* Text colors */
--text-primary: #F3F4F6;
--text-secondary: #9CA3AF;
--text-tertiary: #6B7280;
...
}Full list of variables is available here
Storybook is a handy library for documenting and developing of UI components.
To run fully interactive storybook:
npm run storybook
# Open http://localhost:6006npm run build-storybooknpx http-server ./storybook-static
# Open http://127.0.0.1:8080/To run documents only:
npm run storybook-docs
# Open http://localhost:54800/npm run build-storybook-docsnpx http-server ./storybook-static
# Open http://127.0.0.1:8080/Storybook provides:
- 📖 Interactive component documentation
- 🎨 Visual testing playground
- ♿ Accessibility testing tools
- 📱 Responsive design testing
- 🎯 Component isolation
Next.js Integration
- Install the package and peer dependencies that are not currently in your project
npm install @epam/ai-dial-ui-kit
npm install react react-dom @tabler/icons-react classnames
npm install @floating-ui/react monaco-editor @monaco-editor/react- Import style in the root layout of the project:
// app/layout.tsx
import "@epam/ai-dial-ui-kit/styles.css";- Usage example
// app/page.tsx
"use client";
import { DialButton } from "@epam/ai-dial-ui-kit";
export default function Home() {
return (
<div className="w-full h-full flex flex-col gap-3 items-center justify-center">
<h1>Test library</h1>
<DialButton
onClick={() => console.log("Next.js + AI DIAL UI Kit!")}
title="Click me"
cssClass="dial-primary-button"
/>
</div>
);
}Import only the components you need:
// ✅ Good - Tree shakable imports
import { DialButton, DialInput } from '@epam/ai-dial-ui-kit';
import '@epam/ai-dial-ui-kit/styles.css'; // Import styles separately
// ❌ Avoid - Imports entire library
import * as UIKit from '@epam/ai-dial-ui-kit';We welcome contributions! Please see our Contributing Guide for details on:
- Code style guidelines
- Testing requirements
- Pull request process
If you discover a security vulnerability, please refer to our Security Policy.
Apache 2.0 - see the LICENSE file for details.
- AI-DIAL - Entrypoint for all AI Dial projects
Made with ❤️ by EPAM Systems