Skip to content
VVVER

Design System / 07.11

Effects

Effects must clarify a change, route, layer, or process. Choose the smallest treatment that makes the relationship easier to read.

Component reference

Compare reveal

A native range control for comparing two states in the same frame. Both states remain present in the DOM with explicit labels; the clipped surface and hairline follow direct pointer or keyboard input without eased lag. Use it when aligned layers make a visual difference easier to judge.

Live specimen

Rendered output

Image treatment comparison
Drag the hairline or use the arrow keys to compare the crop and its accompanying information.
Initial cropNeeds edit

Garden shed portrait

Crop
4:3 / sign cut
Caption
Clipped
Credit
Missing
Output
1600 × 1200

Caption and credit incomplete

Revised cropReady

Garden shed portrait

Crop
3:2 / full sign
Caption
Two lines
Credit
M. Santos
Output
2400 × 1600

Caption and credit included

RevisedInitial
58%

API reference

Inputs, types, and behavior

Inputbefore / after
TypeReactNode / ReactNode
BehaviorTwo renderable, positionally comparable states. Blank content omits the figure.
InputbeforeLabel / afterLabel / label
Typestring / string / string
BehaviorWritten names for both layers and the visible figure caption; defaults protect blank strings.
InputdefaultPosition / position
Typenumber = 50 / number?
BehaviorUncontrolled start or controlled percentage, clamped to 0–100. onPositionChange reports the safe value.
InputmediaClassName / className
Typestring? / string?
BehaviorMedia sizing is separate from the figure wrapper; both merge consumer classes last.

Component reference

Knowledge graph

A relationship figure for a finite set of named items. CurrentColor hairlines sit behind an HTML node list; hover or focus dims only unrelated relationships, and reduced motion shows the complete graph.

Live specimen

Rendered output

API reference

Inputs, types, and behavior

Inputnodes
TypeKnowledgeNode[]
BehaviorReads at most 1,000 entries and renders 120. Ids and labels have length limits; if any coordinate is missing, every node uses auto-layout.
Inputedges
Type[fromId, toId][]
BehaviorReads at most 1,000 entries. Unknown, self-referential, duplicate, and malformed edges are omitted.
InputariaLabel / showLabels
Typestring = "Knowledge graph" / boolean = true
BehaviorThe named group exposes each node and its connections; visible labels can be hidden without removing that relation text.
InputnodeSize / drawDuration
Typenumber = 9 / number = 1000
BehaviorSquares clamp to 4–18px. Edge entry clamps to 0–2,000ms and begins after a 180ms lead-in with 65ms cadence bounded to 1.2s; nodes settle over 600ms with staging bounded to 900ms.
InputclassName
Typestring?
BehaviorMerged last on the horizontally scrollable graph wrapper.

Component reference

Layer stack

A tabbed stack for revisions or document states. Tabs select one semantic panel while two offset paper hairlines preserve the stack metaphor. The active sheet settles once over 300ms; reduced motion presents the selected content at rest.

Live specimen

Rendered output

Cover revision stack

Move between three cover revisions while their labels and notes remain in place.

Cover 01 / first setting

Narrow title block

The author line collides with the lower crop at small sizes.

API reference

Inputs, types, and behavior

Inputitems
TypeLayerStackItem[]
BehaviorUp to twelve { label, meta?, content } layers. Blank labels and empty content are omitted.
InputdefaultIndex / activeIndex
Typenumber = 0 / number?
BehaviorUncontrolled or controlled selection with native tab semantics and arrow, Home, and End keys.
Inputlabel / description / headingAs
Typestring / ReactNode? / "h2"–"h6"
BehaviorVisible heading, optional instruction, and a semantic heading level appropriate to the host page.
InputpanelClassName / className
Typestring? / string?
BehaviorPanel and outer wrapper classes merge last without altering the internal stack geometry.

Component reference

QR tree

One isometric scene read from two camera stations. At rest it is a tree standing on a paved plaza; tapped, the camera rises to straight overhead, where the height axis drops out of the projection and the drawing resolves into a scannable code. Nothing is drawn twice — a mark is only ever placed over a module the code already needs dark, and it never leaves that module’s footprint, so the union of the marks seen from above is the matrix. The canopy is carried by hairline outlines and takes its fill only as the code resolves, because only then does the fill carry information. A mark is not a square: paving stays hard-edged so the finder patterns a scanner hunts for stay crisp, wood narrows toward the twigs, and each leaf is a rotated almond that relaxes back into a clean dot as the camera rises. Overhead that leaves the code reading its own footprint — the dotted middle is exactly where the canopy stood. Resting a mouse on the plate previews that reading; the button pins it. The drawing sits on the fixed media ink and paper pair rather than the page palette, because a code that inverts with the theme is unreliable to scan, and the control sits beside the plate rather than over it so nothing can occlude a module.

Live specimen

Rendered output

Encoded value: https://design-system.vvver.com/components/effects

Scan from the overhead reading

API reference

Inputs, types, and behavior

Inputvalue
Typestring?
BehaviorText to encode. Byte mode, versions 1-10; an over-capacity payload renders a stated failure rather than an unreadable code.
Inputmatrix
TypeQRMatrix?
BehaviorPre-encoded square module grid. Supply this instead of value to bring your own encoder; the packaged one is then unused.
Inputcorrection
Type"L" | "M" | "Q" | "H"
BehaviorError correction level, default M. Higher levels survive more occlusion at the cost of a denser code.
Inputstate / defaultState / onStateChange
Type"tree" | "code" / same / (state) => void
BehaviorControlled and uncontrolled view. Both readings are complete at every point in the move, so nothing is withheld while it runs.
Inputcontrols
Typeboolean
BehaviorRenders the built-in button, default true. Turn it off when the host drives state from its own control.
InputhoverPreview
Typeboolean
BehaviorPreviews the code while a mouse rests on the plate, default true. Gated on pointer type, so a touch tap cannot latch it on with no way to leave. A preview only: it never changes state or fires onStateChange.
Inputseed
Typenumber
BehaviorSeeds the canopy scatter. The same seed always draws the same tree, so specimens stay reproducible.
Inputlabel / caption / className
Typestring? / ReactNode? / string?
BehaviorAccessible name for the drawing, mono caption beneath it, and wrapper classes merged last. The encoded value is also exposed to assistive technology, which cannot scan.

Component reference

Route map

A branching architecture figure for fan-out, fallback, and fan-in. Permanent currentColor paths and readable HTML labels share the available width without a nested scroller. Phones receive a complete stage ledger and visible route register instead of a miniature or clipped canvas. Selected routes may carry one brief signal on entry; reduced motion keeps only the complete written map.

Live specimen

Rendered output

Publication output routes
One master file branches into print, web, and archive outputs.
  1. Stage 1: Source
    • Master PDF: Issue 04
  2. Stage 2: Check
    • Preflight: Images + type
  3. Stage 3: Output
    • Press PDF: CMYK
    • Web edition: sRGB
  4. Stage 4: Record
    • Archive: Sources + outputs

Route register / 5

  1. Master PDFtoPreflight01 / direct
  2. PreflighttoPress PDF02 / CMYK
  3. PreflighttoWeb edition03 / sRGB
  4. Press PDFtoArchive04 / bound copy
  5. Web editiontoArchive05 / published

API reference

Inputs, types, and behavior

Inputstages / routes
TypeRouteMapStage[] / RouteMapRoute[]
BehaviorUp to eight stages, eight uniquely identified nodes per stage, and eighty valid directed routes; malformed relations are omitted.
Inputroute.signal / route.label
Typeboolean? / string?
BehaviorEnables the one-shot signal on selected paths. label names the relationship in the route register.
InputsignalDuration
Typenumber = 320
BehaviorSignal duration clamped to 180–360ms. Permanent paths remain visible after it ends.
Inputlabel / description / className
Typestring / ReactNode? / string?
BehaviorVisible caption, optional reading instruction, and consumer wrapper classes merged last; the figure itself never scrolls.

Component reference

Scan field

A user-started scan cue over content that remains fully readable. The currentColor hairline crosses once in at most 380ms, then yields to a written result; hidden tabs finish rather than queueing motion. Reduced motion moves directly from ready to complete.

Live specimen

Rendered output

Image preflight

Start the scan to reveal the preflight result. The checklist stays readable throughout.
01Resolution300 ppi
02Color spaceCMYK
03Bleed3 mm
04Credit linePresent
Ready

API reference

Inputs, types, and behavior

Inputchildren / result
TypeReactNode / ReactNode?
BehaviorContent shown at all times and an optional result revealed after the user starts the scan.
Inputlabel / completeLabel / headingAs
Typestring / string = "Verified" / "h2"–"h6"
BehaviorVisible title, host-appropriate heading level, and completion message announced through the live region.
Inputduration / onComplete
Typenumber = 360 / (() => void)?
BehaviorSweep duration clamps to 180–380ms. Reduced motion calls completion immediately without drawing the sweep.
InputcontentClassName / className
Typestring? / string?
BehaviorField and outer wrapper classes merge last for authored sizing and composition.

Component reference

System flow

Ordered architecture stages with nested actors, permanent currentColor arrow lanes, and one semantic list that is also the visual composition. The field keeps fixed-size labels and scrolls on narrow screens. Each connector receives one 360ms signal pass on entry; reduced motion retains the complete diagram without the travelling mark.

Live specimen

Rendered output

Publication workflow
The issue moves from editorial assembly to prepress and distribution.
  1. Editorial
    • ManuscriptCopy edited
    • Image setCredits attached
  2. Assembly
    • LayoutPages imposed
    • IndexEntries checked
  3. Prepress
    • ImagesCMYK / 300 ppi
    • FontsEmbedded
  4. Delivery
    • Press PDFBleed included
    • Web editionsRGB images

API reference

Inputs, types, and behavior

Inputstages
TypeSystemFlowStage[]
BehaviorUp to twelve ordered stages, each with a written label and up to eight { label, meta? } items; blank stages and items are omitted.
Inputlabel / description
Typestring / ReactNode?
BehaviorVisible figure caption, optional reading instruction, and accessible name for the horizontal diagram.
InputclassName
Typestring?
BehaviorMerged last on the figure; the internal fixed-size diagram rail owns horizontal overflow.

Component reference

Spotlight

A centered currentColor registration frame behind its children. The wrapped content always remains fully present; hover or focus simply lets the decorative hairline recede. There is no global pointer listener, cursor drift, radial mask, or reveal that can lower readable content below the contrast floor.

Live specimen

Rendered output

Focus study / content remains primary

Attention without concealment

Review the route map

API reference

Inputs, types, and behavior

Inputchildren
TypeReactNode
BehaviorNever masked or dimmed by the component.
Inputfloor / size
Typenumber = 0.15 / number = 260
BehaviorControls frame opacity (capped at /15) and square edge length (44–1,200px).
InputclassName
Typestring?
BehaviorMerged last on the positioned group wrapper.