fix: optimize CSS
This commit is contained in:
parent
b9e9e2d691
commit
282e2086b0
21 changed files with 217 additions and 258 deletions
219
app.vue
219
app.vue
|
@ -25,222 +25,3 @@ useSeoMeta({
|
|||
twitterUrl: 'https://webfussel.de',
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: var(--color-orange);
|
||||
color: var(--color-black);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 20px;
|
||||
background: #b2bec3;
|
||||
transition: var(--transition-time);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
border-radius: 20px;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner {
|
||||
border-radius: 100%;
|
||||
background: #b2bec3;
|
||||
}
|
||||
|
||||
:root {
|
||||
--spacing-standard: 3rem;
|
||||
--transition-time: 250ms;
|
||||
--radius-standard: 4px;
|
||||
|
||||
--color-white: #ecf0f1;
|
||||
--color-white-transparent: rgba(236, 240, 241, 0.7);
|
||||
|
||||
--color-black: #2a2723;
|
||||
--color-black-transparent: #2a2723aa;
|
||||
|
||||
--color-orange: #ff9100;
|
||||
--color-orange-black: #332b22;
|
||||
|
||||
--color-red: #822419;
|
||||
--color-green: #236b40;
|
||||
--color-yellow: #f1c40f;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
border-radius: 999px;
|
||||
padding: 0.25rem 0.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.label.available {
|
||||
background: var(--color-green);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.label.busy {
|
||||
background: var(--color-yellow);
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.label.booked {
|
||||
background: var(--color-red);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
min-height: 100vh;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
scrollbar-gutter: auto;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
|
||||
&.layer {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
color: var(--color-white);
|
||||
background: var(--color-black);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: var(--color-white);
|
||||
transition: var(--transition-time);
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
span.highlight {
|
||||
color: var(--color-orange);
|
||||
}
|
||||
|
||||
span.chip {
|
||||
background: var(--color-orange);
|
||||
border-radius: 999px;
|
||||
font-size: 1rem;
|
||||
color: var(--color-black);
|
||||
height: max-content;
|
||||
padding: .5em 1em;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 2rem;
|
||||
background: var(--color-black);
|
||||
border-radius: 20px;
|
||||
min-width: 300px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.color-icon {
|
||||
filter: invert(50%) sepia(84%) saturate(868%) hue-rotate(1deg) brightness(103%) contrast(100%);
|
||||
}
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
padding: 150px 15vw;
|
||||
}
|
||||
|
||||
.full {
|
||||
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);
|
||||
}
|
||||
|
||||
.z-1 {
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||
}
|
||||
|
||||
.z-2 {
|
||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
|
||||
}
|
||||
|
||||
.z-3 {
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
|
||||
}
|
||||
|
||||
.z-4 {
|
||||
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
.z-5 {
|
||||
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.30), 0 15px 12px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
@media (width <= 780px) {
|
||||
h1, h2, h3, h4, h5, h6, p {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= 450px) {
|
||||
.content {
|
||||
padding: 150px 10vw;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
20
assets/css/button.css
Normal file
20
assets/css/button.css
Normal file
|
@ -0,0 +1,20 @@
|
|||
.Button {
|
||||
all: unset;
|
||||
transition: 250ms;
|
||||
background: var(--color-orange);
|
||||
color: var(--color-black);
|
||||
cursor: pointer;
|
||||
padding: 1rem 1.5rem;
|
||||
outline: 3px solid var(--color-black);
|
||||
box-shadow: 0 0 0 0 var(--color-orange);
|
||||
border-radius: 99999px;
|
||||
text-align: center;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 6px var(--color-orange);
|
||||
}
|
||||
|
||||
&.cta {
|
||||
font-size: clamp(1rem, 2vw, 1.5rem);
|
||||
}
|
||||
}
|
186
assets/css/global.css
Normal file
186
assets/css/global.css
Normal file
|
@ -0,0 +1,186 @@
|
|||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: var(--color-orange);
|
||||
color: var(--color-black);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 20px;
|
||||
background: #b2bec3;
|
||||
transition: var(--transition-time);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
border-radius: 20px;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner {
|
||||
border-radius: 100%;
|
||||
background: #b2bec3;
|
||||
}
|
||||
|
||||
:root {
|
||||
--spacing-standard: 3rem;
|
||||
--transition-time: 250ms;
|
||||
--radius-standard: 4px;
|
||||
|
||||
--color-white: #ecf0f1;
|
||||
--color-white-transparent: rgba(236, 240, 241, 0.7);
|
||||
|
||||
--color-black: #2a2723;
|
||||
--color-black-transparent: #2a2723aa;
|
||||
|
||||
--color-orange: #ff9100;
|
||||
--color-orange-black: #332b22;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
min-height: 100vh;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
scrollbar-gutter: auto;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
|
||||
&.layer {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
color: var(--color-white);
|
||||
background: var(--color-black);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-align: left;
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: var(--color-white);
|
||||
transition: var(--transition-time);
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
span.highlight {
|
||||
color: var(--color-orange);
|
||||
}
|
||||
|
||||
span.chip {
|
||||
background: var(--color-orange);
|
||||
border-radius: 999px;
|
||||
font-size: 1rem;
|
||||
color: var(--color-black);
|
||||
height: max-content;
|
||||
padding: .5em 1em;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.card {
|
||||
padding: 2rem;
|
||||
background: var(--color-black);
|
||||
border-radius: 20px;
|
||||
min-width: 300px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.color-icon {
|
||||
filter: invert(50%) sepia(84%) saturate(868%) hue-rotate(1deg) brightness(103%) contrast(100%);
|
||||
}
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
padding: 150px 15vw;
|
||||
}
|
||||
|
||||
.full {
|
||||
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);
|
||||
}
|
||||
|
||||
.z-1 {
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||
}
|
||||
|
||||
.z-2 {
|
||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
|
||||
}
|
||||
|
||||
.z-3 {
|
||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
|
||||
}
|
||||
|
||||
.z-4 {
|
||||
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
.z-5 {
|
||||
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.30), 0 15px 12px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
@media (width <= 780px) {
|
||||
h1, h2, h3, h4, h5, h6, p {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= 450px) {
|
||||
.content {
|
||||
padding: 150px 10vw;
|
||||
}
|
||||
}
|
|
@ -25,26 +25,3 @@ const actualProps = () => {
|
|||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.Button {
|
||||
all: unset;
|
||||
transition: 250ms;
|
||||
background: var(--color-orange);
|
||||
color: var(--color-black);
|
||||
cursor: pointer;
|
||||
padding: 1rem 1.5rem;
|
||||
outline: 3px solid var(--color-black);
|
||||
box-shadow: 0 0 0 0 var(--color-orange);
|
||||
border-radius: 99999px;
|
||||
text-align: center;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 6px var(--color-orange);
|
||||
}
|
||||
|
||||
&.cta {
|
||||
font-size: clamp(1rem, 2vw, 1.5rem);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Customers.css"/>
|
||||
|
||||
<template>
|
||||
<section id="customers" class="Customers content">
|
||||
<h2>Kunden <span class="highlight">&</span> Projekte.</h2>
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Footer.css"/>
|
||||
|
||||
<template>
|
||||
<footer class="Footer flex-col default-gap">
|
||||
<ul class="sitemap default-gap">
|
|
@ -1,4 +1,3 @@
|
|||
<style scoped src="./Header.css"/>
|
||||
<template>
|
||||
<div ref="stickyWatch" />
|
||||
<header ref="header" class="Header">
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Intro.css"/>
|
||||
|
||||
<template>
|
||||
<section id="intro" class="Intro content full default-gap">
|
||||
<div class="intro-text flex-col default-gap">
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Person.css"/>
|
||||
|
||||
<template>
|
||||
<article class="Person flex-col">
|
||||
<img loading="lazy" width="150" height="150" :src="img" :alt="`Bild von ${name}`" />
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Services.css"/>
|
||||
|
||||
<template>
|
||||
<section id="services" class="Services content">
|
||||
<h2>Services.</h2>
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Skills.css"/>
|
||||
|
||||
<template>
|
||||
<section id="skills" class="Skills content">
|
||||
<h2>Meine Expertise.</h2>
|
|
@ -1,5 +1,3 @@
|
|||
<style scoped src="./Technology.css"/>
|
||||
|
||||
<template>
|
||||
<div class="Technology flex-col" :class="[size]">
|
||||
<a v-if="link" :href="link" target="_blank" rel="noopener noreferrer">
|
|
@ -9,7 +9,17 @@ export default defineNuxtConfig({
|
|||
}
|
||||
},
|
||||
css: [
|
||||
'~/assets/css/fonts.css'
|
||||
'~/assets/css/fonts.css',
|
||||
'~/assets/css/global.css',
|
||||
'~/assets/css/header.css',
|
||||
'~/assets/css/intro.css',
|
||||
'~/assets/css/skills.css',
|
||||
'~/assets/css/customers.css',
|
||||
'~/assets/css/services.css',
|
||||
'~/assets/css/footer.css',
|
||||
'~/assets/css/technology.css',
|
||||
'~/assets/css/person.css',
|
||||
'~/assets/css/button.css',
|
||||
],
|
||||
routeRules: {
|
||||
'/': { prerender: true },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue