Skip to main content
Source of truth: exhaustive for what it covers. Generated from Velt customization metadata.
  • If a name isn’t on this page, it doesn’t exist: don’t use it.
  • Never invent or guess a name; use only identifiers that appear verbatim here or that you verified against ground truth and added here.
  • Scope: exhaustive for the comments + notifications + core default-state flags, the provider config object’s customizer-critical keys, and the UI-affecting component flag-props. Out-of-scope features (recorder internals, huddle, video-editor, view-analytics, follow/live-state) appear only where they share a <VeltComments>/provider flag.
If your design shows a component/feature that doesn’t appear out of the box, it is often off by default. Check here first: most features just need one prop (or an imperative enable…() call). Don’t rebuild something Velt already has. How to read:
  • Default = the SDK’s built-in state before you touch anything.
  • Enable via = the exact React prop (on which component) and/or the imperative element method.
  • React props have no defaults of their own. A prop you omit falls through to the SDK default below. So “OFF by default” features need you to pass the prop or call the method; “ON by default” features are turned off with ={false}.

The two you asked about


<VeltComments>: OFF by default (pass the prop / call enable to show)

<VeltComments>: ON by default (turn off with ={false})

reactions, attachments, attachmentDownload, status, userMentions, seenByUsers, resolve button (enableResolve), scrollToComment, dialogOnHover, floatingCommentDialog, commentTool, textMode (the prop is textMode, not textComments: textComments does not exist), deleteOnBackspace, areaComment, bubbleOnPinHover, pinDrag, ghost-comment indicator, and the shadow-DOM flags: <VeltComments> exposes shadowDom/pinShadowDom/dialogShadowDom (no sidebarShadowDom here); <VeltCommentsSidebar> uses shadowDom; sidebarShadowDom lives on the sidebar-button components. These are also ON by default: turn off with ={false} (or the imperative disable…()): anonymousEmail (enableAnonymousEmail()), draftMode (enableDraftMode()), floating comments (enableFloatingComments(): sidebar prop is floatingMode), ghostCommentsMessage (enableGhostCommentsMessage()), mobileMode (enableMobileMode()), popoverTriangleComponent (enablePopoverTriangleComponent()), recordingSummary (enableRecordingSummary(), deprecated alias of recording transcription), shortUserName (enableShortUserName()).
recordings is a CSV string, not a boolean. Default = all on (audio,video,screen); set recordings="none" to disable, or e.g. recordings="audio,screen". (Also setRecordings().)

Other components

<VeltPresence>: self (include self in the presence list) is ON (disable with self={false}; imperative presenceElement.enableSelf() / disableSelf(): backed by the service’s includeSelf). Flock/follow mode is OFFflockMode / presenceElement.enableFlockMode(). <VeltCursor>: avatar-mode cursors OFFavatarMode (no imperative pair). <VeltReactionTool>: dark mode OFFreactionElement.enableDarkMode() (no React prop on the reaction tool). Notifications (<VeltNotificationsTool>/Panel): settings UI OFFsettings / enableSettings(); org-level settings OFFenableSettingsAtOrganizationLevel (imperative enableSettingsAtOrganizationLevel(), backed by the service’s enableSettingsConfigByOrganization); self notifications OFFselfNotifications / enableSelfNotifications(); read-on-ForYou OFFreadNotificationsOnForYouTab / enableReadNotificationsOnForYouTab(); cross-org feed OFFenableCrossOrganization / notificationElement.enableCrossOrganization().

Imperative-only gates (no React prop: call element.enable…())

  • Recorder: video editor OFFrecorderElement.enableVideoEditor(); also enableOnboardingTooltip(), enableRetakeOnVideoEditor(), enablePictureInPicture(). Countdown/transcription/playback-on-preview are ON (disableRecordingCountdown(), disableRecordingTranscription(), disablePlaybackOnPreviewClick()). (Recorder dark mode + mic are tri-state null: neither on nor off until set: enableDarkMode()/disableDarkMode(), enableRecordingMic()/disableRecordingMic().)
  • Notifications: current-document-only scope OFFnotificationElement.enableCurrentDocumentOnly().

Provider config object (<VeltProvider config={…}>)

The provider’s config object governs the whole SDK before any component renders: the single biggest lever for a customizer. Keys below are verified against the Config type. All are optional.
Absence: Config has no top-level theme, css, or darkMode key. Theming at the provider level is usePrefersColorScheme; stylesheet loading is globalStyles; darkMode is a per-component prop only.

UI-affecting component flag-props (layout / variant / placeholders)

Beyond on/off feature flags, these props change a component’s layout, variant, or copy. Verified verbatim on the React components. <VeltCommentsSidebar> Notifications (<VeltNotificationsPanel> / <VeltNotificationsTool>) <VeltComments>

How to use this when matching a design

  1. The design shows something not visible by default (priority chip, reply avatars, minimap, @here, device badge, …)? Find it above → pass the prop / call enable.
  2. The design omits something Velt shows by default (reactions, status, attachments)? Turn it off with ={false}: don’t display:none it (R7).
  3. Then style/restructure it with CSS / wireframes / primitives as usual.
Defaults verified against the SDK’s feature services. A few advanced enable…() methods exist whose default is not documented here. If a feature isn’t listed, call the matching enable<Feature>() on the relevant element and confirm by testing.