Better responsive design
All checks were successful
Deploy Astro / Build and Deploy (push) Successful in 43s
All checks were successful
Deploy Astro / Build and Deploy (push) Successful in 43s
This commit is contained in:
@@ -7,7 +7,7 @@ import Logo from "../assets/logo.svg";
|
|||||||
<div class="nav-content">
|
<div class="nav-content">
|
||||||
<a href="/" class="logo">
|
<a href="/" class="logo">
|
||||||
<Logo class="logo-img" />
|
<Logo class="logo-img" />
|
||||||
c0ntroller.de
|
<span class="logo-text">c0ntroller.de</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="links">
|
<div class="links">
|
||||||
<a
|
<a
|
||||||
@@ -83,4 +83,13 @@ import Logo from "../assets/logo.svg";
|
|||||||
color: rgb(var(--accent-base));
|
color: rgb(var(--accent-base));
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: 500px) {
|
||||||
|
.logo-text {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.links {
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const {
|
|||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||||
|
|||||||
@@ -1,23 +1,24 @@
|
|||||||
---
|
---
|
||||||
import WelcomeTypewriter from '../components/WelcomeTypewriter.astro';
|
import WelcomeTypewriter from "../components/WelcomeTypewriter.astro";
|
||||||
import BaseLayout from '../layouts/BaseLayout.astro';
|
import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
import { Icon } from 'astro-icon/components';
|
import { Icon } from "astro-icon/components";
|
||||||
import socials from "../data/socials.json";
|
import socials from "../data/socials.json";
|
||||||
---
|
---
|
||||||
|
|
||||||
<BaseLayout title="c0ntroller.de" theme="default">
|
<BaseLayout title="c0ntroller.de" theme="default">
|
||||||
<div class="landing-wrapper">
|
<div class="landing-wrapper">
|
||||||
<div class="hero-section">
|
<div class="hero-section">
|
||||||
<div class="socials fade-in-up shadow-glow glass-bg glass-container">
|
<div class="socials fade-in-up shadow-glow glass-bg glass-container">
|
||||||
{socials.map(({ name, url, icon }) => (
|
{
|
||||||
<a href={url} target="_blank" rel="noreferrer" class="social-link">
|
socials.map(({ name, url, icon }) => (
|
||||||
<Icon name={icon} desc={name} />
|
<a href={url} target="_blank" rel="noreferrer" class="social-link">
|
||||||
</a>
|
<Icon name={icon} desc={name} />
|
||||||
))}
|
</a>
|
||||||
|
))
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
<h1 class="gradient-text reveal-text">Willkommen auf meiner Seite.</h1>
|
<h1 class="gradient-text reveal-text">Willkommen auf meiner Seite.</h1>
|
||||||
<p class="subtitle fade-in-up">
|
<p class="subtitle fade-in-up">Hier geht es unter anderem um:</p>
|
||||||
Hier geht es unter anderem um:
|
|
||||||
</p>
|
|
||||||
<WelcomeTypewriter class="fade-in-up" />
|
<WelcomeTypewriter class="fade-in-up" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -82,7 +83,7 @@ import socials from "../data/socials.json";
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
gap: .5rem;
|
gap: 0.5rem;
|
||||||
margin: 0 auto 2rem auto;
|
margin: 0 auto 2rem auto;
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
backdrop-filter: blur(24px);
|
backdrop-filter: blur(24px);
|
||||||
@@ -116,10 +117,19 @@ import socials from "../data/socials.json";
|
|||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 800px) {
|
@media (max-width: 700px) {
|
||||||
|
.landing-wrapper {
|
||||||
|
padding: 0;
|
||||||
|
margin-top: -1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.bento-grid {
|
.bento-grid {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hero-section {
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bento-card {
|
.bento-card {
|
||||||
@@ -177,21 +187,57 @@ import socials from "../data/socials.json";
|
|||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portfolio { background: linear-gradient(135deg, rgba(var(--accent-base--portfolio), 0.5) 0%, rgba(var(--accent-base--portfolio), 0.15) 100%); }
|
.portfolio {
|
||||||
.blog { background: linear-gradient(135deg, rgba(var(--accent-base--blog), 0.8) 0%, rgba(var(--accent-base--blog), 0.15) 100%); }
|
background: linear-gradient(
|
||||||
.book { background: linear-gradient(135deg, rgba(var(--accent-base--book), 0.8) 0%, rgba(var(--accent-base--book), 0.15) 100%); }
|
135deg,
|
||||||
|
rgba(var(--accent-base--portfolio), 0.5) 0%,
|
||||||
|
rgba(var(--accent-base--portfolio), 0.15) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
.blog {
|
||||||
|
background: linear-gradient(
|
||||||
|
135deg,
|
||||||
|
rgba(var(--accent-base--blog), 0.8) 0%,
|
||||||
|
rgba(var(--accent-base--blog), 0.15) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
.book {
|
||||||
|
background: linear-gradient(
|
||||||
|
135deg,
|
||||||
|
rgba(var(--accent-base--book), 0.8) 0%,
|
||||||
|
rgba(var(--accent-base--book), 0.15) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
.portfolio:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--portfolio), 1); }
|
.portfolio:hover {
|
||||||
.blog:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--blog), 0.4); }
|
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--portfolio), 1);
|
||||||
.book:hover { box-shadow: 0 10px 40px -10px rgba(var(--accent-base--book), 0.4); }
|
}
|
||||||
|
.blog:hover {
|
||||||
|
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--blog), 0.4);
|
||||||
|
}
|
||||||
|
.book:hover {
|
||||||
|
box-shadow: 0 10px 40px -10px rgba(var(--accent-base--book), 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
.portfolio .icon { color: rgb(var(--accent-base--portfolio)); }
|
.portfolio .icon {
|
||||||
.blog .icon { color: rgb(var(--accent-base--blog)); }
|
color: rgb(var(--accent-base--portfolio));
|
||||||
.book .icon { color: rgb(var(--accent-base--book)); }
|
}
|
||||||
|
.blog .icon {
|
||||||
|
color: rgb(var(--accent-base--blog));
|
||||||
|
}
|
||||||
|
.book .icon {
|
||||||
|
color: rgb(var(--accent-base--book));
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes fadeUp {
|
@keyframes fadeUp {
|
||||||
from { opacity: 0; transform: translateY(30px); }
|
from {
|
||||||
to { opacity: 1; transform: translateY(0); }
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.reveal-text {
|
.reveal-text {
|
||||||
@@ -209,12 +255,20 @@ import socials from "../data/socials.json";
|
|||||||
animation: fadeUp 0.8s ease-out forwards;
|
animation: fadeUp 0.8s ease-out forwards;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
.portfolio { animation-delay: 0.4s; }
|
.portfolio {
|
||||||
.blog { animation-delay: 0.6s; }
|
animation-delay: 0.4s;
|
||||||
.book { animation-delay: 0.8s; }
|
}
|
||||||
|
.blog {
|
||||||
|
animation-delay: 0.6s;
|
||||||
|
}
|
||||||
|
.book {
|
||||||
|
animation-delay: 0.8s;
|
||||||
|
}
|
||||||
|
|
||||||
@media (prefers-reduced-motion: reduce) {
|
@media (prefers-reduced-motion: reduce) {
|
||||||
.bento-card, .fade-in-up, .reveal-text {
|
.bento-card,
|
||||||
|
.fade-in-up,
|
||||||
|
.reveal-text {
|
||||||
animation: none;
|
animation: none;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: none;
|
transform: none;
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
*, *::before, *::after {
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
transition: color .4s ease, background-color .4s ease, border-color .4s ease, box-shadow .4s ease;
|
transition: color .4s ease, background-color .4s ease, border-color .4s ease, box-shadow .4s ease;
|
||||||
}
|
}
|
||||||
@@ -16,66 +18,79 @@
|
|||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 214, 134, 249;
|
initial-value: 214, 134, 249;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --bg-image {
|
@property --bg-image {
|
||||||
syntax: '<image>';
|
syntax: '<image>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: url('../assets/backgrounds/bubble.svg');
|
initial-value: url('../assets/backgrounds/bubble.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --bg-image-static {
|
@property --bg-image-static {
|
||||||
syntax: '<image>';
|
syntax: '<image>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: url('../assets/backgrounds/bubble-static.svg');
|
initial-value: url('../assets/backgrounds/bubble-static.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --glass-bg {
|
@property --glass-bg {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: rgba(20, 25, 35, 0.4);
|
initial-value: rgba(20, 25, 35, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --glass-border {
|
@property --glass-border {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: rgba(255, 255, 255, 0.08);
|
initial-value: rgba(255, 255, 255, 0.08);
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --glass-blur {
|
@property --glass-blur {
|
||||||
syntax: '<length>';
|
syntax: '<length>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 16px;
|
initial-value: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --glass-shadow {
|
@property --glass-shadow {
|
||||||
syntax: '<shadow>';
|
syntax: '<shadow>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
|
initial-value: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --text-main {
|
@property --text-main {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: #e0e7f0;
|
initial-value: #e0e7f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --text-muted {
|
@property --text-muted {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: #92a1b6;
|
initial-value: #92a1b6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --bg-color {
|
@property --bg-color {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: #0d0117;
|
initial-value: #0d0117;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --accent-base--default {
|
@property --accent-base--default {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 214, 134, 249;
|
initial-value: 214, 134, 249;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --accent-base--portfolio {
|
@property --accent-base--portfolio {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 255, 181, 102;
|
initial-value: 255, 181, 102;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --accent-base--blog {
|
@property --accent-base--blog {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
initial-value: 111, 221, 246;
|
initial-value: 111, 221, 246;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property --accent-base--book {
|
@property --accent-base--book {
|
||||||
syntax: '<color>';
|
syntax: '<color>';
|
||||||
inherits: true;
|
inherits: true;
|
||||||
@@ -123,10 +138,24 @@ body[data-theme="book"] {
|
|||||||
--bg-image-static: url('../assets/backgrounds/curve-ripple-static.svg');
|
--bg-image-static: url('../assets/backgrounds/curve-ripple-static.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
body:has(nav a[href="/"]:hover) { --accent-base: var(--accent-base--default);}
|
body:has(nav a[href="/"]:hover) {
|
||||||
body:has(nav a[href="/portfolio"]:hover), body:has(.portfolio:hover) { --accent-base: var(--accent-base--portfolio); }
|
--accent-base: var(--accent-base--default);
|
||||||
body:has(nav a[href="/blog"]:hover), body:has(.blog:hover) { --accent-base: var(--accent-base--blog); }
|
}
|
||||||
body:has(nav a[href="/book"]:hover), body:has(.book:hover) { --accent-base: var(--accent-base--book); }
|
|
||||||
|
body:has(nav a[href="/portfolio"]:hover),
|
||||||
|
body:has(.portfolio:hover) {
|
||||||
|
--accent-base: var(--accent-base--portfolio);
|
||||||
|
}
|
||||||
|
|
||||||
|
body:has(nav a[href="/blog"]:hover),
|
||||||
|
body:has(.blog:hover) {
|
||||||
|
--accent-base: var(--accent-base--blog);
|
||||||
|
}
|
||||||
|
|
||||||
|
body:has(nav a[href="/book"]:hover),
|
||||||
|
body:has(.book:hover) {
|
||||||
|
--accent-base: var(--accent-base--book);
|
||||||
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
background-color: var(--bg-color);
|
background-color: var(--bg-color);
|
||||||
@@ -153,7 +182,12 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
color: rgb(var(--accent-base));
|
color: rgb(var(--accent-base));
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
@@ -215,13 +249,24 @@ a:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Mobile Responsiveness */
|
/* Mobile Responsiveness */
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 500px) {
|
||||||
.container {
|
.container {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.glass-container {
|
.glass-container {
|
||||||
padding: 1.25rem;
|
padding: 1.25rem;
|
||||||
}
|
}
|
||||||
h1 { font-size: 1.75rem; }
|
|
||||||
h2 { font-size: 1.5rem; }
|
h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user