source: Klonkt/src/views/pages/prutter-inbox.ejs@ 6fcd0cf

main
Last change on this file since 6fcd0cf was dd80030, checked in by roboburr <roboburr@…>, 3 months ago

Prutter inbox: also hide site footer (same as the chat)

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

  • Property mode set to 100644
File size: 3.8 KB
Line 
1<div class="container prutter-inbox-page">
2 <header class="prutter-header">
3 <h1>Prutter</h1>
4 <p class="prutter-tagline">Your direct messages on this site.</p>
5 </header>
6
7 <% if (!conversations.length) { %>
8 <p class="prutter-empty">
9 No conversations yet. Open someone's profile and click <em>Send DM</em> to start one.
10 </p>
11 <% } else { %>
12 <ol class="prutter-conv-list">
13 <% conversations.forEach(function(c) { %>
14 <li class="prutter-conv-row">
15 <a class="prutter-conv-link" href="<%= siteUrlBase %>/prutter/<%= c.id %>">
16 <div class="prutter-conv-avatar">
17 <% if (c.other_avatar) { %>
18 <img src="<%= c.other_avatar %>" alt="">
19 <% } else { %>
20 <span><%= (c.other_username || '?').charAt(0).toUpperCase() %></span>
21 <% } %>
22 </div>
23 <div class="prutter-conv-body">
24 <div class="prutter-conv-meta">
25 <strong class="prutter-conv-name"><%= c.other_username %></strong>
26 <% if (c.last_message_at) { %>
27 <span class="prutter-conv-time"><%= formatDateTime(c.last_message_at) %></span>
28 <% } %>
29 </div>
30 <% if (c.last_message_preview) { %>
31 <div class="prutter-conv-preview"><%= c.last_message_preview %></div>
32 <% } else { %>
33 <div class="prutter-conv-preview muted">Empty conversation</div>
34 <% } %>
35 </div>
36 <% if (c.unread_count > 0) { %>
37 <span class="prutter-unread-badge"><%= c.unread_count %></span>
38 <% } %>
39 </a>
40 </li>
41 <% }); %>
42 </ol>
43 <% } %>
44</div>
45
46<style>
47/* Geen site-footer in Prutter (ook niet op de inbox) — net als de chat. */
48body:has(.prutter-inbox-page) .site-footer { display: none; }
49
50.prutter-inbox-page { max-width: 720px; margin: 3rem auto; padding: 0 1rem; }
51.prutter-header h1 {
52 font-family: var(--font-display, serif);
53 font-size: 2rem; margin: 0 0 0.25rem;
54}
55.prutter-tagline { color: var(--ink-muted, var(--ink-soft)); margin: 0 0 1.5rem; }
56.prutter-empty {
57 text-align: center; padding: 2rem; color: var(--ink-muted, var(--ink-soft));
58 background: var(--paper-2); border: 1px dashed var(--rule); border-radius: 8px;
59}
60
61.prutter-conv-list { list-style: none; padding: 0; margin: 0; }
62.prutter-conv-row { border-bottom: 1px solid var(--rule); }
63.prutter-conv-row:last-child { border-bottom: 0; }
64.prutter-conv-link {
65 display: flex; gap: 0.85rem; align-items: center;
66 padding: 0.85rem 0;
67 text-decoration: none; color: var(--ink);
68 transition: background 100ms;
69}
70.prutter-conv-link:hover { background: var(--paper-2); }
71
72.prutter-conv-avatar {
73 flex-shrink: 0;
74 width: 44px; height: 44px;
75 border-radius: 50%;
76 overflow: hidden;
77 background: var(--paper-2);
78 border: 1px solid var(--rule);
79 display: inline-flex; align-items: center; justify-content: center;
80}
81.prutter-conv-avatar img { width: 100%; height: 100%; object-fit: cover; }
82.prutter-conv-avatar span {
83 font-family: var(--font-display, serif);
84 font-weight: 700; color: var(--accent);
85}
86
87.prutter-conv-body { flex: 1; min-width: 0; }
88.prutter-conv-meta {
89 display: flex; justify-content: space-between; gap: 0.5rem;
90 margin-bottom: 0.15rem;
91}
92.prutter-conv-name { font-weight: 600; }
93.prutter-conv-time {
94 color: var(--ink-muted, var(--ink-soft));
95 font-size: 0.8rem; flex-shrink: 0;
96}
97.prutter-conv-preview {
98 color: var(--ink-soft);
99 font-size: 0.9rem;
100 white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
101}
102.prutter-conv-preview.muted { font-style: italic; color: var(--ink-muted, var(--ink-soft)); }
103
104.prutter-unread-badge {
105 background: var(--accent); color: white;
106 border-radius: 10px;
107 padding: 0.1rem 0.5rem;
108 font-size: 0.75rem;
109 font-weight: 600;
110}
111</style>
Note: See TracBrowser for help on using the repository browser.