Components · Popover

Popover

A layer anchored to an element that flips and shifts at the edge

3 designs in this family
LanguageDirectionThemeStageRadiusMotionDensityAdvanced

No basis in this component: Variant — and a control that changes nothing is not shown.

Enter your email to reveal the code — once for the whole site.

Enter your email to reveal the code and the prompt

Once. No password, no account.

Usage

  1. Copy tokens.css into your project and link it before the component styles.
  2. Paste the HTML markup where you want it.
  3. Paste the CSS into your sheet — its selectors are scoped to the component class, so nothing leaks.
  4. Paste the JS after the markup, or load it with defer.
  5. Set dir to rtl or ltr — the component works with both.

States

HoverFocusSelectedEmpty

RTL/LTR

Works in both directions — Arabic and English. Enforced in every build by , and exercised in the playground above.

Responsive

No fixed width that overflows, and a layout that stretches.

Accessibility

  • Every field is named, with no redundant ARIA —
  • Fully operable by keyboard
  • Carries an explicit semantic role

Motion

Short transitions on hover and focus. And it stops for anyone who prefers reduced motion.

Dependencies

No external dependency — no CDN, no package to download.

  • tokens.css — Every colour and size in the component points to a token, with no literal value
  • script.js — The component behaviour lives there — without it, it renders but does not work

Examples

Verification matrix

CapabilityStatusEvidence
RTLVerifiedcheck-rtl
LTRVerifiedcheck-rtl
DarkVerifiedcheck-themes
LightVerifiedcheck-themes
ContrastVerifiedcheck-contrast
AccessibilityVerifieda11y.test · check-aria
KeyboardVerifiedcheck-keyboard
TokensVerifiedcheck-raw-colors
LocalizationSupportedMeasured from the files
MotionSupportedMeasured from the files
Reduced motionSupportedMeasured from the files
TouchSupportedMeasured from the files
Keyboard handlingSupportedMeasured from the files
DragSupportedMeasured from the files

Verified means a gate attests to it in every build. Supported means it was measured from the files, with no gate attesting — so it claims no more.

Not documented yet: When to use · When not to use — it needs human judgement, and no prose will be generated that looks like judgement without being it.