Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save suntong/f39426d5424c131039198c6f4c79212a to your computer and use it in GitHub Desktop.

Select an option

Save suntong/f39426d5424c131039198c6f4c79212a to your computer and use it in GitHub Desktop.

This is a quick comparison between Element UI, Element Plus, and Quasar Framework.

To summarize the relationship immediately:

  • Element UI is the legacy Vue 2 library for desktop web apps.
  • Element Plus is the modern Vue 3 successor to Element UI (also desktop-focused).
  • Quasar is a massive Vue 3 ecosystem for building cross-platform apps (Web, Mobile, Desktop) using Material Design.

1. High-Level Overview

Feature Element UI Element Plus Quasar Framework
Vue Version Vue 2.x Vue 3.x Vue 3.x (v2), Vue 2.x (v1)
Primary Use Case Legacy Desktop Admin Panels Modern Desktop Admin Panels Cross-Platform Apps (SPA, PWA, Mobile, Electron)
Design System Custom "Flat" Style (Enterprise) Custom "Flat" Style (Enterprise) Material Design 2.0 (Google)
Nature Component Library Component Library Full Framework (CLI + UI + Build System)
Language JavaScript TypeScript JavaScript / TypeScript

2. Feature Comparison Matrix

Core Technology & Architecture

Feature Element UI Element Plus Quasar
Architecture Options API based. Composition API based (rewritten). Composition API based.
TypeScript External definitions (often buggy). Native TypeScript (written in TS). Excellent TS support (first-class).
Build Tooling Webpack (Legacy). Vite or Webpack. Quasar CLI (Powered by Vite or Webpack).
Tree Shaking Difficult / Manual. Automatic / Native ES Modules. Automatic / Highly Optimized.
SSR Support Basic / Manual setup required. Good (works with Nuxt 3). Excellent (Built-in SSR mode).
RTL Support Limited. Built-in (Config provider). Built-in.

Component Ecosystem

Feature Element UI Element Plus Quasar
Total Components ~60 ~70+ 70+ (and they are generally more feature-rich).
Responsiveness Poor. Built for Desktop mouse usage. Poor. Built for Desktop mouse usage. Excellent. Mobile-first, responsive grid.
Form Validation Uses async-validator. Uses async-validator. Built-in rules and validation system.
Data Tables Very powerful, strictly for desktop. Very powerful, virtualized scrolling added. Powerful, responsive modes (cards on mobile).
Icons Font-based (Icon fonts). SVG-based (Better performance). Agnostic (supports Material, FontAwesome, SVG, etc.).
Utility Classes Minimal. Minimal. Massive. Full CSS utility engine (Flex/Spacing/Colors).

Cross-Platform Capabilities

Feature Element UI Element Plus Quasar
SPA Yes Yes Yes
PWA Manual setup. Manual setup. One-switch toggle via CLI.
Mobile App (Capacitor/Cordova) No. No. Yes. Build iOS/Android apps from same code.
Desktop App (Electron) Manual setup. Manual setup. Yes. Build Mac/Win/Linux apps from same code.
Browser Extensions No. No. Yes. BEX mode included.

3. Detailed Breakdown

Element UI (The Legacy)

  • Status: Maintenance mode only.
  • Pros: Massive amount of legacy tutorials and StackOverflow answers. Stable for existing Vue 2 projects.
  • Cons: Not compatible with Vue 3. Heavy bundle size. Design looks slightly dated (2016 era).
  • Verdict: Do not start a new project with this. Only use if maintaining a legacy Vue 2 app.

Element Plus (The Desktop Specialist)

  • Status: Active development.
  • Philosophy: It is a 1:1 port of Element UI to Vue 3, but rewritten for performance.
  • Pros:
    • The "Table" Component: Element has one of the best complex data tables in the Vue ecosystem (fixed columns, multi-header, sorting, filtering).
    • Enterprise Look: It looks like "software," not a generic website. Great for B2B dashboards.
    • TypeScript: Native support makes development smoother.
  • Cons:
    • Not Mobile Friendly: If you open an Element Plus DatePicker on a mobile phone, it breaks the UX. It is strictly for mouse/keyboard inputs.
    • Styling: Customizing the SCSS variables can be tricky compared to Quasar's variable system.

Quasar Framework (The All-Rounder)

  • Status: Very Active.
  • Philosophy: "Write code once and deploy it as a Website, a Mobile App, and/or an Electron App."
  • Pros:
    • The CLI: Quasar isn't just a UI library; it's a build tool. quasar dev -m ios runs your site on an iPhone simulator. quasar dev -m electron runs it as a desktop app.
    • Directives: Includes powerful directives like v-ripple, v-touch-swipe, and v-mutation.
    • Plugins: Built-in managers for Dialogs, Notifications (Toasts), and LocalStorage.
    • Material Design: Follows standard Google guidelines, which makes it intuitive for users.
  • Cons:
    • Opinionated: You have to do things the "Quasar way."
    • Design Lock-in: It is very hard to make Quasar look not like Material Design. If you need a completely custom brand identity, you will fight the CSS.

4. Which one should you choose?

Choose Element Plus if:

  1. You are building a Desktop-only Admin Dashboard or B2B SaaS.
  2. You are migrating an old Element UI (Vue 2) project to Vue 3.
  3. You dislike Material Design and prefer a cleaner, "flat" enterprise aesthetic.
  4. You want to use your own build setup (Vite/Nuxt) without the overhead of a meta-framework.

Choose Quasar if:

  1. You need a Mobile App (iOS/Android) or a responsive website.
  2. You want to build a PWA or Electron app.
  3. You want a "Batteries Included" experience (Router, Store, i18n, and Icon sets are all configured for you).
  4. You like Material Design.
  5. You want the highest performance (Quasar is obsessed with render performance and low overhead).

Choose Element UI if:

  1. You are forced to maintain a legacy Vue 2 project. Otherwise, avoid.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment