/* Kole UI Mobile · Dialog 样式 — 对齐移动端规格 §13 对话框:卡片底 + 正文色(亮色 15.13:1 / 暗色 10.34:1,脚本实测); 遮罩点击关闭(可配置);按钮等宽排列、热区 ≥44px。 */ .kole-m-dialog { --kole-m-dialog-radius: var(--kole-radius-large); --kole-m-dialog-width: 80%; position: fixed; left: 50%; top: 50%; z-index: 2001; box-sizing: border-box; display: flex; flex-direction: column; width: var(--kole-m-dialog-width); max-width: var(--kole-m-dialog-width); max-height: 70%; transform: translate(-50%, -50%) scale(0.92); background: var(--kole-color-card-bg); color: var(--kole-color-text-body); font-family: var(--kole-font-family); font-size: var(--kole-m-font-size-body); opacity: 0; pointer-events: none; transition: transform var(--kole-m-duration-slide) var(--kole-m-ease-slide), opacity var(--kole-m-duration-slide) var(--kole-m-ease-slide); } .kole-m-dialog.is-open { transform: translate(-50%, -50%) scale(1); opacity: 1; pointer-events: auto; } /* 变体 round=true:切圆角(默认直角,与 Element 的移动端弹窗一致) */ .kole-m-dialog--round { border-radius: var(--kole-m-dialog-radius); overflow: hidden; } .kole-m-dialog__mask { position: fixed; inset: 0; z-index: 2000; background: var(--kole-color-mask); opacity: 0; pointer-events: none; transition: opacity var(--kole-m-duration-slide) var(--kole-m-ease-slide); } .kole-m-dialog__mask.is-open { opacity: 1; pointer-events: auto; } .kole-m-dialog__header { padding: var(--kole-space-20) var(--kole-m-gutter) var(--kole-space-8); color: var(--kole-color-text-title); font-size: var(--kole-m-font-size-title); font-weight: 500; line-height: 1.4; text-align: center; } .kole-m-dialog__body { flex: 1 1 auto; min-height: 0; padding: 0 var(--kole-m-gutter) var(--kole-space-20); overflow: auto; -webkit-overflow-scrolling: touch; color: var(--kole-color-text-secondary); font-size: var(--kole-m-font-size-label); line-height: 1.7; text-align: center; } .kole-m-dialog__body > p { margin: 0; } /* 变体 variant=alert:只有一个按钮,铺满整行 */ .kole-m-dialog__footer { display: flex; gap: 1px; border-top: 1px solid var(--kole-color-border); } .kole-m-dialog__btn { flex: 1 1 0; box-sizing: border-box; min-height: var(--kole-m-action-height); padding: 0 var(--kole-space-8); border: 0; background: var(--kole-color-card-bg); color: var(--kole-color-text-body); font-family: inherit; font-size: var(--kole-m-font-size-body); line-height: 1.3; cursor: pointer; touch-action: manipulation; } .kole-m-dialog__btn:focus-visible { outline: 2px solid var(--kole-color-focus-ring); outline-offset: -2px; } .kole-m-dialog__btn:active { background: var(--kole-color-table-header-bg); } /* 变体 tone=danger:确认按钮用错误色 */ .kole-m-dialog__btn--danger { color: var(--kole-color-error); } .kole-m-dialog__btn--primary { color: var(--kole-color-brand); font-weight: 500; } .kole-m-dialog__btn:disabled, .kole-m-dialog__btn.is-disabled { color: var(--kole-color-text-disabled); cursor: not-allowed; } .kole-m-dialog__btn:disabled:active { background: var(--kole-color-card-bg); } /* 状态 loading:确认按钮进入加载态(宿主传入 disabled + 文案变化) */ .kole-m-dialog__btn.is-loading { color: var(--kole-color-text-disabled); }