mirror of
https://gitlab.com/MisterBiggs/brain-quartz.git
synced 2025-07-25 07:41:30 +00:00
.github
content
docs
quartz
cli
components
pages
scripts
styles
backlinks.scss
breadcrumbs.scss
clipboard.scss
darkmode.scss
explorer.scss
footer.scss
graph.scss
legacyToc.scss
listPage.scss
popover.scss
recentNotes.scss
search.scss
toc.scss
ArticleTitle.tsx
Backlinks.tsx
Body.tsx
Breadcrumbs.tsx
ContentMeta.tsx
Darkmode.tsx
Date.tsx
DesktopOnly.tsx
Explorer.tsx
ExplorerNode.tsx
Footer.tsx
Graph.tsx
Head.tsx
Header.tsx
MobileOnly.tsx
PageList.tsx
PageTitle.tsx
RecentNotes.tsx
Search.tsx
Spacer.tsx
TableOfContents.tsx
TagList.tsx
index.ts
renderPage.tsx
types.ts
plugins
processors
static
styles
util
bootstrap-cli.mjs
bootstrap-worker.mjs
build.ts
cfg.ts
worker.ts
.gitattributes
.gitignore
.npmrc
.prettierignore
.prettierrc
CODE_OF_CONDUCT.md
Dockerfile
LICENSE.txt
README.md
globals.d.ts
index.d.ts
package-lock.json
package.json
quartz.config.ts
quartz.layout.ts
tsconfig.json
* Quartz sync: Aug 29, 2023, 10:17 PM * style: add basic style to tags in search * feat: add SearchType + tags to search preview * feat: support multiple matches * style(search): add style to matching tags * feat(search): add content to preview for tag search * fix: only display tags on tag search * feat: support basic + tag search * refactor: extract common `fillDocument`, format * feat: add hotkey to search for tags * chore: remove logs * fix: dont render empty `<ul>` if tags not present * fix(search-tag): make case insensitive * refactor: clean `hideSearch` and `showSearch` * feat: trim content similar to `description.ts` * fix(search-tag): hotkey for windows * perf: re-use main index for tag search
179 lines
3.7 KiB
SCSS
179 lines
3.7 KiB
SCSS
@use "../../styles/variables.scss" as *;
|
|
|
|
.search {
|
|
min-width: fit-content;
|
|
max-width: 14rem;
|
|
flex-grow: 0.3;
|
|
|
|
& > #search-icon {
|
|
background-color: var(--lightgray);
|
|
border-radius: 4px;
|
|
height: 2rem;
|
|
display: flex;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
|
|
& > div {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
& > p {
|
|
display: inline;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
& svg {
|
|
cursor: pointer;
|
|
width: 18px;
|
|
min-width: 18px;
|
|
margin: 0 0.5rem;
|
|
|
|
.search-path {
|
|
stroke: var(--darkgray);
|
|
stroke-width: 2px;
|
|
transition: stroke 0.5s ease;
|
|
}
|
|
}
|
|
}
|
|
|
|
& > #search-container {
|
|
position: fixed;
|
|
contain: layout;
|
|
z-index: 999;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
overflow-y: auto;
|
|
display: none;
|
|
backdrop-filter: blur(4px);
|
|
|
|
&.active {
|
|
display: inline-block;
|
|
}
|
|
|
|
& > #search-space {
|
|
width: 50%;
|
|
margin-top: 15vh;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
|
|
@media all and (max-width: $fullPageWidth) {
|
|
width: 90%;
|
|
}
|
|
|
|
& > * {
|
|
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);
|
|
margin-bottom: 2em;
|
|
}
|
|
|
|
& > input {
|
|
box-sizing: border-box;
|
|
padding: 0.5em 1em;
|
|
font-family: var(--bodyFont);
|
|
color: var(--dark);
|
|
font-size: 1.1em;
|
|
border: 1px solid var(--lightgray);
|
|
|
|
&:focus {
|
|
outline: none;
|
|
}
|
|
}
|
|
|
|
& > #results-container {
|
|
& .result-card {
|
|
padding: 1em;
|
|
cursor: pointer;
|
|
transition: background 0.2s ease;
|
|
border: 1px solid var(--lightgray);
|
|
border-bottom: none;
|
|
width: 100%;
|
|
|
|
// 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;
|
|
|
|
& .highlight {
|
|
color: var(--secondary);
|
|
font-weight: 700;
|
|
}
|
|
|
|
&:hover,
|
|
&:focus {
|
|
background: var(--lightgray);
|
|
}
|
|
|
|
&:first-of-type {
|
|
border-top-left-radius: 5px;
|
|
border-top-right-radius: 5px;
|
|
}
|
|
|
|
&:last-of-type {
|
|
border-bottom-left-radius: 5px;
|
|
border-bottom-right-radius: 5px;
|
|
border-bottom: 1px solid 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;
|
|
// Offset border radius
|
|
margin-left: -2px;
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|