The page set concordance gallery writes so that a theme (note: Theme) is styled and checked without building a corpus (note: Corpus): every slot (note: Slot) of the site (note: Site) rendered (33 passages, no note) with fixture (note: Golden corpus) view models (19 passages, no note), one page per slot and state (36 passages, no note), under an index (note: Alphabetical index) that says who renders (24 passages, no note) each slot.
Today
The command (21 passages, no note) writes index.html, one page per slot and state, the stylesheet (26 passages, no note) under assets/site.css and the island (note: Island) bundles (12 passages, no note) next to it, in ./gallery by default (--output). The index groups (23 passages, no note) the states by board of the reference (30 passages, no note) design (4 passages, no note), in the order of the boards: the home, the entity page, the search results, the accessibility board, which has no state of its own, the keyword page, the meeting page, the API page, the neighbourhood map open, the phone and the tablet, the alphabetical index, the spaces, the page of a space, the category list, the screen page, the document page, the edge cases, the dark mode, then the to-do page, the two panels framed under a heading of their own and the chrome in its other shapes (a right-to-left locale, a header with a logo, a footer with a project text). Every board has its state in the corporate chrome on the fixtures corpus, named after it, beside the default state, an empty one where meaningful (no mention, no neighbour, no result, nothing to do) and the degraded cases: a corpus fed by one repository, a note without a property, a keyword page whose transcript passages carry no timecode, an API page whose contract could not be fetched, the states of the edge cases (the page served for a missing address as served and as its island fills it, a query the filters emptied, a document whose conversion failed, the notice on the age of the site), and, for every page that carries an island of its own, the page served without the scripts of its islands, captioned "server HTML only". Each board carries its caption and a link to its screen note here; each state its caption, its width, who renders its slot, the default theme or the plugin and theme that override it, and the page framed at the width its board is drawn at, 390 px for a phone, 834 px for a tablet, 1440 px for a desktop, the heading of the state opening the page alone. Three buttons above the boards, an island served hidden, set every frame to one width once the script runs; without it each frame keeps its own. A section then lists the eleven slots in order and who renders each, and a last one every registered type, the core ones, those the plugins contribute and those of the project profile, with one page each: the note template of the type rendered as a note of that type through the generic entity page or, when a theme or the type's module provides one, through its dedicated component, which the index names. The pages use a neutral palette and the labels of the default theme; the stylesheet follows the system colour scheme, the switch in the header forces one, and data-mode="dark" on the root element previews the dark palette without JavaScript: the two states of the dark board, the entity page and the home page, are served so, without the script that would apply a remembered choice over them. One test per state pins the skeleton of its page (4 passages, no note), the elements with their classes, role and ARIA attributes, text and link (note: Link)s left out, so that a change of structure is reviewed against its board.
The theme comes from the registry (11 passages, no note) the build (note: Build) uses: --theme names a plugin (note: Plugin) package (23 passages, no note) or the path of its module (27 passages, no note), repeated at will, the last one winning a slot; without it the plugins: of the configuration (note: Configuration) apply, and without any the default theme renders alone. The theme.yaml of the project (note: Project) replaces the neutral palette (24 passages, no note) and the fixture chrome (5 passages, no note) with the project's name, logo (13 passages, no note), favicon, palette, stylesheet, footer (19 passages, no note) and credit (4 passages, no note). Every page is measured against the budget (20 passages, no note) and run through the static (22 passages, no note) accessibility (note: Accessibility) checker (3 passages, no note); a page over budget or a finding (note: Finding) fails the command with one line per problem, and a palette pair (47 passages, no note) under its contrast minimum is printed as a warning. Continuous integration of the tool builds the gallery on every change and publishes (16 passages, no note) it as an artifact of the run.
Objects
- Reads: model
Actions
- Open a state through its heading → the page of that state, alone
- Press (4 passages, no note) a width → every frame (5 passages, no note) at that width
- Open the screen note (note: Screen) of a board → the note (note: Note) of that page, here
- Switch the colour scheme (note: Colour scheme) → the same page in the other palette