Repository source: docs/concepts/tools_launcher.md
Tools launcher
Purpose: One list decides which tools exist, their order and their grouping, so the /tools/ page and the Tools bar inside every tool show the same tools and never drift apart.
Scenario: A reader opens Tools from the main navigation and sees one card: four groups by who uses the tools (Your device, Reading, Community, Operator), each of the 16 tools once as a button, every tool in view on a 1280×720 desktop in every permitted theme. Opening a tool shows a Tools bar with the same tools in the same order, the current one marked and a divider at each group boundary. Full-page tools (Activity, Forte, Offline Reading, Platform Docs) carry a ↗ marker in the bar and have no bar of their own. Backup leaves both lists when text and image backups are both off. The server HTML is the same for every viewer; tools that refuse a visitor refuse on their own page. Account is not a tool and lives in the main navigation.
Sources: registry, groups and bar order (source unavailable) (groups(), registry(), navOptions()), launcher page (source unavailable), Tools bar (source unavailable), controller (source unavailable), launcher styles (source unavailable), registry test (source unavailable), site and theme matrix (source unavailable).
Theme hooks: each tool item and bar link carries data-tone (a stable key from the registry) and each group heading carries data-shape (the group key). Icon themes key their glyphs to the link's href and the heading's data-shape; see theme navigation icons. Bookmarklets reuses the tool-launcher-button class for its own list, so group and grid rules are scoped to .tools-launcher-page and do not reach it. The registry carries no per-tool description; the launcher shows labels only.