Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Disabled Switches
We can disable switches with the disabled
prop:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-switch value input-value="true" disabled></v-switch>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
This way, it’s not active.
Loading Switch
A switch can show a loading state.
For example, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-switch loading="warning" value input-value="true"></v-switch>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
The loading
prop with the style name shows the loading state with the given style.
Switches Colors
We can change the switch color with the color
prop:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-switch v-model="ex" label="red" color="red" value="red" hide-details></v-switch>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
ex: false,
}),
};
</script>
Flat Switches
The flat
prop makes a switch flat:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-switch v-model="sw" flat :label="`Switch: ${sw.toString()}`"></v-switch>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
sw: false,
}),
};
</script>
Inset Switches
A switch can be displayed in inset mode with the inset
prop:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-switch v-model="sw" inset :label="`Switch: ${sw.toString()}`"></v-switch>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
sw: false,
}),
};
</script>
Sliders
A slider is used to let users select a number from a range.
We add one with the v-slider
component:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-slider v-model="slider" class="align-center" :max="max" :min="min" hide-details>
<template v-slot:append>
<v-text-field
v-model="slider"
class="mt-0 pt-0"
hide-details
single-line
type="number"
style="width: 60px"
></v-text-field>
</template>
</v-slider>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
slider: 0,
max: 100,
min: 0,
}),
};
</script>
We populate the append
slot to show some to the right of the slider.
A v-text-field
is shown to display the v-model
value.
The max
and min
props are the max and min values of the slider respectively.
Also, we can prepend an item to the slider by populating the prepend
slot:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-slider v-model="slider" class="align-center" :max="max" :min="min" hide-details>
<template v-slot:prepend>
<v-text-field
v-model="slider"
class="mt-0 pt-0"
hide-details
single-line
type="number"
style="width: 60px"
></v-text-field>
</template>
</v-slider>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
slider: 0,
max: 100,
min: 0,
}),
};
</script>
Now we have the number shown on the left.
Conclusion
We can add switches and number sliders with Vuetify.