Skip to content

Make ToH usable on a phone - #54

Open
BKPepe wants to merge 4 commits into
openwrt:developfrom
BKPepe:feature/responsive-ui
Open

Make ToH usable on a phone#54
BKPepe wants to merge 4 commits into
openwrt:developfrom
BKPepe:feature/responsive-ui

Conversation

@BKPepe

@BKPepe BKPepe commented Jul 26, 2026

Copy link
Copy Markdown
Member

On a phone the ToH is a 23 column table you pan around sideways, with the
controls eating the first third of the screen. This gives the phone a layout of
its own and leaves the desktop a table.

Below 767px rows become cards folded to the device name, so a screenful is 11
devices instead of 5, and the filters move into a drawer, which brings the first
device up from 253px to 137px. A link offers the full table to anyone who would
rather pan around it.

At every width the filter rows go from 17px to 30px, RAM and Flash are picked
with buttons rather than checkboxes, and the columns finally use the whole
window: 319px sat unused at 1600px, 1279px at 2560px.

  • It vendors Bootstrap's JS bundle, because only the CSS
    was in the tree and the drawer needs it.

  • It fixes Flash filtering, which compared values as strings, where "64" >= "128" is true and let almost everything through. Counts now match toh.json.

Can be tested here: https://bkpepe.github.io/toh-openwrt-org/preview/feature-responsive-ui/?view=normal
Fixes: #52

@BKPepe BKPepe closed this Jul 27, 2026
@BKPepe
BKPepe deleted the feature/responsive-ui branch July 27, 2026 12:59
@BKPepe
BKPepe restored the feature/responsive-ui branch July 27, 2026 12:59
@BKPepe BKPepe reopened this Jul 27, 2026
BKPepe added 3 commits July 27, 2026 18:57
On a phone the 23 column table had to be scrolled sideways. Below 767px
rows are cards, folded to the device name until tapped: 11 devices per
screen instead of 5.

On a wide monitor the fixed column widths left 319px empty at 1600px and
1279px at 2560px. That space now goes to the columns holding text.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
The controls above the table ate 253px of a 780px phone screen. They move
into a drawer, which brings the first device up to 137px.

Inside they were still built for a wide page: floated blocks and 173
controls under 32px. The desktop panel was no better, packing filters into
17px rows with 13px checkboxes, so the comfortable sizes apply everywhere
and the drawer only goes further.

RAM and Flash get a row of buttons instead of checkboxes. Flash needs the
flash>= operator for values like "64, 128, 256", and both need numbers:
as strings, "64" >= "128" is true and the filter let everything through.

Adds Bootstrap's JS bundle. Only its CSS was vendored, so the drawer had
nothing to run on.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
The header dropped the floats holding its parts side by side at a fixed
1065px, so the search fell onto a second line while the bar was still half
empty. It is a flex row now and wraps at 800px, when the parts really stop
fitting.

The phone shows fewer columns on purpose, so the top bar offers the full
table, and the way back.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
@BKPepe
BKPepe force-pushed the feature/responsive-ui branch from aa91895 to e261a72 Compare July 27, 2026 16:58
@BKPepe

BKPepe commented Jul 31, 2026

Copy link
Copy Markdown
Member Author

If you happen to have some time, @soif, I'd appreciate it if you could take a look. I'd like to move this forward so we don't have to unnecessarily revisit it later.

@soif

soif commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Hi @BKPepe,

Sorry for the late review. I simply didn't have enough time to go through it earlier.

Overall, I think this is a really nice improvement.

Things I particularly like:

  • Having the table automatically use the available width depending on the visible columns is a great idea.
  • The mobile compatibility also looks very well thought out.
  • I only noticed one small visual glitch: in the normal desktop view, the logo in the page header seems to be slightly shifted downward.

A few things that, in my opinion, could still be improved on the mobile view:

  • The device title (brand + model) doesn't feel quite right visually. Maybe it would look cleaner if the model were aligned to the right, just before the icon. Or any better idea you might propose 😄

  • In details view, The large top padding above each feature section feels unnecessary. It doesn't really improve readability and wastes valuable screen space.

  • The boxes surrounding the Features, Tips, etc. also seem unnecessary. They add extra left/right margins, which reduces the usable width on small screens.

  • In the header, I think the search inputs would fit better to the right of the title, with the device count underneath, so the vertical space is used more efficiently.

  • The "Filters & Columns" drawer could probably be full width on mobile.

  • Inside that drawer, the left/right margins (when the Filters section is expanded) also waste some horizontal space.

  • The presets box could use a bit of left padding.

  • On the other hand, the column checkboxes would benefit from a larger vertical spacing to make them easier to tap on touch devices.

These are mostly small UI/UX refinements. Overall, I really like the direction this PR is taking.

By the way, I'll be leaving on vacation tomorrow and will be away for about 20 days, so I won't be available to continue reviewing during that time. I'll definitely pick it up again as soon as I'm back.

Thanks again for all the work you've put into this. It's already a fantastic contribution, and I really appreciate the effort.

The logo sat 5.5px below the middle of the header bar: its padding was still
the 11px/0 the float layout needed, and #toh-header-bg centres a flex row now,
so the padded box was centred rather than the logo inside it.

On a phone the chrome was charging for itself - 24px for the panel's side
borders, another 20px for the drawer's own padding - so the card list and the
filters each get that width back. A card's brand stays left and its model moves
to the right edge before the chevron, which gives a scrolling list one column
of makers and one of names. The column checkboxes were 16px rows, aimed at a
pointer; on a coarse pointer they are 39px.

Reported by soif in the review of openwrt#54.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Copilot AI lite review requested due to automatic review settings August 7, 2026 06:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

Feature request: Make ToH mobile-friendly

3 participants