1
0

Setup Astro project and start working on placeholder page

This commit is contained in:
Michael Rieger
2025-09-11 15:59:12 +02:00
parent e11df7efb2
commit b5e812da0f
43 changed files with 1675 additions and 181 deletions
+9 -1
View File
@@ -1,5 +1,13 @@
// @ts-check
import { defineConfig } from 'astro/config';
import vue from '@astrojs/vue';
// https://astro.build/config
export default defineConfig({});
export default defineConfig({
integrations: [vue()],
i18n: {
locales: ["en", "de"],
defaultLocale: "en"
}
});
+3 -1
View File
@@ -9,6 +9,8 @@
"astro": "astro"
},
"dependencies": {
"astro": "^5.12.8"
"@astrojs/vue": "^5.1.1",
"astro": "^5.13.7",
"vue": "^3.5.21"
}
}
+1327 -165
View File
File diff suppressed because it is too large Load Diff
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1000 864" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" fill="rgb(249,66,58)">
<g transform="matrix(1,0,0,1,-22832,-13160)">
<g id="Icon-only" serif:id="Icon only" transform="matrix(1.30093,0,0,1.64796,-6871.74,-8527.42)">
<rect x="22832.7" y="13160.1" width="768.682" height="524.101" style="fill:none;"/>
<clipPath id="_clip1">
<rect x="22832.7" y="13160.1" width="768.682" height="524.101"/>
</clipPath>
<g clip-path="url(#_clip1)">
<g transform="matrix(3.51664,-2.77609,4.85724,3.83438,-7621.9,14375.8)">
<g>
<g transform="matrix(0.289115,2.12499e-17,3.07699e-17,0.209319,4358.32,3013.71)">
<path d="M497.087,0L584.587,0L706.554,121.967L706.554,400L584.587,400L584.587,245.209C584.587,192.104 553.45,146.328 510.132,125C497.502,118.781 483.836,114.641 469.604,113.004C466.294,112.623 462.952,112.377 459.587,112.273L459.587,37.5C459.587,16.803 476.39,0 497.087,0Z" fill="cuu"/>
</g>
<g transform="matrix(0.289115,2.12499e-17,3.07699e-17,0.209319,4358.32,3013.71)">
<path d="M859.587,200L659.587,0L822.087,0C842.783,0 859.587,16.803 859.587,37.5L859.587,200Z" fill="cuu"/>
</g>
<g transform="matrix(0.289115,2.12499e-17,3.07699e-17,0.209319,4358.32,3013.71)">
<path d="M759.587,400L759.587,175L859.587,275L859.587,362.5C859.587,383.197 842.783,400 822.087,400L759.587,400Z" fill="cuu"/>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+45
View File
@@ -0,0 +1,45 @@
<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(3.75rem, 5vw + 1rem, 6rem);
--fs-600: 1.5rem;
--fs-500: 1.25rem;
--fs-400: 1rem;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html,
body {
margin: 0;
width: 100%;
height: 100%;
}
body {
background-color: var(--clr-ts-dark);
color: var(--clr-ts-light);
font-family: var(--ff-body);
font-size: var(--fs-400);
padding: clamp(2rem, 5vw + 1rem, 3.75rem);
}
h1 {
font-family: var(--ff-heading);
font-size: var(--fs-xl);
}
</style>
+65
View File
@@ -0,0 +1,65 @@
---
import { Image } from "astro:assets";
import { getRelativeLocaleUrl } from "astro:i18n";
import logo from "../assets/ci/icon-only.svg";
const isEnglish = Astro.currentLocale === "en";
---
<header>
<div>
<Image
class="icon"
src={logo}
loading="eager"
alt="Tideshift Digital logo mark"
/>
</div>
<nav>
<ul>
<li>
<a
class:list={[{ active: isEnglish }]}
href={getRelativeLocaleUrl("en", "")}>EN</a
>
</li>
<li>
<a
class:list={[{ active: !isEnglish }]}
href={getRelativeLocaleUrl("de", "")}>DE</a
>
</li>
</ul>
</nav>
</header>
<style>
header {
display: flex;
justify-content: space-between;
border: 1px solid var(--clr-ts-warm-red);
}
.icon {
width: 60px;
height: auto;
}
ul {
display: flex;
list-style: none;
gap: 1em;
}
ul {
a {
color: var(--clr-ts-light);
text-decoration: none;
&.active {
text-decoration: underline;
}
}
}
</style>
+38
View File
@@ -0,0 +1,38 @@
---
import { Image } from "astro:assets";
import Logo from "../assets/ci/icon-only.svg";
---
<div>
<div>
<h1 class="title">Smart websites for bold ideas.</h1>
<p>
From concept to launch — websites, apps, and digital solutions that
work hard, so you can play hard. Whether it's a personal site, an
e-commerce platform, or a custom web app, I bring your ideas to
life.
</p>
</div>
<Logo class="logo" />
</div>
<style>
h1 {
max-width: 16ch;
font-weight: 700;
text-transform: uppercase;
line-height: 1.1;
letter-spacing: 0.0333em;
}
p {
max-width: 50ch;
line-height: 1.4;
}
.logo {
fill: var(--clr-ts-dark-logo) !important;
}
</style>
+2
View File
@@ -40,6 +40,8 @@ import background from '../assets/background.svg';
improvements in Astro 5.0
</p>
</a>
</div>
<style>
+9 -4
View File
@@ -1,3 +1,8 @@
---
import GlobalStyles from "../components/GlobalStyles.astro";
import Header from "../components/Header.astro";
---
<!doctype html>
<html lang="en">
<head>
@@ -5,18 +10,18 @@
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>Astro Basics</title>
<title>Tideshift Digital - Building the Web on Your Terms</title>
</head>
<body>
<GlobalStyles />
<Header />
<slot />
</body>
</html>
<style>
html,
body {
margin: 0;
width: 100%;
height: 100%;
height: 100dvh;
}
</style>
+10
View File
@@ -0,0 +1,10 @@
---
import Layout from '../../layouts/Layout.astro';
// Welcome to Astro! Wondering what to do next? Check out the Astro documentation at https://docs.astro.build
// Don't want to use any of this? Delete everything in this file, the `assets`, `components`, and `layouts` directories, and start fresh.
---
<Layout>
<h1>Hallo miteinander!</h1>
</Layout>
+3 -7
View File
@@ -1,12 +1,8 @@
---
import Welcome from '../components/Welcome.astro';
import Layout from '../layouts/Layout.astro';
// Welcome to Astro! Wondering what to do next? Check out the Astro documentation at https://docs.astro.build
// Don't want to use any of this? Delete everything in this file, the `assets`, `components`, and `layouts` directories, and start fresh.
// TEST for workflow
import Hero from "../components/Hero.astro";
import Layout from "../layouts/Layout.astro";
---
<Layout>
<Welcome />
<Hero />
</Layout>
+52
View File
@@ -0,0 +1,52 @@
/**
* @license
*
* Font Family: Archivo
* Designed by: Omnibus-Type
* URL: https://www.fontshare.com/fonts/archivo
* © 2025 Indian Type Foundry
*
* Archivo Light
* Archivo Regular
* Archivo Italic
* Archivo SemiBold
*
*/
@font-face {
font-family: 'Archivo';
src: url('../assets/fonts/archivo/Archivo-Light.woff2') format('woff2'),
url('../assets/fonts/archivo/Archivo-Light.woff') format('woff'),
url('../assets/fonts/archivo/Archivo-Light.ttf') format('truetype');
font-weight: 300;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Archivo';
src: url('../assets/fonts/archivo/Archivo-Regular.woff2') format('woff2'),
url('../assets/fonts/archivo/Archivo-Regular.woff') format('woff'),
url('../assets/fonts/archivo/Archivo-Regular.ttf') format('truetype');
font-weight: 400;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Archivo';
src: url('../assets/fonts/archivo/Archivo-Italic.woff2') format('woff2'),
url('../assets/fonts/archivo/Archivo-Italic.woff') format('woff'),
url('../assets/fonts/archivo/Archivo-Italic.ttf') format('truetype');
font-weight: 400;
font-display: swap;
font-style: italic;
}
@font-face {
font-family: 'Archivo';
src: url('../assets/fonts/archivo/Archivo-SemiBold.woff2') format('woff2'),
url('../assets/fonts/archivo/Archivo-SemiBold.woff') format('woff'),
url('../assets/fonts/archivo/Archivo-SemiBold.ttf') format('truetype');
font-weight: 600;
font-display: swap;
font-style: normal;
}
+42
View File
@@ -0,0 +1,42 @@
/**
* @license
*
* Font Family: Clash Display
* Designed by: Indian Type Foundry
* URL: https://www.fontshare.com/fonts/clash-display
* © 2025 Indian Type Foundry
*
* Clash Display Regular
* Clash Display Semibold
* Clash Display Bold
*
*/
@font-face {
font-family: 'Clash Display';
src: url('../assets/fonts/clash/ClashDisplay-Regular.woff2') format('woff2'),
url('../assets/fonts/clash/ClashDisplay-Regular.woff') format('woff'),
url('../assets/fonts/clash/ClashDisplay-Regular.ttf') format('truetype');
font-weight: 400;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Clash Display';
src: url('../assets/fonts/clash/ClashDisplay-Semibold.woff2') format('woff2'),
url('../assets/fonts/clash/ClashDisplay-Semibold.woff') format('woff'),
url('../assets/fonts/clash/ClashDisplay-Semibold.ttf') format('truetype');
font-weight: 600;
font-display: swap;
font-style: normal;
}
@font-face {
font-family: 'Clash Display';
src: url('../assets/fonts/clash/ClashDisplay-Bold.woff2') format('woff2'),
url('../assets/fonts/clash/ClashDisplay-Bold.woff') format('woff'),
url('../assets/fonts/clash/ClashDisplay-Bold.ttf') format('truetype');
font-weight: 700;
font-display: swap;
font-style: normal;
}
+32
View File
@@ -0,0 +1,32 @@
@import url('./archivo.css');
@import url('./clash-display.css');
:root {
--clr-ts-warm-red: hsl(3, 94%, 60%);
--clr-ts-dark: hsl(7, 18%, 10%);
--clr-ts-light: hsl(349, 57%, 91%);
--ff-heading: "Clash Display", sans-serif;
--ff-body: "Archivo", sans-serif;
--fs-xl: clamp(3.75rem, 12vw + 1rem, 6rem);
--fs-600: 1.5rem;
--fs-500: 1.25rem;
--fs-400: 1rem;
}
html,
body {
margin: 0;
width: 100%;
height: 100%;
background-color: var(--clr-ts-dark);
color: var(--clr-ts-light);
font-family: var(--ff-body);
font-size: var(--fs-400);
}
h1 {
font-family: var(--ff-heading);
font-size: var(--fs-xl);
}
+10 -2
View File
@@ -1,5 +1,13 @@
{
"extends": "astro/tsconfigs/strict",
"include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist"]
"include": [
".astro/types.d.ts",
"**/*"
],
"exclude": [
"dist"
],
"compilerOptions": {
"jsx": "preserve"
}
}