Block · Features
Cloth-lit Cubes
A features row of small devices on a desk. Each feature is a cube in speaker cloth with its icon lit through the weave; one shows its figure on lamps, one breathes as the live one.
- Version
- 0.1.0
- Size
- 71.6 KB gzipped
- Access
- Free with an account
- Needs
- cloth-cubes.mjs + cloth-cubes.css
- Tests
- 10 tests · 13 states
On this page
Use it
The features section of a product that runs something and shows its state: an agent runtime, a devtools or infrastructure service, an energy or IoT platform. Each feature becomes a device you could put on a shelf: its name, two lines, a printed spec and a link under a lit icon, with a real number on the matrix and one device live. Free with an account as the taste of Tactile UI's blocks: pure CSS and SVG, no dependency, both finishes.
Copy the cloth-cubes folder from its package next to your page, link the stylesheets and mount it on an element. Every option has a default; the lab’s Code tab writes the same example at any settings, and for React, Vue, Svelte or a custom element (Using a framework).
<link rel="stylesheet" href="cloth-cubes/cloth-cubes.css">
<div id="cloth-cubes"></div>
<script type="module">
import { mount } from './cloth-cubes/cloth-cubes.mjs';
const clothCubes = mount(document.getElementById('cloth-cubes'), {
label: 'Lode · agent runtime',
title: 'A runtime you can read from across the room.',
lead: 'Lode runs long-lived agents in production and reports on them the way a good appliance does: a light in the right place, a key that stops it, and numbers that are true.',
});
// clothCubes.update({ … }); change any option in place
// clothCubes.destroy(); and take it away again
</script>Options
| Option | Type | Default | What it does |
|---|---|---|---|
| label | text | 'Lode · agent runtime' | Printed small above the headline. |
| title | text | 'A runtime you can read from across the room.' | Headline |
| lead | text | 'Lode runs long-lived agents in production and reports on them the way a good appliance does: a light in the right place, a key that stops it, and numbers that are true.' | Lead |
| t1 | text | 'Runs you can stop' | Feature 1 |
| b1 | text | 'Every run has a stop key. Press it and Lode halts the agent between tool calls, then rolls back what it wrote (files, tickets, rows) to the last checkpoint.' | Feature 1, text |
| t2 | text | 'Every deploy on one lamp' | Feature 2 |
| b2 | text | 'One light per environment. Green is serving, amber is rolling out, red has rolled back. Whoever is on call reads production from the door.' | Feature 2, text |
| t3 | text | 'Cold starts under 40 ms' | Feature 3 |
| b3 | text | 'Agents wake from a memory snapshot, not a container build, so a run that has slept for a week answers as fast as one that never stopped.' | Feature 3, text |
| t4 | text | 'Keys that expire with the run' | Feature 4 |
| b4 | text | 'Tools get credentials scoped to one run. An agent can read the repository it was asked about and nothing else, and the grant dies when the run does.' | Feature 4, text |
| stat | text | '38' | Digits and one point, lit through the cloth of the third device. |
| unit | ms · s · % · none | 'ms' | Unit on the matrix |
| count | number, 3 to 4 | 4 | Devices |
| live | none · 1 · 2 · 3 · 4 | '2' | The one whose lamp breathes and says Live. None: all rest. |
| lamp | filament · green · amber | 'green' | Green: serving. Amber: working. Filament: warm white like the rest. |
| aurora | off · borealis · ember · lagoon · prism · mono | 'off' | The live lamp as a slow mesh of colours drifting through its icon: borealis (greens, teals, a touch of violet), ember (amber to red to magenta), lagoon (cyan to blue to green), prism (the full spectrum) or mono (shades of one colour). In your own code, lamp: 'aurora'. |
| auroraSeed | number, 0 to 9999 | 7 | The same seed is always the same aurora: where each colour sits, how large, how it drifts. |
| auroraColors | text | '' | Two to five hex colours of your own, in place of the pattern. One colour is its shades. |
| pulse | boolean | true | The live lamp breathes with a rest between breaths, with a Pause key. Never under reduced motion. |
| form | cube · puck | 'cube' | A cube, or a low square puck. |
| weave | speaker · twill | 'speaker' | Speaker cloth, or a fine diagonal twill like denim. |
| finish | auto · aluminium · graphite | 'auto' | Auto follows the page’s data-finish, then the visitor’s system. |
Methods
mount(element, options)- Builds the block inside the element and returns its handle.
handle.pausedhandle.update(next = {})- Change options in place.
handle.destroy()- Stops it and cleans up after it.
States
- At restEvery device lit at its resting level: a warm filament behind pale grey cloth (aluminium) or charcoal cloth (graphite); nothing runs.
- Hover or focusThe tile's lamp rises from 84% (90% on graphite) to full over 240 ms; the link or key inside it takes a 2px focus ring.
- LiveOne device (the second by default) glows green or amber and breathes (down to 42% and back over 2.6 s, then a rest) with a lamp and “Live” printed under it.
- PausedThe Pause key latches below the plate (aria-pressed, now “Resume”) and the breath stops where it was.
- Off screenAn IntersectionObserver pauses the breath; nothing else ever runs.
- FigureThe third device lights its number (and ms, s or %) on a 5 × 7 dot-matrix behind the cloth; the spec line under it repeats the figure in words.
- PuckThe same devices as low square pucks, the icons scaled to the shallower face.
- Three devicesThree in a row; on a tablet the third spans both columns with its device beside its words.
- FinishAuto follows the nearest data-finish around the section (watched live) and then the system; pale grey heather on bead-blasted aluminium, or charcoal heather on graphite.
- TabletHead stacked; two devices per row.
- PhoneOne column; each feature a row with its device beside its words.
- AuroraThe live lamp can be an aurora: a slow mesh of colours drifting through the lamp's own icon, blurred into the fibres and sharp through the weave. A seed fixes it; the Pause key and going off screen hold it.
- Reduced motionNo breath and no transitions; the live lamp stays lit, “Live” stays printed and the Pause key is hidden.
How it works
Made of: Css 3d device, Svg weave tile, Weave masked backlight, Plus lighter glow, Dot matrix figure, Fixed lamp face shading, Container query layout, Finish following, Offscreen paused breath.
Original composition. The product (Lode), its features and numbers are invented. The devices are CSS 3D with SVG textures drawn for this block; no photograph. Face: Instrument Sans (SIL OFL 1.1), the kit's own.