Skip to content
Aurora Lab
Hover Effects · 29.10.2026

Registration Flip

A single fashion-editorial archive label uses a restrained letterpress flip on hover. Each letter turns on its horizontal axis to reveal a raspberry reverse, creating the impression of a printed registration change while the word remains legible and spatially composed. Focus and touch can pin the same state.

Live preview

960 × 640
Behind the interaction

What is Registration Flip?

A single archive label borrows from print registration: each letter flips independently to reveal a raspberry reverse, creating a composed fashion-editorial hover gesture without a card, underline, or decorative frame.

How it works

Every letter contains two backface-hidden layers with the same character. Hover, keyboard focus, or the pinned touch state rotates the individual glyphs on the X axis with a short stagger, exposing the raspberry layer behind the original ink.

Where to use it

  • Fashion and culture archives with a distinctive text-only navigation cue
  • Portfolio indexes where a wordmark should respond without becoming a card
  • Editorial campaign interfaces using typography as the primary visual material

Accessibility

The interaction is a native button with an accessible archive label, visible keyboard focus, aria-pressed state, and a live local status message. The visible letter layers are hidden from assistive technology to prevent duplicate reading. Reduced-motion users receive the state change without transition.

Performance

The effect uses seven small transform animations and no external assets, filters, layout measurement, or network requests. Pointer hover is handled entirely by CSS; JavaScript only manages the touch-friendly pinned state and status text.

Source code

Explore and copy the original source. Interactive previews apply localized labels, while source code keeps the original strings (usually English). For translated dynamic labels in a project, use AuroraLabI18n.t(key, fallback).

<main class="scene">
  <button class="registration-word" type="button" aria-pressed="false" aria-describedby="interaction-status">
    <span class="sr-only" data-ali-i18n="copy_1">Open archive</span>
    <span class="wordmark" aria-hidden="true">
      <span class="glyph" style="--i:0"><span>A</span><span>A</span></span>
      <span class="glyph" style="--i:1"><span>R</span><span>R</span></span>
      <span class="glyph" style="--i:2"><span>C</span><span>C</span></span>
      <span class="glyph" style="--i:3"><span>H</span><span>H</span></span>
      <span class="glyph" style="--i:4"><span>I</span><span>I</span></span>
      <span class="glyph" style="--i:5"><span>V</span><span>V</span></span>
      <span class="glyph" style="--i:6"><span>E</span><span>E</span></span>
    </span>
  </button>
  <span class="interaction-status" id="interaction-status" aria-live="polite" hidden></span>
</main>