/* 底栏壳层:轨道只位移,圆点/胶囊/细线用真实子节点,不用伪元素 */ .ttb--native { width: 100%; background: transparent; } .ttb { order: 999; width: 100%; flex-shrink: 0; } .ttb-ph { height: calc(60px + env(safe-area-inset-bottom)); background: transparent; pointer-events: none; } .ttb-fixed { position: fixed; left: 0; right: 0; bottom: 0; z-index: 980; background: transparent; } .ttb-shell { display: flex; align-items: center; height: 56px; margin: 0 8px 4px; border: 1px solid; border-radius: 22px; position: relative; overflow: visible; box-sizing: border-box; } .ttb-shell--plain { margin: 0; border-radius: 0; border-left: none; border-right: none; border-bottom: none; overflow: hidden; } .ttb-ind, .ttb-dot { position: absolute; left: 0; width: 33.333%; pointer-events: none; background: transparent; will-change: transform; transition-property: transform; } .ttb-ind { top: 0; height: 100%; z-index: 0; } .ttb-ind--pill { top: 6px; height: calc(100% - 12px); padding: 0 6px; box-sizing: border-box; } .ttb-ind-core { height: 100%; border-radius: 999px; } .ttb-ind--line .ttb-ind-core { position: absolute; left: 28%; right: 28%; bottom: 6px; height: 2px; border-radius: 2px; } .ttb-dot { top: 38px; height: 6px; z-index: 2; display: flex; justify-content: center; } .ttb-dot-core { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; } .ttb-item { flex: 1; position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; height: 100%; } .ttb-pair { display: flex; align-items: center; justify-content: center; pointer-events: none; } .ttb-shell--plain .ttb-pair, .ttb-shell--line .ttb-pair { flex-direction: column; gap: 3px; } .ttb-ico-wrap { position: relative; width: 28px; height: 28px; flex-shrink: 0; transition: opacity var(--ttb-ms, 320ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)), transform var(--ttb-ms, 320ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)); } .ttb-ico { position: absolute; left: 0; top: 0; width: 28px; height: 28px; transition: opacity var(--ttb-ms, 220ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)); } .ttb-ico--on { opacity: 0; } .ttb-item.is-on .ttb-ico--on { opacity: 1; } .ttb-item.is-on .ttb-ico--off { opacity: 0; } .ttb-item.is-stroke-ok .ttb-ico--off, .ttb-item.is-stroke-ok .ttb-ico--on { opacity: 0; } .ttb-cv { position: absolute; left: 0; top: 0; width: 28px; height: 28px; opacity: 0; pointer-events: none; } .ttb-cv.is-show { opacity: 1; } .ttb-txt { font-size: 11px; line-height: 1; white-space: nowrap; transition: opacity var(--ttb-ms, 280ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)), transform var(--ttb-ms, 320ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)), max-width var(--ttb-ms, 320ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)), margin var(--ttb-ms, 320ms) var(--ttb-ease, cubic-bezier(0.32, 0.72, 0, 1)); } .ttb-shell--pill .ttb-txt { max-width: 0; margin-left: 0; opacity: 0; overflow: hidden; transform: translate3d(8px, 0, 0); } .ttb-shell--pill .is-on .ttb-txt { max-width: 3em; margin-left: 4px; opacity: 1; transform: translate3d(0, 0, 0); } .ttb-shell--dot .ttb-pair { width: 100%; height: 100%; } .ttb-shell--dot .ttb-ico-wrap { position: absolute; left: 50%; top: 50%; margin-left: -14px; margin-top: -14px; } .ttb-shell--dot .is-on .ttb-ico-wrap { opacity: 0; transform: translate3d(0, -8px, 0) scale(0.72); } .ttb-shell--dot .ttb-txt { position: absolute; left: 50%; top: 14px; font-size: 13px; font-weight: 600; opacity: 0; transform: translate3d(-50%, 10px, 0); } .ttb-shell--dot .is-on .ttb-txt { opacity: 1; transform: translate3d(-50%, 0, 0); } .ttb-safe { height: env(safe-area-inset-bottom); background: transparent; }