Skip to main content
Three comment variants beyond the standard dialog/sidebar. They reuse the comment data model and hooks (so the comment hooks in Hooks apply), and each is wireframed.
Have this design in Figma? The UI Customization Plugin for Cursor and Claude Code turns a Figma design into verified Velt UI customization (comments and notifications today): it picks the approach, builds a comment surface like these in your app, and verifies the result against the design in a real browser.
Looking for the standard comment surfaces? The dialog, sidebar (V1/V2), sidebar button, pin, bubble, and comment tool aren’t on this page: they’re the running examples throughout the approach guides (Wireframes, CSS, Primitives), and each has a one-stop entry (primitive · root wireframe · key props · flags · variables · refs) in the Surface lookup map in Component catalog. Start there for any standard comment surface; this page is only the three variants below.

Components

Full examples: each variant has per-component pages with complete tabbed code examples and screenshots: Inline comments section wireframes, Multi-thread comments wireframes, Text comment tool wireframes, and Text comment toolbar wireframes.

Config props

CSS: stateful classes

None dedicated to these variants: they reuse the comment-dialog classes. Theme via --velt-* and override structural classes with !important because Velt’s own styles are high-specificity; see CSS. See also CSS classes.

Wireframes: slot trees + tokens

Text Comment

VeltTextCommentToolbar wireframe → .CommentAnnotation, .Copywriter (AI rewriter), .Generic, .Divider. Key tokens (use full paths where they collide): {showAdder}, {commentToolEnabled}, {isUserAllowed}, {enableTextComments}, {rewriterEnabled}, {selectedWordsCount}, {selectedCharactersCount}, {position.top}/{position.left}, {uiState.disabled}.

Inline Comments Section

VeltInlineCommentsSectionWireframe:
Key tokens: {skeletonLoading}, {annotations}, {filterState.filterDropdownOpen}, {sortState.sortingDropdownOpen}, {isResolvedCommentsOnDomFilterSelected}; per-item {filter.isSelected}, {sortOption}, {isActive}, {isAscending}.

Multi-Thread Comment Dialog

VeltMultiThreadCommentDialogWireframe:
Key tokens: {filteredAnnotations}, {nonDraftCommentsCount}, {minimalFilter} ('all'|'read'|'unread'|'resolved'), {noCommentsFound}, {noCommentsFoundForAppliedFilters}, {hideMultiThreadAnnotationComposer}; per minimal-filter item {isSelected}.

Headless hooks

None section-specific: all three reuse the shared comment hooks (see Hooks). Text Comment additionally drives via the comment element (useCommentUtils) and the AI rewriter (useAIRewriterUtils).

Limitations

Text Comment has a thinner slot set (the four toolbar buttons) and no dedicated hooks. Otherwise all three follow the same rules as the comment dialog: the interactivity rule, scoping (nest vs root), and shadowDom/CSS guidance all apply. The visible “panel” is the container; fill the slots inside it.