Skip to content

Commit 5e2cb11

Browse files
committed
fix: align sliders with existing visual styles
1 parent f65ab3f commit 5e2cb11

File tree

1 file changed

+28
-55
lines changed

1 file changed

+28
-55
lines changed

app/components/diff/ViewerPanel.vue

Lines changed: 28 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,11 @@ function getCodeUrl(version: string): string {
276276
<!-- Dropdown menu -->
277277
<motion.div
278278
v-if="showOptions"
279-
class="absolute right-0 top-full mt-2 z-20 p-4 bg-bg-elevated/40 backdrop-blur-sm border border-border shadow-2xl overflow-hidden"
280-
:initial="{ width: 220, height: 110, borderRadius: 20 }"
279+
class="absolute right-0 top-full mt-2 z-20 p-4 bg-bg-elevated border border-border shadow-2xl overflow-hidden"
280+
:initial="{ width: 220, height: 100, borderRadius: 20 }"
281281
:animate="{
282282
width: mergeModifiedLines ? 400 : 220,
283-
height: mergeModifiedLines ? 260 : 110,
283+
height: mergeModifiedLines ? 220 : 100,
284284
borderRadius: mergeModifiedLines ? 14 : 20,
285285
}"
286286
:transition="{
@@ -320,7 +320,7 @@ function getCodeUrl(version: string): string {
320320
v-for="mark in changeRatioMarks"
321321
:key="`cr-${mark}`"
322322
class="slider-mark"
323-
:style="{ left: `calc(${mark}% - 11px)` }"
323+
:style="{ left: `calc(${mark}% - 1.5px)` }"
324324
/>
325325
<div class="slider-range" :style="{ width: `${changeRatioPercent}%` }" />
326326
</div>
@@ -353,7 +353,7 @@ function getCodeUrl(version: string): string {
353353
v-for="mark in diffDistanceMarks"
354354
:key="`dd-${mark}`"
355355
class="slider-mark"
356-
:style="{ left: `calc(${mark}% - 11px)` }"
356+
:style="{ left: `calc(${mark}% - 1.5px)` }"
357357
/>
358358
<div class="slider-range" :style="{ width: `${diffDistancePercent}%` }" />
359359
</div>
@@ -386,7 +386,7 @@ function getCodeUrl(version: string): string {
386386
v-for="mark in charEditMarks"
387387
:key="`ce-${mark}`"
388388
class="slider-mark"
389-
:style="{ left: `calc(${mark}% - 11px)` }"
389+
:style="{ left: `calc(${mark}% - 1.5px)` }"
390390
/>
391391
<div class="slider-range" :style="{ width: `${charEditPercent}%` }" />
392392
</div>
@@ -481,21 +481,17 @@ function getCodeUrl(version: string): string {
481481
position: relative;
482482
display: flex;
483483
align-items: center;
484-
height: 48px;
484+
height: 36px;
485485
width: 100%;
486486
border: 1px solid var(--border);
487487
background: var(--bg-subtle);
488-
border-radius: 12px;
488+
border-radius: 6px;
489489
overflow: hidden;
490490
cursor: grab;
491-
transition:
492-
background-color 150ms ease,
493-
border-color 150ms ease,
494-
opacity 150ms ease;
491+
transition: border-color 200ms ease;
495492
}
496493
497494
.slider-shell:hover {
498-
background: var(--bg-muted);
499495
border-color: var(--border-hover);
500496
}
501497
@@ -514,36 +510,32 @@ function getCodeUrl(version: string): string {
514510
display: flex;
515511
align-items: center;
516512
justify-content: space-between;
517-
padding: 0 16px;
513+
padding: 0 12px;
518514
pointer-events: none;
519515
z-index: 3;
520516
}
521517
522518
.slider-label {
523-
font-size: 0.875rem;
519+
font-size: 0.75rem;
524520
font-weight: 400;
525-
color: color-mix(in srgb, var(--fg) 30%, transparent);
526-
letter-spacing: -0.01em;
527-
transition: color 150ms ease;
528-
}
529-
530-
.slider-shell:hover .slider-label {
531521
color: var(--fg);
522+
letter-spacing: -0.01em;
523+
transition: color 200ms ease;
532524
}
533525
534526
.slider-value {
535-
min-width: 32px;
527+
min-width: 24px;
536528
text-align: right;
537-
font-size: 0.875rem;
529+
font-size: 0.75rem;
538530
font-weight: 500;
539531
color: var(--fg);
540532
}
541533
542534
.slider-track {
543535
position: absolute;
544536
inset: 0;
545-
background: var(--bg-muted);
546-
border-radius: 10px;
537+
background: var(--bg-subtle);
538+
border-radius: 5px;
547539
overflow: hidden;
548540
z-index: 1;
549541
pointer-events: none;
@@ -552,44 +544,25 @@ function getCodeUrl(version: string): string {
552544
.slider-mark {
553545
position: absolute;
554546
top: 50%;
555-
width: 6px;
556-
height: 6px;
547+
width: 3px;
548+
height: 3px;
557549
border-radius: 50%;
558-
background: color-mix(in srgb, var(--fg) 20%, transparent);
550+
background: var(--border);
559551
transform: translateY(-50%);
560552
pointer-events: none;
561-
opacity: 0.9;
553+
opacity: 0.6;
562554
}
563555
564556
.slider-range {
565557
position: absolute;
566558
inset: 0 auto 0 0;
567-
background: var(--bg-subtle);
568-
border-radius: 10px;
569-
transition:
570-
width 150ms ease-out,
571-
background-color 150ms ease-out;
559+
background: var(--bg-muted);
560+
border-radius: 5px;
561+
transition: width 150ms ease-out;
572562
z-index: 2;
573563
pointer-events: none;
574564
}
575565
576-
.slider-range::after {
577-
content: '';
578-
position: absolute;
579-
right: 8px;
580-
top: 50%;
581-
width: 2px;
582-
height: 28px;
583-
border-radius: 12px;
584-
background: color-mix(in srgb, var(--fg) 20%, transparent);
585-
transform: translateY(-50%);
586-
transition: background-color 150ms ease;
587-
}
588-
589-
.slider-shell:hover .slider-range::after {
590-
background: color-mix(in srgb, var(--fg) 50%, transparent);
591-
}
592-
593566
.slider-input {
594567
position: absolute;
595568
inset: 0;
@@ -606,13 +579,13 @@ function getCodeUrl(version: string): string {
606579
607580
.slider-input::-webkit-slider-thumb {
608581
-webkit-appearance: none;
609-
height: 32px;
610-
width: 16px;
582+
height: 24px;
583+
width: 12px;
611584
}
612585
613586
.slider-input::-moz-range-thumb {
614-
height: 32px;
615-
width: 16px;
587+
height: 24px;
588+
width: 12px;
616589
border: none;
617590
background: transparent;
618591
}

0 commit comments

Comments
 (0)