|
29 | 29 | diffLigatures?: boolean;
|
30 | 30 | inlineUnifiedDiffs?: boolean;
|
31 | 31 | diffContrast?: 'light' | 'medium' | 'strong';
|
| 32 | + colorBlindFriendly?: boolean; |
32 | 33 | staged?: boolean;
|
33 | 34 | stagedLines?: LineId[];
|
34 | 35 | hideCheckboxes?: boolean;
|
|
53 | 54 | diffFont = 'var(--fontfamily-mono)',
|
54 | 55 | diffLigatures = true,
|
55 | 56 | diffContrast = 'medium',
|
| 57 | + colorBlindFriendly = false, |
56 | 58 | inlineUnifiedDiffs = false,
|
57 | 59 | staged,
|
58 | 60 | stagedLines,
|
|
113 | 115 | }}
|
114 | 116 | bind:this={tableWrapperElem}
|
115 | 117 | class="table__wrapper contrast-{diffContrast}"
|
| 118 | + class:colorblind-friendly={colorBlindFriendly} |
116 | 119 | style="--tab-size: {tabSize}; --diff-font: {diffFont};"
|
117 | 120 | style:font-variant-ligatures={diffLigatures ? 'common-ligatures' : 'none'}
|
118 | 121 | >
|
|
122 | 125 | </div>
|
123 | 126 | {/if}
|
124 | 127 | <ScrollableContainer horz whenToShow="always" padding={{ left: numberHeaderWidth }}>
|
125 |
| - <!-- <div style="overflow: auto; max-height: 600px;"> --> |
126 | 128 | <table class="table__section">
|
127 | 129 | <thead class="table__title" class:draggable={!draggingDisabled}>
|
128 | 130 | <tr>
|
|
190 | 192 | />
|
191 | 193 | {/if}
|
192 | 194 | </table>
|
193 |
| - <!-- </div> --> |
194 | 195 | </ScrollableContainer>
|
195 | 196 | </div>
|
196 | 197 |
|
|
370 | 371 | --clr-diff-locked-count-border: var('--', var(--clr-diff-locked-count-border));
|
371 | 372 | }
|
372 | 373 |
|
| 374 | + /* Color blind-friendly overrides for light contrast */ |
| 375 | + .contrast-light.colorblind-friendly { |
| 376 | + /* deletion (orange) */ |
| 377 | + --clr-diff-deletion-line-bg: color(srgb 1 0.94 0.87); |
| 378 | + --clr-diff-deletion-line-highlight: color(srgb 1 0.85 0.67); |
| 379 | + --clr-diff-deletion-count-bg: color(srgb 1 0.9 0.77); |
| 380 | + --clr-diff-deletion-count-text: color(srgb 0.8 0.4 0.1); |
| 381 | + --clr-diff-deletion-count-border: color(srgb 1 0.8 0.6); |
| 382 | + --clr-diff-deletion-count-checkmark: color(srgb 0.8 0.4 0.1); |
| 383 | + /* addition (blue) */ |
| 384 | + --clr-diff-addition-line-bg: color(srgb 0.87 0.94 1); |
| 385 | + --clr-diff-addition-line-highlight: color(srgb 0.67 0.85 1); |
| 386 | + --clr-diff-addition-count-bg: color(srgb 0.77 0.9 1); |
| 387 | + --clr-diff-addition-count-text: color(srgb 0.1 0.4 0.8); |
| 388 | + --clr-diff-addition-count-border: color(srgb 0.6 0.8 1); |
| 389 | + --clr-diff-addition-count-checkmark: color(srgb 0.1 0.4 0.8); |
| 390 | + } |
| 391 | +
|
| 392 | + /* Dark theme color-blind friendly overrides for light contrast */ |
| 393 | + :global(.dark) .contrast-light.colorblind-friendly { |
| 394 | + /* deletion (orange) - darker variants for dark theme */ |
| 395 | + --clr-diff-deletion-line-bg: color(srgb 0.25 0.15 0.05); |
| 396 | + --clr-diff-deletion-line-highlight: color(srgb 0.4 0.2 0.05); |
| 397 | + --clr-diff-deletion-count-bg: color(srgb 0.35 0.2 0.08); |
| 398 | + --clr-diff-deletion-count-text: color(srgb 1 0.7 0.3); |
| 399 | + --clr-diff-deletion-count-border: color(srgb 0.6 0.4 0.15); |
| 400 | + --clr-diff-deletion-count-checkmark: color(srgb 1 0.7 0.3); |
| 401 | + /* addition (blue) - darker variants for dark theme */ |
| 402 | + --clr-diff-addition-line-bg: color(srgb 0.05 0.15 0.25); |
| 403 | + --clr-diff-addition-line-highlight: color(srgb 0.05 0.25 0.4); |
| 404 | + --clr-diff-addition-count-bg: color(srgb 0.08 0.2 0.35); |
| 405 | + --clr-diff-addition-count-text: color(srgb 0.5 0.8 1); |
| 406 | + --clr-diff-addition-count-border: color(srgb 0.2 0.5 0.8); |
| 407 | + --clr-diff-addition-count-checkmark: color(srgb 0.5 0.8 1); |
| 408 | + } |
| 409 | +
|
373 | 410 | .contrast-medium {
|
374 | 411 | --clr-diff-count-text: var(--clr-diff-count-text-contrast-2);
|
375 | 412 | /* deletion */
|
|
390 | 427 | --clr-diff-locked-count-border: var(--clr-diff-locked-contrast-2-count-border);
|
391 | 428 | }
|
392 | 429 |
|
| 430 | + /* Color blind-friendly overrides for medium contrast */ |
| 431 | + .contrast-medium.colorblind-friendly { |
| 432 | + /* deletion (orange) */ |
| 433 | + --clr-diff-deletion-line-bg: color(srgb 0.98 0.91 0.8); |
| 434 | + --clr-diff-deletion-line-highlight: color(srgb 0.96 0.82 0.6); |
| 435 | + --clr-diff-deletion-count-bg: color(srgb 0.96 0.87 0.7); |
| 436 | + --clr-diff-deletion-count-text: color(srgb 0.75 0.35 0.05); |
| 437 | + --clr-diff-deletion-count-border: color(srgb 0.95 0.75 0.5); |
| 438 | + --clr-diff-deletion-count-checkmark: color(srgb 0.75 0.35 0.05); |
| 439 | + /* addition (blue) */ |
| 440 | + --clr-diff-addition-line-bg: color(srgb 0.8 0.91 0.98); |
| 441 | + --clr-diff-addition-line-highlight: color(srgb 0.6 0.82 0.96); |
| 442 | + --clr-diff-addition-count-bg: color(srgb 0.7 0.87 0.96); |
| 443 | + --clr-diff-addition-count-text: color(srgb 0.05 0.35 0.75); |
| 444 | + --clr-diff-addition-count-border: color(srgb 0.5 0.75 0.95); |
| 445 | + --clr-diff-addition-count-checkmark: color(srgb 0.05 0.35 0.75); |
| 446 | + } |
| 447 | +
|
| 448 | + /* Dark theme color-blind friendly overrides for medium contrast */ |
| 449 | + :global(.dark) .contrast-medium.colorblind-friendly { |
| 450 | + /* deletion (orange) - darker variants for dark theme */ |
| 451 | + --clr-diff-deletion-line-bg: color(srgb 0.3 0.18 0.08); |
| 452 | + --clr-diff-deletion-line-highlight: color(srgb 0.45 0.25 0.1); |
| 453 | + --clr-diff-deletion-count-bg: color(srgb 0.4 0.25 0.12); |
| 454 | + --clr-diff-deletion-count-text: color(srgb 1 0.75 0.4); |
| 455 | + --clr-diff-deletion-count-border: color(srgb 0.65 0.45 0.2); |
| 456 | + --clr-diff-deletion-count-checkmark: color(srgb 1 0.75 0.4); |
| 457 | + /* addition (blue) - darker variants for dark theme */ |
| 458 | + --clr-diff-addition-line-bg: color(srgb 0.08 0.18 0.3); |
| 459 | + --clr-diff-addition-line-highlight: color(srgb 0.1 0.3 0.45); |
| 460 | + --clr-diff-addition-count-bg: color(srgb 0.12 0.25 0.4); |
| 461 | + --clr-diff-addition-count-text: color(srgb 0.6 0.85 1); |
| 462 | + --clr-diff-addition-count-border: color(srgb 0.25 0.55 0.85); |
| 463 | + --clr-diff-addition-count-checkmark: color(srgb 0.6 0.85 1); |
| 464 | + } |
| 465 | +
|
393 | 466 | .contrast-strong {
|
394 | 467 | --clr-diff-count-text: var(--clr-diff-count-text-contrast-3);
|
395 | 468 | /* deletion */
|
|
409 | 482 | --clr-diff-locked-count-text: var(--clr-diff-locked-contrast-3-count-text);
|
410 | 483 | --clr-diff-locked-count-border: var(--clr-diff-locked-contrast-3-count-border);
|
411 | 484 | }
|
| 485 | +
|
| 486 | + /* Color blind-friendly overrides for strong contrast */ |
| 487 | + .contrast-strong.colorblind-friendly { |
| 488 | + /* deletion (orange) */ |
| 489 | + --clr-diff-deletion-line-bg: color(srgb 0.96 0.88 0.75); |
| 490 | + --clr-diff-deletion-line-highlight: color(srgb 0.93 0.78 0.55); |
| 491 | + --clr-diff-deletion-count-bg: color(srgb 0.93 0.84 0.65); |
| 492 | + --clr-diff-deletion-count-text: color(srgb 0.7 0.3 0.02); |
| 493 | + --clr-diff-deletion-count-border: color(srgb 0.9 0.7 0.45); |
| 494 | + --clr-diff-deletion-count-checkmark: color(srgb 0.7 0.3 0.02); |
| 495 | + /* addition (blue) */ |
| 496 | + --clr-diff-addition-line-bg: color(srgb 0.75 0.88 0.96); |
| 497 | + --clr-diff-addition-line-highlight: color(srgb 0.55 0.78 0.93); |
| 498 | + --clr-diff-addition-count-bg: color(srgb 0.65 0.84 0.93); |
| 499 | + --clr-diff-addition-count-text: color(srgb 0.02 0.3 0.7); |
| 500 | + --clr-diff-addition-count-border: color(srgb 0.45 0.7 0.9); |
| 501 | + --clr-diff-addition-count-checkmark: color(srgb 0.02 0.3 0.7); |
| 502 | + } |
| 503 | +
|
| 504 | + /* Dark theme color-blind friendly overrides for strong contrast */ |
| 505 | + :global(.dark) .contrast-strong.colorblind-friendly { |
| 506 | + /* deletion (orange) - darker variants for dark theme */ |
| 507 | + --clr-diff-deletion-line-bg: color(srgb 0.35 0.22 0.12); |
| 508 | + --clr-diff-deletion-line-highlight: color(srgb 0.5 0.3 0.15); |
| 509 | + --clr-diff-deletion-count-bg: color(srgb 0.45 0.3 0.18); |
| 510 | + --clr-diff-deletion-count-text: color(srgb 1 0.8 0.5); |
| 511 | + --clr-diff-deletion-count-border: color(srgb 0.7 0.5 0.25); |
| 512 | + --clr-diff-deletion-count-checkmark: color(srgb 1 0.8 0.5); |
| 513 | + /* addition (blue) - darker variants for dark theme */ |
| 514 | + --clr-diff-addition-line-bg: color(srgb 0.12 0.22 0.35); |
| 515 | + --clr-diff-addition-line-highlight: color(srgb 0.15 0.35 0.5); |
| 516 | + --clr-diff-addition-count-bg: color(srgb 0.18 0.3 0.45); |
| 517 | + --clr-diff-addition-count-text: color(srgb 0.7 0.9 1); |
| 518 | + --clr-diff-addition-count-border: color(srgb 0.3 0.6 0.9); |
| 519 | + --clr-diff-addition-count-checkmark: color(srgb 0.7 0.9 1); |
| 520 | + } |
412 | 521 | </style>
|
0 commit comments