diff --git a/package-lock.json b/package-lock.json index 0300c1b..1cacee6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,9 @@ "astro": "^6.1.2", "tailwindcss": "^4.2.2" }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.19" + }, "engines": { "node": ">=22.12.0" } @@ -1800,6 +1803,19 @@ "node": ">= 20" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, "node_modules/@tailwindcss/vite": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", @@ -2203,6 +2219,19 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csso": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", @@ -4242,6 +4271,20 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -5085,6 +5128,13 @@ } } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", diff --git a/package.json b/package.json index f82f799..acd7e88 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,8 @@ "@tailwindcss/vite": "^4.2.2", "astro": "^6.1.2", "tailwindcss": "^4.2.2" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.19" } } diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..b8bcb75 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,21 @@ +--- +// src/components/Footer.astro +const currentYear = new Date().getFullYear(); +const startYear = 2026; +const displayYear = currentYear > startYear ? `${startYear}–${currentYear}` : startYear; +--- + + \ No newline at end of file diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..dd33d39 --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,36 @@ +--- +// src/components/Header.astro +import Logo from './Logo.astro'; + +// Optional: Logik um den aktiven Link zu erkennen +const pathname = new URL(Astro.request.url).pathname; +const currentPath = pathname.slice(1); +--- + +
+
+ + + + +
+
\ No newline at end of file diff --git a/src/components/Logo.astro b/src/components/Logo.astro new file mode 100644 index 0000000..c320200 --- /dev/null +++ b/src/components/Logo.astro @@ -0,0 +1,18 @@ +--- +// src/components/Logo.astro +const { class: className } = Astro.props; +--- + + + + + diff --git a/src/layouts/MainLayout.astro b/src/layouts/MainLayout.astro new file mode 100644 index 0000000..bc016a5 --- /dev/null +++ b/src/layouts/MainLayout.astro @@ -0,0 +1,35 @@ +--- +// src/layouts/MainLayout.astro +import Header from "../components/Header.astro"; +import Footer from "../components/Footer.astro"; +import '../styles/global.css'; + +interface Props { + title?: string; + description?: string; +} + +const { + title = "iten.pro | Engineering", + description = "Portfolio und Projekte", +} = Astro.props; +--- + + + + + + + {title} + + + +
+ +
+ +
+ +