tfrere's picture
tfrere HF Staff
feat(frontend): editor refresh (embed studio, comment popover, shiki, top bar, hooks, styles)
76fc93a
/* -----------------------------------------------------------------------
Footer - shared between editor and published page.
Visually aligned with the research-article-template's Footer.astro.
Uses CSS variables where they compose well with the template's look,
and the template's exact rgba() values where they produce the
distinctive discreet-grey look of the appendix.
----------------------------------------------------------------------- */
.footer {
contain: layout style;
font-size: 0.8em;
line-height: 1.7em;
margin-top: 60px;
margin-bottom: 0;
border-top: 1px solid rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.5);
}
.footer-inner {
max-width: 1280px;
margin: 0 auto;
padding: 60px 16px 48px;
display: grid;
grid-template-columns: 220px minmax(0, 680px) 260px;
gap: 32px;
align-items: start;
}
/* Use the parent grid (3 columns like .content-grid) */
.citation-block,
.references-block,
.reuse-block,
.doi-block {
display: contents;
}
.citation-block > .footer-heading,
.references-block > .footer-heading,
.reuse-block > .footer-heading,
.doi-block > .footer-heading {
grid-column: 1;
font-size: 15px;
font-weight: 600;
margin: 0;
text-align: right;
padding-right: 30px;
}
.citation-block > :not(.footer-heading),
.references-block > :not(.footer-heading),
.reuse-block > :not(.footer-heading),
.doi-block > :not(.footer-heading) {
grid-column: 2;
}
.citation-block .footer-heading { margin: 0 0 8px; }
.citation-block h4 {
margin: 16px 0 8px;
font-size: 14px;
text-transform: uppercase;
color: var(--muted-color);
}
.citation-block p,
.reuse-block p,
.doi-block p,
.footnotes ol,
.footnotes ol p,
.references { margin-top: 0; }
/* Preserve KaTeX rendering in footnotes - essential for math formulas.
Compensates for the footer's 0.8em font-size (1em / 0.8em = 1.25em). */
.footer .footnotes .katex {
font-size: 1.25em;
line-height: 1.21;
}
.footer .footnotes .katex-display {
margin: 1em 0;
text-align: center;
display: block;
overflow-x: auto;
overflow-y: hidden;
}
.footer .footnotes .katex-display > .katex {
display: block;
text-align: center;
}
.footer .footnotes .katex .katex-html { display: inline-block; }
.footer .footnotes .katex .base { display: inline-block; }
/* Distill-like appendix citation styling */
.citation {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
font-size: 11px;
line-height: 15px;
border: 1px solid rgba(0, 0, 0, 0.1);
background: rgba(0, 0, 0, 0.02);
padding: 10px 18px;
border-radius: 3px;
color: rgba(150, 150, 150, 1);
overflow: hidden;
margin-top: -12px;
white-space: pre-wrap;
word-wrap: break-word;
}
.citation a {
color: rgba(0, 0, 0, 0.6);
text-decoration: underline;
}
.citation.short { margin-top: -4px; }
/* Published inline citation links */
.citation-inline {
color: var(--primary-color, #958df1);
text-decoration: none;
text-decoration-line: underline;
text-decoration-color: transparent;
text-underline-offset: 2px;
cursor: pointer;
transition: text-decoration-color 0.15s;
}
.citation-inline:hover { text-decoration-color: currentColor; }
/* Bibliography block inside footer: drop the article-body framing
(border-top, padding, margin) so the content sits cleanly next to the
footer-heading column. */
.footer .bibliography-block {
margin: 0;
padding: 0;
border: 0;
}
.footer .bibliography-title { display: none; }
/* Bibliography entries inside footer */
.footer .bibliography-content .csl-entry {
margin-bottom: 0.75em;
padding-left: 1.5em;
text-indent: -1.5em;
font-size: 0.9em;
line-height: 1.5;
}
.bibliography-content .csl-entry:target {
background: color-mix(in srgb, var(--primary-color) 10%, transparent);
border-radius: 4px;
padding: 4px 4px 4px 1.5em;
}
/* Footnote refs (published page) */
.footnote-ref a {
color: var(--primary-color, #958DF1);
text-decoration: none;
font-size: 0.8em;
}
.footnote-ref a:hover { text-decoration: underline; }
/* Footnotes list (both editor footer and published) */
.footnotes ol,
.footnotes-list {
padding-left: 1.5em;
margin: 0;
}
.footnotes li,
.footnotes-list li {
margin-bottom: 0.5em;
font-size: 0.9rem;
}
.footnotes li p,
.footnotes-list li p { margin: 0; }
.footnote-backref { text-decoration: none; margin-left: 4px; }
/* References block */
.references-block .footer-heading { margin: 0; }
.references-block ol { padding: 0 0 0 15px; }
.references-block li { margin-bottom: 1em; }
.references-block a { color: var(--text-color); }
@media (min-width: 768px) {
.references-block ol { padding: 0 0 0 30px; margin-left: -30px; }
}
/* Footer links: use primary color consistently */
.footer a {
color: var(--primary-color);
border-bottom: 1px solid var(--link-underline);
text-decoration: none;
}
.footer a:hover {
color: var(--primary-color-hover);
border-bottom-color: var(--link-underline-hover);
}
/* Dark mode overrides */
[data-theme="dark"] .footer {
border-top-color: rgba(255, 255, 255, 0.15);
color: rgba(200, 200, 200, 0.8);
}
[data-theme="dark"] .citation {
background: rgba(255, 255, 255, 0.04);
border-color: rgba(255, 255, 255, 0.15);
color: rgba(200, 200, 200, 1);
}
[data-theme="dark"] .citation a { color: rgba(255, 255, 255, 0.75); }
[data-theme="dark"] .footer a { color: var(--primary-color); }
/* Template credit - discrete at the bottom */
.template-credit { display: contents; }
.template-credit p {
grid-column: 2;
margin: 24px 0 0 0;
font-size: 0.85em;
color: rgba(0, 0, 0, 0.5);
}
.template-credit a {
color: rgba(0, 0, 0, 0.6);
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.template-credit a:hover {
color: rgba(0, 0, 0, 0.8);
border-bottom-color: rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .template-credit p { color: rgba(200, 200, 200, 0.6); }
[data-theme="dark"] .template-credit a {
color: rgba(200, 200, 200, 0.7);
border-bottom-color: rgba(255, 255, 255, 0.2);
}
[data-theme="dark"] .template-credit a:hover {
color: rgba(200, 200, 200, 0.9);
border-bottom-color: rgba(255, 255, 255, 0.35);
}
/* -----------------------------------------------------------------------
Mobile/tablet responsive layout.
Collapse the 3-column grid (heading | content | spacer) into a single
stacked column. The sections use `display: contents` on desktop, so the
headings and paragraphs are actual DOM children of `.footer-inner`:
a child combinator like `.footer-inner > .footer-heading` never matches.
Below, we target all `.footer-heading` inside the footer and reset the
grid positioning applied to siblings.
----------------------------------------------------------------------- */
@media (max-width: 1100px) {
.footer-inner {
display: block;
padding: 40px 16px;
}
.footer .footer-heading {
grid-column: auto;
text-align: left;
padding-right: 0;
margin: 24px 0 8px;
}
.footer .footer-inner > section + section {
margin-top: 8px;
}
.citation-block > :not(.footer-heading),
.references-block > :not(.footer-heading),
.reuse-block > :not(.footer-heading),
.doi-block > :not(.footer-heading),
.template-credit p {
grid-column: auto;
}
.template-credit p {
margin-top: 32px;
}
.citation {
overflow-x: auto;
margin-top: 0;
}
.citation.short { margin-top: 0; }
.references-block ol {
padding-left: 1.5em;
}
}
@media (max-width: 480px) {
.footer-inner {
padding: 32px 14px;
}
.citation {
font-size: 10.5px;
padding: 8px 12px;
}
}