@lessly/landing-ui
v0.10.1
Published
Lepsto landing UI — reference library for the landing's components, and its catalog
Readme
@lessly/landing-ui
The reference library for Lepsto's public site UI — the landing, the docs, and every pre-login surface — and its catalog.
The counterpart of lepsto-ui /
ui.lepsto.com, on the other side of one boundary: everything before
the login lives here, everything behind it lives there.
Why
The components our public sites are built from are only visible inside those sites — there is nowhere to see them as a list, compare states, or point at one. The catalog is that place, and it doubles as the source of issues: spot a defect, file an issue linking the exact story, someone fixes it in the site's own repository.
How it is filled
The catalog is filled one building block at a time, sourced only from current production, one block per issue. A block is a single component, taken as it is in production today.
What this repository no longer does: transfer pages wholesale, keep HTML snapshots of production routes, or copy the landing's React layer across in one move. Nothing enters from memory, from a design file, or from an older copy — only from the surface as it ships now.
What the catalog holds today: the Button primitive, the layout grid, the type scale and
its typefaces, plus a triage area where a production surface is parked before anyone decides
what to make of it. More primitives arrive one issue at a time.
Quick start
pnpm install
pnpm storybook # catalog on http://localhost:6008Relationship to production
The direction is one-way — reference → production, through an issue. Spot a defect in a story,
file an issue in the repository of the surface that is wrong; nobody copies code back here. Full
sync rule in AGENTS.md.
Scripts
| Script | What it does |
|---|---|
| pnpm storybook | catalog on :6008 |
| pnpm build-storybook | static catalog → storybook-static/ |
| pnpm build | package build (tsup) → dist/ |
| pnpm lint / type-check / test | the local gate, same as CI |
| pnpm changeset | record what a pull request changed for a reader of the catalog |
| pnpm release:version | fold pending changesets into CHANGELOG.md and date the heading |
| pnpm release:publish | publish to npm (CI runs this; you should not need it locally) |
The catalog opens on the Changelog page, pinned first in the sidebar: it renders the root
CHANGELOG.md, which changesets write from those per-PR notes — not from git history.
Brand asset sources
The three SVGs in .storybook/public/logos/ are byte-for-byte copies of the
approved design-system logos.
The catalog's favicon.svg is an identical copy of lepsto-symbol-brand.svg.
Its og.png is a 1200 × 630 export of the owner-supplied
OG-Lepsto-landing.png (1280 × 720).
The source is centre-cropped to 1280 × 672 (24px off the top and bottom), then
uniformly scaled to 1200 × 630. The text, logo and artwork are not redrawn.
The export uses browser Canvas: getImageData(0, 24, 1280, 672) copies the crop
without changing its pixels; drawImage then scales it to 1200 × 630 with
imageSmoothingQuality = 'high'. The original source is retained unchanged.
Retired Lessly artwork remains in Git history.
SiteHeader loads /logos/lepsto-lockup-h-on-light.svg and
/logos/lepsto-lockup-h-on-dark.svg. Consuming sites must serve these files from
their public directory: this package publishes code in dist/, not the catalog's
static assets. The sidebar uses the light-surface lockup; the header selects the
appropriate lockup for its surface, including a dark hero in the light theme.
The shared favicon/app-icon export set lives in design-system. This catalog uses the approved SVG symbol directly and does not require raster app icons. No separate canonical icon set is maintained here.
Brand names and links
Current catalog copy uses Lepsto. The package remains @lessly/landing-ui;
renaming its npm scope is a separate migration. Inspector event and DOM identifiers
also retain their existing names. Dated source audits, commit references and
historical changelog entries keep their original provenance.
Public links and the support address follow
lepsto-landing's site copy.
The landing, docs, status and UI catalog URLs were checked on 22 September 2026.
The support address is source-verified; email delivery was not tested.
The terminal illustration's generated hostnames follow the
deployment domain documentation.
Publishing
The catalog ships as @lessly/landing-ui on the public npm registry, so a site consumes
the component rather than a copy of it. Merging the "Release: version packages" pull request
publishes and tags; pushing a v<version> tag is the manual fallback. Details and the
constraints behind them are in AGENTS.md.
