From 726df730e5ca24639184507148cf06122b89b44e Mon Sep 17 00:00:00 2001 From: Tyler Chen Date: Mon, 13 Jul 2020 13:45:58 +0000 Subject: [PATCH] feat/babel-root-plugin (#15) fix: added webpack dev config Merge branch 'master' of git.bubblev.org:bubblev/bubble-web into feat/babel-root-plugin feat: implement header feat: implement reusable button component chore: add webpack config to git ignore chore: comment webpack proxy config Merge branch 'master' of git.bubblev.org:bubblev/bubble-web into feat/babel-root-plugin feat: add color palette feat: integrate babel-root-plugin feat: integrate babel-root-plugin Co-authored-by: Tyler Reviewed-on: https://git.bubblev.org/bubblev/bubble-web/pulls/15 --- package-lock.json | 115 ++++++++ package.json | 7 +- src/_components/layout/Header.vue | 45 ++++ src/_components/layout/index.js | 1 + src/_components/shared/Button.vue | 94 +++++++ src/_components/shared/index.js | 1 + src/_scss/_base.scss | 3 + src/_scss/_variables.scss | 77 ++++++ src/auth/LoginPage.vue | 246 ++++++++++++------ .../small-BubbleLogo-Horizontal-BlackText.png | Bin 0 -> 16527 bytes webpack.config.dev.js | 10 + webpack.config.js | 11 +- 12 files changed, 525 insertions(+), 85 deletions(-) create mode 100644 src/_components/layout/Header.vue create mode 100644 src/_components/layout/index.js create mode 100644 src/_components/shared/Button.vue create mode 100644 src/_components/shared/index.js create mode 100644 src/_scss/_base.scss create mode 100644 src/_scss/_variables.scss create mode 100644 src/public/small-BubbleLogo-Horizontal-BlackText.png create mode 100644 webpack.config.dev.js diff --git a/package-lock.json b/package-lock.json index a6f2246..d2c4414 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1782,6 +1782,17 @@ } } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -3029,6 +3040,85 @@ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -6304,6 +6394,15 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -8110,6 +8209,16 @@ "uuid": "^3.3.2" } }, + "webpack-merge": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.0.9.tgz", + "integrity": "sha512-P4teh6O26xIDPugOGX61wPxaeP918QOMjmzhu54zTVcLtOS28ffPWtnv+ilt3wscwBUCL2WNMnh97XkrKqt9Fw==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -8157,6 +8266,12 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", diff --git a/package.json b/package.json index 5794354..540156c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ }, "license": "LicenseRef-LICENSE.md", "scripts": { - "start": "webpack-dev-server --open" + "start": "webpack-dev-server --open", + "dev": "webpack-dev-server --open --config webpack.config.dev.js" }, "dependencies": { "babel-plugin-root-import": "^6.5.0", @@ -30,6 +31,7 @@ "babel-preset-stage-3": "^6.24.1", "babel-preset-vue": "^2.0.2", "copy-webpack-plugin": "^5.1.1", + "file-loader": "^6.0.0", "css-loader": "^2.1.1", "html-webpack-plugin": "^3.2.0", "path": "^0.12.7", @@ -37,6 +39,7 @@ "vue-template-compiler": "^2.6.10", "webpack": "^4.39.3", "webpack-cli": "^3.3.8", - "webpack-dev-server": "^3.8.0" + "webpack-dev-server": "^3.8.0", + "webpack-merge": "^5.0.9" } } diff --git a/src/_components/layout/Header.vue b/src/_components/layout/Header.vue new file mode 100644 index 0000000..2be3c65 --- /dev/null +++ b/src/_components/layout/Header.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/_components/layout/index.js b/src/_components/layout/index.js new file mode 100644 index 0000000..5653319 --- /dev/null +++ b/src/_components/layout/index.js @@ -0,0 +1 @@ +export { default as Header } from './Header'; diff --git a/src/_components/shared/Button.vue b/src/_components/shared/Button.vue new file mode 100644 index 0000000..de239c2 --- /dev/null +++ b/src/_components/shared/Button.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/_components/shared/index.js b/src/_components/shared/index.js new file mode 100644 index 0000000..eae9c8e --- /dev/null +++ b/src/_components/shared/index.js @@ -0,0 +1 @@ +export { default as Button } from './Button'; diff --git a/src/_scss/_base.scss b/src/_scss/_base.scss new file mode 100644 index 0000000..a0c5995 --- /dev/null +++ b/src/_scss/_base.scss @@ -0,0 +1,3 @@ +html, body { + font-family: 'Luto'; +} \ No newline at end of file diff --git a/src/_scss/_variables.scss b/src/_scss/_variables.scss new file mode 100644 index 0000000..c201009 --- /dev/null +++ b/src/_scss/_variables.scss @@ -0,0 +1,77 @@ +// color codes + +$deep-purple: #3607a6; +$deep-purple-1: #4709d7; +$deep-purple-2: #5814f5; +$deep-purple-3: #6628f6; +$deep-purple-4: #733bf7; +$deep-purple-5: #814ff8; +$deep-purple-6: #8f62f8; +$deep-purple-7: #3a07b0; +$deep-purple-8: #ba9efa; +$deep-purple-9: #d5c5fc; +$deep-purple-10: #e3d8fd; + +$vivid-navy: #221fe0; +$vivid-navy-1: #3c3ae4; +$vivid-navy-2: #4e4be7; +$vivid-navy-3: #605de9; +$vivid-navy-4: #716feb; +$vivid-navy-5: #8381ee; +$vivid-navy-6: #9593f0; +$vivid-navy-7: #a7a5f3; +$vivid-navy-8: #bab7f6; +$vivid-navy-9: #cbc9f8; +$vivid-navy-10: #dcdafb; + +$strong-purple: #7a11b1; +$strong-purple-1: #8c14cc; +$strong-purple-2: #9916df; +$strong-purple-3: #aa33eb; +$strong-purple-4: #b245ed; +$strong-purple-5: #c16af0; +$strong-purple-6: #c97df2; +$strong-purple-7: #d9a2f6; +$strong-purple-8: #e0b5f8; +$strong-purple-9: #e8c7fa; +$strong-purple-10: #f0d9fc; + +$vivid-pink: #f92c8b; +$vivid-pink-1: #f94d9d; +$vivid-pink-2: #f962a8; +$vivid-pink-3: #fa75b3; +$vivid-pink-4: #fb89be; +$vivid-pink-5: #fb9dc9; +$vivid-pink-6: #fcb1d4; +$vivid-pink-7: #fdc4df; +$vivid-pink-8: #fed8e9; +$vivid-pink-9: #feebf4; +$vivid-pink-10: #fdf5f9; + +$light-blue: #54c7ea; +$light-blue-1: #6ecfed; +$light-blue-2: #80d5ef; +$light-blue-3: #92dbf2; +$light-blue-4: #a4e1f4; +$light-blue-5: #b6e7f6; +$light-blue-6: #c9edf8; +$light-blue-7: #d7eef8; +$light-blue-8: #dbf3fa; +$light-blue-9: #e4f3f9; +$light-blue-10: #edf9fd; + +$bright-cyan: #2ed1a1; +$bright-cyan-1: #47d7ac; +$bright-cyan-2: #58dab3; +$bright-cyan-3: #68debb; +$bright-cyan-4: #79e2c2; +$bright-cyan-5: #8ae5ca; +$bright-cyan-6: #9be9d1; +$bright-cyan-7: #abedd9; +$bright-cyan-8: #bcf1e1; +$bright-cyan-9: #cdf4e8; +$bright-cyan-10: #def8f0; + + +// fonts +$default-font-family: 'Lato'; \ No newline at end of file diff --git a/src/auth/LoginPage.vue b/src/auth/LoginPage.vue index 456cd39..4f9617b 100644 --- a/src/auth/LoginPage.vue +++ b/src/auth/LoginPage.vue @@ -1,45 +1,123 @@ diff --git a/src/public/small-BubbleLogo-Horizontal-BlackText.png b/src/public/small-BubbleLogo-Horizontal-BlackText.png new file mode 100644 index 0000000000000000000000000000000000000000..9475bc25e0bcd9ed50eea737ce2640df502e6755 GIT binary patch literal 16527 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 Bnf3qx literal 0 HcmV?d00001 diff --git a/webpack.config.dev.js b/webpack.config.dev.js new file mode 100644 index 0000000..c9a79ad --- /dev/null +++ b/webpack.config.dev.js @@ -0,0 +1,10 @@ +const webpackMerge = require('webpack-merge'); + +module.exports = webpackMerge.merge(require('./webpack.config.js'), { + mode: 'development', + devServer: { + proxy: { + '/api': 'http://beta.bubv.net:8888', + }, + }, +}); diff --git a/webpack.config.js b/webpack.config.js index 6fe54b3..64a0dd0 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -34,6 +34,14 @@ module.exports = { test: /\.s[ac]ss$/i, use: ['style-loader', 'css-loader', 'sass-loader'], }, + { + test: /\.(png|jpe?g|gif)$/i, + use: [ + { + loader: 'file-loader', + }, + ], + }, ], }, plugins: [ @@ -44,9 +52,6 @@ module.exports = { ], devServer: { historyApiFallback: true, - // proxy: { - // '/api': 'http://beta.bubv.net:8888' - // } }, externals: { // global app config object