LBO Modular Scale Grid System

TheLBO Gridis a CSS Grid‑based layout system designed to provide consistent, modular track widths for your application. Tracks are derived from abase content widthand ascale ratio, ensuring that all layout widths remain mathematically aligned.

full-pad

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quo amet inventore repellat soluta ducimus fugiat a numquam blanditiis, cupiditate nisi saepe voluptas fugit similique necessitatibus mollitia deleniti doloremque officia impedit qui atque, iusto assumenda. Ratione laboriosam aliquam blanditiis? Reprehenderit ea ad aperiam corrupti dignissimos ipsa ut autem consequuntur optio eligendi.

full

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Quo amet inventore repellat soluta ducimus fugiat a numquam blanditiis, cupiditate nisi saepe voluptas fugit similique necessitatibus mollitia deleniti doloremque officia impedit qui atque, iusto assumenda. Ratione laboriosam aliquam blanditiis? Reprehenderit ea ad aperiam corrupti dignissimos ipsa ut autem consequuntur optio eligendi.

xwide
wide
pop
(default) cont
inset
narrow
tiny

How it Works

Core Properties

You configure the grid system usingCSS custom properties:

All other widths are derived automatically:

Scales

You can opt into different ratios using thedata-scaleattribute:

<div class="lbo-layout" data-scale="golden"> … </div>

Available scales:

Utility Classes

Each track has a matching utility class to place children:

Defaults

If no utility class is assigned, elements placed directly inside.lbo-layoutwill automatically use thecontenttrack:

.lbo-layout > * {
  grid-column: lbo-cont;
}

Examples

<div class="lbo-layout" data-scale="golden">
  <header class="lbo-full-pad">Header</header>
  <section class="lbo-pop">Popout content</section>
  <main>Default content (no class) auto-placed</main>
  <aside class="lbo-inset">Inset sidebar</aside>
  <footer class="lbo-full">Footer</footer>
</div>

What to Customize

  1. Content width(--lbo-w-cont) — set the maximum reading width for body text. (Recommended start:~840–960pxfor text-heavy,~1060pxfor spacious marketing layouts.)
  2. Scale(--lbo-scale) — pick the geometric ratio that defines all relationships. Golden ratio gives balanced steps; Major Third (1.25) is a solid default.
  3. Padding(--lbo-sz-pad-min) — the minimum side gutter, adjusts with breakpoints.

How Subgrid Works

Asubgridcannot create grid tracks on its own — it must inherit them from a parentgrid. In the LBO system, that parent is always.lbo-layout(or.lbo-full-width).

+----------------------------------------------------+
| .lbo-layout  ← master grid container               |
|                                                    |
|   [lbo-full-start] ... [lbo-full-end]              |
|                                                    |
|   +--------------------------------------------+   |
|   | .lbo-subgrid (display:grid; subgrid cols)  |   |
|   |                                            |   |
|   |  +------------------+   +----------------+ |   |
|   |  | .branding        |   | .nav           | |   |
|   |  | .lbo-cont-start  |   | .lbo-cont-end  | |   |
|   |  +------------------+   +----------------+ |   |
|   +--------------------------------------------+   |
|                                                    |
+----------------------------------------------------+
  

- The outer.lbo-layoutdefines named grid lines like[lbo-cont-start]/[lbo-cont-end].

- The inner.lbo-subgridinherits those lines from its parent and re‑exposes them to its children.

- Children inside.lbo-subgridcan now use.lbo-cont,.lbo-pop,.lbo-cont-start, etc. just like direct children of.lbo-layout.