Landing type

The public page's voice at display size: the dotted eyebrow, the display heading and its lede, a card's title and body, the tag, the badge, the text link, the line icon, and the heading whose words rise one after another.

Atoms .lp-eyebrow .lp-display .lp-lede and six more 0 grey pages roles, not sizes added 2026-09-26 with Light 2 (P16)

What it is

Why not the app's type roles. The app sets a heading at --type-head and never larger, because inside a task the number is the biggest thing on screen. This page argues, and its headings are up to seven times that, scaled with the width through clamp(). So these roles are this page's alone, one file of small atoms rather than nine files of one rule each, and nothing in .app reads them.

One file, registered as one component. Every rule in it is a type role or the one glyph the roles carry (.lp-ico); none contains another. It is filed as a single row in the atom group, the way destination icon is one row for four masks.

Live, pinned light

How it works

Three steps, a few minutes. You are in control the whole way.

Everything in one place

Every subscription and recurring charge, pulled together and grouped by category. One calm list instead of a dozen forgotten logins.

Example, not your data Active Trial Cancelled

Read what we access

The rise is not on this stand, on purpose. The words are hidden only when the boot script has marked the page lp-js and motion is allowed (landing-shell.css). This specimen carries no script, which is the page's own no-script state: every word stands where it lands.

Behaviour on width

Fluid, with no point of its own: every size is a clamp() of the width. One container step, below 40rem, where a badge shrinks to .6875rem so a row of the example list keeps its figure.

Limits

Never inside .app. The app's biggest thing is the monthly total (design principle 2); a display heading beside it would be two headlines. The locked block took the eyebrow's look on 2026-09-29 and wrote it into locked-list.css at the app's own sizes (P34, "the landing's display type size" rejected), rather than reading this file.

The badges are the one place the landing shows status colour, and they stay the role pairs the app's tones read: attention for a trial, the failure wash for cancelled, never red (D-Concept).

Where it comes from

Drawn by design/system/components/landing-type.css through ../system/index.css, the same entry point a product screen loads, and synced byte for byte from the product on 2026-09-30. It stands on the coloured landing in every block and in the sign-in panel. The grey wireframes/index.html is frozen at the structure before Light 2 and does not carry it: a component that arrived with a founder's decision after the grey closed, like the brand mark before it. Registered in docs/inventory.md and in _nav.js, in the atom group.