{% extends "base.html" %} {% block title %}Wardrobe{% endblock %} {% block styles %} /* ── Filter bar ── */ .filter-bar { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 36px; padding: 16px 20px; background: var(--cream); border: 1px solid var(--rule); } .filter-bar .filter-group { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 120px; } .filter-bar label { font-family: var(--serif-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); } .filter-bar select, .filter-bar input[type="text"] { font-family: var(--serif-body); font-size: 0.88rem; padding: 5px 8px; border: 1px solid var(--rule); background: #fff; color: var(--ink); width: 100%; } .filter-bar .filter-actions { display: flex; gap: 8px; align-items: flex-end; padding-bottom: 1px; } /* ── Body part sections ── */ .body-section { margin-bottom: 48px; } .body-section-heading { font-family: var(--serif-display); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--rule); padding-bottom: 8px; margin-bottom: 20px; } /* ── Garment grid ── */ .garment-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; } /* ── Garment card ── */ .garment-card { display: block; text-decoration: none; color: var(--ink); border: 1px solid var(--rule); background: #fff; transition: border-color 0.15s, box-shadow 0.15s; cursor: pointer; } .garment-card:hover { border-color: var(--accent); box-shadow: 0 2px 8px rgba(42,77,58,0.10); } .garment-card-image { width: 100%; aspect-ratio: 3 / 4; overflow: hidden; background: var(--cream); display: flex; align-items: center; justify-content: center; } .garment-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; } .garment-card-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 16px; text-align: center; height: 100%; } .garment-card-placeholder .placeholder-class { font-family: var(--serif-display); font-size: 0.78rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; } .garment-card-placeholder .placeholder-colour { font-size: 0.75rem; color: var(--muted); } .garment-card-body { padding: 10px 12px; border-top: 1px solid var(--cream); } .garment-card-name { font-size: 0.82rem; font-weight: 600; line-height: 1.3; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .garment-card-meta { font-size: 0.75rem; color: var(--muted); display: flex; gap: 6px; align-items: center; } .count-badge { display: inline-block; background: var(--accent); color: #fff; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; padding: 1px 6px; border-radius: 2px; margin-bottom: 4px; } .colour-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--rule); flex-shrink: 0; } {% endblock %} {% block content %} Wardrobe {{ total }} garment{{ 's' if total != 1 }} {# ── Filter bar ── #} Search Classification All {% for cls in classifications %} {{ cls }} {% endfor %} Colour All {% for c in colours %} {{ c }} {% endfor %} Gender All Female Male Formal All Yes No Filter {% if filters.name or filters.classification or filters.colour or filters.gender or filters.formal %} Clear {% endif %} + Add Garment {# ── Body part sections ── #} {% if not groups %} No garments found. {% else %} {% for body_part, garments in groups %} {{ body_part }} ({{ garments|length }}) {% for g in garments %} {% if g.front_image %} {% else %} {{ g.classification }} {% if g.colour %} {{ g.colour }} {% if g.colour_secondary %} / {{ g.colour_secondary }}{% endif %} {% endif %} {% endif %} {{ g.name | truncate(40, true, '…') }} {% if g.duplicate_count > 1 %} ×{{ g.duplicate_count }} {% endif %} {% if g.colour %} {{ g.colour }}{% if g.colour_secondary %}/{{ g.colour_secondary }}{% endif %} {% else %} {{ g.classification }} {% endif %} {% endfor %} {% endfor %} {% endif %} {% endblock %} {% block scripts %} {% endblock %}
No garments found.