Vue material tabs 🚀
⚓ Features
- Dynamic and touchscreen pagination.
- Vertical nav and animation support.
- Very flexible and customizable.
- Many themes.
- Zero dependencies
🚚 Install
yarn add vue-material-tabs
🚀 Usage
Global
import Vue from "vue";
import VueMaterialTabs from "vue-material-tabs";
Vue.use(VueMaterialTabs);
Local
import { Tabs, TabItem } from "vue-material-tabs";
export default {
components: {
Tabs,
TabItem,
},
};
📌 Examples
<Tabs>
<TabItem name="Foo">
<div class="first-tab">First tab</div>
</TabItem>
<TabItem name="Bar">
<div class="second-tab">Second tab</div>
</TabItem>
</Tabs>
Use #name slot to customize the nav title (When the slot #name it's used, the prop name is disabled)
<Tabs>
<TabItem>
<template #name>
My custom title 🍉
</template>
<div class="first-tab">
First tab
</div>
</TabItem>
</Tabs>
👑 Themes
There are some themes available to customize your tab, you can apply them.
- default (Set by default ¯_(ツ)_/¯)
- purple
- red
- pink
- cyan
- green
Example
<Tabs theme="cyan">....</Tabs>
You can create your own personalized themes, passing an object with the properties through the "theme" prop.
Example
<Tabs :theme="theme" >
....
</Tabs>
....
<script>
export default {
data: () => ({
theme: {
nav: "#4A148C",
navItem: "#BDBDBD",
navActiveItem: "#fff",
slider: "#CE93D8",
arrow: "#f3f3f3",
},
}),
};
</script>
Tabs
Props
Name | type | Default | description |
---|
value | String | undefined | The designated model value for the component. |
theme | String - Object | 'default' | Apply a custom theme. |
vertical | Boolean | false | Uses a vertical transition when changing windows. |
ripple | Boolean | true | Enalbe/disable ripple buttons effects. |
slideDuration | String - Number | 200 | Set time in ms slide duration. |
slideVertical | Boolean | false | Enable vertical slide animation. |
slide | Boolean - Object | false | Enable/disable slide or set object with props. |
navAuto | Boolean | false | Set nav auto items. |
navSlider | Boolean | true | Enable/disable slider under nav item. |
noTouch | Boolean | false | Enable/disable slider tabs by touch. |
Slots
Name | Description | Props |
---|
nav | Slot to replace the nav menu. | { navItems: Array, active: String } |
Events
Name | Description |
---|
input | Emitted when tab is changed. |
TabItem
Props
Name | type | Default | description |
---|
name | String | 'Tab Item ' | Sets the tab value in the nav menu. |
disabled | Boolean | false | Removes the ability to click or target the component. |
Slots
Name | Description |
---|
name | Slot for cutom name in nav |
🔖 License
MIT