From e07c708ea8ae2db23e41b0716e1a121c6ff5425c Mon Sep 17 00:00:00 2001 From: webfussel Date: Tue, 21 May 2024 10:41:00 +0200 Subject: [PATCH] ADD: projects --- Globals.css | 17 ++++ Skills.ts | 54 +++++++++++ components/Customers/Customers.css | 98 +++++++++++++++++++- components/Customers/Customers.vue | 129 ++++++++++++++++++++++++++- components/Intro/Intro.css | 14 --- components/Intro/Intro.vue | 6 +- components/Skills/Skills.css | 13 --- components/Skills/Skills.vue | 8 +- public/img/customers/einsundeins.png | Bin 0 -> 10979 bytes public/img/customers/gmx.png | Bin 0 -> 65841 bytes public/img/customers/koerrie.webp | Bin 0 -> 153790 bytes public/img/customers/pembe.svg | 11 +++ public/img/customers/sae.png | Bin 0 -> 8097 bytes public/img/customers/webde.png | Bin 0 -> 11654 bytes public/img/projects/bounce.jpg | Bin 0 -> 89576 bytes public/img/projects/dekra.png | Bin 0 -> 1386089 bytes public/img/projects/krrie.webp | Bin 0 -> 50816 bytes public/img/projects/pp.webp | Bin 0 -> 36900 bytes public/img/projects/shnaik.webp | Bin 0 -> 5960 bytes public/img/projects/twitsplit.webp | Bin 0 -> 32688 bytes public/img/projects/uitools.png | Bin 0 -> 137778 bytes public/img/projects/webde.webp | Bin 0 -> 49752 bytes public/img/projects/worldgen.webp | Bin 0 -> 88036 bytes public/img/skills/angular.svg | 7 ++ public/img/skills/aseprite.png | Bin 0 -> 3591 bytes public/img/skills/bootstrap.svg | 7 ++ public/img/skills/cs.svg | 15 ++++ public/img/skills/css.svg | 1 + public/img/skills/fontawesome.png | Bin 0 -> 6774 bytes public/img/skills/github.svg | 7 ++ public/img/skills/gitlab.svg | 11 +++ public/img/skills/gulp.svg | 10 +++ public/img/skills/html.svg | 1 + public/img/skills/ie.svg | 4 + public/img/skills/jasmine.svg | 8 ++ public/img/skills/java.svg | 13 +++ public/img/skills/javascript.svg | 5 ++ public/img/skills/jest.svg | 16 ++++ public/img/skills/jetbrains.svg | 1 + public/img/skills/jira.svg | 1 + public/img/skills/jquery.png | Bin 0 -> 7027 bytes public/img/skills/karma.svg | 7 ++ public/img/skills/material.png | Bin 0 -> 15448 bytes public/img/skills/nodejs.svg | 7 ++ public/img/skills/nuxt.svg | 3 + public/img/skills/phaser.png | Bin 0 -> 9506 bytes public/img/skills/php.svg | 8 ++ public/img/skills/postcss.svg | 1 + public/img/skills/protactor.svg | 8 ++ public/img/skills/react.svg | 11 +++ public/img/skills/sass.svg | 4 + public/img/skills/tw.svg | 1 + public/img/skills/typescript.svg | 6 ++ public/img/skills/unity.png | Bin 0 -> 8056 bytes public/img/skills/vue.svg | 4 + public/img/skills/webpack.svg | 7 ++ 56 files changed, 487 insertions(+), 37 deletions(-) create mode 100644 Skills.ts create mode 100644 public/img/customers/einsundeins.png create mode 100644 public/img/customers/gmx.png create mode 100644 public/img/customers/koerrie.webp create mode 100644 public/img/customers/pembe.svg create mode 100644 public/img/customers/sae.png create mode 100644 public/img/customers/webde.png create mode 100644 public/img/projects/bounce.jpg create mode 100644 public/img/projects/dekra.png create mode 100644 public/img/projects/krrie.webp create mode 100644 public/img/projects/pp.webp create mode 100644 public/img/projects/shnaik.webp create mode 100644 public/img/projects/twitsplit.webp create mode 100644 public/img/projects/uitools.png create mode 100644 public/img/projects/webde.webp create mode 100644 public/img/projects/worldgen.webp create mode 100644 public/img/skills/angular.svg create mode 100644 public/img/skills/aseprite.png create mode 100644 public/img/skills/bootstrap.svg create mode 100644 public/img/skills/cs.svg create mode 100644 public/img/skills/css.svg create mode 100644 public/img/skills/fontawesome.png create mode 100644 public/img/skills/github.svg create mode 100644 public/img/skills/gitlab.svg create mode 100644 public/img/skills/gulp.svg create mode 100644 public/img/skills/html.svg create mode 100644 public/img/skills/ie.svg create mode 100644 public/img/skills/jasmine.svg create mode 100644 public/img/skills/java.svg create mode 100644 public/img/skills/javascript.svg create mode 100644 public/img/skills/jest.svg create mode 100644 public/img/skills/jetbrains.svg create mode 100644 public/img/skills/jira.svg create mode 100644 public/img/skills/jquery.png create mode 100644 public/img/skills/karma.svg create mode 100644 public/img/skills/material.png create mode 100644 public/img/skills/nodejs.svg create mode 100644 public/img/skills/nuxt.svg create mode 100644 public/img/skills/phaser.png create mode 100644 public/img/skills/php.svg create mode 100644 public/img/skills/postcss.svg create mode 100644 public/img/skills/protactor.svg create mode 100644 public/img/skills/react.svg create mode 100644 public/img/skills/sass.svg create mode 100644 public/img/skills/tw.svg create mode 100644 public/img/skills/typescript.svg create mode 100644 public/img/skills/unity.png create mode 100644 public/img/skills/vue.svg create mode 100644 public/img/skills/webpack.svg diff --git a/Globals.css b/Globals.css index ad05479..0ae500e 100644 --- a/Globals.css +++ b/Globals.css @@ -139,6 +139,23 @@ span.highlight { min-height: 100vh; } +.margin-top { + margin-top: 3rem; +} + +.margin-top-big { + margin-top: 6rem; +} + +.flex-col { + display: flex; + flex-direction: column; +} + +.default-gap { + gap: 3rem; +} + .z-0 { box-shadow: 0 0 0 rgba(0, 0, 0, 0), 0 0 0 rgba(0, 0, 0, 0); } diff --git a/Skills.ts b/Skills.ts new file mode 100644 index 0000000..46d1adf --- /dev/null +++ b/Skills.ts @@ -0,0 +1,54 @@ +const jsImg = '/img/skills/javascript.svg' +const tsImg = '/img/skills/typescript.svg' +const vueImg = '/img/skills/vue.svg' +const reactImg = '/img/skills/react.svg' +const postCssImg = '/img/skills/postcss.svg' +const scssImg = '/img/skills/sass.svg' +const cssImg = '/img/skills/css.svg' +const htmlImg = '/img/skills/html.svg' +const phaserImg = '/img/skills/phaser.png' +const unityImg = '/img/skills/unity.png' +const csImg = '/img/skills/cs.svg' +const aseImg = '/img/skills/aseprite.png' +const wpImg = '/img/skills/webpack.svg' +const glImg = '/img/skills/gitlab.svg' +const ghImg = '/img/skills/github.svg' +const jestImg = '/img/skills/jest.svg' +const njsImg = '/img/skills/nodejs.svg' +const jqImg = '/img/skills/jquery.png' +const ngImg = '/img/skills/angular.svg' +const javaImg = '/img/skills/java.svg' +const jiraImg = '/img/skills/jira.svg' +const jetbrainsImg = '/img/skills/jetbrains.svg' +const nuxtImg = '/img/skills/nuxt.svg' +const twImg = '/img/skills/tw.svg' + +export type ISkill = { + name: string + img: string +} + +export const js: ISkill = {name: 'JavaScript', img: jsImg} +export const ts: ISkill = {name: 'TypeScript', img: tsImg} +export const vue: ISkill = {name: 'Vuejs', img: vueImg} +export const react: ISkill = {name: 'React', img: reactImg} +export const pcss: ISkill = {name: 'PostCSS', img: postCssImg} +export const scss: ISkill = {name: 'SCSS', img: scssImg} +export const css: ISkill = {name: 'CSS', img: cssImg} +export const html: ISkill = {name: 'HTML', img: htmlImg} +export const phaser: ISkill = {name: 'Phaser 3', img: phaserImg} +export const unity: ISkill = {name: 'Unity 3D', img: unityImg} +export const cs: ISkill = {name: 'c sharp', img: csImg} +export const ase: ISkill = {name: 'Aseprite', img: aseImg} +export const wp: ISkill = {name: 'webpack', img: wpImg} +export const gl: ISkill = {name: 'GitLab', img: glImg} +export const gh: ISkill = {name: 'GitHub', img: ghImg} +export const jest: ISkill = {name: 'Jest', img: jestImg} +export const njs: ISkill = {name: 'Nodejs', img: njsImg} +export const jq: ISkill = {name: 'jQuery', img: jqImg} +export const ng: ISkill = {name: 'Angular', img: ngImg} +export const java: ISkill = {name: 'Java', img: javaImg} +export const jira: ISkill = {name: 'Jira', img: jiraImg} +export const jetbrains: ISkill = {name: 'JetBrains IDEs', img: jetbrainsImg} +export const nuxt: ISkill = {name: 'Nuxt', img: nuxtImg} +export const tw: ISkill = {name: 'Tailwind', img: twImg} diff --git a/components/Customers/Customers.css b/components/Customers/Customers.css index d3a7cd7..079598c 100644 --- a/components/Customers/Customers.css +++ b/components/Customers/Customers.css @@ -1,8 +1,7 @@ .Customers { & .customer-list { - margin-top: 3rem; display: flex; - gap: 3rem; + flex-wrap: wrap; & img { height: 50px; @@ -12,4 +11,99 @@ } } } + + & .projects-list { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + + + & > article { + flex-grow: 1; + flex-shrink: 0; + flex-basis: clamp(350px, calc(33% - 3rem), 400px); + height: 350px; + display: grid; + overflow: hidden; + + & .skill { + height: 30px; + } + + & .bg { + padding: 0; + height: 350px; + width: 100%; + + & img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + + & > * { + grid-column: 1; + grid-row: 1; + } + + & > div { + display: flex; + align-items: center; + justify-content: center; + background-color: rgba(0, 0, 0, 0.7); + backdrop-filter: blur(1px); + transition: var(--transition-time); + height: 100%; + + text-shadow: 0 0 5px rgba(0, 0, 0, .7); + text-align: center; + padding: 1rem; + + & > main { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; + + max-height: 6rem; + overflow: hidden; + transition: var(--transition-time); + + & .customer { + font-size: 1rem; + color: var(--color-white-transparent); + } + + & .title { + margin-top: -1rem; + } + + & ul { + display: flex; + gap: 1rem; + justify-content: center; + list-style: none; + } + + & a { + color: var(--color-orange); + + &:hover { + color: var(--color-white); + } + } + } + + &:hover { + backdrop-filter: blur(5px); + + & > main { + max-height: 25rem; + } + } + } + } + } } diff --git a/components/Customers/Customers.vue b/components/Customers/Customers.vue index cf2e4a1..f194de0 100644 --- a/components/Customers/Customers.vue +++ b/components/Customers/Customers.vue @@ -4,15 +4,37 @@

Kunden & Projekte

Meine bisherigen Geschäftpartner

-
+ +

Projektauswahl

+
+
+
+ +
+
+
+ {{ pr.customer }} +

{{ pr.title }}

+
    +
  • + +
  • +
+

{{ d }}

+ Zur Seite +
+
+
+
diff --git a/components/Intro/Intro.css b/components/Intro/Intro.css index f28d4e3..3c628a8 100644 --- a/components/Intro/Intro.css +++ b/components/Intro/Intro.css @@ -3,7 +3,6 @@ background-repeat: no-repeat; display: grid; grid-template-columns: 1fr 1fr; - gap: 3rem; .intro-img { width: 750px; @@ -21,22 +20,9 @@ .intro-text { height: 100%; - display: flex; justify-content: center; - flex-direction: column; z-index: 1; - h2 { - display: flex; - flex-direction: column; - } - - h3, - .fulltext, - .cta { - margin-top: 2rem; - } - .fulltext { color: var(--color-white-transparent); } diff --git a/components/Intro/Intro.vue b/components/Intro/Intro.vue index a839c21..a6fd59d 100644 --- a/components/Intro/Intro.vue +++ b/components/Intro/Intro.vue @@ -1,9 +1,9 @@ + + + + + diff --git a/public/img/skills/html.svg b/public/img/skills/html.svg new file mode 100644 index 0000000..c62fabb --- /dev/null +++ b/public/img/skills/html.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/skills/ie.svg b/public/img/skills/ie.svg new file mode 100644 index 0000000..108213f --- /dev/null +++ b/public/img/skills/ie.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/public/img/skills/jasmine.svg b/public/img/skills/jasmine.svg new file mode 100644 index 0000000..a0dbbd8 --- /dev/null +++ b/public/img/skills/jasmine.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/public/img/skills/java.svg b/public/img/skills/java.svg new file mode 100644 index 0000000..dfa38c5 --- /dev/null +++ b/public/img/skills/java.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/public/img/skills/javascript.svg b/public/img/skills/javascript.svg new file mode 100644 index 0000000..9218b96 --- /dev/null +++ b/public/img/skills/javascript.svg @@ -0,0 +1,5 @@ + + + + diff --git a/public/img/skills/jest.svg b/public/img/skills/jest.svg new file mode 100644 index 0000000..8efda35 --- /dev/null +++ b/public/img/skills/jest.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/skills/jetbrains.svg b/public/img/skills/jetbrains.svg new file mode 100644 index 0000000..f1c6c5e --- /dev/null +++ b/public/img/skills/jetbrains.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/skills/jira.svg b/public/img/skills/jira.svg new file mode 100644 index 0000000..425970f --- /dev/null +++ b/public/img/skills/jira.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/skills/jquery.png b/public/img/skills/jquery.png new file mode 100644 index 0000000000000000000000000000000000000000..58c1ead2d3c83b454907ca3593ac95c1f16db6b3 GIT binary patch literal 7027 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 w^xbznib>Sutm?;Gb&SY=FM + + + diff --git a/public/img/skills/material.png b/public/img/skills/material.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c4a70b1ad97833f17bd069595e75e1a66c0ee6 GIT binary patch literal 15448 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 + + + + + diff --git a/public/img/skills/nuxt.svg b/public/img/skills/nuxt.svg new file mode 100644 index 0000000..ff4336a --- /dev/null +++ b/public/img/skills/nuxt.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/img/skills/phaser.png b/public/img/skills/phaser.png new file mode 100644 index 0000000000000000000000000000000000000000..6dcef8eff98fa52a48fec59a63ab3c87d4b4c8c8 GIT binary patch literal 9506 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 literal 0 HcmV?d00001 diff --git a/public/img/skills/php.svg b/public/img/skills/php.svg new file mode 100644 index 0000000..40f58d8 --- /dev/null +++ b/public/img/skills/php.svg @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/public/img/skills/postcss.svg b/public/img/skills/postcss.svg new file mode 100644 index 0000000..b19d3d7 --- /dev/null +++ b/public/img/skills/postcss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/skills/protactor.svg b/public/img/skills/protactor.svg new file mode 100644 index 0000000..7554bbb --- /dev/null +++ b/public/img/skills/protactor.svg @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/public/img/skills/react.svg b/public/img/skills/react.svg new file mode 100644 index 0000000..a604a7a --- /dev/null +++ b/public/img/skills/react.svg @@ -0,0 +1,11 @@ + + + + + + diff --git a/public/img/skills/sass.svg b/public/img/skills/sass.svg new file mode 100644 index 0000000..681513d --- /dev/null +++ b/public/img/skills/sass.svg @@ -0,0 +1,4 @@ + + + diff --git a/public/img/skills/tw.svg b/public/img/skills/tw.svg new file mode 100644 index 0000000..3a20a9e --- /dev/null +++ b/public/img/skills/tw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/skills/typescript.svg b/public/img/skills/typescript.svg new file mode 100644 index 0000000..3978701 --- /dev/null +++ b/public/img/skills/typescript.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/public/img/skills/unity.png b/public/img/skills/unity.png new file mode 100644 index 0000000000000000000000000000000000000000..7b31b4092fd2c41ffbd62e66c85c457f90b01b60 GIT binary patch literal 8056 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 + + + \ No newline at end of file diff --git a/public/img/skills/webpack.svg b/public/img/skills/webpack.svg new file mode 100644 index 0000000..2ff9c8a --- /dev/null +++ b/public/img/skills/webpack.svg @@ -0,0 +1,7 @@ + + + + +