Mobile: the list windows as cards, a bin that looks full, Explorer's item as a page - #755
Merged
Merged
Conversation
…item as a page The phone layer made every window full-screen; the five list windows inside were still tables — hidden columns, a pinned first column over a sideways scroll, actions in a toolbar the list had scrolled away from. This pass gives them a phone layout, and fixes two things that were wrong on the desk too. <os-table stacked> - A card per row: the first column is the title, labelled columns are captioned lines, a label-less column is the actions row (`column.stack` overrides the role; `hidden` leaves one out). The checkbox stays a real cell and its whole 44px cell is the tap target. Same columns, data, selection, sub-tables and events; no header, no sticky columns, nothing to scroll sideways. - `stack-on-phone.ts` makes the decision from the shell's mode stamp for every list window (stacked on, sticky columns lifted, and both put back on a crossing out). Trash - The table could not scroll sideways in a narrow window: a flex item's minimum is its content, so the table grew past the body and the body clipped it. The minimum is 0 now; the table's own frame is the scroller. - On a phone: cards with labelled Restore / Delete forever buttons and a two-line title, the search leading the toolbar, the type chips scrolling under it, and the selection's actions as a bar along the bottom of the window (no Pin to desktop — a phone has none). - The full-bin mark was an 8° lid tilt and three dots, invisible at 20 and 58px, so the bin read as empty while it held things. The lid now lifts four units and tips twelve degrees about its far corner, and a crumpled sheet rides the rim under it. - The phone's home tiles never received `setArt`. The layer now reads the rails' art (`Dock.getArt`, `icons.getArt`) and repaints on `os/art-changed`. WP Explorer - On a phone an opened item is a page of its own over the list, with Back closing it and the trail one step longer, instead of a 45% sheet along the bottom that read as a preview. That is what "Navigate into" opens for users, media and flat sections. Posts, Pages, Users, Plugins - Cards on a phone with more of the row than the grid could fit (author and date; email, role, last login; version and author), the users' name column no longer pinned, and each window's bulk bar moved to the bottom of its panel, clearing the home indicator. Docs: mobile.md, components-reference.md, javascript-reference.md. Tests for every piece above. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…tegories and Tags fold their editor under the stage The stacked rows kept the grid's column borders, stripes and cell backgrounds: the one rule that undoes them had a space between two attribute selectors inside :host() — a descendant selector, which :host() rejects — so the browser dropped the whole list without a word. The pairs are compound selectors now, the pre-existing hover-plus-stripe rule had the same mistake and is fixed, and a test guards the pattern. The loading skeleton in a stacked table painted one bar per column in a block, which read as a table that broke. A stacked skeleton row is a card: a title-length bar over a shorter meta bar. Categories (the mind map) and Tags (the cloud) kept their 320px editor beside the stage on a phone. It folds under the stage as a sheet of at most half the height, there only while a term is focused, on the mode stamp and under a narrow container. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The list that undoes the grid's cell chrome for cards (stripe, hover, selection, column border) also set display and width, at a specificity above the checkbox, expander and card-body rules — so on hover, and on a selected row, those cells flipped from flex to block and the card jumped. The list is paint only now; layout lives in the base cell rule alone, and a test keeps it that way. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
What
The phone layer put every window full-screen; the five list windows inside were still tables. This gives Trash, Posts, Pages, Users and Plugins a phone layout, makes WP Explorer's "Navigate into" navigate, and fixes two things that were wrong on the desk too (the Trash table could not scroll sideways; the full bin looked empty).
<os-table stacked>— one layout for every listcolumn.stackoverrides the role (title/meta/actions/hidden).columns,data, selection, sub-tables and events. No header, no sticky columns, nothing to scroll sideways.src/ui/components/os-table/stack-on-phone.tsmakes the decision from the mode stamp for every list window and restores the grid (sticky columns included) on a crossing out.Trash
min-inline-size: 0on the table; its own frame is the scroller now.setArt. The layer reads the rails' art (Dock.getArt,icons.getArt) and repaints onos/art-changed.WP Explorer
Posts, Pages, Users, Plugins
sticky: trueafter the column filter).Docs
docs/mobile.md,docs/components-reference.md,docs/javascript-reference.md.Tests
os-table.test.ts: stacked roles, hidden columns, no sticky cells, checkbox cell tap target, row click, back to grid.tests/vitest/os-table-stack-on-phone.test.ts,tests/vitest/mobile-lists.test.ts(stylesheet contracts).apps/trash/trash.test.ts,apps/my-wordpress/my-wordpress.test.ts,tests/vitest/mobile-home-tab-bar.test.ts.Gates:
npm run build,npm run lint,npm run typecheck,npm run test:js(5725 passing),npm run lint:php,php -lon the PHP file.How to test on :8889 (Preferences → Mobile → force
mobile, or a phone)🤖 Generated with Claude Code