⬅️ Back to UI & UX Building Blocks Index
Help system (topics + trigger button)
The help system is designed so that:
- help topic metadata is centralized
- help text is fully localized (i18n-backed)
- UI can open help contextually from any screen
Building blocks
- Topic registry:
frontend/src/help/topics.tsHELP_TOPICSmaps atopicIdto i18n keys (titleKey,bodyKey, optionallinkKey)
- Global state:
frontend/src/context/help/HelpContext.tsxHelpProviderstoresisOpen+currentTopicId- closes on
Escape
- Trigger button:
frontend/src/features/help/components/HelpIconButton.tsx- renders a consistent icon button
- calls
openHelp(topicId)
- Convenience hook:
frontend/src/hooks/useHelp.tsuseHelp()is a typed wrapper around HelpContext
Adding a new help topic
- Add metadata entry to
HELP_TOPICS - Add localized strings to
public/locales/{de,en}/help.json - Add a
HelpIconButton topicId="..."near the relevant UI
graph LR
Icon[HelpIconButton] --> Open[openHelp(topicId)]
Open --> Ctx[HelpContext]
Ctx --> Topic[HELP_TOPICS lookup]
Topic --> I18N[i18n t(titleKey/bodyKey)]