createOverflow
A composable for computing how many items fit in a container based on available width, enabling responsive truncation for pagination, breadcrumbs, and similar components.
Usage
The createOverflow composable provides reactive container width tracking and capacity calculation. It supports two modes: variable-width (for items with different widths like breadcrumbs) and uniform-width (for same-width items like pagination buttons).
vue
<script setup lang="ts">
import { useTemplateRef } from 'vue'
import { createOverflow } from '@vuetify/v0'
const containerRef = useTemplateRef('container')
// Pass container as a ref or getter for proper reactive tracking
const overflow = createOverflow({
container: containerRef,
gap: 8,
reserved: 40,
})
// Check capacity
console.log(overflow.capacity.value) // Number of items that fit
console.log(overflow.isOverflowing.value) // true if items exceed container
</script>
<template>
<div ref="container">
<!-- Items go here -->
</div>
</template>Context / DI
Use createOverflowContext to share an overflow instance across a component tree:
ts
import { createOverflowContext } from '@vuetify/v0'
export const [useNavOverflow, provideNavOverflow, navOverflow] =
createOverflowContext({ namespace: 'my:nav-overflow' })
// In parent component
provideNavOverflow()
// In child component
const overflow = useNavOverflow()
overflow.capacity.value // number of items that fitUse useOverflow to inject the default (unnamespaced) overflow context provided by a parent:
ts
import { useOverflow } from '@vuetify/v0'
const overflow = useOverflow() // Injects the nearest provided overflow contextArchitecture
createOverflow uses ResizeObserver to compute container capacity:
Reactivity
| Property/Method | Reactive | Notes |
|---|---|---|
container | ShallowRef, assign element for tracking | |
width | ShallowRef, readonly (from ResizeObserver) | |
capacity | Computed from width and measurements | |
total | Computed, sum of all item widths | |
isOverflowing | Computed from total vs available width | |
gap | Accepts MaybeRefOrGetter | |
reserved | Accepts MaybeRefOrGetter | |
itemWidth | Accepts MaybeRefOrGetter (uniform mode) |
Examples
The following API details are for the createOverflow composable.
Was this page helpful?