This catalog is generated from the Velt SDK. If a
{token} isnβt listed for its component, it isnβt available there and resolves to undefined; donβt guess names. Coverage is complete for comments, notifications, and core; for other components (Recorder, Huddle, Presence, video editor, β¦) see that componentβs own page under Components in the sidebar.- Display dynamic data within Velt components.
- Use the dynamic data to apply conditional templates or conditional CSS classes.
- Using built-in Velt data
- Injecting your own application data
1. Using Built-in Velt Data
Velt provides access to various data objects that you can display in your components using theVeltData component.
Basic Usage
- React / Next.js
- Other Frameworks
Available Data Objects
Global Variables
These are available across all Velt components:Context-Specific Variables
These are only available within relevant components they are used in:context Variable Resolution
The context variable resolves differently depending on the component it is used in:
Example: Building a Custom User Card
- React / Next.js
- Other Frameworks
2. Injecting Your Own Data
- You can inject custom data from your application to use within Velt components with
setUiState(). - This data is available in all Velt Wireframes, Velt If and Velt Data components.
Setting Custom Data
- React / Next.js
- Other Frameworks
Using Custom Data in Components
Read injected values like any other variable:{uiState.projectName}, or gate with velt-if="{uiState.customFlag}":
- React / Next.js
- Other Frameworks
Older examples read injected values with a bare field name (
field="projectName"). In structured components the short name also resolves (see the access models in the catalog below); if a bare name shows nothing, use the full uiState. path.Context instead; setUiState is app-global.
3. Complete Variable Catalog (Per Component)
Every{β¦} token you can read inside a wireframe, organized by component, with an example usage for each.
How to read the tables:
- Buckets:
app(per-user) Β·data(per-annotation) Β·ui(per-instance) Β·feature(SDK-config flags) Β·iteration(loop-scoped). π = boolean/state flag most useful invelt-if/velt-class. - Two access models: structured features (Comment Dialog, Comment Bubble, Inline Comments Section, Multi-Thread Dialog, Activity Log, Comments Tool, Sidebar Button, Notifications) accept short names (
{annotation},{darkMode}) as well as full paths. Flat-config features (Text Comment, Autocomplete, Sidebar, Reactions, Cursor, Presence, Huddle, Recorder, Transcription, View, Area, Arrow, Selection, Rewriter) read as{componentConfig.<x>}; use the full path for name collisions (disabled,darkMode,variant,user,annotation). - Resolution rule: a name not in the map falls through to
componentConfig.<name>; an unknown name resolves toundefined. If a token shows nothing, check (a) spelling, (b) youβre in a slot that receives it, (c) flat vs structured path. - Every example works in React and Other Frameworks; only the spelling differs (
veltIfprop vsvelt-ifattribute,<VeltData/>vs<velt-data>). Full directive syntax:Conditional Templates.
Comment Dialog
Comment Bubble
Access model: structured; some need fullglobalConfigSignal.* / parentLocalUIState.*.
Comment Pin
Text Comment
Access model: flat-config:{componentConfig.<x>}.
Inline Comments Section
Access model: structured.Multi-Thread Comment Dialog
Access model: structured, per-instance.Autocomplete (@mentions)
Access model: flat-config.Comments Sidebar
Access model: flat-config:{componentConfig.<x>}.
Notifications Panel & Tool
Access model: structured; short names.Reactions
Access model: flat-config.Presence
Access model: flat-config.Cursor
Access model: flat-config.Huddle
Access model: flat-config.Recorder
Access model: flat-config: use fullcomponentConfigSignal. for collisions.
Transcription
Access model: flat-config.Activity Log
Access model: structured.View Analytics
Access model: flat-config.Comments Tool
Access model: structured;componentConfig.data.* / .uiState.*.
Sidebar Button
Access model: structured.Area Β· Arrow Β· Selection Β· Rewriter
Access model: flat-config.Tags
No wireframe variables / slots. Customize via the[template] input on velt-tag-pin / velt-tag-dialog, CSS, or the headless useTagAnnotations / useTagUtils hooks. See Annotations, tags, arrows, and areas.
Notes
- Iteration
{i}(aliasescommentIndex) is available inside list/Threads slots, 0-based. Loop slots also inject objects (option,filter,emoji,activity,dateGroup,chip,view,file, β¦) + per-item booleans (isSelected,isActive,isExpanded,isAscending). - Function-typed variables (
onClickβ¦,initRecording,toggleSidebar,handleEmojiSelected, β¦) are call-handlers you bind to events, not display values. - For deep fields of a compound object not listed,
console.logit from a hook (e.g.useCommentAnnotations()) to see the exact shape.

