atproto utils for zig zat.dev
atproto sdk zig
26
fork

Configure Feed

Select the types of activity you want to include in your feed.

at codex/xrpc-errors-retry 408 lines 7.0 kB view raw
1:root { 2 color-scheme: dark; 3 --bg: #0b0b0f; 4 --panel: #12121e; 5 --text: #e4e4eb; 6 --muted: #8b8b9e; 7 --border: rgba(255, 255, 255, 0.07); 8 --link: #7db4f5; 9 --codebg: rgba(255, 255, 255, 0.05); 10 --shadow: rgba(0, 0, 0, 0.4); 11 --accent: rgba(125, 180, 245, 0.08); 12 --radius: 10px; 13 --gutter: 16px; 14 --mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 15 "Liberation Mono", "Courier New", monospace; 16 --sans: "Geist", -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, 17 sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; 18} 19 20@media (prefers-color-scheme: light) { 21 :root:not([data-theme="dark"]) { 22 color-scheme: light; 23 --bg: #f8f8fa; 24 --panel: #ffffff; 25 --text: #1a1a2e; 26 --muted: #64648a; 27 --border: rgba(0, 0, 0, 0.08); 28 --link: #2563eb; 29 --codebg: rgba(0, 0, 0, 0.04); 30 --shadow: rgba(0, 0, 0, 0.06); 31 --accent: rgba(37, 99, 235, 0.06); 32 } 33} 34 35:root[data-theme="light"] { 36 color-scheme: light; 37 --bg: #f8f8fa; 38 --panel: #ffffff; 39 --text: #1a1a2e; 40 --muted: #64648a; 41 --border: rgba(0, 0, 0, 0.08); 42 --link: #2563eb; 43 --codebg: rgba(0, 0, 0, 0.04); 44 --shadow: rgba(0, 0, 0, 0.06); 45 --accent: rgba(37, 99, 235, 0.06); 46} 47 48* { 49 box-sizing: border-box; 50} 51 52html, 53body { 54 height: 100%; 55} 56 57body { 58 margin: 0; 59 font-family: var(--sans); 60 font-weight: 400; 61 background: var(--bg); 62 color: var(--text); 63 -webkit-font-smoothing: antialiased; 64 -moz-osx-font-smoothing: grayscale; 65} 66 67a { 68 color: var(--link); 69 text-decoration: none; 70} 71a:hover { 72 text-decoration: underline; 73} 74 75/* App shell */ 76.app { 77 min-height: 100%; 78 display: flex; 79 flex-direction: column; 80} 81 82/* Header */ 83.header { 84 position: sticky; 85 top: 0; 86 z-index: 20; 87 display: flex; 88 align-items: center; 89 gap: 8px; 90 padding: 0 var(--gutter); 91 height: 48px; 92 border-bottom: 1px solid var(--border); 93 background: color-mix(in srgb, var(--bg) 85%, transparent); 94 backdrop-filter: blur(12px); 95 -webkit-backdrop-filter: blur(12px); 96 max-width: 100%; 97} 98 99.brand { 100 font-family: var(--mono); 101 font-weight: 700; 102 font-size: 14px; 103 color: var(--text); 104 letter-spacing: -0.02em; 105 white-space: nowrap; 106 flex-shrink: 0; 107} 108.brand:hover { 109 text-decoration: none; 110 opacity: 0.8; 111} 112 113/* Nav — inline in header */ 114.nav { 115 display: flex; 116 gap: 2px; 117 margin-left: 12px; 118 overflow-x: auto; 119 -webkit-overflow-scrolling: touch; 120 scrollbar-width: none; 121} 122.nav::-webkit-scrollbar { 123 display: none; 124} 125 126.nav a { 127 padding: 6px 10px; 128 border-radius: 6px; 129 color: var(--muted); 130 font-size: 13px; 131 font-weight: 500; 132 white-space: nowrap; 133 transition: color 0.1s, background 0.1s; 134} 135.nav a:hover { 136 color: var(--text); 137 background: var(--codebg); 138 text-decoration: none; 139} 140.nav a[aria-current="page"] { 141 color: var(--text); 142 background: var(--accent); 143} 144 145/* Header right */ 146.header-right { 147 display: flex; 148 align-items: center; 149 gap: 6px; 150 margin-left: auto; 151 flex-shrink: 0; 152} 153 154.header-link { 155 padding: 5px 10px; 156 font-size: 13px; 157 font-weight: 500; 158 border-radius: 6px; 159 color: var(--muted); 160 white-space: nowrap; 161} 162.header-link:hover { 163 color: var(--text); 164 background: var(--codebg); 165 text-decoration: none; 166} 167 168/* Theme toggle */ 169.theme-toggle { 170 display: flex; 171 align-items: center; 172 justify-content: center; 173 width: 32px; 174 height: 32px; 175 padding: 0; 176 background: transparent; 177 border: 1px solid var(--border); 178 border-radius: 6px; 179 cursor: pointer; 180 color: var(--muted); 181 transition: color 0.15s, border-color 0.15s; 182} 183.theme-toggle:hover { 184 color: var(--text); 185 border-color: var(--muted); 186} 187.theme-toggle .icon-moon { 188 display: none; 189} 190:root[data-theme="dark"] .theme-toggle .icon-sun { 191 display: none; 192} 193:root[data-theme="dark"] .theme-toggle .icon-moon { 194 display: block; 195} 196:root[data-theme="light"] .theme-toggle .icon-sun { 197 display: block; 198} 199:root[data-theme="light"] .theme-toggle .icon-moon { 200 display: none; 201} 202 203/* Main content */ 204.main { 205 flex: 1; 206 width: 100%; 207 max-width: 720px; 208 margin: 0 auto; 209 padding: var(--gutter); 210} 211 212.content { 213 border: 1px solid var(--border); 214 border-radius: var(--radius); 215 background: var(--panel); 216 padding: 28px 32px; 217} 218 219/* Footer */ 220.site-footer { 221 padding: 16px var(--gutter); 222 text-align: center; 223 border-top: 1px solid var(--border); 224} 225 226.footer-link { 227 font-size: 12px; 228 color: var(--muted); 229} 230.footer-link:hover { 231 color: var(--text); 232 text-decoration: none; 233} 234 235/* Content typography */ 236.content h1, 237.content h2, 238.content h3 { 239 scroll-margin-top: 64px; 240 letter-spacing: -0.01em; 241} 242 243.content h1 { 244 margin-top: 0; 245 font-size: 24px; 246 font-weight: 700; 247} 248 249.content h2 { 250 font-size: 17px; 251 font-weight: 600; 252 margin-top: 36px; 253 padding-top: 16px; 254 border-top: 1px solid var(--border); 255} 256 257.content h2:first-of-type { 258 border-top: none; 259 padding-top: 0; 260} 261 262.content h3 { 263 font-size: 14px; 264 font-weight: 600; 265 margin-top: 24px; 266 color: var(--muted); 267} 268 269.content p, 270.content li { 271 line-height: 1.7; 272 font-size: 14px; 273} 274 275.content code { 276 font-family: var(--mono); 277 font-size: 0.85em; 278 background: var(--codebg); 279 padding: 2px 5px; 280 border-radius: 4px; 281 border: 1px solid var(--border); 282} 283 284.content pre { 285 overflow-x: auto; 286 padding: 14px 16px; 287 border-radius: 8px; 288 background: var(--codebg); 289 border: 1px solid var(--border); 290 font-size: 13px; 291 line-height: 1.6; 292} 293 294.content pre code { 295 background: transparent; 296 padding: 0; 297 border: none; 298 font-size: inherit; 299} 300 301.content details { 302 margin: 12px 0; 303 border: 1px solid var(--border); 304 border-radius: 8px; 305} 306 307.content details summary { 308 cursor: pointer; 309 padding: 10px 14px; 310 font-size: 14px; 311 border-radius: 8px; 312} 313 314.content details summary:hover { 315 background: var(--accent); 316} 317 318.content details[open] summary { 319 border-bottom: 1px solid var(--border); 320 border-radius: 8px 8px 0 0; 321} 322 323.content details > :not(summary) { 324 padding: 0 14px; 325} 326 327.content hr { 328 border: none; 329 border-top: 1px solid var(--border); 330 margin: 28px 0; 331} 332 333.content blockquote { 334 border-left: 3px solid var(--link); 335 margin: 16px 0; 336 padding: 4px 16px; 337 color: var(--muted); 338 background: var(--accent); 339 border-radius: 0 6px 6px 0; 340} 341 342.content table { 343 width: 100%; 344 border-collapse: collapse; 345 font-size: 13px; 346 margin: 16px 0; 347} 348 349.content th, 350.content td { 351 padding: 8px 12px; 352 border: 1px solid var(--border); 353 text-align: left; 354} 355 356.content th { 357 background: var(--codebg); 358 font-weight: 600; 359} 360 361.empty { 362 color: var(--muted); 363} 364 365/* Mobile */ 366@media (max-width: 640px) { 367 .header { 368 gap: 4px; 369 padding: 0 12px; 370 } 371 372 .nav { 373 margin-left: 8px; 374 gap: 0; 375 } 376 377 .nav a { 378 padding: 6px 8px; 379 font-size: 12px; 380 } 381 382 .header-link { 383 font-size: 12px; 384 padding: 5px 8px; 385 } 386 387 .main { 388 padding: 12px; 389 } 390 391 .content { 392 padding: 20px 16px; 393 border-radius: 8px; 394 } 395 396 .content h1 { 397 font-size: 20px; 398 } 399 400 .content h2 { 401 font-size: 16px; 402 } 403 404 .content pre { 405 font-size: 12px; 406 padding: 12px; 407 } 408}