- web/: React + Vite + TypeScript 前端 - backend/: Django + DRF + SimpleJWT 后端 - prototype/: HTML 设计原型 - docs/: PRD 和设计评审文档 - test: 单元测试 + E2E 极限测试
63 lines
1020 B
CSS
63 lines
1020 B
CSS
.wrapper {
|
|
position: relative;
|
|
}
|
|
|
|
.menu {
|
|
position: absolute;
|
|
bottom: calc(100% + 8px);
|
|
left: 0;
|
|
background: var(--color-bg-dropdown);
|
|
border: 1px solid var(--color-border-input-bar);
|
|
border-radius: var(--radius-dropdown);
|
|
padding: 6px;
|
|
z-index: 100;
|
|
opacity: 0;
|
|
transform: translateY(8px);
|
|
pointer-events: none;
|
|
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
|
|
}
|
|
|
|
.open {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 12px;
|
|
border-radius: var(--radius-btn);
|
|
font-size: 13px;
|
|
color: #b0b0c0;
|
|
cursor: pointer;
|
|
transition: all 0.12s;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.item:hover {
|
|
background: var(--color-bg-hover);
|
|
color: #fff;
|
|
}
|
|
|
|
.item.selected {
|
|
color: var(--color-primary);
|
|
}
|
|
|
|
.itemIcon {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.check {
|
|
margin-left: auto;
|
|
opacity: 0;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.item.selected .check {
|
|
opacity: 1;
|
|
}
|