fix(css): migrate duplicates component to canonical color tokens

Replace undefined --lora-accent-l/c/h and --lora-warning-l/c/h with
canonical --color-accent-l/c/h and --color-warning-l/c/h from the
design token system. Fix 5 border-color declarations missing oklch()
wrapper, fix var() space syntax error in .group-toggle-btn:hover,
and replace hardcoded green with --color-success token.
This commit is contained in:
Will Miao
2026-06-18 22:41:46 +08:00
parent a617487a43
commit faf64f8986

View File

@@ -5,10 +5,10 @@
position: sticky; /* Keep the sticky position */ position: sticky; /* Keep the sticky position */
top: var(--space-1); top: var(--space-1);
width: 100%; width: 100%;
background-color: oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h) / 0.1); /* Use accent color with low opacity */ background-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h) / 0.1); /* Use accent color with low opacity */
color: var(--text-color); color: var(--text-color);
border-top: 1px solid oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h) / 0.3); /* Add top border with accent color */ border-top: 1px solid oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h) / 0.3); /* Add top border with accent color */
border-bottom: 1px solid oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h) / 0.4); /* Make bottom border stronger */ border-bottom: 1px solid oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h) / 0.4); /* Make bottom border stronger */
z-index: var(--z-overlay); z-index: var(--z-overlay);
padding: 12px 0; padding: 12px 0;
box-shadow: var(--shadow-lg); /* Stronger shadow */ box-shadow: var(--shadow-lg); /* Stronger shadow */
@@ -41,7 +41,7 @@
.duplicates-banner i.fa-exclamation-triangle { .duplicates-banner i.fa-exclamation-triangle {
font-size: 18px; font-size: 18px;
color: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); color: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
} }
.duplicates-banner .banner-actions { .duplicates-banner .banner-actions {
@@ -70,7 +70,7 @@
.duplicates-banner button.btn-exit-mode:hover { .duplicates-banner button.btn-exit-mode:hover {
background-color: var(--bg-color); background-color: var(--bg-color);
border-color: var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
transform: translateY(-1px); transform: translateY(-1px);
} }
@@ -92,7 +92,7 @@
} }
.duplicates-banner button:hover { .duplicates-banner button:hover {
border-color: var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
background: var(--bg-color); background: var(--bg-color);
transform: translateY(-1px); transform: translateY(-1px);
box-shadow: var(--shadow-sm); box-shadow: var(--shadow-sm);
@@ -117,7 +117,7 @@
/* Duplicate groups */ /* Duplicate groups */
.duplicate-group { .duplicate-group {
position: relative; position: relative;
border: 2px solid oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); border: 2px solid oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
border-radius: var(--border-radius-base); border-radius: var(--border-radius-base);
padding: 16px; padding: 16px;
margin-bottom: 24px; margin-bottom: 24px;
@@ -152,7 +152,7 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
border-left: 4px solid oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); /* Add accent border on the left */ border-left: 4px solid oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h)); /* Add accent border on the left */
} }
.duplicate-group-header span:last-child { .duplicate-group-header span:last-child {
@@ -180,7 +180,7 @@
} }
.duplicate-group-header button:hover { .duplicate-group-header button:hover {
border-color: var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
background: var(--bg-color); background: var(--bg-color);
transform: translateY(-1px); transform: translateY(-1px);
box-shadow: var(--shadow-sm); box-shadow: var(--shadow-sm);
@@ -235,7 +235,7 @@
} }
.group-toggle-btn:hover { .group-toggle-btn:hover {
border-color: var(--lora-accent-l) var(--lora-accent-c) var (--lora-accent-h); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
transform: translateY(-1px); transform: translateY(-1px);
box-shadow: var(--shadow-sm); box-shadow: var(--shadow-sm);
} }
@@ -247,16 +247,16 @@
} }
.model-card.duplicate:hover { .model-card.duplicate:hover {
border-color: var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
} }
.model-card.duplicate.latest { .model-card.duplicate.latest {
border-style: solid; border-style: solid;
border-color: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); border-color: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
} }
.model-card.duplicate-selected { .model-card.duplicate-selected {
border: 2px solid oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h)); border: 2px solid oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
box-shadow: var(--shadow-md); box-shadow: var(--shadow-md);
} }
@@ -276,7 +276,7 @@
position: absolute; position: absolute;
top: 10px; top: 10px;
left: 10px; left: 10px;
background: oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h)); background: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
color: white; color: white;
font-size: 12px; font-size: 12px;
padding: 2px 6px; padding: 2px 6px;
@@ -328,7 +328,7 @@
margin-top: 8px; margin-top: 8px;
padding-top: 8px; padding-top: 8px;
border-top: 1px dashed var(--border-color); border-top: 1px dashed var(--border-color);
color: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); color: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
font-weight: bold; font-weight: bold;
word-break: break-all; /* Ensure long hashes wrap properly */ word-break: break-all; /* Ensure long hashes wrap properly */
} }
@@ -351,12 +351,12 @@
} }
.verification-badge.verified { .verification-badge.verified {
background-color: oklch(70% 0.2 140); /* Green for verified */ background-color: var(--color-success); /* Green for verified */
color: white; color: white;
} }
.verification-badge.mismatch { .verification-badge.mismatch {
background-color: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); background-color: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
color: white; color: white;
} }
@@ -366,7 +366,7 @@
/* Hash Mismatch Styling */ /* Hash Mismatch Styling */
.model-card.duplicate.hash-mismatch { .model-card.duplicate.hash-mismatch {
border: 2px dashed oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); border: 2px dashed oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
opacity: 0.85; opacity: 0.85;
position: relative; position: relative;
} }
@@ -380,8 +380,8 @@
bottom: 0; bottom: 0;
background: repeating-linear-gradient( background: repeating-linear-gradient(
45deg, 45deg,
oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h) / 0.05), oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h) / 0.05),
oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h) / 0.05) 10px, oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h) / 0.05) 10px,
transparent 10px, transparent 10px,
transparent 20px transparent 20px
); );
@@ -398,7 +398,7 @@
position: absolute; position: absolute;
top: 10px; top: 10px;
left: 10px; /* Changed from right:10px to left:10px */ left: 10px; /* Changed from right:10px to left:10px */
background: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); background: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
color: white; color: white;
font-size: 12px; font-size: 12px;
padding: 3px 8px; padding: 3px 8px;
@@ -417,7 +417,7 @@
margin-top: 8px; margin-top: 8px;
padding-top: 8px; padding-top: 8px;
border-top: 1px dashed var(--border-color); border-top: 1px dashed var(--border-color);
color: oklch(var(--lora-warning-l) var(--lora-warning-c) var(--lora-warning-h)); color: oklch(var(--color-warning-l) var(--color-warning-c) var(--color-warning-h));
font-weight: bold; font-weight: bold;
} }
@@ -437,7 +437,7 @@
.btn-verify-hashes:hover { .btn-verify-hashes:hover {
background: var(--bg-color); background: var(--bg-color);
border-color: oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h)); border-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
transform: translateY(-1px); transform: translateY(-1px);
} }
@@ -498,7 +498,7 @@
.help-icon:hover { .help-icon:hover {
opacity: 1; opacity: 1;
color: oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h)); color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h));
} }
/* Help tooltip */ /* Help tooltip */
@@ -573,7 +573,7 @@
/* In dark mode, add additional distinction */ /* In dark mode, add additional distinction */
html[data-theme="dark"] .duplicates-banner { html[data-theme="dark"] .duplicates-banner {
box-shadow: var(--shadow-dark-lg); /* Stronger shadow in dark mode */ box-shadow: var(--shadow-dark-lg); /* Stronger shadow in dark mode */
background-color: oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h) / 0.15); /* Slightly stronger background in dark mode */ background-color: oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h) / 0.15); /* Slightly stronger background in dark mode */
} }
html[data-theme="dark"] .duplicate-group { html[data-theme="dark"] .duplicate-group {
@@ -598,11 +598,11 @@ html[data-theme="dark"] .help-tooltip {
background: var(--lora-accent); background: var(--lora-accent);
color: white; color: white;
border-color: var(--lora-accent); border-color: var(--lora-accent);
box-shadow: 0 0 0 2px oklch(var(--lora-accent-l) var(--lora-accent-c) var(--lora-accent-h) / 0.25); box-shadow: 0 0 0 2px oklch(var(--color-accent-l) var(--color-accent-c) var(--color-accent-h) / 0.25);
position: relative; position: relative;
z-index: 5; z-index: 5;
} }
#findDuplicatesBtn.active:hover { #findDuplicatesBtn.active:hover {
background: oklch(calc(var(--lora-accent-l) - 5%) var(--lora-accent-c) var(--lora-accent-h)); background: oklch(calc(var(--color-accent-l) - 5%) var(--color-accent-c) var(--color-accent-h));
} }