156 lines
No EOL
3.5 KiB
CSS
156 lines
No EOL
3.5 KiB
CSS
.max-w-prose {
|
|
max-width: 85ch;
|
|
}
|
|
|
|
/* From https://css.glass */
|
|
.glass {
|
|
background: rgba(18, 47, 101, 0.25);
|
|
border-radius: 16px;
|
|
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
|
|
backdrop-filter: blur(8px);
|
|
animation: backdropShift 10s linear infinite;
|
|
-webkit-backdrop-filter: blur(8px);
|
|
border: 1px solid rgba(18, 47, 101, 0.35);
|
|
padding: 2rem;
|
|
filter: saturate(0.7) brightness(0.8);
|
|
z-index: 2;
|
|
}
|
|
|
|
.toc:has(#TableOfContents) {
|
|
background-color: rgba(25, 25, 35, 0.3);
|
|
border-radius: 10px;
|
|
max-height: 70vh;
|
|
overflow-y: auto;
|
|
padding: 1rem;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
.background-container {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
z-index: -1;
|
|
}
|
|
|
|
.background-image {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
z-index: 0;
|
|
filter: blur(4px) saturate(0.65);
|
|
}
|
|
|
|
/* Lead Styling */
|
|
.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
|
|
color: rgb(209, 182, 164);
|
|
}
|
|
|
|
/* Header Page Name Styling */
|
|
nav > div > a {
|
|
font-size: 1.5rem;
|
|
text-shadow: 0 0 6px rgba(0, 0, 0, 0.7);
|
|
}
|
|
|
|
/* Header Button Styling */
|
|
header nav ul li a,
|
|
header nav ul li button {
|
|
display: inline-block;
|
|
padding: 0.5rem 1rem;
|
|
background: rgba(18, 47, 101, 0.25);
|
|
border-radius: 8px;
|
|
border: 1px solid rgba(25, 25, 35, 0.35);
|
|
transition: all 0.3s ease;
|
|
backdrop-filter: blur(4px);
|
|
animation: backdropShift 10s linear infinite;
|
|
-webkit-backdrop-filter: blur(8px);
|
|
filter: saturate(0.9) brightness(0.9);
|
|
}
|
|
|
|
header nav ul li a:hover,
|
|
header nav ul li button:hover {
|
|
background-color: rgba(25, 25, 35, 0.4);
|
|
transform: scale(1.05);
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/* Search button specific styling */
|
|
header button[id^="search-button"] {
|
|
padding: 0.5rem 1rem;
|
|
background: rgba(18, 47, 101, 0.25);
|
|
border-radius: 8px;
|
|
border: 1px solid rgba(25, 25, 35, 0.35);
|
|
transition: all 0.3s ease;
|
|
backdrop-filter: blur(4px);
|
|
/* We use steps here to limit framerate to reduce CPU usage displaying the animation*/
|
|
/* Because it is a slowly changing background, a low framerate does not impact apparent smoothness of the animation */
|
|
animation: backdropShift 20s forwards steps(200) infinite;
|
|
-webkit-backdrop-filter: blur(8px);
|
|
filter: saturate(0.9) brightness(0.9);
|
|
}
|
|
|
|
header button[id^="search-button"]:hover {
|
|
background-color: rgba(25, 25, 35, 0.4);
|
|
transform: scale(1.05);
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
@keyframes backdropShift {
|
|
0% {
|
|
backdrop-filter: blur(8px) hue-rotate(-10deg);
|
|
}
|
|
50% {
|
|
backdrop-filter: blur(8px) hue-rotate(10deg);
|
|
}
|
|
100% {
|
|
backdrop-filter: blur(8px) hue-rotate(-10deg);
|
|
}
|
|
}
|
|
|
|
/* TOC link styling */
|
|
#TableOfContents a {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
text-decoration: none;
|
|
transition: all 0.3s ease;
|
|
display: block;
|
|
padding: 0.25rem 0;
|
|
}
|
|
|
|
#TableOfContents a:hover {
|
|
color: white;
|
|
transform: translateX(4px);
|
|
}
|
|
|
|
/* Active TOC item */
|
|
#TableOfContents a.active {
|
|
color: white;
|
|
font-weight: 600;
|
|
transform: translateX(4px);
|
|
position: relative;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
#TableOfContents a.active::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: -1rem;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 4px;
|
|
height: 1rem;
|
|
background: linear-gradient(to bottom, #4a9eff, #2d7bda);
|
|
border-radius: 2px;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
/* Remove the default smooth scrolling behavior */
|
|
html {
|
|
scroll-behavior: smooth;
|
|
} |