227 lines
5 KiB
CSS
227 lines
5 KiB
CSS
/* Nationaal Archief style - matching https://www.nationaalarchief.nl/ */
|
|
|
|
/* Import RO Serif (or fallback to Georgia for serif headings) */
|
|
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap');
|
|
|
|
:root {
|
|
/* NA Color Palette */
|
|
--na-primary: #007bc7;
|
|
--na-red: #d52b1e;
|
|
--na-orange: #e17000;
|
|
--na-green: #39870c;
|
|
--na-cream: #f7f5f3;
|
|
--na-dark-blue: #154273;
|
|
--na-text: #333333;
|
|
--na-text-secondary: #666666;
|
|
|
|
/* Typography */
|
|
font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
line-height: 1.5;
|
|
font-weight: 400;
|
|
color-scheme: light;
|
|
font-synthesis: none;
|
|
text-rendering: optimizeLegibility;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
min-width: 320px;
|
|
min-height: 100vh;
|
|
background-color: var(--na-cream);
|
|
color: var(--na-text);
|
|
}
|
|
|
|
#root {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Serif headings like NA uses */
|
|
h1, h2, h3 {
|
|
font-family: Georgia, 'Times New Roman', serif;
|
|
font-weight: 400;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* NA-style links */
|
|
a {
|
|
color: var(--na-primary);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* NA-style buttons */
|
|
.na-button {
|
|
background-color: var(--na-primary);
|
|
color: white;
|
|
border: none;
|
|
padding: 12px 24px;
|
|
font-size: 16px;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
transition: background-color 0.2s;
|
|
}
|
|
|
|
.na-button:hover {
|
|
background-color: #005a8e;
|
|
}
|
|
|
|
/* Section card accent borders */
|
|
.section-onderzoeken {
|
|
border-top: 4px solid var(--na-primary);
|
|
}
|
|
|
|
.section-beleven {
|
|
border-top: 4px solid var(--na-orange);
|
|
}
|
|
|
|
.section-archiveren {
|
|
border-top: 4px solid var(--na-green);
|
|
}
|
|
|
|
/* ========================================
|
|
Toggle Footer Styles
|
|
======================================== */
|
|
|
|
/* Footer toggle button - always visible at bottom center */
|
|
.footer-toggle-btn {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 48px;
|
|
height: 28px;
|
|
background: var(--na-dark-blue);
|
|
border: none;
|
|
border-radius: 8px 8px 0 0;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1000;
|
|
transition: background-color 0.2s, transform 0.3s;
|
|
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.footer-toggle-btn:hover {
|
|
background: var(--na-primary);
|
|
}
|
|
|
|
.footer-toggle-btn svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
color: white;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.footer-toggle-btn.footer-open svg {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
/* Hidden footer container */
|
|
.toggle-footer {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--na-dark-blue);
|
|
color: #fff;
|
|
transform: translateY(100%);
|
|
transition: transform 0.3s ease-in-out;
|
|
z-index: 999;
|
|
max-height: 60vh;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.toggle-footer.footer-visible {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
/* Adjust toggle button position when footer is open */
|
|
.footer-toggle-btn.footer-open {
|
|
bottom: auto;
|
|
/* Position will be set dynamically based on footer height */
|
|
}
|
|
|
|
/* ========================================
|
|
Collapsible Header Styles
|
|
======================================== */
|
|
|
|
/* Small floating logo - appears when header is collapsed */
|
|
.header-logo-small {
|
|
position: fixed;
|
|
top: 12px;
|
|
left: 12px;
|
|
z-index: 1001;
|
|
display: block;
|
|
background: transparent;
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
cursor: pointer;
|
|
/* Hidden by default (when header is expanded) */
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transition: opacity 0.25s ease-out, transform 0.2s ease;
|
|
}
|
|
|
|
.header-logo-small.visible {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.header-logo-small-img {
|
|
width: 40px;
|
|
height: 40px;
|
|
display: block;
|
|
/* White contour/glow effect for visibility on any background */
|
|
filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.95))
|
|
drop-shadow(0 0 4px rgba(255, 255, 255, 0.8))
|
|
drop-shadow(0 0 6px rgba(255, 255, 255, 0.6));
|
|
transition: filter 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
.header-logo-small:hover {
|
|
transform: scale(1.08);
|
|
}
|
|
|
|
.header-logo-small:hover .header-logo-small-img {
|
|
filter: drop-shadow(0 0 3px rgba(255, 255, 255, 1))
|
|
drop-shadow(0 0 6px rgba(255, 255, 255, 0.9))
|
|
drop-shadow(0 0 8px rgba(255, 255, 255, 0.7));
|
|
}
|
|
|
|
/* Collapsible header container */
|
|
.header-collapsible {
|
|
transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1),
|
|
opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),
|
|
margin-bottom 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
max-height: 200px; /* Enough height for utility bar + header + nav */
|
|
overflow: hidden;
|
|
opacity: 1;
|
|
/* Flex-shrink so it gives up space when collapsed */
|
|
flex-shrink: 0;
|
|
/* Enable GPU acceleration for smoother animation */
|
|
will-change: max-height, opacity;
|
|
}
|
|
|
|
/* Collapsed state - hide header */
|
|
.header-collapsible.header-collapsed {
|
|
max-height: 0;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
/* Ensure no margin/padding takes up space */
|
|
margin-bottom: 0;
|
|
padding: 0;
|
|
}
|