Files
bqkc/_sass/_custom.scss
2025-12-29 17:15:01 -06:00

524 lines
11 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Put your custom SCSS here!
This allows you to override any CollectionBuilder or Bootstrap CSS without modifying the base theme files directly.
*/
/* =========================
Base Color System
========================= */
:root {
--bg-black: #000000;
--bg-soft-black: #0e0e0e;
--text-white: #f5f5f5;
--text-muted: #bfbfbf;
--border-white: #ffffff;
}
/* =========================
Global Black Site
========================= */
body {
background-color: var(--bg-black);
color: var(--text-white);
}
input, textarea {
color: white;
}
::placeholder {
color: rgba(255,255,255,0.6);
}
/* === Site title / navbar title color === */
.navbar-brand,
.navbar-brand a,
.navbar-dark .navbar-brand,
.navbar-dark .navbar-brand:focus,
.navbar-dark .navbar-brand:hover {
color: #ffffff !important;
}
/* === Make muted text readable on black === */
.text-muted {
color: rgba(255, 255, 255, 0.65) !important;
}
/* === Force site title in navbar to white === */
header .navbar-brand,
header .navbar-brand *,
#home-banner-logo {
color: #ffffff !important;
}
/* === Nuclear fix: make all header links white === */
header a,
header a * {
color: #ffffff !important;
}
#header a,
#header a * {
color: #ffffff !important;
}
/* Only change the inner-page site title */
#title a.text-dark,
#title a.text-dark:hover,
#title a.text-dark:focus {
color: #ffffff !important;
}
/* =========================
Footer layout + logo
========================= */
/* top row: text/nav left, logo right (from footer.html .footer-top row) */
.footer-top {
align-items: stretch;
}
/* footer logo wrapper */
.footer-logo-spinner {
display: flex;
justify-content: flex-end; /* align logo to the right on desktop */
padding: 0.5rem 0;
}
/* video sizing */
.footer-logo-spinner video {
width: 300px; /* tweak as needed */
max-width: 100%; /* dont overflow on small screens */
height: auto;
}
/* Respect accessibility: reduce extra visual processing for motion-sensitive users */
/* Note: this does NOT actually stop the video, but avoids adding any extra CSS animation effects. */
@media (prefers-reduced-motion: reduce) {
.footer-logo-spinner video {
animation: none !important; /* in case we ever add keyframe animation later */
filter: grayscale(30%); /* optional styling touch, keep or remove as you like */
}
}
/* bottom strip (built with CB + last updated) */
#footer-credits {
text-align: center;
margin-top: 1rem;
}
/* -------------------------
Dark theme & item cards
------------------------- */
.bg-dark,
.navbar-dark.bg-dark,
footer.bg-dark {
background-color: #000000 !important;
}
footer,
#footer,
.site-footer,
#collection-footer {
background-color: #000000 !important;
color: #ffffff;
}
footer a {
color: #ffffff;
}
footer a:hover {
color: #cccccc;
}
/* Single-item image card */
main[role="main"] .card.mb-4.text-center {
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
}
main[role="main"] .card.mb-4.text-center img {
border-radius: 6px;
border: 1px solid rgba(255, 255, 255, 0.18);
}
/* “Click to view full screen” text */
main[role="main"] .text-center small {
color: rgba(255, 255, 255, 0.75) !important;
}
/* -------------------------
Links
------------------------- */
a {
text-decoration: underline;
text-underline-offset: 0.18em;
}
.navbar a,
#footer-nav a,
.btn,
.btn a,
.card-title a,
.browse .card-title a {
text-decoration: none;
}
a:hover {
color: #bfbfbf;
}
/* -------------------------
Buttons global
------------------------- */
.btn,
.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-primary {
background-color: transparent !important;
color: #ffffff !important;
border: 1px solid #ffffff !important;
border-radius: 4px;
}
.btn:hover,
.btn:focus,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus {
background-color: #ffffff !important;
color: #000000 !important;
text-decoration: none;
}
/* Buttons on white / light cards */
.card .btn,
.bg-white .btn,
.bg-light .btn {
background-color: transparent !important;
color: #000000 !important;
border-color: #000000 !important;
}
.card .btn:hover,
.card .btn:focus,
.bg-white .btn:hover,
.bg-white .btn:focus,
.bg-light .btn:hover,
.bg-light .btn:focus {
background-color: #000000 !important;
color: #ffffff !important;
}
/* -------------------------
Browse page controls
------------------------- */
/* Search + Reset attached to browse search field */
#browse .input-group .btn {
background-color: #000000 !important;
color: #ffffff !important;
border: 1px solid #ffffff !important;
border-radius: 0 !important;
}
#browse .input-group .btn:hover,
#browse .input-group .btn:focus {
background-color: #ffffff !important;
color: #000000 !important;
}
/* -------------------------
Navbar search button
------------------------- */
.navbar .input-group .btn {
border-radius: 0 4px 4px 0;
background-color: transparent !important;
border: 1px solid #ffffff !important;
color: #ffffff !important;
}
.navbar .btn .bi-search,
.navbar .btn svg {
color: #ffffff !important;
fill: #ffffff !important;
}
/* -------------------------
Item-page buttons
------------------------- */
body.item-page main[role="main"] .text-center a.btn {
display: inline-block;
background-color: transparent !important;
color: #ffffff !important;
border: 1px solid #ffffff !important;
border-radius: 4px;
text-decoration: none;
}
body.item-page main[role="main"] .text-center a.btn:hover,
body.item-page main[role="main"] .text-center a.btn:focus {
background-color: #ffffff !important;
color: #000000 !important;
}
/* “View on Map” / “Download JPG” buttons under main image */
main[role="main"] .card.mb-4.text-center .btn-group .btn-outline-primary {
background-color: transparent !important;
color: #ffffff !important;
border: 1px solid #ffffff !important;
border-radius: 4px;
text-decoration: none;
}
main[role="main"] .card.mb-4.text-center .btn-group .btn-outline-primary:hover,
main[role="main"] .card.mb-4.text-center .btn-group .btn-outline-primary:focus {
background-color: #ffffff !important;
color: #000000 !important;
}
/* -------------------------
Map page FuseSearch
------------------------- */
.leaflet-fusesearch-panel .search-input {
color: #000000 !important;
background-color: #ffffff !important;
border: 1px solid #00000033;
}
.leaflet-fusesearch-panel .search-input::placeholder {
color: #555555 !important;
}
/* -------------------------
Homepage carousel button
------------------------- */
.carousel .btn,
.carousel .btn-outline-primary {
color: #ffffff !important;
border: 1px solid #ffffff !important;
background: rgba(0, 0, 0, 0.55) !important;
backdrop-filter: blur(2px);
}
.carousel .btn:hover,
.carousel .btn-outline-primary:hover {
background: #ffffff !important;
color: #000000 !important;
}
/* -------------------------
Typography
------------------------- */
main h1,
main h2,
main h3 {
letter-spacing: 0.04em;
}
.section-label {
font-size: 0.8rem;
letter-spacing: 0.16em;
text-transform: uppercase;
}
main p {
font-size: 0.98rem;
line-height: 1.6;
}
#metadata p,
#metadata li {
line-height: 1.5;
}
#metadata strong {
letter-spacing: 0.08em;
text-transform: uppercase;
font-size: 0.8rem;
}
/* =========================
Home Banner styling
========================= */
#home-banner {
position: relative;
min-height: 380px;
max-height: 580px;
padding: 3.5rem 0 2.5rem;
background-color: #000; /* safety if image fails */
}
/* container that holds the title box + Featured Image pill */
#home-title-box {
position: relative;
}
/* inner dark rectangle with title + tagline */
#home-title-box > .p-2 {
/* turn the centered strip into a badge */
display: inline-block;
text-align: left;
padding: 1.25rem 1.6rem !important;
margin-left: 1.5rem;
background: rgba(0, 0, 0, 0.88) !important;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.25);
}
/* title inside the banner */
#home-title-box h1 {
margin: 0;
font-size: clamp(2rem, 3.4vw, 3rem);
text-align: left;
letter-spacing: 0.04em;
font-weight: 700;
}
#home-title-box h1 a {
color: #ffffff !important;
text-decoration: none;
}
/* tagline inside banner */
#home-title-box p {
margin: 0.35rem 0 0;
font-size: 0.95rem;
opacity: 0.85;
}
/* mobile: center the badge instead of left-aligning it */
@media (max-width: 767px) {
#home-title-box {
text-align: center;
}
#home-title-box > .p-2 {
margin-left: 0;
}
}
/* === Featured Image label on home hero === */
#home-banner {
position: relative; /* anchor for absolutely positioned label */
}
#home-banner .featured-image-label {
position: absolute;
bottom: 0.75rem;
right: 1rem;
padding: 0.15rem 0.6rem;
background: rgba(0, 0, 0, 0.75); /* like the old design, but subtle */
}
#home-banner .featured-image-label a {
font-size: 0.7rem;
letter-spacing: 0.18em;
text-transform: uppercase;
font-weight: 700;
color: #ffffff !important;
text-decoration: none;
}
#home-banner .featured-image-label a:hover,
#home-banner .featured-image-label a:focus {
text-decoration: underline;
}
/* =========================
Subpage header (under nav)
========================= */
main #title h1 {
margin: 0;
font-size: 1.5rem;
letter-spacing: 0.04em;
font-weight: 700;
text-transform: none; /* don't force all caps */
}
main #title h1 a {
color: #ffffff !important;
text-decoration: none;
}
main #title p {
margin: 0.35rem 0 0;
font-size: 0.9rem;
opacity: 0.8;
}
@media (max-width: 575px) {
main #title {
padding: 1.1rem 0 0.8rem;
margin-bottom: 1rem;
}
main #title h1 {
font-size: 1.25rem;
}
}
/* =========================
Subpage header (below nav)
========================= */
#title {
padding: 1.5rem 0 1.1rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.18);
margin-bottom: 1.5rem;
}
#title h1 {
margin: 0;
font-size: 1.5rem;
letter-spacing: 0.04em;
font-weight: 700;
text-transform: none; /* keep {B/qKC} style */
}
/* keep links looking like the site title, not underlined */
#title h1 a {
color: #ffffff !important;
text-decoration: none;
}
#title p {
margin: 0.35rem 0 0;
font-size: 0.9rem;
opacity: 0.8;
}
@media (max-width: 575px) {
#title {
padding: 1.1rem 0 0.8rem;
margin-bottom: 1rem;
}
#title h1 {
font-size: 1.25rem;
}
}
/* ---------------------------------
Card hover lift (non-modal only)
--------------------------------- */
/* Only apply when no Bootstrap modal is open.
When a modal is open, body gets .modal-open, so this shuts off. */
body:not(.modal-open) .card {
transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
body:not(.modal-open) .card:hover {
transform: translateY(-4px);
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}