Write on the margins of the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
at v0.1.15 8.1 kB view raw
1.layout { 2 display: flex; 3 min-height: 100vh; 4 background: var(--bg-primary); 5} 6 7.sidebar { 8 position: fixed; 9 left: 0; 10 top: 0; 11 bottom: 0; 12 width: 240px; 13 background: var(--bg-primary); 14 border-right: 1px solid var(--border); 15 display: flex; 16 flex-direction: column; 17 z-index: 50; 18 padding-bottom: 20px; 19} 20 21.sidebar-header { 22 height: 64px; 23 display: flex; 24 align-items: center; 25 padding: 0 20px; 26 margin-bottom: 12px; 27 text-decoration: none; 28 color: var(--text-primary); 29} 30 31.sidebar-logo { 32 width: 24px; 33 height: 24px; 34 object-fit: contain; 35 margin-right: 12px; 36} 37 38.sidebar-brand { 39 font-size: 1rem; 40 font-weight: 600; 41 color: var(--text-primary); 42 letter-spacing: -0.01em; 43} 44 45.sidebar-nav { 46 flex: 1; 47 display: flex; 48 flex-direction: column; 49 gap: 4px; 50 padding: 0 12px; 51 overflow-y: auto; 52} 53 54.sidebar-link { 55 display: flex; 56 align-items: center; 57 gap: 12px; 58 padding: 8px 12px; 59 border-radius: var(--radius-md); 60 color: var(--text-secondary); 61 text-decoration: none; 62 font-size: 0.9rem; 63 font-weight: 500; 64 transition: all 0.15s ease; 65} 66 67.sidebar-link:hover { 68 background: var(--bg-tertiary); 69 color: var(--text-primary); 70} 71 72.sidebar-link.active { 73 background: var(--bg-tertiary); 74 color: var(--text-primary); 75} 76 77.sidebar-link svg { 78 width: 18px; 79 height: 18px; 80 color: var(--text-tertiary); 81 transition: color 0.15s ease; 82} 83 84.sidebar-link:hover svg, 85.sidebar-link.active svg { 86 color: var(--text-primary); 87} 88 89.sidebar-section-title { 90 padding: 24px 12px 8px; 91 font-size: 0.75rem; 92 font-weight: 600; 93 color: var(--text-tertiary); 94 text-transform: uppercase; 95 letter-spacing: 0.05em; 96} 97 98.notification-badge { 99 background: var(--accent); 100 color: white; 101 font-size: 0.7rem; 102 font-weight: 600; 103 padding: 0 6px; 104 height: 18px; 105 border-radius: 99px; 106 display: flex; 107 align-items: center; 108 justify-content: center; 109 margin-left: auto; 110} 111 112.sidebar-new-btn { 113 display: flex; 114 align-items: center; 115 gap: 10px; 116 margin: 0 12px 16px; 117 padding: 10px 16px; 118 background: var(--text-primary); 119 color: var(--bg-primary); 120 border-radius: var(--radius-md); 121 font-size: 0.9rem; 122 font-weight: 600; 123 text-decoration: none; 124 transition: opacity 0.15s; 125 justify-content: center; 126} 127 128.sidebar-new-btn:hover { 129 opacity: 0.9; 130} 131 132.sidebar-footer { 133 padding: 0 12px; 134 margin-top: auto; 135} 136 137.sidebar-user { 138 display: flex; 139 align-items: center; 140 gap: 10px; 141 padding: 8px 12px; 142 border-radius: var(--radius-md); 143 cursor: pointer; 144 transition: background 0.15s ease; 145} 146 147.sidebar-user:hover, 148.sidebar-user.active { 149 background: var(--bg-tertiary); 150} 151 152.sidebar-avatar { 153 width: 32px; 154 height: 32px; 155 border-radius: 50%; 156 background: var(--bg-tertiary); 157 display: flex; 158 align-items: center; 159 justify-content: center; 160 color: var(--text-secondary); 161 font-size: 0.8rem; 162 font-weight: 500; 163 overflow: hidden; 164 flex-shrink: 0; 165 border: 1px solid var(--border); 166} 167 168.sidebar-avatar img { 169 width: 100%; 170 height: 100%; 171 object-fit: cover; 172} 173 174.sidebar-user-info { 175 flex: 1; 176 min-width: 0; 177 display: flex; 178 flex-direction: column; 179} 180 181.sidebar-user-name { 182 font-size: 0.85rem; 183 font-weight: 500; 184 color: var(--text-primary); 185} 186 187.sidebar-user-handle { 188 font-size: 0.75rem; 189 color: var(--text-tertiary); 190} 191 192.sidebar-dropdown { 193 position: absolute; 194 bottom: 74px; 195 left: 12px; 196 width: 216px; 197 background: var(--bg-card); 198 border: 1px solid var(--border); 199 border-radius: var(--radius-md); 200 box-shadow: var(--shadow-lg); 201 padding: 4px; 202 z-index: 1000; 203 overflow: hidden; 204 animation: scaleIn 0.1s ease-out; 205 transform-origin: bottom center; 206} 207 208@keyframes scaleIn { 209 from { 210 opacity: 0; 211 transform: scale(0.95); 212 } 213 214 to { 215 opacity: 1; 216 transform: scale(1); 217 } 218} 219 220.sidebar-dropdown-item { 221 display: flex; 222 align-items: center; 223 gap: 10px; 224 width: 100%; 225 padding: 8px 12px; 226 font-size: 0.85rem; 227 color: var(--text-secondary); 228 text-decoration: none; 229 background: transparent; 230 cursor: pointer; 231 border-radius: var(--radius-sm); 232 transition: all 0.15s; 233 border: none; 234} 235 236.sidebar-dropdown-item:hover { 237 background: var(--bg-tertiary); 238 color: var(--text-primary); 239} 240 241.sidebar-dropdown-item.danger:hover { 242 background: rgba(239, 68, 68, 0.1); 243 color: var(--error); 244} 245 246.main-layout { 247 flex: 1; 248 margin-left: 240px; 249 margin-right: 280px; 250 min-height: 100vh; 251} 252 253.main-content-wrapper { 254 max-width: 640px; 255 margin: 0 auto; 256 padding: 40px 24px; 257} 258 259.right-sidebar { 260 position: fixed; 261 right: 0; 262 top: 0; 263 bottom: 0; 264 width: 280px; 265 background: var(--bg-primary); 266 border-left: 1px solid var(--border); 267 padding: 32px 24px; 268 overflow-y: auto; 269 display: flex; 270 flex-direction: column; 271 gap: 32px; 272} 273 274.right-section { 275 display: flex; 276 flex-direction: column; 277 gap: 12px; 278} 279 280.right-section-title { 281 font-size: 0.75rem; 282 font-weight: 600; 283 color: var(--text-primary); 284 margin-bottom: 4px; 285} 286 287.right-section-desc { 288 font-size: 0.85rem; 289 line-height: 1.5; 290 color: var(--text-secondary); 291} 292 293.right-extension-btn { 294 display: inline-flex; 295 align-items: center; 296 gap: 8px; 297 padding: 8px 12px; 298 background: var(--bg-primary); 299 border: 1px solid var(--border); 300 border-radius: var(--radius-md); 301 color: var(--text-primary); 302 font-size: 0.85rem; 303 font-weight: 500; 304 text-decoration: none; 305 transition: all 0.15s ease; 306 width: fit-content; 307} 308 309.right-extension-btn:hover { 310 border-color: var(--text-tertiary); 311 background: var(--bg-tertiary); 312} 313 314.right-links { 315 display: flex; 316 flex-direction: column; 317 gap: 4px; 318} 319 320.right-link { 321 display: flex; 322 align-items: center; 323 justify-content: space-between; 324 padding: 6px 0; 325 color: var(--text-secondary); 326 font-size: 0.9rem; 327 transition: color 0.15s; 328 text-decoration: none; 329} 330 331.right-link:hover { 332 color: var(--text-primary); 333} 334 335.right-link svg { 336 width: 16px; 337 height: 16px; 338 color: var(--text-tertiary); 339 transition: all 0.15s; 340} 341 342.right-link:hover svg { 343 color: var(--text-secondary); 344} 345 346.tangled-icon { 347 width: 16px; 348 height: 16px; 349 background-color: var(--text-tertiary); 350 -webkit-mask: url("../assets/tangled.svg") no-repeat center / contain; 351 mask: url("../assets/tangled.svg") no-repeat center / contain; 352 transition: background-color 0.15s; 353} 354 355.right-link:hover .tangled-icon { 356 background-color: var(--text-secondary); 357} 358 359.right-footer { 360 margin-top: auto; 361 display: flex; 362 flex-wrap: wrap; 363 gap: 12px; 364 font-size: 0.75rem; 365 color: var(--text-tertiary); 366} 367 368.right-footer a { 369 color: var(--text-tertiary); 370} 371 372.right-footer a:hover { 373 color: var(--text-secondary); 374} 375 376.mobile-nav { 377 display: none; 378 position: fixed; 379 bottom: 0; 380 left: 0; 381 right: 0; 382 background: rgba(9, 9, 11, 0.9); 383 backdrop-filter: blur(12px); 384 -webkit-backdrop-filter: blur(12px); 385 border-top: 1px solid var(--border); 386 padding: 8px 16px; 387 padding-bottom: calc(8px + env(safe-area-inset-bottom, 0)); 388 z-index: 100; 389} 390 391.mobile-nav-inner { 392 display: flex; 393 justify-content: space-between; 394 align-items: center; 395} 396 397.mobile-nav-item { 398 display: flex; 399 flex-direction: column; 400 align-items: center; 401 justify-content: center; 402 gap: 4px; 403 color: var(--text-tertiary); 404 text-decoration: none; 405 font-size: 0.65rem; 406 font-weight: 500; 407 width: 60px; 408 transition: color 0.15s; 409} 410 411.mobile-nav-item.active { 412 color: var(--text-primary); 413} 414 415.mobile-nav-item svg { 416 width: 24px; 417 height: 24px; 418} 419 420.mobile-nav-new { 421 width: 48px; 422 height: 36px; 423 border-radius: var(--radius-md); 424 background: var(--text-primary); 425 color: var(--bg-primary); 426 display: flex; 427 align-items: center; 428 justify-content: center; 429} 430 431.mobile-nav-new svg { 432 width: 20px; 433 height: 20px; 434} 435 436@media (max-width: 1200px) { 437 .right-sidebar { 438 display: none; 439 } 440 441 .main-layout { 442 margin-right: 0; 443 } 444} 445 446@media (max-width: 768px) { 447 .sidebar { 448 display: none; 449 } 450 451 .main-layout { 452 margin-left: 0; 453 padding-bottom: 80px; 454 } 455 456 .main-content-wrapper { 457 padding: 20px 16px; 458 max-width: 100%; 459 overflow-x: hidden; 460 } 461 462 .mobile-nav { 463 display: block; 464 } 465}