iter: e02 新增 stepper 步骤条组件(三态流转 + active 信号双向绑定 + clickable 回跳)

This commit is contained in:
HIsheR
2026-10-23 17:57:44 +08:00
parent 47bea0b69c
commit fc7a1e8299
13 changed files with 327 additions and 8 deletions
+82 -1
View File
@@ -703,6 +703,86 @@
font-variant-numeric: tabular-nums;
}
/* —— 步骤条 —— */
.ua-stepper {
display: flex;
margin: 0;
padding: 0;
list-style: none;
}
.ua-step {
display: flex;
align-items: flex-start;
gap: var(--ua-space-2);
flex: 1;
}
.ua-step + .ua-step {
padding-left: var(--ua-space-3);
}
.ua-step + .ua-step::before {
content: ''; /* 连接线:与前一节点之间的横向短线 */
width: 20px;
height: 1px;
margin-top: 13px;
margin-right: var(--ua-space-2);
background: var(--ua-color-border);
flex-shrink: 0;
}
.ua-step-dot {
display: inline-flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
border: 1px solid var(--ua-color-border);
border-radius: 999px;
background: var(--ua-color-surface);
color: var(--ua-color-text-muted);
font: inherit;
font-size: var(--ua-font-size-sm);
flex-shrink: 0;
transition: border-color 0.15s, background 0.15s, color 0.15s, transform 0.12s, box-shadow 0.15s;
}
button.ua-step-dot {
padding: 0; /* 可回跳步骤:重置原生按钮样式 */
cursor: pointer;
}
button.ua-step-dot:hover {
border-color: var(--ua-color-accent);
color: var(--ua-color-accent);
transform: translateY(-1px);
}
.ua-step-done .ua-step-dot {
border-color: color-mix(in srgb, var(--ua-color-accent) 55%, transparent);
background: color-mix(in srgb, var(--ua-color-accent) 10%, var(--ua-color-bg));
color: var(--ua-color-accent);
}
.ua-step-current .ua-step-dot {
border-color: var(--ua-color-accent);
background: var(--ua-color-bg);
color: var(--ua-color-accent);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--ua-color-accent) 15%, transparent);
}
.ua-step-text {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.ua-step-label {
font-size: var(--ua-font-size-md);
line-height: 1.4;
color: var(--ua-color-text-muted);
}
.ua-step-current .ua-step-label {
color: var(--ua-color-text);
font-weight: 600;
}
.ua-step-desc {
font-size: var(--ua-font-size-sm);
color: var(--ua-color-text-muted);
}
/* —— 徽标 —— */
.ua-badge {
display: inline-block;
@@ -1378,7 +1458,8 @@
.ua-modal,
.ua-modal-overlay,
.ua-drawer,
.ua-drawer-overlay {
.ua-drawer-overlay,
.ua-step-dot {
animation: none !important;
transition: none !important;
}