UNPKG

@opensig/opendesign

Version:

492 lines (462 loc) 13.2 kB
.o-tab { --tab-nav-btn-icon-size: var(--o-icon_size_control-xs); --tab-nav-btn-size: 24px; --tab-nav-color: var(--o-color-info2); --tab-nav-color-disabled: var(--o-color-info4); --tab-nav-radius: 2px; --tab-icon-color: var(--o-color-info2); --tab-icon-color-hover: var(--o-color-primary1); --tab-icon-color-disabled: var(--o-color-info4); --tab-nav-divider: 1px solid var(--o-color-control1); --tab-nav-anchor-color: var(--o-color-primary1); --tab-nav-anchor-height: 2px; --tab-nav-close-size: var(--o-icon_size_control-xs); --tab-nav-icon-size: var(--o-icon_size_control-m); --tab-nav-icon-gap: 8px; --tab-nav-ellipsis-padding-x: 16px; --tab-nav-ellipsis-shadow-width: 8px; --tab-nav-ellipsis-shadow-color: var(--o-grey-14); --tab-nav-ellipsis-shadow-gradient: rgba(var(--tab-nav-ellipsis-shadow-color), 0), rgba(var(--tab-nav-ellipsis-shadow-color), 0.022) 40%, rgba(var(--tab-nav-ellipsis-shadow-color), 0.045) 59%, rgba(var(--tab-nav-ellipsis-shadow-color), 0.1) 100%; } .o-tab-large { --tab-nav-text-size: var(--o-font_size-h4); --tab-nav-text-height: var(--o-line_height-h4); --tab-nav-gap: 40px; --tab-nav-icon-size: var(--o-icon_size_control-l); --tab-nav-padding: 0 0 18px; } .o-tab-medium { --tab-nav-text-size: var(--o-font_size-text2); --tab-nav-text-height: var(--o-line_height-text2); --tab-nav-gap: 32px; --tab-nav-icon-size: var(--o-icon_size_control-m); --tab-nav-padding: 0 0 16px; } .o-tab-small { --tab-nav-text-size: var(--o-font_size-text1); --tab-nav-text-height: var(--o-line_height-text1); --tab-nav-gap: 24px; --tab-nav-icon-size: var(--o-icon_size_control-xs); --tab-nav-padding: 0 0 8px; } .o-tab-solid { --tab-nav-bd-color: var(--o-color-control1-light); --tab-nav-bd-color-hover: var(--o-color-control2-light); --tab-nav-bd-color-active: var(--o-color-control1-light); --tab-nav-bd-color-disabled: var(--o-color-control4-light); --tab-nav-bg-color: var(--o-color-control1-light); --tab-nav-bg-color-hover: var(--o-color-control2-light); --tab-nav-bg-color-active: var(--o-color-control5-light); --tab-nav-bg-color-disabled: var(--o-color-control4-light); --tab-solid-nav-padding: 4px 16px; --tab-solid-nav-gap: 8px; } .o-tab-text { --tab-nav-color-hover: var(--o-color-primary1); --tab-nav-color-active: var(--o-color-primary1); --tab-nav-bd-color: transparent; --tab-nav-bd-color-hover: transparent; --tab-nav-bd-color-active: var(--o-color-primary1); } .o-tab-button { --tab-nav-color-hover: var(--o-color-primary1); --tab-nav-color-active: var(--o-color-primary1); --tab-nav-bg-color: var(--o-color-fill3); --tab-nav-bg-color-active: var(--o-color-fill2); --tab-nav-active-border: 1px solid var(--o-color-control4-light); --tab-nav-justify: flex-start; --tab-nav-icon-gap: 4px; --tab-btn-radius: var(--o-radius_control-s); } .o-tab-button.o-tab-large { --tab-nav-text-size: var(--o-font_size-text2); --tab-nav-text-height: var(--o-line_height-text2); --tab-nav-icon-size: var(--o-icon_size-m); --tab-nav-gap: 4px; --tab-nav-padding: 6px 16px; --tab-nav-list-padding: 4px; } .o-tab-button.o-tab-large .o-tab-nav:has(.o-icon:only-child) { --tab-nav-padding: 7px 8px; --tab-nav-icon-gap: 0; } .o-tab-button.o-tab-medium, .o-tab-button.o-tab-small { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-icon-size: var(--o-icon_size-xs); --tab-nav-gap: 4px; --tab-nav-padding: 2px 16px; --tab-nav-list-padding: 2px; } .o-tab-button.o-tab-medium .o-tab-nav:has(.o-icon:only-child), .o-tab-button.o-tab-small .o-tab-nav:has(.o-icon:only-child) { --tab-nav-padding: 5px 6px; --tab-nav-icon-gap: 0; } .o-tab-button-inverse { --tab-nav-bg-color: var(--o-color-fill2); --tab-nav-bg-color-active: var(--o-color-fill3); } .o-tab-navs { display: flex; align-items: center; position: relative; flex-grow: 1; flex-shrink: 1; min-width: 0px; justify-content: var(--tab-nav-justify, center); } @media (max-width: 840px) { .o-tab-navs:has(.o-tab-nav-add) { --_mb-right-offset: calc(var(--tab-nav-btn-size) + 8px); } .o-tab-navs.o-tab-navs-overflown-left:before { display: block; content: ""; position: absolute; width: var(--tab-nav-ellipsis-shadow-width); left: 0; top: 1px; bottom: 1px; pointer-events: none; z-index: 2; background: linear-gradient(270deg, var(--tab-nav-ellipsis-shadow-gradient)); } .o-tab-navs.o-tab-navs-overflown-right:after { display: block; content: ""; position: absolute; width: var(--tab-nav-ellipsis-shadow-width); right: var(--_mb-right-offset, 0px); top: 1px; bottom: 1px; pointer-events: none; z-index: 2; background: linear-gradient(90deg, var(--tab-nav-ellipsis-shadow-gradient)); } } .o-tab-head { font-size: var(--tab-nav-text-size); line-height: var(--tab-nav-text-height); color: var(--tab-nav-color); position: relative; } .o-tab-head.with-act { display: flex; align-items: center; } .o-tab-head.show-line::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; border-bottom: var(--tab-nav-divider); } .o-tab-navs-container { min-width: 0; overflow-x: hidden; position: relative; flex-grow: 1; } .o-tab-navs-container:not(.overflown) { display: grid; grid-template-columns: 1fr; justify-items: var(--tab-nav-justify, center); } @media (max-width: 840px) { .o-tab-navs-container { overflow-x: auto; scrollbar-width: none; } .o-tab-navs-container::-webkit-scrollbar { display: none; } .o-tab-navs-container.o-tab-navs-container-mb-overflown { justify-items: start; } } .o-tab-nav-list { display: flex; justify-content: var(--tab-nav-justify, center); white-space: nowrap; width: fit-content; overflow: hidden; } .o-tab-nav-list.width-measurement { height: 0; } .o-tab-navs-container.overflown .o-tab-nav-list { justify-content: flex-start; } .o-tab-nav { display: flex; flex-shrink: 0; align-items: center; cursor: pointer; border: 1px solid var(--tab-nav-bd-color); border-bottom-width: 0; background-color: var(--tab-nav-bg-color); position: relative; padding: var(--tab-nav-padding); z-index: 1; color: var(--tab-icon-color); } .o-tab-nav + .o-tab-nav { margin-left: var(--tab-nav-gap); } .o-tab-nav.o-tab-nav-ellipsis { margin-left: unset; padding-left: var(--tab-nav-ellipsis-padding-x); padding-right: var(--tab-nav-ellipsis-padding-x); position: absolute; right: 0; z-index: 1; } .o-tab-nav.o-tab-nav-ellipsis:before { display: block; content: ""; position: absolute; width: var(--tab-nav-ellipsis-shadow-width); left: calc(0px - var(--tab-nav-ellipsis-shadow-width)); top: 0; bottom: 0; pointer-events: none; z-index: 2; background: linear-gradient(90deg, var(--tab-nav-ellipsis-shadow-gradient)); } @media (hover: hover) { .o-tab-nav:hover { color: var(--tab-nav-color-hover); border-color: var(--tab-nav-bd-color-hover); background-color: var(--tab-nav-bg-color-hover); } } .o-tab-solid .o-tab-nav { margin-right: var(--tab-solid-nav-gap); padding: var(--tab-solid-nav-padding); } .o-tab-nav .o-icon { font-size: var(--tab-nav-icon-size); margin-right: var(--tab-nav-icon-gap); } .o-tab-nav-active { font-weight: 600; } .o-tab-nav-active, .o-tab-nav-active:hover { color: var(--tab-nav-color-active); border-color: var(--tab-nav-bd-color-active); background-color: var(--tab-nav-bg-color-active); } .o-tab-nav-disabled, .o-tab-nav-disabled:hover { cursor: not-allowed; color: var(--tab-nav-color-disabled); border-color: var(--tab-nav-bd-color-disabled); background-color: var(--tab-nav-bg-color-disabled); } .o-tab-nav-closable { position: relative; padding-right: 12px; } .o-tab-text .o-tab-nav-closable { padding-right: 0; } .o-tab-text .o-tab-nav { border: none; } .o-tab-head-prefix { flex-shrink: 0; } .o-tab-head-suffix { flex-shrink: 0; } .o-tab-nav-anchor { position: absolute; left: 0; bottom: 0; width: 0; z-index: 2; transition: all var(--o-easing-standard-in) var(--o-duration-m1); display: flex; justify-content: center; } .o-tab-nav-anchor-line { width: 100%; height: var(--tab-nav-anchor-height); background-color: var(--tab-nav-anchor-color); border-radius: var(--tab-nav-anchor-height); } .o-tab-nav-close, .o-tab-nav-more-arrow { font-size: var(--tab-nav-close-size); margin-left: 8px; display: inline-flex; align-items: center; justify-content: center; color: var(--tab-icon-color); border-radius: 50%; transition: transform var(--o-easing-standard-in) var(--o-duration-m1); } @media (hover: hover) { .o-tab-nav-close:hover, .o-tab-nav-more-arrow:hover { color: var(--tab-icon-color-hover); } } .o-tab-nav-close, .o-tab-nav-more-arrow { overflow: hidden; } .o-tab-nav-close svg, .o-tab-nav-more-arrow svg { transition: all var(--o-duration-m1) var(--o-easing-standard-in); } @media (hover: hover) { .o-tab-nav-close:hover svg, .o-tab-nav-more-arrow:hover svg { transform: rotate(180deg); } } .o-tab-nav-more-arrow.active { transform: rotate(-180deg); } .o-tab-more-popup { min-width: 120px; } .o-tab-nav-add { margin-left: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: var(--tab-nav-btn-size); height: var(--tab-nav-btn-size); cursor: pointer; color: var(--tab-icon-color); font-size: var(--tab-nav-btn-icon-size); border-radius: 50%; } @media (hover: hover) { .o-tab-nav-add:hover { color: var(--tab-icon-color-hover); background-color: var(--tab-nav-bg-color-hover); } } .o-tab-body { display: flex; } .o-tab-pane { flex-shrink: 0; width: 100%; display: none; } .o-tab-pane-active { display: block; } .o-tab-button .o-tab-nav-list { background-color: var(--tab-nav-bg-color); padding: var(--tab-nav-list-padding); } .o-tab-button .width-measurement { padding: 0; } .o-tab-button .o-tab-nav-list, .o-tab-button .o-tab-nav { border-radius: var(--tab-btn-radius); } .o-tab-button .o-tab-nav-active { border: var(--tab-nav-active-border); } @media (max-width: 1680px) { .o-tab-large { --tab-nav-text-size: var(--o-font_size-text2); --tab-nav-text-height: var(--o-line_height-text2); --tab-nav-icon-size: var(--o-icon_size_control-m); --tab-nav-gap: 32px; } .o-tab-large.o-tab-text { --tab-nav-padding: 0 0 16px; } .o-tab-medium { --tab-nav-text-size: var(--o-font_size-text1); --tab-nav-text-height: var(--o-line_height-text1); } .o-tab-medium.o-tab-text { --tab-nav-padding: 0 0 10px; } .o-tab-small { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-icon-size: var(--o-icon_size_control-s); --tab-nav-gap: 24px; } .o-tab-small.o-tab-text { --tab-nav-padding: 0 0 4px; } .o-tab-button.o-tab-large { --tab-nav-text-size: var(--o-font_size-text1); --tab-nav-text-height: var(--o-line_height-text1); --tab-nav-icon-size: var(--o-icon_size-s); --tab-nav-padding: 4px 16px; } .o-tab-button.o-tab-large .o-tab-nav:has(.o-icon:only-child) { --tab-nav-padding: 6px 6px; } .o-tab-button.o-tab-medium, .o-tab-button.o-tab-small { --tab-nav-padding: 1px 16px; } .o-tab-button.o-tab-medium .o-tab-nav:has(.o-icon:only-child), .o-tab-button.o-tab-small .o-tab-nav:has(.o-icon:only-child) { --tab-nav-padding: 3px 3px; } } @media (max-width: 840px) { .o-tab { --tab-nav-ellipsis-shadow-width: 48px; --tab-nav-ellipsis-shadow-color: var(--o-color-fill2-raw); --tab-nav-ellipsis-shadow-gradient: rgba(var(--tab-nav-ellipsis-shadow-color), 0), rgba(var(--tab-nav-ellipsis-shadow-color), 0) 50%, rgba(var(--tab-nav-ellipsis-shadow-color), 1) 100%; } .o-tab-large { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-icon-size: var(--o-icon_size_control-s); --tab-nav-gap: 16px; --tab-nav-anchor-height: 1px; } .o-tab-large.o-tab-text { --tab-nav-padding: 0 0 3px; } .o-tab-medium { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-gap: 16px; } .o-tab-medium.o-tab-text { --tab-nav-padding: 0 0 4px; } .o-tab-medium .o-tab-nav-anchor-line { width: 16px; } .o-tab-small { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-gap: 12px; } .o-tab-small.o-tab-text { --tab-nav-padding: 0 0 2px; } .o-tab-small .o-tab-nav-anchor-line { width: 16px; } .o-tab-button.o-tab-large { --tab-nav-text-size: var(--o-font_size-tip1); --tab-nav-text-height: var(--o-line_height-tip1); --tab-nav-icon-size: var(--o-icon_size-xs); --tab-nav-padding: 3px 16px; --tab-nav-list-padding: 2px; } .o-tab-button.o-tab-medium .o-tab-nav:has(.o-icon:only-child), .o-tab-button.o-tab-small .o-tab-nav:has(.o-icon:only-child) { --tab-nav-padding: 4px 4px; } }