npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

formkit-quasar

v0.2.0

Published

Formkit components for Quasar

Readme

FormKit Quasar

A simple input wrapper of Quasar for FormKit.

Most components are based on Quasar; non-FormKit-specific attributes are passed directly through to the underlying Quasar component.

Documentation

See the docs/ folder for a per-component usage guide covering every supported input type with live examples.

Live docs: https://formkit-quasar.netlify.app/

Run the docs site locally:

npm run docs:dev

Build a static copy of the docs:

npm run docs:build

The output is written to docs-dist/. The docs site is automatically deployed to Netlify on every push to main via .github/workflows/deploy-docs.yml.

Installation

npm install formkit-quasar

Setup

import { createApp } from 'vue'
import App from './App.vue'
import { Quasar } from 'quasar'

import 'quasar/dist/quasar.prod.css'

import { createQuasarPlugin } from "formkit-quasar"
import { plugin, defaultConfig } from '@formkit/vue'

const app = createApp(App)

app.use(Quasar, {
    plugins: {}
})

app.use(plugin, defaultConfig({
    plugins: [createQuasarPlugin()]
}))

app.mount('#app')

Usage

Use the FormKit type attribute to select the Quasar input you want. Attributes that aren't FormKit-specific are forwarded to the Quasar component.

<FormKit type="q-input" label="Input" name="input" validation="required">
    <template v-slot:prepend>
        <q-icon name="event" />
    </template>
</FormKit>

<FormKit type="q-input" label="Password" name="password1" input-type="password" />

<FormKit type="q-select" label="Select" name="select1" validation="required" :options="[
    'Monaco',
    'Vatican City',
    'Maldives',
    'Tuvalu',
]" />

<FormKit type="q-checkbox" label="Checkbox" name="checkbox1" />

<FormKit type="q-radio" name="radio1" :options="[
    { label: 'Line', value: 'line' },
    { label: 'Rectangle', value: 'rectangle' },
    { label: 'Ellipse', value: 'ellipse' }
]" />

<FormKit type="q-option-group" name="group" :options="[
    { label: 'Battery too low', value: 'bat' },
    { label: 'Friend request', value: 'friend', color: 'green' },
    { label: 'Picture uploaded', value: 'upload', color: 'red' }
]" />

<FormKit type="q-option-group" option-type="checkbox" name="group2" :options="[
    { label: 'Battery too low', value: 'bat' },
    { label: 'Friend request', value: 'friend', color: 'green' },
    { label: 'Picture uploaded', value: 'upload', color: 'red' }
]" />

<FormKit type="q-toggle" name="toggle1" />

<FormKit type="q-rating" name="rating1" />

<FormKit type="q-btn-toggle" name="btn_toggle" :options="[
    { label: 'One', value: 'one' },
    { label: 'Two', value: 'two' },
    { label: 'Three', value: 'three' }
]" />

<FormKit type="q-date" name="date1" />

<FormKit type="q-time" name="time1" />

<FormKit type="q-file" label="File" name="file1" />

<FormKit type="q-range" label="Range" name="range1" />

<FormKit type="q-color" label="Color" name="color1" />

<FormKit type="q-editor" name="editor1" />

<FormKit type="q-slider" name="slider1" />

<FormKit type="q-textarea" label="Textarea" name="textarea1" validation="required" />

Supported Inputs

| FormKit type | Quasar component | Notes | |--------------------|--------------------------|------------------------------------------------------| | q-input | QInput | Use input-type for native HTML types. | | q-textarea | QInput (type="textarea") | Pass rows to control height. | | q-select | QSelect | String array or [{ label, value, disable? }]. | | q-checkbox | QCheckbox | Boolean; use validation="accepted". | | q-radio | QOptionGroup (auto) / QRadio | Pass :options for a mutually exclusive group. | | q-option-group | QOptionGroup | Set option-type="radio" | "checkbox" | "toggle". | | q-toggle | QToggle | | | q-btn-toggle | QBtnToggle | Deprecated by Quasar; kept for completeness. | | q-date | QDate | Bound to a string. | | q-time | QTime | Bound to a string. | | q-file | QFile | Bound to File | File[] | null. | | q-color | QColor | Bound to a hex string. | | q-range | QRange | Bound to { min, max }. | | q-slider | QSlider | Bound to a number. | | q-rating | QRating | Bound to a number. | | q-editor | QEditor | Bound to an HTML string. |

Validation errors are rendered under each field. Inputs that do not expose Quasar's native error / error-message props (e.g. q-color, q-date, q-time, q-slider, q-range, q-rating, q-btn-toggle) display the error as a red caption below the field.

Project Structure

src/
  components/        # Vue wrappers for each Quasar input (library code)
  utils/             # FormKit error-message helpers
  vite-env.d.ts      # FormKit type augmentation for library users
docs/                # Docs & live examples site (Vue Router)
  pages/             # One page per input type
  App.vue, main.ts, router.ts, index.html
vite.config.ts       # Library build (npm publish target)
vite.docs.config.ts  # Docs site build

Scripts

| Command | Description | |------------------------|--------------------------------------------------| | npm run dev | Start the docs site (Vite dev server). | | npm run docs:dev | Same as npm run dev. | | npm run build | Type-check and build the library to dist/. | | npm run docs:build | Build a static copy of the docs to docs-dist/. | | npm run release | Bump patch version, build the library, publish. |

Peer Dependencies

These are required at runtime and installed transitively via @formkit/vue. Declare them in your own peerDependencies if you want to pin the version:

  • @formkit/core ^1.6.9
  • @formkit/validation ^1.6.9

License

MIT