atproto utils for zig zat.dev
atproto sdk zig
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 --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", 14 "Courier New", monospace; 15 --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, 16 Arial, "Apple Color Emoji", "Segoe UI Emoji"; 17} 18 19@media (prefers-color-scheme: light) { 20 :root { 21 --bg: #fafafa; 22 --panel: #ffffff; 23 --text: #0b0b0f; 24 --muted: #52525b; 25 --border: rgba(0, 0, 0, 0.08); 26 --link: #2563eb; 27 --codebg: rgba(0, 0, 0, 0.04); 28 --shadow: rgba(0, 0, 0, 0.08); 29 } 30} 31 32html, 33body { 34 height: 100%; 35} 36 37body { 38 margin: 0; 39 font-family: var(--sans); 40 background: var(--bg); 41 color: var(--text); 42} 43 44a { 45 color: var(--link); 46 text-decoration: none; 47} 48a:hover { 49 text-decoration: underline; 50} 51 52.app { 53 min-height: 100%; 54 display: flex; 55 flex-direction: column; 56} 57 58.header { 59 position: sticky; 60 top: 0; 61 z-index: 5; 62 display: flex; 63 gap: 12px; 64 align-items: center; 65 padding: 12px 16px; 66 border-bottom: 1px solid var(--border); 67 background: color-mix(in srgb, var(--panel) 92%, transparent); 68 backdrop-filter: blur(10px); 69} 70 71.brand { 72 font-weight: 700; 73 letter-spacing: 0.2px; 74 padding: 6px 10px; 75 border-radius: 10px; 76} 77.brand:hover { 78 background: color-mix(in srgb, var(--codebg) 70%, transparent); 79 text-decoration: none; 80} 81 82.header-link { 83 margin-left: auto; 84 padding: 8px 10px; 85 border-radius: 10px; 86 border: 1px solid var(--border); 87 color: var(--text); 88 opacity: 0.9; 89} 90.header-link:hover { 91 background: color-mix(in srgb, var(--codebg) 70%, transparent); 92 text-decoration: none; 93 opacity: 1; 94} 95 96.layout { 97 display: grid; 98 grid-template-columns: 280px 1fr; 99 gap: 16px; 100 padding: 16px; 101 flex: 1; 102} 103 104@media (max-width: 980px) { 105 .layout { 106 grid-template-columns: 1fr; 107 } 108 .sidebar { 109 position: relative; 110 top: auto; 111 max-height: none; 112 } 113} 114 115.sidebar { 116 position: sticky; 117 top: 64px; 118 align-self: start; 119 max-height: calc(100vh - 84px); 120 overflow: auto; 121 border: 1px solid var(--border); 122 border-radius: var(--radius); 123 background: var(--panel); 124 box-shadow: 0 12px 40px var(--shadow); 125} 126 127.nav { 128 padding: 8px; 129 display: flex; 130 flex-direction: column; 131 gap: 2px; 132} 133 134.nav a { 135 display: block; 136 padding: 8px 10px; 137 border-radius: 10px; 138 color: var(--text); 139 opacity: 0.9; 140} 141.nav a:hover { 142 background: color-mix(in srgb, var(--codebg) 70%, transparent); 143 text-decoration: none; 144} 145.nav a[aria-current="page"] { 146 background: color-mix(in srgb, var(--link) 14%, var(--codebg)); 147 border: 1px solid color-mix(in srgb, var(--link) 20%, var(--border)); 148} 149 150.main { 151 display: flex; 152 justify-content: center; 153} 154 155.content { 156 width: min(var(--max), 100%); 157 border: 1px solid var(--border); 158 border-radius: var(--radius); 159 background: var(--panel); 160 box-shadow: 0 12px 40px var(--shadow); 161 padding: 24px; 162} 163 164.site-footer { 165 display: flex; 166 justify-content: center; 167 padding: 12px 16px; 168 border-top: 1px solid var(--border); 169 background: var(--panel); 170} 171 172.footer-link { 173 font-size: 13px; 174 color: var(--muted); 175 padding: 6px 10px; 176 border-radius: 10px; 177 border: 1px solid transparent; 178} 179.footer-link:hover { 180 color: var(--text); 181 background: color-mix(in srgb, var(--codebg) 70%, transparent); 182 border-color: var(--border); 183 text-decoration: none; 184} 185 186.content h1, 187.content h2, 188.content h3 { 189 scroll-margin-top: 84px; 190} 191 192.content h1 { 193 margin-top: 0; 194 font-size: 34px; 195} 196 197.content p, 198.content li { 199 line-height: 1.6; 200} 201 202.content code { 203 font-family: var(--mono); 204 font-size: 0.95em; 205 background: var(--codebg); 206 padding: 2px 6px; 207 border-radius: 8px; 208} 209 210.content pre { 211 overflow: auto; 212 padding: 14px 16px; 213 border-radius: 12px; 214 background: var(--codebg); 215 border: 1px solid var(--border); 216} 217 218.content pre code { 219 background: transparent; 220 padding: 0; 221} 222 223.empty { 224 color: var(--muted); 225}