Inspector fields
Dense property editing for editors: property panels and rows, slider fields, vectors with aspect lock, box sides, angles, colour, swatches, gradients and nine-slice guides.
01PropertyPanel
PropertyPanel
The inspector's frame: a header for the thing being edited, then collapsible sections of dense two-column rows. Rows are Fields, so the control inside picks up its id, label and hint; sections remember whether you left them open.
Hydrate alert Widget
Image · alerts layer
Linked to the Hydrate widget
Below 100% the layer behind shows through.
Name
Select a layer on the canvas or in the Layers list to change it here.
02SliderField
SliderField
A slider for feel and a number for precision, editing one value. Every change reports its phase: drag while it moves, commit when the gesture ends, so an editor can record one undo step per drag.
03VectorInput
VectorInput
Two numbers that belong together. Each prefix is a scrub handle: drag it sideways (Shift for big steps, Alt for fine ones). With the lock on, a size keeps the proportions it had when the lock went on.
04BoxSidesInput
BoxSidesInput
Four related numbers with a “same for all” link: padding and insets by side, or radii by corner. Linked shows one field; unlinked shows four, each tagged with its side or corner.
05AngleInput
AngleInput
A dial and a number. The dial is a slider: drag around it (Shift snaps to 15°), or use the keys. A change commits when the drag or key ends, never on Tab, so a whole turn is one undo step.
06ColorInput
ColorInput
A swatch over a checkerboard that opens the picker, a hex field (#rgb, #rrggbb or #rrggbbaa) and an opacity field. Theme colours stay linked: they show as a named chip with Detach, and follow the theme until detached.
No opacity for outlines.
Theme colours
07SwatchGrid
SwatchGrid
A radio group of swatches: one tab stop, arrows move in two dimensions and select, every swatch is named, and the chosen one carries a check, so it's never colour alone.
08GradientEditor
GradientEditor
Stops are focusable handles: drag or arrow them along the bar, Delete removes one (never below two). Clicking the bar adds a stop with the colour already there, mixed in OKLab so midpoints don't go muddy; Add stop does the same from the keyboard.
Arrow keys move the stop; Delete removes it.
09OptionalField
OptionalField
A property that may have no value at all: “None” with an Add button, or its controls with a Remove button. Add lands focus on the new controls; Remove lands it back on Add.
10PickerTrigger
PickerTrigger
A button that shows a value and opens a picker for it: a font in its own face, an icon, a sound. It takes a Popover or Dialog's trigger props as they are.
11IconPicker
IconPicker
Search the set or browse the grid. ↓ from the search moves into the grid; arrows move in two dimensions; typing letters jumps to the next icon starting with them; Enter picks and focus returns to the button.
12IconRadioGrid
IconRadioGrid
One of a few choices shown as pictures. A radio group: one tab stop, arrows move in two dimensions and select (skipping unavailable tiles), and every tile is named.
13SliceEditor
SliceEditor
Nine-slice guides over a frame picture: corners stay put, edges stretch one way, the middle stretches both. Each guide is a slider with a 24px grab strip; arrows move a line the way they point, whichever edge it measures from.
14Composed: text style
Composed: text style
The pieces together, as the overlay editor's text inspector: a font in its own face, size and weight sliders, a linked theme colour, and an optional shadow built from a vector, a slider and a colour.
Alert title
Text · Hydrate alert
Stay hydrated!
15Composed: frame
Composed: frame
The frame editor rebuilt from kit parts: a shape, corner radii, a gradient fill and nine-slice guides over the result.
Alert frame
Frame preset
Arrow keys move the stop; Delete removes it.