Skip to main content
Version: 1.0.3

ThreeColumnLayout

Overview

The Three Column SideBar Layout component provides a complete layout solution with a header, left sidebar, scrollable main content, scrollable right content. It's designed to be highly configurable with support for responsive design, animations, and various layout variants. This component is perfect for building social sites.

Preview

Three Column Layout

A three-column layout is one of the most powerful and flexible UI patterns in modern web applications. It separates navigation, content, and supporting information to create clarity and balance.

1. Structure Overview

Left Column

This area is designed for navigation — menus, categories, profile shortcuts, or filters.

Main Column

The main workspace for your app. This contains feeds, forms, posts, dashboards, and important data.

Right Column

Perfect for enhancements such as trends, widgets, analytics, suggestions, and notifications.

2. Best Use Cases

Social media platforms (Twitter / LinkedIn)
Admin & analytics dashboards
News and blog platforms
Project management tools
Data-intensive applications
CRM & content management systems

3. Responsive Behavior

On large screens, all three columns appear clearly. As the device gets smaller, the layout smoothly adapts to focus on the main content.

Desktop

All 3 columns visible

Tablet

Sidebars collapse

Mobile

Only main content + drawer or bottom nav

4. Visual Preview

Left Sidebar

(Navigation)

Main Content

(Primary Area)

Right Sidebar

(Extras)

5. Why Developers Love This Pattern

  • Highly organized layout
  • Great user experience
  • Scales for complex features
  • Easy to maintain

6. Pro Developer Tip

Keep only the main column scrollable while the header, footer, and sidebars remain fixed. This improves both performance and user experience — especially on mobile.

© 2025 My Application. All rights reserved.

Installation

ignix add component threecolumnsidebarlayout

Usage

  import { ThreeColumnSidebarLayout } from "@src/components/templates/threecolumnsidebarlayout";

function ThreeColumnSidebarLayout() {
return (
<ThreeColumnSidebarLayout
theme="modern"
mobileBreakpoint="md"
sidebarLayoutMode="OVERLAY_ONLY"
header={<div>Header Content</div>}
sidebar={<div>Sidebar Content</div>}
rightSidebar={<div>Right Content</div>}
>
<div>Main Content</div>
</ThreeColumnSidebarLayout>
);
}

Props

PropTypeDefaultDescription
headerReact.ReactNodeundefinedContent for the header section
sidebarReact.ReactNodeundefinedContent for the sidebar section
rightSidebarReact.ReactNodeundefinedContent for the sidebar section
childrenReact.ReactNodeundefinedMain content area
variant"light" | "dark" | "corporate" | "custom" | "glass""modern""ocean"
mobileBreakpoint"sm" | "md" | "lg""md"Breakpoint for mobile behavior
sidebarLayoutMode"OVERLAY_ONLY"| "BOTTOM_DOCKED"| "OVERLAY_WITH_PANE""OVERLAY_ONLY"Sidebar Layout for mobile device
stickyHeaderbooleantrueWhether header should be sticky
overlaybooleantrueWhether to show overlay on mobile
enableGestures`bool
stickyHeaderbooleantrueWhether header should be sticky
overlaybooleantrueWhether to show overlay on mobile
enableGesturesbooleantrueWhether to enable touch gestures
sidebarCollapsedWidthnumber80Collapsed width in pixels
headerHeightnumber64Header height in pixels
footerHeightnumber64Footer height in pixels
transitionDurationnumber0.3Animation duration in seconds
sidebarCollapsedbooleanfalseWhether sidebar is initially collapsed
onSidebarToggle(isOpen: boolean) => voidundefinedCallback for sidebar toggle
zIndexobject{ header: 10, sidebar: 90, footer: 50, overlay: 80 }Z-index values for each layer
classNamestringundefinedAdditional CSS classes