0.9.2 • Published 3 months ago

vx-vue v0.9.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

vxVue

Introduction

VxVue provides a handful of reusable Vue components styled with Tailwind CSS. All components are geared towards simplicity leaving room for customizations, extensions or adaptations. At some point a more verbose documentation than this brief readme might emerge.

Requirements

  • Vue.js 3.4+
  • Tailwind CSS 3.4+

The official Tailwind CSS forms plugin is used to provide basic styling of the form components using the class strategy which allows the styling of non-form elements consistently. An easy to configure color theming is applied. vxvue and vxvue-alt are used as the two colors scales. Since Tailwind won't observe classes in imported components tailwind.config.js should also list the node package in the content array.

module.exports = {
    content: [
        './node_modules/vx-vue/**/*.js',
        ...
    ],
    theme: {
        extend: {
            colors: {
                'vxvue': {
                    DEFAULT: ...,
                    '50': ...,
                    ...
                    '900': ...
                },
                'vxvue-alt': {
                    ...                
                }
            }
        }
    }
}

To use the few scoped styles along with your CSS add

import 'vx-vue/vx-vue.css'

to your main.js or index.js file.

The components use an extra color palette.

Provided components

So far the following components have been implemented:

Accordion

An Accordion; requires AccordionPanels as child components. Key navigation with tab, cursor up, cursor down is provided. If activeIndex is an array multiple panels can be open at the same time; if it is a number only one panel at a time can be open.

propseventsslots
activeIndex [Number, Array]update:active-index

AccordionPanel

Only useful as child component of an Accordion component.

propseventsslots
show [Boolean]disabled [Boolean]keyupkeydownselectheaderdefault

Autocomplete

A component which provides suggestions with each keystroke.

propseventsslots
modelValue [String]search [Function]baseClass [String]resultListClass [String]resultItemClass [String]inputClass [String]autoSelect [Boolean]getResultValue [Function]update:modelValueblursubmitresult

Confirm

A promise-based component which can either take one ("confirm") or two buttons ("confirm", "cancel"). Clicking "confirm" resolves, "cancel" rejects the promise.

propseventsslots
nonenonetitleiconmessage

DateInput

An input element for guided date inputs, which also serves as child component of the datepicker component.

propseventsslots
modelValue [Date]outputFormat [String]inputFormat [String]showButton [Boolean]locale [String]update:modelValuetoggle-datepickerdefault

Datepicker

A not-too-fancy datepicker.

propseventsslots
modelValue [Date]validFrom [Date]validUntil [Date]dayNames [Array]locale [String]startOfWeekIndex [Number]hasInput [Boolean]update:modelValuemonth-changeyear-changedefault

FormFileButton

A thinly wrapped type-file input that allows proper styling and integration.

propseventsslots
modelValue [Array]accept [String]multiple [Boolean]name [String]id [String]update:modelValueform-datanone

FormSelect

A select element adapted for Vue.js integration.

propseventsslots
modelValue [String, Number]options [Array]disabledLabel [String]update:modelValuenone

FormSwitch

Nothing more than a fancy checkbox.

propseventsslots
modelValue [Mixed]update:modelValuedefault

MessageToast

Displays a notification message which can either be dismissed by the user and/or by itself after a configurable timeout.

propseventsslots
title [String]message [String, Array]timeout [Number]active [Boolean]timeoutcloseicontitledefault

Modal

A modal overlay which provides slots.

propseventsslots
show [Boolean]containerClass [String]headerClass [String]contentClass [String]clicked-outsidetitledefault

Pagination

A pagination component for an arbitrary list of items; rather opinionated in its responsive layout.

propseventsslots
page [Number]total [Number]perPage [Number]showNavButtons [Boolean]prevText [String]nextText [String]showAllPages [Boolean]markerPosition ['above', 'below']update:pagenone

PasswordInput

A simple input element paired with a toggle button which toggles the input element between between type='password' and type='text'

propseventsslots
modelValue [String]update:modelValuedefault

SimpleTree

A collapsible tree component which is implemented by a single recursive component.

propseventsslots
branch [Object]branch-selectedexpandnone

Slider

A slider replacing and enhancing an input type="range".

The component can have one or more thumbs: modelValue can either be a number or an array of numbers and the length of the array determines the number of thumbs.

propseventsslots
modelValue [Number]min [Number]max [Number]vertical [Boolean]disabled [Boolean]update:modelValuenone

Sortable

A sortable table; the columns prop specifies the columns and their sorting options.

propseventsslots
columns [Array]rows [Array]offset [Number]count [Number]sortProp [String]sortDirection ['asc', 'desc']keyProperty [String]before-sortafter-sort{ column: prop }-header{ column: prop }

Spinner

Well, an animated circular spinner; colorized with currentColor.

propseventsslots
radius [Number]strokeWidth [Number]

SubmitButton

A button which will be disabled when busy is true and display a spinner to its right. Apart from a default theme a success and error theme are provided with matching spinner. In any case the spinner can be styled by a separate class string.

propseventsslots
busy [Boolean]theme [String]spinnerClass [String]submitdefault

Tabs

A responsive tabs component. The items array holds objects with a required name [String] and optional badge [String], icon [Component] and disabled [Boolean] properties.

propseventsslots
items [Array]activeIndex [Number]update:active-indexicondefault
0.9.2

3 months ago

0.9.1

3 months ago

0.9.0

3 months ago

0.8.3

3 months ago

0.8.1

4 months ago

0.8.0

4 months ago

0.8.2

4 months ago

0.7.9

4 months ago

0.7.8

4 months ago

0.7.7

4 months ago

0.7.6

4 months ago

0.7.5

5 months ago

0.7.2

6 months ago

0.6.3

7 months ago

0.7.1

6 months ago

0.6.2

7 months ago

0.7.4

6 months ago

0.6.5

6 months ago

0.7.3

6 months ago

0.6.4

7 months ago

0.7.0

6 months ago

0.6.1

7 months ago

0.6.0

7 months ago

0.1.0

7 months ago

0.0.1

7 months ago

0.3.0

7 months ago

0.0.2

7 months ago

0.5.0

7 months ago

0.5.1

7 months ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

2 years ago

0.2.0

2 years ago