UNPKG

zarm

Version:

基于 React 的移动端UI库

270 lines (245 loc) 6.95 kB
.za-tabs { --font-size: var(--za-tabs-font-size, var(--za-font-size-md)); --color: var(--za-tabs-color, var(--za-color-text)); --color-disabled: var(--za-tabs-color-disabled, var(--za-color-text-disabled)); --height: var(--za-tabs-height, 45px); --active-color: var(--za-tabs-active-color, var(--za-theme-primary)); --active-text-color: var(--za-tabs-active-text-color, var(--za-color-text)); --active-line-height: var(--za-tabs-active-line-height, 2px); --padding-horizontal: var(--za-tabs-padding-horizontal, var(--za-padding-h-lg)); --padding-vertical: var(--za-tabs-padding-vertical, var(--za-padding-v-md)); } .za-tabs__header { position: relative; overflow: hidden; } .za-tabs__tablist { position: relative; margin: 0; padding: 0; list-style-type: none; } .za-tabs__panel { display: none; position: relative; transition: height 0.3s; height: 100%; } .za-tabs__panel--active { display: block; } .za-tabs__tab { flex: 1; text-align: center; color: var(--color); font-size: var(--font-size); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; } .za-tabs__tab--disabled { color: var(--color-disabled); cursor: not-allowed; } .za-tabs__tab--active { color: var(--active-text-color); } .za-tabs__line { position: absolute; transition: transform 0.3s ease-out; background-color: var(--active-color); } .za-tabs__line__inner { display: block; margin: auto; height: 100%; background-color: var(--active-color); } .za-tabs--scroll .za-tabs__tablist::-webkit-scrollbar { display: none; } .za-tabs--top, .za-tabs--bottom, .za-tabs--horizontal { display: flex; flex-direction: column; } .za-tabs--top .za-tabs__header, .za-tabs--bottom .za-tabs__header, .za-tabs--horizontal .za-tabs__header { width: 100%; } .za-tabs--top .za-tabs__tablist, .za-tabs--bottom .za-tabs__tablist, .za-tabs--horizontal .za-tabs__tablist { display: flex; height: var(--height); line-height: var(--height); } .za-tabs--top .za-tabs__line, .za-tabs--bottom .za-tabs__line, .za-tabs--horizontal .za-tabs__line { height: var(--active-line-height); left: 0; } .za-tabs--top.za-tabs--scroll .za-tabs__tablist, .za-tabs--bottom.za-tabs--scroll .za-tabs__tablist, .za-tabs--horizontal.za-tabs--scroll .za-tabs__tablist { overflow-x: auto; } .za-tabs--top.za-tabs--scroll .za-tabs__tab, .za-tabs--bottom.za-tabs--scroll .za-tabs__tab, .za-tabs--horizontal.za-tabs--scroll .za-tabs__tab { overflow: visible; padding: 0 var(--padding-horizontal); } .za-tabs--left, .za-tabs--right, .za-tabs--vertical { display: flex; flex-direction: row; } .za-tabs--left .za-tabs__tablist, .za-tabs--right .za-tabs__tablist, .za-tabs--vertical .za-tabs__tablist { height: 100%; } .za-tabs--left .za-tabs__tab, .za-tabs--right .za-tabs__tab, .za-tabs--vertical .za-tabs__tab { text-align: center; padding: var(--padding-vertical) var(--padding-horizontal); } .za-tabs--left .za-tabs__line, .za-tabs--right .za-tabs__line, .za-tabs--vertical .za-tabs__line { width: var(--active-line-height); top: 0; } .za-tabs--left .za-tabs__body, .za-tabs--right .za-tabs__body, .za-tabs--vertical .za-tabs__body { flex: 1; position: relative; } .za-tabs--left.za-tabs--scroll .za-tabs__tablist, .za-tabs--right.za-tabs--scroll .za-tabs__tablist, .za-tabs--vertical.za-tabs--scroll .za-tabs__tablist { overflow-y: auto; } .za-tabs--right .za-tabs__header, .za-tabs--bottom .za-tabs__header { order: 1; } .za-tabs--left .za-tabs__header:after, .za-tabs--vertical .za-tabs__header:after { content: ""; pointer-events: none; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 0; border: 0 solid var(--za-border-color); /* prettier-ignore */ border-right-width: 1PX; } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { .za-tabs--left .za-tabs__header:after, .za-tabs--vertical .za-tabs__header:after { width: 200%; height: 200%; transform: scale(0.5); transform-origin: 0 0; border-radius: 0; } } @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { .za-tabs--left .za-tabs__header:after, .za-tabs--vertical .za-tabs__header:after { width: 300%; height: 300%; transform: scale(0.3333); transform-origin: 0 0; border-radius: 0; } } .za-tabs--left .za-tabs__line, .za-tabs--vertical .za-tabs__line { right: 0; } .za-tabs--right .za-tabs__header:after { content: ""; pointer-events: none; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 0; border: 0 solid var(--za-border-color); /* prettier-ignore */ border-left-width: 1PX; } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { .za-tabs--right .za-tabs__header:after { width: 200%; height: 200%; transform: scale(0.5); transform-origin: 0 0; border-radius: 0; } } @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { .za-tabs--right .za-tabs__header:after { width: 300%; height: 300%; transform: scale(0.3333); transform-origin: 0 0; border-radius: 0; } } .za-tabs--right .za-tabs__line { left: 0; } .za-tabs--top .za-tabs__header:after, .za-tabs--horizontal .za-tabs__header:after { content: ""; pointer-events: none; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 0; border: 0 solid var(--za-border-color); /* prettier-ignore */ border-bottom-width: 1PX; } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { .za-tabs--top .za-tabs__header:after, .za-tabs--horizontal .za-tabs__header:after { width: 200%; height: 200%; transform: scale(0.5); transform-origin: 0 0; border-radius: 0; } } @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { .za-tabs--top .za-tabs__header:after, .za-tabs--horizontal .za-tabs__header:after { width: 300%; height: 300%; transform: scale(0.3333); transform-origin: 0 0; border-radius: 0; } } .za-tabs--top .za-tabs__line, .za-tabs--horizontal .za-tabs__line { bottom: 0; } .za-tabs--bottom .za-tabs__header:after { content: ""; pointer-events: none; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 0; border: 0 solid var(--za-border-color); /* prettier-ignore */ border-top-width: 1PX; } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { .za-tabs--bottom .za-tabs__header:after { width: 200%; height: 200%; transform: scale(0.5); transform-origin: 0 0; border-radius: 0; } } @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { .za-tabs--bottom .za-tabs__header:after { width: 300%; height: 300%; transform: scale(0.3333); transform-origin: 0 0; border-radius: 0; } } .za-tabs--bottom .za-tabs__line { top: 0; }