From 3ac6b42e16dca5a44ed3fec2c0314f1dbbc2322b Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 16 Jul 2023 06:02:12 +0000
Subject: [PATCH] finish path refactoring, add sourcemap + better trace support

---
 quartz/styles/base.scss |  233 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 148 insertions(+), 85 deletions(-)

diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss
index e741755..2e56928 100644
--- a/quartz/styles/base.scss
+++ b/quartz/styles/base.scss
@@ -15,16 +15,23 @@
 }
 
 .text-highlight {
-  background-color: #fff236aa;
+  background-color: #fff23688;
   padding: 0 0.1rem;
   border-radius: 5px;
 }
 
-p, ul, text, a, tr, td, li, ol, ul, .katex {
+p, ul, text, a, tr, td, li, ol, ul, .katex, .math {
   color: var(--darkgray);
   fill: var(--darkgray);
 }
 
+.math {
+  font-size: 1.1rem;
+  &.math-display {
+    text-align: center;
+  }
+}
+
 a {
   font-weight: 600;
   text-decoration: none;
@@ -43,71 +50,23 @@
   }
 }
 
-.page {
-  & > .page-header {
-    max-width: $pageWidth;
-    margin: $topSpacing auto 0 auto;
-  }
-
-  & > #quartz-body {
-    width: 100%;
-    display: flex;
-
-    & .left, & .right {
-      flex: 1;
-      width: calc(calc(100vw - $pageWidth) / 2);
-    }
-
-    & .left-inner, & .right-inner {
-      display: flex;
-      flex-direction: column;
-      gap: 2rem;
-      top: 0;
-      width: $sidePanelWidth;
-      margin-top: $topSpacing;
-      box-sizing: border-box;
-      padding: 0 4rem;
-      position: fixed;
-    }
-
-    & .left-inner {
-      left: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
-    }
-
-    & .right-inner {
-      right: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
-    }
-
-    & .center {
-      width: $pageWidth;
-      margin: 0 auto;
-    }
-  }
-}
-
 .desktop-only {
   display: initial;
-  @media all and (max-width: ($pageWidth + 2 * $sidePanelWidth)) {
+  @media all and (max-width: $fullPageWidth) {
     display: none;
   }
 }
 
 .mobile-only {
   display: none;
-  @media all and (max-width: ($pageWidth + 2 * $sidePanelWidth)) {
+  @media all and (max-width: $fullPageWidth) {
     display: initial;
   }
 }
 
 .page {
-  @media all and (max-width: $tabletBreakpoint) {
-    margin: 25px 5vw;
-    & .left, & .right {
-      padding: 0;
-      height: initial;
-      max-width: none;
-      position: initial;
-    }
+  @media all and (max-width: $fullPageWidth) {
+    margin: 0 5vw;
   }
 
   & p {
@@ -119,16 +78,86 @@
       font-size: 2rem;
     }
 
-    // darkmode diagrams
-    & svg {
-      stroke: var(--dark);
-    }
-
-    & ul:has(input[type='checkbox']) {
+    & li:has(> input[type='checkbox']) {
       list-style-type: none;
       padding-left: 0;
+      margin-left: -1.4rem;
+    }
+
+    & li > * {
+      margin: 0;
     }
   }
+
+  & > #quartz-body {
+    width: 100%;
+    display: flex;
+    @media all and (max-width: $fullPageWidth) {
+      flex-direction: column;
+    }
+
+    & .sidebar {
+      flex: 1;
+      display: flex;
+      flex-direction: column;
+      gap: 2rem;
+      top: 0;
+      width: $sidePanelWidth;
+      margin-top: $topSpacing;
+      box-sizing: border-box;
+      padding: 0 4rem;
+      position: fixed;
+      @media all and (max-width: $fullPageWidth) {
+        position: initial;
+        flex-direction: row;
+        padding: 0;
+        width: initial;
+        margin-top: 4rem;
+      }
+    }
+
+    & .sidebar.left {
+      left: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
+      @media all and (max-width: $fullPageWidth) {
+        gap: 1rem;
+        align-items: center;
+      }
+    }
+
+    & .sidebar.right {
+      right: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
+      & > * {
+        @media all and (max-width: $fullPageWidth) {
+          flex: 1;
+        }
+      }
+    }
+  }
+
+  & .page-header {
+    width: $pageWidth;
+    margin: $topSpacing auto 0 auto;
+    @media all and (max-width: $fullPageWidth) {
+      width: initial;
+      margin-top: 2rem;
+    }
+  }
+
+  & .center, & footer {
+    width: $pageWidth;
+    margin-left: auto;
+    margin-right: auto;
+    @media all and (max-width: $fullPageWidth) {
+      width: initial;
+      margin-left: 0;
+      margin-right: 0;
+    }
+  }
+}
+
+.footnotes {
+  margin-top: 2rem;
+  border-top: 1px solid var(--lightgray);
 }
 
 input[type="checkbox"] {
@@ -155,7 +184,7 @@
   font-family: var(--headerFont);
   color: var(--dark);
   font-weight: revert;
-  margin: 2rem 0 0;
+  margin-bottom: 0;
 
   article > & > a {
     color: var(--dark);
@@ -165,6 +194,8 @@
   }
 }
 
+
+
 h1, h2, h3, h4, h5, h6 {
   &[id] > a[href^="#"] {
     margin: 0 0.5rem;
@@ -187,22 +218,30 @@
   & > div[data-rehype-pretty-code-title] {
     font-family: var(--codeFont);
     font-size: 0.9rem;
-    padding: 0.1rem 0.8rem;
+    padding: 0.1rem 0.5rem;
     border: 1px solid var(--lightgray);
     width: max-content;
     border-radius: 5px;
-    margin-bottom: -0.8rem;
+    margin-bottom: -0.5rem;
     color: var(--darkgray);
   }
+
+  & > pre {
+    padding: 0.5rem 0;
+  }
 }
 
 pre {
   font-family: var(--codeFont);
   padding: 0.5rem;
   border-radius: 5px;
-  overflow-x: scroll;
+  overflow-x: auto;
   border: 1px solid var(--lightgray);
 
+  &:has(> code.mermaid) {
+    border: none;
+  }
+
   & > code {
     background: none;
     padding: 0;
@@ -211,12 +250,17 @@
     counter-increment: line 0;
     display: grid;
 
-    & .line {
+    & [data-highlighted-chars] {
+      background-color: var(--highlight);
+      border-radius: 5px;
+    }
+
+    & > [data-line] {
       padding: 0 0.25rem;
       box-sizing: border-box;
       border-left: 3px solid transparent;
 
-      &.highlighted {
+      &[data-highlighted-line] {
         background-color: var(--highlight);
         border-left: 3px solid var(--secondary);
       }
@@ -228,9 +272,17 @@
         margin-right: 1rem;
         display: inline-block;
         text-align: right;
-        color: rgba(115, 138, 148, 0.4);
+        color: rgba(115, 138, 148, 0.6);
       }
     }
+
+    &[data-line-numbers-max-digits='2'] > [data-line]::before {
+      width: 2rem;
+    }
+     
+    &[data-line-numbers-max-digits='3'] > [data-line]::before {
+      width: 3rem;
+    }
   }
 }
 
@@ -248,15 +300,15 @@
 }
 
 table {
-  border: 2px solid var(--gray);
-  width: 100%;
+  margin: 1rem 0;
+  border: 1px solid var(--gray);
   padding: 1.5rem;
   border-collapse: collapse;
 }
 
 td, th {
   padding: 0.2rem 1rem;
-  border: 2px solid var(--gray);
+  border: 1px solid var(--gray);
 }
 
 img {
@@ -278,21 +330,6 @@
   background-color: var(--lightgray);
 }
 
-section {
-  margin: 2rem auto;
-  border-top: 1px solid var(--lightgray);
-
-  & > #footnote-label {
-    & > a {
-      color: var(--dark);
-    }
-  }
-  
-  & ol, & ul {
-    padding: 0 1em
-  }
-}
-
 audio, video {
   width: 100%;
   border-radius: 5px;
@@ -301,3 +338,29 @@
 .spacer {
   flex: 1 1 auto;
 }
+
+ul.overflow, ol.overflow {
+  height: 400px;
+  overflow-y: scroll;
+
+  // clearfix
+  content: "";
+  clear: both;
+
+  & > li:last-of-type {
+    margin-bottom: 50px;
+  }
+
+  &:after {
+    pointer-events: none;
+    content: '';
+    width: 100%;
+    height: 50px;    
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    opacity: 1;
+    transition: opacity 0.3s ease;
+    background: linear-gradient(transparent 0px, var(--light));
+  }
+}

--
Gitblit v1.10.0