All Projects → NickHurst → nuxt-quasar

NickHurst / nuxt-quasar

Licence: other
Nuxt module for the Quasar Framework

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to nuxt-quasar

yamlful
YAML-based HTTP client code generation
Stars: ✭ 77 (+113.89%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
vue-plausible
Plausible Analytics Vue.js Plugin and NuxtJS Module
Stars: ✭ 107 (+197.22%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
date-fns-module
Modern JavaScript date utility library - date-fns for Nuxt.js
Stars: ✭ 68 (+88.89%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-prune-html
🔌⚡ Nuxt module to prune html before sending it to the browser (it removes elements matching CSS selector(s)), useful for boosting performance showing a different HTML for bots/audits by removing all the scripts with dynamic rendering
Stars: ✭ 69 (+91.67%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
k-domains
A simple module to manage multiple subdomains with just one project
Stars: ✭ 41 (+13.89%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-mail
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
Stars: ✭ 62 (+72.22%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-typo3
TYPO3 Frontend rendered in Vue.js and Nuxt (frontend for EXT:headless)
Stars: ✭ 66 (+83.33%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-stripejs
💳 NuxtJS module for Stripe.js which loads only when required and w/ retry mechanism
Stars: ✭ 17 (-52.78%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
global-components
Module to register global components for Nuxt.js
Stars: ✭ 57 (+58.33%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-feature-toggle
The nuxt feature toggle module
Stars: ✭ 78 (+116.67%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
lumen-cms
GraphQL API-First CMS based on NodeJS and Vue 2, Nuxt and Vuetify
Stars: ✭ 77 (+113.89%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-gsap-module
GSAP module for Nuxt.js
Stars: ✭ 183 (+408.33%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-stencil
Easy Stencil.js component library integration with Nuxt.js.
Stars: ✭ 16 (-55.56%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-winston-log
Nuxt module for logging SSR errors using winston
Stars: ✭ 41 (+13.89%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-jsonld
A Nuxt.js module to manage JSON-LD in Vue component.
Stars: ✭ 198 (+450%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
separate-env-module
Tear your variables apart!
Stars: ✭ 53 (+47.22%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-humans-txt
🧑🏻👩🏻 "We are people, not machines" - An initiative to know the creators of a website. Contains the information about humans to the web building - A Nuxt Module to statically integrate and generate a humans.txt author file - Based on the HumansTxt Project.
Stars: ✭ 27 (-25%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
supabase
An easy way to integrate Supabase with NuxtJS
Stars: ✭ 39 (+8.33%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
nuxt-babel
Use normal .babelrc file with your Nuxt app
Stars: ✭ 32 (-11.11%)
Mutual labels:  nuxt, nuxtjs, nuxt-module
Vue Svg Inline Loader
Webpack loader used for inline replacement of SVG images with actual content of SVG files in Vue projects.
Stars: ✭ 105 (+191.67%)
Mutual labels:  nuxt, quasar-framework, nuxtjs

Nuxt Quasar Module

npm

A Nuxt module for the Quasar Framework.

Note this module only supports Quasar >= 1.0

This is currently very early in development, so use with caution. There are currently no tests, but this module is currently used in production on a few of my Nuxt apps, however they all follow the roughly same configuration, so there are likely bugs lurking that I haven't found due to the limited usage at the time, so if you find a bug, please create an issue so I (or maybe someone else) can get it fixed.

Install

$ npm install --save nuxt-quasar

# Or with Yarn

$ yarn add nuxt-quasar

Then add it to your nuxt.config.js:

export default {
  // ...
  modules: [
    'nuxt-quasar',
  ],
  // ...
};

Then start it up to load Quasar with everything loaded and the default configuration, or start adding your own configuration via the nuxt.config.js or by creating a quasar.conf.js.

Features

  • Allows for configuring the Quasar Framework through nuxt.config.js or quasar.conf.js (Currently only supports a subset of Quasar's configuration options)
  • Brings some features that are only available when using Quasar CLI/Vue CLI like automatically importing Quasar's theme and your custom Stylus variables into your Vue components
  • Tree Shaking
  • Supports Nuxt's Universal mode for SPAs or SSR, as well as Nuxt's static generation

Roadmap

  • Support Quasar App Extensions, Nuxt's module API exposes a similar interface to Quasars App Extensions API which will allow for utilizing Quasar's App Extensions in the exact same manner as Quasar CLI.
  • Use Nuxt's module package commands to emulate some of the functionality of Quasar CLI.

Configuration

nuxt-quasar currently supports the following Quasar Config Options:

  • animations
  • extras
  • framework
    • config
      • brand
    • components
    • directives
    • plugins
    • iconSet
    • cssAddon
  • supportIE

You can configure these options in your nuxt.config.js:

export default {
  quasar: {
    animations: ["fadeIn", "fadeOut"],
    extras: ["fontawesome-v5"],
    framework: {
      config: {
        brand: {
          primary: "#ffffff",
          // ...
        },
      },
      components: [
        "QAvatar",
        "QBtn",
        // ...
      ],
      directives: ["ClosePopup"],
      plugins: ["Cookies"],
      iconSet: "fontawesome-v5",
      cssAddon: true
    },
    supportIE: true
  },
};

Or you can alternatively use a quasar.conf.js:

// Note ctx will be undefined currently, eventually
// support will be added to emulate the Quasar Context object
// allowing for dyanmic configuration
module.exports = function(ctx) {
  return {
    animations: ["fadeIn", "fadeOut"],
    extras: ["fontawesome-v5"],
    framework: {
      config: {
        brand: {
          primary: "#ffffff",
          // ...
        },
      },
      components: [
        "QAvatar",
        "QBtn",
        // ...
      ],
      directives: ["ClosePopup"],
      plugins: ["Cookies"],
      iconSet: "fontawesome-v5",
      cssAddon: true
    },
    supportIE: true
  };
};

Then for your custom theme/Quasar Variable overrides, you can create a quasar.variables.styl file in ./assets. These variables along with all of Quasars other variables will automatically be imported into your Vue components with a stylus style block:

// ./assets/quasar.variables.styl

$primary = #ffffff
// etc...
// ./components/MyComponent.vue
<style lang="stylus">
.my-component
  color $positive
  background-color $primary
</style>

Why/Who's this For

This was created because I have a few existing Nuxt projects, most of which were originally created while Quasar while still in early beta, and while I had wanted to use Quasar orginally on a few of them, I decided to use alternatives while Quasar matured.

However, now that Quasar is out of beta, and offers one of the best UI Frameworks available (in my opinion), I found myself wanting to start migrating those Nuxt apps over. Unfortunately though, Quasar only offers three ways to integrate it into your project (UMD, Quasar CLI, or Vue CLI). Quasar CLI is great, but can't be integrated into existing projects. Vue CLI is also a great tool, but yet again, can't easily be integrated into an existing Nuxt project. So, that leaves the UMD build, which while convinient, it doesn't offer all the benefits that Quasar/Vue CLI have (mainly treeshaking and configuration).

What I really wanted was an option to slowly integrate Quasar into a Nuxt project, as for some of the projects I would also like to eventually migrate to use Quasar CLI rather than Nuxt due to the features Quasar CLI offers like building for Electron/Cordova that are lacking in Nuxt. But, in addition to migrating the actual code to use the Quasar components, that would require also restructuring the entire project, and doing both at the same time sounds like a recipe for disaster. However, some of the projects (the ones that use Nuxt's static generation -- a feature unavailable in Quasar), I don't plan on migrating from Nuxt, but would like to be able to use the same config/files as I would when I'm working on a Quasar CLI project. Thus, this module was created.

So, if you want to use Quasar with Nuxt, incrementally migrate your Nuxt app to Quasar CLI, or just don't want to have the bloat of the UMD build, you may find this module useful.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].