Skip to content

Mobile: the list windows as cards, a bin that looks full, Explorer's item as a page - #755

Merged
AllTerrainDeveloper merged 3 commits into
trunkfrom
mobile/native-apps-rework
Sep 3, 2026
Merged

Mobile: the list windows as cards, a bin that looks full, Explorer's item as a page#755
AllTerrainDeveloper merged 3 commits into
trunkfrom
mobile/native-apps-rework

Conversation

@AllTerrainDeveloper

@AllTerrainDeveloper AllTerrainDeveloper commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

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 list

  • 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 (title / meta / actions / hidden).
  • The checkbox stays a real cell; its whole 44px cell is the tap target and is not a row click.
  • Same columns, data, selection, sub-tables and events. No header, no sticky columns, nothing to scroll sideways.
  • src/ui/components/os-table/stack-on-phone.ts makes the decision from the mode stamp for every list window and restores the grid (sticky columns included) on a crossing out.

Trash

  • Bug (desk too): 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. min-inline-size: 0 on the table; its own frame is the scroller now.
  • Bug (desk too): the full-bin mark differed from the empty one by an 8° lid tilt and three dots, invisible at 20 and 58px. The lid now lifts 4 units and tips 12° about its far corner, with a crumpled sheet riding the rim under it.
  • Bug (phone): the home tiles never received setArt. The layer reads the rails' art (Dock.getArt, icons.getArt) and repaints on os/art-changed.
  • Phone: cards with labelled Restore / Delete forever buttons, two-line titles, the search leading the toolbar with the type chips scrolling under it, and the selection's actions as a bar along the bottom (no Pin to desktop on a phone).

WP Explorer

  • On a phone an opened item is a page of its own over the list — Back closes it, the trail gains a step (site › Posts › item), actions stack full width — instead of a 45% sheet that read as a preview. This is what "Navigate into" opens for users, media and flat sections (a post's still opens its detail folder).

Posts, Pages, Users, Plugins

  • Cards on a phone showing more than the grid could fit: author + date (a page: parent); email, role, last login, actions; version, author, actions.
  • Users' name column is no longer pinned on a phone (it kept sticky: true after the column filter).
  • Each window's bulk bar moves to the bottom of its panel on a phone, clearing the home indicator.

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 -l on the PHP file.

How to test on :8889 (Preferences → Mobile → force mobile, or a phone)

  1. Trash: open with a few items — cards, labelled buttons, search first; tick a card's checkbox → bar at the bottom with count / Restore / Delete forever. On the desk, pull the window narrow: the table scrolls sideways inside its frame.
  2. Trash icon: with one item in the bin, the dock tile, the desktop icon and the phone home tile all show the lifted lid + sheet; empty the bin → closed lid everywhere without a reload.
  3. WP Explorer: Users → long-press a person → Navigate into → full page with Back; Back returns to the list. Media the same. Posts → Navigate into still opens the detail folder.
  4. Posts / Pages / Users / Plugins: cards, nothing pinned, no sideways scroll; select rows → bottom bar. Plugins: tap a card → its detail panel still expands.

🤖 Generated with Claude Code

Open WordPress Playground Preview

AllTerrainDeveloper and others added 3 commits September 3, 2026 20:48
…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>
@AllTerrainDeveloper
AllTerrainDeveloper merged commit c261e28 into trunk Sep 3, 2026
5 checks passed
@AllTerrainDeveloper
AllTerrainDeveloper deleted the mobile/native-apps-rework branch September 3, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant