Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/buildermethods/design-os/llms.txt

Use this file to discover all available pages before exploring further.

/design-shell

Designs the application shell - the persistent navigation and layout that wraps all sections of your product.

Syntax

/design-shell
```bash

## What It Does

Creates a complete application shell design including:
- Navigation structure
- Layout pattern (sidebar, top nav, or minimal)
- User menu
- Responsive behavior
- Fully styled React components

## Prerequisites

- Requires `/product/product-overview.md`
- Requires `/product/product-roadmap.md`
- Optional: `/product/design-system/colors.json` and `typography.json`

<Warning>
If design tokens aren't defined, the shell will use default styling. Run `/design-tokens` first for consistent branding.
</Warning>

## Outputs

Creates:
- `/product/shell/spec.md` - Shell specification
- `src/shell/components/AppShell.tsx` - Main shell wrapper
- `src/shell/components/MainNav.tsx` - Navigation component
- `src/shell/components/UserMenu.tsx` - User menu component
- `src/shell/components/index.ts` - Component exports
- `src/shell/ShellPreview.tsx` - Preview wrapper

## Workflow

<Steps>
  <Step title="Analyze Sections">
    Reads your roadmap to understand the navigation structure.
  </Step>
  
  <Step title="Choose Layout Pattern">
    Asks which pattern fits your product:
    - Sidebar Navigation
    - Top Navigation
    - Minimal Header
  </Step>
  
  <Step title="Gather Details">
    Asks about:
    - User menu placement
    - Mobile behavior
    - Additional navigation items (Settings, Help, etc.)
    - Default/home view
  </Step>
  
  <Step title="Present Specification">
    Shows the complete shell design for confirmation.
  </Step>
  
  <Step title="Create Components">
    Generates all shell components and the specification file.
  </Step>
</Steps>

## Layout Patterns

### Sidebar Navigation

**Best for:**
- Apps with many sections
- Dashboard-style tools
- Admin panels

**Features:**
- Vertical nav on the left
- Content area on the right
- Collapsible on mobile

### Top Navigation

**Best for:**
- Simpler apps
- Marketing-style products
- Fewer sections (3-5)

**Features:**
- Horizontal nav at top
- Content below
- Hamburger menu on mobile

### Minimal Header

**Best for:**
- Single-purpose tools
- Wizard-style flows
- Focused experiences

**Features:**
- Just logo + user menu
- Sections accessed differently
- Maximum content space

## Shell Component Structure

### AppShell.tsx

Main wrapper component:

```typescript
interface AppShellProps {
  children: React.ReactNode
  navigationItems: Array<{
    label: string
    href: string
    isActive?: boolean
  }>
  user?: {
    name: string
    avatarUrl?: string
  }
  onNavigate?: (href: string) => void
  onLogout?: () => void
}
```bash

### MainNav.tsx

Navigation component based on chosen pattern.

### UserMenu.tsx

User menu with avatar and dropdown.

## Shell Features

<Accordion title="Built-in Features">
- Props-based and portable
- Design tokens applied (if defined)
- Light and dark mode support
- Mobile responsive
- Uses Tailwind CSS for styling
- Uses lucide-react for icons
- Navigation for all roadmap sections
</Accordion>

## Example Session

```bash
User: /design-shell

Assistant: I'm designing the shell for **InvoiceHub**. Based on your 
roadmap, you have 4 sections:

1. **Dashboard**
2. **Invoices**
3. **Clients**
4. **Settings**

Let's decide on the shell layout. Common patterns:

**A. Sidebar Navigation** - Best for dashboard-style apps
**B. Top Navigation** - Best for simpler apps with fewer sections
**C. Minimal Header** - Best for single-purpose tools

Which pattern fits **InvoiceHub** best?

User: Sidebar navigation

Assistant: Where should the user menu appear?

User: Bottom of sidebar

Assistant: Here's the shell design:

**Layout:** Sidebar Navigation
**Navigation Structure:**
- Dashboard → Home view
- Invoices → Invoice management
- Clients → Client management
- Settings → Configuration

**User Menu:** Bottom of sidebar with avatar and logout

**Responsive:** Sidebar collapses to hamburger on mobile

Does this match what you had in mind?

User: Yes

Assistant: I've designed the application shell for **InvoiceHub**.

**Created files:**
- `/product/shell/spec.md`
- `src/shell/components/AppShell.tsx`
- `src/shell/components/MainNav.tsx`
- `src/shell/components/UserMenu.tsx`
- `src/shell/components/index.ts`
- `src/shell/ShellPreview.tsx`

**Important:** Restart your dev server to see the changes.
```bash

## Shell Specification Format

The generated `spec.md`:

```markdown
# Application Shell Specification

## Overview
[Description of shell design and purpose]

## Navigation Structure
- [Nav Item 1] → [Section 1]
- [Nav Item 2] → [Section 2]

## User Menu
[Location and contents description]

## Layout Pattern
[Description of sidebar/top nav/etc.]

## Responsive Behavior
- **Desktop:** [Behavior]
- **Tablet:** [Behavior]
- **Mobile:** [Behavior]

## Design Notes
[Additional design decisions]
```bash

## How Shell Integrates

When you create section screen designs:

1. Screen designs render inside the shell content area
2. The shell provides navigation context
3. Preview shows full app experience
4. Exported components include both shell and sections

<Note>
The shell is a screen design - it demonstrates navigation and layout. It's not authentication or routing logic.
</Note>

## Important Notes

<Warning>
- Restart dev server after creating shell components
- Shell applies design tokens when available
- Section screen designs should NOT include navigation (shell handles it)
- Shell is exported as portable, props-based components
</Warning>

## Next Steps

After designing the shell:

1. Run `/shape-section` to define section specifications
2. Run `/design-screen` - sections will render inside the shell
3. All screen designs will show in full app context

Build docs developers (and LLMs) love