Modus UI

Salon Banner

Web (React)

An oversized serif headline ringed by twelve plates mixed from your theme, orbiting while hovered.

A two-line headline in the theme's heading face, set inside a tilted ring of twelve 4:3 plates. By default the plates are a tonal ladder mixed from the page, muted, primary and foreground tokens and shaded with a halftone field, so the gallery follows light, dark and every palette. The ring rests until a pointer is over it, then comes up to one orbit every 15 seconds and settles back to a stop on leave. The four original galleries — matte (sprung), glitch, riso and halftone — remain available through variant, each with its own palette, field, typeface and orbit.

Twelve quiet studies in tone

Modus / Salon Banner

Installation

CLI

npx @modus-ui/cli add salon-banner

Manual

  1. Copy the code from the component tab.
  2. Create a file at components/ui/salon-banner.tsx.
  3. Paste the code.

Usage

tsx
import { SalonBanner } from "@/components/ui/salon-banner";

export default function Example() {
  return (
    <div className="relative h-[500px] w-full overflow-hidden">
      <SalonBanner variant="horizontal-sweep" text={"NEW WORK\nON THE WALL"} />
    </div>
  );
}

Props

PropTypeDefaultDescription
variant"tonal" | "rising-diagonal" | "falling-diagonal" | "horizontal-sweep" | "vertical-loop""tonal"Tonal theme gallery, or the matte, glitch, riso or halftone gallery.
textstring—Two-line headline split on \n. Defaults to the variant's own.
font"heading" | "serif" | "didone" | "oldstyle" | "sans"—Headline face. Defaults to the variant's face.
weight"400" | "700"—Headline weight. Defaults to the variant's weight.
headlineSizenumber—Headline size multiplier (0.6–1.8). Defaults to the variant's.
colorsstring[]—Twelve plate colours (any CSS colour). Defaults to the variant's palette.
backgroundColorstring—Stage colour. Defaults to hsl(var(--background)).
huenumber0Hue rotation of the final frame, in degrees.
saturationnumber1Saturation of the final frame.
brightnessnumber1Brightness of the final frame.

Comments

  • No comments yet.