Skip to the object
Tactile UI

Light Table

A portfolio gallery made as an edit table: slides in their mounts on opal glass lit from below, the chosen one lifted off it and shown whole in a viewer with its title, place, year and exposure, transport keys and a counter, series keys, and a switch for the table's light.

What it is for

The work section of a photographer's, studio's or illustrator's site.

Installnpx shadcn add https://tactileui.dev/r/light-table.jsonWith a Pass: how

Controls

Printed small above the heading.

Series at start

Among all the frames; if it is not in the series, the series’ first.

The switch on the desk turns it off and on; fires ltb-light.

Empty leaves it out.

Finish

Auto takes the page’s own finish tokens if it has them, then its data-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
Lit opal table, Slide mounts that lift, Viewer figure with caption, Transport keys and counter, Arrow keys through frames, Series radio tray, Table light toggle, Drawn greyscale demo frames, Own frames by src, Container query layout, Concentric radii, Finish following
Stack
Vanilla ES modules, CSS, SVG
Needs
Nothing, no dependencies
States
10 documented
Version
0.1.0
Licence
With a Pass

States

  1. At restThe viewer with the first frame, its caption and the counter at 01 / 09; the desk with All work chosen, the table light on (its lamp lit) and nine slides in three columns, the first lifted off the glass. Nothing runs.
  2. Slide chosenIt lifts 5px and turns a degree, its shadow lengthens; the viewer's picture fades in over 200 ms with its caption; the counter updates; ltb-open fires with { index, id }.
  3. SteppingPrevious and Next, or Left and Right anywhere but the series radios, step through the frames on the table and wrap; Home and End go to the ends; on the table focus follows the slide.
  4. Series chosenIts key stands raised in the tray; the table narrows to that series and the counter counts it; ltb-series fires.
  5. Light offThe switch goes down, its lamp goes dark, the glass becomes a plain recess and the pictures dim; ltb-light fires with { on: false }.
  6. Your own framesframes: [{ title, series, place, year, exposure, src, alt }] puts real photographs in the mounts and the viewer.
  7. TabletUnder 900px the viewer sits above the desk.
  8. PhoneUnder 520px the series keys fill a row and the switch its own, slide titles take two lines, the contrast key fills the width; no sideways scroll.
  9. Reduced motionThe picture swaps at once; slides do not lift or fade.
  10. FinishesOn a page with the kit's finish tokens it is drawn from them, in any of the twelve, the table always the brightest surface; otherwise aluminium or graphite by data-finish, tone or system.

Notes

Where Portfolio Iris opens each photograph behind shutter blades, one at a time, this is the edit table: every frame in view at once on lit glass, and one in the hand. Choose a slide and it lifts; its picture fills the viewer beside the table, with what it is, where, when and how it was shot. Transport keys and the arrow keys step through, series keys narrow the table to one body of work, and a switch turns the table's light off and on. The demo's nine pictures are drawn in greys as SVG; give it your own frames by src and alt. Buttons with aria-current, native radios, a toggle, a figure with its caption, a polite counter. CSS, SVG and a little DOM, no dependency, every finish of the kit.

Original composition. The photographer (Ines Varga), the titles, places, years and exposures are sample copy, and the nine pictures are drawn here in SVG for the demo; the preview says so. The plates, mounts, glass and lamp are CSS in the kit's tokens; no image file. Faces: Instrument Sans and Geist Mono (SIL OFL 1.1), the kit's own.

Anatomy

Lit opal table, Slide mounts that lift, Viewer figure with caption, Transport keys and counter, Arrow keys through frames, Series radio tray, Table light toggle, Drawn greyscale demo frames, Own frames by src, Container query layout, Concentric radii, Finish following

Usage notes

The work section of a photographer's, studio's or illustrator's site. Where Portfolio Iris opens each photograph behind shutter blades, one at a time, this is the edit table: every frame in view at once on lit glass, and one in the hand. Choose a slide and it lifts; its picture fills the viewer beside the table, with what it is, where, when and how it was shot. Transport keys and the arrow keys step through, series keys narrow the table to one body of work, and a switch turns the table's light off and on. The demo's nine pictures are drawn in greys as SVG; give it your own frames by src and alt. Buttons with aria-current, native radios, a toggle, a figure with its caption, a polite counter. CSS, SVG and a little DOM, no dependency, every finish of the kit.

Options

OptionTypeDescription
nametextPrinted small above the heading.
titletextHeading
leadtextLead
seriesenumSeries at start
startnumberAmong all the frames; if it is not in the series, the series’ first.
lightbooleanThe switch on the desk turns it off and on; fires ltb-light.
ctatextEmpty leaves it out.
ctaHreftextContrast key link
finishenumAuto takes the page’s own finish tokens if it has them, then its data-finish, then the visitor’s system.

Methods

  • show
  • next
  • prev
  • update
  • destroy

How it works

Original composition. The photographer (Ines Varga), the titles, places, years and exposures are sample copy, and the nine pictures are drawn here in SVG for the demo; the preview says so. The plates, mounts, glass and lamp are CSS in the kit's tokens; no image file.