Skip to the object
Tactile UI

Fluted Glass Hero

A full-bleed hero over a wall of ribbed glass with one warm lamp drifting slowly behind it. Every rib refracts the lamp into its own slice of light, with a lit edge, a faint caustic and a soft colour at the hot core.

What it is for

The opening section of a lighting, audio or hardware maker, or any product that wants one warm, quiet picture behind its headline.

Installnpx shadcn add https://tactileui.dev/r/fluted-glass-hero.jsonWith a Pass: how

Controls

Printed small above the headline. Empty leaves it out.

Empty leaves it out.

Empty leaves it out.

Heading level

h1 when this is the top of the page.

The colour of the light (--hb-tint): any CSS colour. Its lightness is held in range and its chroma capped (0.16 at most). Empty is the house default.

A hue the greys lean toward (--hb-tone), by the strength below.

--hb-tone-strength, 0 to 0.12. At 0 the greys are plain.

--hb-intensity, 0.4 to 1.4: how strong the light is.

Off holds one still picture, as reduced motion does.

Finish

Auto takes the page’s own finish, then the visitor’s system.

Everything you set here is what the Code and Prompt tabs give you.

Seats open in 11 days. Want one email that morning?

Datasheet

Mechanism
Ribbed glass refraction, Single lamp drift, Rib edge and caustic, Static film grain, Css fallback picture, Colour tuning variables, Container query layout, Pause off screen
Stack
Vanilla ES modules, CSS, WebGL
Needs
Nothing, no dependencies
States
10 documented
Version
0.1.0
Licence
With a Pass

States

  1. At restThe backdrop in its default light, drifting very slowly (a cycle of 20 seconds or more); the words in the slot: eyebrow, headline, one sentence, a contrast key and a second key.
  2. TintedSet --hb-tint (or the tint option) to a brand colour: the light takes it. Its lightness is held in the range the picture was drawn for and its chroma capped (${b.chroma}), so the words keep their contrast.
  3. TonedSet --hb-tone and --hb-tone-strength (0 to 0.12): the greys lean toward that hue at their own lightness. --hb-intensity (0.4 to 1.4) sets how strong the light is.
  4. Hover and focusKeys brighten on hover and sink by their skirt when pressed; every link shows a 2px focus ring.
  5. FinishesAluminium (light) or graphite (dark), by the finish option, the page’s data-finish or tone, its colour scheme, or the visitor’s system.
  6. TabletUnder 700px of container width the layout re-composes; the headline and sentence take the full width.
  7. PhoneUnder 520px of container width the keys fill the width, one above the other; no sideways scroll at 390px.
  8. Reduced motionThe animation stops and one still picture is drawn. The same happens with the motion option off.
  9. Off screen or hiddenEverything pauses when the section is off screen or the tab is hidden, and resumes when it is back.
  10. No hardware graphicsOn a browser that draws with the CPU the picture holds still: one frame, no loop.

Notes

The glass is a real shader, the words are ordinary HTML in a slot, and the light takes your brand colour: set one custom property and the lamp is yours, with the words still readable.

Original composition. Orrery Lighting and all copy are invented. No image file: the picture is CSS, one small WebGL shader. Face: Instrument Sans (SIL OFL 1.1), the kit's own.

Anatomy

Ribbed glass refraction, Single lamp drift, Rib edge and caustic, Static film grain, Css fallback picture, Colour tuning variables, Container query layout, Pause off screen

Usage notes

The opening section of a lighting, audio or hardware maker, or any product that wants one warm, quiet picture behind its headline. The glass is a real shader, the words are ordinary HTML in a slot, and the light takes your brand colour: set one custom property and the lamp is yours, with the words still readable.

Options

OptionTypeDescription
eyebrowtextPrinted small above the headline. Empty leaves it out.
titletextHeadline
leadtextSentence
ctatextEmpty leaves it out.
ctaHreftextContrast key link
cta2textEmpty leaves it out.
cta2HreftextSecond key link
headingenumh1 when this is the top of the page.
tinttextEmpty is the house default.
tonetext
toneStrengthnumberAt 0 the greys are plain.
intensitynumber
motionbooleanOff holds one still picture, as reduced motion does.
finishenumAuto takes the page’s own finish, then the visitor’s system.

Methods

  • refresh
  • update
  • destroy

How it works

Original composition. Orrery Lighting and all copy are invented. No image file: the picture is CSS, one small WebGL shader.