Overview
Quasar is an open-source, MIT-licensed framework that enables developers to build a variety of applications using a single Vue.js codebase. Founded in 2016, it targets multiple deployment platforms including Single-Page Applications (SPAs), Server-Side Rendered (SSR) applications, Progressive Web Apps (PWAs), and cross-platform mobile and desktop applications. This unified approach aims to reduce development time and effort by eliminating the need to maintain separate codebases for different environments.
The framework provides a comprehensive suite of UI components that adhere to Material Design 2.0 guidelines, ensuring a consistent look and feel across all target platforms. These components are designed to be performant and customizable. Quasar integrates with various build tools and technologies, offering a command-line interface (CLI) for project setup, development, and building. This CLI streamlines common development tasks such as scaffolding new projects, running development servers, and compiling applications for production. Developers can configure projects for different build modes (e.g., SPA, PWA, SSR, Electron, Cordova) directly through the CLI.
Quasar is suitable for developers and teams looking to maximize code reuse and efficiency when targeting multiple platforms. Its component library covers a wide range of UI needs, from basic form elements to complex data tables and navigation structures. The framework also includes built-in features for internationalization, theme customization, and performance optimization. For instance, Quasar applications can be optimized for faster load times through techniques like tree-shaking and lazy loading, which are handled by the underlying build process. The framework's architecture is designed to be extensible, allowing developers to integrate third-party libraries and customize the build process as needed.
The developer experience with Quasar emphasizes ease of use and rapid prototyping. The framework's documentation provides detailed guides and API references, aiding developers in understanding and utilizing its features. The community around Quasar contributes to its ongoing development and offers support through various channels. By providing a full-stack solution for frontend development, Quasar aims to be a comprehensive choice for projects that require broad platform reach without compromising on performance or user experience.
Key features
- Unified Codebase: Develop SPAs, PWAs, SSR, mobile (Cordova/Capacitor), and desktop (Electron) applications from a single Vue.js codebase, reducing maintenance and development time.
- Material Design Components: Over 120 UI components that follow Material Design 2.0 specifications, providing a consistent and modern user interface across all platforms.
- Quasar CLI: A robust command-line interface for project scaffolding, development server management, and building applications for various targets with integrated webpack configuration.
- Performance Optimization: Built-in features for performance optimization, including tree-shaking for unused components and directives, and lazy loading for routes and components.
- Theming and Customization: Extensive theming capabilities through Sass variables, allowing developers to customize colors, typography, and component styles globally or per component. Sass is used for pre-processing CSS.
- Internationalization (i18n): Support for multiple languages with built-in internationalization features for component labels and messages.
- Accessibility (a11y): Components are designed with accessibility in mind, supporting ARIA attributes and keyboard navigation.
- Progressive Web App (PWA) Support: Tools and configurations for easily transforming applications into installable PWAs with offline capabilities and push notifications.
- Server-Side Rendering (SSR): Integrated support for SSR to improve initial page load performance and SEO.
- Electron and Cordova/Capacitor Integration: Seamless integration for building native desktop applications with Electron and hybrid mobile applications with Cordova or Capacitor.
- Directives and Plugins: A collection of useful directives (e.g., Ripple, TouchHold) and plugins (e.g., Notify, Dialog) to extend functionality.
Pricing
Quasar is an open-source project released under the MIT License, which means it is free to use for both personal and commercial projects. There are no licensing fees or subscription costs associated with the framework itself.
| Product | Pricing Model | Details | As of Date |
|---|---|---|---|
| Quasar Framework | Open Source | Entire framework is free to use, modify, and distribute | 2026-05-28 |
For additional details regarding Quasar's open-source licensing, refer to the project's official documentation on Quasar's licensing information.
Common integrations
- Vue Router: Used for handling client-side routing in SPAs and SSR applications. Quasar projects are pre-configured to use Vue Router.
- Vuex: State management library for Vue.js applications. Quasar provides scaffolding for Vuex stores.
- Axios: A popular promise-based HTTP client for making API requests from the browser and Node.js. It's commonly used for data fetching in Quasar applications. For more details on its usage, refer to the Axios documentation.
- ESLint: Pluggable linting utility for JavaScript and JSX, integrated into Quasar projects for code quality and consistency.
- Prettier: An opinionated code formatter that helps maintain consistent code styles across teams, often used alongside ESLint in Quasar projects.
- Sass/SCSS: Quasar uses Sass for styling, allowing for advanced CSS features like variables, nesting, and mixins. The framework's theming is built on Sass variables.
- Vite: While Quasar traditionally uses Webpack, there is also a Quasar CLI with Vite for faster development builds.
Alternatives
- Vuetify: A Vue UI Library with Material Design components, focused primarily on web applications.
- Element Plus: A Vue 3 based component library for developers, offering a rich set of UI components.
- PrimeVue: A complete UI component library for Vue with a wide range of features and themes.
Getting started
To begin with Quasar, you typically install the Quasar CLI and then create a new project. The following steps demonstrate how to set up a basic Quasar project and run it.
First, ensure you have Node.js and npm (or Yarn) installed. Then, globally install the Quasar CLI:
npm install -g @quasar/cli
Alternatively, if you prefer Yarn:
yarn global add @quasar/cli
Next, create a new Quasar project:
quasar create my-quasar-app
The CLI will prompt you to choose your desired features and project setup. For a minimal setup, you can often accept the defaults or select common options like ESLint and Prettier. Once the project is created, navigate into your new project directory:
cd my-quasar-app
Finally, start the development server:
quasar dev
This command will compile your application and open it in your default web browser, typically at http://localhost:8080. The development server supports hot-module replacement, meaning changes to your code will automatically refresh the browser without losing application state.
A simple Quasar component might look like this:
<template>
<q-page class="flex flex-center">
<q-card class="my-card">
<q-card-section>
<div class="text-h6">Hello, Quasar!</div>
</q-card-section>
<q-card-section>
<p>This is a basic Quasar application.</p>
<q-btn color="primary" label="Click Me" @click="showAlert" />
</q-card-section>
</q-card>
</q-page>
</template>
<script>
import { defineComponent } from 'vue';
import { useQuasar } from 'quasar';
export default defineComponent({
name: 'IndexPage',
setup() {
const $q = useQuasar();
const showAlert = () => {
$q.notify({
message: 'Button clicked!',
color: 'positive',
icon: 'check_circle'
});
};
return {
showAlert
};
}
});
</script>
<style lang="scss" scoped>
.my-card {
width: 100%;
max-width: 300px;
}
</style>
This example demonstrates a basic Vue component using Quasar's q-page, q-card, q-card-section, and q-btn components. It also shows how to use the useQuasar composition API function to access Quasar plugins like notify for displaying alerts. The <style lang="scss" scoped> block illustrates the use of Sass for styling, which is a standard feature in Quasar projects.