Repository navigation
hotspot, info-circle and slide-box - #23
Merged
Merged
Conversation
… a tour UABB's Hotspot, rebuilt: pins at percent coordinates are 44px buttons with aria-expanded, named by the title and described by the text. Click, tap, Enter and Space toggle everywhere; hover and focus also open on fine pointers. One open at a time, Escape closes and returns focus. The optional tour carries "2 of 5", Previous, Next and End tour in each panel, with repeat and an autoplay that starts only from the Start tour button, waits while the visitor reads and never runs under reduced motion. Panels open toward the larger space by a build-time rule; below a 34rem figure the open panel sits under the image. Without JavaScript the pins link to a numbered list of every point under the image. scripts/check-reveal-cards.mjs pins placement against golden cases, the no-JS render and ARIA contract on both pages, the 44px hit area and the fallback contrast, and refuses seven mutations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UABB's Info Circle, rebuilt: positions are computed at build (clockwise from the top, on the circumference) and nothing measures at runtime. Each item is a button with aria-pressed, exactly one pressed, and aria-controls to the centre, which is a polite live region. Hover, focus and click choose. Optional autoplay has a pause button, waits on hover, focus, off screen and in a hidden tab, stops for good on a click, silences the live region while it runs and never runs under reduced motion. In a container under 28rem, and without JavaScript, it is a plain list with every item's icon, title and text; that list is the only copy of the content and the centre shows a copy of the chosen entry. The check adds golden ring positions, the no-JS render and ARIA contract on both pages, 44px items, fallback contrast, a byte-for-byte Font Awesome Free pin on the demo's icons, and eight more mutations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UABB's Slide Box in its overlay style, on flip-box's proven contract: the card is a real button with aria-expanded and aria-controls to the back; click, tap, Enter and Space always slide it, hover also does on fine pointers unless trigger="click". `direction` picks the edge the back comes from (up by default). The panel out of view is inert and aria-hidden; Escape slides it out and returns focus. Both panels share one grid cell, so the card is as tall as the taller one. Reduced motion crossfades. Without JavaScript both panels render, the back below the front. notFor says when to pick it over flip-box: two equal faces turn over, a teaser and its detail slide. The check adds each direction's parking transform and the clip, the no-JS render and ARIA contract on both pages, fallback contrast, the Font Awesome Free pin on the demo's icons, and eight more mutations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
info-circle's --ic-* was icon's prefix (--ic-color), and slide-box's --sb-* and data-sb are scrollbox's in the open round-4 PR, where slide-box's boot selector would also have visited every scrollbox on the page. Following the library's rule when two letters are taken (--anb-, --ofc-): info-circle is now inc and slide-box slb, in their custom properties, classes, data attributes, ids and block markers alike, so each element matches its prefix everywhere, as flip-box does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A host that themes one element through a shared prefix silently themes the other. Every theming variable's first segment is its prefix; an element may use several, no two elements may share one. The drill rebuilds the catalogue from every branch, so a clash between parallel chips fails there, naming both entries, instead of surfacing on a client site. Co-Authored-By: Claude Opus 5.5 <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.
Round 3, chip A: three reveal cards, one commit each (plus a naming fix and a guard, below), built from the UABB references and the decisions in
library-round-3.md. Each is one self-contained.astrowith no imports, themed through its own prefix with fallbacks, with a demo, a catalogue entry and a section in the newscripts/check-reveal-cards.mjs(in thenpm run checkchain).hotspot
What it does. Numbered pins at percent coordinates on a
<figure>image; each opens a panel (title and text, optionally a small image). Hover and focus open a pin on fine pointers; click and tap toggle everywhere. One panel is open at a time. The optionaltouradds a Start tour button, then "2 of 5", Previous, Next and End tour in each panel, plusrepeat.autoplay(ms) steps on only after Start tour is pressed. Panels open toward the larger space by a build-time rule. In a figure under 34rem the open panel sits under the image.Accessibility.
<button aria-expanded>witharia-controlspointing at its panel. It is named by the title and described by the text througharia-describedby.Without JavaScript. The pins are
#links into a numbered<ol role="list">under the image. Every point's title, text and image is on the page, and print shows the list.What the check pins.
<hs-place>block.aria-expanded="false",aria-controlsandaria-describedby.repeat: no Previous on the first step and no Next on the last unless it is set.Search.
image hotspotis 320/mo at difficulty 23. The page should also rank for these variants:"image map" (760/41) is the old HTML
<map>term. "hotspot" (90,500/93) is Wi-Fi.info-circle
What it does. Between 2 and 10 items (an icon or a round image each) sit on a circle, with positions computed at build by sin/cos, clockwise from the top. The chosen item's title, text and optional link show in the middle. Hover, focus and click choose, and
startAtsets the item chosen on load. Optionalautoplaycomes with a pause button.Accessibility.
<button aria-pressed>, with exactly one pressed, andaria-controlspointing at the centre.aria-live="polite". It switches tooffwhile autoplay runs, so nothing is read out on its own.Without JavaScript. The element is a vertical list with every item's icon, title and text showing. The same list shows in any container under 28rem. That list is the only copy of the content; the centre gets a copy of the chosen entry.
What the check pins.
hiddenand the centre is polite and empty.--inc-x/--inc-ymatches the geometry, andaria-pressedmarksstartAtonly.Search.
circular infographicis 320/mo at difficulty 7. "circle infographic" and "infographic circle" are the same cluster. The page should also rank for these variants:"cycle diagram" people are mostly making slides, so it is a variant, not the title.
slide-box
What it does. The front is an icon or image, a title and a line; the back is text and a CTA. The back slides in over the front from
direction:up(the default),down,leftorright. Hover slides it on fine pointers unlesstrigger="click", and click, Enter and Space always do. Both panels share one grid cell, so there is no fixed height.Accessibility.
<button aria-expanded aria-controls>named from the title.inertandaria-hidden.Without JavaScript. Both panels render, back below front, with the link.
notFor. It explains flip-box versus slide-box. flip-box is two equal faces; slide-box is a teaser and its detail.What the check pins.
aria-expanded="false", andaria-controlspoints at the back.data-directionanddata-triggermatch the fixture.Search.
reveal cardis 110/mo at difficulty 14. The page should also rank for these variants:"slide box" itself is 1,300/55, but its results are microscope-slide boxes and toolbox drawer slides. It stays an
aka.All volumes are SE Ranking US, 2026-09-26, and each sits in a comment next to its query.
Verification
npm run checkandnpm run buildpass. The check catalogue now holds 25 elements, and the reveal-cards check refuses 23 mutations.ecropolis/SuperheroTechmain,ELEMENTS_SOURCE=<this checkout> npm run check:typesreported 0 errors and 0 warnings. Its 12 hints are all in files that already existed.check:elementspasses.Naming
The prefixes are
--hs-*for hotspot,--inc-*for info-circle and--slb-*for slide-box.--ic-*. That is icon's prefix on main (--ic-color).--sb-*anddata-sb. Both belong to scrollbox in Round 4: tags, scrollbox and sticker #20. Slide-box's boot selector would also have visited every scrollbox on a page.--anb-and--ofc-.New guard.
check-catalog.mjsnow refuses two entries whose theming variables share a prefix. It names both entries and the fix. A simulated merge of main and all seven open PRs gives 43 elements and 43 prefixes, with no clash.The same sweep fixed two other open PRs. I pushed each without force, and each branch's own
npm run checkis green.--nt-*anddata-nt, which are news-ticker's, to--ntc-*.--tc-*anddata-tc, which are testimonial-carousel's, to--tcd-*.Other notes.
superhero-ui-libraryskill sections for all nine elements come in one agent-skills chip after these land.🤖 Generated with Claude Code