Quick Start

This page covers the common choices you make when adding QScroller to a form or compact picker. Component-specific options and full examples live on the Developing pages.

Pick a scroller

NeedComponentModel example
Fixed string choicesQStringScroller"medium"
TimeQTimeScroller"09:30"
Time rangeQTimeRangeScroller["09:00", "17:00"]
DateQDateScroller"2026-07-01"
Date and timeQDateTimeScroller"2026-07-01 09:30"
Date rangeQDateRangeScroller["2026-07-01", "2026-07-05"]

Use QScroller with view when one wrapper component makes a dynamic template easier. Use the dedicated component when the picker type is known.

<script setup>
import { ref } from 'vue'

const size = ref('medium')
const sizes = ['small', 'medium', 'large']
</script>

<template>
  <q-string-scroller v-model="size" :items="sizes" />
</template>

Install and style

The App Extension registers the component and stylesheet for Quasar CLI apps:

quasar ext add @quasar/qscroller

For direct package use, import the stylesheet once:

import '@quasar/quasar-ui-qscroller/dist/index.css'

See Installation Types for App Extension, Vue plugin, direct import, and UMD setup.

Model values

Most QScroller components emit the same value shape they receive. String models stay strings, range models stay arrays, and object/date models are preserved where the component supports them.

PropTypeExample
model-valueString | Array | Object | Date"09:30"
<script setup>
import { ref } from 'vue'

const time = ref('09:30')
</script>

<template>
  <q-time-scroller v-model="time" />
</template>

Common controls

PropTypeExample
denseBoolean
disabledBoolean
readonlyBoolean
no-headerBoolean
no-footerBoolean
colorString"primary"
bar-colorString"primary"

Use dense for compact surfaces, no-header or no-footer when the surrounding UI already labels the picker, and color props to match a form or card.

Intervals

Time and date-time scrollers can step values so the user only lands on useful choices.

PropTypeExample
hour-intervalNumber1
minute-intervalNumber15
second-intervalNumber30
<q-time-scroller v-model="time" :minute-interval="15" />

Ranges

Use range scrollers when users select a start and end value together. QScroller keeps the pair ordered, but business rules still belong in your app.

<script setup>
import { ref } from 'vue'

const bookingRange = ref(['2026-07-01', '2026-07-05'])
</script>

<template>
  <q-date-range-scroller v-model="bookingRange" />
</template>

For blackout dates, availability windows, and UTC storage, use Timestamp helpers with the emitted values. See Timestamp Recipes.

Locale

Date and date-time scrollers use browser Intl formatting for generated labels.

PropTypeExample
localeString"fr-CA"
hour12Boolean
<q-date-scroller v-model="date" locale="fr-CA" />

Calendar adapters

QScroller’s date components use Gregorian by default. Pass calendar-system for native calendar systems such as Hijri, Saka, Hebrew, or Persian; string, array, and object model values become native to that adapter while JavaScript Date values remain Gregorian interop values.

pnpm add @timestamp-js/core @timestamp-js/calendar-hebrew

See Timestamp Recipes for the adapter scroller example.

Where next