← Cycles
Qflow · c8

label controls

activecreated 2026-03-23· last activity 2026-08-15

New in this cycle: Label system — position, color, and background controls (first DevControls build)

What changed

1. Label position & offset

Direction selector (top/bottom/left/right) + offset slider (0–40px). At offset 0, label sits at exact center of the node. Dragging the slider moves it outward in the selected direction.

2. Label color

Hex color text input (default ffffff) replaces the hardcoded 0x9aa8c0 gray-blue.

3. Label background

Rounded rect behind each label with full control over:

  • Bg color (default 0b1c36)
  • Bg opacity (default 0.95)
  • Stroke width and stroke color
  • Pad X / Pad Y — separate horizontal/vertical padding (defaults 3px / 1px)
  • Corner radius (default 2px)

Labels are now a PIXI.Container wrapper (_bg Graphics + _text Text) rather than a bare PIXI.Text. Background redraws on any parameter change.

4. positionLabel() helper

Extracted duplicated label positioning logic (4 call sites) into a single positionLabel(wrapper, radius) function.

5. Reusable dev-controls components

Extracted repeated toolbar patterns into standalone Vue components:

ComponentReplacesCount
ControlSlider.vue<label class="slider-row"> + range input + value display29 instances
ControlColor.vue<label> + hex text input5 instances
ControlSelect.vue<label> + <select> dropdown5 instances
ControlSection.vue<div class="control-group"> + <h3> header8 sections
DevControls.vue<footer class="experiment-toolbar">1 wrapper
  • ControlSlider — v-model, label, min/max/step, optional suffix
  • ControlColor — v-model, label, placeholder
  • ControlSelect — v-model, label, options (strings or {value, label} objects)
  • ControlSection — collapsible section with title + show/hide toggle, collapsed prop for initial state
  • DevControls — wrapper panel with a toggle button to show/hide the entire toolbar

All styles are scoped inside each component. App.vue toolbar markup reduced significantly.

6. Preset support

All new label controls included in the preset save/load/copy/paste system.

Defaults

  • Max size: 28px, offset: 11px, position: bottom, color: ffffff
  • Bg: 0b1c36, opacity: 0.95, pad X: 3px, pad Y: 1px, radius: 2px, stroke: 0

Visual record

9 captures — heroes, page slices, and full-page renders. Click to view.

Labels bottom (default) after ~9s of feed
Labels bottom (default) after ~9s of feed
Labels above nodes
Labels above nodes
Labels left — list-like reading
Labels left — list-like reading
Labels right
Labels right
Background opacity 0 — floating text
Background opacity 0 — floating text
Opaque pills: radius 10, padding up
Opaque pills: radius 10, padding up
Max label size 32 — dashboard-legible
Max label size 32 — dashboard-legible
Stroked label backgrounds
Stroked label backgrounds
c8 hero

Artifacts

/experiments/c8.label-controls/ (local dev)

Qpoint Brand Style Guide