mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-09-27 23:47:59 +00:00
Eighteen icon components behind one barrel at shared/components/Icons. Every icon renders at 1em in currentColor and is aria-hidden, so size, colour and accessible naming all come from whatever contains it. The two link arrows carry motion. They are drawn as separate head and tail elements on purpose: the tail retracts to nothing while the head advances, which a single path cannot do, and a flattened replacement renders correctly while silently losing the animation. One inherited custom property is the whole contract: --xrpl-icon-engaged: 0 at rest … 1 engaged It names the cause rather than the effect. A container knows its own hover and focus states but not which icon it holds, so each icon decides what engagement means for it, and an icon with no stylesheet ignores the signal and stays static. Containers drive it with the xrpl-icon-engaged mixin, which emits `> .xrpl-icon` — one level, then stop. That is what keeps a hovered card from engaging the arrow inside a button it merely contains. Include it on the element the icon actually sits in, which is not always the element carrying the state; attached too high it matches nothing, which fails as a missing animation rather than a wrong one. The rest value declared on .xrpl-icon blocks a container that sets the property directly instead of using the mixin. Where the trigger is React state rather than a CSS state there is no pseudo-class to hang the mixin off, so the arrows take an optional `engaged` prop. Omitted it writes nothing at all; `false` is deliberately different, pinning the icon still. Fourteen of the icons are Google Material artwork under Apache-2.0. Each file names its exact upstream source and commit, and lists the modifications made to it; the licence entry is in LICENSE at the root. Adds /icon-demo as the reference page for the set. It is linked from nowhere and excluded from site search and sitemap.xml, but deliberately left out of redocly.yaml's ignore list, which would 404 it under `realm develop` too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>