Skip to content
Aurora Lab
Experimental · 12.10.2026

Hinged Margin Note

A compact editorial annotation behaves like a paper fold: activating the narrow tab makes a tucked note hinge outward from its ruled edge. The interaction reveals one useful detail in place, preserving the element’s footprint and keeping the motion legible rather than decorative.

Interactive preview

960 × 640
About this effect

What is Hinged Margin Note?

A compact editorial annotation behaves like a paper fold: activating the narrow tab makes a tucked note hinge outward from its ruled edge. The interaction reveals one useful detail in place, preserving the element’s footprint and keeping the motion legible rather than decorative.

How it’s built

The note begins as a quiet ruled fragment beside a slim vertical edge. Clicking the trigger expands a clipped detail below it while a perspective rotation settles the folded surface into place. The control remains a native button with an explicit expanded state, and the detail is removed from the accessibility tree while closed.

Ideal for

  • Inline definitions beside editorial copy
  • Compact documentation annotations
  • Contextual notes in portfolio indexes

Accessibility

Uses a native button, visible keyboard focus, an aria-expanded state, an associated aria-controls target, and concise live content. Reduced-motion preferences are respected by shortening transitions without removing the state change.

Performance

Uses only CSS transforms, opacity, and grid interpolation with no assets, libraries, canvas, or network requests. The interaction is driven by one click listener and remains lightweight on touch devices.

Source code

Explore, copy and reuse the original HTML, CSS and JavaScript.

<main class="showcase" aria-label="Interactive component preview">
  <div class="inner-wrap">
    <section class="hinge-note" data-motion="on">
      <div class="note-paper" aria-live="polite">
        <p class="note-copy" data-ali-i18n="copy_2">A detail can unfold without taking over the page.</p>
      </div>
      <button class="hinge-trigger" type="button" aria-expanded="false" aria-controls="hinge-detail">
        <span class="trigger-open" data-ali-i18n="copy_1">Open note</span>
        <span class="trigger-close" data-ali-i18n="copy_3">Close note</span>
        <span class="hinge-mark" aria-hidden="true">↗</span>
      </button>
      <div id="hinge-detail" class="hinge-detail" hidden>
        <div class="detail-rule" aria-hidden="true"></div>
        <p data-ali-i18n="copy_4">Useful context, kept close.</p>
      </div>
    </section>
  </div>
</main>