goobs-frontend
Version:
A comprehensive React-based libary for building modern web applications
225 lines (149 loc) • 8.77 kB
Markdown
# goobs-frontend
goobs-frontend is a comprehensive React-based UI component library featuring a custom design system with 100+ components, built with TypeScript and modern React patterns.
The NPM repo is available here - https://www.npmjs.com/package/goobs-frontend
This entire repository is written in TypeScript, and there is no need for a separate types installation.
## Storybook
See component design and documentation in Storybook available here - https://storybook.technologiesunlimited.net/
## Integrating goobs-frontend with Next.js
This guide explains how to integrate goobs-frontend with a Next.js project
**Step 1: Install the project**
In your Next.js project directory, run the following command to install goobs-frontend
#### npm
```bash
npm i goobs-frontend
```
#### yarn
```bash
yarn add goobs-frontend
```
**Step 2: Update next.config.js**
You must then transpile the package in next.config
```javascript
/** @type {import('next').NextConfig} */
const nextConfig = {
transpilePackages: ['goobs-frontend'],
}
export default nextConfig
```
After this is done, you can import components from goobs-frontend into your project.
## Component Library Overview
goobs-frontend provides 100+ fully-featured React components organized into logical categories. All components are built with TypeScript, custom theming, and responsive design principles. For detailed documentation, examples, and interactive demos, visit our [Storybook](https://storybook.technologiesunlimited.net/).
## Core Component Categories
### 🎨 Layout & Structure
- **Grid** - Responsive grid system with flexible row/column configurations
- **Container** - Responsive content containers with consistent spacing
- **Stack** - One-dimensional layout component for arranging items
- **Paper** - Elevated surface container for content sections
- **Divider** - Visual separators for content organization
### 📝 Form Components
**Text Inputs**
- **TextField** - Versatile text input with advanced styling and label positioning
- **PasswordField** - Secure password input with show/hide toggle functionality
- **SearchField** - Search input with integrated search icons and styling
- **ComplexTextEditor** - Multi-mode editor (simple, markdown, rich text) with integrated toolbar
**Specialized Inputs**
- **PhoneNumberField** - Auto-formatting phone number input (+1-xxx-xxx-xxxx)
- **USDField** - Currency input with dollar formatting and validation
- **PercentageField** - Percentage input with % symbol and range validation
- **ConfirmationCodeInput** - OTP-style multi-digit input with auto-focus progression
**Number Inputs**
- **IncrementNumberField** - Number input with built-in increment/decrement controls
- **AccountNumberField** - Bank account number input with validation
- **RoutingNumberField** - Bank routing number input with format validation
- **CreditCardField** - Credit card input with real-time formatting
- **CVVField** - Secure CVV input for payment forms
**Date & Time**
- **DateField** - Date picker with calendar popup and keyboard navigation
- **DateRangeField** - Start/end date selection with range validation
- **TimeRangeField** - Time range selector with 12/24 hour support
**Selection Components**
- **Dropdown** - Customizable select component with advanced styling
- **MultiSelectChip** - Multi-selection dropdown with chip display
- **SearchableDropdown** - Real-time filtering dropdown with autocomplete
- **RadioGroup** - Radio button groups with custom styling and TypeScript support
- **Checkbox** - Enhanced checkbox with indeterminate state support
- **Switch** - Toggle switch with smooth animations
**IPAM & Network Fields**
- **IPAddressField** - IP address input with validation
- **CIDRField** - CIDR notation input with subnet validation
- **SubnetField** - Subnet configuration input
- **VLANField** - VLAN ID input with range validation
- **MACAddressField** - MAC address input with auto-formatting
### 🗂️ Data Display
- **DataGrid** - Advanced data table with sorting, filtering, pagination, and row management
- **Table** - Lightweight table component for simple data display
- **Card** - Versatile card container with multiple variants (product, pricing, task, inventory)
- **List** - Flexible list component with custom item rendering
- **PricingTable** - Specialized pricing comparison table with feature highlights
- **ProjectBoard** - Kanban-style board with drag-and-drop task management
### 🧭 Navigation
- **Tabs** - Horizontal tab navigation with route integration
- **Breadcrumb** - Breadcrumb navigation with custom separators
- **Stepper** - Step-by-step process indicator with customizable states
- **TreeView** - Hierarchical tree navigation with expand/collapse
- **Pagination** - Page navigation with customizable page size options
### 🎯 Action Components
- **Button** - Highly customizable button with icon support and flexible positioning
- **IconButton** - Icon-only buttons with hover states and accessibility
- **ToggleButton** - Toggle button with active/inactive states
### 💬 Feedback & Overlays
- **Alert** - Contextual alerts with multiple severity levels
- **Dialog** - Modal dialogs for complex interactions
- **Snackbar** - Toast notifications with action buttons
- **Tooltip** - Enhanced tooltips with custom positioning and styling
- **Popover** - Positioned popup containers
### 🔧 Utility Components
- **Accordion** - Collapsible content sections with smooth animations
- **Badge** - Notification badges with custom positioning
- **Chip** - Compact information chips with delete functionality
- **Avatar** - User avatars with fallback text and image support
- **ProgressBar** - Progress indicators with customizable styling
- **CodeCopy** - Syntax-highlighted code blocks with one-click copying
- **QRCode** - Dynamic QR code generator with TOTP integration
- **TransferList** - Dual-list component for moving items between collections
### 🎨 Design & Animation
- **Typography** - Text component with multiple font families (Arapey, Inter, Merriweather)
- **Fade**, **Slide**, **Zoom** - Smooth transition components for enhanced UX
### 🏗️ Advanced Components
- **Toolbar** - Flexible toolbar with multiple sections and responsive behavior
- **Content** - Dynamic content renderer supporting multiple content types
- **FormDataGrid** - Data grid with integrated form validation
### 📱 Mobile-First Design
All components are built with mobile-first responsive design principles, ensuring optimal performance across desktop, tablet, and mobile devices.
### 🎨 Comprehensive Icon Library
200+ carefully crafted icons covering:
- Navigation (arrows, chevrons, menu controls)
- Actions (add, delete, edit, save, settings)
- Communication (email, phone, notifications)
- Business (payment, store, analytics)
- Technology (code, devices, security, networking)
- Status indicators (success, error, warning, info)
## Key Features
### 🔧 Customization
- **Advanced Theming** - Override colors, fonts, spacing, and component behavior
- **Flexible Styling** - Custom CSS-in-JS with theme-aware styling system
- **Component Variants** - Multiple pre-built variants for common use cases
### 📋 Developer Experience
- **Full TypeScript Support** - Complete type definitions with IntelliSense
- **Comprehensive Documentation** - Interactive Storybook with live examples
- **Consistent API** - Predictable prop patterns across all components
### ♿ Accessibility & Performance
- **ARIA Compliance** - Full accessibility support with proper ARIA labels
- **Keyboard Navigation** - Complete keyboard support for all interactive components
- **Performance Optimized** - Lazy loading, code splitting, and optimized bundle sizes
### 🚀 Modern React Patterns
- **Hooks-Based** - Built with modern React hooks and functional components
- **State Management** - Integrated Jotai support for complex state scenarios
- **Form Integration** - Seamless integration with popular form libraries
_For complete component documentation, interactive examples, and implementation guides, visit the [Storybook documentation](https://storybook.technologiesunlimited.net/)._
### Feedback and Contributions
I welcome feedback and contributions of all kinds:
- Issues: Report bugs or request features via GitHub Issues.
- Pull Requests: Fork, create a branch, and open a PR for review.
- Custom Requests: If you need special features or want these components ported to a different design system, reach out.
### License
goobs-frontend is licensed under the MIT License.
### Contact
For questions, support, or further details, please contact Matthew Goluba
Email: mkgoluba@technologiesunlimited.net
Enjoy building with goobs-frontend!