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

Configure Feed

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

at 2986d0be2818f02ff4fe7dd203742fb646b66eb7 367 lines 5.9 kB view raw
1:root { 2 color-scheme: light dark; 3 --bg: #0b0b0f; 4 --panel: #10101a; 5 --text: #f3f4f6; 6 --muted: #a1a1aa; 7 --border: rgba(255, 255, 255, 0.08); 8 --link: #93c5fd; 9 --codebg: rgba(255, 255, 255, 0.06); 10 --shadow: rgba(0, 0, 0, 0.35); 11 --max: 900px; 12 --radius: 12px; 13 --gutter: 16px; 14 --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", 15 "Courier New", monospace; 16 --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, 17 Arial, "Apple Color Emoji", "Segoe UI Emoji"; 18} 19 20@media (prefers-color-scheme: light) { 21 :root { 22 --bg: #fafafa; 23 --panel: #ffffff; 24 --text: #0b0b0f; 25 --muted: #52525b; 26 --border: rgba(0, 0, 0, 0.08); 27 --link: #2563eb; 28 --codebg: rgba(0, 0, 0, 0.04); 29 --shadow: rgba(0, 0, 0, 0.08); 30 } 31} 32 33* { 34 box-sizing: border-box; 35} 36 37html, 38body { 39 height: 100%; 40} 41 42body { 43 margin: 0; 44 font-family: var(--sans); 45 background: var(--bg); 46 color: var(--text); 47} 48 49a { 50 color: var(--link); 51 text-decoration: none; 52} 53a:hover { 54 text-decoration: underline; 55} 56 57/* App shell */ 58.app { 59 min-height: 100%; 60 display: flex; 61 flex-direction: column; 62} 63 64/* Header */ 65.header { 66 position: sticky; 67 top: 0; 68 z-index: 20; 69 display: flex; 70 align-items: center; 71 gap: 12px; 72 padding: 12px var(--gutter); 73 border-bottom: 1px solid var(--border); 74 background: color-mix(in srgb, var(--panel) 92%, transparent); 75 backdrop-filter: blur(10px); 76} 77 78.menu-toggle { 79 display: none; 80 align-items: center; 81 justify-content: center; 82 width: 36px; 83 height: 36px; 84 padding: 0; 85 background: transparent; 86 border: 1px solid var(--border); 87 border-radius: 8px; 88 cursor: pointer; 89 flex-shrink: 0; 90} 91.menu-toggle span { 92 display: block; 93 width: 16px; 94 height: 2px; 95 background: var(--text); 96 border-radius: 1px; 97 position: relative; 98} 99.menu-toggle span::before, 100.menu-toggle span::after { 101 content: ""; 102 position: absolute; 103 left: 0; 104 width: 16px; 105 height: 2px; 106 background: var(--text); 107 border-radius: 1px; 108 transition: transform 0.2s; 109} 110.menu-toggle span::before { 111 top: -5px; 112} 113.menu-toggle span::after { 114 top: 5px; 115} 116.menu-toggle[aria-expanded="true"] span { 117 background: transparent; 118} 119.menu-toggle[aria-expanded="true"] span::before { 120 transform: translateY(5px) rotate(45deg); 121} 122.menu-toggle[aria-expanded="true"] span::after { 123 transform: translateY(-5px) rotate(-45deg); 124} 125 126.brand { 127 font-weight: 700; 128 font-size: 15px; 129 color: var(--text); 130 padding: 6px 0; 131} 132.brand:hover { 133 text-decoration: none; 134 opacity: 0.8; 135} 136 137.header-links { 138 display: flex; 139 gap: 8px; 140 margin-left: auto; 141} 142 143.header-link { 144 padding: 6px 12px; 145 font-size: 14px; 146 border-radius: 8px; 147 border: 1px solid var(--border); 148 color: var(--text); 149} 150.header-link:hover { 151 background: var(--codebg); 152 text-decoration: none; 153} 154 155/* Overlay */ 156.overlay { 157 display: none; 158 position: fixed; 159 inset: 0; 160 z-index: 15; 161 background: rgba(0, 0, 0, 0.5); 162} 163.overlay.open { 164 display: block; 165} 166 167/* Layout */ 168.layout { 169 display: flex; 170 gap: var(--gutter); 171 padding: var(--gutter); 172 flex: 1; 173 max-width: 1200px; 174 margin: 0 auto; 175 width: 100%; 176} 177 178/* Sidebar */ 179.sidebar { 180 width: 240px; 181 flex-shrink: 0; 182 position: sticky; 183 top: 72px; 184 align-self: flex-start; 185 max-height: calc(100vh - 88px); 186 overflow-y: auto; 187 border: 1px solid var(--border); 188 border-radius: var(--radius); 189 background: var(--panel); 190} 191 192.nav { 193 padding: 8px; 194 display: flex; 195 flex-direction: column; 196 gap: 2px; 197} 198 199.nav a { 200 display: block; 201 padding: 10px 12px; 202 border-radius: 8px; 203 color: var(--text); 204 font-size: 14px; 205} 206.nav a:hover { 207 background: var(--codebg); 208 text-decoration: none; 209} 210.nav a[aria-current="page"] { 211 background: color-mix(in srgb, var(--link) 15%, transparent); 212} 213 214/* Main content */ 215.main { 216 flex: 1; 217 min-width: 0; 218} 219 220.content { 221 border: 1px solid var(--border); 222 border-radius: var(--radius); 223 background: var(--panel); 224 padding: 24px; 225} 226 227/* Footer */ 228.site-footer { 229 padding: 16px var(--gutter); 230 text-align: center; 231 border-top: 1px solid var(--border); 232} 233 234.footer-link { 235 font-size: 13px; 236 color: var(--muted); 237} 238.footer-link:hover { 239 color: var(--text); 240 text-decoration: none; 241} 242 243/* Content typography */ 244.content h1, 245.content h2, 246.content h3 { 247 scroll-margin-top: 80px; 248} 249 250.content h1 { 251 margin-top: 0; 252 font-size: 28px; 253} 254 255.content h2 { 256 font-size: 20px; 257 margin-top: 32px; 258} 259 260.content h3 { 261 font-size: 16px; 262 margin-top: 24px; 263} 264 265.content p, 266.content li { 267 line-height: 1.65; 268} 269 270.content code { 271 font-family: var(--mono); 272 font-size: 0.9em; 273 background: var(--codebg); 274 padding: 2px 6px; 275 border-radius: 6px; 276} 277 278.content pre { 279 overflow-x: auto; 280 padding: 16px; 281 border-radius: 10px; 282 background: var(--codebg); 283 border: 1px solid var(--border); 284 font-size: 14px; 285 line-height: 1.5; 286} 287 288.content pre code { 289 background: transparent; 290 padding: 0; 291} 292 293.content details { 294 margin: 16px 0; 295} 296 297.content details summary { 298 cursor: pointer; 299 padding: 8px 0; 300} 301 302.empty { 303 color: var(--muted); 304} 305 306/* Mobile */ 307@media (max-width: 768px) { 308 :root { 309 --gutter: 16px; 310 } 311 312 .menu-toggle { 313 display: flex; 314 } 315 316 .layout { 317 flex-direction: column; 318 } 319 320 .sidebar { 321 position: fixed; 322 top: 0; 323 left: 0; 324 bottom: 0; 325 width: 280px; 326 max-width: 80vw; 327 z-index: 16; 328 border: none; 329 border-radius: 0; 330 border-right: 1px solid var(--border); 331 max-height: none; 332 padding-top: 60px; 333 transform: translateX(-100%); 334 transition: transform 0.2s ease-out; 335 } 336 337 .sidebar.open { 338 transform: translateX(0); 339 } 340 341 .nav { 342 padding: 12px; 343 } 344 345 .nav a { 346 padding: 12px 14px; 347 font-size: 15px; 348 } 349 350 .content { 351 padding: 20px; 352 border-radius: 10px; 353 } 354 355 .content h1 { 356 font-size: 24px; 357 } 358 359 .content h2 { 360 font-size: 18px; 361 } 362 363 .content pre { 364 font-size: 13px; 365 padding: 14px; 366 } 367}