From 4ba339984d239180a526a5ae8ffbb558f1b5642a Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 12 Sep 2024 13:11:16 +0000 Subject: Updated the main page and page structures --- package-lock.json | 7 +++++ package.json | 1 + src/components/PostElement.astro | 46 +++++++++++++++++++++++++++++ src/layouts/BaseLayout.astro | 4 +-- src/pages/blog/[...slug].astro | 34 +++++++++++++--------- src/pages/index.astro | 13 +++------ src/scss/_framework.scss | 63 ++++++++++++++++++++++++---------------- src/scss/_navbar.scss | 10 +++---- src/scss/_variables.scss | 30 +++++-------------- 9 files changed, 132 insertions(+), 76 deletions(-) create mode 100644 src/components/PostElement.astro diff --git a/package-lock.json b/package-lock.json index 5cab963..e7e2583 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "astro": "^4.15.4", "autoprefixer": "^10.4.20", "cssnano": "^7.0.6", + "dayjs": "^1.11.13", "mdast-util-to-string": "^4.0.0", "reading-time": "^1.5.0", "sass": "^1.78.0", @@ -2894,6 +2895,12 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", diff --git a/package.json b/package.json index c7e0958..b90156a 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "astro": "^4.15.4", "autoprefixer": "^10.4.20", "cssnano": "^7.0.6", + "dayjs": "^1.11.13", "mdast-util-to-string": "^4.0.0", "reading-time": "^1.5.0", "sass": "^1.78.0", diff --git a/src/components/PostElement.astro b/src/components/PostElement.astro new file mode 100644 index 0000000..889cc47 --- /dev/null +++ b/src/components/PostElement.astro @@ -0,0 +1,46 @@ +--- +import dayjs from "dayjs"; + +const { post } = Astro.props; +--- + + + +
+

{post.data.title}

+
+ + +
+

{post.data.description}

+ Read More +
diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index af0d20e..54c9128 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -11,8 +11,8 @@ const { title, description } = Astro.props;
-
+
-
+ diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index f99ef21..4ecb1e1 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -23,17 +23,25 @@ const { Content, remarkPluginFrontmatter } = await post.render(); -
-

{post.data.title}

-

- - Posted - -  by {post.data.author} ‐ - {remarkPluginFrontmatter.minutesRead} - -

-
- - +
+
+

{post.data.title}

+

+ + Posted + +  by {post.data.author} ‐ + {remarkPluginFrontmatter.minutesRead} + +

+
+ +
+ +
+ +
+ +
+
diff --git a/src/pages/index.astro b/src/pages/index.astro index c4f5577..4380bbc 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,18 +1,13 @@ --- import { getCollection } from "astro:content"; +import Element from "../components/PostElement.astro"; import Layout from "../layouts/PageLayout.astro"; const posts = await getCollection("blog"); --- - +
+ {posts.map((post) => )} +
diff --git a/src/scss/_framework.scss b/src/scss/_framework.scss index 0b80359..e1e0c13 100644 --- a/src/scss/_framework.scss +++ b/src/scss/_framework.scss @@ -6,16 +6,29 @@ } html { - font-family: $font-family-base; + font-family: + "Jost", + -apple-system, + blinkmacsystemfont, + "Segoe UI", + roboto, + "Helvetica Neue", + arial, + "Noto Sans", + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji"; font-size: 62.5%; min-height: 100%; overflow-y: scroll; } body { - background-color: $color-bg; - color: $color-text; - font-size: $font-size-base; + background-color: $colorBg; + color: $colorText; + font-size: $fontSizeBase; font-synthesis: weight style small-caps; font-weight: 400; line-height: 1.5; @@ -28,7 +41,7 @@ body { @media (width <=684px) { body { - font-size: $font-size-base * 0.85; + font-size: $fontSizeBase * 0.85; padding: 4em 1em 2em; } } @@ -84,16 +97,16 @@ sup { } hr { - border-color: $color-blossom; + border-color: $colorBlossom; } a { - color: $color-blossom; + color: $colorBlossom; text-decoration: inherit; transition: color 0.25s; &:visited { - color: $color-blossom; + color: $colorBlossom; } &:active, @@ -114,8 +127,8 @@ li { } blockquote { - background-color: $color-bg-alt; - border-left: 5px solid $color-blossom; + background-color: $colorBgAlt; + border-left: 5px solid $colorBlossom; margin-bottom: 2.5rem; margin-left: 0; margin-right: 0; @@ -136,9 +149,9 @@ video { } pre { - background-color: $color-bg-alt; + background-color: $colorBgAlt; border-radius: 4px; - border: 1px solid $color-bg-alt; + border: 1px solid $colorBgAlt; display: block; font-size: 0.9em; margin-bottom: 2.5rem; @@ -150,7 +163,7 @@ pre { code, kbd, samp { - background-color: $color-bg-code; + background-color: $colorBgCode; border-radius: 4px; font-size: 0.9em; padding: 0 0.2em; @@ -172,7 +185,7 @@ table { td, th { - border-bottom: 1px dashed $color-blossom; + border-bottom: 1px dashed $colorBlossom; padding: 0.5em; } @@ -185,11 +198,11 @@ button, input[type="submit"], input[type="reset"], input[type="button"] { - background-color: $color-blossom; - border: 1px solid $color-blossom; + background-color: $colorBlossom; + border: 1px solid $colorBlossom; border-radius: 1px; box-sizing: border-box; - color: $color-bg; + color: $colorBg; cursor: pointer; display: inline-block; padding: 5px 10px; @@ -204,9 +217,9 @@ input[type="button"] { &:focus:enabled, &:hover:enabled { - background-color: $color-fade; - border-color: $color-fade; - color: $color-bg; + background-color: $colorFade; + border-color: $colorFade; + color: $colorBg; outline: 0; } } @@ -214,23 +227,23 @@ input[type="button"] { textarea, select, input { - background-color: $color-bg-alt; - border: 1px solid $color-bg-alt; + background-color: $colorBgAlt; + border: 1px solid $colorBgAlt; border-radius: 4px; box-shadow: none; box-sizing: border-box; - color: $color-text; + color: $colorText; margin-bottom: 10px; padding: 6px 10px; &:focus { - border: 1px solid $color-blossom; + border: 1px solid $colorBlossom; outline: 0; } } input[type="checkbox"]:focus { - outline: 1px dotted $color-blossom; + outline: 1px dotted $colorBlossom; } label, diff --git a/src/scss/_navbar.scss b/src/scss/_navbar.scss index ee07ae4..9dea596 100644 --- a/src/scss/_navbar.scss +++ b/src/scss/_navbar.scss @@ -1,7 +1,7 @@ header { - background-color: $color-bg; - border-bottom: 1px solid $color-header; - box-shadow: 0 5px 5px $color-bg; + background-color: $colorBg; + border-bottom: 1px solid $colorHeader; + box-shadow: 0 5px 5px $colorBg; left: 0; line-height: 3.5em; opacity: 0.975; @@ -17,11 +17,11 @@ nav { text-align: right; a { - color: $color-text; + color: $colorText; padding: 0 1em; &:visited { - color: $color-text; + color: $colorText; } } } diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 9c69c8f..5b65f2a 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -1,22 +1,8 @@ -$color-bg: #212529; -$color-bg-alt: hwb(0deg 0% 100% / 20%); -$color-bg-code: #3b3d42; -$color-blossom: #6da13f; -$color-fade: #598332; -$color-header: #1b1f22; -$color-text: #dee2e6; -$font-family-base: - "Jost", - -apple-system, - blinkmacsystemfont, - "Segoe UI", - roboto, - "Helvetica Neue", - arial, - "Noto Sans", - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol", - "Noto Color Emoji"; -$font-size-base: 1.8rem; +$colorBg: #212529; +$colorBgAlt: hwb(0deg 0% 100% / 20%); +$colorBgCode: #3b3d42; +$colorBlossom: #6da13f; +$colorFade: #598332; +$colorHeader: #1b1f22; +$colorText: #dee2e6; +$fontSizeBase: 1.8rem; -- cgit v1.2.3