1
0

refactor: Move old components to old folders, start new website impl

This commit is contained in:
2025-12-15 17:56:59 +01:00
parent 8e736906c1
commit 8ccad90484
21 changed files with 561 additions and 2120 deletions
+15 -7
View File
@@ -1,21 +1,29 @@
// @ts-check
import { defineConfig, passthroughImageService } from 'astro/config';
import { defineConfig, passthroughImageService } from "astro/config";
import vue from '@astrojs/vue';
import partytown from "@astrojs/partytown";
import sitemap from "@astrojs/sitemap";
import vue from "@astrojs/vue";
import robotsTxt from "astro-robots-txt";
import aiRobotsTxt from "astro-ai-robots-txt";
import removeComments from "astro-remove-comments";
// https://astro.build/config
export default defineConfig({
integrations: [vue(), sitemap(), robotsTxt(), removeComments()],
integrations: [
vue(),
sitemap(),
robotsTxt(),
partytown({
config: {
forward: ["$plausible", "$plausible.push"],
},
}),
],
i18n: {
locales: ["en", "de"],
defaultLocale: "en"
defaultLocale: "en",
},
image: {
service: passthroughImageService(),
},
site: 'https://tideshiftdigital.com',
site: "https://tideshiftdigital.com",
});
-1104
View File
File diff suppressed because it is too large Load Diff
+3 -4
View File
@@ -9,14 +9,13 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/partytown": "^2.1.4",
"@astrojs/sitemap": "^3.6.0",
"@astrojs/vue": "^5.1.3",
"@astrolib/seo": "1.0.0-beta.8",
"astro": "^5.16.4",
"astro-ai-robots-txt": "^0.1.2",
"astro-remove-comments": "^0.0.1",
"astro": "^5.16.5",
"astro-robots-txt": "^1.0.0",
"gsap": "^3.13.0",
"gsap": "^3.14.2",
"vue": "^3.5.25"
}
}
+240 -606
View File
File diff suppressed because it is too large Load Diff
+21 -62
View File
@@ -3,19 +3,23 @@
@import url("../styles/clash-display.css");
:root {
--clr-ts-warm-red: hsl(3, 94%, 60%);
--clr-ts-dark: hsl(7, 18%, 10%);
--clr-ts-dark-logo: hsl(7, 18%, 13%);
--clr-ts-light: hsl(349, 57%, 91%);
--clr-light-400: hsl(0, 0%, 100%);
--clr-dark-400: hsl(0, 17.6%, 3.3%);
--ff-heading: "Clash Display", sans-serif;
--ff-body: "Archivo", sans-serif;
--clr-ts-warm-red-400: hsl(3, 94%, 60%);
--fs-xl: clamp(2.125rem, 5vw + 1rem, 6rem);
--fs-600: clamp(1.125rem, 1.5vw + 0.5rem, 1.25rem);
--fs-500: 1.125rem;
--fs-400: 1rem;
--fs-300: 0.75rem;
--gradient-heading: linear-gradient(
to bottom,
hsla(from var(--clr-light-400) h s l / 100%),
hsla(from var(--clr-light-400) h s l / 70%),
hsla(from var(--clr-light-400) h s l / 50%)
);
}
body {
background-color: var(--clr-dark-400);
/*color: hsla(from var(--clr-light-400) h s l / 90%);*/ /* Syntax to create hsla from hsl*/
color: white;
}
* {
@@ -24,63 +28,18 @@
padding: 0;
}
body {
width: 100%;
height: 100%;
margin: 0;
font-family: var(--ff-body);
font-size: var(--fs-400);
background-color: var(--clr-ts-dark);
color: var(--clr-ts-light);
-webkit-font-smoothing: antialiased;
}
.sr-only {
position: absolute !important;
overflow: hidden !important;
white-space: nowrap !important;
width: 1px !important;
height: 1px !important;
margin: -1px !important;
padding: 0 !important;
border: 0 !important;
clip: rect(1px 1px 1px 1px) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
}
.content {
max-width: 82ch;
& > * + * {
margin-top: 0.25em;
}
& a {
display: inline-block;
width: max-content;
position: relative;
font-weight: 500;
color: var(--clr-ts-warm-red);
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--ff-heading);
h3 {
background: var(--gradient-heading);
background-clip: text;
color: transparent;
}
h1 {
max-width: 16ch;
font-size: var(--fs-xl);
font-weight: 700c;
text-transform: uppercase;
font-size: 5.625rem;
line-height: 1.1;
letter-spacing: 0.0333em;
font-weight: 600;
}
</style>
+22
View File
@@ -0,0 +1,22 @@
---
---
<!-- Privacy-friendly analytics by Plausible -->
<script
type="text/partytown"
src="https://analytics.tideshiftdigital.com/js/pa-p5oAx14RzTKItmInsv6px.js"
></script>
<script type="text/partytown">
((window.plausible =
window.plausible ||
function () {
(plausible.q = plausible.q || []).push(arguments);
}),
(plausible.init =
plausible.init ||
function (i) {
plausible.o = i || {};
}));
plausible.init();
</script>
-213
View File
@@ -1,213 +0,0 @@
---
import astroLogo from '../assets/astro.svg';
import background from '../assets/background.svg';
---
<div id="container">
<img id="background" src={background.src} alt="" fetchpriority="high" />
<main>
<section id="hero">
<a href="https://astro.build"
><img src={astroLogo.src} width="115" height="48" alt="Astro Homepage" /></a
>
<h1>
To get started, open the <code><pre>src/pages</pre></code> directory in your project.
Heyo, that's a message from myself!👋🏻
</h1>
<section id="links">
<a class="button" href="https://docs.astro.build">Read our docs</a>
<a href="https://astro.build/chat"
>Join our Discord <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127.14 96.36"
><path
fill="currentColor"
d="M107.7 8.07A105.15 105.15 0 0 0 81.47 0a72.06 72.06 0 0 0-3.36 6.83 97.68 97.68 0 0 0-29.11 0A72.37 72.37 0 0 0 45.64 0a105.89 105.89 0 0 0-26.25 8.09C2.79 32.65-1.71 56.6.54 80.21a105.73 105.73 0 0 0 32.17 16.15 77.7 77.7 0 0 0 6.89-11.11 68.42 68.42 0 0 1-10.85-5.18c.91-.66 1.8-1.34 2.66-2a75.57 75.57 0 0 0 64.32 0c.87.71 1.76 1.39 2.66 2a68.68 68.68 0 0 1-10.87 5.19 77 77 0 0 0 6.89 11.1 105.25 105.25 0 0 0 32.19-16.14c2.64-27.38-4.51-51.11-18.9-72.15ZM42.45 65.69C36.18 65.69 31 60 31 53s5-12.74 11.43-12.74S54 46 53.89 53s-5.05 12.69-11.44 12.69Zm42.24 0C78.41 65.69 73.25 60 73.25 53s5-12.74 11.44-12.74S96.23 46 96.12 53s-5.04 12.69-11.43 12.69Z"
></path></svg
>
</a>
</section>
</section>
</main>
<a href="https://astro.build/blog/astro-5/" id="news" class="box">
<svg width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"
><path
d="M24.667 12c1.333 1.414 2 3.192 2 5.334 0 4.62-4.934 5.7-7.334 12C18.444 28.567 18 27.456 18 26c0-4.642 6.667-7.053 6.667-14Zm-5.334-5.333c1.6 1.65 2.4 3.43 2.4 5.333 0 6.602-8.06 7.59-6.4 17.334C13.111 27.787 12 25.564 12 22.666c0-4.434 7.333-8 7.333-16Zm-6-5.333C15.111 3.555 16 5.556 16 7.333c0 8.333-11.333 10.962-5.333 22-3.488-.774-6-4-6-8 0-8.667 8.666-10 8.666-20Z"
fill="#111827"></path></svg
>
<h2>What's New in Astro 5.0?</h2>
<p>
From content layers to server islands, click to learn more about the new features and
improvements in Astro 5.0
</p>
</a>
</div>
<style>
#background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
filter: blur(100px);
}
#container {
font-family: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;
height: 100%;
}
main {
height: 100%;
display: flex;
justify-content: center;
}
#hero {
display: flex;
align-items: start;
flex-direction: column;
justify-content: center;
padding: 16px;
}
h1 {
font-size: 22px;
margin-top: 0.25em;
}
#links {
display: flex;
gap: 16px;
}
#links a {
display: flex;
align-items: center;
padding: 10px 12px;
color: #111827;
text-decoration: none;
transition: color 0.2s;
}
#links a:hover {
color: rgb(78, 80, 86);
}
#links a svg {
height: 1em;
margin-left: 8px;
}
#links a.button {
color: white;
background: linear-gradient(83.21deg, #3245ff 0%, #bc52ee 100%);
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.12),
inset 0 -2px 0 rgba(0, 0, 0, 0.24);
border-radius: 10px;
}
#links a.button:hover {
color: rgb(230, 230, 230);
box-shadow: none;
}
pre {
font-family:
ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono',
monospace;
font-weight: normal;
background: linear-gradient(14deg, #d83333 0%, #f041ff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin: 0;
}
h2 {
margin: 0 0 1em;
font-weight: normal;
color: #111827;
font-size: 20px;
}
p {
color: #4b5563;
font-size: 16px;
line-height: 24px;
letter-spacing: -0.006em;
margin: 0;
}
code {
display: inline-block;
background:
linear-gradient(66.77deg, #f3cddd 0%, #f5cee7 100%) padding-box,
linear-gradient(155deg, #d83333 0%, #f041ff 18%, #f5cee7 45%) border-box;
border-radius: 8px;
border: 1px solid transparent;
padding: 6px 8px;
}
.box {
padding: 16px;
background: rgba(255, 255, 255, 1);
border-radius: 16px;
border: 1px solid white;
}
#news {
position: absolute;
bottom: 16px;
right: 16px;
max-width: 300px;
text-decoration: none;
transition: background 0.2s;
backdrop-filter: blur(50px);
}
#news:hover {
background: rgba(255, 255, 255, 0.55);
}
@media screen and (max-height: 368px) {
#news {
display: none;
}
}
@media screen and (max-width: 768px) {
#container {
display: flex;
flex-direction: column;
}
#hero {
display: block;
padding-top: 10%;
}
#links {
flex-wrap: wrap;
}
#links a.button {
padding: 14px 18px;
}
#news {
right: 16px;
left: 16px;
bottom: 2.5rem;
max-width: 100%;
}
h1 {
line-height: 1.5;
}
}
</style>
+86
View File
@@ -0,0 +1,86 @@
<style is:global>
@import url("../styles/archivo.css");
@import url("../styles/clash-display.css");
:root {
--clr-ts-warm-red: hsl(3, 94%, 60%);
--clr-ts-dark: hsl(7, 18%, 10%);
--clr-ts-dark-logo: hsl(7, 18%, 13%);
--clr-ts-light: hsl(349, 57%, 91%);
--ff-heading: "Clash Display", sans-serif;
--ff-body: "Archivo", sans-serif;
--fs-xl: clamp(2.125rem, 5vw + 1rem, 6rem);
--fs-600: clamp(1.125rem, 1.5vw + 0.5rem, 1.25rem);
--fs-500: 1.125rem;
--fs-400: 1rem;
--fs-300: 0.75rem;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
width: 100%;
height: 100%;
margin: 0;
font-family: var(--ff-body);
font-size: var(--fs-400);
background-color: var(--clr-ts-dark);
color: var(--clr-ts-light);
-webkit-font-smoothing: antialiased;
}
.sr-only {
position: absolute !important;
overflow: hidden !important;
white-space: nowrap !important;
width: 1px !important;
height: 1px !important;
margin: -1px !important;
padding: 0 !important;
border: 0 !important;
clip: rect(1px 1px 1px 1px) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
}
.content {
max-width: 82ch;
& > * + * {
margin-top: 0.25em;
}
& a {
display: inline-block;
width: max-content;
position: relative;
font-weight: 500;
color: var(--clr-ts-warm-red);
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--ff-heading);
}
h1 {
max-width: 16ch;
font-size: var(--fs-xl);
font-weight: 700c;
text-transform: uppercase;
line-height: 1.1;
letter-spacing: 0.0333em;
}
</style>
View File
+6 -28
View File
@@ -1,10 +1,11 @@
---
import Cursor from "../components/Cursor.astro";
// import GlobalStyles from "../components/GlobalStyles.astro";
// import Header from "../components/Header.astro";
import GlobalStyles from "../components/GlobalStyles.astro";
import Header from "../components/Header.astro";
import PlausibleAnalytics from "../components/PlausibleAnalytics.astro";
const { pageTitle } = Astro.props;
const isDev = import.meta.env.DEV;
const title = pageTitle
? `${pageTitle} | Tideshift Digital`
: "Tideshift Digital - Building The Web On Your Terms";
@@ -48,35 +49,12 @@ const title = pageTitle
/>
<meta name="twitter:image" content="/assets/img/og-image.jpg" />
{
!isDev ? (
<script
is:inline
defer
src="https://analytics.tideshiftdigital.com/script.js"
data-website-id="00c032c0-8fd5-436c-a210-9df51c071c7b"
/>
) : null
}
<PlausibleAnalytics />
</head>
<body>
<GlobalStyles />
<div class="inner">
<Header />
<slot />
</div>
<Cursor />
</body>
</html>
<style>
.inner {
display: grid;
grid-template-rows: max-content 1fr;
overflow: clip;
padding: clamp(2rem, 5vw + 1rem, 3.75rem);
position: relative;
}
</style>
<style></style>
-17
View File
@@ -1,7 +1,4 @@
---
import Cursor from "../components/Cursor.astro";
import GlobalStyles from "../components/GlobalStyles.astro";
const isDev = import.meta.env.DEV;
---
@@ -16,23 +13,9 @@ const isDev = import.meta.env.DEV;
<meta name="author" content="Michael Rieger" />
<meta name="application-name" content="Tideshift Digital" />
<link rel="canonical" href="https://tideshiftdigital.com/" />
{
!isDev ? (
<script
is:inline
defer
src="https://analytics.tideshiftdigital.com/script.js"
data-website-id="00c032c0-8fd5-436c-a210-9df51c071c7b"
/>
) : null
}
</head>
<body>
<GlobalStyles />
<slot />
<Cursor />
</body>
</html>
+82
View File
@@ -0,0 +1,82 @@
---
import Cursor from "../../components/old/Cursor.astro";
import GlobalStyles from "../../components/old/GlobalStyles.astro";
import Header from "../../components/old/Header.astro";
const { pageTitle } = Astro.props;
const isDev = import.meta.env.DEV;
const title = pageTitle
? `${pageTitle} | Tideshift Digital`
: "Tideshift Digital - Building The Web On Your Terms";
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>
{title}
</title>
<meta
name="description"
content="From concept to launch — websites, apps, and digital solutions that work hard, so you can play hard. Personal sites, ecommerce platforms, and custom web apps built by Michael Rieger in Vienna."
/>
<meta
name="keywords"
content="web development, web design, custom web apps, e-commerce development, Vienna developer, Michael Rieger, Tideshift Digital, digital solutions, website launch, app development"
/>
<meta name="author" content="Michael Rieger" />
<meta name="application-name" content="Tideshift Digital" />
<link rel="canonical" href="https://tideshiftdigital.com/" />
<meta property="og:title" content={title} />
<meta
property="og:description"
content="From concept to launch — websites, apps, and digital solutions that work hard, so you can play hard. Based in Vienna, we turn ideas into live products."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://tideshiftdigital.com/" />
<meta property="og:image" content="/assets/img/og-image.jpg" />
<meta property="og:site_name" content="Tideshift Digital" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta
name="twitter:description"
content="From concept to launch — websites, apps, and digital solutions that work hard, so you can play hard. Based in Vienna."
/>
<meta name="twitter:image" content="/assets/img/og-image.jpg" />
{
!isDev ? (
<script
is:inline
defer
src="https://analytics.tideshiftdigital.com/script.js"
data-website-id="00c032c0-8fd5-436c-a210-9df51c071c7b"
/>
) : null
}
</head>
<body>
<GlobalStyles />
<div class="inner">
<Header />
<slot />
</div>
<Cursor />
</body>
</html>
<style>
.inner {
display: grid;
grid-template-rows: max-content 1fr;
overflow: clip;
padding: clamp(2rem, 5vw + 1rem, 3.75rem);
position: relative;
}
</style>
+2 -3
View File
@@ -1,8 +1,7 @@
---
import Hero from "../components/Hero.astro";
import BaseLayout from "../layouts/BaseLayout.astro";
---
<BaseLayout pageTitle="Building The Web On Your Terms">
<Hero />
<BaseLayout title="Home">
<h1>Your Partner For A Better Web</h1>
</BaseLayout>
+8
View File
@@ -0,0 +1,8 @@
---
import Hero from "../components/Hero.astro";
import BaseLayout from "../layouts/BaseLayout.astro";
---
<BaseLayout pageTitle="Building The Web On Your Terms">
<Hero />
</BaseLayout>