comparison hg-web/src/index.css @ 221:ce7f4400c2de hg-web

[hg-web] Harden forge and add changeset UI
author MrJuneJune <me@mrjunejune.com>
date Sun, 02 Aug 2026 09:01:24 -0700
parents 9f4429c49733
children 0e7b9464248d
comparison
equal deleted inserted replaced
219:8c9bb0b0759e 221:ce7f4400c2de
268 .graph-wrapper { 268 .graph-wrapper {
269 display: flex; 269 display: flex;
270 align-items: flex-start; 270 align-items: flex-start;
271 max-height: 600px; 271 max-height: 600px;
272 overflow-y: auto; 272 overflow-y: auto;
273 position: relative;
273 } 274 }
274 275
275 .graph-canvas-column { 276 .graph-canvas-column {
276 flex-shrink: 0; 277 flex-shrink: 0;
277 background: var(--bg);
278 position: sticky; 278 position: sticky;
279 left: 0; 279 left: 0;
280 z-index: 1;
281 border-right: 1px solid var(--border);
280 } 282 }
281 283
282 .graph-details-column { 284 .graph-details-column {
283 flex-grow: 1; 285 flex-grow: 1;
284 overflow-x: hidden; 286 overflow-x: hidden;
285 } 287 }
286 288
287 .graph-row { 289 .graph-row {
290 width: 100%;
288 height: 40px; 291 height: 40px;
289 display: flex; 292 display: flex;
290 flex-direction: column; 293 flex-direction: column;
291 justify-content: center; 294 justify-content: center;
292 padding: 0 12px; 295 padding: 0 12px;
296 background: transparent;
297 color: inherit;
298 text-align: left;
299 border: 0;
293 border-bottom: 1px solid var(--border); 300 border-bottom: 1px solid var(--border);
294 font-size: 12px; 301 font-size: 12px;
295 cursor: pointer; 302 cursor: pointer;
296 transition: background-color 0.1s; 303 transition: background-color 0.1s;
297 } 304 }
298 305
299 .graph-row:hover { 306 .graph-row:hover {
307 background: var(--hover);
308 }
309
310 .graph-row:focus-visible {
311 outline: 2px solid var(--accent);
312 outline-offset: -2px;
300 background: var(--hover); 313 background: var(--hover);
301 } 314 }
302 315
303 .graph-row-meta { 316 .graph-row-meta {
304 display: flex; 317 display: flex;
363 color: var(--text-secondary); 376 color: var(--text-secondary);
364 font-size: 12px; 377 font-size: 12px;
365 } 378 }
366 379
367 /* =========================================== 380 /* ===========================================
381 Changeset Detail
382 =========================================== */
383 .changeset-paper {
384 background: var(--bg);
385 background-image: url("/pencil_texture.png");
386 border: 1px solid var(--border);
387 border-radius: 6px;
388 padding: 24px;
389 }
390
391 .changeset-heading,
392 .changeset-meta,
393 .changeset-parents,
394 .changeset-files,
395 .changeset-labels {
396 display: flex;
397 align-items: center;
398 flex-wrap: wrap;
399 gap: 10px;
400 }
401
402 .changeset-heading {
403 justify-content: space-between;
404 margin-bottom: 12px;
405 }
406
407 .changeset-heading code {
408 overflow-wrap: anywhere;
409 }
410
411 .changeset-paper h2 {
412 margin-bottom: 8px;
413 }
414
415 .changeset-meta {
416 color: var(--text-secondary);
417 justify-content: space-between;
418 margin-bottom: 16px;
419 }
420
421 .changeset-branch,
422 .changeset-labels span {
423 background: var(--bg-subtle);
424 border: 1px solid var(--border);
425 border-radius: 999px;
426 padding: 2px 8px;
427 font-size: 12px;
428 }
429
430 .changeset-labels,
431 .changeset-parents,
432 .changeset-files {
433 margin: 12px 0;
434 }
435
436 .changeset-parents button {
437 border: 0;
438 background: transparent;
439 color: var(--accent);
440 cursor: pointer;
441 font-family: monospace;
442 }
443
444 .changeset-parents button:hover {
445 text-decoration: underline;
446 }
447
448 .changeset-parents button:focus-visible {
449 outline: 2px solid var(--accent);
450 outline-offset: 2px;
451 }
452
453 .changeset-files code {
454 overflow-wrap: anywhere;
455 }
456
457 .changeset-diff {
458 margin-top: 24px;
459 }
460
461 .changeset-diff h3 {
462 margin-bottom: 10px;
463 }
464
465 .changeset-diff pre {
466 margin: 0 0 16px;
467 padding: 0;
468 overflow-x: auto;
469 border: 1px solid var(--border);
470 }
471
472 .changeset-diff pre > span {
473 display: flex;
474 min-width: max-content;
475 padding-right: 12px;
476 }
477
478 .diff-line-number {
479 width: 54px;
480 flex-shrink: 0;
481 margin-right: 12px;
482 padding-right: 10px;
483 color: var(--text-secondary);
484 text-align: right;
485 user-select: none;
486 border-right: 1px solid var(--border);
487 }
488
489 .diff-add {
490 background: color-mix(in srgb, var(--success) 18%, transparent);
491 }
492
493 .diff-remove {
494 background: color-mix(in srgb, var(--danger) 18%, transparent);
495 }
496
497 .diff-range {
498 color: var(--accent);
499 background: var(--bg-subtle);
500 }
501
502 /* ===========================================
368 Common States 503 Common States
369 =========================================== */ 504 =========================================== */
370 .empty-state { 505 .empty-state {
371 padding: 40px; 506 padding: 40px;
372 text-align: center; 507 text-align: center;