Changes in src/views/pages/admin-playlists.ejs [5280532:156baa3] in Klonkt
- File:
-
- 1 edited
-
src/views/pages/admin-playlists.ejs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/admin-playlists.ejs
r5280532 r156baa3 5 5 const _csrf = (typeof csrfToken !== 'undefined' && csrfToken) || ''; 6 6 %> 7 <%# De gedeelde ax-*-primitieven. MOET boven het eigen style-blok van deze8 pagina staan: wat hieronder blijft staan wijkt bewust af en hoort dus9 later te komen, anders wint de partial ervan. %>10 <%- include('../partials/admin-styles') %>11 7 <div class="container ax-page"> 12 8 13 < %- include('../partials/admin-back') %>9 <p><a href="/admin" class="btn">← <%= t('nav.admin') %></a></p> 14 10 <%- include('../partials/media-tabs', { active: 'playlists', audioOn: true }) %> 15 11 <header class="ax-header"> … … 87 83 88 84 .ax-page { max-width: 880px; margin: 1.5rem auto 4rem; padding: 0 1rem; } 85 .ax-header { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; } 86 .ax-header h1 { font-family: var(--font-display, serif); font-size: 1.75rem; margin: 0 0 0.25rem; } 87 .ax-tagline { color: var(--ink-muted, var(--ink-soft)); margin: 0; font-size: 0.9rem; line-height: 1.5; } 88 .ax-tagline code { background: var(--paper-2); padding: 0.1em 0.4em; border-radius: 4px; font-size: 0.9em; } 89 .ax-back { 90 display: inline-flex; align-items: center; justify-content: center; 91 width: 40px; height: 40px; 92 border: 1px solid var(--rule); border-radius: 8px; 93 background: var(--paper); color: var(--ink); text-decoration: none; 94 font-size: 1.1rem; flex-shrink: 0; transition: border-color 120ms; 95 } 96 .ax-back:hover { border-color: var(--accent); } 97 98 .ax-actions-bar { 99 display: flex; 100 margin-bottom: 1rem; 101 } 102 103 .ax-card { 104 background: var(--paper); 105 border: 1px solid var(--rule); 106 border-radius: 12px; 107 padding: 1.25rem; 108 margin-bottom: 1rem; 109 } 110 111 /* ─── Buttons (same primitives as admin-audio) ─────────────────── */ 112 .ax-btn { 113 display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; 114 padding: 0.6rem 1.1rem; 115 border: 1px solid var(--rule); background: var(--paper-2); 116 color: var(--ink); 117 font-family: var(--font-ui, system-ui), sans-serif; 118 font-size: 0.95rem; font-weight: 500; 119 text-decoration: none; border-radius: 8px; cursor: pointer; 120 min-height: 44px; 121 transition: background 120ms, border-color 120ms; 122 -webkit-tap-highlight-color: transparent; 123 } 124 .ax-btn:hover { border-color: var(--accent); } 125 .ax-btn-primary { background: var(--accent); color: white; border-color: var(--accent); } 126 .ax-btn-primary:hover { opacity: 0.92; } 127 128 .ax-icon-btn { 129 display: inline-flex; align-items: center; justify-content: center; 130 width: 40px; height: 40px; 131 border: 1px solid var(--rule); border-radius: 8px; 132 background: var(--paper-2); color: var(--ink); 133 cursor: pointer; font-size: 1rem; 134 transition: background 120ms, border-color 120ms, color 120ms; 135 } 136 .ax-icon-btn:hover { border-color: var(--accent); } 137 .ax-icon-btn-danger:hover { color: #dc2626; border-color: #dc2626; } 138 139 /* ─── Empty state ──────────────────────────────────────────────── */ 140 .ax-empty { text-align: center; padding: 2rem 1rem; color: var(--ink-muted, var(--ink-soft)); } 141 .ax-empty-icon { font-size: 2.5rem; margin-bottom: 0.5rem; opacity: 0.5; } 142 .ax-empty p { margin: 0; } 143 .ax-empty-sub { font-size: 0.85rem; margin-top: 0.5rem !important; } 144 145 /* ─── List items (same as audio tracks) ───────────────────────── */ 146 .ax-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; } 147 .ax-track { 148 display: grid; 149 grid-template-columns: 64px 1fr auto; 150 gap: 0.85rem; align-items: center; 151 padding: 0.85rem; 152 background: var(--paper); 153 border: 1px solid var(--rule); 154 border-radius: 12px; 155 transition: border-color 120ms; 156 } 157 .ax-track:hover { border-color: var(--accent); } 158 .ax-track-cover { 159 width: 64px; height: 64px; border-radius: 8px; 160 background: var(--paper-2); 161 display: flex; align-items: center; justify-content: center; 162 font-family: var(--font-display, serif); 163 font-size: 1.5rem; color: var(--accent); 164 flex-shrink: 0; 165 } 166 .ax-track-meta { min-width: 0; display: flex; flex-direction: column; gap: 0.25rem; } 167 .ax-track-title { 168 font-family: var(--font-display, serif); 169 font-weight: 600; font-size: 1.05rem; color: var(--ink); 170 display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap; 171 } 172 .ax-pill { 173 font-family: var(--font-ui); 174 font-size: 0.7rem; font-weight: 500; 175 color: var(--ink-soft); 176 background: var(--paper-2); 177 padding: 0.15em 0.55em; border-radius: 999px; 178 letter-spacing: 0; 179 } 180 .ax-track-sub { 181 font-size: 0.85rem; 182 color: var(--ink-muted, var(--ink-soft)); 183 display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; 184 } 185 .ax-track-sep { opacity: 0.5; } 186 .ax-embed { 187 display: inline-block; 188 background: var(--paper-2); 189 padding: 0.15rem 0.5rem; 190 border-radius: 4px; 191 font-family: var(--font-mono, ui-monospace, monospace); 192 font-size: 0.75rem; 193 color: var(--ink-soft); 194 cursor: pointer; user-select: all; 195 margin-top: 0.15rem; 196 word-break: break-all; 197 align-self: flex-start; 198 transition: background 120ms; 199 } 200 .ax-embed:hover { background: var(--rule); } 201 .ax-embed.is-copied { background: rgba(40,160,90,0.2); color: #2a9d5e; } 202 203 .ax-track-actions { display: flex; gap: 0.4rem; flex-shrink: 0; } 89 204 90 205 /* ─── Mobile ──────────────────────────────────────────────────── */ 91 206 @media (max-width: 480px) { 207 .ax-track { 208 grid-template-columns: 56px 1fr; 209 grid-template-areas: "cover meta" "actions actions"; 210 gap: 0.6rem; 211 } 212 .ax-track-cover { grid-area: cover; width: 56px; height: 56px; } 213 .ax-track-meta { grid-area: meta; } 214 .ax-track-actions { 215 grid-area: actions; 216 justify-content: flex-end; 217 border-top: 1px solid var(--rule); 218 padding-top: 0.5rem; 219 margin-top: 0.25rem; 220 } 92 221 } 93 222 </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)