Skip to the page
TACTILE UI

Kit part · Cards & panels

Panel

A face plate that groups what belongs together: a head, a rule, then the parts. Screws only on device-like panels.

Element
<div>
Needs
kit.css
Rules
panel.rules.md · 4
Finishes
Aluminium · Graphite · Porcelain · Black
Volumes
Tactile · Quiet
On this page
  1. Variants
  2. Every state, at once
  3. API
  4. Markup
  5. Accessibility
  6. How it’s built
  7. Rules
  8. Related parts
01

Variants

A face plate. 20px in, 12px corners.

Plain panel
BatteryCharging
78%
With a head

Receiver

24px in, four slotted screws.

Screws · device panels only
02

Every state, at once

Both finishes, side by side. Hover, pressed and focus are forced with .is-hover, .is-down and .is-focus; checked and disabled are real.

Aluminium

PartFaceHeadScrews
Surface
Head

Graphite

PartFaceHeadScrews
Surface
Head
03

API

NameKindValuesWhat it does
.tui-panelclass—A face plate: --tui-face, 20px padding, 12px radius, the raised light and the bead-blast grain.
.tui-panel--screwsclass—Four slotted screws in the corners and 24px padding. For device-like panels only.
.tui-panel__headclass—A row: label on the left (it grows), a status or one small key on the right, a hairline rule under it.
.tui-ruleclass<hr>A printed hairline between groups on one plate.
--tui-grainCSS property0.5 · 0.35Opacity of the bead-blast texture. Set by the finish; do not remove it to “clean up”.
--tui-noise, --tui-screwCSS propertySVG data URIThe grain and the screw, as images the panel draws. Read-only.
04

Markup

<div class="tui-panel">
  <div class="tui-panel__head">
    <span class="tui-label">Output stage</span>
    <span class="tui-status"><span class="tui-lamp" data-on></span>Running</span>
  </div>
  <div class="tui-tray">
    <button class="tui-key">Mute</button>
    <button class="tui-key">Solo</button>
  </div>
</div>

Needs kit.css only, no script. How to install the kit.

05

Accessibility

  • A panel is presentation. If it names a region, use a real heading inside it, or give the element role="region" and an aria-label.
  • The head label is printed text; when it titles the panel, make it a heading element with the tui-label class.
  • Screws and grain are background images: nothing to announce.
06

How it’s built

The face is --tui-face with a ::before carrying an SVG fractal-noise texture at --tui-grain opacity (the bead-blast) and the shared raised light: a one-pixel catch light on the top edge and two soft shadows falling down. The screws are one inline SVG, repeated four times in an ::after, every slot turned the same way. No bitmaps; the noise and the screw are SVG data URIs.

07

Rules

panel.rules.mdIn the brain

One level of panels: a panel holds trays and parts, never another panel.

4 rules in this file, with the foundations they rest on and the anti-patterns that break them. Full rules ship in the brain with the Pass.

08

Tray

A recess cut into the plate that holds other parts: keys, a selector, an empty state waiting for its first thing.

Grille and cloth

Perforated metal and speaker cloth, for the place where a real device would breathe or sound.

Latency p95182ms

Readout

A printed label over a value: key figures, with the unit small and the change in words.

Docs
Finish
Volume