Add scanner utility, modal, and stock scan page implementation
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed

This commit is contained in:
2026-05-01 23:32:13 +02:00
parent 50e147b079
commit 47434db5b5
15 changed files with 1952 additions and 353 deletions
+103
View File
@@ -1099,6 +1099,109 @@ button.legend-card:focus-visible {
object-fit: cover;
}
.scan-hero {
background:
radial-gradient(circle at 15% 20%, rgba(80, 180, 140, 0.18), transparent 28rem),
linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(245, 250, 255, 0.92));
}
.scan-mode-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.8rem;
}
.scan-mode-card {
display: grid;
gap: 0.25rem;
min-height: 6rem;
padding: 1rem;
text-align: left;
color: inherit;
background: rgba(255, 255, 255, 0.74);
border: 1px solid var(--lonc-border);
border-radius: 1rem;
transition:
transform 160ms ease,
box-shadow 160ms ease,
border-color 160ms ease,
background-color 160ms ease;
}
.scan-mode-card:hover {
transform: translateY(-1px);
box-shadow: 0 12px 24px rgba(24, 42, 79, 0.08);
}
.scan-mode-card-active {
border-color: rgba(31, 75, 153, 0.42);
background: rgba(31, 75, 153, 0.1);
box-shadow: inset 0 0 0 1px rgba(31, 75, 153, 0.18);
}
.scan-candidate-list {
max-height: 24rem;
overflow-y: auto;
}
.scan-modal-mode-list {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
}
.scan-modal-mode-btn {
border-radius: 999px;
}
.scan-modal-mode-btn-active {
color: #fff;
background: var(--lonc-primary);
border-color: var(--lonc-primary);
}
.scan-label-mode-list {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
}
.scan-label-mode-btn {
border-radius: 999px;
}
.scan-label-mode-btn-active {
color: #fff;
background: var(--lonc-primary-dark);
border-color: var(--lonc-primary-dark);
}
.scan-result-card {
padding: 1.25rem;
border-radius: 1.25rem;
border: 1px solid var(--lonc-border);
background:
linear-gradient(135deg, rgba(235, 243, 255, 0.78), rgba(255, 255, 255, 0.92));
}
.empty-state-inline {
display: grid;
min-height: 12rem;
place-items: center;
padding: 2rem;
color: var(--lonc-muted);
text-align: center;
border: 1px dashed rgba(31, 75, 153, 0.22);
border-radius: 1.25rem;
background: rgba(255, 255, 255, 0.58);
}
@media (max-width: 575.98px) {
.scan-mode-grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 991.98px) {
.navbar {
backdrop-filter: blur(10px);