source: Klonkt/src/views/pages/circle-feed.ejs@ 9d9f3c1

main
Last change on this file since 9d9f3c1 was 5c261b7, checked in by roboburr <roboburr@…>, 3 months ago

Circle feed: "je" → "mijn" + standalone "Add sites via Admin" sentence removed

Empty state: "Nothing in my circle yet." (without the Admin instruction). Count:
"X sites in my circle".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@…>

  • Property mode set to 100644
File size: 4.1 KB
RevLine 
[8ea3d0d]1<div class="container cirkel-hero">
2 <span class="cirkel-badge" aria-hidden="true">
3 <svg viewBox="0 0 64 64" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">
4 <line x1="32" y1="16" x2="17" y2="45"/>
5 <line x1="32" y1="16" x2="47" y2="45"/>
6 <line x1="17" y1="45" x2="47" y2="45"/>
7 <circle cx="32" cy="16" r="8" fill="currentColor" fill-opacity=".16"/>
8 <circle cx="17" cy="45" r="8" fill="currentColor" fill-opacity=".16"/>
9 <circle cx="47" cy="45" r="8" fill="currentColor" fill-opacity=".16"/>
10 </svg>
11 </span>
[43dbf9c]12 <h1>Cirkel</h1>
[64b90c0]13 <p class="cirkel-sub">Wat er speelt bij de andere sites in mijn cirkel.</p>
[8ea3d0d]14 <% if (typeof sites !== 'undefined' && sites && sites.length) { %>
[3f893bf]15 <% if (sites.length <= 5) { %>
[8ea3d0d]16 <div class="cirkel-members">
[3f893bf]17 <% sites.forEach(function(s){ %>
[8ea3d0d]18 <% if (s.url) { %><a class="cirkel-member" href="<%= s.url %>" target="_blank" rel="noopener" title="<%= s.name %>"><% } else { %><span class="cirkel-member" title="<%= s.name %>"><% } %>
19 <span class="cirkel-avatar"<% if (s.avatar) { %> style="background-image:url('<%= s.avatar %>')"<% } %>><% if (!s.avatar) { %><%= (s.name || '?').charAt(0).toUpperCase() %><% } %></span>
20 <span class="cirkel-member-name"><%= s.name %></span>
21 <% if (s.url) { %></a><% } else { %></span><% } %>
22 <% }); %>
23 </div>
[3f893bf]24 <% } else { %>
25 <%# Meer dan 5: geen chips (zou een muur worden) — alleen het aantal. %>
[5c261b7]26 <span class="cirkel-count"><%= sites.length %> sites in mijn cirkel</span>
[04a6b15]27 <% } %>
[8ea3d0d]28 <% } %>
[43dbf9c]29</div>
[0091cb7]30
[43dbf9c]31<% if (!posts.length) { %>
32 <div class="container">
[5c261b7]33 <p class="cirkel-empty">Nog niets in mijn cirkel.</p>
[43dbf9c]34 </div>
35<% } else { %>
36
37 <%# Dezelfde view als de hoofdpagina: timeline (post-card) + grid (post-tile),
38 gewisseld door de view-switcher via body[data-feed-view]. De remote-posts
39 zijn in circle.js naar het lokale post-shape gevormd (met external_url,
40 zodat de kaarten naar de bron-site linken). %>
41
42 <!-- ===== TIMELINE (standaard) ===== -->
43 <div class="container feed-timeline">
44 <ul class="post-list feed-timeline-list">
45 <% posts.forEach(function(post){ %>
46 <%- include('../partials/post-card', { post: post }) %>
47 <% }); %>
48 </ul>
49 </div>
50
51 <!-- ===== GRID (body[data-feed-view="grid"]) ===== -->
52 <section class="feed-grid container" aria-label="Grid-weergave">
53 <div class="grid-tiles">
54 <% posts.forEach(function(post){ %>
55 <%- include('../partials/post-tile', { post: post }) %>
[0091cb7]56 <% }); %>
57 </div>
[43dbf9c]58 </section>
59
60<% } %>
[0091cb7]61
62<style>
[8ea3d0d]63.cirkel-hero { text-align: center; max-width: 640px; margin: 2.5rem auto 2rem; }
64.cirkel-badge { display: block; width: 60px; height: 60px; margin: 0 auto .6rem; color: var(--accent); }
65.cirkel-badge svg { width: 100%; height: 100%; }
66.cirkel-hero h1 { font-family: var(--font-display, serif); font-size: 2.4rem; margin: 0 0 .3rem; }
67.cirkel-sub { color: var(--ink-muted); margin: 0 0 1.25rem; font-size: 1.02rem; }
68.cirkel-members { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center; }
69.cirkel-member { display: inline-flex; align-items: center; gap: .45rem;
70 padding: .28rem .8rem .28rem .3rem; border: 1px solid var(--rule); border-radius: 999px;
71 text-decoration: none; color: var(--ink); background: var(--paper-2);
72 transition: border-color .15s, transform .15s; }
73.cirkel-member:hover { border-color: var(--accent); transform: translateY(-1px); }
74.cirkel-avatar { width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
75 background-size: cover; background-position: center; background-color: var(--accent);
76 color: #fff; display: inline-flex; align-items: center; justify-content: center;
77 font-weight: 700; font-size: .82rem; }
78.cirkel-member-name { font-size: .9rem; font-weight: 600; }
[3f893bf]79.cirkel-count { display: inline-block; color: var(--ink-muted); font-size: .92rem; font-weight: 600;
80 padding: .35rem 1rem; border: 1px solid var(--rule); border-radius: 999px; background: var(--paper-2); }
[8ea3d0d]81.cirkel-empty { color: var(--ink-muted); text-align: center; margin: 2rem auto; }
[43dbf9c]82.cirkel-empty a { color: var(--accent); }
[0091cb7]83</style>
Note: See TracBrowser for help on using the repository browser.