├── .editorconfig ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── .vscode └── settings.json ├── LICENSE.md ├── README.md ├── assets └── css │ └── tailwind.css ├── components ├── README.md ├── _demo │ ├── Graph1.vue │ ├── Graph2.vue │ ├── Graph3.vue │ ├── Graph4.vue │ ├── GraphCards.vue │ ├── MetricCards.vue │ └── Table.vue ├── charts │ ├── BarChart.vue │ ├── DoughnutChart.vue │ └── LineChart.vue ├── containers │ ├── BaseContainer.vue │ └── Box.vue └── widgets │ ├── Divider.vue │ └── MetricCard.vue ├── layouts ├── Footer.vue ├── Nav.vue ├── README.md └── default.vue ├── middleware └── README.md ├── now.json ├── nuxt.config.js ├── package-lock.json ├── package.json ├── pages ├── README.md └── index.vue ├── plugins └── README.md ├── static ├── README.md └── favicon.ico ├── store └── README.md └── tailwind.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true 6 | }, 7 | parserOptions: { 8 | parser: 'babel-eslint' 9 | }, 10 | extends: [ 11 | '@nuxtjs', 12 | 'plugin:nuxt/recommended', 13 | 'plugin:prettier/recommended', 14 | 'prettier', 15 | 'prettier/vue' 16 | ], 17 | plugins: [ 18 | 'prettier' 19 | ], 20 | // add your custom rules here 21 | rules: { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # parcel-bundler cache (https://parceljs.org/) 63 | .cache 64 | 65 | # next.js build output 66 | .next 67 | 68 | # nuxt.js build output 69 | .nuxt 70 | 71 | # Nuxt generate 72 | dist 73 | 74 | # vuepress build output 75 | .vuepress/dist 76 | 77 | # Serverless directories 78 | .serverless 79 | 80 | # IDE 81 | .idea 82 | 83 | # Service worker 84 | sw.* 85 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint.validate": [ 3 | "javascript", 4 | "javascriptreact", 5 | { "language": "vue", "autoFix": true } 6 | ], 7 | "eslint.autoFixOnSave": true 8 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Martin M. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nuxt-tailwind-admin 2 | 3 | > Nuxt.js + Tailwind CSS Admin starter 4 | 5 | ## Introduction 6 | 7 | This is a Nuxt.js starter using [Admin Template Day](https://www.tailwindtoolbox.com/templates/admin-template-day) from [Tailwind Toolbox](https://www.tailwindtoolbox.com/). 8 | 9 | ## Build Setup 10 | 11 | ``` bash 12 | # install dependencies 13 | $ npm install 14 | 15 | # serve with hot reload at localhost:3000 16 | $ npm run dev 17 | 18 | # build for production and launch server 19 | $ npm run build 20 | $ npm start 21 | 22 | # generate static project 23 | $ npm run generate 24 | ``` 25 | -------------------------------------------------------------------------------- /assets/css/tailwind.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This injects Tailwind's base styles, which is a combination of 3 | * Normalize.css and some additional base styles. 4 | * 5 | * You can see the styles here: 6 | * https://github.com/tailwindcss/tailwindcss/blob/master/css/preflight.css 7 | * 8 | * If using `postcss-import`, use this import instead: 9 | * 10 | * @import "tailwindcss/preflight"; 11 | */ 12 | @tailwind base; 13 | 14 | /** 15 | * This injects any component classes registered by plugins. 16 | * 17 | * If using `postcss-import`, use this import instead: 18 | * 19 | * @import "tailwindcss/components"; 20 | */ 21 | @tailwind components; 22 | 23 | /** 24 | * Here you would add any of your custom component classes; stuff that you'd 25 | * want loaded *before* the utilities so that the utilities could still 26 | * override them. 27 | * 28 | * Example: 29 | * 30 | * .btn { ... } 31 | * .form-input { ... } 32 | * 33 | * Or if using a preprocessor or `postcss-import`: 34 | * 35 | * @import "components/buttons"; 36 | * @import "components/forms"; 37 | */ 38 | 39 | /** 40 | * This injects all of Tailwind's utility classes, generated based on your 41 | * config file. 42 | * 43 | * If using `postcss-import`, use this import instead: 44 | * 45 | * @import "tailwindcss/utilities"; 46 | */ 47 | @tailwind utilities; 48 | 49 | /** 50 | * Here you would add any custom utilities you need that don't come out of the 51 | * box with Tailwind. 52 | * 53 | * Example : 54 | * 55 | * .bg-pattern-graph-paper { ... } 56 | * .skew-45 { ... } 57 | * 58 | * Or if using a preprocessor or `postcss-import`: 59 | * 60 | * @import "utilities/background-patterns"; 61 | * @import "utilities/skew-transforms"; 62 | */ 63 | -------------------------------------------------------------------------------- /components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | The components directory contains your Vue.js Components. 6 | 7 | _Nuxt.js doesn't supercharge these components._ 8 | -------------------------------------------------------------------------------- /components/_demo/Graph1.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 53 | -------------------------------------------------------------------------------- /components/_demo/Graph2.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /components/_demo/Graph3.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /components/_demo/Graph4.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /components/_demo/GraphCards.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 25 | -------------------------------------------------------------------------------- /components/_demo/MetricCards.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /components/_demo/Table.vue: -------------------------------------------------------------------------------- 1 | 39 | -------------------------------------------------------------------------------- /components/charts/BarChart.vue: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /components/charts/DoughnutChart.vue: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /components/charts/LineChart.vue: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /components/containers/BaseContainer.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /components/containers/Box.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /components/widgets/Divider.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /components/widgets/MetricCard.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 78 | -------------------------------------------------------------------------------- /layouts/Footer.vue: -------------------------------------------------------------------------------- 1 | 48 | 49 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /layouts/Nav.vue: -------------------------------------------------------------------------------- 1 | 168 | 169 | 228 | -------------------------------------------------------------------------------- /layouts/README.md: -------------------------------------------------------------------------------- 1 | # LAYOUTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your Application Layouts. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts). 8 | -------------------------------------------------------------------------------- /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | -------------------------------------------------------------------------------- /middleware/README.md: -------------------------------------------------------------------------------- 1 | # MIDDLEWARE 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your application middleware. 6 | Middleware let you define custom functions that can be run before rendering either a page or a group of pages. 7 | 8 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware). 9 | -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "name": "nuxt-starters", 4 | "builds": [ 5 | { 6 | "src": "package.json", 7 | "use": "@now/static-build" 8 | } 9 | ], 10 | "alias": [ 11 | "nuxt-tailwind-admin.now.sh" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /nuxt.config.js: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import pkg from './package'; 3 | 4 | export default { 5 | mode: 'universal', 6 | 7 | /* 8 | ** Headers of the page 9 | */ 10 | head: { 11 | title: pkg.name, 12 | meta: [ 13 | { charset: 'utf-8' }, 14 | { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 15 | { hid: 'description', name: 'description', content: pkg.description } 16 | ], 17 | link: [ 18 | { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }, 19 | { 20 | rel: 'stylesheet', 21 | href: 'https://use.fontawesome.com/releases/v5.3.1/css/all.css', 22 | integrity: 23 | 'sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU', 24 | crossorigin: 'anonymous' 25 | } 26 | ] 27 | }, 28 | 29 | /* 30 | ** Customize the progress-bar color 31 | */ 32 | loading: { color: '#fff' }, 33 | 34 | /* 35 | ** Global CSS 36 | */ 37 | css: ['~/assets/css/tailwind.css'], 38 | 39 | /* 40 | ** Plugins to load before mounting the App 41 | */ 42 | plugins: [], 43 | 44 | /* 45 | ** Nuxt.js modules 46 | */ 47 | modules: [], 48 | 49 | /* 50 | ** Build configuration 51 | */ 52 | build: { 53 | postcss: { 54 | plugins: { 55 | tailwindcss: path.resolve(__dirname, './tailwind.config.js') 56 | } 57 | }, 58 | extend(config, ctx) { 59 | // Run ESLint on save 60 | if (ctx.isDev && ctx.isClient) { 61 | config.module.rules.push({ 62 | enforce: 'pre', 63 | test: /\.(js|vue)$/, 64 | loader: 'eslint-loader', 65 | exclude: /(node_modules)/ 66 | }); 67 | } 68 | } 69 | } 70 | }; 71 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nuxt-tailwind-admin", 3 | "version": "1.1.0", 4 | "description": "Nuxt.js + Tailwind CSS Admin starter", 5 | "author": "Martín M.", 6 | "private": true, 7 | "scripts": { 8 | "dev": "nuxt", 9 | "build": "nuxt build", 10 | "start": "nuxt start", 11 | "generate": "nuxt generate", 12 | "now-build": "nuxt generate", 13 | "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", 14 | "precommit": "npm run lint" 15 | }, 16 | "dependencies": { 17 | "chart.js": "^2.8.0", 18 | "cross-env": "^5.2.0", 19 | "nuxt": "^2.8.1", 20 | "vue-chartjs": "^3.4.2" 21 | }, 22 | "devDependencies": { 23 | "@nuxtjs/eslint-config": "^0.0.1", 24 | "autoprefixer": "^9.6.0", 25 | "babel-eslint": "^10.0.2", 26 | "eslint": "^5.16.0", 27 | "eslint-config-prettier": "^5.0.0", 28 | "eslint-config-standard": ">=12.0.0", 29 | "eslint-loader": "^2.1.2", 30 | "eslint-plugin-import": ">=2.17.3", 31 | "eslint-plugin-jest": ">=22.6.4", 32 | "eslint-plugin-node": ">=9.1.0", 33 | "eslint-plugin-nuxt": ">=0.4.3", 34 | "eslint-plugin-prettier": "^3.1.0", 35 | "eslint-plugin-promise": ">=4.1.1", 36 | "eslint-plugin-standard": ">=4.0.0", 37 | "eslint-plugin-vue": "^5.2.2", 38 | "nodemon": "^1.19.1", 39 | "prettier": "^1.18.2", 40 | "tailwindcss": "^1.0.4" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /pages/README.md: -------------------------------------------------------------------------------- 1 | # PAGES 2 | 3 | This directory contains your Application Views and Routes. 4 | The framework reads all the `*.vue` files inside this directory and creates the router of your application. 5 | 6 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing). 7 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 27 | -------------------------------------------------------------------------------- /plugins/README.md: -------------------------------------------------------------------------------- 1 | # PLUGINS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains Javascript plugins that you want to run before mounting the root Vue.js application. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/plugins). 8 | -------------------------------------------------------------------------------- /static/README.md: -------------------------------------------------------------------------------- 1 | # STATIC 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your static files. 6 | Each file inside this directory is mapped to `/`. 7 | Thus you'd want to delete this README.md before deploying to production. 8 | 9 | Example: `/static/robots.txt` is mapped as `/robots.txt`. 10 | 11 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static). 12 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skydiver/nuxt-tailwind-admin/a3060362e82df16e9768a544a7570c964911e7a6/static/favicon.ico -------------------------------------------------------------------------------- /store/README.md: -------------------------------------------------------------------------------- 1 | # STORE 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your Vuex Store files. 6 | Vuex Store option is implemented in the Nuxt.js framework. 7 | 8 | Creating a file in this directory automatically activates the option in the framework. 9 | 10 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/vuex-store). 11 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | prefix: '', 3 | important: false, 4 | separator: ':', 5 | theme: {}, 6 | variants: {}, 7 | plugins: [] 8 | }; 9 | --------------------------------------------------------------------------------