diff --git a/docs/.vuepress/public/logo.png b/docs/.vuepress/public/logo.png index dcc95cb5..ecef7589 100644 Binary files a/docs/.vuepress/public/logo.png and b/docs/.vuepress/public/logo.png differ diff --git a/docs/changelog/README.md b/docs/changelog/README.md index d7560261..c5c40036 100644 --- a/docs/changelog/README.md +++ b/docs/changelog/README.md @@ -8,6 +8,29 @@ All notable changes to this project will be documented in this file. ## April 2020 +### April 28, 2020 + +- Added Feature to Reorder Skills/Hobbies +- Added Hobbies Section to Left Sidebar +- Updated Templates to Add Hobbies + +### April 23, 2020 + +- Fix Issue with Page Controller Icon Size +- Fix Issue with Checkbox Icon Toggle + +### April 23, 2020 + +- Transfer all external resources to local, self-host everything +- Shorten entry animation by a second +- Optimize Images through `imgbot` + +### April 22, 2020 + +- Display Original Language Name alongside English Language Name +- Added Language: Tamil +- Added Language: Vietnamese + ### April 17, 2020 - Updated Dependencies across App diff --git a/docs/features/images/2.png b/docs/features/images/2.png index 3006d343..c7c93d33 100644 Binary files a/docs/features/images/2.png and b/docs/features/images/2.png differ diff --git a/docs/features/images/4.png b/docs/features/images/4.png index bb8d4cc3..0ba244c1 100644 Binary files a/docs/features/images/4.png and b/docs/features/images/4.png differ diff --git a/docs/features/images/5.png b/docs/features/images/5.png index 1fcb5ede..18e82a2b 100644 Binary files a/docs/features/images/5.png and b/docs/features/images/5.png differ diff --git a/docs/features/images/7.png b/docs/features/images/7.png index 1d3a844f..c0d8df6e 100644 Binary files a/docs/features/images/7.png and b/docs/features/images/7.png differ diff --git a/docs/images/logo.png b/docs/images/logo.png index 10047e43..49c56642 100644 Binary files a/docs/images/logo.png and b/docs/images/logo.png differ diff --git a/docs/translation/images/language-options.png b/docs/translation/images/language-options.png index 8a1587ee..77014be9 100644 Binary files a/docs/translation/images/language-options.png and b/docs/translation/images/language-options.png differ diff --git a/docs/translation/images/list-of-strings.png b/docs/translation/images/list-of-strings.png index 16ee5e60..ca6d0504 100644 Binary files a/docs/translation/images/list-of-strings.png and b/docs/translation/images/list-of-strings.png differ diff --git a/docs/translation/images/translate-all.png b/docs/translation/images/translate-all.png index 9a2c9036..38b77e79 100644 Binary files a/docs/translation/images/translate-all.png and b/docs/translation/images/translate-all.png differ diff --git a/docs/translation/images/translation-editor.png b/docs/translation/images/translation-editor.png index c529a13d..c75d202d 100644 Binary files a/docs/translation/images/translation-editor.png and b/docs/translation/images/translation-editor.png differ diff --git a/docs/translation/images/translation-helper.png b/docs/translation/images/translation-helper.png index 2f49ae60..685643b6 100644 Binary files a/docs/translation/images/translation-helper.png and b/docs/translation/images/translation-helper.png differ diff --git a/package-lock.json b/package-lock.json index b87843bb..4ed96e8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1704,9 +1704,9 @@ } }, "@testing-library/user-event": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-10.0.2.tgz", - "integrity": "sha512-fVeP4U37BIYdp9nBRKEITFSLPqgCSS7Og6LHvxoQ2JSOTJ1NJI4Dfesv4uNXxvNNcJgBS88V+Tc6h8vbDsa2iA==" + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-10.1.0.tgz", + "integrity": "sha512-qutUm/2lWAD8IiKrss2Cg6Hf8AkcMeylKm09bSMtYC39Ug68aXWkcbc0H/NVD5R1zOHguTjkR/Ppuns6bWksGQ==" }, "@types/babel__core": { "version": "7.1.6", @@ -6844,9 +6844,9 @@ } }, "eslint-config-prettier": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz", - "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -16082,13 +16082,13 @@ } }, "tailwindcss": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.2.0.tgz", - "integrity": "sha512-CKvY0ytB3ze5qvynG7qv4XSpQtFNGPbu9pUn8qFdkqgD8Yo/vGss8mhzbqls44YCXTl4G62p3qVZBj45qrd6FQ==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.3.5.tgz", + "integrity": "sha512-hHGShfHBj7tAQRobnsYckDySPpMDnPF4KejHYYRcZjZQvyRRnCSHi2S905icK24HrYadOq9pZKwENqg2axSviw==", "requires": { "autoprefixer": "^9.4.5", "bytes": "^3.0.0", - "chalk": "^3.0.0", + "chalk": "^4.0.0", "detective": "^5.2.0", "fs-extra": "^8.0.0", "lodash": "^4.17.15", @@ -16114,9 +16114,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" diff --git a/package.json b/package.json index 72ac596a..f91bd8d3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@fullhuman/postcss-purgecss": "^2.1.2", "@testing-library/jest-dom": "^5.5.0", "@testing-library/react": "^10.0.3", - "@testing-library/user-event": "^10.0.2", + "@testing-library/user-event": "^10.1.0", "@vuepress/plugin-google-analytics": "^1.4.1", "autoprefixer": "^9.7.6", "axios": "^0.19.2", @@ -28,7 +28,7 @@ "react-markdown": "^4.3.1", "react-scripts": "3.4.1", "react-toastify": "^5.5.0", - "tailwindcss": "^1.2.0", + "tailwindcss": "^1.3.5", "uuid": "^7.0.3", "vuepress": "^1.4.1" }, @@ -69,7 +69,7 @@ }, "devDependencies": { "eslint-config-airbnb": "^18.1.0", - "eslint-config-prettier": "^6.10.1", + "eslint-config-prettier": "^6.11.0", "eslint-plugin-import": "^2.20.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-prettier": "^3.1.3", diff --git a/public/images/icons/icon-128x128.png b/public/images/icons/icon-128x128.png index 858cb945..32412aa7 100644 Binary files a/public/images/icons/icon-128x128.png and b/public/images/icons/icon-128x128.png differ diff --git a/public/images/icons/icon-144x144.png b/public/images/icons/icon-144x144.png index 13b6ce22..0564f4f4 100644 Binary files a/public/images/icons/icon-144x144.png and b/public/images/icons/icon-144x144.png differ diff --git a/public/images/icons/icon-152x152.png b/public/images/icons/icon-152x152.png index 1721d54a..2a178a10 100644 Binary files a/public/images/icons/icon-152x152.png and b/public/images/icons/icon-152x152.png differ diff --git a/public/images/icons/icon-192x192.png b/public/images/icons/icon-192x192.png index 21c17973..b5a5fef2 100644 Binary files a/public/images/icons/icon-192x192.png and b/public/images/icons/icon-192x192.png differ diff --git a/public/images/icons/icon-384x384.png b/public/images/icons/icon-384x384.png index 645bc7ba..31e7af37 100644 Binary files a/public/images/icons/icon-384x384.png and b/public/images/icons/icon-384x384.png differ diff --git a/public/images/icons/icon-512x512.png b/public/images/icons/icon-512x512.png index d87f4e5e..6aefe4e0 100644 Binary files a/public/images/icons/icon-512x512.png and b/public/images/icons/icon-512x512.png differ diff --git a/public/images/icons/icon-72x72.png b/public/images/icons/icon-72x72.png index 60f5def5..dafac16d 100644 Binary files a/public/images/icons/icon-72x72.png and b/public/images/icons/icon-72x72.png differ diff --git a/public/images/icons/icon-96x96.png b/public/images/icons/icon-96x96.png index 46a6b9e4..eaf8d67a 100644 Binary files a/public/images/icons/icon-96x96.png and b/public/images/icons/icon-96x96.png differ diff --git a/public/images/thumbnail.png b/public/images/thumbnail.png index 81cf904b..2b1d42d6 100644 Binary files a/public/images/thumbnail.png and b/public/images/thumbnail.png differ diff --git a/public/index.html b/public/index.html index ab979153..084866e2 100644 --- a/public/index.html +++ b/public/index.html @@ -25,15 +25,6 @@ Reactive Resume - - - - - - - - - diff --git a/src/assets/css/animate.css b/src/assets/css/animate.css new file mode 100644 index 00000000..688cfaec --- /dev/null +++ b/src/assets/css/animate.css @@ -0,0 +1,79 @@ +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +@media (print), (prefers-reduced-motion: reduce) { + .animated { + -webkit-animation-duration: 1ms !important; + animation-duration: 1ms !important; + -webkit-transition-duration: 1ms !important; + transition-duration: 1ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count: 1 !important; + } +} diff --git a/src/assets/css/fonts.css b/src/assets/css/fonts.css new file mode 100644 index 00000000..d3ec633f --- /dev/null +++ b/src/assets/css/fonts.css @@ -0,0 +1,304 @@ +/* Material Icons */ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: local('Material Icons'), local('MaterialIcons-Regular'), + url('../fonts/MaterialIcons/MaterialIcons-400.woff2') format('woff2'), + url('../fonts/MaterialIcons/MaterialIcons-400.woff') format('woff'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: 'liga'; +} + +/* Montserrat 400 */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: local('Montserrat Regular'), local('Montserrat-Regular'), + url('../fonts/Montserrat/Montserrat-400.woff2') format('woff2'), + url('../fonts/Montserrat/Montserrat-400.woff') format('woff'); +} + +/* Montserrat 500 */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: local('Montserrat Medium'), local('Montserrat-Medium'), + url('../fonts/Montserrat/Montserrat-500.woff2') format('woff2'), + url('../fonts/Montserrat/Montserrat-500.woff') format('woff'); +} + +/* Montserrat 600 */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: local('Montserrat SemiBold'), local('Montserrat-SemiBold'), + url('../fonts/Montserrat/Montserrat-600.woff2') format('woff2'), + url('../fonts/Montserrat/Montserrat-600.woff') format('woff'); +} + +/* Montserrat 700 */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: local('Montserrat Bold'), local('Montserrat-Bold'), + url('../fonts/Montserrat/Montserrat-700.woff2') format('woff2'), + url('../fonts/Montserrat/Montserrat-700.woff') format('woff'); +} + +/* Lato 400 */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), + url('../fonts/Lato/Lato-400.woff2') format('woff2'), + url('../fonts/Lato/Lato-400.woff') format('woff'); +} + +/* Lato 700 */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: local('Lato Bold'), local('Lato-Bold'), url('../fonts/Lato/Lato-700.woff2') format('woff2'), + url('../fonts/Lato/Lato-700.woff') format('woff'); +} + +/* Nunito 400 */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: local('Nunito Regular'), local('Nunito-Regular'), + url('../fonts/Nunito/Nunito-400.woff') format('woff2'), + url('../fonts/Nunito/Nunito-400.woff2') format('woff'); +} + +/* Nunito 600 */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: local('Nunito SemiBold'), local('Nunito-SemiBold'), + url('../fonts/Nunito/Nunito-600.woff') format('woff2'), + url('../fonts/Nunito/Nunito-600.woff2') format('woff'); +} + +/* Nunito 700 */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 700; + src: local('Nunito Bold'), local('Nunito-Bold'), + url('../fonts/Nunito/Nunito-700.woff') format('woff2'), + url('../fonts/Nunito/Nunito-700.woff2') format('woff'); +} + +/* Open Sans 400 */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans Regular'), local('OpenSans-Regular'), + url('../fonts/OpenSans/OpenSans-400.woff2') format('woff2'), + url('../fonts/OpenSans/OpenSans-400.woff') format('woff'); +} + +/* Open Sans 600 */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'), + url('../fonts/OpenSans/OpenSans-600.woff2') format('woff2'), + url('../fonts/OpenSans/OpenSans-600.woff') format('woff'); +} + +/* Open Sans 700 */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), + url('../fonts/OpenSans/OpenSans-700.woff2') format('woff2'), + url('../fonts/OpenSans/OpenSans-700.woff') format('woff'); +} + +/* Raleway 400 */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: local('Raleway'), local('Raleway-Regular'), + url('../fonts/Raleway/Raleway-400.woff2') format('woff2'), + url('../fonts/Raleway/Raleway-400.woff') format('woff'); +} + +/* Raleway 500 */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 500; + src: local('Raleway Medium'), local('Raleway-Medium'), + url('../fonts/Raleway/Raleway-500.woff2') format('woff2'), + url('../fonts/Raleway/Raleway-500.woff') format('woff'); +} + +/* Raleway 600 */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 600; + src: local('Raleway SemiBold'), local('Raleway-SemiBold'), + url('../fonts/Raleway/Raleway-600.woff2') format('woff2'), + url('../fonts/Raleway/Raleway-600.woff') format('woff'); +} + +/* Raleway 700 */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: local('Raleway Bold'), local('Raleway-Bold'), + url('../fonts/Raleway/Raleway-700.woff2') format('woff2'), + url('../fonts/Raleway/Raleway-700.woff') format('woff'); +} + +/* Rubik 400 */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 400; + src: local('Rubik'), local('Rubik-Regular'), url('../fonts/Rubik/Rubik-400.woff2') format('woff2'), + url('../fonts/Rubik/Rubik-400.woff') format('woff'); +} + +/* Rubik 500 */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 500; + src: local('Rubik Medium'), local('Rubik-Medium'), + url('../fonts/Rubik/Rubik-500.woff2') format('woff2'), + url('../fonts/Rubik/Rubik-500.woff') format('woff'); +} + +/* Rubik 700 */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 700; + src: local('Rubik Bold'), local('Rubik-Bold'), + url('../fonts/Rubik/Rubik-700.woff2') format('woff2'), + url('../fonts/Rubik/Rubik-700.woff') format('woff'); +} + +/* Source Sans Pro 400 */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + src: local('Source Sans Pro Regular'), local('SourceSansPro-Regular'), + url('../fonts/SourceSansPro/SourceSansPro-400.woff2') format('woff2'), + url('../fonts/SourceSansPro/SourceSansPro-400.woff') format('woff'); +} + +/* Source Sans Pro 600 */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + src: local('Source Sans Pro SemiBold'), local('SourceSansPro-SemiBold'), + url('../fonts/SourceSansPro/SourceSansPro-600.woff2') format('woff2'), + url('../fonts/SourceSansPro/SourceSansPro-600.woff') format('woff'); +} + +/* Source Sans Pro 700 */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), + url('../fonts/SourceSansPro/SourceSansPro-700.woff2') format('woff2'), + url('../fonts/SourceSansPro/SourceSansPro-700.woff') format('woff'); +} + +/* Titillium Web 400 */ +@font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 400; + src: local('Titillium Web Regular'), local('TitilliumWeb-Regular'), + url('../fonts/TitilliumWeb/TitilliumWeb-400.woff2') format('woff2'), + url('../fonts/TitilliumWeb/TitilliumWeb-400.woff') format('woff'); +} + +/* Titillium Web 600 */ +@font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 600; + src: local('Titillium Web SemiBold'), local('TitilliumWeb-SemiBold'), + url('../fonts/TitilliumWeb/TitilliumWeb-600.woff2') format('woff2'), + url('../fonts/TitilliumWeb/TitilliumWeb-600.woff') format('woff'); +} + +/* Titillium Web 700 */ +@font-face { + font-family: 'Titillium Web'; + font-style: normal; + font-weight: 700; + src: local('Titillium Web Bold'), local('TitilliumWeb-Bold'), + url('../fonts/TitilliumWeb/TitilliumWeb-700.woff2') format('woff2'), + url('../fonts/TitilliumWeb/TitilliumWeb-700.woff') format('woff'); +} + +/* Ubuntu 400 */ +@font-face { + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 400; + src: local('Ubuntu Regular'), local('Ubuntu-Regular'), + url('../fonts/Ubuntu/Ubuntu-400.woff2') format('woff2'), + url('../fonts/Ubuntu/Ubuntu-400.woff') format('woff'); +} + +/* Ubuntu 500 */ +@font-face { + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 500; + src: local('Ubuntu Medium'), local('Ubuntu-Medium'), + url('../fonts/Ubuntu/Ubuntu-500.woff2') format('woff2'), + url('../fonts/Ubuntu/Ubuntu-500.woff') format('woff'); +} + +/* Ubuntu 700 */ +@font-face { + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 700; + src: local('Ubuntu Bold'), local('Ubuntu-Bold'), + url('../fonts/Ubuntu/Ubuntu-700.woff2') format('woff2'), + url('../fonts/Ubuntu/Ubuntu-700.woff') format('woff'); +} diff --git a/src/assets/fonts/Lato/Lato-400.woff b/src/assets/fonts/Lato/Lato-400.woff new file mode 100644 index 00000000..189a0feb Binary files /dev/null and b/src/assets/fonts/Lato/Lato-400.woff differ diff --git a/src/assets/fonts/Lato/Lato-400.woff2 b/src/assets/fonts/Lato/Lato-400.woff2 new file mode 100644 index 00000000..6904b664 Binary files /dev/null and b/src/assets/fonts/Lato/Lato-400.woff2 differ diff --git a/src/assets/fonts/Lato/Lato-700.woff b/src/assets/fonts/Lato/Lato-700.woff new file mode 100644 index 00000000..abf0196d Binary files /dev/null and b/src/assets/fonts/Lato/Lato-700.woff differ diff --git a/src/assets/fonts/Lato/Lato-700.woff2 b/src/assets/fonts/Lato/Lato-700.woff2 new file mode 100644 index 00000000..f8c37ecd Binary files /dev/null and b/src/assets/fonts/Lato/Lato-700.woff2 differ diff --git a/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff b/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff new file mode 100644 index 00000000..b648a3ee Binary files /dev/null and b/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff differ diff --git a/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff2 b/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff2 new file mode 100644 index 00000000..9fa21125 Binary files /dev/null and b/src/assets/fonts/MaterialIcons/MaterialIcons-400.woff2 differ diff --git a/src/assets/fonts/Montserrat/Montserrat-400.woff b/src/assets/fonts/Montserrat/Montserrat-400.woff new file mode 100644 index 00000000..676a065e Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-400.woff differ diff --git a/src/assets/fonts/Montserrat/Montserrat-400.woff2 b/src/assets/fonts/Montserrat/Montserrat-400.woff2 new file mode 100644 index 00000000..70788c27 Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-400.woff2 differ diff --git a/src/assets/fonts/Montserrat/Montserrat-500.woff b/src/assets/fonts/Montserrat/Montserrat-500.woff new file mode 100644 index 00000000..1c83d851 Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-500.woff differ diff --git a/src/assets/fonts/Montserrat/Montserrat-500.woff2 b/src/assets/fonts/Montserrat/Montserrat-500.woff2 new file mode 100644 index 00000000..9dc5c7f1 Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-500.woff2 differ diff --git a/src/assets/fonts/Montserrat/Montserrat-600.woff b/src/assets/fonts/Montserrat/Montserrat-600.woff new file mode 100644 index 00000000..e7f8a31b Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-600.woff differ diff --git a/src/assets/fonts/Montserrat/Montserrat-600.woff2 b/src/assets/fonts/Montserrat/Montserrat-600.woff2 new file mode 100644 index 00000000..29cc1a97 Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-600.woff2 differ diff --git a/src/assets/fonts/Montserrat/Montserrat-700.woff b/src/assets/fonts/Montserrat/Montserrat-700.woff new file mode 100644 index 00000000..8573760b Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-700.woff differ diff --git a/src/assets/fonts/Montserrat/Montserrat-700.woff2 b/src/assets/fonts/Montserrat/Montserrat-700.woff2 new file mode 100644 index 00000000..3d0b4099 Binary files /dev/null and b/src/assets/fonts/Montserrat/Montserrat-700.woff2 differ diff --git a/src/assets/fonts/Nunito/Nunito-400.woff b/src/assets/fonts/Nunito/Nunito-400.woff new file mode 100644 index 00000000..552165c9 Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-400.woff differ diff --git a/src/assets/fonts/Nunito/Nunito-400.woff2 b/src/assets/fonts/Nunito/Nunito-400.woff2 new file mode 100644 index 00000000..93ddafa3 Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-400.woff2 differ diff --git a/src/assets/fonts/Nunito/Nunito-600.woff b/src/assets/fonts/Nunito/Nunito-600.woff new file mode 100644 index 00000000..70c1e2e6 Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-600.woff differ diff --git a/src/assets/fonts/Nunito/Nunito-600.woff2 b/src/assets/fonts/Nunito/Nunito-600.woff2 new file mode 100644 index 00000000..4c536b06 Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-600.woff2 differ diff --git a/src/assets/fonts/Nunito/Nunito-700.woff b/src/assets/fonts/Nunito/Nunito-700.woff new file mode 100644 index 00000000..2f9aa982 Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-700.woff differ diff --git a/src/assets/fonts/Nunito/Nunito-700.woff2 b/src/assets/fonts/Nunito/Nunito-700.woff2 new file mode 100644 index 00000000..68cb621a Binary files /dev/null and b/src/assets/fonts/Nunito/Nunito-700.woff2 differ diff --git a/src/assets/fonts/OpenSans/OpenSans-400.woff b/src/assets/fonts/OpenSans/OpenSans-400.woff new file mode 100644 index 00000000..39e88ed9 Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-400.woff differ diff --git a/src/assets/fonts/OpenSans/OpenSans-400.woff2 b/src/assets/fonts/OpenSans/OpenSans-400.woff2 new file mode 100644 index 00000000..e9f58b77 Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-400.woff2 differ diff --git a/src/assets/fonts/OpenSans/OpenSans-600.woff b/src/assets/fonts/OpenSans/OpenSans-600.woff new file mode 100644 index 00000000..9d0eb42d Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-600.woff differ diff --git a/src/assets/fonts/OpenSans/OpenSans-600.woff2 b/src/assets/fonts/OpenSans/OpenSans-600.woff2 new file mode 100644 index 00000000..5c5d54e2 Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-600.woff2 differ diff --git a/src/assets/fonts/OpenSans/OpenSans-700.woff b/src/assets/fonts/OpenSans/OpenSans-700.woff new file mode 100644 index 00000000..b8b46d0b Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-700.woff differ diff --git a/src/assets/fonts/OpenSans/OpenSans-700.woff2 b/src/assets/fonts/OpenSans/OpenSans-700.woff2 new file mode 100644 index 00000000..3a38286c Binary files /dev/null and b/src/assets/fonts/OpenSans/OpenSans-700.woff2 differ diff --git a/src/assets/fonts/Raleway/Raleway-400.woff b/src/assets/fonts/Raleway/Raleway-400.woff new file mode 100644 index 00000000..ab3a51bc Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-400.woff differ diff --git a/src/assets/fonts/Raleway/Raleway-400.woff2 b/src/assets/fonts/Raleway/Raleway-400.woff2 new file mode 100644 index 00000000..86b505ec Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-400.woff2 differ diff --git a/src/assets/fonts/Raleway/Raleway-500.woff b/src/assets/fonts/Raleway/Raleway-500.woff new file mode 100644 index 00000000..2ea53f05 Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-500.woff differ diff --git a/src/assets/fonts/Raleway/Raleway-500.woff2 b/src/assets/fonts/Raleway/Raleway-500.woff2 new file mode 100644 index 00000000..7b3b62a7 Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-500.woff2 differ diff --git a/src/assets/fonts/Raleway/Raleway-600.woff b/src/assets/fonts/Raleway/Raleway-600.woff new file mode 100644 index 00000000..854e0097 Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-600.woff differ diff --git a/src/assets/fonts/Raleway/Raleway-600.woff2 b/src/assets/fonts/Raleway/Raleway-600.woff2 new file mode 100644 index 00000000..6df88c9b Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-600.woff2 differ diff --git a/src/assets/fonts/Raleway/Raleway-700.woff b/src/assets/fonts/Raleway/Raleway-700.woff new file mode 100644 index 00000000..d89a0a2b Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-700.woff differ diff --git a/src/assets/fonts/Raleway/Raleway-700.woff2 b/src/assets/fonts/Raleway/Raleway-700.woff2 new file mode 100644 index 00000000..02206426 Binary files /dev/null and b/src/assets/fonts/Raleway/Raleway-700.woff2 differ diff --git a/src/assets/fonts/Rubik/Rubik-400.woff b/src/assets/fonts/Rubik/Rubik-400.woff new file mode 100644 index 00000000..bd39dc9d Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-400.woff differ diff --git a/src/assets/fonts/Rubik/Rubik-400.woff2 b/src/assets/fonts/Rubik/Rubik-400.woff2 new file mode 100644 index 00000000..133c9a5b Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-400.woff2 differ diff --git a/src/assets/fonts/Rubik/Rubik-500.woff b/src/assets/fonts/Rubik/Rubik-500.woff new file mode 100644 index 00000000..692ac3c4 Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-500.woff differ diff --git a/src/assets/fonts/Rubik/Rubik-500.woff2 b/src/assets/fonts/Rubik/Rubik-500.woff2 new file mode 100644 index 00000000..d78cc8c8 Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-500.woff2 differ diff --git a/src/assets/fonts/Rubik/Rubik-700.woff b/src/assets/fonts/Rubik/Rubik-700.woff new file mode 100644 index 00000000..7d98a971 Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-700.woff differ diff --git a/src/assets/fonts/Rubik/Rubik-700.woff2 b/src/assets/fonts/Rubik/Rubik-700.woff2 new file mode 100644 index 00000000..23628adb Binary files /dev/null and b/src/assets/fonts/Rubik/Rubik-700.woff2 differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff b/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff new file mode 100644 index 00000000..5b6e97be Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff2 b/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff2 new file mode 100644 index 00000000..36bdc0e3 Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-400.woff2 differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff b/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff new file mode 100644 index 00000000..0aba561d Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff2 b/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff2 new file mode 100644 index 00000000..cb0ea772 Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-600.woff2 differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff b/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff new file mode 100644 index 00000000..f2a7dd34 Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff differ diff --git a/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff2 b/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff2 new file mode 100644 index 00000000..ce34a9fe Binary files /dev/null and b/src/assets/fonts/SourceSansPro/SourceSansPro-700.woff2 differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff b/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff new file mode 100644 index 00000000..9aaabfac Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff2 b/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff2 new file mode 100644 index 00000000..51b6c3b6 Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-400.woff2 differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff b/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff new file mode 100644 index 00000000..99fb0c69 Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff2 b/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff2 new file mode 100644 index 00000000..8ba7955b Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-600.woff2 differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff b/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff new file mode 100644 index 00000000..150e1a6b Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff differ diff --git a/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff2 b/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff2 new file mode 100644 index 00000000..d9a6058a Binary files /dev/null and b/src/assets/fonts/TitilliumWeb/TitilliumWeb-700.woff2 differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-400.woff b/src/assets/fonts/Ubuntu/Ubuntu-400.woff new file mode 100644 index 00000000..2fc163ff Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-400.woff differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-400.woff2 b/src/assets/fonts/Ubuntu/Ubuntu-400.woff2 new file mode 100644 index 00000000..a590b8a9 Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-400.woff2 differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-500.woff b/src/assets/fonts/Ubuntu/Ubuntu-500.woff new file mode 100644 index 00000000..4606eed9 Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-500.woff differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-500.woff2 b/src/assets/fonts/Ubuntu/Ubuntu-500.woff2 new file mode 100644 index 00000000..4966a85a Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-500.woff2 differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-700.woff b/src/assets/fonts/Ubuntu/Ubuntu-700.woff new file mode 100644 index 00000000..8f770546 Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-700.woff differ diff --git a/src/assets/fonts/Ubuntu/Ubuntu-700.woff2 b/src/assets/fonts/Ubuntu/Ubuntu-700.woff2 new file mode 100644 index 00000000..e10142f5 Binary files /dev/null and b/src/assets/fonts/Ubuntu/Ubuntu-700.woff2 differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png index dcc95cb5..49148b61 100644 Binary files a/src/assets/images/logo.png and b/src/assets/images/logo.png differ diff --git a/src/components/LeftSidebar/LeftSidebar.js b/src/components/LeftSidebar/LeftSidebar.js index d2b29bfe..227648a1 100644 --- a/src/components/LeftSidebar/LeftSidebar.js +++ b/src/components/LeftSidebar/LeftSidebar.js @@ -12,6 +12,7 @@ import SkillsTab from './tabs/Skills'; import ExtrasTab from './tabs/Extras'; import LanguagesTab from './tabs/Languages'; import ReferencesTab from './tabs/References'; +import HobbiesTab from './tabs/Hobbies'; const LeftSidebar = () => { const context = useContext(AppContext); @@ -26,6 +27,7 @@ const LeftSidebar = () => { { key: 'awards', name: data.awards.heading }, { key: 'certifications', name: data.certifications.heading }, { key: 'skills', name: data.skills.heading }, + { key: 'hobbies', name: data.hobbies.heading }, { key: 'languages', name: data.languages.heading }, { key: 'references', name: data.references.heading }, { key: 'extras', name: data.extras.heading }, @@ -45,25 +47,27 @@ const LeftSidebar = () => { const renderTabs = () => { switch (currentTab) { - case tabs[0].key: + case 'profile': return ; - case tabs[1].key: + case 'objective': return ; - case tabs[2].key: + case 'work': return ; - case tabs[3].key: + case 'education': return ; - case tabs[4].key: + case 'awards': return ; - case tabs[5].key: + case 'certifications': return ; - case tabs[6].key: + case 'skills': return ; - case tabs[7].key: + case 'hobbies': + return ; + case 'languages': return ; - case tabs[8].key: + case 'references': return ; - case tabs[9].key: + case 'extras': return ; default: return null; diff --git a/src/components/LeftSidebar/tabs/Hobbies.js b/src/components/LeftSidebar/tabs/Hobbies.js new file mode 100644 index 00000000..1ba1a614 --- /dev/null +++ b/src/components/LeftSidebar/tabs/Hobbies.js @@ -0,0 +1,133 @@ +import React, { useState, useContext } from 'react'; + +import AppContext from '../../../context/AppContext'; +import Checkbox from '../../../shared/Checkbox'; +import TextField from '../../../shared/TextField'; +import { addItem, deleteItem, moveItemUp, moveItemDown } from '../../../utils'; +import ItemHeading from '../../../shared/ItemHeading'; + +const HobbiesTab = ({ data, onChange }) => { + const context = useContext(AppContext); + const { dispatch } = context; + + return ( + <> +
+
+ onChange('data.hobbies.enable', v)} + /> +
+
+ onChange('data.hobbies.heading', v)} + /> +
+
+ +
+ + {data.hobbies.items.map((x, index) => ( + + ))} + + + + ); +}; + +const Form = ({ item, onChange }) => { + return ( + onChange(e.target.value)} + type="text" + /> + ); +}; + +const AddItem = ({ heading, dispatch }) => { + const [isOpen, setOpen] = useState(false); + const [item, setItem] = useState(''); + + const add = () => { + if (item === '') return; + + addItem(dispatch, 'hobbies', item); + + setItem(''); + }; + + return ( +
+ + +
+
+
+
+
+ + +
+
+
+ ); +}; + +const Item = ({ item, index, onChange, dispatch }) => { + const identifier = `data.hobbies.items[${index}]`; + + return ( +
+
+ onChange(identifier, v)} /> +
+ + + + + + +
+ ); +}; + +export default HobbiesTab; diff --git a/src/components/LeftSidebar/tabs/Skills.js b/src/components/LeftSidebar/tabs/Skills.js index 06d207aa..98d123d4 100644 --- a/src/components/LeftSidebar/tabs/Skills.js +++ b/src/components/LeftSidebar/tabs/Skills.js @@ -3,7 +3,7 @@ import React, { useState, useContext } from 'react'; import AppContext from '../../../context/AppContext'; import Checkbox from '../../../shared/Checkbox'; import TextField from '../../../shared/TextField'; -import { addItem, deleteItem } from '../../../utils'; +import { addItem, deleteItem, moveItemUp, moveItemDown } from '../../../utils'; import ItemHeading from '../../../shared/ItemHeading'; const SkillsTab = ({ data, onChange }) => { @@ -92,18 +92,38 @@ const Item = ({ item, index, onChange, dispatch }) => { const identifier = `data.skills.items[${index}]`; return ( -
-
+
+
onChange(identifier, v)} />
+ + + +
diff --git a/src/context/AppContext.js b/src/context/AppContext.js index f33686db..31cd2eac 100644 --- a/src/context/AppContext.js +++ b/src/context/AppContext.js @@ -24,47 +24,52 @@ const initialState = { email: '', }, objective: { - enable: false, + enable: true, heading: 'Objective', body: '', }, work: { - enable: false, + enable: true, heading: 'Work Experience', items: [], }, education: { - enable: false, + enable: true, heading: 'Education', items: [], }, awards: { - enable: false, + enable: true, heading: 'Honors & Awards', items: [], }, certifications: { - enable: false, + enable: true, heading: 'Certifications', items: [], }, skills: { - enable: false, - heading: 'Skills & Hobbies', + enable: true, + heading: 'Skills', + items: [], + }, + hobbies: { + enable: true, + heading: 'Hobbies', items: [], }, languages: { - enable: false, + enable: true, heading: 'Languages', items: [], }, references: { - enable: false, + enable: true, heading: 'References', items: [], }, extras: { - enable: false, + enable: true, heading: 'Personal Information', items: [], }, @@ -97,7 +102,7 @@ const reducer = (state, { type, payload }) => { return set({ ...state }, `data.${payload.key}.items`, items); case 'delete_item': items = get({ ...state }, `data.${payload.key}.items`, []); - remove(items, (x) => x === payload.value); + remove(items, x => x === payload.value); return set({ ...state }, `data.${payload.key}.items`, items); case 'move_item_up': items = get({ ...state }, `data.${payload.key}.items`, []); diff --git a/src/i18n/locales/vi/rightSidebar/about.json b/src/i18n/locales/vi/rightSidebar/about.json index f183c7cb..595bcade 100644 --- a/src/i18n/locales/vi/rightSidebar/about.json +++ b/src/i18n/locales/vi/rightSidebar/about.json @@ -24,7 +24,7 @@ }, "license": { "heading": "Thông tin Giấy phép", - "body": "Dự án này được điều chỉnh bởi Giấy phép MIT, bạn có thể đọc thêm về nó dưới đây. Về cơ bản, bạn được sử dụng dự án này ở bất kì đâu, chỉ cần bạn công nhận tác giả gốc.", + "body": "Dự án này được điều chỉnh bởi Giấy phép MIT, bạn có thể đọc thêm về nó dưới đây. Về cơ bản, bạn được xử dụng dự án này ở bất kì đâu, chỉ cần bạn công nhận tác giả gốc.", "buttons": { "mitLicense": "Giấy phép MIT" } diff --git a/src/index.css b/src/index.css index cc8453cf..d3b7efe7 100644 --- a/src/index.css +++ b/src/index.css @@ -1,12 +1,5 @@ -/* Google Fonts */ -@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@400;500&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Titillium+Web:wght@400;600;700&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap'); +@import './assets/css/animate.css'; +@import './assets/css/fonts.css'; * { -ms-overflow-style: none; diff --git a/src/shared/Checkbox.js b/src/shared/Checkbox.js index 48fbaeb3..e1b24e6d 100644 --- a/src/shared/Checkbox.js +++ b/src/shared/Checkbox.js @@ -3,17 +3,21 @@ import React from 'react'; const Checkbox = ({ checked, onChange, icon = 'check', size = '2rem' }) => { return (
onChange(e.target.checked)} /> - + {icon}
diff --git a/src/shared/PageController.js b/src/shared/PageController.js index 3b7e3584..228841bd 100644 --- a/src/shared/PageController.js +++ b/src/shared/PageController.js @@ -18,7 +18,7 @@ const PageController = () => { id="pageController" className="absolute z-20 opacity-75 hover:opacity-100 transition-all duration-150" > -
+
zoom_in
diff --git a/src/shared/PanZoomAnimation.js b/src/shared/PanZoomAnimation.js index f01ace0c..7f890dd3 100644 --- a/src/shared/PanZoomAnimation.js +++ b/src/shared/PanZoomAnimation.js @@ -9,7 +9,7 @@ const PanZoomAnimation = () => { useEffect(() => { setTimeout(() => setAnimationVisible(true), 500); - setTimeout(() => setAnimationVisible(false), 4500); + setTimeout(() => setAnimationVisible(false), 3000); }, []); return ( diff --git a/src/templates/castform/Castform.js b/src/templates/castform/Castform.js index 3ec7ef64..7ede2dff 100644 --- a/src/templates/castform/Castform.js +++ b/src/templates/castform/Castform.js @@ -93,6 +93,21 @@ const Castform = () => {
); + const HobbyItem = x => ( +
  • + {x} +
  • + ); + + const Hobbies = () => + data.hobbies && + data.hobbies.enable && ( +
    + +
      {data.hobbies.items.map(HobbyItem)}
    +
    + ); + const Objective = () => data.objective && data.objective.enable &&

    {data.objective.body}

    ; @@ -251,7 +266,7 @@ const Castform = () => { data.extras && data.extras.enable && (
    - + {data.extras.items.filter(x => x.enable).map(ExtraItem)}
    ); @@ -276,9 +291,9 @@ const Castform = () => { + -
    @@ -286,6 +301,7 @@ const Castform = () => { +
    diff --git a/src/templates/celebi/Celebi.js b/src/templates/celebi/Celebi.js index cab5d833..a6b13ea8 100644 --- a/src/templates/celebi/Celebi.js +++ b/src/templates/celebi/Celebi.js @@ -144,7 +144,21 @@ const Celebi = () => {
      {data.skills.items.map(x => ( -
    • +
    • + {x} +
    • + ))} +
    + + ); + + const Hobbies = () => + data.hobbies.enable && ( +
    + +
      + {data.hobbies.items.map(x => ( +
    • {x}
    • ))} @@ -266,6 +280,7 @@ const Celebi = () => { + diff --git a/src/templates/gengar/Gengar.js b/src/templates/gengar/Gengar.js index ab120b15..098558db 100644 --- a/src/templates/gengar/Gengar.js +++ b/src/templates/gengar/Gengar.js @@ -79,6 +79,21 @@ const Gengar = () => {
    ); + const HobbyItem = x => ( +
  • + {x} +
  • + ); + + const Hobbies = () => + data.hobbies && + data.hobbies.enable && ( +
    + +
      {data.hobbies.items.map(HobbyItem)}
    +
    + ); + const EducationItem = x => (
    @@ -260,7 +275,7 @@ const Gengar = () => { @@ -285,6 +300,7 @@ const Gengar = () => { style={{ backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)` }} > + diff --git a/src/templates/glalie/Glalie.js b/src/templates/glalie/Glalie.js index 88919614..9cda9c83 100644 --- a/src/templates/glalie/Glalie.js +++ b/src/templates/glalie/Glalie.js @@ -31,10 +31,6 @@ const Glalie = () => {
    {data.profile.subtitle}
    ); - const Divider = () => ( -
    - ); - const ContactItem = ({ title, value }) => value && (
    @@ -47,14 +43,14 @@ const Glalie = () => { const ContactInformation = () => (

    flare @@ -191,6 +187,23 @@ const Glalie = () => {

    ); + const HobbyItem = x => ( +
  • + {x} +
  • + ); + + const Hobbies = () => + data.hobbies && + data.hobbies.enable && ( +
    + +
      + {data.hobbies.items.map(HobbyItem)} +
    +
    + ); + const LanguageItem = x => (
    {x.key}
    @@ -267,33 +280,28 @@ const Glalie = () => { >
    -
    +
    - - - - +
    -
    -
    - - - - - - -
    +
    + + + + + +
    diff --git a/src/templates/onyx/Onyx.js b/src/templates/onyx/Onyx.js index f351381b..823fd341 100644 --- a/src/templates/onyx/Onyx.js +++ b/src/templates/onyx/Onyx.js @@ -145,6 +145,28 @@ const Onyx = () => {
    ); + const HobbyItem = x => ( + + {x} + + ); + + const Hobbies = () => + data.hobbies && + data.hobbies.enable && ( +
    + +
    {data.hobbies.items.map(HobbyItem)}
    +
    + ); + const SkillItem = x => ( { data.extras.enable && (
    - +
    {data.extras.items.filter(x => x.enable).map(ExtraItem)}
    @@ -256,7 +278,7 @@ const Onyx = () => { link={`http://${data.profile.website}`} /> @@ -277,11 +299,15 @@ const Onyx = () => {
    - +
    - + +
    + + +
    ); }; diff --git a/src/templates/pikachu/Pikachu.js b/src/templates/pikachu/Pikachu.js index efb231a6..2f34c758 100644 --- a/src/templates/pikachu/Pikachu.js +++ b/src/templates/pikachu/Pikachu.js @@ -76,6 +76,24 @@ const Pikachu = () => {
    ); + const HobbyItem = x => ( + + {x} + + ); + + const Hobbies = () => + data.hobbies && + data.hobbies.enable && ( +
    + +
    {data.hobbies.items.map(HobbyItem)}
    +
    + ); + const ReferenceItem = x => (
    {x.name}
    @@ -91,7 +109,7 @@ const Pikachu = () => { data.references.enable && (
    -
    +
    {data.references.items.filter(x => x.enable).map(ReferenceItem)}
    @@ -136,7 +154,7 @@ const Pikachu = () => { data.extras.enable && (
    -
    +
    {data.extras.items.filter(x => x.enable).map(ExtraItem)}
    @@ -169,7 +187,7 @@ const Pikachu = () => { ); const EducationItem = x => ( -
    +
    {x.name}
    @@ -200,7 +218,7 @@ const Pikachu = () => { ); const AwardItem = x => ( -
    +
    {x.title}

    {x.subtitle}

    @@ -266,7 +284,7 @@ const Pikachu = () => { link={`http://${data.profile.website}`} /> @@ -274,9 +292,9 @@ const Pikachu = () => {
    + -
    @@ -284,6 +302,7 @@ const Pikachu = () => { +