Parent
[>]
1*, *::before, *::after { box-sizing: border-box; } 2 3footer { 4 padding: 1rem; 5 margin-top: 2rem; 6 color: var(--secondary); 7 font-size: .875rem; 8 text-align: center; 9} 10 11html { overflow-x: clip; } 12 13body { 14 font-family: var(--font-body); 15 max-width: 860px; 16 margin: 0 auto; 17 padding: 0; 18 background: var(--background); 19 color: var(--primary); 20} 21 22header { 23 padding: .75rem 1rem; 24 margin-bottom: .75rem; 25} 26 27header ul { 28 list-style: none; 29 margin: 0; 30 padding: 0; 31 display: flex; 32 align-items: center; 33 gap: .25rem; 34 font-size: 1.2rem; 35 min-width: 0; 36} 37 38header li { 39 white-space: nowrap; 40 overflow: hidden; 41 text-overflow: ellipsis; 42 min-width: 0; 43} 44 45header li:first-child { flex-shrink: 0; } 46header li:last-child { flex-shrink: 1; } 47 48header li + li::before { 49 content: '/'; 50 margin-right: .25rem; 51 color: var(--secondary); 52} 53 54header a { 55 color: var(--primary); 56 text-decoration: none; 57} 58 59header a:hover { 60 color: var(--emphasized); 61 text-decoration: underline; 62 text-underline-offset: 4px; 63} 64 65main > h1, main > p { 66 padding-left: 1rem; 67 padding-right: 1rem; 68} 69 70main > h1 { margin-bottom: .75rem; } 71main > p { margin-top: 0; } 72 73.repo-nav-item { 74 display: flex; 75 align-items: center; 76 gap: 1rem; 77 padding: 0 1rem; 78 min-height: 50px; 79 text-decoration: none; 80 color: var(--primary); 81 font-family: var(--font-mono); 82 border-top: 1px solid var(--secondary); 83 transition: background-color .3s ease-out; 84} 85 86.repo-nav-item + .repo-nav-item { border-top: 1px solid var(--highlight); } 87.repo-nav-item:last-child { border-bottom: 1px solid var(--secondary); } 88.repo-nav-item:active { background-color: var(--highlight); transition: none; } 89.repo-nav-item:hover > span:first-of-type { text-decoration: underline; text-underline-offset: 3px; } 90 91.repo-nav-item-meta { 92 margin-left: auto; 93 color: var(--secondary); 94} 95 96.repo-nav-item-arrow { 97 color: var(--secondary); 98} 99main > article { padding: 0 1rem; } 100 101.repo-list { 102 display: flex; 103 flex-direction: column; 104} 105 106.repo-card { 107 display: flex; 108 flex-direction: column; 109 gap: .5rem; 110 padding: 1rem 1.25rem; 111 text-decoration: none; 112 color: inherit; 113} 114 115.repo-card:hover { background: var(--highlight); } 116 117.repo-name { 118 font-size: 1.1rem; 119 font-weight: 600; 120 color: var(--emphasized); 121} 122 123.repo-desc { 124 font-size: 1rem; 125 color: var(--primary); 126} 127 128.repo-meta { 129 display: flex; 130 justify-content: space-between; 131 color: var(--secondary); 132} 133 134.tag-info { 135 display: grid; 136 grid-template-columns: max-content 1fr; 137 gap: .2rem 1.5rem; 138 font-family: var(--font-mono); 139 margin: 0 1rem 1rem; 140} 141 142.tag-info dt { color: var(--secondary); } 143.tag-info dd { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; } 144.tag-info a { color: var(--primary); } 145 146.tag-downloads { 147 font-family: var(--font-mono); 148 padding: 0 1rem; 149} 150 151.tag-message { 152 font-family: var(--font-mono); 153 font-size: 1rem; 154 padding: 1rem; 155 margin: 0 1rem 1rem; 156 background: var(--highlight); 157 border-radius: 6px; 158 white-space: pre-wrap; 159 color: var(--primary); 160} 161 162.branch-list, .tag-list { display: flex; flex-direction: column; } 163 164.branch-row, .tag-row { 165 display: flex; 166 justify-content: space-between; 167 align-items: baseline; 168 padding: .75rem 1rem; 169 text-decoration: none; 170 color: inherit; 171 font-family: var(--font-mono); 172} 173 174.branch-row:hover, .tag-row:hover { background: var(--highlight); } 175 176.branch-name, 177.tag-name { 178 overflow: hidden; 179 text-overflow: ellipsis; 180 white-space: nowrap; 181 min-width: 0; 182} 183 184 185.branch-default { 186 color: var(--secondary); 187 margin-right: 1rem; 188} 189 190.branch-date, .tag-date { 191 display: flex; 192 align-items: baseline; 193 flex-shrink: 0; 194 color: var(--secondary); 195 padding-left: 1rem; 196} 197 198.commit-log { 199 display: flex; 200 flex-direction: column; 201} 202 203.commit-row { 204 display: grid; 205 grid-template-columns: 5rem 1fr; 206 grid-template-rows: auto auto; 207 gap: .15rem 1rem; 208 padding: .75rem 1rem; 209 text-decoration: none; 210 color: inherit; 211 font-family: var(--font-mono); 212} 213 214.commit-row:hover { background: var(--highlight); } 215 216.commit-sha { 217 font-family: var(--font-mono); 218 color: var(--secondary); 219 grid-row: 1; 220} 221 222.commit-message { 223 color: var(--primary); 224 grid-row: 1; 225 overflow: hidden; 226 text-overflow: ellipsis; 227 white-space: nowrap; 228} 229 230.commit-meta { 231 display: flex; 232 justify-content: space-between; 233 color: var(--secondary); 234 grid-column: 2; 235 grid-row: 2; 236 min-width: 0; 237} 238 239.commit-meta span:first-child { 240 overflow: hidden; 241 text-overflow: ellipsis; 242 white-space: nowrap; 243 min-width: 0; 244} 245 246.commit-meta span:last-child { 247 flex-shrink: 0; 248 padding-left: 1rem; 249} 250 251.pagination { 252 display: flex; 253 justify-content: space-between; 254 padding: .75rem 1rem; 255} 256 257.pagination a { color: var(--secondary); text-decoration: none; } 258.pagination a:hover { color: var(--primary); } 259 260details { 261 border-top: 1px solid var(--highlight); 262} 263 264details:first-of-type { 265 border-top: 1px solid var(--secondary); 266} 267 268details:last-of-type { 269 border-bottom: 1px solid var(--highlight); 270} 271 272summary { 273 cursor: pointer; 274 display: flex; 275 align-items: center; 276 gap: 1rem; 277 padding: 0 1rem; 278 min-height: 50px; 279 font-family: var(--font-mono); 280 background: var(--highlight); 281} 282 283.summary-icon { 284 width: 1rem; 285 height: 1rem; 286 flex-shrink: 0; 287} 288 289 290details[open] summary { 291 color: var(--emphasized); 292} 293 294summary::after { 295 content: '[+]'; 296 color: var(--secondary); 297} 298 299summary:not(:has(span))::after { 300 margin-left: auto; 301} 302 303details[open] summary::after { 304 content: '[−]'; 305} 306 307 308summary span { 309 color: var(--secondary); 310 margin-left: auto; 311} 312 313details > *:not(summary) { 314 padding: 0 1rem .75rem; 315 margin-bottom: 0; 316} 317 318details > ul { 319 list-style: none; 320 padding: 0; 321 margin: 0; 322} 323 324details ul li + li { 325 border-top: 1px solid var(--highlight); 326} 327 328details ul li { 329 display: flex; 330 align-items: center; 331 gap: 1rem; 332 min-height: 50px; 333 padding: 0 1rem; 334 color: var(--secondary); 335 font-family: var(--font-mono); 336 font-size: 1rem; 337} 338 339details ul li:has(a), details ul li:has(button) { 340 padding: 0; 341} 342 343details ul li a, 344details ul li button { 345 display: flex; 346 align-items: center; 347 gap: 1rem; 348 padding: 0 1rem; 349 min-height: 50px; 350 width: 100%; 351 text-align: left; 352 text-decoration: none; 353 color: inherit; 354 background: transparent; 355 border: none; 356 cursor: pointer; 357 font-family: var(--font-mono); 358 font-size: 1rem; 359} 360 361details ul li a, 362details ul li button { transition: background-color .3s ease-out; } 363 364details ul li a:active, 365details ul li button:active { background-color: var(--highlight); transition: none; } 366 367details ul li a:hover span:first-child, 368details ul li button:hover span:first-child { text-decoration: underline; text-underline-offset: 3px; } 369 370/* First span grows to fill available space in both link and button rows */ 371details ul li a span:first-child, 372details ul li button span:first-child { 373 flex: 1; 374 min-width: 0; 375 overflow: hidden; 376 text-overflow: ellipsis; 377 white-space: nowrap; 378 color: var(--primary); 379} 380 381/* Clone rows: animate URL text on copy, label fixed width on right */ 382details ul li button span:first-child { transition: opacity .1s; } 383details ul li button span:nth-child(2) { 384 flex-shrink: 0; 385 min-width: 4rem; 386 text-align: right; 387 color: var(--secondary); 388} 389 390/* Branch/tag rows: remaining spans fixed on the right */ 391details ul li a span:not(:first-child) { 392 flex-shrink: 0; 393 color: var(--secondary); 394} 395 396/* Accent colors — specificity matches details ul li a span:first-child */ 397details ul li a span.branch-name, 398.branch-name { color: var(--blue); } 399 400details ul li a span.tag-name, 401.tag-name { color: var(--violet); }