• v0.15.0 1b1ac6e381

    v0.15.0 Stable

    pienter-release-bot released this 2026-09-15 22:46:35 +00:00 | 139 commits to main since this release

    Changed

    • AppLayout's main region no longer has padding. A page's rows carry their
      own gutter (see the page container under Added), so a sticky band sits
      flush against the region's edges without negative margins. Consumer-visible:
      a page that has not adopted .pui-page loses its inset. The seams stay,
      defaulting to 0; one line restores the previous behaviour:
      .pui-app-layout__main { --pui-app-layout-main-padding: var(--space-m) var(--space-l) var(--space-xl); --pui-app-layout-main-padding-mobile: var(--space-s); }.
    • Form wraps everything that is not the actions row — the error summary,
      the default slot, the status message — in a new <div class="pui-form__body">.
      This changes the DOM for every consumer, page-placed or not; selectors and
      tests that assumed the fields were direct children of the <form> need the
      extra level. The body inherits the form's gap, so a .pui-form override
      still spaces the fields.

    Added

    • .pui-page, the page container for AppLayout's default slot: one grid of
      four full-width rows placed by named area — pui-page__band (the breadcrumb
      strip), __header, __main (takes the leftover height) and __footer
      (sticky at the region's bottom) — plus an optional __aside beside the main
      row: a stretched, size-contained column whose child sticks to the top of the
      scrollport with its own scroll, stacking below the content under 56em. The
      bands span the whole region without knowing the aside exists. A row has one
      occupant: two elements in the same named area overlap.
    • .pui-gutter, the one inline padding every page row takes, in the
      utilities layer so it replaces a bar's own padding without a specificity
      fight. It reads --pui-gutter-inline, --space-l on the shell and
      --space-s below the 48rem breakpoint.
    • A module Index or a Form (so a RecordForm) that is a direct child of
      .pui-page supplies the page's rows itself: its header, body and pagination
      footer, or its body and its actions row as the sticky footer band. Inferred
      from the position through display: contents, no prop; a related index and
      any form inside pui-page__main are unaffected.

    Fixed

    • A long record title in a Breadcrumb wraps inside its item instead of
      widening the trail.
    Downloads