Skip to content
github

Sandbox Layout

The SandboxLayout component is the outer scaffold used by most full-page screens. It provides a stable grid shell with an optional left navigation panel, a fixed header, and a scrollable main content area. It’s a set of compound layout primitives — you compose the pieces you need.

Because it establishes full-viewport structure (min-height: 100vh, a fixed header, sticky panels), it’s documented here with its anatomy and code rather than an inline live preview.

import { SandboxLayout } from "@harnessio/ui/components";
<SandboxLayout.Root>
{/* Optional left navigation column (sticky, full height) */}
<SandboxLayout.LeftPanel>{/* nav */}</SandboxLayout.LeftPanel>
{/* Optional secondary nav column */}
<SandboxLayout.LeftSubPanel>{/* sub-nav */}</SandboxLayout.LeftSubPanel>
<SandboxLayout.Main>
<SandboxLayout.Header>{/* breadcrumbs / top bar */}</SandboxLayout.Header>
<SandboxLayout.SubHeader>{/* tabs */}</SandboxLayout.SubHeader>
<SandboxLayout.Content maxWidth="5xl">
{/* page content */}
</SandboxLayout.Content>
</SandboxLayout.Main>
</SandboxLayout.Root>;

Variations

Columns

Use SandboxLayout.Columns / SandboxLayout.Column to split content into a grid. columnWidths accepts any CSS grid-template-columns value (default 'repeat(2, 1fr)').

<SandboxLayout.Columns columnWidths="1fr 320px">
<SandboxLayout.Column>{/* primary */}</SandboxLayout.Column>
<SandboxLayout.Column>{/* sidebar */}</SandboxLayout.Column>
</SandboxLayout.Columns>

Installation

import { SandboxLayout } from "@harnessio/ui/components";
<SandboxLayout.Root>
<SandboxLayout.Main>
<SandboxLayout.Content maxWidth="5xl">
{/* page content */}
</SandboxLayout.Content>
</SandboxLayout.Main>
</SandboxLayout.Root>;