discourse/plugins/footnote/assets/stylesheets/footnotes.scss
2025-05-05 09:12:09 -03:00

159 lines
3 KiB
SCSS
Vendored

.inline-footnotes {
a.expand-footnote {
user-select: none;
padding: 0 0.4em;
color: var(--primary-low-mid-or-secondary-high);
background: var(--primary-low);
border-radius: 3px;
min-height: 1.25em;
display: inline-flex;
align-items: center;
&:hover {
background: var(--primary-medium);
color: var(--secondary);
}
> * {
pointer-events: none;
}
}
// This is hack to work with lazy-loading, we will trick the browser
// to believe the image is in the DOM and can be loaded
.footnotes-list,
.footnotes-sep {
position: absolute;
// the left/right positioning prevents overflow issues
// with long words causing overflow on small screens
left: 0;
right: 0;
}
.footnotes-sep,
.footnotes-list,
.footnote-ref {
display: none;
}
}
#footnote-tooltip {
background-color: var(--primary-low);
color: var(--primary);
padding: 0.5em;
font-size: var(--font-down-1);
border-radius: 3px;
display: none;
z-index: z("modal", "tooltip");
max-width: 400px;
overflow-wrap: break-word;
box-sizing: border-box;
.mobile-view & {
// tooltips are positioned 5px from the left
// - 10px accounts for this and gives 5px space on the right
max-width: calc(100dvw - 10px);
}
.footnote-tooltip-content {
overflow: hidden;
.footnote-backref {
display: none;
}
img {
object-fit: cover;
max-width: 100%;
}
p {
margin: 0;
}
}
}
#footnote-tooltip[data-show] {
display: block;
}
#arrow,
#arrow::before {
position: absolute;
width: 10px;
height: 10px;
background: inherit;
}
#arrow {
visibility: hidden;
}
#arrow::before {
visibility: visible;
content: "";
transform: rotate(45deg);
}
#footnote-tooltip[data-popper-placement^="top"] > #arrow {
bottom: -4px;
}
#footnote-tooltip[data-popper-placement^="bottom"] > #arrow {
top: -4px;
}
#footnote-tooltip[data-popper-placement^="left"] > #arrow {
right: -4px;
}
#footnote-tooltip[data-popper-placement^="right"] > #arrow {
left: -4px;
}
.ProseMirror {
counter-reset: prosemirror-footnote;
.footnote {
display: inline-block;
&::after {
padding: 0 0.125em;
display: inline-block;
content: "[" counter(prosemirror-footnote) "]";
vertical-align: super;
font-size: 0.75rem;
line-height: 1;
counter-increment: prosemirror-footnote;
}
}
.footnote-tooltip {
cursor: auto;
position: absolute;
max-height: 40%;
overflow: auto;
left: 0;
right: 0;
bottom: 0;
margin: 0.5rem;
padding-top: 0.5rem;
background-color: var(--primary-50);
border-radius: var(--d-border-radius);
z-index: z("modal", "tooltip");
&:focus-within {
outline: 1px solid var(--primary-low);
}
&::before {
top: 0.1rem;
left: 0.25rem;
position: absolute;
content: "[" var(--footnote-counter) "]:";
font-size: 0.75rem;
color: var(--primary-low-mid);
}
}
}