BlogPlaygroundOne

VSpeedDial API


Props
name
type
default
Element | (string & {}) | 'parent' | ComponentPublicInstance
undefined

Explicitly sets the overlay’s activator.

unknown
{}

Apply custom properties to the activator.

string | boolean | Element
false

Specifies which DOM element the overlay content should teleport to. Can be a direct element reference, querySelector string, or true to disable teleporting. Uses body by default.

boolean
true

When enabled, focus will be trapped within the component’s content, preventing Tab navigation from moving focus outside. Useful for modals, dialogs, and overlays to maintain accessibility.

string | number
100

Milliseconds to wait before closing component. Only works with the open-on-hover prop.

boolean
true

Closes the overlay content when the browser’s back button is pressed or $router.back() is called, cancelling the original navigation. persistent overlays will cancel navigation and animate as if they were clicked outside instead of closing.

boolean
true

Designates if menu should close when its content is clicked.

boolean
false

Limits the size of the component and scrim to its offset parent. Implies absolute and attach. (Note: The parent element must have position: relative.).

any
undefined

Applies a custom class to the detached element. This is useful because the content is moved to the beginning of the v-app component (unless the attach prop is provided) and is not targetable by classes passed directly on the component.

any
undefined

Apply custom properties to the content.

boolean
false

Removes the ability to click or target the component.

boolean
false

Deprecated, use capture-focus instead. Prevents automatic redirect of first focusin event. Intended to use on permanently open menus or VSpeedDial.

boolean
false

Forces the component’s content to render when it mounts. This is useful if you have content that will not be rendered in the DOM that you want crawled for SEO.

string | number
undefined

Sets the height for the component.

string
undefined

The unique identifier of the component.

Anchor
'top center'

Specifies the anchor point for positioning the component, using directional cues to align it either horizontally, vertically, or both…

'static' | 'connected' | LocationStrategyFunction
'connected'

A function used to specifies how the component should position relative to its activator.

string | number
undefined

Sets the maximum height for the component.

string | number
undefined

Sets the maximum width for the component.

string | number
undefined

Sets the minimum height for the component.

string | number
0

Sets the minimum width for the component.

boolean
false

The v-model value of the component. If component supports the multiple prop, this defaults to an empty array.

boolean
false

Disables the bounce effect when clicking outside of the content element when using the persistent prop.

string | number | number[]
8

Increases distance from the target. When passed as a pair of numbers, the second value shifts anchor along the side and away from the target.

string | number
undefined

Sets the opacity of the scrim element. Only applies if scrim is enabled.

string | number
0

Milliseconds to wait before opening component. Only works with the open-on-hover prop.

boolean
undefined

Designates whether menu should open on activator click.

boolean
undefined

Activate the component when the activator is focused.

boolean
false

Opens speed-dial on hover.

Anchor | 'auto' | 'overlap'
'auto'

Sets the transition origin on the element. You can find more information on the MDN documentation for transition origin.

boolean
false

Clicking outside of the element or pressing esc key will not deactivate it.

boolean
false

Captures and keeps focus within the content element when using Tab and Shift+Tab. Recommended to be false when using external tools that require focus such as TinyMCE or vue-clipboard.

string | boolean
false

Accepts true/false to enable background, and string to define color.

'close' | 'block' | 'none' | 'reposition' | ScrollStrategyFunction
'reposition'

Strategy used when the component is activate and user scrolls.

boolean
false

Enables the overlay content to go off-screen when scrolling.

boolean
false

Opens with right arrow and closes on left instead of up/down. Implies location="end". Directions are reversed for RTL.

  | Element
  | (string & {})
  | 'parent'
  | 'cursor'
  | ComponentPublicInstance
  | [number, number]
undefined

For locationStrategy=“connected”, specify an element or array of x,y coordinates that the overlay should position itself relative to. This will be the activator element by default.

string
undefined

Specify a theme for this component and all of its children.

  | string
  | boolean
  | (TransitionProps & { component: Component })
  | {
      component: ComponentPublicInstanceConstructor<
        CreateComponentPublicInstanceWithMixins<
          {} & { target?: HTMLElement | [x: number, y: number] | undefined } & {
            $children?:
              | VNodeChild
              | { $stable?: boolean | undefined }
              | (() => VNodeChild)
              | { default?: (() => VNodeChild) | undefined }
            'v-slots'?:
              | { default?: false | (() => VNodeChild) | undefined }
              | undefined
          } & { 'v-slot:default'?: false | (() => VNodeChild) | undefined },
          () => JSX.Element,
          unknown,
          {},
          {},
          ComponentOptionsMixin,
          ComponentOptionsMixin,
          Record<string, any>,
          PublicProps,
          {},
          true,
          {},
          SlotsType<Partial<MakeSlots<{ default: never }>>>,
          GlobalComponents,
          GlobalDirectives,
          string,
          {},
          any,
          ComponentProvideOptions,
          OptionTypesType<{}, {}, {}, {}, {}, {}>,
          {} & { target?: HTMLElement | [x: number, y: number] | undefined } & {
            $children?:
              | VNodeChild
              | { $stable?: boolean | undefined }
              | (() => VNodeChild)
              | { default?: (() => VNodeChild) | undefined }
            'v-slots'?:
              | { default?: false | (() => VNodeChild) | undefined }
              | undefined
          } & { 'v-slot:default'?: false | (() => VNodeChild) | undefined },
          () => JSX.Element,
          {},
          {},
          {},
          {}
        >,
        any,
        any,
        any,
        ComputedOptions,
        MethodOptions
      > &
        ComponentOptionsBase<
          {} & { target?: HTMLElement | [x: number, y: number] | undefined } & {
            $children?:
              | VNodeChild
              | { $stable?: boolean | undefined }
              | (() => VNodeChild)
              | { default?: (() => VNodeChild) | undefined }
            'v-slots'?:
              | { default?: false | (() => VNodeChild) | undefined }
              | undefined
          } & { 'v-slot:default'?: false | (() => VNodeChild) | undefined },
          () => JSX.Element,
          unknown,
          {},
          {},
          ComponentOptionsMixin,
          ComponentOptionsMixin,
          Record<string, any>,
          string,
          {},
          {},
          string,
          SlotsType<Partial<MakeSlots<{ default: never }>>>,
          GlobalComponents,
          GlobalDirectives,
          string,
          ComponentProvideOptions
        > &
        VNodeProps &
        AllowedComponentProps &
        ComponentCustomProps & {
          filterProps: (props: T) => Partial<Pick<T, U>>
        }
    }
'scale-transition'

Sets the component transition. Can be one of the built in or custom transition.

string | number
12

Sets custom viewport margin for the overlay content

string | number
undefined

Sets the width for the component.

string | number
2000

The z-index used for the component.

Events
name
type
[boolean]

Event that is emitted when the component’s model changes.

Slots
{ isActive: boolean props: Record<string, any> targetRef: TemplateRef }
{ isActive: Ref<boolean, boolean> }

When used, will activate the component when clicked (or hover for specific components). This manually stops the event propagation. Without this slot, if you open the component through its model, you will need to manually stop the event propagation.

The default Vue slot.