rastrillo / fiesta Public

Task 12b: the theme bar's row, the pane gap and the scripts paragraph, red then green open

On branch fiesta-1-1

Three fixes before the whole-branch review, each its own commit, plus one follow-up the gate asked for. Hub CI on 36aa579: passed, all 48 shards.

1. The theme bar keeps the Row Rule on a phone (0cadc79, then 36aa579)

Cause. At 320 and 390 the bar's label, three buttons and worded scheme menu need about 475px in Portuguese. The menu wrapped onto a line of its own.

Fix. Below 561px:

  • the "Theme" label and the menu's words are clipped from sight but stay in the markup, so the group and the summary keep their names;
  • the summary shows the moon the page already draws beside "Light and dark, built in". Fiesta's icons/ has no colour-scheme icon, so it was not used;
  • the gaps and the theme buttons' padding close up.

No new copy, and no change under css/, js/, i18n/ or icons/.

Shared check. dropdownsOutOfRow moved from check's test file to internal/rowrule as Breaches. The examples and the landing page now run the same function. A page can name its own bars as rows by class, and the examples name none.

Test. TestTheLandingKeepsTheRowRule runs at 320, 390 and 1280, in the 11 languages the site builds, with Arabic right to left. It checks four things:

  • the static Row Rule;
  • each menu shares a line with something in its row;
  • the theme bar is one line;
  • the buttons' group and the scheme summary keep their accessible names (theme.label and scheme.label).
  • Red on dfd1f04's page: 21 "sits on a line of its own" and 21 "more than one line". That is every language at 320, and every language but Bengali at 390.
  • Mutations, each red and then reverted: - isRow ignoring the page's rows fails TestAPageNamesItsOwnRows twice; - dropping site-themebar from the landing's rows fails the static check in every language; - setting the menu's words to display: none leaves the summary unnamed at 320 and 390 in every language.
  • Green: the test passes. So does the whole internal/www browser package (./hack/gotest.sh browser internal.www, 215 s), and so do internal/www, internal/rowrule and check.
  • Sweep, not committed: every 2px from 320 to 1280, plus 559, 560, 561, 759, 760 and 761, in all 11 languages. Every width passed. The tightest case is 320, with about 30px to spare.

Follow-up, 36aa579. The hub failed 0cadc79 at govulncheck. Breaches called x/net's html.Parse (GO-2026-6860), and before the move only test code called it. Now Breaches walks a tree its caller parses, and every caller is a test. With that, make govulncheck passes locally and on the hub. I chose this over raising x/net to v0.62.0 mid-candidate.

2. Panes after Overview no longer open with a gap and a rule (640a5ad)

Cause. .site-pane + .site-pane still matched when the pane before was hidden. That gave the 24px margin, 20px padding and the rule.

Fix. The divider now goes only between panes that show: .site-pane:not([hidden]) ~ .site-pane:not([hidden]). With no script, every pane shows and keeps its divider.

Test. TestEverySamplePaneStartsLikeTheFirst runs at 1280 and 390.

  • Red: all four panes at both widths were 40px down the column with the heading 21px in. Overview is 16 and 0.
  • Green: passes, and so do TestTheLandingReadsWithNoScript and TestEverySamplePaneAndCourseSwitches.

3. Getting started's scripts paragraph is held to the release (206bc43)

Test. TestTheScriptsParagraphNamesEveryShippedScript reads the top-level scripts from build.Dist and requires each to be named in gallery.started.scripts.body's English.

  • Red, in a scratch copy: with copy.js taken out of the paragraph, it fails naming copy.js. That copy was not committed.
  • Green: passes on the paragraph as it is.

Screenshots: ~/.cache/fiesta-1-1-task-12b/shots/

  • the landing page at 320, 390 and 1280, LTR and RTL;
  • Portuguese at 320 and 562;
  • the Guests pane at 1280 and 390.