QuasarUI has 100 free Quasar components: hero sections, pricing tables, app layouts, data tables, inputs, dialogs and more. You can copy any of them without an account. This post is a map of where they are, what each group is good for, and how to get one running in a Quasar CLI or Nuxt project.
If you want the story of the site rebuild that made them free, read the new QuasarUI. This post is the practical part: what to copy and how.
Each Component is one Vue single-file component built with Quasar 2 and <script setup>. There is no npm package to install and no wrapper library. You copy the file, and from then on it is your code.
That has a few consequences worth knowing before you start:
q-pa-md, row, col-12 col-md-6), so there is no extra CSS to load.name="search") and Material Design Icons v7 (name="mdi-email"). You enable both once in your config, shown below.primary and secondary, so they pick up whatever your app's theme sets.The catalogue has 440 Components in 56 Blocks. A Block is a group of Components of one kind, like Hero Sections or Data Tables. 100 of the 440 are Free, and 55 of the 56 Blocks have at least one Free Component.
Blocks are tagged by what they are for. Here is how the 100 free ones spread across those tags:
| Tag | Blocks | Components | Free |
|---|---|---|---|
| Page Sections | 15 | 117 | 25 |
| Navigation | 6 | 39 | 13 |
| Elements | 4 | 17 | 10 |
| Forms | 6 | 58 | 10 |
| Core Layouts | 4 | 30 | 8 |
| Data Display | 3 | 42 | 7 |
| Feedback | 4 | 28 | 7 |
| Headings | 3 | 42 | 6 |
| Lists | 3 | 41 | 6 |
| Page Examples | 5 | 12 | 4 |
| Overlays | 3 | 14 | 4 |
You can filter the Components page by these tags, and Ctrl K (⌘ K on a Mac) searches every Component by name from any page.
This is the biggest group: 25 free Components across 15 Blocks. Every Page Sections Block has at least one free design, so you can put together a full marketing page without paying anything:
If you would rather start from a whole page, the Page Examples tag has a free landing page, pricing page, about page and 404 page.
Before you build an admin panel or a dashboard, you need its frame: the header, the drawer, the page container. The Core Layouts tag has 8 free shells:
These are built on QLayout, so the header, drawers and page container behave like any Quasar layout when you change them.
The Navigation tag has the most free Components after Page Sections. All 5 Pagination Components are free, both Steppers are free, and Tabs, App Bars, Vertical Navigation and Command Palettes each have free designs.
The parts every app needs, with at least one free design in each Block:
QTable), Stat Cards and Informational Cards.Notify setups.On a Block page, every Component has a Preview tab and a Code tab. The preview can be resized to phone, tablet and desktop widths, so check the design at the size you care about first. Then open Code and press the copy button. For a Free Component that works without signing in.
The Component is now on your clipboard as one .vue file. Where it goes depends on your project.
With nuxt-quasar-ui, enable the two icon sets once in nuxt.config.ts:
export default defineNuxtConfig({
modules: ["nuxt-quasar-ui"],
quasar: {
extras: {
fontIcons: ["material-icons", "mdi-v7"],
},
},
});Save the Component in app/components/ (or components/ if your project still uses the Nuxt 3 layout), named after it, for example app/components/PricingSection01.vue. Nuxt auto-imports components, so you can use it in a page straight away:
<template>
<q-page padding>
<PricingSection01 />
</q-page>
</template>In a Quasar CLI project, enable the icon sets in quasar.config (.js or .ts):
export default defineConfig(() => ({
extras: ["material-icons", "mdi-v7"],
}));Save the file as src/components/PricingSection01.vue, then import it where you use it:
<template>
<q-page padding>
<PricingSection01 />
</q-page>
</template>
<script setup>
import PricingSection01 from "components/PricingSection01.vue";
</script>The components alias points to src/components, so the same import line works from any page or layout.
A copied Component is a starting point. Three changes turn it into part of your app:
public/ and change the paths.color="primary" in every Component. Change what primary means for the whole app, and every Component follows.The Using a Component guide covers each of these in more detail, including what to do about dark mode.
The other 340 Components are Paid. Anyone can preview them on the site, including resizing the preview. Their code is available with All Access or Blocks Pro. A Free Component needs no sign-in, no Product and no trial.
If you use an AI editor like Cursor or Claude Code, the QuasarUI MCP Server returns every Free Component without a key, so your editor can paste them for you.
Do free Quasar components work with Quasar 2 and Vue 3? Yes. Every Component is a Vue 3 single-file component written for Quasar 2, using <script setup>.
Can I use them in a commercial project? Yes, in as many personal and client projects as you like. What you can't do is resell or give away the Components themselves, for example as your own component library.
Do I need TypeScript? No. Almost every Component uses <script setup lang="ts">, which Vite and Nuxt compile without extra setup, and the types are light enough to delete if you prefer plain JavaScript.
Do they work without Nuxt? Yes. Quasar CLI, Nuxt, or a plain Vite app with Quasar's Vite plugin all work. The only requirement is Quasar 2 with the two icon sets.
Open the Components page, pick a Block, and copy the first Free Component that fits what you are building. It takes less time than writing the markup yourself.