ADD: Skills
This commit is contained in:
parent
c04f9e66ca
commit
8d282499bd
8 changed files with 103 additions and 29 deletions
|
@ -32,11 +32,11 @@
|
|||
}
|
||||
|
||||
& h1 {
|
||||
flex: 2;
|
||||
cursor: default;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
flex: 4;
|
||||
|
||||
& svg {
|
||||
--size: 40px;
|
||||
|
@ -46,7 +46,7 @@
|
|||
}
|
||||
|
||||
& nav {
|
||||
flex: 5;
|
||||
flex: 3;
|
||||
position: relative;
|
||||
font-weight: normal;
|
||||
font-size: 1.2rem;
|
||||
|
@ -119,15 +119,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
&.sticks {
|
||||
--color-burger: var(--color-black);
|
||||
--color-link: var(--color-black);
|
||||
--color-header: var(--color-black);
|
||||
|
||||
& > .wrapper {
|
||||
background: var(--color-white-transparent);
|
||||
border-radius: 20px;
|
||||
}
|
||||
&.sticks > .wrapper {
|
||||
background: var(--color-black-transparent);
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
& input[type="checkbox"] {
|
||||
|
@ -164,17 +158,8 @@
|
|||
|
||||
|
||||
|
||||
@media screen and (width < 990px) {
|
||||
@media screen and (width < 1180px) {
|
||||
.Header {
|
||||
& .wrapper {
|
||||
background: var(--color-black);
|
||||
border-radius: 15px;
|
||||
|
||||
& > label > span {
|
||||
color: var(--color-black);
|
||||
}
|
||||
}
|
||||
|
||||
& > .wrapper.wrapper > label {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -61,8 +61,8 @@ const burgerLabel = computed(() => isBurgerOpen.value ? burgerCloseLabel : burge
|
|||
|
||||
const nav = [
|
||||
{
|
||||
href: '#about',
|
||||
label: 'About',
|
||||
href: '#intro',
|
||||
label: 'Über mich',
|
||||
'aria-label': 'Link dieser Seite: About'
|
||||
}, {
|
||||
href: '#customers',
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
.intro-img {
|
||||
width: 750px;
|
||||
display: flex;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
|
@ -32,7 +33,6 @@
|
|||
h2 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
h3,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<style scoped src="./Intro.css"/>
|
||||
|
||||
<template>
|
||||
<section class="Intro content">
|
||||
<section id="intro" class="Intro content full">
|
||||
<div class="intro-text">
|
||||
<h2>
|
||||
<span class="greeting">Moin.</span>
|
||||
|
|
32
components/Skills/Skills.css
Normal file
32
components/Skills/Skills.css
Normal file
|
@ -0,0 +1,32 @@
|
|||
.Skills {
|
||||
background: var(--color-orange-black);
|
||||
background-image: radial-gradient(circle at 90vw 0, rgba(255,145,0,0.2) 0%, rgba(0,0,0,0) 63%, rgba(0,0,0,0) 100%);
|
||||
background-repeat: no-repeat;
|
||||
|
||||
& .skills-wrapper {
|
||||
margin-top: 3rem;
|
||||
display: flex;
|
||||
gap: 3rem;
|
||||
}
|
||||
|
||||
& article {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2rem;
|
||||
padding: 2rem;
|
||||
background: var(--color-black);
|
||||
border-radius: 20px;
|
||||
|
||||
& p:last-of-type {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
& .bottom {
|
||||
margin-top: 3rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 3rem;
|
||||
}
|
||||
}
|
46
components/Skills/Skills.vue
Normal file
46
components/Skills/Skills.vue
Normal file
|
@ -0,0 +1,46 @@
|
|||
<style scoped src="./Skills.css"/>
|
||||
|
||||
<template>
|
||||
<section class="Skills content">
|
||||
<h2>Meine Expertise.</h2>
|
||||
<div class="skills-wrapper">
|
||||
<article class="z-2" v-for="skill in skills">
|
||||
<h3>{{skill.title}}</h3>
|
||||
<main>
|
||||
<p v-for="t in skill.text">{{t}}</p>
|
||||
</main>
|
||||
</article>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<h3>Du brauchst was davon? Kein Ding.</h3>
|
||||
<Button class="cta" label="Lass mal reden" />
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const skills = [
|
||||
{
|
||||
title: 'Komponenten',
|
||||
text: [
|
||||
'Komponenten sind die Teile in deiner Applikation, die alles ansehnlich machen.',
|
||||
'Mit sauber implementierten, responsiven Bausteinen kannst du deine Seite gut Strukturieren, Daten sauber darstellen und den User einspannen.',
|
||||
'Vom kleinen Button bis hin zur Umfangreichen Tabelle bau ich dir (fast) alles.'
|
||||
],
|
||||
}, {
|
||||
title: 'APIs',
|
||||
text: [
|
||||
'Du hast Daten in einer Datenbank liegen, aber keine Ahnung, wie du da gescheit rankommen sollst?',
|
||||
'Liegen deine Daten eventuell sogar verstreut an mehreren Orten, über Datenbanken, Dateien und anderen Storagemöglichkeiten verteilt?',
|
||||
'Kein Ding. Ich bau dir eine Schnittstelle, die alles easy zusammenträgt.'
|
||||
],
|
||||
}, {
|
||||
title: 'Headless CMS Anbindung',
|
||||
text: [
|
||||
'Wenn man ein Headless CMS anbinden will, dann verknüpft das Komponenten und APIs.',
|
||||
'Für eine saubere und dynamische Einbindung reicht die Library, die euch vom Hersteller zur Verfügung gestellt wird, oft nicht aus.',
|
||||
'Übersichtliche Projektstruktur und saubere Auflösung der Daten - das gibt\'s bei mir.'
|
||||
],
|
||||
}
|
||||
]
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue