Skip to content

Page layout

Containers, section rhythm, display type and grids, the frame every page is built in.

Section head and split

Close in four days

Month-end without the spreadsheet relay.

Reconciliations run every night, so the last week of the month is review, not data entry.

Every account, matched overnight

Bank feeds, card processors and payroll arrive at 02:00 and are matched against the ledger before anyone logs in.

Columns

01: Connect

Link banks, cards and payroll in ten minutes.

02: Match

Rules learn from every approval you make.

03: Close

Export an audit trail your accountant signs off.

Installation

Everything ships in one stylesheet. There is nothing to import per component.

<link rel="stylesheet" href="https://mian.ro/dist/mian.css">

Prefer to own the files? /r/layout.json is a registry item with this component's CSS and example markup, ready to copy into your project with any tool that reads the open registry-item format.

Class reference

Class / attributeDescription
mn-siteOn <body>: a full-height column so the footer sits at the bottom.
mn-skipA “Skip to content” link, visible on focus. Point it at <main id="main">.
mn-containerCentred content width with side gutters. mn-container-narrow (46rem) · mn-container-wide (88rem). --mn-container sets it.
mn-sectionA band of the page with vertical rhythm (--mn-section-space) and a container for queries. mn-section-sm · mn-section-flush (no top padding) · mn-section-muted · mn-section-bordered.
mn-section-headEyebrow, title and intro above a section. mn-section-head-center · mn-section-head-split (title left, intro right).
mn-eyebrowA short label above a title. Use it on a few sections, not all.
mn-display · mn-title · mn-subtitleFluid display type for heroes, section titles and sub-titles, in the noodle’s heading font.
mn-introIntro paragraph, fluid size, 38em measure.
mn-cols mn-cols-2|3|4Equal columns that collapse on narrow sections.
mn-splitTwo columns (text + media). mn-split-start / mn-split-end make one side wider, mn-split-reverse swaps them, mn-split-top aligns to the top.
mn-gridAuto-filling grid; --mn-min sets the smallest column (default 16rem).
--mn-container · --mn-gutter · --mn-section-spacePage-level tokens. Override on :root or any noodle.

Accessibility

  • Use one <h1> per page (usually the hero’s mn-display) and keep heading levels in order: mn-title is for <h2>.
  • Landmarks: <header>, <main id="main">, <footer>; name repeated <nav>s with aria-label.
  • Put mn-skip as the first element of <body>.
  • Layout answers to the section’s own width (container queries), so it works the same in a page, a sidebar or a preview.
Choose a noodle

Minimal

Flat

Pixel

Linear

Thin

Glass

Textured

Bold

Elegant

Rounded

On this page