From 9202b7fe920fbe32a0ee3afd7c220d2f5af34d2a Mon Sep 17 00:00:00 2001 From: daudix-UFO Date: Wed, 22 Nov 2023 03:29:55 +0300 Subject: [PATCH] feat: Style improvements, use Source Code Pro for monospace, update Inter to 4.0, pill-like nav on desktop, color changes --- README.md | 2 +- content/_index.md | 19 ++- content/blog/ipsum/index.md | 15 ++ content/blog/lorem/index.md | 15 ++ sass/_comments.scss | 1 + sass/_fonts.scss | 45 +++--- sass/_main.scss | 166 +++++++++++++--------- sass/_variables.scss | 14 +- static/fonts/inter-variable-italic.ttf | Bin 0 -> 894460 bytes static/fonts/inter-variable-italic.woff2 | Bin 0 -> 380904 bytes static/fonts/inter-variable.ttf | Bin 0 -> 862936 bytes static/fonts/inter-variable.woff2 | Bin 0 -> 345588 bytes static/fonts/inter.woff2 | Bin 326108 -> 0 bytes static/fonts/jetbrains-mono-italic.woff2 | Bin 122364 -> 0 bytes static/fonts/jetbrains-mono.woff2 | Bin 113476 -> 0 bytes static/fonts/source-code-vf-italic.ttf | Bin 0 -> 175080 bytes static/fonts/source-code-vf-italic.woff2 | Bin 0 -> 75316 bytes static/fonts/source-code-vf-upright.ttf | Bin 0 -> 212692 bytes static/fonts/source-code-vf-upright.woff2 | Bin 0 -> 90124 bytes templates/404.html | 2 +- templates/blog.html | 8 +- templates/blog_list.html | 7 +- templates/taxonomy_list.html | 2 +- templates/taxonomy_single.html | 6 +- 24 files changed, 194 insertions(+), 108 deletions(-) create mode 100644 content/blog/ipsum/index.md create mode 100644 content/blog/lorem/index.md create mode 100644 static/fonts/inter-variable-italic.ttf create mode 100644 static/fonts/inter-variable-italic.woff2 create mode 100644 static/fonts/inter-variable.ttf create mode 100644 static/fonts/inter-variable.woff2 delete mode 100644 static/fonts/inter.woff2 delete mode 100644 static/fonts/jetbrains-mono-italic.woff2 delete mode 100644 static/fonts/jetbrains-mono.woff2 create mode 100644 static/fonts/source-code-vf-italic.ttf create mode 100644 static/fonts/source-code-vf-italic.woff2 create mode 100644 static/fonts/source-code-vf-upright.ttf create mode 100644 static/fonts/source-code-vf-upright.woff2 diff --git a/README.md b/README.md index e725171..7076989 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ The main repo is https://git.exozy.me/daudix/duckquill, but since only exozy.me - [Cassidy James](https://cassidyjames.com) for the [Mastodon-powered Comments](https://cassidyjames.com/blog/fediverse-blog-comments-mastodon) - [Mehdi Merah](https://mehdi.cc) for the [CSS Scanlines](https://codepen.io/meduzen/pen/zxbwRV) - [Bootstrap team](https://getbootstrap.com/docs/5.3/about/team/) for the [Bootstrap Icons](https://icons.getbootstrap.com) +- [Adobe Fonts](https://github.com/adobe-fonts) for the [Source Code Pro](https://github.com/adobe-fonts/source-code-pro) font - [Rasmus](https://rsms.me) for the [Inter](https://rsms.me/inter/) font -- [JetBrains](https://www.jetbrains.com) for the [JetBrains Mono](https://www.jetbrains.com/lp/mono/) font - dwb, ejm and jgs for the ASCII art - Everyone who supported me and said good stuff <3 diff --git a/content/_index.md b/content/_index.md index b39a142..96240b7 100644 --- a/content/_index.md +++ b/content/_index.md @@ -17,11 +17,11 @@ jgs~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~ Edit a bit of metadata and tweak some of the included graphics and have a blog up in minutes! -- Pretty, yet lightweight. No JavaScript are used. +- Pretty, yet lightweight. No JavaScript is used. - For a very pleasant look, the colors are tinted with the primary color. - Proper favicon for modern browsers and Apple device icons. - Mastodon, Lemmy and other social media meta cards for easy sharing. Try [Share Preview](https://apps.gnome.org/SharePreview/) to test. -- Local copy of the amazing [Inter](https://rsms.me/inter/) and [JetBrains Mono](https://www.jetbrains.com/lp/mono/) fonts, plus [Bootstrap Icons](https://icons.getbootstrap.com). No slowdowns pulling from external hosting. +- Local copy of the amazing [Inter](https://rsms.me/inter/) and [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/) fonts, plus [Bootstrap Icons](https://icons.getbootstrap.com). No slowdowns pulling from external hosting. - Mobile friendly, with proper dark variant. - [Mastodon-powered comments](https://cassidyjames.com/blog/fediverse-blog-comments-mastodon). Comment using any ActivityPub service by replying to Mastodon post. @@ -85,7 +85,7 @@ First, change the primary color in `config.toml`: ```toml [extra] -primary_color = "#HEX_COLOR_CODE" +primary_color = "COLOR_CODE" ``` Then, add `custom.css` to additional stylesheets. @@ -102,17 +102,20 @@ Then, paste the following code inside `sass/custom.scss` (inside your site, not ```scss @use "sass:color"; -$primary-color: #HEX_COLOR_CODE; +$primary-color: COLOR_CODE; $primary-color-alpha: color.scale($primary-color, $alpha: -80%); -$bg-color-l: color.mix($primary-color, rgb(250, 250, 250), 10%); -$bg-color-d: color.mix($primary-color, rgb(11, 11, 11), 5%); +$bg-color-l: color.scale($primary-color, $lightness: 80%); +$bg-color-d: color.scale($primary-color, $lightness: -90%, $saturation: -50%); $crt-bg: radial-gradient( color.scale($primary-color, $lightness: -80%), color.scale($primary-color, $lightness: -90%) ); +$nav-bg-l: color.scale($bg-color-l, $alpha: -20%, $lightness: 50%); +$nav-bg-d: color.scale($bg-color-d, $alpha: -20%, $lightness: 5%, $saturation: -50%); + $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%), 0 2px 6px 2px color.scale($primary-color, $alpha: -95%), 0 4px 24px 4px color.scale($primary-color, $alpha: -90%); @@ -120,6 +123,7 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%), :root { --bg-color: #{$bg-color-l}; --crt-bg: #{$crt-bg}; + --nav-bg: #{$nav-bg-l}; --primary-color-alpha: #{$primary-color-alpha}; --primary-color: #{$primary-color}; --glow: #{$glow}; @@ -128,6 +132,7 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%), @media (prefers-color-scheme: dark) { :root { --bg-color: #{$bg-color-d}; + --nav-bg: #{$nav-bg-d}; } } ``` @@ -156,7 +161,7 @@ The main repo is [git.exozy.me/daudix/duckquill](https://git.exozy.me/daudix/duc - [Cassidy James](https://cassidyjames.com) for the [Mastodon-powered Comments](https://cassidyjames.com/blog/fediverse-blog-comments-mastodon) - [Mehdi Merah](https://mehdi.cc) for the [CSS Scanlines](https://codepen.io/meduzen/pen/zxbwRV) - [Bootstrap team](https://getbootstrap.com/docs/5.3/about/team/) for the [Bootstrap Icons](https://icons.getbootstrap.com) +- [Adobe Fonts](https://github.com/adobe-fonts) for the [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/) font - [Rasmus](https://rsms.me) for the [Inter](https://rsms.me/inter/) font -- [JetBrains](https://www.jetbrains.com) for the [JetBrains Mono](https://www.jetbrains.com/lp/mono/) font - dwb, ejm and jgs for the ASCII art - Everyone who supported me and said good stuff <3 diff --git a/content/blog/ipsum/index.md b/content/blog/ipsum/index.md new file mode 100644 index 0000000..38940c8 --- /dev/null +++ b/content/blog/ipsum/index.md @@ -0,0 +1,15 @@ ++++ +title = "Ipsum" +description = "Lorem ipsum dolor sit amet." +date = 1970-01-02 +[taxonomies] +tags = ["Lorem", "Ipsum"] +[extra] +toc = false ++++ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea. + +Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est. + +Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea. \ No newline at end of file diff --git a/content/blog/lorem/index.md b/content/blog/lorem/index.md new file mode 100644 index 0000000..fbd8b94 --- /dev/null +++ b/content/blog/lorem/index.md @@ -0,0 +1,15 @@ ++++ +title = "Lorem" +description = "Lorem ipsum dolor sit amet." +date = 1970-01-01 +[taxonomies] +tags = ["Lorem", "Ipsum"] +[extra] +toc = false ++++ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea. + +Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est. + +Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea. \ No newline at end of file diff --git a/sass/_comments.scss b/sass/_comments.scss index 94adafd..dfc6d9a 100644 --- a/sass/_comments.scss +++ b/sass/_comments.scss @@ -62,6 +62,7 @@ section#comments { font-size: 0.8rem; font-weight: normal; padding: 0.25rem 0.75rem; + transition: var(--transition); &:hover { opacity: 0.8; diff --git a/sass/_fonts.scss b/sass/_fonts.scss index eb28383..38b74fe 100644 --- a/sass/_fonts.scss +++ b/sass/_fonts.scss @@ -1,23 +1,34 @@ @font-face { - font-family: "Inter"; - font-weight: 100 900; - font-display: swap; - font-style: oblique italic 0deg 10deg; - src: url("./fonts/inter.woff2?v=4.0") format("woff2"); -} - -@font-face { - font-family: "JetBrains Mono"; - font-weight: 100 900; - font-display: swap; + font-family: "Inter Variable"; font-style: normal; - src: url("./fonts/jetbrains-mono.woff2?v=2.304") format("woff2"); + font-weight: 100 900; + font-display: swap; + src: url("./fonts/inter-variable.woff2?v=4.0") format("woff2"), + url("./fonts/inter-variable.ttf?v=4.0") format("truetype"); +} +@font-face { + font-family: "Inter Variable"; + font-style: italic; + font-weight: 100 900; + font-display: swap; + src: url("./fonts/inter-variable-italic.woff2?v=4.0") format("woff2"), + url("./fonts/inter-variable-italic.ttf?v=4.0") format("truetype"); } @font-face { - font-family: "JetBrains Mono"; - font-weight: 100 900; - font-display: swap; - font-style: italic; - src: url("./fonts/jetbrains-mono-italic.woff2?v=2.304") format("woff2"); + font-family: "Source Code VF"; + font-style: normal; + font-weight: 200 900; + font-stretch: normal; + src: url("./fonts/source-code-vf-upright.woff2?v=1.026R") format("woff2"), + url("./fonts/source-code-vf-upright.ttf?v=1.026R") format("truetype"); +} + +@font-face { + font-family: "Source Code VF"; + font-style: italic; + font-weight: 200 900; + font-stretch: normal; + src: url("./fonts/source-code-vf-italic.woff2?v=1.026R") format("woff2"), + url("./fonts/source-code-vf-italic.ttf?v=1.026R") format("truetype"); } diff --git a/sass/_main.scss b/sass/_main.scss index 54d0e47..be5f736 100644 --- a/sass/_main.scss +++ b/sass/_main.scss @@ -9,6 +9,7 @@ html { scroll-behavior: smooth; scrollbar-color: var(--primary-color) transparent; accent-color: var(--primary-color); + overflow-wrap: break-word; } // smaller font size on mobile @@ -25,7 +26,7 @@ body { } body { - font-family: "Inter", sans-serif; + font-family: "Inter Variable", sans-serif; font-weight: 400; line-height: 1.6; color: var(--fg-color); @@ -58,7 +59,7 @@ body { // LAYOUT .container { - width: 80%; + width: 80vw; margin-left: auto; margin-right: auto; max-width: var(--content-width); @@ -66,7 +67,7 @@ body { @media only screen and (max-device-width: 480px) { .container { - width: 90%; + width: 90vw; } } @@ -99,7 +100,7 @@ h6 { h1 { letter-spacing: -0.08rem; font-weight: 900; - font-size: 2.4rem; + font-size: 3rem; a { font-weight: 900; @@ -112,17 +113,35 @@ h1 { } h2 { - font-size: 1.4rem; + font-size: 2.4rem; + letter-spacing: -0.04rem; +} + +h3 { + font-size: 1.5rem; +} + +h4 { + font-size: 1.25rem; +} + +h5 { + font-size: 1rem; +} + +h6 { + font-size: 0.75rem; } a { - font-weight: 600; - text-decoration: none; color: var(--primary-color); cursor: pointer; + font-weight: 600; + text-decoration: none; + text-decoration: underline; &:hover { - text-decoration: underline; + text-decoration: underline wavy; } } @@ -153,18 +172,16 @@ dl { } hr { - background-color: var(--primary-color); - height: 0.3rem; - margin: 3rem auto 4rem; + border: 0.125rem solid var(--fg05); + margin: 3rem auto; width: 40%; - border: 0; } blockquote { padding: 0 1rem; margin-left: 0; color: var(--fg50); - border-left: 0.3rem solid var(--primary-color); + border-left: 0.25rem solid var(--primary-color); > :first-child { margin-top: 0; @@ -185,34 +202,19 @@ abbr { text-decoration: underline dotted; } -kbd { - display: inline-block; - line-height: normal; - font-family: "JetBrains Mono", monospace; - padding: 2px 6px; - border-radius: var(--rounded-corner-small); - background-color: var(--fg05); - box-shadow: inset 0 -2px 0 var(--fg09), 0 -1px 0 var(--fg09); - cursor: pointer; - - // small nice thingy, keys can be pressed! - &:active { - background-color: var(--fg09); - box-shadow: inset 0 1px 0 var(--fg09); - transform: translateY(2px); - } +// CODE +pre, +code { + font-family: "Source Code VF", monospace; } -// CODE -code { - font-family: "JetBrains Mono", monospace; +code:not(pre code) { padding: 2px 6px; border-radius: var(--rounded-corner-small); background-color: var(--fg05); color: var(--red-fg); } -// apply monospace font to everything inside the
 pre {
   line-height: normal; // unset line height
   padding: 1rem;
@@ -222,17 +224,6 @@ pre {
   box-shadow: var(--shadow);
   overflow: auto;
 
-  & * {
-    font-family: "JetBrains Mono", monospace;
-  }
-
-  code {
-    background-color: unset;
-    border-radius: unset;
-    color: unset;
-    padding: unset;
-  }
-
   table td {
     padding: 0;
     border: none;
@@ -263,6 +254,23 @@ pre {
   }
 }
 
+kbd {
+  display: inline-block;
+  line-height: normal;
+  padding: 2px 6px;
+  border-radius: var(--rounded-corner-small);
+  background-color: var(--fg05);
+  box-shadow: inset 0 -2px 0 var(--fg09), 0 -1px 0 var(--fg09);
+  cursor: pointer;
+
+  // small nice thingy, keys can be pressed!
+  &:active {
+    background-color: var(--fg09);
+    box-shadow: inset 0 1px 0 var(--fg09);
+    transform: translateY(2px);
+  }
+}
+
 mark {
   padding: 2px 6px;
   border-radius: var(--rounded-corner-small);
@@ -293,13 +301,8 @@ details {
 // TABLES
 table {
   display: block;
+  overflow-x: auto;
   border-collapse: collapse;
-  border-spacing: 0;
-  max-width: 100vw;
-  overflow: auto;
-  word-break: normal;
-  word-break: keep-all; // for Firefox to horizontally scroll wider tables.
-  -webkit-overflow-scrolling: touch;
 
   th {
     font-weight: bold;
@@ -360,12 +363,12 @@ img {
 // NAVBAR
 .nav {
   overflow: auto;
-  width: 80%;
+  width: 80vw;
   max-width: var(--content-width);
   margin: 1rem auto;
-  box-shadow: var(--shadow);
+  box-shadow: 0px 12px 24px -16px rgba(0, 0, 0, 0.5);
   border-radius: var(--rounded-corner-big);
-  background-color: var(--fg05);
+  background-color: var(--nav-bg);
   backdrop-filter: blur(24px);
   -webkit-backdrop-filter: blur(24px);
   position: sticky;
@@ -400,8 +403,7 @@ img {
     transition: var(--transition);
     text-decoration: none;
 
-    &:hover,
-    &:focus {
+    &:hover {
       background-color: var(--fg05);
       color: var(--primary-color);
     }
@@ -409,13 +411,15 @@ img {
 
   @media only screen and (max-device-width: 480px) {
     & {
-      width: 90%;
+      width: 90vw;
       position: static;
     }
   }
 
   @media (min-width: 600px) {
     & {
+      border-radius: 9999px;
+
       &-container {
         text-align: left;
       }
@@ -425,6 +429,10 @@ img {
         position: absolute;
         right: 0;
       }
+
+      a {
+        border-radius: 9999px;
+      }
     }
   }
 }
@@ -460,12 +468,19 @@ img {
 }
 
 .inline-button {
+  background-color: var(--fg05);
+  border-radius: var(--rounded-corner);
+  color: var(--fg-color);
   display: inline-block;
   font-size: 0.9rem;
   padding: 0.4rem 1rem;
-  border-radius: var(--rounded-corner);
-  background-color: var(--fg05);
-  color: var(--fg-color);
+  text-decoration: none;
+  transition: var(--transition);
+}
+
+.inline-button:hover {
+  background-color: var(--fg09);
+  text-decoration: none;
 }
 
 // CRT
@@ -509,20 +524,22 @@ img {
 // STATEMENTS
 .statement-container {
   margin: 1rem 0 1rem;
-  padding: 1rem 1rem;
+  padding: 1rem 1rem 0.5rem 1rem;
   border-radius: var(--rounded-corner);
   box-shadow: var(--shadow);
 
-  h2 {
-    margin: 0 0 1rem;
-  }
-
-  p {
+  * {
     margin: 0;
   }
 
-  ul {
-    margin: 0;
+  p,
+  ul,
+  ol {
+    margin: 0.5rem 0 0.5rem;
+  }
+
+  .big {
+    font-size: 150%;
   }
 
   &.archive {
@@ -548,3 +565,18 @@ img {
   height: min(90px, 12.367vw);
   border: none;
 }
+
+.pill {
+  background-color: var(--fg05);
+  border-radius: 9999px;
+  color: var(--fg-color);
+  padding: 0.25rem 0.75rem;
+  text-decoration: none;
+  transition: var(--transition);
+
+  &:hover {
+    background-color: var(--fg09);
+    color: var(--primary-color);
+    text-decoration: none;
+  }
+}
diff --git a/sass/_variables.scss b/sass/_variables.scss
index 7671bbb..1186bcc 100644
--- a/sass/_variables.scss
+++ b/sass/_variables.scss
@@ -3,14 +3,17 @@
 $primary-color: #ff7800;
 $primary-color-alpha: color.scale($primary-color, $alpha: -80%);
 
-$bg-color-l: color.mix($primary-color, rgb(250, 250, 250), 10%);
-$bg-color-d: color.mix($primary-color, rgb(11, 11, 11), 5%);
+$bg-color-l: color.scale($primary-color, $lightness: 80%);
+$bg-color-d: color.scale($primary-color, $lightness: -90%, $saturation: -50%);
 
 $crt-bg: radial-gradient(
   color.scale($primary-color, $lightness: -80%),
   color.scale($primary-color, $lightness: -90%)
 );
 
+$nav-bg-l: color.scale($bg-color-l, $alpha: -20%, $lightness: 50%);
+$nav-bg-d: color.scale($bg-color-d, $alpha: -20%, $lightness: 5%, $saturation: -50%);
+
 $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%),
   0 2px 6px 2px color.scale($primary-color, $alpha: -95%),
   0 4px 24px 4px color.scale($primary-color, $alpha: -90%);
@@ -20,7 +23,7 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%),
   --bg-color: #{$bg-color-l};
   --content-width: 720px;
   --crt-bg: #{$crt-bg};
-  --fg-color: var(--dark4);
+  --fg-color: rgba(0, 0, 0, 0.8);
   --primary-color-alpha: #{$primary-color-alpha};
   --primary-color: #{$primary-color};
   --rounded-corner-big: 1.2rem;
@@ -31,6 +34,7 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%),
   --fg05: rgba(0, 0, 0, 0.05);
   --fg09: rgba(0, 0, 0, 0.09);
   --fg50: rgba(0, 0, 0, 0.5);
+  --nav-bg: #{$nav-bg-l};
 
   --orange-bg: rgba(255, 120, 0, 0.1);
   --orange-fg: rgb(255, 120, 0);
@@ -50,6 +54,7 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%),
     drop-shadow(0 2px 2px rgba(0, 0, 0, 0.06));
   --glow: #{$glow};
 
+  --transition-bezier: 350ms cubic-bezier(0.17, 0.89, 0.32, 1.28);
   --transition-long: 800ms;
   --transition-longer: 400ms;
   --transition: 200ms;
@@ -61,12 +66,13 @@ $glow: 0 0 0 1px color.scale($primary-color, $alpha: -95%),
 
     // GENERAL SETUP
     --bg-color: #{$bg-color-d};
-    --fg-color: var(--light2);
+    --fg-color: rgb(255, 255, 255);
 
     // CUSTOM COLOR PALETTE
     --fg05: rgba(255, 255, 255, 0.05);
     --fg09: rgba(255, 255, 255, 0.09);
     --fg50: rgba(255, 255, 255, 0.5);
+    --nav-bg: #{$nav-bg-d};
 
     --orange-bg: rgba(255, 190, 111, 0.1);
     --orange-fg: rgb(255, 190, 111);
diff --git a/static/fonts/inter-variable-italic.ttf b/static/fonts/inter-variable-italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..ed674e77cb61b71f4fda616cd70b4bf9849c743a
GIT binary patch
literal 894460
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