{% extends "base.html" %} {% from '_macros/carousel.html' import carousel with context %} {% block title %}{{ collection.name }} — Collections{% endblock %} {% block styles %} /* ── Carousel ────────────────────────────────────────────────── */ .carousel { position: relative; overflow: hidden; background: var(--cream); border-radius: 2px; margin-bottom: 2rem; width: 100%; max-height: 75vh; } .carousel-track { display: flex; transition: transform 0.3s ease; will-change: transform; } .carousel-slide { flex: 0 0 100%; width: 100%; display: flex; justify-content: center; max-height: 75vh; } .carousel-slide img { width: auto; height: auto; max-width: 100%; max-height: 75vh; display: block; } .carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.75); border: none; cursor: pointer; font-size: 1.4rem; padding: 0.4rem 0.75rem; color: var(--accent); border-radius: 2px; line-height: 1; } .carousel-btn:hover { background: rgba(255,255,255,0.95); } .carousel-btn--prev { left: 0.5rem; } .carousel-btn--next { right: 0.5rem; } .carousel-counter { position: absolute; bottom: 0.5rem; right: 0.75rem; font-size: 0.72rem; color: var(--muted); background: rgba(255,255,255,0.7); padding: 0.15rem 0.4rem; border-radius: 2px; } /* ── Meta strip ──────────────────────────────────────────────── */ .collection-meta { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: 1.5rem; font-size: 0.85rem; color: var(--muted); } .collection-meta a { color: var(--accent); text-decoration: none; } .collection-meta a:hover { text-decoration: underline; } /* ── Member grid ─────────────────────────────────────────────── */ .member-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1rem; } .member-card { border: 1px solid var(--rule); border-radius: 2px; overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: box-shadow 0.15s; } .member-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.08); } .member-card-image { aspect-ratio: 3/4; background: var(--cream); overflow: hidden; } .member-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; } .member-card-body { padding: 0.4rem 0.5rem 0.5rem; } .member-card-name { font-size: 0.78rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .member-card-meta { font-size: 0.72rem; color: var(--muted); } /* ── Colour group headings ───────────────────────────────────── */ .colour-group-heading { font-family: var(--serif-body); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin: 1.5rem 0 0.5rem; padding-bottom: 0.25rem; border-bottom: 1px solid var(--rule); } .colour-group-heading:first-child { margin-top: 0; } {% endblock %} {% block content %}
{{ collection.notes }}
{% endif %} {# ── Carousel ──────────────────────────────────────────────────── #} {% if images %}No garments in this collection yet. Add some →
{% endif %} {% endblock %}