What each visitor sees
The avatar shows initials taken from the member’s display name — “Alex Kim” reads AK, and “Alex” reads A. The name arrives with the session the runtime already fetches, so the avatar costs no extra request.
Account opens your company’s account home. Sign out ends the session.
The cached HTML always starts in the guest state. A member sees the menu once the runtime confirms the session. If the session has expired, or the request fails, Sign in stays visible.
Behaviour
The menu uses a native disclosure element, so it works with the keyboard out of the box:- Escape closes the menu and returns focus to the avatar
- A click outside closes it
- Choosing a link closes it
Styling
The tag passes your theme’s own settings to the menu, using the same values a member system screen reads — primary colour, surface colour, border colour, and body font among them. The menu matches your system screens without a second palette to maintain. A storefront with no such settings falls back to neutral defaults that inherit the surrounding header’s text colour, so the avatar stays legible on a light or a dark header. To go further, style these classes with ordinary CSS:
You can also override two custom properties:
prefers-reduced-motion.
Labels and translation
Labels render on the server, so they follow your storefront’s language rather than being fixed in the browser.Link safety
Onlyhttps:, http:, and root-relative URLs are used. Anything else falls back to a safe default, so a mistyped or hostile value cannot turn a menu item into a script.