:root {
color-scheme: {{ color_scheme }};
{% include "__builtins/_tokens.css" %}
}
body {
margin: 0;
background-color: var(--color-surface);
color: var(--color-text);
font-family: var(--font-family-sans);
font-size: var(--font-size-base);
line-height: var(--font-line-height-body);
}
div.shell {
display: flex;
align-items: stretch;
min-height: 100vh;
}
a {
color: var(--color-accent);
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
div.scrap .content a,
div.about .content a {
text-decoration: underline;
text-underline-offset: 2px;
}
hr {
border: none;
border-bottom: var(--border-hairline) solid var(--color-rule);
margin: var(--space-6) 0;
}
code {
font-family: var(--font-family-mono);
font-size: 0.92em;
}
pre:not(:has(code.mermaid)) {
margin: var(--space-4) 0;
padding: var(--space-3) var(--space-4);
background-color: var(--color-surface-raised);
border: var(--border-hairline) solid var(--color-rule);
border-radius: var(--radius-md);
overflow-x: auto;
}
p code {
background-color: var(--color-surface-raised);
border: var(--border-hairline) solid var(--color-rule);
border-radius: var(--radius-sm);
padding: 1px 4px;
}
.hljs-comment,
.hljs-quote {
color: var(--color-syntax-comment);
}
.hljs-keyword,
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-tag,
.hljs-name,
.hljs-builtin-name,
.hljs-selector-tag,
.hljs-meta,
.hljs-meta-keyword,
.hljs-template-tag {
color: var(--color-syntax-keyword);
}
.hljs-title,
.hljs-section,
.hljs-built_in,
.hljs-type,
.hljs-class,
.hljs-function,
.hljs-attr,
.hljs-doctag,
.hljs-formula,
.hljs-code,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: var(--color-syntax-entity);
}
.hljs-string,
.hljs-meta-string,
.hljs-regexp {
color: var(--color-syntax-string);
}
.hljs-number {
color: var(--color-syntax-number);
}
.hljs-addition {
color: var(--color-syntax-added);
}
.hljs-deletion {
color: var(--color-syntax-deleted);
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: var(--font-weight-bold);
}
blockquote {
margin: var(--space-4) 0;
padding-left: var(--space-4);
border-left: 2px solid var(--color-rule);
color: var(--color-text-muted);
}
table {
border-collapse: collapse;
th,
td {
border: var(--border-hairline) solid var(--color-rule);
padding: var(--space-2) var(--space-3);
text-align: left;
}
th {
font-weight: var(--font-weight-medium);
}
}
aside.sidebar {
box-sizing: border-box;
width: 264px;
flex-shrink: 0;
position: sticky;
top: 0;
height: 100vh;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: var(--space-5);
padding: var(--space-5) var(--space-4);
background-color: var(--color-surface-raised);
border-right: var(--border-hairline) solid var(--color-rule);
div.brand-block {
display: flex;
flex-direction: column;
gap: var(--space-1);
padding: 0 var(--space-2);
a.brand {
display: flex;
align-items: center;
gap: var(--space-2);
color: var(--color-text);
&:hover {
text-decoration: none;
}
span.mark {
font-family: var(--font-family-mono);
font-weight: var(--font-weight-medium);
color: var(--color-accent);
}
span.name {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-bold);
line-height: var(--font-line-height-tight);
}
}
.about {
align-self: flex-start;
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
span.about.active {
color: var(--color-text);
}
}
div.search {
position: relative;
input {
box-sizing: border-box;
width: 100%;
color: var(--color-text);
background-color: var(--color-surface);
border: var(--border-hairline) solid var(--color-rule);
border-radius: var(--radius-md);
padding: var(--space-2) var(--space-3);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
&:focus {
outline: none;
border-color: var(--color-accent);
}
}
ul#search-results {
position: absolute;
top: calc(100% + var(--space-1));
left: 0;
right: 0;
z-index: 10;
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
li {
overflow: hidden;
background-color: var(--color-surface);
border: var(--border-hairline) solid var(--color-rule);
border-radius: var(--radius-sm);
white-space: nowrap;
text-overflow: ellipsis;
&:hover {
border-color: var(--color-accent);
}
a {
display: block;
box-sizing: border-box;
width: 100%;
padding: var(--space-1) var(--space-3);
color: var(--color-text);
font-size: var(--font-size-sm);
&:hover {
text-decoration: none;
}
}
}
}
}
nav.views,
nav.tags {
display: flex;
flex-direction: column;
gap: 2px;
p.nav-label {
margin: 0 0 var(--space-1);
padding: 0 var(--space-2);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
letter-spacing: 0.08em;
color: var(--color-text-muted);
}
.item {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--space-2);
padding: var(--space-1) var(--space-2);
border-radius: var(--radius-md);
font-size: var(--font-size-sm);
color: var(--color-text);
&:hover {
text-decoration: none;
background-color: var(--color-accent-wash);
}
}
.item.active {
background-color: var(--color-accent-wash);
font-weight: var(--font-weight-medium);
}
span.count {
flex-shrink: 0;
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-regular);
color: var(--color-text-muted);
}
}
nav.tags {
.item {
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
}
span.tag-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--color-accent);
}
span.syntax {
color: var(--color-text-muted);
}
.item.more {
color: var(--color-text-muted);
}
}
p.version {
margin: auto 0 0;
padding: 0 var(--space-2);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
}
div.main-wrap {
flex-grow: 1;
min-width: 0;
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex-grow: 1;
box-sizing: border-box;
width: 100%;
max-width: 1080px;
padding: var(--space-6) var(--space-7) 0;
}
footer.status-bar {
display: flex;
justify-content: space-between;
gap: var(--space-4);
margin-top: var(--space-7);
padding: var(--space-2) var(--space-7);
border-top: var(--border-hairline) solid var(--color-rule);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
div.scrap {
max-width: 760px;
p.tags {
display: flex;
flex-wrap: wrap;
gap: var(--space-2) var(--space-4);
margin: 0 0 var(--space-2);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
a.tag {
color: var(--color-accent);
span.syntax {
color: var(--color-text-muted);
}
}
}
.context {
margin: 0 0 var(--space-2);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-regular);
color: var(--color-text-muted);
}
h1.title {
margin: 0;
font-size: var(--font-size-2xl);
line-height: var(--font-line-height-tight);
}
.commited-date {
margin: var(--space-3) 0 0;
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
.content {
margin: var(--space-5) 0 0;
padding-top: var(--space-5);
border-top: var(--border-hairline) solid var(--color-rule);
word-break: break-word;
}
img {
max-width: 100%;
}
}
.content a.link-card {
display: flex;
align-items: center;
gap: var(--space-3);
background-color: var(--color-surface-raised);
border: var(--border-hairline) solid var(--color-rule);
border-radius: var(--radius-md);
margin: var(--space-4) 0;
padding: var(--space-3) var(--space-4);
text-decoration: none;
&:hover {
text-decoration: none;
.host {
text-decoration: underline;
}
}
svg.icon {
flex-shrink: 0;
color: var(--color-text-muted);
}
.body {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.host {
font-weight: var(--font-weight-medium);
color: var(--color-text);
}
.url {
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
div.about {
max-width: 760px;
.content {
word-break: break-word;
}
}
div.tag {
h1.title {
margin: 0;
font-size: var(--font-size-2xl);
line-height: var(--font-line-height-tight);
&::before {
content: "#";
font-family: var(--font-family-mono);
color: var(--color-text-muted);
margin-right: var(--space-2);
}
}
}
div.index {
div.links-block {
p.list-head {
display: flex;
justify-content: space-between;
gap: var(--space-4);
margin: 0 0 var(--space-2);
padding-bottom: var(--space-2);
border-bottom: var(--border-hairline) solid var(--color-rule);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
}
div.paging-arrows {
display: flex;
justify-content: center;
gap: var(--space-5);
margin-top: var(--space-6);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
}
}
ul.scrap-rows {
margin: 0;
padding: 0;
list-style: none;
li.item {
border-bottom: var(--border-hairline) solid var(--color-rule);
}
a.row {
display: flex;
align-items: baseline;
gap: var(--space-5);
padding: var(--space-3) 0;
&:hover {
text-decoration: none;
.title {
text-decoration: underline;
}
}
}
img.thumbnail {
align-self: center;
flex-shrink: 0;
width: 40px;
height: 40px;
object-fit: cover;
border-radius: var(--radius-sm);
}
span.body {
display: flex;
flex-direction: column;
gap: var(--space-1);
flex-grow: 1;
min-width: 0;
}
span.head {
display: flex;
align-items: baseline;
gap: var(--space-2);
}
span.title {
font-size: var(--font-size-base);
font-weight: var(--font-weight-medium);
line-height: var(--font-line-height-tight);
color: var(--color-accent);
}
span.ctx {
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
span.summary {
font-size: var(--font-size-sm);
line-height: 1.45;
color: var(--color-text-muted);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
span.graph {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: var(--space-1);
flex-shrink: 0;
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
line-height: 1.3;
color: var(--color-text-muted);
}
}
section.connections {
max-width: 760px;
margin-top: var(--space-6);
p.section-head {
margin: 0 0 var(--space-2);
padding-bottom: var(--space-2);
border-bottom: var(--border-hairline) solid var(--color-rule);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
}
ul.scrap-links {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 0 var(--space-6);
margin: var(--space-5) 0 0;
padding: 0;
list-style: none;
li.item {
border-bottom: var(--border-hairline) solid var(--color-rule);
}
a.link {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--space-3);
padding: var(--space-2) 0;
&:hover {
text-decoration: none;
.title {
text-decoration: underline;
}
}
}
span.title {
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
color: var(--color-accent);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
span.ctx {
flex-shrink: 0;
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
}
div.scraps-index {
p.list-head {
display: flex;
justify-content: space-between;
gap: var(--space-4);
margin: 0 0 var(--space-3);
padding-bottom: var(--space-2);
border-bottom: var(--border-hairline) solid var(--color-rule);
font-family: var(--font-family-mono);
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
p.jump-bar {
display: flex;
flex-wrap: wrap;
gap: var(--space-1) var(--space-3);
margin: 0 0 var(--space-5);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
}
section.title-group {
margin-bottom: var(--space-6);
h2.group-head {
display: flex;
align-items: baseline;
gap: var(--space-2);
margin: 0 0 var(--space-2);
padding-bottom: var(--space-2);
border-bottom: var(--border-hairline) solid var(--color-rule);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
color: var(--color-accent);
span.count {
font-size: var(--font-size-xs);
font-weight: var(--font-weight-regular);
color: var(--color-text-muted);
}
}
}
}
ul.scrap-index {
columns: 260px 4;
column-gap: var(--space-6);
margin: 0;
padding: 0;
list-style: none;
li.item {
break-inside: avoid;
border-bottom: var(--border-hairline) solid var(--color-rule);
}
a.entry {
display: flex;
align-items: baseline;
gap: var(--space-2);
padding: var(--space-1) 0;
&:hover {
text-decoration: none;
.title {
text-decoration: underline;
}
}
}
span.title {
font-size: var(--font-size-sm);
color: var(--color-accent);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
span.ctx {
flex-shrink: 0;
font-family: var(--font-family-mono);
font-size: 10px;
color: var(--color-text-muted);
}
span.count {
margin-left: auto;
flex-shrink: 0;
font-family: var(--font-family-mono);
font-size: 10px;
color: var(--color-text-muted);
}
}
ul.tag-links {
display: flex;
flex-wrap: wrap;
gap: var(--space-2) var(--space-4);
margin: 0;
padding: 0;
list-style: none;
a.link {
display: inline-flex;
align-items: baseline;
gap: var(--space-2);
font-family: var(--font-family-mono);
font-size: var(--font-size-sm);
}
span.count {
color: var(--color-text-muted);
font-size: var(--font-size-xs);
}
}
@media (max-width: 768px) {
div.shell {
display: block;
}
aside.sidebar {
position: static;
width: auto;
height: auto;
overflow-y: visible;
border-right: none;
border-bottom: var(--border-hairline) solid var(--color-rule);
}
div.main-wrap {
min-height: 0;
}
main {
padding: var(--space-5) var(--space-4) 0;
}
footer.status-bar {
padding: var(--space-2) var(--space-4);
}
ul.scrap-rows {
a.row {
gap: var(--space-3);
}
span.graph {
display: none;
}
}
}