Skip to component content

A focused space for Moo UI layout examples.

App

Start with the application shell when a route owns navigation and viewport behavior. App composes a Sidebar navigation surface with a Page surface; choose the Sidebar variant to set their spatial relationship.

<div class="wrapper" data-layout="app" data-shell-mode="viewport"
  data-slot="sidebar-wrapper" data-sidebar-key="app-shell"
  data-sidebar-state="expanded">
  <aside id="app-sidebar" class="sidebar offcanvas-lg offcanvas-start"
      tabindex="-1" data-slot="sidebar" data-side="left"
      data-variant="floating" data-collapsible="icon"
      aria-label="Sidebar">
    <div class="sidebar-inner" data-slot="sidebar-inner">
      <div class="sidebar-header" data-slot="sidebar-header">Sidebar navigation</div>
      <div class="sidebar-content" data-slot="sidebar-content">
        <a class="sidebar-menu-button" href="#"
                  data-slot="sidebar-menu-button">
          Overview
        </a>
      </div>
    </div>
    <button class="sidebar-rail" type="button"
          data-sidebar-rail aria-label="Toggle sidebar" tabindex="-1">
    </button>
  </aside>
  <div data-slot="page">
    <header>
      <div class="container-fluid">
        <button class="sidebar-trigger" type="button"
                  data-sidebar-trigger data-bs-target="#app-sidebar"
                  aria-controls="app-sidebar" aria-expanded="true">
          Toggle sidebar
        </button>
      </div>
    </header>
    <main id="main-content" tabindex="-1">
      <div class="container-fluid">Page content</div>
    </main>
  </div>
</div>

Sidebar is the App's navigation surface. Its variant changes the surface geometry without changing the Sidebar's regions, controls, or Bootstrap behavior.

Sidebar variants supported by the App shell.
Variant How it behaves
sidebar Keeps the navigation surface attached to the App edge; this is the default.
floating Detaches the navigation surface with a border, radius, and shadow.
inset Keeps the Sidebar at the edge and gives the Page an inset, elevated surface.

Page

Page is the content surface inside an App. It is the direct content sibling of Sidebar and owns the screen's content flow and scrolling. It can contain semantic header, main, and footer regions while keeping the screen content on one shared rail.

The Page wrapper uses data-slot="page" as a structural hook so App and Catalog can coordinate layout and scroll behavior; it is not a styling requirement.

The .page class is optional. Semantic regions and the Page's position as the App's content sibling define the contract; add a class only when a styling hook is useful.

Page regions and semantic contract.
Key point Contract
header Optional; holds page-level context or actions.
main Required; contains the primary screen content.
footer Optional; holds trailing actions or status.

Breakpoints

Breakpoints are the mobile-first width thresholds where a Moo UI layout can change its composition. Use the class infix to apply a grid, display, or spacing change from that minimum width upward.

Start with the smallest useful layout, then add a breakpoint only when the content needs a different arrangement.

Bootstrap breakpoints used by Moo UI responsive layout utilities.
Breakpoint Class infix Dimensions
Extra small None <576px
Small sm ≥576px
Medium md ≥768px
Large lg ≥992px
Extra large xl ≥1200px
Extra extra large xxl ≥1400px

Containers

Containers keep layout content on a readable rail and apply a responsive max-width at each breakpoint. Use the fluid variant when a surface should span the available viewport width.

Bootstrap container widths used by Moo UI responsive layout utilities.
Container Extra small
<576px
Small
≥576px
Medium
≥768px
Large
≥992px
X-Large
≥1200px
XX-Large
≥1400px
.container 100% 540px 720px 960px 1140px 1320px
.container-sm 100% 540px 720px 960px 1140px 1320px
.container-md 100% 100% 720px 960px 1140px 1320px
.container-lg 100% 100% 100% 960px 1140px 1320px
.container-xl 100% 100% 100% 100% 1140px 1320px
.container-xxl 100% 100% 100% 100% 100% 1320px
.container-fluid 100% 100% 100% 100% 100% 100%

Grid

The Bootstrap grid arranges content into responsive columns. It uses a twelve-column row, breakpoint-specific column classes, and gutters so a layout can stack on small screens and spread across wider ones.

Column 1
Column 2
Column 3
<div class="container py-4">
  <div class="row row-cols-1 row-cols-md-3 g-3">
    <div class="col">Column 1</div>
    <div class="col">Column 2</div>
    <div class="col">Column 3</div>
  </div>
</div>

Grid options

The table summarizes the breakpoint widths, class prefixes, and column features available in the Bootstrap grid.

Bootstrap grid defaults used by Moo UI responsive layout utilities.
Grid option xs
<576px
sm
≥576px
md
≥768px
lg
≥992px
xl
≥1200px
xxl
≥1400px
Container max-width None (auto) 540px 720px 960px 1140px 1320px
Class prefix .col- .col-sm- .col-md- .col-lg- .col-xl- .col-xxl-
# of columns 12
Gutter width 1.5rem (.75rem on left and right)
Custom gutters Yes
Nestable Yes
Column ordering Yes

Columns

Columns divide a Bootstrap row into equal-width areas. Use .row for each line and .col to share the available width evenly.

1 of 2
2 of 2
1 of 3
2 of 3
3 of 3
<div class="container text-center">
  <div class="row">
    <div class="col">1 of 2</div>
    <div class="col">2 of 2</div>
  </div>
  <div class="row">
    <div class="col">1 of 3</div>
    <div class="col">2 of 3</div>
    <div class="col">3 of 3</div>
  </div>
</div>

Gutters

Gutters are the space between columns and rows. Use gx-* for horizontal gutters, gy-* for vertical gutters, or g-0 to remove gutters altogether.

Custom column padding
Custom column padding
<div class="container px-4 text-center">
  <div class="row gx-5">
    <div class="col">
      <div class="p-3">Custom column padding</div>
    </div>
    <div class="col">
      <div class="p-3">Custom column padding</div>
    </div>
  </div>
</div>

See the Bootstrap gutters documentation for responsive gutter variants and the complete utility API.

Utilities

Bootstrap utilities are small, composable helpers for display, flex, spacing, sizing, and positioning. Add a responsive infix such as d-md-flex or mt-lg-4 when a utility should change at a breakpoint.

Compose utilities directly on the element they affect and keep the smallest useful set of classes. Start with the base utility, then add a breakpoint variant only when the layout needs to change.

See the Bootstrap utilities documentation for the complete API.

Z-index

The z-index property controls the stacking order of overlapping surfaces. Moo UI follows Bootstrap's reserved scale: dropdowns start at 1000, fixed surfaces at 1030, offcanvas backdrops at 1040, offcanvas surfaces at 1045, modal backdrops at 1050, modals at 1055, popovers at 1070, tooltips at 1080, and toasts at 1090.

Use low local values such as 1, 2, or 3 for small sibling overlaps. Avoid arbitrary high values so shared overlays keep their predictable order.

Bootstrap's reserved stacking scale for Moo UI overlays.
Bootstrap token Value
$zindex-dropdown 1000
$zindex-sticky 1020
$zindex-fixed 1030
$zindex-offcanvas-backdrop 1040
$zindex-offcanvas 1045
$zindex-modal-backdrop 1050
$zindex-modal 1055
$zindex-popover 1070
$zindex-tooltip 1080
$zindex-toast 1090

See the Bootstrap z-index documentation for the complete API.

CSS Grid

Bootstrap's CSS Grid utilities use native CSS Grid through .grid and .g-col-* classes. Unlike the Flexbox-based .row/.col grid, CSS Grid places items on a two-dimensional track system and lets each item span an explicit number of columns.

Use .g-col-6 for half-width tracks, then add a responsive span such as .g-col-md-4 when the layout should change at a breakpoint.

g-col-6
g-col-6
g-col-6 g-col-md-4
g-col-6 g-col-md-8
<div class="grid gap-3">
  <div class="g-col-6">g-col-6</div>
  <div class="g-col-6">g-col-6</div>
  <div class="g-col-6 g-col-md-4">g-col-6 g-col-md-4</div>
  <div class="g-col-6 g-col-md-8">g-col-6 g-col-md-8</div>
</div>

See the Bootstrap CSS Grid documentation for custom tracks, nesting, and the complete utility API.

Settings

Theme
Choose how Moo UI looks on this device.
Sidebar
Choose how the sidebar sits on the page.
Theme Builder
Tune catalog tokens and chart colors for this browser.
Base color
Theme color
Chart color
Heading font
Body font
Radius
Direction
Choose the reading direction. RTL flips the layout live.
Reset

Restore the default appearance.