@forgedevstack/bear
v1.0.9
Published
Strong, reliable React UI components. Tailwind-powered, zero config required. The protective force of ForgeStack.
Maintainers
Readme
@forgedevstack/bear
Strong, reliable React UI components. Tailwind-powered, zero config required. The protective force of ForgeStack.
Portal
Visit the Bear UI Portal to explore all components, view live examples, and browse the documentation.
Features
- Tailwind-Powered: Built with Tailwind CSS, zero config required
- React 18+: Works with React 18 and above
- TypeScript: Full type safety with comprehensive TypeScript definitions
- Comprehensive Component Library: 50+ production-ready components
- Accessible: ARIA attributes and keyboard navigation support
- Customizable: Flexible theming and styling options
- Tree-Shakeable: Import only what you need
- Zero Config: Works out of the box with minimal setup
Installation
npm install @forgedevstack/bear
# or
pnpm add @forgedevstack/bear
# or
yarn add @forgedevstack/bearImport CSS (Required)
Import the compiled CSS file once in your app:
// In your main entry file (e.g., main.tsx, App.tsx, or index.css)
import '@forgedevstack/bear/styles.css';Quick Start
import { Button, Card, CardHeader, CardBody } from '@forgedevstack/bear';
function App() {
return (
<Card>
<CardHeader>
<h2>Welcome to Bear</h2>
</CardHeader>
<CardBody>
<Button variant="primary">Get Started</Button>
</CardBody>
</Card>
);
}Component Categories
Layout Components
Container- Responsive container with max-width constraintsFlex- Flexible box layout componentGrid/GridItem- CSS Grid layout system
UI Components
Button/ButtonGroup- Interactive button componentsCard- Container for content with header, body, and footerBadge- Status indicators and labelsPaper- Elevated surface componentDivider- Visual separatorTypography- Text styling componentLink- Styled link component
Form Components
Input- Text input fieldSelect/MultiSelect- Dropdown selection componentsCheckbox- Checkbox inputRadio/RadioGroup- Radio button inputsSwitch- Toggle switchAutocomplete- Autocomplete inputTransferList- Transfer items between listsFileUpload- File upload componentNumberInput- Numeric input with controlsOTPInput- One-time password inputColorPicker- Color selection componentDatePicker- Date selection componentTimePicker- Time selection componentSlider- Range slider input
Feedback Components
Alert- Alert messagesSpinner- Loading spinnerRating- Star rating componentProgress- Progress indicatorSkeleton- Loading skeleton statesToast/useToast- Toast notificationsBearLoader- Custom bear-themed loader
Overlay Components
Modal- Modal dialogDrawer- Slide-out drawerTooltip- Tooltip componentPopover- Popover componentMenu/MenuItem- Context menuDropdown- Dropdown menuSpeedDial- Floating action speed dial
Data Display
DataTable- Advanced data table with sorting, filtering, and paginationCarousel- Image/content carouselAccordion- Collapsible content sectionsTabs- Tabbed interfaceList- List component with various item typesAvatar/AvatarGroup- User avatar displayChip- Compact element for input, attribute, or actionTreeView- Hierarchical tree structureTimeline- Timeline componentStatistic- Statistical displayEmptyState- Empty state placeholderImage- Enhanced image component
Navigation Components
Breadcrumbs- Navigation breadcrumbsStepper- Step-by-step navigationBottomNavigation- Bottom navigation barAppBar- Application bar/headerPagination- Page navigation
Utility Components
ScrollArea- Custom scrollable areaCollapsible- Collapsible content wrapperKbd- Keyboard key displayCopyButton- Copy to clipboard buttonIcon/BearIcons- Icon component libraryBearLogo- Bear logo component
Examples
Button
import { Button } from '@forgedevstack/bear';
<Button variant="primary">Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>Card
import { Card, CardHeader, CardBody, CardFooter } from '@forgedevstack/bear';
<Card>
<CardHeader>Title</CardHeader>
<CardBody>Content goes here</CardBody>
<CardFooter>Footer content</CardFooter>
</Card>Form
import { Input, Select, Checkbox, Button } from '@forgedevstack/bear';
function LoginForm() {
return (
<form>
<Input label="Email" type="email" required />
<Input label="Password" type="password" required />
<Select
label="Country"
options={[
{ value: 'us', label: 'United States' },
{ value: 'uk', label: 'United Kingdom' },
]}
/>
<Checkbox label="Remember me" />
<Button type="submit">Submit</Button>
</form>
);
}DataTable
import { DataTable, createColumns } from '@forgedevstack/bear';
interface User {
id: number;
name: string;
email: string;
role: string;
}
const columns = createColumns<User>([
{ key: 'name', header: 'Name' },
{ key: 'email', header: 'Email' },
{ key: 'role', header: 'Role' },
]);
const data: User[] = [
{ id: 1, name: 'John Doe', email: '[email protected]', role: 'admin' },
{ id: 2, name: 'Jane Smith', email: '[email protected]', role: 'user' },
];
<DataTable data={data} columns={columns} />Toast Notifications
import { ToastProvider, useToast, Button } from '@forgedevstack/bear';
function App() {
return (
<ToastProvider>
<MyComponent />
</ToastProvider>
);
}
function MyComponent() {
const toast = useToast();
return (
<Button onClick={() => toast.success('Operation successful!')}>
Show Toast
</Button>
);
}Theming
Bear components support customization through Tailwind CSS. You can override default styles by configuring your Tailwind theme:
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
// Your custom colors
},
},
},
}TypeScript Support
All components are fully typed with TypeScript:
import { Button, ButtonProps } from '@forgedevstack/bear';
const buttonProps: ButtonProps = {
variant: 'primary',
size: 'md',
children: 'Click me',
};
<Button {...buttonProps} />License
MIT
