A community-maintained directory of Bluesky Personal Data Servers (PDS). pdslist.wisp.place
at main 6.4 kB view raw
1* { 2 margin: 0; 3 padding: 0; 4 box-sizing: border-box; 5} 6 7body { 8 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; 9 padding: 20px; 10 background-color: #f8f9fa; 11 color: #333; 12 line-height: 1.6; 13} 14 15.container { 16 max-width: 1200px; 17 margin: 0 auto; 18 background-color: white; 19 padding: 30px; 20 border-radius: 8px; 21 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); 22} 23 24h1 { 25 color: #1a1a1a; 26 margin-bottom: 10px; 27 font-size: 28px; 28} 29 30h2 { 31 color: #0066cc; 32 margin-top: 20px; 33 margin-bottom: 15px; 34 font-size: 22px; 35} 36 37p { 38 margin-bottom: 15px; 39 color: #555; 40} 41 42a { 43 color: #0066cc; 44 text-decoration: none; 45 transition: color 0.2s; 46} 47 48a:hover { 49 color: #0052a3; 50 text-decoration: underline; 51} 52 53#loading { 54 text-align: center; 55 padding: 40px; 56 font-size: 18px; 57 color: #666; 58} 59 60#content { 61 padding: 20px 0; 62} 63 64/* Tables */ 65table { 66 width: 100%; 67 border-collapse: collapse; 68 margin: 20px 0; 69 font-size: 14px; 70 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); 71 overflow-x: auto; 72 display: block; 73} 74 75table th, 76table td { 77 padding: 12px; 78 text-align: left; 79 border-bottom: 1px solid #e0e0e0; 80} 81 82table th { 83 background-color: #0066cc; 84 color: white; 85 font-weight: 600; 86 border-bottom: 2px solid #0052a3; 87 position: sticky; 88 top: 0; 89} 90 91table tr { 92 display: table; 93 width: 100%; 94 table-layout: fixed; 95} 96 97table tr:hover { 98 background-color: #f5f5f5; 99} 100 101table a { 102 color: #0066cc; 103 word-break: break-all; 104} 105 106table a:hover { 107 text-decoration: underline; 108} 109 110/* Make Terms and Privacy columns smaller */ 111table th:nth-child(7), 112table th:nth-child(8), 113table td:nth-child(7), 114table td:nth-child(8) { 115 padding: 4px 2px; 116 font-size: 12px; 117 text-align: center; 118 width: 60px; 119} 120table th:nth-child(6), 121table td:nth-child(6), 122table th:nth-child(4), 123table td:nth-child(4) 124{ 125 padding: 4px 2px; 126 font-size: 12px; 127 text-align: center; 128 width: 90px; 129} 130/* Responsive Table */ 131@media (max-width: 1024px) { 132 table { 133 font-size: 13px; 134 } 135 136 table th, 137 table td { 138 padding: 10px 8px; 139 } 140 table th:nth-child(6), 141 table td:nth-child(6), 142 table th:nth-child(4), 143 table td:nth-child(4), 144 table th:nth-child(7), 145 table th:nth-child(8), 146 table td:nth-child(7), 147 table td:nth-child(8) { 148 padding: 8px 4px; 149 width: 50px; 150 } 151} 152 153@media (max-width: 768px) { 154 table { 155 font-size: 12px; 156 } 157 158 table th, 159 table td { 160 padding: 8px 6px; 161 word-break: break-word; 162 } 163 164 /* Hide certain columns on mobile */ 165 table th:nth-child(4), 166 table th:nth-child(5), 167 table th:nth-child(7), 168 table th:nth-child(8), 169 table td:nth-child(4), 170 table td:nth-child(5), 171 table td:nth-child(7), 172 table td:nth-child(8) { 173 display: none; 174 } 175 176 /* Make URL and Maintainer wider on mobile */ 177 table th:nth-child(1), 178 table th:nth-child(3), 179 table td:nth-child(1), 180 table td:nth-child(3) { 181 min-width: 100px; 182 } 183 184 .container { 185 padding: 15px; 186 } 187 188 h1 { 189 font-size: 20px; 190 } 191} 192 193@media (max-width: 480px) { 194 table { 195 font-size: 11px; 196 } 197 198 table th, 199 table td { 200 padding: 6px 4px; 201 } 202 203 /* On very small screens, show only essential columns */ 204 table th:nth-child(2), 205 table th:nth-child(6), 206 table td:nth-child(2), 207 table td:nth-child(6) { 208 display: none; 209 } 210 211 /* Make columns more compact */ 212 table th:nth-child(1), 213 table th:nth-child(3), 214 table td:nth-child(1), 215 table td:nth-child(3) { 216 min-width: 80px; 217 max-width: 150px; 218 } 219 220 .container { 221 padding: 10px; 222 } 223 224 h1 { 225 font-size: 18px; 226 } 227 228 p { 229 font-size: 13px; 230 } 231} 232 233/* Buttons */ 234button { 235 padding: 12px 16px; 236 border: none; 237 border-radius: 4px; 238 cursor: pointer; 239 font-size: 15px; 240 font-weight: 600; 241 transition: all 0.3s ease; 242 width: 100%; 243 margin-bottom: 10px; 244} 245 246button:hover { 247 transform: translateY(-2px); 248 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); 249} 250 251#toggle-pds { 252 background: #0066cc; 253 color: white; 254} 255 256#toggle-pds:hover { 257 background: #0052a3; 258} 259 260#toggle-bsky { 261 background: #0066cc; 262 color: white; 263} 264 265#toggle-bsky:hover { 266 background: #0052a3; 267} 268 269/* Sections */ 270#pds-section, 271#bsky-section, 272#cool-section { 273 margin-top: 15px; 274 padding: 15px; 275 background: #f9f9f9; 276 border-radius: 4px; 277 border-left: 4px solid #0066cc; 278} 279 280/* Search and Filters */ 281#search-input { 282 width: 100%; 283 padding: 10px 12px; 284 margin-bottom: 10px; 285 border: 1px solid #ddd; 286 border-radius: 4px; 287 font-size: 14px; 288} 289 290#search-input:focus { 291 outline: none; 292 border-color: #0066cc; 293 box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1); 294} 295 296#filters { 297 margin-bottom: 20px; 298 padding: 15px; 299 background: #f0f4f8; 300 border-radius: 4px; 301 border: 1px solid #ddd; 302} 303 304#filters label { 305 display: inline-flex; 306 align-items: center; 307 gap: 8px; 308 margin-right: 15px; 309 cursor: pointer; 310 color: #333; 311} 312 313#filters input[type="radio"] { 314 cursor: pointer; 315 width: 18px; 316 height: 18px; 317} 318 319/* Mobile Popup Styles */ 320#mobile-popup { 321 backdrop-filter: blur(4px); 322} 323 324#mobile-popup button { 325 padding: 10px 20px !important; 326 width: auto !important; 327 margin: 0 !important; 328} 329 330/* Info boxes */ 331#no-data { 332 text-align: center; 333 padding: 40px 20px; 334 color: #999; 335 font-size: 16px; 336} 337 338.stats { 339 display: flex; 340 gap: 20px; 341 margin-bottom: 20px; 342 flex-wrap: wrap; 343} 344 345.stat { 346 padding: 15px; 347 background: linear-gradient(135deg, #0066cc 0%, #0052a3 100%); 348 color: white; 349 border-radius: 4px; 350 font-weight: 600; 351 min-width: 200px; 352} 353 354.stat-label { 355 font-size: 12px; 356 opacity: 0.9; 357 margin-bottom: 5px; 358} 359 360.stat-value { 361 font-size: 24px; 362} 363 364@media (max-width: 768px) { 365 .stat { 366 min-width: 150px; 367 flex: 1; 368 } 369 370 .stat-value { 371 font-size: 20px; 372 } 373} 374 375@media (max-width: 480px) { 376 .stats { 377 gap: 10px; 378 } 379 380 .stat { 381 min-width: 120px; 382 padding: 12px; 383 } 384 385 .stat-value { 386 font-size: 18px; 387 } 388}