Custom UI Components

Replace shared UI controls with your own components.

Use uiComponents to replace shared controls such as Button, Modal, and Tooltip. To customize content rendering, use Components.

Example

Customize the Button component:

<script setup lang="ts">
import type { UIButtonProps } from 'vue-stream-markdown'

const props = defineProps<UIButtonProps>()
</script>

<template>
  <button>{{ props.name }}</button>
</template>
<script setup lang="ts">
import MyButton from './button.vue'
</script>

<template>
  <Markdown
    :content="content"
    :ui-components="{ Button: MyButton }"
  />
</template>

Available Components

ComponentProps TypeDescription
AlertUIAlertPropsAlert modal component
ButtonUIButtonPropsButton component
Caret-Cursor/caret indicator
DropdownUIDropdownPropsDropdown menu
ErrorComponentUIErrorComponentPropsError display
IconUIIconPropsIcon component
ImageUIImagePropsImage with zoom
ModalUIModalPropsModal dialog
SegmentedUISegmentedPropsSegmented control
Spin-Loading spinner
TooltipUITooltipPropsTooltip component
ZoomContainerUIZoomContainerPropsZoom wrapper
© 2026 Vue Stream Markdown.