Skip to content

Restyle /activity/ with the shared rows, a type filter and day links #277

Closed

Description

@mmcky

Part of #271 (Phase 4).

Why. /activity/ has interim styling with no filters and no day anchors. See _layouts/activity.html on #265's head: it has month ids only. The rail and the home strip link merged rows to a day on /activity/, so those anchors have to exist before they ship. The design is section 4 of the round-2 handoff (see the round 2 outcome).

Work.

  • Shared row includes, used here and later by the rail and the strip.
  • Month headings.
  • A type filter:
    • <button aria-pressed> in a labelled group, with a polite live region that starts empty;
    • a filter hides months and days left with no rows.
  • Day anchors, id="activity-YYYY-MM-DD", with scroll-padding-top so they land below the fixed header. On hashchange, reset the filter to All, then scrollIntoView().
  • "N changes" disclosures, not server-rendered hidden, so every PR link is reachable without JavaScript.
  • The shared foundation this is the first to need:
    • a js class set in <head> before first paint;
    • guard main.js's sessionStorage access (line 8 throws where site data is blocked, and stops everything after it);
    • a cache-buster on the main.js URL (default.html line 208).
  • Remove the interim styles: the .activity-* styles and the release and translation pills.

Acceptance criteria (handoff checks)

  • 2: no horizontal scroll at 320px.
  • 6: /activity/#activity-2026-08-02 lands on Aug 2 ("4 releases · same day") below the header, with the filter reset to All, including when another filter was active.
  • 7: nothing moves when JavaScript loads, and with JavaScript off every row and PR link is reachable.
  • 8: all text meets WCAG AA, and every control shows a focus ring.
  • 10: 30 rows across 4 months (6/8/11/5). Translations shows 2 rows, both in August.

Activity

  1. added theissue type on Sep 29, 2026
  2. mmcky commented on Sep 29, 2026

    @mmcky
    CollaboratorAuthor

    Decisions for the build (2026-09-29).

    These defaults go in the PR description, for review on the preview.

  3. mmcky commented on Sep 29, 2026

    @mmcky
    CollaboratorAuthor

    Ready to start on 2026-09-30. #276's view is on main (#285), and so is #284's data contract (#286); both are deployed. The view's contract is the header comment of _plugins/activity_generator.rb: read the view rather than regrouping entries in Liquid.

    Notes from #285:

    • Day anchors are months[].days[].id (activity-2026-09-27). Group and editions rows already link to them: their url is the day on /activity/, such as /activity/#activity-2026-08-02.
    • Switch the interim layout to the view. _layouts/activity.html still flattens the files in filename order. Rewrite its Liquid comment, README's sentence on how the page orders entries (line 29: "in file order within a day"), and the note that the page doesn't use the view yet (line 78).
    • Check the fixed numbers (30 rows, 6/8/11/5, Aug 2's "4 releases · same day") on a scratch build with _data/activity/ replaced by a copy of .github/scripts/fixtures/activity/.
    • Every string arrives unescaped. Escape each field in the template, and turn backtick spans into <code> after escaping.

    The book type (#286):

    • There is no qe-badge--book style yet, so today's page would give a book entry an uncoloured badge. The restyle should cover book rows, whose type word is "Book update:" and filter key book.
    • A fifth filter, Books, with a book icon, is in the decisions above. Check that five buttons still fit on one line at every width.

    CI. build now runs the limit on the reporter App's PRs (skipped on PRs a person opens), the data check against the PR's base, and two test suites before the Jekyll build: 38 tests for the data check and that limit, and 51 for the rows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions