Landing auth

The way in, as the public page draws it: the sign-in panel in three steps, the two doors of Get started in the same card, the dialog that holds either over the landing, and the page that holds them everywhere else.

Organism .lp-auth .lp-start .lp-modal .lp-gate 0 grey pages step: choose / email / sent. host: dialog / page added 2026-09-27 (P17)

What it is

The founder found the sign-in screen dull and wordy and asked for the action in front: Google first, with its mark, email as a second button that leads to the field, in a dialog rather than a separate page, and the explanations moved to the privacy policy and the terms (P17). The panel is node 1.6 in three steps, choose, email and sent; the start panel is node 1.2, two doors drawn identically (D2) with a picture on each.

One card, two hosts. On the landing a plain click on any link to sign in or to get started opens a native <dialog> over the page, which holds still under it. The links stay links, so a new tab or a page with no script reaches /sign-in and /path-choice, where the same card stands on .lp-gate: the lockup above, a pale wash and two dotted orbits behind. Those are sign-in and path choice in this repository.

Pinned light like the page it opens over, and scoped to .landing: the panel is light in both themes.

Live, pinned light

The page form: the gate, on step one

Tendd

Sign in

New to Tendd? Either way starts your account.

The Google mark is not on this stand. It is Google's own file, public/auth/google.svg in the product, and this repository holds no copy of it, so the white disc stands empty here. The button exists only where the provider does (P11).

Step two, the field, and step three, sent

Sign in

We'll email you a link. There is no password.

Check your email

A link is on its way to emma@example.com.

Give it a minute, and look in your spam folder.

Get started, the two doors (node 1.2)

Step 1 of 3

How do you want to start?

Adding them yourself is free and unlimited. The first bank scan is free too, and seeing every name it finds is Tendd Pro.

Do this later

Already have an account? Sign in

Behaviour on width

One container point, 40rem. Below it the dialog becomes a sheet that rises from the foot, the card loses width and padding, the orbit tightens, the two doors stack and their pictures scale to .78. The panel's height is measured by the component and written as a transition, so a taller step opens the card and a shorter one closes it; on this stand each step is drawn at its own height.

Limits

The dialog is not a route. A modal that owns a URL costs the root layout a parallel slot and gives a sign-in form a history entry nobody asked for (P17, rejected). Guards, expired links and the doors of node 1.2 land on the page form because they arrive by address.

The keyframes are this file's, because the orbit runs on its own clock, which a transition cannot. Under reduced motion base.css ends each at once: the tiles stand still at their declared places and every arrival is already arrived.

No divider reading "or" between the two buttons: no line owns it, and two stacked buttons of different weight already read as a choice (P17, rejected).

Where it comes from

Drawn by design/system/components/landing-auth.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 inside the dialog, and on sign-in and path choice as the gate. 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 organism group.