π§© Nodeblocks Frontend Blocks
The Complete Component Library for Modern Business Applications β‘
Welcome to the Nodeblocks Frontend Blocks - a comprehensive collection of 32 production-ready React components designed to accelerate your application development. These modular, customizable blocks are the visual building blocks that bring your applications to life.
π Table of Contentsβ
- π― What Are Frontend Blocks?
- ποΈ Component Categories
- β¨ Key Features
- π Getting Started
- π‘ Usage Examples
π― What Are Frontend Blocks?β
Frontend Blocks are pre-built, customizable React components that serve as the visual foundation of your applications. Each block is:
- π¨ Fully Customizable: Adapt to your brand and design requirements
- π§ Production Ready: Built with TypeScript, tested, and optimized
- π§© Modular: Use individually or combine for complete features
- β‘ Performance Optimized: Built with modern React best practices
ποΈ Component Categoriesβ
π Common Componentsβ
Essential building blocks for any application
Component | Description |
---|---|
navbar | Main navigation bar with responsive design |
side-navigation | Collapsible sidebar navigation |
breadcrumb | Navigation breadcrumbs for page hierarchy |
footer | Professional footer component |
hero | Eye-catching hero sections |
error-block | Beautiful error message displays |
faq | Frequently asked questions section |
chat-conversation | Real-time chat interface |
chat-conversation-list | Chat conversation management |
settings | Application settings interface |
filter-search-panel | Advanced search and filtering |
filter-list | Filterable list components |
search-by-chips | Tag-based search functionality |
merits | Achievement and merit displays |
how-to-use | User guide and instruction components |
π₯ User Managementβ
Complete user authentication and management suite
Component | Description |
---|---|
sign-in | User authentication and login |
sign-up | New user registration |
reset-password | Password recovery functionality |
list-users | User management and listing |
basic-information | User profile and information forms |
π’ Organization Managementβ
Enterprise-grade organization features
Component | Description |
---|---|
create-organization | Organization creation workflow |
view-organization | Organization details and information |
list-organizations | Organization listing and management |
list-invites | Organization invitation management |
π¦ Product Managementβ
Comprehensive product lifecycle management
Component | Description |
---|---|
create-product | Product creation interface |
view-product | Detailed product information display |
list-products-table | Tabular product listing |
list-products-grid | Grid-based product display |
attribute-selection | Product attribute management |
π Order Managementβ
Complete order processing workflow
Component | Description |
---|---|
view-order | Order details and information |
list-order | Order listing and management |
list-order-table | Tabular order management |
β¨ Key Featuresβ
π¨ Design System Integrationβ
- Consistent styling across all components
- Customizable theme system
- Responsive design patterns
- Modern UI/UX best practices
π§ Developer Experienceβ
- TypeScript support throughout
- Comprehensive documentation
- Clear prop interfaces
- Intuitive component APIs
π Performanceβ
- Optimized for production use
- Lazy loading support
- Minimal bundle impact
- Efficient rendering patterns
π± Accessibilityβ
- Keyboard navigation support
- Screen reader compatibility
- Focus management
π Getting Startedβ
Component Installationβ
Each component is installed individually for maximum flexibility:
npm install @nodeblocks/frontend-navbar-block
npm install @nodeblocks/frontend-signin-block
Basic Usageβ
import {Navbar} from '@nodeblocks/frontend-navbar-block';
import {SignIn} from '@nodeblocks/frontend-signin-block';
function App() {
return (
<div>
<Navbar
leftContent={<img src="/logo.png" alt="Logo" />}
centerContent={
<nav>
<a href="/home">Home</a>
<a href="/products">Products</a>
</nav>
}
rightContent={
<button>Login</button>
}
/>
<SignIn
onSubmit={(formData) => console.log('Login:', formData)}
onChange={(setError, getValues, clearErrors) => {
const values = getValues();
if (!values.email) {
setError('email', {message: 'Email is required'});
}
}}
/>
</div>
);
}
π‘ Usage Examplesβ
npm install @nodeblocks/frontend-navbar-block
npm install @nodeblocks/frontend-signin-block
npm install @nodeblocks/frontend-list-products-grid-block
πͺ E-commerce Applicationβ
import {Footer} from '@nodeblocks/frontend-footer-block';
import {ListProductsGrid} from '@nodeblocks/frontend-list-products-grid-block';
import {Navbar} from '@nodeblocks/frontend-navbar-block';
export default function EcommerceApp() {
const products = [
{
title: 'Premium Headphones',
subtitle: 'High-quality audio',
imageUrl: '/headphones.jpg',
chips: [{label: 'New'}],
tags: [{icon: 'shopping_bag' as const, label: 'Electronics'}],
linkProps: {
href: '/products/1',
onNavigate: () => console.log('View product'),
},
},
];
return (
<div>
<Navbar
leftContent={<img src="/logo.png" alt="Store" />}
centerContent={
<nav>
<a href="/home">Home</a>
<a href="/products">Products</a>
</nav>
}
rightContent={<button>Cart (0)</button>}
/>
<main style={{display: 'flex', flexDirection: 'column', minHeight: '100vh', backgroundColor: 'white'}}>
<ListProductsGrid listProductsGridTitle="Featured Products" subtitle="Latest Collection">
<ListProductsGrid.Items>
{products.map(product => (
<ListProductsGrid.Items.GridCard key={product.title} {...product} />
))}
</ListProductsGrid.Items>
</ListProductsGrid>
<Footer
logoSrc="/logo.png"
copyright="Β© 2025 Nodeblocks. All rights reserved."
content={<div>Footer content</div>}
style={{marginTop: 'auto'}}
/>
</main>
</div>
);
}
π’ Enterprise Dashboardβ
npm install @nodeblocks/frontend-side-navigation-block
npm install @nodeblocks/frontend-list-users-block
npm install @nodeblocks/frontend-filter-search-panel-block
import {FilterSearchPanel} from '@nodeblocks/frontend-filter-search-panel-block';
import {ListUsers} from '@nodeblocks/frontend-list-users-block';
import {SideNavigation} from '@nodeblocks/frontend-side-navigation-block';
import {useState} from 'react';
export default function EcommerceApp() {
const [isMenuOpen, setIsMenuOpen] = useState(false);
return (
<div style={{display: 'flex', backgroundColor: 'white', height: '100vh', alignItems: 'start'}}>
<SideNavigation
isFloating={true}
isMenuOpen={isMenuOpen}
setIsMenuOpen={setIsMenuOpen}
links={[
{text: 'Dashboard', href: '/dashboard'},
{text: 'Users', href: '/users'},
{text: 'Settings', href: '/settings'},
]}
style={{
height: '100vh',
width: '200px',
}}
/>
<main style={{flex: 1, paddingLeft: '20px', paddingRight: '20px'}}>
<FilterSearchPanel
onSearch={query => console.log('Search:', query)}
filters={[
{
groupName: 'Status',
key: 'status',
label: 'Status',
},
{
groupName: 'Role',
key: 'role',
label: 'Role',
},
]}
/>
<ListUsers
listUsersTitle="Users"
labels={{
emptyStateMessage: 'No users found',
headerRow: {
createdAt: 'Created At',
name: 'Name',
status: 'Status',
},
cellData: {
statusInUse: 'In Use',
statusNotInUse: 'Not In Use',
},
}}
data={[
{
createdAt: '2021-01-01',
name: 'John Doe',
status: 'In Use',
id: '1',
},
{
createdAt: '2021-01-01',
name: 'Jane Doe',
status: 'Not In Use',
id: '2',
},
]}
onSelect={user => console.log('Selected user:', user)}
/>
</main>
</div>
);
}
π Integration with Domain Appsβ
Frontend Blocks can work seamlessly with Nodeblocks Domain Apps to provide complete application solutions:
- Blocks provide: Visual components and user interfaces
- Domain Apps provide: Business logic and state management
- Together they create: Complete, production-ready applications
π Benefitsβ
β‘ Speedβ
- Reduce development time by 70%
- Skip the tedious UI development
- Focus on business logic
π¨ Qualityβ
- Production-tested components
- Consistent design language
- Professional appearance
π§ Flexibilityβ
- Mix and match components
- Customize to your needs
- Extend with your own blocks
π° Cost Effectiveβ
- Lower development costs
- Faster time to market
- Reduced maintenance overhead
Built with β€οΈ by the Nodeblocks team at Basal