パッケージの詳細

vue3-accessible-tabs

jonbackus138MIT0.7.0

A Vue 3 plugin offering a WAI-ARIA compliant tabs design pattern implementation

vue, vue 3, tabs, vue tabs

readme

Vue3 Accessible Tabs

A simple tabs component plugin for Vue 3. Follows the Tabs Design Pattern in WAI-ARIA Authoring Practices 1.1 for accessibility best practices automatically built into the plugin.

Install

npm i vue3-accessible-tabs

or

yarn add vue3-acccessible-tabs

Register as a Global Component

import { createApp } from 'vue';
import App from './App.vue'
import vue3_accessible_accordion from 'vue3-accessible-tabs';

const app = createApp(App)
            .use(vue3_accessible_tabs);
            .mount('#app')

Register Components Individually

import Tabs, TabList, Tab, TabPanel from 'vue3-accessible-tabs';

export default {
    components: {
        Tabs,
        TabList,
        Tab,
        TabPanel,
    }
}

Example Usage

<tabs>
    <tab-list>
        <tab>Description</tab>
        <tab>Specifications</tab>
        <tab>Reviews</tab>
    </tab-list>

    <tab-panel>Description tab info</tab-panel>
    <tab-panel>Specifications tab info</tab-panel>
    <tab-panel>Review tab info</tab-panel>
</tabs>

Config

Plugin Options

import { createApp } from 'vue';
import App from './App.vue'
import vue3_accessible_accordion from 'vue3-accessible-tabs';

const app = createApp(App)
            .use(vue3_accessible_tabs, {
                hash_change: false,
                active_class: 'is-active',
                diasbled_classes: 'is-disabled',
                tab_movement: false,
            });
            .mount('#app')
Option Type Default Description
hash_change Boolean false Controls whether tabs should use fragments
active_class String 'is-active' CSS class added to a tab and tab panel when they are active
disabled_class String 'is-disabled' CSS class added to a tab and tab panel when they are disabled
tab_movement Boolean false Controls whether a tab should become active if it receives focus

Components

<tabs>

Props | Prop | Type | Default | Required | Description | | ---------- | ------ | --------- | -------- | ----------- | | modelValue | Number | 0 | No | Index of the tab that should initially be active | | id | String | undefined | No | ID to set on the tab panel and be linked to the tab automatically. Will control the fragment being used if the hash_change option is true|

Events

None

<tab-list>

Props | Prop | Type | Default | Required | Description | | ----- | ------ | ------- | -------- | ----------- | | label | String | Tabs | Yes | Value for the aria-label attribute to provide a descriptive label of the tab list |

Events

None

<tab>

Props | Prop | Type | Default | Required | Description | | ---- | ---- | ------- | -------- | ----------- | | tag | String | a | No | HTML tag to wrap around the text of the tab | | disabled | Boolean | false | No | Controls whether the tab should be disabled or not | | activeClass | String | is-active | No | CSS class added when the tab is active | | disabledClass | String | is-disabled | No | CSS class added when the tab is disabled |

Events

None

Scoped Slots

  • is-active

Project setup

yarn

Compiles and hot-reloads for development

yarn serve

Compiles and minifies for production

yarn build