ATlast — you'll never need to find your favorites on another platform again. Find your favs in the ATmosphere.
atproto

dark mode support for extension popup

Uses @media (prefers-color-scheme: dark) to match browser preference.
Dark theme: slate-900/indigo-950/blue-900 backgrounds, cyan-50 text,
cyan borders on buttons, matches web app dark mode colors.

byarielm.fyi adfe023d 0718100f

verified
Changed files
+82
packages
extension
src
popup
+82
packages/extension/src/popup/popup.css
··· 12 12 background: linear-gradient(135deg, #faf5ff 0%, #ffffff 50%, #ecfeff 100%); 13 13 } 14 14 15 + @media (prefers-color-scheme: dark) { 16 + body { 17 + color: #e0f2fe; 18 + background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0c4a6e 100%); 19 + } 20 + } 21 + 15 22 .container { 16 23 display: flex; 17 24 flex-direction: column; ··· 74 81 color: #334155; 75 82 } 76 83 84 + @media (prefers-color-scheme: dark) { 85 + .message { 86 + color: #e0f2fe; 87 + } 88 + } 89 + 77 90 .hint { 78 91 font-size: 13px; 79 92 color: #64748b; 80 93 margin-top: 8px; 94 + } 95 + 96 + @media (prefers-color-scheme: dark) { 97 + .hint { 98 + color: #94a3b8; 99 + } 81 100 } 82 101 83 102 .btn-primary { ··· 122 141 background: #faf5ff; 123 142 } 124 143 144 + @media (prefers-color-scheme: dark) { 145 + .btn-secondary { 146 + background: #1e1b4b; 147 + color: #06b6d4; 148 + border-color: #06b6d4; 149 + } 150 + 151 + .btn-secondary:hover { 152 + background: #312e81; 153 + } 154 + } 155 + 125 156 .progress { 126 157 margin-top: 20px; 127 158 } ··· 135 166 margin-bottom: 12px; 136 167 } 137 168 169 + @media (prefers-color-scheme: dark) { 170 + .progress-bar { 171 + background: #1e293b; 172 + } 173 + } 174 + 138 175 .progress-fill { 139 176 height: 100%; 140 177 background: linear-gradient(90deg, #ea580c 0%, #ec4899 100%); ··· 154 191 color: #334155; 155 192 } 156 193 194 + @media (prefers-color-scheme: dark) { 195 + .progress-text { 196 + color: #e0f2fe; 197 + } 198 + } 199 + 157 200 .status-message { 158 201 font-size: 13px; 159 202 color: #64748b; 160 203 margin-top: 8px; 161 204 } 162 205 206 + @media (prefers-color-scheme: dark) { 207 + .status-message { 208 + color: #94a3b8; 209 + } 210 + } 211 + 163 212 .count-display { 164 213 font-size: 14px; 165 214 color: #64748b; 166 215 margin-top: 8px; 167 216 } 168 217 218 + @media (prefers-color-scheme: dark) { 219 + .count-display { 220 + color: #94a3b8; 221 + } 222 + } 223 + 169 224 .count-display strong { 170 225 color: #ea580c; 171 226 font-size: 18px; 172 227 } 173 228 229 + @media (prefers-color-scheme: dark) { 230 + .count-display strong { 231 + color: #fb923c; 232 + } 233 + } 234 + 174 235 .error-message { 175 236 font-size: 13px; 176 237 color: #dc2626; ··· 181 242 border-left: 3px solid #dc2626; 182 243 } 183 244 245 + @media (prefers-color-scheme: dark) { 246 + .error-message { 247 + color: #fca5a5; 248 + background: #450a0a; 249 + border-left-color: #ef4444; 250 + } 251 + } 252 + 184 253 footer { 185 254 padding: 16px; 186 255 text-align: center; ··· 188 257 background: white; 189 258 } 190 259 260 + @media (prefers-color-scheme: dark) { 261 + footer { 262 + border-top-color: #1e293b; 263 + background: #0f172a; 264 + } 265 + } 266 + 191 267 footer a { 192 268 color: #ea580c; 193 269 text-decoration: none; 194 270 font-size: 13px; 195 271 font-weight: 500; 272 + } 273 + 274 + @media (prefers-color-scheme: dark) { 275 + footer a { 276 + color: #fb923c; 277 + } 196 278 } 197 279 198 280 footer a:hover {