Skip to the page
TACTILE UI

Kit part · Empty states

Empty tray

An empty state drawn as an empty machined tray. The shape of what goes in it, a file, a key or a card, is cut into its floor the way a case is cut for the thing it carries. Under it: what is missing, one line on why, a key that fills it and, if you like, a link to read more. It is markup and nothing else.

Element
section.tui-empty-tray
Needs
kit.css
Rules
empty-tray.rules.md · 5
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

No files in this project yet

Uploads, exports and build logs are kept here once Lode has something to keep.

What Lode keeps
A file

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

How keys work
A key

No payment card on file

Add a card before the trial ends on 14 October and the plan carries on without a break.

A card

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

No link

Nothing has been shared with you

Files other people share with you will be listed here.

Nothing to add: no key

No payment card on file

Add a card before the trial ends on 14 October and the plan carries on without a break.

Wide and short · --row
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

PartFileKeyCardKey focus
Tray

No files in this project yet

Uploads, exports and build logs are kept here once Lode has something to keep.

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

No payment card on file

Add a card before the trial ends on 14 October and the plan carries on without a break.

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

Graphite

PartFileKeyCardKey focus
Tray

No files in this project yet

Uploads, exports and build logs are kept here once Lode has something to keep.

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

No payment card on file

Add a card before the trial ends on 14 October and the plan carries on without a break.

No signing keys yet

A key lets a service sign in to Lode without a person. Issue one and it is listed here.

03

API

NameKindValuesWhat it does
section.tui-empty-trayelementaria-labelledbyThe tray: a raised plate with the bed cut into it. Labelled by its title.
data-shapeattribute"file" · "key" · "card"What is cut into the floor. File by default.
--rowclasswide and shortThe bed to the left of the words. It folds to a column on a narrow screen.
.tui-empty-tray__bed · __shapeclassaria-hiddenThe recessed floor and the debossed shape in it. The shape is a picture and is hidden from assistive technology.
h3.tui-empty-tray__titleelementa headingWhat is missing, said plainly. The heading level is yours; h3 is the default.
.tui-empty-tray__reasonclassone sentenceWhy it is empty, or how it fills.
.tui-empty-tray__nextclasskey · linkThe next step: a key with the act on it, and an optional link for reading more. Leave it out where people cannot add anything.
--tray-wcustom propertylengthThe width of the shape. 132px, or 104px in a row.
04

Markup

<section class="tui-empty-tray" data-shape="key" aria-labelledby="keys-t">
  <div class="tui-empty-tray__bed">
    <span class="tui-empty-tray__shape" aria-hidden="true"></span>
  </div>
  <div class="tui-empty-tray__front">
    <h3 class="tui-empty-tray__title" id="keys-t">No signing keys yet</h3>
    <p class="tui-empty-tray__reason">A key lets a service sign in to Lode without a person.
      Issue one and it is listed here.</p>
    <div class="tui-empty-tray__next">
      <button type="button" class="tui-key tui-key--primary">Issue a key</button>
      <a class="tui-link" href="/docs/keys">How keys work</a>
    </div>
  </div>
</section>

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

05

Accessibility

  • The words are real text under a real heading, and the tray is named by it, so a screen reader arrives at “No signing keys yet” and not at a picture.
  • The shape is a decoration and is hidden from assistive technology; nothing depends on seeing it.
  • The key is a real button, or a link if the act is a page, and the link is a real link. Tab reaches the key, then the link, in the order they are read.
  • The tray keeps to ink on the face in both finishes: the title is 12:1 and the reason more than 5.5:1 against the plate.
  • Nothing moves, so there is nothing to turn off with reduced motion.
06

How it’s built

A raised plate with a bed let into it: the rim is 6px and so is the bed’s corner, which makes the plate’s 12px concentric. The bed has deeper walls than the kit’s plain recess, because it is a tray and not a field. The shape is one SVG silhouette (a sheet with its corner turned, a key, a card with its chip) used twice as a mask: a lit copy a pixel and a half lower, which shows along the lower lip of the cut, and a dark copy that is deepest under its upper wall. The holes in the silhouette, the chip and the lines of print, are the floor showing through. So the cut is drawn with the same one light as everything else, and there is no image to load.

07

Rules

empty-tray.rules.mdIn the brain

For a view that will hold one particular thing, and can say which.

5 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
No circuits yet

Empty state

What a view shows before it has anything: an empty tray with the outline of what goes in it printed on its floor, one sentence and one key.

Drop files here

Ready0 files

Drop zone

An in-tray for files. A machined lip stands round a ribbed floor; the floor rises a little when a file is dragged over it, and a lamp on the lip lights. What goes in lands in the tray as a sheet of paper and is listed as printed rows, a refusal says why, and the key inside the tray is a real file input.

  1. IntroPiano, room mics1:12
  2. LodeFull band4:05
  3. Night reelVocal and tape3:42

List

Rows in a rack: a mark, a title, a second line and a fact or a key at the end. Chosen rows sink into a recess with their check key latched; in a running order, a row lifts out of the rack on its skirt and slides past the others, from the keyboard or by its grip.

Docs
Finish
Volume