/* Kole UI Mobile · Collapse 样式 — 对齐移动端规格 §25 折叠面板:标题行整行可点(≥44px),展开态用 is-expanded + aria-expanded 双写; 箭头转 90°(180ms),内容区直接切 hidden(不做高度动画,省电且读屏不读中间态)。 */ .kole-m-collapse { --kole-m-collapse-header-height: 52px; /* 标题行高度(≥ 44px 触控最小边长) */ --kole-m-collapse-duration: 180ms; /* 箭头旋转时长 */ box-sizing: border-box; width: 100%; background: var(--kole-color-card-bg); font-family: var(--kole-font-family); color: var(--kole-color-text-body); font-size: var(--kole-m-font-size-body); line-height: 1.4; } /* 变体 bordered=true:外框 + 面板之间的分隔线 */ .kole-m-collapse--bordered { border: 1px solid var(--kole-color-border); border-radius: var(--kole-radius-large); overflow: hidden; } .kole-m-collapse--bordered .kole-m-collapse__item + .kole-m-collapse__item { border-top: 1px solid var(--kole-color-border); } /* 面板:标题行 + 内容区 */ .kole-m-collapse__item { display: block; } /* 变体 accordion=true:手风琴(同时只展开一个)。 展开逻辑在宿主/框架端实现(组件不阻止其它面板被程序化打开), 这里只把该模式标出来,便于样式与业务侧选择器挂钩。 */ .kole-m-collapse--accordion .kole-m-collapse__item.is-expanded .kole-m-collapse__header { color: var(--kole-color-brand); } /* 标题行:整行都是热区(原生 button,键盘可达) */ .kole-m-collapse__header { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: var(--kole-space-12); width: 100%; min-height: var(--kole-m-collapse-header-height); padding: var(--kole-space-12) var(--kole-m-gutter); margin: 0; border: 0; background: var(--kole-color-card-bg); color: var(--kole-color-text-title); font-family: inherit; font-size: inherit; line-height: 1.4; text-align: start; cursor: pointer; touch-action: manipulation; } .kole-m-collapse__header:active { background: var(--kole-color-table-header-bg); } .kole-m-collapse__title { flex: 1 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } /* 箭头:收起时指向右,展开时转 90° 指向下 */ .kole-m-collapse__arrow { flex: 0 0 auto; display: inline-flex; color: var(--kole-color-text-placeholder); transition: transform var(--kole-m-collapse-duration) var(--kole-ease-standard); } .kole-m-collapse__item.is-expanded .kole-m-collapse__arrow { transform: rotate(90deg); } /* 内容区:展开时可见;收起用 hidden 属性(读屏也不会读到) */ .kole-m-collapse__panel { padding: var(--kole-space-12) var(--kole-m-gutter) var(--kole-space-16); border-top: 1px solid var(--kole-color-border); color: var(--kole-color-text-secondary); font-size: var(--kole-m-font-size-label); line-height: 1.7; } .kole-m-collapse__panel[hidden] { display: none; } .kole-m-collapse__content { margin: 0; } /* 状态 disabled:标题行置灰且不响应 */ .kole-m-collapse__item.is-disabled .kole-m-collapse__header { color: var(--kole-color-text-disabled); cursor: not-allowed; } .kole-m-collapse__item.is-disabled .kole-m-collapse__header:active { background: var(--kole-color-card-bg); } .kole-m-collapse__header:focus-visible { outline: 2px solid var(--kole-color-focus-ring); outline-offset: -2px; }