Changeset 9eb6e1b in Klonkt for src/views/partials/fedi-interact-styles.ejs
- Timestamp:
- 09/30/2026 06:41:45 AM (2 hours ago)
- Branches:
- main
- Children:
- 86cfa1a
- Parents:
- 3ceaef6
- File:
-
- 1 edited
-
src/views/partials/fedi-interact-styles.ejs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/partials/fedi-interact-styles.ejs
r3ceaef6 r9eb6e1b 7 7 .auth-interact { max-width: 640px; margin: 1rem auto; padding: 0 1rem; } 8 8 .auth-interact-title { margin: 0 0 1rem; } 9 .auth-interact-meta { color: var(--ink-soft, #888); margin: 0 0 .75rem; }10 .auth-interact-preview {11 margin: 0 0 1rem; padding: .75rem 1rem; border-left: 3px solid var(--accent, #888);12 background: color-mix(in srgb, var(--ink, #000) 4%, transparent); border-radius: 0 12px 12px 0;13 color: var(--ink, inherit);14 }15 9 .auth-interact-form { display: flex; flex-direction: column; gap: .75rem; } 16 10 .auth-interact-form textarea, .auth-interact-form input[type=url] { … … 21 15 .auth-interact-actions { display: flex; gap: .5rem; align-items: center; } 22 16 .auth-interact-note { color: var(--ink-soft, #999); font-size: .85rem; margin-top: 1rem; } 23 .auth-interact-where { margin: .25rem 0 .85rem; padding: .6rem .8rem; font-size: .85rem; line-height: 1.5; border-radius: 10px; background: color-mix(in srgb, var(--accent, #888) 12%, transparent); color: var(--ink, inherit); }24 .auth-interact-content { line-height: 1.55; }25 .auth-interact-content p { margin: .35rem 0; }26 .auth-interact-content p:first-child { margin-top: 0; }27 .auth-interact-img { max-width: 100%; height: auto; border-radius: 10px; margin: .5rem 0 0; display: block; }28 .auth-interact-orig { margin: .75rem 0 0; font-size: .85rem; }29 .auth-interact-orig a { color: var(--accent, #06c); }30 .auth-view-src { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.1rem; padding: .6rem 1rem;31 border: 1px solid color-mix(in srgb, var(--accent, #888) 45%, transparent); border-radius: 12px;32 background: color-mix(in srgb, var(--accent, #888) 10%, transparent); color: var(--accent, #06c);33 text-decoration: none; font-weight: 600; font-size: .92rem; transition: background .15s, border-color .15s; }34 .auth-view-src:hover { background: color-mix(in srgb, var(--accent, #888) 18%, transparent); border-color: var(--accent, #888); }35 .auth-interact-react { display: flex; gap: .6rem; flex-wrap: wrap; margin: 0 0 .25rem; }36 .auth-interact-react form { margin: 0; }37 .fedi-bigact { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1.1rem; border-radius: 999px;38 border: 1px solid color-mix(in srgb, var(--ink, #000) 14%, transparent);39 background: color-mix(in srgb, var(--ink, #000) 4%, transparent);40 color: var(--ink, inherit); font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; white-space: nowrap;41 transition: background .12s, border-color .12s; }42 .fedi-bigact svg { width: 17px; height: 17px; flex: 0 0 17px; }43 .fedi-bigact-like svg { color: #e8b04b; }44 .fedi-bigact-like:hover, .fedi-bigact-like.is-on { background: color-mix(in srgb, #e8b04b 16%, transparent); border-color: color-mix(in srgb, #e8b04b 55%, transparent); }45 .fedi-bigact-boost svg { color: #2fa85a; }46 .fedi-bigact-boost:hover, .fedi-bigact-boost.is-on { background: color-mix(in srgb, #2fa85a 16%, transparent); border-color: color-mix(in srgb, #2fa85a 55%, transparent); }47 17 .fedi-manage { list-style: none; padding: 0; margin: 1.25rem 0 1rem; display: flex; flex-direction: column; gap: .7rem; } 48 18 .fedi-manage-item { padding: .9rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--ink, #000) 3.5%, transparent); border: 1px solid color-mix(in srgb, var(--ink, #000) 9%, transparent); transition: border-color .15s ease, box-shadow .15s ease; } … … 87 57 .fedi-edit-save { padding: .4rem 1rem; border: 0; border-radius: 999px; background: var(--accent); color: var(--paper, #fff); 88 58 font: inherit; font-weight: 600; font-size: .82rem; cursor: pointer; } 89 /* Poll ballot / results on the interact page */ 90 .auth-poll { display: flex; flex-direction: column; gap: 8px; margin: 0 0 1rem; } 91 .auth-poll-choice { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; cursor: pointer; 59 60 /* ── De kaart van een post of profiel van een andere server ────────────── 61 Eén kaart voor de live-preview, de zoekpagina en /authorize_interaction. 62 De telefoon is het uitgangspunt: knoppen van minstens 44 punten, en op 63 een smal scherm vallen de woorden weg en blijven de tekens staan. */ 64 .rp-card { position: relative; padding: 14px 16px 4px; border-radius: 16px; 65 border: 1px solid color-mix(in srgb, var(--ink, #000) 10%, transparent); 66 background: color-mix(in srgb, var(--ink, #000) 2.5%, var(--paper, transparent)); 67 color: var(--ink, inherit); overflow: hidden; } 68 .rp-head { display: flex; align-items: center; gap: 10px; min-width: 0; margin: 0 0 10px; } 69 .rp-avatar { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; 70 background: color-mix(in srgb, var(--ink, #000) 8%, transparent); } 71 .rp-profile .rp-avatar { flex-basis: 56px; width: 56px; height: 56px; } 72 .rp-avatar-empty { display: inline-flex; align-items: center; justify-content: center; 73 font-weight: 700; color: var(--ink-soft, #888); } 74 .rp-who { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; } 75 .rp-name { font-weight: 700; color: var(--ink, inherit); text-decoration: none; 76 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 77 .rp-name:hover { text-decoration: underline; } 78 .rp-handle { font-size: .82rem; color: var(--ink-soft, #888); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 79 80 .rp-body { line-height: 1.55; overflow-wrap: anywhere; } 81 .rp-body p { margin: .45rem 0; } 82 .rp-body > :first-child { margin-top: 0; } 83 .rp-body > :last-child { margin-bottom: 0; } 84 .rp-body a { color: var(--accent, #06c); } 85 .rp-body img { max-width: 100%; height: auto; } 86 87 /* Beeld als raster: één foto op volle breedte, meer als tegels, zodat een 88 lange reeks de knoppen niet van het scherm duwt. */ 89 /* Vaste rijhoogtes in plaats van verhoudingen: met verhoudingen groeit het 90 raster mee met de breedte, en werd op een desktop de eerste van drie foto's 91 zo hoog dat de knoppen onder de vouw van de uitklaplijst verdwenen. */ 92 .rp-media { display: grid; gap: 3px; margin: 10px 0 0; border-radius: 12px; overflow: hidden; } 93 .rp-media a { display: block; min-width: 0; } 94 .rp-media img { display: block; width: 100%; height: 100%; object-fit: cover; } 95 .rp-media-1 img { height: auto; max-height: 480px; } 96 .rp-media-2, .rp-media-3, .rp-media-4 { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(120px, 28vw, 220px); } 97 .rp-media-3 a:first-child { grid-column: 1 / -1; } 98 .rp-compact .rp-media-1 img { max-height: 240px; } 99 .rp-compact .rp-media-2, .rp-compact .rp-media-3, .rp-compact .rp-media-4 { grid-auto-rows: 110px; } 100 101 /* Een inhoudswaarschuwing: dicht tot je ervoor kiest. */ 102 .rp-cw > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; 103 min-height: 44px; padding: 8px 12px; border-radius: 10px; cursor: pointer; font-weight: 600; 104 background: color-mix(in srgb, #e8b04b 12%, transparent); border: 1px solid color-mix(in srgb, #e8b04b 35%, transparent); } 105 .rp-cw > summary::-webkit-details-marker { display: none; } 106 .rp-cw-text { min-width: 0; overflow-wrap: anywhere; } 107 .rp-cw-open { flex: 0 0 auto; font-size: .8rem; color: var(--accent, #06c); } 108 .rp-cw[open] > summary { margin: 0 0 10px; } 109 .rp-cw[open] .rp-cw-open { display: none; } 110 111 /* De rij knoppen: gelijke tekens, het origineel rechts. */ 112 .rp-actions { display: flex; align-items: center; gap: 2px; margin: 10px -8px 0; padding: 2px 0; 113 border-top: 1px solid color-mix(in srgb, var(--ink, #000) 8%, transparent); } 114 .rp-actions form { margin: 0; } 115 .rp-act { display: inline-flex; align-items: center; justify-content: center; gap: 6px; 116 min-width: 44px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 999px; 117 background: transparent; color: var(--ink-soft, #888); font: inherit; font-size: .88rem; font-weight: 600; 118 text-decoration: none; cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent; 119 transition: background .12s, color .12s; } 120 .rp-act svg { flex: 0 0 18px; width: 18px; height: 18px; } 121 .rp-act:hover { background: color-mix(in srgb, var(--ink, #000) 6%, transparent); color: var(--ink, inherit); } 122 .rp-act:focus-visible { outline: 2px solid var(--accent, #06c); outline-offset: 2px; } 123 .rp-act[disabled] { opacity: .55; cursor: progress; } 124 .rp-like.is-on { color: #d99a1e; } 125 .rp-like.is-on svg { fill: currentColor; } 126 .rp-boost.is-on { color: #2fa85a; } 127 .rp-reply-btn[aria-expanded="true"] { color: var(--accent, #06c); } 128 .rp-src { margin-left: auto; } 129 .rp-primary { background: var(--accent, #06c); color: var(--paper, #fff); } 130 .rp-primary:hover { background: var(--accent, #06c); color: var(--paper, #fff); filter: brightness(1.08); } 131 .rp-profile .rp-actions { border-top: 0; margin-top: 4px; padding-bottom: 8px; } 132 .rp-profile .rp-actions form { flex: 0 0 auto; } 133 134 /* Een peiling in de kaart. */ 135 .rp-poll { display: flex; flex-direction: column; gap: 6px; margin: 12px 0 0; } 136 .rp-poll-choice { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px; border-radius: 10px; cursor: pointer; 92 137 border: 1px solid color-mix(in srgb, var(--ink, #000) 14%, transparent); } 93 . auth-poll-choice:hover { border-color: var(--accent); }94 . auth-poll-choice input { accent-color: var(--accent); }95 . auth-poll-res { position: relative; padding: 9px 12px; border-radius: 10px; overflow: hidden; display: flex; align-items: center; gap: 8px;138 .rp-poll-choice:hover { border-color: var(--accent, #06c); } 139 .rp-poll-choice input { accent-color: var(--accent, #06c); } 140 .rp-poll-res { position: relative; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px; overflow: hidden; 96 141 background: color-mix(in srgb, var(--ink, #000) 6%, transparent); } 97 .auth-poll-fill { position: absolute; inset: 0 auto 0 0; background: color-mix(in srgb, var(--accent) 22%, transparent); z-index: 0; } 98 .auth-poll-name { position: relative; z-index: 1; flex: 1; font-size: .95rem; } 99 .auth-poll-pct { position: relative; z-index: 1; font-variant-numeric: tabular-nums; font-weight: 500; } 100 .auth-poll-foot { font-size: .82rem; color: var(--ink-soft, #888); margin: .1rem 0 0; } 101 .auth-report { margin: .6rem 0 0; } 102 .auth-report summary { cursor: pointer; font-size: .85rem; color: var(--ink-soft, #888); } 103 .auth-report summary:hover, .auth-report[open] summary { color: #c0392b; } 104 .auth-report[open] summary { margin-bottom: .5rem; } 105 .auth-report-note { font-size: .82rem; color: var(--ink-muted, #999); margin: 0 0 .5rem; } 106 /* Het gezicht van een profiel dat we net hebben opgehaald. */ 107 .remote-actor { display: flex; align-items: center; gap: .75rem; } 108 .remote-actor .auth-interact-meta { margin: 0; } 109 .remote-actor-icon { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: 0 0 48px; 110 background: color-mix(in srgb, var(--ink, #000) 8%, transparent); } 142 .rp-poll-fill { position: absolute; inset: 0 auto 0 0; background: color-mix(in srgb, var(--accent, #06c) 22%, transparent); } 143 .rp-poll-name { position: relative; flex: 1; } 144 .rp-poll-pct { position: relative; font-variant-numeric: tabular-nums; font-weight: 600; } 145 .rp-poll-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; 146 font-size: .82rem; color: var(--ink-soft, #888); } 147 148 /* Wat er onder de kaart staat, op de volle pagina. */ 149 .rp-reply { margin: 12px 0 0; } 150 .rp-reply-where { margin: 0 0 8px; font-size: .85rem; line-height: 1.5; color: var(--ink-soft, #888); } 151 .rp-reply-foot { display: flex; justify-content: flex-end; margin-top: 4px; } 152 .rp-as { margin: 12px 2px 0; font-size: .8rem; color: var(--ink-soft, #999); } 153 .rp-report { margin: 6px 2px 0; } 154 .rp-report > summary { display: inline-block; padding: 8px 0; cursor: pointer; font-size: .8rem; color: var(--ink-soft, #888); } 155 .rp-report > summary:hover, .rp-report[open] > summary { color: #c0392b; } 156 .rp-report-form { display: flex; flex-direction: column; gap: .6rem; } 157 .rp-report-note { margin: 0; font-size: .82rem; color: var(--ink-soft, #999); } 158 .rp-report-form textarea { width: 100%; box-sizing: border-box; padding: .6rem .8rem; font: inherit; resize: vertical; border-radius: 12px; 159 border: 1px solid color-mix(in srgb, var(--ink, #000) 18%, transparent); background: var(--paper, #fff); color: var(--ink, #000); } 160 161 /* De live-preview: open-link onder de kaart, en de kaart zonder rand-marge. */ 162 .rp-open { display: block; padding: 10px 4px 2px; text-align: right; font-weight: 600; font-size: .88rem; 163 color: var(--accent, #06c); text-decoration: none; } 164 .rp-open:hover { text-decoration: underline; } 165 .ss-remote { padding: 4px 0 6px; } 166 .ss-remote-note { padding: .8rem .6rem; color: var(--ink-soft, var(--ink-muted)); font-size: .9rem; } 167 .ss-remote-loading { display: flex; align-items: center; gap: 10px; padding: .9rem .6rem; color: var(--ink-soft, var(--ink-muted)); font-size: .9rem; } 168 .ss-remote-loading::before { content: ''; width: 16px; height: 16px; border-radius: 50%; flex: 0 0 16px; 169 border: 2px solid color-mix(in srgb, var(--accent, #06c) 30%, transparent); border-top-color: var(--accent, #06c); 170 animation: ss-spin .8s linear infinite; } 171 @keyframes ss-spin { to { transform: rotate(360deg); } } 172 @media (prefers-reduced-motion: reduce) { .ss-remote-loading::before { animation: none; } } 173 174 /* Smal scherm: alleen de tekens, gelijk verdeeld over de breedte. De woorden 175 blijven bestaan voor wie het scherm voorgelezen krijgt. */ 176 @media (max-width: 480px) { 177 .rp-card { padding: 12px 12px 2px; border-radius: 14px; } 178 .rp-actions { margin: 8px -4px 0; justify-content: space-between; } 179 .rp-act .rp-act-label { position: absolute; width: 1px; height: 1px; overflow: hidden; 180 clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } 181 .rp-src { margin-left: 0; } 182 .rp-media-1 img { max-height: 360px; } 183 } 111 184 </style>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)