QIconPicker can be installed as a Quasar App Extension, as a Vue plugin, as a direct component import, or through the UMD bundle.
For Quasar CLI projects, the App Extension is the recommended path because it registers the boot file and adds the stylesheet for you.
If you are upgrading an existing app, read the Upgrade Guide before changing packages.
Quasar CLI
App Extension
To add QIconPicker to your Quasar application, run the following in your Quasar app folder:
quasar ext add @quasar/qiconpickerThe QIconPicker v3 App Extension targets Quasar CLI Vite 3 and requires @quasar/app-vite >=3.0.0-rc.2. It does not support webpack-based Quasar applications.
Uninstall
quasar ext remove @quasar/qiconpickerDescribe
When installed as an App Extension, you can use:
quasar describe QIconPickerManual Boot File
If you do not install through the App Extension, install the UI package directly:
pnpm add @quasar/quasar-ui-qiconpickerThen create and register a boot file:
import { defineBoot } from '#q-app'
import Plugin from '@quasar/quasar-ui-qiconpicker'
import '@quasar/quasar-ui-qiconpicker/dist/index.css'
export default defineBoot(({ app }) => {
app.use(Plugin)
})Manual Source Import
You can import from source when you need to transpile/customize the package in your app:
import { defineBoot } from '#q-app'
import Plugin from '@quasar/quasar-ui-qiconpicker/src/index.ts'
export default defineBoot(({ app }) => {
app.use(Plugin)
})Then add the source stylesheet to quasar.config.*:
// Note: using ~ tells Quasar the file resides in node_modules
css: ["app.scss", "~@quasar/quasar-ui-qiconpicker/src/index.scss"],
build: {
transpile: true,
transpileDependencies: [/quasar-ui-qiconpicker[\\/]src/],
}Quasar Component Import
<style src="@quasar/quasar-ui-qiconpicker/dist/index.css"></style>
<script setup lang="ts">
import { QIconPicker } from '@quasar/quasar-ui-qiconpicker'
</script>Icon Set Loading
QIconPicker lazy loads built-in icon-set names and SVG path data from @quasar/extras. This keeps the QIconPicker package from duplicating Quasar Extras metadata and means only the selected icon set is loaded by your app.
Make sure your app has @quasar/extras installed:
pnpm add @quasar/extras@2bun add @quasar/extras@2yarn add @quasar/extras@2npm install @quasar/extras@2Because icons are rendered from SVG path data, you do not need to preload the matching icon font CSS just for QIconPicker to display built-in sets.
Vue 3 Or Vite
Vue Plugin
import { createApp } from 'vue'
import Plugin from '@quasar/quasar-ui-qiconpicker'
import '@quasar/quasar-ui-qiconpicker/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(Plugin)
app.mount('#app')Vue Component Import
<style src="@quasar/quasar-ui-qiconpicker/dist/index.css"></style>
<script setup lang="ts">
import { QIconPicker } from '@quasar/quasar-ui-qiconpicker'
</script>UMD Variant
The UMD bundle exports window.QIconPicker.
Add the following tags after the Quasar stylesheet and script tags:
<head>
<link
href="https://cdn.jsdelivr.net/npm/@quasar/quasar-ui-qiconpicker/dist/index.min.css"
rel="stylesheet"
type="text/css"
/>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/@quasar/quasar-ui-qiconpicker/dist/index.umd.min.js"></script>
</body>If you need the RTL variant of the CSS, use this stylesheet instead:
<link
href="https://cdn.jsdelivr.net/npm/@quasar/quasar-ui-qiconpicker/dist/index.rtl.min.css"
rel="stylesheet"
type="text/css"
/>The UMD build is intended for manually supplied icons arrays. Built-in icon-set values rely on bundler support for @quasar/extras lazy imports.
QIconPicker v3 follows `@quasar/extras` v2. Supported built-in `icon-set` values are:
- `material-icons`
- `material-icons-outlined`
- `material-icons-round`
- `material-icons-sharp`
- `material-symbols-outlined`
- `material-symbols-rounded`
- `material-symbols-sharp`
- `ionicons-v8`
- `mdi-v7`
- `fontawesome-v7`
- `eva-icons`
- `themify`
- `line-awesome`
- `bootstrap-icons`Working With QIconPicker
QIconPicker uses @quasar/extras as the source of truth for built-in icon sets, so the picker can render without hand-maintained metadata in this repo.
If you provide your own icons array, name is the selected value emitted by v-model. The optional icon property can provide SVG path data for display.
WARNING
Most icon sets are very large, which may cause performance issues.
TIP
QIconPicker needs a specified height in its style, or in a parent style.