Source of truth: exhaustive for what it covers. Generated from Velt customization metadata.
- If a name isn’t on this page (or its linked companions), it doesn’t exist: don’t use it.
- Never invent or guess a name; use only identifiers that appear verbatim here or in the companion references, or that you verified against ground truth and added here.
- Scope: comments are mapped exhaustively (primitive ↔ wireframe); other features are summarized at the end: see the companion references for their complete data.
Other features).
Companion references (use these for the complete data):The slot trees on this page are an orientation overview; the complete trees + slot props live in
Wireframe components: all 82 wireframe components + full slot trees + slot input props.Primitives: all 491 primitive components (incl. every sub-component).Component config: layout/mode props (filter layout, embed mode, panel mode, …).CSS classes: structural + stateful CSS classes.Wireframe variables: the{variable}catalog.
Wireframe components. Don’t invent names.
Comments: primitives ↔ wireframes
Dialog dropdown sub-wireframes also exist:
VeltCommentDialogOptionsDropdownTriggerWireframe / …ContentWireframe, and the same for Status and Priority dropdowns.
Snippyly*names are the legacy pre-”Velt” brand. Internally the SDK still defines components underSnippyly*directory/identifier names (SnippylyComments,SnippylyCommentTool,SnippylyPresence, …): Snippyly was Velt’s former product name. The package re-exports each one only under itsVelt*name; there are no publicSnippyly*exports to import. Always use theVelt*equivalent (SnippylyComments→VeltComments,SnippylyCommentTool→VeltCommentTool, …).
Surface lookup: props · flags · variables · refs (the one-stop map)
One entry per surface, so you can resolve everything for a surface from a single place. Each row lists:- The primitive and the root wireframe (registering the root is what turns shadow DOM off for that surface: see
CSSand decision-tree S6). - The key props a customization typically sets.
- The off-by-default flags to enable if the design shows them.
- The key
{variables}for dynamic markup.
Props, Feature flags, and Wireframe variables; slot trees are Wireframe components. Never use a name that isn’t in those (R10).
Root-wireframe note: each surface’s top-level
Velt…Wireframe below is its root: registering it removes that surface’s own shadow DOM (class CSS reaches it). Dialog and pin are verified in-browser in Wireframe components. Nested/leaf-only wireframes don’t remove shadow: set shadowDom={false} there.Comments
Gotchas & refs:
- Comment dialog:
ThreadCardmust nest inBody → Threads. SeeWireframesand the slot tree below. - Comment pin:
Index/Numberslots are empty containers: print with<velt-data field="annotation.annotationIndex">; page-mode comments have no index/number. - Sidebar (V1): container slots drop undeclared children: declare the full tree.
- Text / Inline / Multi-thread surfaces: see
Comment surfaces. Comment tool context: seeContext.
Notifications
Details for all notification surfaces:
Notifications.
VeltCommentDialogWireframe slot tree
The slots are static properties on VeltCommentDialogWireframe (and its nested .ThreadCard / .Composer / .AssigneeBanner / options content). They’re flat: you choose how to arrange them in your layout. Fill the ones you want; the rest fall back to defaults.
This is the complete top-level set (the deeper tree is in Wireframe components):
VeltCommentDialogWireframe.* (top-level slots)
VeltCommentDialogWireframe.ThreadCard.*
Nested slot sets
Deeper nesting and each slot’s props are inBehavior lives in these slots (resolve, delete, submit, etc.): your markup goes inside a slot as its appearance (see the interactivity rule).Wireframe components; what each slot is is defined inComponent definitions.
Sidebar slot trees
VeltCommentsSidebarWireframe: commonly-used slots (the complete set is in Wireframe components):
VeltCommentsSidebarV2Wireframe.*: complete top-level slots:
The full sidebar slot trees (V1 and V2, including composer attachments image/other → delete/download/loading, thread-card assign-button, reply-avatars, comment-bubble comments-count, …) are in Wireframe components.
How to find the complete slot list for a feature
Wireframe components: the full slot tree + slot props for every wireframe.Wireframe variables: every{…}variable, grouped by feature.- To confirm what a specific element renders as, inspect it in DevTools (
shadowDom={false}) and look forvelt-*-wireframetags.
Other features (brief)
Each has a primitive + (usually) a wireframe family; seeOther features:

