Files
linkvault/app/templates/_link_card_edit.html
Erik Thiele 4d96dfb9ac Use full page width with a responsive link grid
The layout was capped at 1200px and listed links in a single column.
Drop the cap and lay the cards out in a grid: three per row on wide
screens, two from 1000px, one below that.

To make the narrower cards work, shorten the edit action to an icon
button so the title and URL keep their room, and let the edit form's
field and button rows wrap.

Also fixes pre-existing horizontal overflow on phone widths by
stacking the sidebar above the content and letting the add-link form
wrap. Grid tracks use minmax(0, 1fr) so cards can shrink below their
content's intrinsic width instead of pushing the page wider.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-20 14:56:42 +02:00

58 lines
2.3 KiB
HTML

<div class="panel link-card" id="link-{{ link.id }}">
<form hx-put="/links/{{ link.id }}" hx-target="#link-{{ link.id }}" hx-swap="outerHTML"
hx-disabled-elt="button">
<div class="muted" style="font-size:.8rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;">
{{ link.url }}
</div>
<div class="muted" style="font-size:.75rem; margin:3px 0 10px;">
🕓 hinzugefügt am {{ link.created_at | datum }}
</div>
<div class="field">
<label>Titel</label>
<input type="text" name="title" value="{{ link.title }}">
</div>
<div class="field">
<label>Zusammenfassung</label>
<textarea name="summary" rows="3" style="width:100%; background:var(--panel2); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px 12px; font-size:.95rem; font-family:inherit;">{{ link.summary }}</textarea>
</div>
<div style="display:flex; gap:12px; flex-wrap:wrap;">
<div class="field" style="flex:1 1 160px;">
<label>Kategorie</label>
<input type="text" name="category" value="{{ link.category }}">
</div>
<div class="field" style="flex:1 1 160px;">
<label>Hersteller / Quelle</label>
<input type="text" name="manufacturer" value="{{ link.manufacturer }}">
</div>
</div>
<div class="field">
<label>Tags (mit Komma getrennt)</label>
<input type="text" name="tags" value="{{ link.tag_list | join(', ') }}">
</div>
<div style="display:flex; justify-content:space-between; gap:8px; margin-top:4px; flex-wrap:wrap;">
<div style="display:flex; gap:8px;">
<button type="submit">Speichern</button>
<button type="button" class="ghost"
hx-get="/links/{{ link.id }}/view"
hx-target="#link-{{ link.id }}"
hx-swap="outerHTML">Abbrechen</button>
</div>
{% if ai_enabled %}
<button type="button" class="ghost"
hx-post="/links/{{ link.id }}/reanalyze"
hx-target="#link-{{ link.id }}"
hx-swap="outerHTML"
hx-disabled-elt="this"
hx-confirm="Link erneut laden und von der KI neu beschreiben lassen? Bestehende Angaben werden dabei ersetzt.">
<span class="htmx-indicator"></span> 🤖 KI neu beschreiben lassen
</button>
{% endif %}
</div>
</form>
</div>