fix(guide): match 15c event name and the legacy focus ring
The island listened for `ai-for-dummies:language-change` on `document`, but task 15c dispatches `ai-for-dummies:languagechange` on `window`. Window events do not reach a document listener, so that path was dead; only the `<html lang>` MutationObserver was firing. The focus ring was `3px solid var(--red)` at `outline-offset: 2px`, applied globally to every button on the page. `responsive.css` uses gold at offset -3px for exactly these nine groups. Restored, and scoped to them.
This commit is contained in:
@@ -260,7 +260,7 @@ const { rootSelector, data } = Astro.props;
|
|||||||
new MutationObserver((changes) => {
|
new MutationObserver((changes) => {
|
||||||
if (changes.some((change) => change.attributeName === 'lang')) renderAll();
|
if (changes.some((change) => change.attributeName === 'lang')) renderAll();
|
||||||
}).observe(document.documentElement, { attributes: true, attributeFilter: ['lang'] });
|
}).observe(document.documentElement, { attributes: true, attributeFilter: ['lang'] });
|
||||||
document.addEventListener('ai-for-dummies:language-change', renderAll);
|
window.addEventListener('ai-for-dummies:languagechange', renderAll);
|
||||||
renderAll();
|
renderAll();
|
||||||
}
|
}
|
||||||
if ('IntersectionObserver' in window) {
|
if ('IntersectionObserver' in window) {
|
||||||
@@ -276,8 +276,19 @@ const { rootSelector, data } = Astro.props;
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
:global(button:focus-visible) {
|
/* Verbatim from `responsive.css`, where every selector button in these nine
|
||||||
outline: 3px solid var(--red);
|
groups shares one focus ring. Scoped to the groups this island drives so it
|
||||||
outline-offset: 2px;
|
does not restyle buttons the island has nothing to do with. */
|
||||||
|
:global([data-worker]:focus-visible),
|
||||||
|
:global([data-tree]:focus-visible),
|
||||||
|
:global([data-route]:focus-visible),
|
||||||
|
:global([data-model-provider]:focus-visible),
|
||||||
|
:global([data-effort]:focus-visible),
|
||||||
|
:global([data-skill-file]:focus-visible),
|
||||||
|
:global([data-skill-step]:focus-visible),
|
||||||
|
:global([data-common-skill]:focus-visible),
|
||||||
|
:global([data-phase]:focus-visible) {
|
||||||
|
outline: 3px solid var(--gold);
|
||||||
|
outline-offset: -3px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user