1
0

feat: Responsiveness finished

This commit is contained in:
2026-03-12 10:28:13 +01:00
parent 8eb603e9f0
commit 4d6ed5cd37
11 changed files with 125 additions and 1000 deletions
-2
View File
@@ -3,13 +3,11 @@ import { defineConfig, passthroughImageService, fontProviders } from "astro/conf
import partytown from "@astrojs/partytown"; import partytown from "@astrojs/partytown";
import sitemap from "@astrojs/sitemap"; import sitemap from "@astrojs/sitemap";
import vue from "@astrojs/vue";
import robotsTxt from "astro-robots-txt"; import robotsTxt from "astro-robots-txt";
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
integrations: [ integrations: [
vue(),
sitemap(), sitemap(),
robotsTxt(), robotsTxt(),
partytown({ partytown({
+1 -3
View File
@@ -11,11 +11,9 @@
"dependencies": { "dependencies": {
"@astrojs/partytown": "^2.1.5", "@astrojs/partytown": "^2.1.5",
"@astrojs/sitemap": "^3.7.1", "@astrojs/sitemap": "^3.7.1",
"@astrojs/vue": "^6.0.0",
"@astrolib/seo": "1.0.0-beta.8", "@astrolib/seo": "1.0.0-beta.8",
"astro": "^6.0.2", "astro": "^6.0.2",
"astro-robots-txt": "^1.0.0", "astro-robots-txt": "^1.0.0",
"gsap": "^3.14.2", "gsap": "^3.14.2"
"vue": "^3.5.30"
} }
} }
-944
View File
File diff suppressed because it is too large Load Diff
+16 -2
View File
@@ -78,10 +78,13 @@ function getCurrentYear() {
nav, nav,
.info { .info {
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; gap: 2rem;
gap: 2remm;
font-size: 0.875rem; font-size: 0.875rem;
line-height: var(--leading-title); line-height: var(--leading-title);
@media screen and (min-width: 45rem) {
grid-template-columns: 1fr 1fr 1fr;
}
} }
ul { ul {
@@ -93,6 +96,9 @@ function getCurrentYear() {
} }
.explore { .explore {
@media screen and (max-width: 44.9375rem) {
text-align: center;
}
} }
.follow { .follow {
@@ -108,8 +114,12 @@ function getCurrentYear() {
} }
.legal { .legal {
text-align: center;
@media screen and (min-width: 45rem) {
text-align: end; text-align: end;
} }
}
.list-title { .list-title {
color: var(--clr-light-600); color: var(--clr-light-600);
@@ -128,6 +138,10 @@ function getCurrentYear() {
& .no-ai { & .no-ai {
text-align: end; text-align: end;
} }
@media screen and (max-width: 44.9375rem) {
margin-top: 5rem;
}
} }
.logo { .logo {
+1 -1
View File
@@ -38,7 +38,7 @@
--tracking-narrow: -0.09375rem; --tracking-narrow: -0.09375rem;
--base-grid: repeat(12, 1fr); --base-grid: repeat(12, 1fr);
--max-content-width: 1920px; --max-content-width: 1600px;
--padding-x: 1.5rem; --padding-x: 1.5rem;
@media screen and (min-width: 50rem) { @media screen and (min-width: 50rem) {
+1 -1
View File
@@ -49,7 +49,7 @@ import SkipNavLink from "./SkipNavLink.astro";
width: 8rem; width: 8rem;
transform: translate3d(-0.75rem, 0, 0); transform: translate3d(-0.75rem, 0, 0);
@media screen and (min-width: 50rem) { @media screen and (min-width: 35rem) {
grid-column: 1 / 3; grid-column: 1 / 3;
width: 12.5rem; width: 12.5rem;
} }
+38 -12
View File
@@ -23,7 +23,7 @@ import ArrowUpRight from "../icons/ArrowUpRight.astro";
<a class="link" href="mailto:office@tideshiftdigital.com"> <a class="link" href="mailto:office@tideshiftdigital.com">
<span class="heading-gradient">Contact us</span> <span class="heading-gradient">Contact us</span>
<ArrowUpRight /> <ArrowUpRight class="icon" />
</a> </a>
</div> </div>
@@ -33,20 +33,28 @@ import ArrowUpRight from "../icons/ArrowUpRight.astro";
grid-template-columns: var(--base-grid); grid-template-columns: var(--base-grid);
max-width: var(--max-content-width); max-width: var(--max-content-width);
margin-inline: auto; margin-inline: auto;
padding-block: 8rem 10rem; padding-block: 4rem;
padding-inline: var(--padding-x); padding-inline: var(--padding-x);
@media screen and (min-width: 50rem) {
padding-block: 8rem 10rem;
}
} }
picture { picture {
display: block; display: block;
width: calc(100% + var(--padding-x)); grid-column: 1 / -1;
grid-column: 1 / 8;
grid-row: 1; grid-row: 1;
transform: translate3d(calc(-1 * var(--padding-x)), 0, 0);
z-index: -1; z-index: -1;
@media screen and (max-width: 49.9375rem) {
max-height: 15rem;
}
@media screen and (min-width: 50rem) { @media screen and (min-width: 50rem) {
grid-column: 1 / 5; grid-column: 1 / 5;
width: calc(100% + var(--padding-x));
transform: translate3d(calc(-1 * var(--padding-x)), 0, 0);
} }
} }
@@ -54,12 +62,21 @@ import ArrowUpRight from "../icons/ArrowUpRight.astro";
max-width: 100%; max-width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
@media screen and (max-width: 49.9375rem) {
object-position: bottom;
}
} }
.content { .content {
grid-column: 3 / 12; grid-column: 1 / -1;
align-content: center; align-content: center;
@media screen and (max-width: 49.9375rem) {
margin-top: 3rem;
text-align: cen;
}
@media screen and (min-width: 50rem) { @media screen and (min-width: 50rem) {
grid-row: 1; grid-row: 1;
grid-column: 6 / -1; grid-column: 6 / -1;
@@ -68,28 +85,32 @@ import ArrowUpRight from "../icons/ArrowUpRight.astro";
h2 { h2 {
max-width: 13ch; max-width: 13ch;
font-size: 3rem; font-size: clamp(2.25rem, 2.5vw + 1rem, 3rem);
line-height: var(--leading-subtitle); line-height: var(--leading-subtitle);
letter-spacing: var(--tracking-narrow); letter-spacing: var(--tracking-narrow);
} }
p { p {
max-width: 38ch; max-width: 38ch;
margin-top: 2rem; margin-top: 1rem;
font-size: 1.5rem; font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.5rem);
line-height: var(--leading-paragraph); line-height: var(--leading-paragraph);
@media screen and (min-width: 50rem) {
margin-top: 2rem;
}
} }
.link { .link {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
gap: 2rem; gap: 1rem;
grid-column: 1 / -1; grid-column: 1 / -1;
width: max-content; width: max-content;
margin-inline: auto; margin-inline: auto;
margin-top: 8rem; margin-top: 6rem;
font-size: clamp(2.5rem, 5vw + 1rem, 6.25rem); font-size: clamp(2.5rem, 5vw + 1rem, 6.25rem);
font-weight: 600; font-weight: 600;
@@ -100,7 +121,12 @@ import ArrowUpRight from "../icons/ArrowUpRight.astro";
letter-spacing: var(--tracking-narrow); letter-spacing: var(--tracking-narrow);
} }
@media screen and (min-width: 64vw) { .icon {
width: auto;
height: clamp(3.5rem, 5vw + 1rem, 1.125em);
}
@media screen and (min-width: 64rem) {
margin-top: 12rem; margin-top: 12rem;
} }
} }
+43 -14
View File
@@ -26,9 +26,9 @@ import ArrowDown from "../icons/ArrowDown.astro";
digital sovereignty and sustainability. digital sovereignty and sustainability.
</p> </p>
<button class="down"> <div class="down">
<ArrowDown /> <ArrowDown />
</button> </div>
</div> </div>
</div> </div>
@@ -36,29 +36,39 @@ import ArrowDown from "../icons/ArrowDown.astro";
.hero { .hero {
display: grid; display: grid;
grid-template-columns: var(--base-grid); grid-template-columns: var(--base-grid);
height: 100svh;
padding-inline: var(--padding-x); padding-inline: var(--padding-x);
max-width: var(--max-content-width); max-width: var(--max-content-width);
margin-inline: auto; margin-inline: auto;
@media screen and (min-width: 50rem) {
height: 100svh;
max-height: 90rem;
}
} }
.image-wrapper { .image-wrapper {
grid-column: 4 / -1; grid-column: 3 / -1;
grid-row: 1; max-height: 40vh;
max-height: clamp(400px, 70vh, 1000px);
position: relative; position: relative;
z-index: -1; z-index: -1;
@media screen and (max-width: 49.9375rem) {
margin-top: 1.5rem;
}
@media screen and (min-width: 50rem) { @media screen and (min-width: 50rem) {
grid-column: 4 / -1;
grid-row: 1;
grid-column: 5 / -1; grid-column: 5 / -1;
max-height: clamp(400px, 70vh, 1000px);
} }
@media screen and (min-width: 75rem) { @media screen and (min-width: 75rem) {
grid-column: -1 / -6; grid-column: -1 / -6;
} }
} }
@media screen and (min-width: 50rem) and (max-width: 74.9375rem) {
.image-wrapper::after { .image-wrapper::after {
content: ""; content: "";
display: block; display: block;
@@ -70,7 +80,6 @@ import ArrowDown from "../icons/ArrowDown.astro";
left: 0; left: 0;
z-index: 1; z-index: 1;
@media screen and (max-width: 63.9375rem) {
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
} }
} }
@@ -86,12 +95,24 @@ import ArrowDown from "../icons/ArrowDown.astro";
.content { .content {
display: grid; display: grid;
grid-template-columns: subgrid; grid-template-columns: subgrid;
grid-template-rows: 1fr 1fr; row-gap: 1.5em;
row-gap: 2.25em;
z-index: 1; z-index: 1;
grid-column: 1 / -1; grid-column: 1 / -1;
grid-row: 1; grid-row: 1;
@media screen and (max-width: 24.9375rem) {
margin-top: 6rem;
}
@media screen and (min-width: 25rem) and (max-width: 49.9375rem) {
margin-top: 8rem;
}
@media screen and (min-width: 50rem) {
row-gap: 2.25em;
grid-template-rows: 1fr 1fr;
}
} }
h1 { h1 {
@@ -108,8 +129,8 @@ import ArrowDown from "../icons/ArrowDown.astro";
grid-column: 2 / -2; grid-column: 2 / -2;
} }
@media screen and (min-width: 64rem) { @media screen and (min-width: 100rem) {
grid-column: 2 / -2; grid-column: 3 / -3;
} }
& span { & span {
@@ -118,7 +139,7 @@ import ArrowDown from "../icons/ArrowDown.astro";
} }
p { p {
grid-column: 2 / -1; grid-column: 1 / -1;
grid-row: 2; grid-row: 2;
max-width: 45ch; max-width: 45ch;
@@ -126,12 +147,16 @@ import ArrowDown from "../icons/ArrowDown.astro";
line-height: var(--leading-paragraph); line-height: var(--leading-paragraph);
@media screen and (min-width: 50rem) { @media screen and (min-width: 50rem) {
grid-column: 3 / -5; grid-column: 2 / -5;
} }
@media screen and (min-width: 64rem) { @media screen and (min-width: 64rem) {
grid-column: 3 / -5; grid-column: 3 / -5;
} }
@media screen and (min-width: 100rem) {
grid-column: 4 / -4;
}
} }
.down { .down {
@@ -153,6 +178,10 @@ import ArrowDown from "../icons/ArrowDown.astro";
width: 3rem; width: 3rem;
height: 3rem; height: 3rem;
} }
@media screen and (max-width: 49.9375rem) {
display: none;
}
} }
</style> </style>
+1 -1
View File
@@ -84,7 +84,7 @@ const { title, image, items } = Astro.props;
h3 { h3 {
grid-row: 1; grid-row: 1;
font-size: 2.25rem; font-size: clamp(1.875rem, 2vw + 0.5rem, 2.25rem);
line-height: var(--leading-title); line-height: var(--leading-title);
padding-block: 2.5rem 1rem; padding-block: 2.5rem 1rem;
padding-inline: 2.5rem; padding-inline: 2.5rem;
+5 -1
View File
@@ -58,8 +58,12 @@ const services: Array<ComponentProps<typeof ServicesCard>> = [
grid-template-columns: var(--base-grid); grid-template-columns: var(--base-grid);
max-width: var(--max-content-width); max-width: var(--max-content-width);
margin-inline: auto; margin-inline: auto;
padding-block: 8rem; padding-block: 6rem;
padding-inline: var(--padding-x); padding-inline: var(--padding-x);
@media screen and (min-width: 50rem) {
padding-block: 8rem;
}
} }
.heading { .heading {
+6 -6
View File
@@ -51,7 +51,7 @@ function formatIndex(index: number) {
padding-block: 4rem; padding-block: 4rem;
padding-inline: var(--padding-x); padding-inline: var(--padding-x);
@media screen and (min-width: 50rem) { @media screen and (min-width: 64rem) {
padding-block: 8rem 5.5rem; padding-block: 8rem 5.5rem;
} }
} }
@@ -73,7 +73,7 @@ function formatIndex(index: number) {
border-bottom: 0.25rem solid hsl(0 100 100 / 30%); border-bottom: 0.25rem solid hsl(0 100 100 / 30%);
} }
@media screen and (min-width: 50rem) { @media screen and (min-width: 64rem) {
margin-top: 5.5rem; margin-top: 5.5rem;
} }
} }
@@ -83,7 +83,7 @@ function formatIndex(index: number) {
grid-template-columns: var(--base-grid); grid-template-columns: var(--base-grid);
padding-block: 4rem; padding-block: 4rem;
@media screen and (min-width: 50rem) { @media screen and (min-width: 64rem) {
padding-block: 6rem; padding-block: 6rem;
} }
} }
@@ -91,11 +91,11 @@ function formatIndex(index: number) {
.content { .content {
grid-column: 1 / -1; grid-column: 1 / -1;
@media screen and (max-width: 49.9375rem) { @media screen and (max-width: 63.9375rem) {
margin-top: 2rem; margin-top: 2rem;
} }
@media screen and (min-width: 50rem) { @media screen and (min-width: 64rem) {
grid-row: 1; grid-row: 1;
grid-column: 5 / -1; grid-column: 5 / -1;
} }
@@ -123,7 +123,7 @@ function formatIndex(index: number) {
font-weight: 600; font-weight: 600;
line-height: var(--leading-tightest); line-height: var(--leading-tightest);
@media screen and (min-width: 50rem) { @media screen and (min-width: 64rem) {
grid-column: 1 / 4; grid-column: 1 / 4;
} }
} }