discourse/plugins/footnote/assets/stylesheets/footnotes.scss

114 lines
2.1 KiB
SCSS

.inline-footnotes {
a.expand-footnote {
user-select: none;
padding: 0px 0.5em;
margin: 0 0 0 0.25em;
color: var(--primary-low-mid-or-secondary-high);
background: var(--primary-low);
border-radius: 3px;
min-height: 20px;
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;
}