Skip to main content

🧩 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?​

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

ComponentDescription
navbarMain navigation bar with responsive design
side-navigationCollapsible sidebar navigation
breadcrumbNavigation breadcrumbs for page hierarchy
footerProfessional footer component
heroEye-catching hero sections
error-blockBeautiful error message displays
faqFrequently asked questions section
chat-conversationReal-time chat interface
chat-conversation-listChat conversation management
settingsApplication settings interface
filter-search-panelAdvanced search and filtering
filter-listFilterable list components
search-by-chipsTag-based search functionality
meritsAchievement and merit displays
how-to-useUser guide and instruction components

πŸ‘₯ User Management​

Complete user authentication and management suite

ComponentDescription
sign-inUser authentication and login
sign-upNew user registration
reset-passwordPassword recovery functionality
list-usersUser management and listing
basic-informationUser profile and information forms

🏒 Organization Management​

Enterprise-grade organization features

ComponentDescription
create-organizationOrganization creation workflow
view-organizationOrganization details and information
list-organizationsOrganization listing and management
list-invitesOrganization invitation management

πŸ“¦ Product Management​

Comprehensive product lifecycle management

ComponentDescription
create-productProduct creation interface
view-productDetailed product information display
list-products-tableTabular product listing
list-products-gridGrid-based product display
attribute-selectionProduct attribute management

πŸ›’ Order Management​

Complete order processing workflow

ComponentDescription
view-orderOrder details and information
list-orderOrder listing and management
list-order-tableTabular 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