A collection of reusable React components for building modern web applications with consistent design and behavior.
- TypeScript Support: Fully typed components with exported prop types
- Accessible: Built with WAI-ARIA standards
- Customizable: Theme support and style overrides
- Responsive: Works across all device sizes
- Form Components: Complete suite of form inputs and controls
npm install pillardash-ui-react
# or
yarn add pillardash-ui-react
This library requires:
{
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
}
Button
- Interactive button elementCheckBox
- Custom checkbox inputFileUpload
- File upload component with drag-and-dropInput
- Text input fieldSearch
- Search input with debounceSelect
- Custom select dropdownTextEditor
- Rich text editor
DataTable
- Sortable and paginated tableCard
- Flexible content container
Alert
- Contextual notification messagesLoading
- Animated loading indicators
import { Button, Input } from 'pillardash-ui-react';
function Example() {
return (
<div>
<Input
label="Email"
placeholder="Enter your email"
/>
<Button variant="primary">
Submit
</Button>
</div>
);
}
Customize the look and feel by wrapping your app with the ThemeProvider
:
import { ThemeProvider } from 'pillardash-ui-react';
function App() {
return (
<ThemeProvider
theme={{
colors: {
primary: '#0E8A74',
secondary: '#0E8AAA'
}
}}
>
{/* Your app */}
</ThemeProvider>
);
}
All components include TypeScript definitions. Import prop types for extended customization:
import { Button, type ButtonProps } from 'pillardash-ui-react';
const CustomButton = (props: ButtonProps) => (
<Button {...props} className="custom-class" />
);
We welcome contributions! Please see our Contributing Guidelines.
MIT © Osai Technologies
<Button
variant="primary" | "secondary" | "outline"
size="sm" | "md" | "lg"
loading={boolean}
disabled={boolean}
onClick={() => void}
>
Click me
</Button>
<Input
label="Email"
placeholder="user@example.com"
error="Invalid email"
value={string}
onChange={(e) => void}
/>
<Select
options={[
{ value: '1', label: 'Option 1' },
{ value: '2', label: 'Option 2' }
]}
value={string}
onChange={(selected) => void}
/>
- Clone the repository
- Install dependencies:
npm install
- Run Storybook:
npm run storybook
- Build the library:
npm run build
npm test
# or
npm run test:watch