Skip to main content

Menus & navigation

Lantern festival dropdown menu

Pull the string and five paper lanterns drop down on their cords, swaying until they settle. It is a dropdown menu with personality — built for seasonal campaigns, event pages and brands that want navigation to feel celebratory.

  • 8.8 KB compiled
  • 420 × 360 artboard
  • 1 input
  • 9 runtimes
Live

How it works

  1. isOpen switches between Closed and Open states.
  2. The lanterns drop down on their cords as the menu opens.
  3. Per-lantern click animations (Blossom, Moon, Wish, Love, Sun) confirm the choice before navigating.
InputTypeWhat it does
isOpenBooleanDrops the lanterns (true) or lifts them back up (false).

When to use it

  • Festival, holiday and seasonal campaign pages
  • Event and ticketing sites
  • Restaurant or hospitality menus

Accessibility

Mirror the five destinations in a real list for assistive tech and honour prefers-reduced-motion by opening without the sway.

Also searched as: animated dropdown menu · festive navigation · seasonal menu

Use it in your app

One component, one file. Pick your stack:

import { ExodeUICanvas } from 'exodeui';

export function LanternDropdownMenu() {
  return (
    <ExodeUICanvas
      src="/lantern-menu.bexode"
      autoPlay
      onReady={(engine) => {
        // drive it from your own UI:
        // engine.setInputBool('isOpen', true);
      }}
    />
  );
}

React loads the compact .bexode; the other runtimes load the .exode JSON source — both come from the same design.

Questions

Is this a full dropdown or just decoration?

It is a working menu: each lantern is clickable and the open state is an input your app controls.

How big is it?

About 8.8 KB as a compiled .bexode file.

Make it yours in ExodeUI.

Change the colours, the timing, the logic — then ship the same file.