aboutsummaryrefslogtreecommitdiff
path: root/apps/website/src/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/website/src/layouts')
-rw-r--r--apps/website/src/layouts/BlogPost.astro35
-rw-r--r--apps/website/src/layouts/Layout.astro48
2 files changed, 62 insertions, 21 deletions
diff --git a/apps/website/src/layouts/BlogPost.astro b/apps/website/src/layouts/BlogPost.astro
new file mode 100644
index 0000000..188aae1
--- /dev/null
+++ b/apps/website/src/layouts/BlogPost.astro
@@ -0,0 +1,35 @@
+---
+import FormattedDate from '@components/base/FormattedDate.astro';
+import '@styles/blog.css';
+import type { CollectionEntry } from 'astro:content';
+import Layout from './Layout.astro';
+
+type Props = CollectionEntry<'blog'>['data'];
+
+const { title, description, pubDate, updatedDate, heroImage } = Astro.props;
+---
+
+<Layout title={title} description={description}>
+ <article>
+ <div class="hero-image">
+ {heroImage && <img width={1020} height={510} src={heroImage} alt="Hero Image"/>}
+ </div>
+ <div class="prose">
+ <div class="title">
+ <div class="date">
+ <FormattedDate date={pubDate}/>
+ {
+ updatedDate && (
+ <div class="last-updated-on">
+ Last updated on <FormattedDate date={updatedDate}/>
+ </div>
+ )
+ }
+ </div>
+ <h1>{title}</h1>
+ <hr/>
+ </div>
+ <slot/>
+ </div>
+ </article>
+</Layout>
diff --git a/apps/website/src/layouts/Layout.astro b/apps/website/src/layouts/Layout.astro
index 298071d..f157e73 100644
--- a/apps/website/src/layouts/Layout.astro
+++ b/apps/website/src/layouts/Layout.astro
@@ -1,41 +1,47 @@
---
-import "../styles/global.css";
-import Navbar from "../components/base/Navbar.astro";
-import Favicon from "/media/polyfrost/minimal_bg.svg?url";
-import Footer from "@components/base/Footer.astro";
+import Footer from '@components/base/Footer.astro';
+import Favicon from '/media/polyfrost/minimal_bg.svg?url';
+import Navbar from '../components/base/navbar/Navbar.astro';
+import '../styles/global.css';
interface Props {
- title?: string;
- favicon?: string;
+ title?: string
+ description?: string
+ favicon?: string
}
const {
- title = 'Polyfrost',
- favicon = Favicon
+ title = 'Polyfrost',
+ description = 'Official website for Polyfrost.',
+ favicon = Favicon,
} = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8" />
- <meta name="description" content="Official website for Polyfrost." />
- <meta name="viewport" content="width=device-width" />
- <link rel="icon" type="image/svg+xml" href={favicon} />
- <meta name="generator" content={Astro.generator} />
+ <meta charset="UTF-8"/>
+ <meta name="description" content={description}/>
+ <meta name="viewport" content="width=device-width"/>
+ <link rel="icon" type="image/svg+xml" href={favicon}/>
+ <meta name="generator" content={Astro.generator}/>
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
+ <link rel="preconnect" href="https://fonts.googleapis.com"/>
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
+ <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet"/>
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital@0;1&display=swap" rel="stylesheet"/>
<title>{title}</title>
</head>
- <body class="bg-gray-50">
- <Navbar />
- <main class="min-h-screen h-auto">
- <slot />
+ <body class="bg-gray-50 overflow-x-hidden">
+
+ <Navbar />
+
+ <main class="min-h-screen h-auto flex flex-col gap-40" >
+ <slot/>
+ <Footer />
</main>
- <Footer />
+
</body>
</html>