// V2 chrome — donker & vintage: header, footer, stempel-badge, sectiehulpjes
const V2 = {
koper: '#C08A4B',
koperLicht: '#D9A96A',
inkt: '#1C2530',
navyDeep: '#242F3F',
navy: '#2F3C4F',
cream: '#FCF1D5',
paper: '#F6EFDE',
rood: '#922630',
};
window.V2 = V2;
// Subtiele fade-in bij scroll
function useReveal() {
const ref = React.useRef(null);
const [shown, setShown] = React.useState(false);
React.useEffect(() => {
const el = ref.current;
if (!el) return;
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { setShown(true); return; }
const io = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setShown(true); io.disconnect(); } }, { threshold: 0.15 });
io.observe(el);
return () => io.disconnect();
}, []);
return [ref, {
opacity: shown ? 1 : 0,
transform: shown ? 'none' : 'translateY(18px)',
transition: 'opacity 0.7s ease, transform 0.7s ease',
}];
}
window.useReveal = useReveal;
function Reveal({ children, style }) {
const [ref, anim] = useReveal();
return
{children}
;
}
window.Reveal = Reveal;
// Ronde "stempel" badge, licht gedraaid
function Stempel({ children, size = 120, rotate = -8, color = V2.koper, style }) {
return (
);
}
window.Stempel = Stempel;
// Vintage kicker: — TEKST —
function Kicker({ children, color = V2.koper, style }) {
return (
{children}
);
}
window.Kicker = Kicker;
function V2Button({ children, variant = 'koper', onClick, style }) {
const [hover, setHover] = React.useState(false);
const base = {
fontFamily: 'var(--font-body)', fontWeight: 700, fontSize: 15, letterSpacing: '0.1em', textTransform: 'uppercase',
padding: '15px 30px', cursor: 'pointer', borderRadius: 3, transition: 'all 0.25s ease', display: 'inline-block',
};
const variants = {
koper: { background: hover ? V2.koperLicht : V2.koper, color: V2.inkt, border: `1px solid ${V2.koper}` },
lijn: { background: hover ? 'rgba(252,241,213,0.1)' : 'transparent', color: V2.cream, border: `1px solid ${V2.cream}88` },
donker: { background: hover ? V2.navy : V2.inkt, color: V2.cream, border: `1px solid ${V2.inkt}` },
};
return (
);
}
window.V2Button = V2Button;
function V2Header({ page, onNavigate }) {
const items = ['Brouwerij', 'Bieren', 'Vrijwilligers'];
const [hovered, setHovered] = React.useState(null);
return (
);
}
window.V2Header = V2Header;
function V2Footer({ onNavigate }) {
return (
);
}
window.V2Footer = V2Footer;
function V2AgeGate({ onConfirm }) {
const [denied, setDenied] = React.useState(false);
return (

{denied ? (
Tot over een paar jaar
Deze website is bedoeld voor bezoekers van 18 jaar en ouder. Geen 18, geen alcohol.
NIX18
) : (
Ben je 18 jaar of ouder?
Om onze website te bezoeken moet je 18 jaar of ouder zijn.
Ja, ik ben 18+
setDenied(true)}>Nee
Drink beter, niet meer. · NIX18
)}
);
}
window.V2AgeGate = V2AgeGate;