Utilities

A small, finite set of single-purpose helpers for accessibility, layout, and typography needs that recur but don't belong to a component. Porchlight is not utility-first: each utility earns its place by serving a recurring need.

.u-sr-only and .u-focusable-sr-only

Hide content from sighted users while keeping it for assistive tech. Use .u-sr-only when the element should stay hidden on focus, and .u-focusable-sr-only for skip links that reveal themselves.

Focusable skip target

.u-truncate

One-line truncation with an ellipsis. Use for table cells, breadcrumbs, file names.

a-very-long-account-name-that-should-truncate-with-an-ellipsis.webp

.u-min-0 and .u-wrap-anywhere

Helpers for flex/grid truncation and very long generated tokens.

Fixed label a-flex-child-that-can-shrink-and-truncate-cleanly
request_01JZ8Y7Q3Y1QYJH9D8A2WMV6YV_extremely_long_generated_identifier

.u-flow

Vertical rhythm for a prose block: space between children, not before/after.

First paragraph: no top margin.

Second paragraph: spaced from the first via the sibling selector.

Third paragraph: consistent rhythm throughout.

.u-marginless

Remove default block margins from a single text element inside dense app chrome.

A marginless paragraph inside a compact row.

.u-surface

Panel styling for ad-hoc grouping (when you don't need a full .c-card): bg, text, border, radius.

An ad-hoc surface: useful for inline callouts that don't deserve a component.

.u-muted

Secondary/caption text color.

Primary text. Secondary, muted text.

Small muted metadata text.

.u-icon-title

Leading icon + title pattern that keeps the icon attached to the title line.

Extremely long workflow title that truncates beside its icon

Badge/chip group

Use .l-cluster with a smaller gap for wrapping groups of compact labels.

Queued Ready Finance Needs review

.u-full-bleed

Break an element out to the viewport edges inside a constrained container (a wide table or image in a prose column).

This breaks out beyond the narrow demo container to the viewport edges.