BlogPlaygroundOne

VBottomSheet API


Props
name
type
default
boolean
false

Applies position: absolute to the content element.

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
undefined

Milliseconds to wait before closing component. Only applies to hover and focus events.

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
false

Closes component when you click on its content.

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

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.

boolean
false

Changes layout for fullscreen display.

string | number
undefined

Sets the height for the component.

boolean
false

Reduces the sheet content maximum width to 70%.

Anchor
'bottom'

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

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

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
undefined

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[]
undefined

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
undefined

Milliseconds to wait before opening component. Only applies to hover and focus events.

boolean
undefined

Activate the component when the activator is clicked.

boolean
undefined

Activate the component when the activator is focused.

boolean
false

Activate the component when the activator is hovered.

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

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
true

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
true

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

boolean
false

When set to true, expects a v-card and a v-card-text component with a designated height. For more information, check out the scrollable example.

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

Strategy used when the component is activate and user scrolls.

boolean
false

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

  | 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>>
        }
    }
'bottom-sheet-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
2400

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.

SASS Variables