welpo 4be8a5634f
💄 style: fix numbered code blocks on iOS Safari
Tables used for line numbers were inheriting incorrect font sizes on iOS Safari
due to WebKit's text size adjustment behaviour.

Short lines were being centred, too.
2024-11-24 01:07:35 +01:00

148 lines
4.7 KiB
SCSS

code {
-webkit-text-size-adjust: 100%;
border-radius: 5px;
background-color: var(--bg-1);
padding-inline: 0.2em;
padding-block: 0.1em;
font-size: 0.9rem;
font-family: var(--code-font);
mark {
display: block;
filter: brightness(110%);
background-color: var(--codeblock-highlight);
color: inherit;
}
table {
margin: 0rem;
border-collapse: collapse;
border-spacing: 0rem;
width: 100%;
text-align: start;
td,
th,
tr {
border: none;
padding: 0rem;
}
// Line number col.
tbody td:first-child {
opacity: 50%;
padding-inline-end: 0.8rem;
width: 1px; // Without this, iOS Safari centres short lines.
user-select: none;
text-align: end;
}
tbody tr:nth-child(even) {
background-color: inherit;
}
}
}
a:hover code {
background-color: inherit;
}
pre {
display: block;
position: relative;
border-radius: 5px;
padding-inline: 1rem;
padding-block-start: 2.4rem;
padding-block-end: 1rem;
overflow: hidden;
overflow-x: auto;
line-height: 1.4;
code,
code td {
font-size: 0.8rem; // Fits ~77 characters.
}
code {
display: block;
border: 0rem;
border-radius: 5px;
background-color: transparent;
padding: 0rem;
overflow-x: auto;
color: inherit;
white-space: pre;
&::before {
display: block;
position: absolute;
top: 0;
inset-inline-start: 0;
background-color: var(--primary-color);
padding: 0.3rem;
padding-inline-start: 1rem;
width: calc(100% - 1.3rem);
height: 0.9rem;
content: attr(data-lang);
color: var(--hover-color);
font-size: 0.65rem;
text-align: start;
text-transform: uppercase;
}
.source-path {
display: block;
position: absolute;
top: 0;
inset-inline-end: 1.3rem;
padding-top: 0.3rem;
padding-inline-end: 1.3rem;
max-width: calc(100% - 14em);
height: 0.9rem;
overflow: hidden;
color: var(--hover-color);
font-size: 0.65rem;
text-align: end;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
// Default to LTR codeblocks.
code, pre {
direction: ltr;
}
// Allows RTL codeblocks if `force_codeblock_ltr` is set to false.
html[data-code-direction="inherit"] {
code, pre {
direction: inherit;
}
}
.copy-code {
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M217.002-67.694q-37.732 0-64.02-26.288-26.287-26.287-26.287-64.019V-707.69h77.999v549.689q0 4.615 3.846 8.462 3.846 3.846 8.462 3.846h451.689v77.999H217.002Zm175.999-175.999q-37.733 0-64.02-26.287T302.694-334v-463.383q0-37.732 26.287-64.02 26.287-26.287 64.02-26.287h365.383q37.732 0 64.019 26.287 26.288 26.288 26.288 64.02V-334q0 37.733-26.288 64.02-26.287 26.287-64.019 26.287H393.001Zm0-77.998h365.383q4.615 0 8.462-3.847 3.846-3.846 3.846-8.462v-463.383q0-4.616-3.846-8.462-3.847-3.846-8.462-3.846H393.001q-4.616 0-8.462 3.846-3.847 3.846-3.847 8.462V-334q0 4.616 3.847 8.462 3.846 3.847 8.462 3.847Zm-12.309 0v-488V-321.691Z'/%3E%3C/svg%3E");
position: absolute;
top: 0.3rem;
align-self: center;
z-index: 1;
cursor: pointer;
inset-inline-end: 0.7rem;
background: var(--hover-color);
background-size: contain;
width: 0.9rem;
height: 0.9rem;
color: white;
}
.copy-code.checked {
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M395-253 194-455l83-83 118 117 288-287 83 84-371 371Z'/%3E%3C/svg%3E");
width: 1rem;
height: 1rem;
}
.copy-code.error {
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M479.386-248Q509-248 529-267.386q20-19.386 20-49T529.614-366.5q-19.386-20.5-49-20.5T431-366.886q-20 20.114-20 49.728t19.386 49.386q19.386 19.772 49 19.772ZM416-431h128v-265H416v265Zm64.276 381q-88.916 0-167.743-33.104-78.828-33.103-137.577-91.852-58.749-58.749-91.852-137.535Q50-391.277 50-480.458q0-89.438 33.162-167.491 33.163-78.053 92.175-136.942 59.011-58.889 137.533-91.999Q391.393-910 480.458-910q89.428 0 167.518 33.093T784.94-784.94q58.874 58.874 91.967 137.215Q910-569.385 910-480.192q0 89.192-33.11 167.518-33.11 78.326-91.999 137.337-58.889 59.012-137.167 92.174Q569.447-50 480.276-50Z'/%3E%3C/svg%3E");
}