Codexportfolio intelligence
Packages/TypeScript

@philiprehberger/react-ui-kit

Accessible React UI component library with Tailwind CSS

TypeScriptnpm

Capabilities

README

@philiprehberger/react-ui-kit

CI npm version Last updated

Accessible React UI component library with Tailwind CSS

Installation

npm install @philiprehberger/react-ui-kit clsx tailwind-merge

Usage

import { Button, Card, Input, Modal } from '@philiprehberger/react-ui-kit';

<Card variant="bordered" padding="lg">
  <Input label="Email" type="email" required />
  <Button variant="primary" size="md">Submit</Button>
</Card>

Display

import { Button, Badge, Skeleton, Spinner } from '@philiprehberger/react-ui-kit';

<Button isLoading>Save</Button>
<Badge variant="success">Active</Badge>
<Skeleton width="60%" height={24} />
<Spinner size="md" label="Loading users" />

Form

import { FormInput, FormSelect, FormTextarea } from '@philiprehberger/react-ui-kit';

<FormInput name="email" label="Email" type="email" required />
<FormSelect name="role" label="Role" options={[{ value: 'admin', label: 'Admin' }]} />
<FormTextarea name="bio" label="Bio" maxLength={280} />

Overlay

import { Modal, ConfirmDialog, ToastProvider, useToast } from '@philiprehberger/react-ui-kit';

<Modal isOpen={open} onClose={close} title="Settings">
  ...
</Modal>

Navigation & Data

import { Tabs, Pagination, DataList } from '@philiprehberger/react-ui-kit';

<Tabs>
  <Tabs.List>
    <Tabs.Tab id="general">General</Tabs.Tab>
  </Tabs.List>
  <Tabs.Panel id="general">...</Tabs.Panel>
</Tabs>

API

Components

ComponentDescription
ButtonMulti-variant button with loading states
Card, CardHeader, CardBody, CardFooter, CompoundCardContainer with header/body/footer slots
Badge, DiscountBadge, NewBadge, FeaturedBadgeStatus indicator badges
InputText input, select, and textarea with validation states
CheckboxAccessible checkbox with label
RadioGroupGrouped radio buttons
ModalDialog with focus trap and keyboard navigation
DropdownDropdown menu with keyboard support
TabsCompound component tabs (Tabs.List, Tabs.Tab, Tabs.Panel)
TooltipHover tooltip with positioning
ConfirmDialogConfirmation dialog with variants
PaginationPage navigation with ellipsis
Skeleton, TextSkeleton, AvatarSkeleton, CardSkeletonLoading placeholders
SpinnerAccessible loading spinner with size variants
DataList, GridList, StackList, DataListSkeleton, DataListEmptyGeneric data list with layouts

Form Components

ComponentDescription
FormField, TextField, EmailField, PasswordField, SearchField, NumberFieldField wrappers with validation
FormGroup, FormRowForm layout helpers
FormInputInput with form validation integration
FormSelectSelect with form validation integration
FormTextareaTextarea with character count

Providers & Hooks

ExportTypeDescription
ToastProviderComponentToast notification context provider
useToast()HookShow toast notifications
LiveRegionProviderComponentScreen reader announcement provider
useAnnounce()HookTrigger screen reader announcements

Utilities

ExportDescription
cn(...inputs)Merge class names (clsx + tailwind-merge)

Development

npm install
npm run build
npm test

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

License

MIT