Every color, space, radius and font of the lists, trees and boards comes
from a --narabe-* custom property. The defaults have no specificity, so
a value set on :root, on an ancestor or on .narabe itself wins:
:root {
--narabe-accent: #0f766e;
--narabe-radius: 4px;
--narabe-row-height: 2.5rem;
}The defaults are Erabi's, so that a page with both looks like one thing.
The properties
| Type | --narabe-font, --narabe-font-size, --narabe-small, --narabe-line-height |
| Colors | --narabe-text, --narabe-muted, --narabe-background, --narabe-surface, --narabe-border, --narabe-accent, --narabe-accent-text, --narabe-refused, --narabe-hover, --narabe-selected, --narabe-match |
| Shape | --narabe-radius, --narabe-inner-radius, --narabe-row-height, --narabe-space, --narabe-indent |
| Boards | --narabe-column-width, --narabe-card-gap, --narabe-card-shadow |
| Depth and motion | --narabe-shadow, --narabe-transition |
--narabe-accentis the focus outline, the drop line and the swipe actions;--narabe-refusedis the line of a drop that the rules refuse.--narabe-hoverand--narabe-selectedare the backgrounds of a row under the pointer and of a selected row; by default they mix the text or the accent into the background.--narabe-matchmarks the letters the filter matched (a CSS custom highlight,::highlight(narabe-match)).--narabe-indentis a tree's indent per level. A drag reads it too: a pointer that moves one indent sideways changes the level by one.--narabe-shadowis the shadow of the dragged copy;--narabe-card-shadowthat of a board's cards.
Narabe sets --narabe-level on each row (its level in a tree) and
--narabe-peer on rows that other people are on (their color); use them
in your own rules, do not set them.
Dark
The defaults are light, and dark under data-theme="dark" (the attribute
of Phoenix's themes) or the class dark on an ancestor. narabe.css
does not follow prefers-color-scheme by itself.
Sumi
narabe-sumi.css, after narabe.css, maps every property to the Sumi
tokens of the page: its daisyUI theme colors, or the short --sumi-*
names (--sumi-ink, --sumi-paper, --sumi-accent, ...), or Sumi's own
palette when the page has none. Its palette is dark under
data-theme="dark", and under a dark preference unless the page says
data-theme="light".
Touch
On a coarse pointer, rows are taller (--narabe-row-height is 2.75rem),
handles are larger, and a board's columns snap into place as it scrolls
sideways, each at most 85% of the screen wide. Swipe actions show on a
coarse pointer only.
Reduced motion
With prefers-reduced-motion, the rows, the tree's arrows and the lines
of other people do not animate.
Classes
| The whole | .narabe, with .narabe-list, .narabe-tree, .narabe-board or .narabe-picker; .narabe-ready once the hook mounts; .narabe-moving while an item is lifted; .narabe-drilling while a tree shows one level at a time |
| Rows | .narabe-item, .narabe-content, .narabe-label, .narabe-handle, .narabe-toggle, .narabe-actions |
| Row states | .narabe-selected, .narabe-lifted, .narabe-locked, .narabe-context (an ancestor shown by the filter), .narabe-peer, .narabe-held |
| Boards | .narabe-columns, .narabe-column, .narabe-column-header, .narabe-column-title, .narabe-column-count, .narabe-column-body, .narabe-column-footer, .narabe-column-handle |
| Drawn by the hook | .narabe-indicator (the drop line; .narabe-indicator-inside, .narabe-indicator-vertical, .narabe-refused), .narabe-ghost (the dragged copy) and .narabe-count (how many it carries), .narabe-filter, .narabe-drill, .narabe-back, .narabe-drill-title, .narabe-rename, .narabe-peer-line, .narabe-peer-name |
While a drag is on, the page's <html> has .narabe-dragging.