From 50bb1ffd8aa00d85d3a17bc1a4e52d26187afa7e Mon Sep 17 00:00:00 2001
From: Aaron Pham <29749331+aarnphm@users.noreply.github.com>
Date: Wed, 31 Jan 2024 17:38:42 +0000
Subject: [PATCH] feat(usability): update functions for search (#774)

---
 quartz/components/styles/search.scss |  167 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 126 insertions(+), 41 deletions(-)

diff --git a/quartz/components/styles/search.scss b/quartz/components/styles/search.scss
index bac584b..5304618 100644
--- a/quartz/components/styles/search.scss
+++ b/quartz/components/styles/search.scss
@@ -1,8 +1,9 @@
+@use "../../styles/variables.scss" as *;
+
 .search {
-  min-width: 5rem;
-  max-width: 12rem;
+  min-width: fit-content;
+  max-width: 14rem;
   flex-grow: 0.3;
-  margin: 0 1.5rem;
 
   & > #search-icon {
     background-color: var(--lightgray);
@@ -11,6 +12,7 @@
     display: flex;
     align-items: center;
     cursor: pointer;
+    white-space: nowrap;
 
     & > div {
       flex-grow: 1;
@@ -37,12 +39,13 @@
 
   & > #search-container {
     position: fixed;
+    contain: layout;
     z-index: 999;
     left: 0;
     top: 0;
     width: 100vw;
     height: 100vh;
-    overflow: scroll;
+    overflow-y: auto;
     display: none;
     backdrop-filter: blur(4px);
 
@@ -52,11 +55,11 @@
 
     & > #search-space {
       width: 50%;
-      margin-top: 15vh;
+      margin-top: 12vh;
       margin-left: auto;
       margin-right: auto;
 
-      @media all and (max-width: 1200px) {
+      @media all and (max-width: $fullPageWidth) {
         width: 90%;
       }
 
@@ -64,7 +67,9 @@
         width: 100%;
         border-radius: 5px;
         background: var(--light);
-        box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16);
+        box-shadow:
+          0 14px 50px rgba(27, 33, 48, 0.12),
+          0 10px 30px rgba(27, 33, 48, 0.16);
         margin-bottom: 2em;
       }
 
@@ -81,54 +86,134 @@
         }
       }
 
-      & > #results-container {
-        & .result-card {
-          padding: 1em;
-          cursor: pointer;
-          transition: background 0.2s ease;
-          border: 1px solid var(--lightgray);
-          border-bottom: none;
-          width: 100%;
+      & > #search-layout {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-between;
+        opacity: 0;
 
-          // normalize button props
-          font-family: inherit;
-          font-size: 100%;
-          line-height: 1.15;
-          margin: 0;
-          text-transform: none;
-          text-align: left;
-          background: var(--light);
-          outline: none;
+        & > * {
+          height: calc(75vh - 20em);
+          background: none;
+          border-radius: 5px;
+          border: 1px solid var(--lightgray); // Border to define the box
+        }
 
-          & .highlight {
-            color: var(--secondary);
+        @media all and (max-width: $mobileBreakpoint) {
+          display: block;
+          & > *:not(#results-container) {
+            display: none !important;
           }
 
-          &:hover, &:focus {
-            background: var(--lightgray);
+          & > #results-container {
+            width: 100%;
+            height: auto;
           }
+        }
 
-          &:first-of-type {
-            border-top-left-radius: 5px;
-            border-top-right-radius: 5px;
+        & > #preview-container {
+          display: block;
+          box-sizing: border-box;
+          overflow: hidden;
+
+          & .preview-inner {
+            padding: 1em;
+            height: 100%;
+            box-sizing: border-box;
+            overflow-y: auto;
+            font-family: inherit;
+            font-size: 1.1em;
+            color: var(--dark);
+            line-height: 1.5em;
+            font-weight: 400;
+            background: var(--light);
+            border-radius: 5px;
+            box-shadow:
+              0 14px 50px rgba(27, 33, 48, 0.12),
+              0 10px 30px rgba(27, 33, 48, 0.16);
           }
+        }
 
-          &:last-of-type {
-            border-bottom-left-radius: 5px;
-            border-bottom-right-radius: 5px;
-            border-bottom: 1px solid var(--lightgray);
-          }
+        & > #results-container {
+          overflow-y: auto;
 
-          & > h3 {
+          & .result-card {
+            padding: 1em;
+            cursor: pointer;
+            transition: background 0.2s ease;
+            width: 100%;
+            display: block;
+            box-sizing: border-box;
+
+            // normalize card props
+            font-family: inherit;
+            font-size: 100%;
+            line-height: 1.15;
             margin: 0;
-          }
+            text-transform: none;
+            text-align: left;
+            background: var(--light);
+            outline: none;
+            font-weight: inherit;
 
-          & > p { 
-            margin-bottom: 0;
+            & .highlight {
+              color: var(--secondary);
+              font-weight: 700;
+            }
+
+            &:hover,
+            &:focus,
+            &.focus {
+              background: var(--lightgray);
+            }
+
+            & > h3 {
+              margin: 0;
+            }
+
+            & > ul > li {
+              margin: 0;
+              display: inline-block;
+              white-space: nowrap;
+              margin: 0;
+              overflow-wrap: normal;
+            }
+
+            & > ul {
+              list-style: none;
+              display: flex;
+              padding-left: 0;
+              gap: 0.4rem;
+              margin: 0;
+              margin-top: 0.45rem;
+              box-sizing: border-box;
+              overflow: hidden;
+              background-clip: border-box;
+            }
+
+            & > ul > li > p {
+              border-radius: 8px;
+              background-color: var(--highlight);
+              overflow: hidden;
+              background-clip: border-box;
+              padding: 0.03rem 0.4rem;
+              margin: 0;
+              color: var(--secondary);
+              opacity: 0.85;
+            }
+
+            & > ul > li > .match-tag {
+              color: var(--tertiary);
+              font-weight: bold;
+              opacity: 1;
+            }
+
+            & > p {
+              margin-bottom: 0;
+            }
           }
         }
       }
-
     }
   }
 }

--
Gitblit v1.10.0