137 lines
2.7 KiB
CSS
137 lines
2.7 KiB
CSS
/* spreadsheet_links.css (주인 D) — 위 알약 막대 · 연결 칸 세모 · 자재 고르기 창 */
|
|
|
|
.ss-links {
|
|
display: flex;
|
|
flex: none;
|
|
flex-wrap: wrap;
|
|
gap: var(--spacing-4);
|
|
padding: var(--spacing-4) var(--spacing-8);
|
|
border-bottom: 1px solid var(--color-border);
|
|
background: var(--color-surface);
|
|
}
|
|
|
|
.ss-link {
|
|
display: inline-flex;
|
|
align-items: baseline;
|
|
gap: var(--spacing-4);
|
|
padding: 2px 10px;
|
|
border: 1px solid var(--color-accent);
|
|
border-radius: 999px;
|
|
background: var(--color-surface-raised);
|
|
color: var(--color-text-body);
|
|
font: inherit;
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.ss-link small {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.ss-link code {
|
|
font-size: 11px;
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
/* 연결됨 — 흐림(연결 현황) */
|
|
.ss-link.is-linked {
|
|
opacity: 0.5;
|
|
border-style: dashed;
|
|
}
|
|
|
|
.ss-link.is-linked:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.ss-link--add {
|
|
border-style: dashed;
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* 연결 칸 왼아래 세모(초록 오류 세모는 왼위 · 빨강 메모는 오른위) */
|
|
.ss-link-dot {
|
|
position: absolute;
|
|
z-index: 3;
|
|
width: 0;
|
|
height: 0;
|
|
border-top: 6px solid transparent;
|
|
border-left: 6px solid var(--color-accent);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.ss-links__pick {
|
|
position: absolute;
|
|
z-index: var(--z-dropdown);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-4);
|
|
width: 320px;
|
|
padding: var(--spacing-8);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--color-surface-raised);
|
|
box-shadow: var(--shadow-lg);
|
|
}
|
|
|
|
.ss-links__search {
|
|
padding: 4px 6px;
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-sm);
|
|
font: inherit;
|
|
}
|
|
|
|
.ss-links__list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-height: 240px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.ss-links__row {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr auto;
|
|
gap: var(--spacing-8);
|
|
padding: 4px 6px;
|
|
border: none;
|
|
background: none;
|
|
color: var(--color-text-body);
|
|
font: inherit;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.ss-links__row:hover {
|
|
background: var(--color-surface-sunken);
|
|
}
|
|
|
|
.ss-links__note {
|
|
padding: 4px 6px;
|
|
color: var(--color-text-muted);
|
|
}
|
|
|
|
/* 알약으로 이동한 칸 — 굵은 테두리 + 채움 깜빡임(1.6초 · 끝나면 스스로 지워짐) */
|
|
.ss-link-flash {
|
|
position: absolute;
|
|
z-index: 4;
|
|
box-sizing: border-box;
|
|
border: 3px solid var(--color-accent);
|
|
pointer-events: none;
|
|
animation: ss-link-flash 1.6s ease-out 1 both;
|
|
}
|
|
|
|
@keyframes ss-link-flash {
|
|
0%,
|
|
40%,
|
|
80% {
|
|
background: color-mix(in srgb, var(--color-accent) 40%, transparent);
|
|
}
|
|
20%,
|
|
60% {
|
|
background: transparent;
|
|
}
|
|
100% {
|
|
background: transparent;
|
|
opacity: 0;
|
|
}
|
|
}
|