chore: version packages - #83
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
3 times, most recently
from
September 3, 2026 08:38
2e3f6e8 to
a55e189
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 3, 2026 08:38
a55e189 to
a39d29c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
seamless-templates@0.11.0
Minor Changes
6c7ed49: A kit can put a screen's header beside its content, not only above it.
Every banded screen in every kit ran the same way down the page: a strip of brand
colour across the top, then the content under it.
Screennow wraps its regionsin a
screen-flowelement that resolves todisplay: contentsby default, whichtakes it out of the layout entirely, so a screen renders exactly as it did
before. A kit that resolves it to a grid instead gets the header in a column of
its own with the content beside it, and the header stays put while the views
scroll past. Below 64rem it is one column again whatever the kit asked for,
because a title column beside a table is two unusable columns on a phone.
StatRowmeasures the space it has rather than the size of the window. Itscolumn counts were Tailwind's responsive ones, which read the viewport; in a
header column about a sixth of the window wide, a desktop still said four across
and three figures came out as three unreadable slivers. It fills by available
width now, the same way the card grid already did.
b91cf44: A band can carry a picture of its subject, or a pattern of it.
Every band in every kit was a flat panel of brand colour or a window onto the
backdrop.
Coversits behind one in three layers: the source, a tint of thebrand pair over it, and a measured scrim. Three rather than one background,
because the thing behind the type has to be allowed to be interesting and the
type still has to be readable, and ink on a band is derived from the band's own
fill, so a picture arriving between the two would otherwise decide the contrast
by luck.
The tint blends as
color, taking the hue and leaving the light and shade, whichis what stops a tinted photograph reading as a photograph with a coloured
rectangle on it, and what makes any source belong to the application it is in
rather than to whoever took it.
The source is a token rather than a prop, so it can be a pattern built from the
palette, an image the application ships, or nothing, and none of those is a
decision a page should be making.
--app-coverisnoneuntil something setsit and every layer is inert while it is, so a band with no cover renders exactly
as it did before.
Screen's banded header andAuthFrame's pitch half bothcarry one, which are the first two surfaces anybody sees.
189d77d: A screen with nothing in it yet shows what it is going to look like.
An empty table under a hero is the first thing the owner of a new application
sees, and it tells them nothing about what they have just had built.
lib/examplesholds rows keyed by the API path a collection loads from, empty in the starter
and filled by whatever scaffolds the application.
useCollectionreturns themwhen the collection comes back with nothing in it, under a new
examplesloadstate, and
RecordListandDataTablesay what they are.A module rather than a prop, so filling it reaches every screen at once and no
page has to be written differently to benefit.
They are never written to the database. A row that exists only on the screen
cannot be mistaken for a record, cannot be edited into one, and needs no control
to clear it away: it goes the moment the collection has something real in it,
including the optimistic record a create puts there before the post lands.
3de93b1: The chrome comes in five arrangements, not one.
A sidebar is a composition, and an application that always opens on one looks
like every other application that always opens on one, whatever colour it is
painted.
Navbarnow renders a sidebar, a top bar, a tab strip, a compact iconrail, or a cover with no persistent chrome and the links as pills over the first
band. Which one is
data-shellon the document element, read by the newuseShellhook, the same way the look isdata-style. Nothing set means thesidebar, so a starter nobody has told renders exactly as it did before.
The stylesheet carries the shell's own tokens on the same attribute, so the
markup and the layout cannot disagree about which shell is on:
shell-flow,shell-widthand a newshell-offsetthat starts a banded screen below a coverrather than behind it. The account control keeps its accessible names in every
arrangement, which is the contract the conformance suite drives.
8a639ed: The landing screen has four compositions, not one.
The
dashboardarchetype is the screen somebody sees first, and it had oneshape in every application: a band of figures, then a grid of cards. The screen
with the most work to do was doing the least of it.
Screennow takes alanding, and arranges the same three slots four ways. Theoverview is what it has always been. A poster takes the whole window for one
title, one figure and one action, with everything else below the fold. A notebook
drops the band entirely and opens on what happened last, with the title inline at
display size. A contents landing prints the same cards as oversize ruled rows,
the way a magazine opens.
A page passes the same props to all four, and a screen that asks for nothing is
the overview, so nothing that already composes a dashboard changes. The
composition applies only to
dashboard: a ledger's header introduces a table,and a landing reaching it would spend the fold on a title.
One thing came out of looking rather than from any check. A notebook has no
band, and every generated Home passes its figures as
<StatRow onBand>, whichis right on the other three landings and paints band ink on the page surface on
this one. On a light kit that is a headline figure at about two to one against
its own background. The header with no band now resolves the band's ink to the
page's, so the figures read wherever they land, rather than the page being asked
to get the prop right.
ab66c36: A nav link can carry an icon.
Optional, because the starter's own screens do not need one and the rail shell
does: a column four and a half rem wide has room for a mark and nothing else, and
until now it showed the screen's initial. Whatever scaffolds an application
supplies the icons, since which one fits a screen is a question about what the
screen is rather than about how a nav is built.
Where an icon is given it takes the marker's place at the same footprint, so a
nav with icons and one without line their labels up in the same position. The
icon is a component rather than a name, so only the icons an application actually
uses reach its bundle.
The icon shows in every arrangement that shows the label, not only in the
sidebar. Running a generated application was what found that: the top bar, the
tab strip and the cover's pills were rendering the words with the marks left
behind, so an application on one of those four shells looked like it had no
icons at all.
ad61d4b: On a phone the create form is a button and a sheet, not a stack of inputs.
At 375 a create panel above or below the thing it creates into is the loudest
"this is a web form" signal an application gives off, and it pushes the records
somebody came to read under the fold.
InlineCreateFormnow renders a buttonfixed to the corner and puts the form in a sheet one tap away, closing itself
once the record is filed. Escape and the backdrop both close it. Nothing changes
above 64rem, and a form the signed-in role may not use still offers nothing at
all.
One form, moved, rather than two in the document behind a media query: two copies
of the same field names and labels is a worse form for anyone using a screen
reader and a confusing one to test.
The wrapper that held the form collapses to
display: contentswhen the formbecame a sheet, because a fixed button occupies no space and the view around it
would otherwise be several rem of blank page.
contentsrather thannoneonpurpose:
display: noneon an ancestor hides a fixed descendant, so hiding thewrapper would have taken the button with it.
59e910e: The sign-in page says which application it is on a phone, not only on a desktop.
AuthFramehid its pitch half outright below 64rem, so somebody opening a sharedlink in a group chat got a sign-in form on a white page: the starter, with none
of the application on it. That is the screen most people an application is shared
with actually see first.
The same band now runs above the form at the height a phone can spare, carrying
the cover, the application's name in the kit's display face, and one line of the
pitch. The points list stays behind: three bullets above a form is a page you
have to scroll before you can sign in.
Patch Changes
cdec0bd: The starter's own tests survive being scaffolded into an application.
This suite runs again inside every application built from the starter, which is
what makes it a correctness oracle rather than a formality. Two of the tests
added with the shells and the example rows asserted things that are true here and
false the moment a scaffold personalises: that the nav carries a link called
"About", which is a demo page a scaffold removes, and that the examples module is
empty, which is the first thing a scaffold fills in.
Both now test what the code does rather than what this template currently holds:
the nav test asserts every link it finds has somewhere to go and that Home is
among them, and the examples test supplies its own rows. A suite that fails in
every generated application is not an oracle, it is a false alarm, and it would
have sent every build through a repair pass it did not need.