From a0c676e0082af3b535e587de592d9e40e1f9ed0c Mon Sep 17 00:00:00 2001 From: indie peeters Date: Wed, 29 Nov 2023 09:21:31 +0100 Subject: [PATCH] Added Vuetify and enhanced experience with carousel --- web/index.html | 3 +- web/package-lock.json | 50 +++++++++++-- web/package.json | 3 +- web/public/assets/companies/mapcreator.png | Bin 650 -> 154 bytes .../assets/companies/opencirclesolutions.png | Bin 855 -> 1531 bytes web/public/{assets => }/favicon.png | Bin web/public/robots.txt | 2 + web/src/features/HomeHeader/HomeHeader.vue | 15 +++- .../features/MyExperience/ExperienceItem.vue | 2 +- .../MyExperience/ExperienceTimeline.vue | 47 ++++++------ .../features/MyExperience/MyExperience.vue | 68 ++++++++++-------- web/src/features/Projects/MyProjects.vue | 9 ++- web/src/main.ts | 17 +++-- web/src/views/HomeView.vue | 4 +- 14 files changed, 151 insertions(+), 69 deletions(-) rename web/public/{assets => }/favicon.png (100%) create mode 100644 web/public/robots.txt diff --git a/web/index.html b/web/index.html index 74f4f51..d874993 100644 --- a/web/index.html +++ b/web/index.html @@ -2,9 +2,10 @@ - + Indie Peeters + diff --git a/web/package-lock.json b/web/package-lock.json index 9f5e13d..c5b15b6 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,18 +1,19 @@ { - "name": "portfolio", + "name": "web", "version": "0.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "portfolio", + "name": "web", "version": "0.0.0", "dependencies": { "postcss-conditionals": "^2.1.0", "postcss-plugin": "^1.0.0", "vue": "^3.3.4", "vue-i18n": "^9.4.1", - "vue-router": "^4.2.4" + "vue-router": "^4.2.4", + "vuetify": "^3.4.3" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", @@ -5967,7 +5968,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6272,6 +6273,39 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/vuetify": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.4.3.tgz", + "integrity": "sha512-b8yi87Zv4bn2JbaVkkV9uzSRw0fdY/v3ieWne0OTI29w/CNSyLyfHGBCrmx7eD74i562M1j+AwSSRJCX3wF0+Q==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": "^1.0.0-alpha.12", + "vue": "^3.3.0", + "vue-i18n": "^9.0.0", + "webpack-plugin-vuetify": "^2.0.0-alpha.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -10604,7 +10638,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true + "devOptional": true }, "unbox-primitive": { "version": "1.0.2", @@ -10789,6 +10823,12 @@ } } }, + "vuetify": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.4.3.tgz", + "integrity": "sha512-b8yi87Zv4bn2JbaVkkV9uzSRw0fdY/v3ieWne0OTI29w/CNSyLyfHGBCrmx7eD74i562M1j+AwSSRJCX3wF0+Q==", + "requires": {} + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/web/package.json b/web/package.json index 1f9f834..f30322f 100644 --- a/web/package.json +++ b/web/package.json @@ -16,7 +16,8 @@ "postcss-plugin": "^1.0.0", "vue": "^3.3.4", "vue-i18n": "^9.4.1", - "vue-router": "^4.2.4" + "vue-router": "^4.2.4", + "vuetify": "^3.4.3" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", diff --git a/web/public/assets/companies/mapcreator.png b/web/public/assets/companies/mapcreator.png index fef5ceb636bb3a6ede12b2f603c8e619a27755ab..e74eff6da311da4fa5568f3a2d98b9a2db94b3e5 100644 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^8X(Nb3?#Q1Xz2kd#^NA%C&rs6b?Si}&H|6fVg?2d zKM-c@F=TiH6l4qV32_C|K(I7@=XoH-R1)MD%_ksCj$Tg literal 650 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sf6K)}X7HxiCH4g>`MlMem#}JR>Z?By8Vs;d0eVAXR7B@jdXi?Mm)+W1&DUWCG zywc0BvZ6(&>7q-?>T^eZJCY4f_-wPBy=?b`<>wZzj>yP!{pRAa_k=)p_e5zg!7ZjD zLFwZt!tg140ma6?`ROw?Cky6<9ULt$ivG2_8 z5t8?tx4qreYVcBJR^p}^R?DY^oYA>_{ZH<~S@&Z5&R%1A!nR-D$@Rc~$tAmrc24ZC zYM9s;q4+tDe}ZJ#W`lAzZilb)XIN~El3TN?fj9izbID~3GWUA1*;gkW+vjnIQ>iw- z{+e;DjF`R7+eV zN>UO_QmvAUQh^kMk%5tcuA!l>p+$(Hsg;3=m5H&ofuWUw!MRF~zbG1V^HVa@DsgMr zud)FcnGBL38-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh;NGyecH3Bq*_5p`a)~ zEi)%op`@}PRUxyWB$Jc1ICAEQ%n|m}4IT@;^cY@=3zmFxGMx&vg2B_(&t;ucLK6Tj;p)`@ diff --git a/web/public/assets/companies/opencirclesolutions.png b/web/public/assets/companies/opencirclesolutions.png index 8b676bb9e8a813f1d18f37a92663cf54dc6e8dc9..c562ec2925f0d03a523a6ce57824f87db338f653 100644 GIT binary patch literal 1531 zcmeAS@N?(olHy`uVBq!ia0vp^${@_a3?wz#owI=yV{wqX6XVU3I`u#fXMsm#F#`jK z9|$w{7&5$JU|^aO;1l8sl)PDIbHCQ=VU5)z7VB>D#Rl60t&VqLvOw)Xqwd#PUu&?rTW14Q0~M*Yz6aJ0_dYg-lws&i-fnETb z3^5$21;_xZ2MPj>y#;d{&^ti&K=B7PR#)q77WBFSO#oR`YYjv|#aA0_fbM~4d{hh4 z8yez;iLTe%0<8c#0H_#E7HB@u>gx?QKyjb~AR9;m5kwgzG}d>zZ0K?Uk`eQRAqXOi z%!RXo3^ZA+T9DNbY4%--9s7Xk@=i&RUoeBX|Fpx8fBpaa`s~tVbw;(UL(e~6XtrWz zkf?t8cdibz!is;F>}~FTDq*tyRmH#{fA5PY>jO)MnmtsO63eB+o^JmIv}b6K{}3#ak%-eU}VnD9P_!TRn3wey#CgxCFhm(*}B zcI}_-g61DfMMLjoGS4})Xwp8d3lTO2JVh*P_}%ZZnyvqND%}6c-yK;(?A|?Bem_by zViI`=%!d-5E{-7;bCMGr7~Is-#KO$V`26(pbT3lU@9=Ryu;o;?Z zdc$Id#7N6Z5mT-%uQw77k*txOtE853DFj@<(4u|u(y>)693>@+T3^2K7HB4#n;5aJ zo)~guWy{>VM?{t!IU{p(r`WWxYi1|9a^5;TRO%JjP+q{&WnsB{$D!6ccN&%C<{7M; zzMcPy@V>f#1+I*ZJUvYYegOp>ca|?qR5Ez@fuqf%g2lyEnLW}+CnQ3xuTgTDiXEfI z zb(@*midM|xnxL$u==Eup!<<)A8VM`bHaApFDBue5)yq1SnbFdqCa_#`)iTylU+oaz zXzK}+*+MTfPI~#KiK#7b#jIm;3ks_2B0TfuC)~AXR6A@Scx;x5q=w>2dvD zZSRhQEq@axZmuN;8D^KdRrV(W3*@5Lgp zrR@?N`a$siqu2m^HZ!d10!kW{w>s0|W!9ntpmHH@IObA$V35mhb_VDn)zHtOSp+SHs7Q0meWl>~q)LC-|J8aS-*{q?gTgXS_yQfyvbg*&vlB3%gW>FmfNcQ9e>Eo2&Orj}(A)u(Cnq zo7#$Fh+Tw|%j?4Z_YGn57#V{EfD}=1p5`iaD_YoGdw=?PaCm^3^=TBpDF_>1_Vzk> zo(~SNVlherm diff --git a/web/public/assets/favicon.png b/web/public/favicon.png similarity index 100% rename from web/public/assets/favicon.png rename to web/public/favicon.png diff --git a/web/public/robots.txt b/web/public/robots.txt new file mode 100644 index 0000000..6f27bb6 --- /dev/null +++ b/web/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: \ No newline at end of file diff --git a/web/src/features/HomeHeader/HomeHeader.vue b/web/src/features/HomeHeader/HomeHeader.vue index 3eb8d80..f818597 100644 --- a/web/src/features/HomeHeader/HomeHeader.vue +++ b/web/src/features/HomeHeader/HomeHeader.vue @@ -5,8 +5,8 @@ Hi! I am Indie
- - + +
I am a passionate software developer in love with everything related front-end development. Guided by a user-centric approach, I craft solutions that not only resonate but also leave a lasting impact on the end users' experiences.
@@ -44,6 +44,17 @@ export default defineComponent({ setInterval(textLoad, 12000); }, methods: { + scrollIntoView(scrollTargetName: string) { + const scrollTarget = document.getElementById(scrollTargetName); + if (scrollTarget) { + const offsetTop = scrollTarget.offsetTop; + + window.scrollTo({ + top: offsetTop - 32, + behavior: 'smooth', + }); + } + } } }) diff --git a/web/src/features/MyExperience/ExperienceItem.vue b/web/src/features/MyExperience/ExperienceItem.vue index 3553b52..f868527 100644 --- a/web/src/features/MyExperience/ExperienceItem.vue +++ b/web/src/features/MyExperience/ExperienceItem.vue @@ -49,7 +49,7 @@ export default defineComponent({ .company-icon-mobile { display: inline !important; - height: 40px !important; + height: 58px !important; } .experience-header-container { diff --git a/web/src/features/MyExperience/ExperienceTimeline.vue b/web/src/features/MyExperience/ExperienceTimeline.vue index d4ea3c2..ace325f 100644 --- a/web/src/features/MyExperience/ExperienceTimeline.vue +++ b/web/src/features/MyExperience/ExperienceTimeline.vue @@ -29,11 +29,21 @@ \ No newline at end of file diff --git a/web/src/features/Projects/MyProjects.vue b/web/src/features/Projects/MyProjects.vue index c4d3e0d..7ec6f75 100644 --- a/web/src/features/Projects/MyProjects.vue +++ b/web/src/features/Projects/MyProjects.vue @@ -25,7 +25,14 @@ export default defineComponent({ }) -