67 lines
2.9 KiB
Twig
67 lines
2.9 KiB
Twig
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}VINDN — Find what's on{% endblock %}</title>
|
|
<link rel="stylesheet" href="{{ asset('styles.css') }}">
|
|
{% block head_extra %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<a href="#main" class="skip-link">Skip to content</a>
|
|
|
|
<header class="site-header">
|
|
<div class="wrap">
|
|
<a href="{{ path('home') }}" class="brand" aria-label="VINDN home">
|
|
<img src="{{ asset('images/vindn_logo_adobe.svg') }}" alt="VINDN">
|
|
</a>
|
|
<nav class="main-nav" aria-label="Primary">
|
|
<a href="{{ path('home') }}" class="{{ activeNav == 'home' ? 'is-active' : '' }}">Home</a>
|
|
<a href="{{ path('event_list') }}" class="{{ activeNav == 'events' ? 'is-active' : '' }}">Browse events</a>
|
|
<a href="{{ path('map') }}" class="{{ activeNav == 'map' ? 'is-active' : '' }}">Map</a>
|
|
</nav>
|
|
<div class="nav-actions">
|
|
<form class="nav-search" action="{{ path('event_list') }}" role="search">
|
|
<button type="submit" aria-label="Search">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
|
|
</button>
|
|
<label for="navSearchInput" style="display:none;">Search events</label>
|
|
<input id="navSearchInput" type="text" name="q" placeholder="Search events…" autocomplete="off" value="{{ app.request.query.get('q') }}">
|
|
</form>
|
|
<button class="nav-burger" aria-label="Open menu" aria-expanded="false" aria-controls="mobileMenu"><span></span><span></span><span></span></button>
|
|
</div>
|
|
</div>
|
|
<div class="mobile-menu" id="mobileMenu" hidden>
|
|
<nav aria-label="Primary">
|
|
<a href="{{ path('home') }}" class="{{ activeNav == 'home' ? 'is-active' : '' }}">Home</a>
|
|
<a href="{{ path('event_list') }}" class="{{ activeNav == 'events' ? 'is-active' : '' }}">Browse events</a>
|
|
<a href="{{ path('map') }}" class="{{ activeNav == 'map' ? 'is-active' : '' }}">Map</a>
|
|
</nav>
|
|
<form class="mobile-search" action="{{ path('event_list') }}" role="search">
|
|
<label for="mobileSearchInput" style="display:none;">Search events</label>
|
|
<input id="mobileSearchInput" type="text" name="q" placeholder="Search events…" autocomplete="off" value="{{ app.request.query.get('q') }}">
|
|
<button type="submit">Search</button>
|
|
</form>
|
|
</div>
|
|
</header>
|
|
|
|
<main id="main">
|
|
{% block body %}{% endblock %}
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<div class="wrap">
|
|
{% block footer %}
|
|
<div class="footer-bottom" style="border-top:none; margin-top:0; padding-top:0;">
|
|
<span>© 2026 VINDN</span>
|
|
</div>
|
|
{% endblock %}
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="{{ asset('js/location.js') }}"></script>
|
|
<script src="{{ asset('js/nav.js') }}"></script>
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|