UNPKG

@opensig/opendesign

Version:

316 lines (292 loc) 9.85 kB
.o-anchor { position: relative; display: inline-flex; align-items: stretch; } .o-anchor-line { flex-shrink: 0; position: relative; width: var(--anchor-line-width); border-radius: var(--anchor-line-width); margin-right: var(--anchor-line-gap); margin-left: calc(var(--anchor-circle-size) / 2); } .o-anchor-indicator { position: absolute; left: 50%; transform: translateX(-50%); display: flex; align-items: center; width: var(--anchor-indicator-width); background-color: transparent; opacity: 0; transition: top var(--o-easing-standard-in) var(--o-duration-m1); } .o-anchor-indicator::after { content: ""; width: var(--anchor-indicator-width); height: var(--anchor-indicator-height); border-radius: var(--anchor-line-width); background-color: var(--o-color-primary1); } .o-anchor-item { min-width: var(--anchor-item-min-width); width: var(--anchor-item-width); } .o-anchor-item-link { --anchor-item-link-left-extra-indent: calc(var(--anchor-item-text-indent) * var(--anchor-item-depth)); --anchor-circle-top: calc(var(--anchor-item-link-padding-v) + var(--anchor-item-link-text-height) / 2 - var(--anchor-circle-size) / 2); cursor: pointer; display: inline-flex; text-decoration: none; width: 100%; color: var(--anchor-item-link-color, inherit); font-size: var(--anchor-item-link-text-size); line-height: var(--anchor-item-link-text-height); padding: var(--anchor-item-link-padding-v) var(--anchor-item-link-padding-h); padding-left: calc(var(--anchor-item-link-left-extra-indent) + var(--anchor-item-link-padding-h)); border-radius: var(--anchor-item-link-radius); transition: background-color var(--o-duration-s) var(--o-easing-standard); word-break: break-word; position: relative; } @media (hover: hover) { .o-anchor-item-link:hover { color: var(--anchor-item-link-color-hover); } } .o-anchor-item-link:active { color: var(--anchor-item-link-color-press); } .o-anchor-item-link.disabled { color: var(--anchor-item-link-color-disabled); } @media (hover: hover) { .o-anchor-item-link.disabled:hover { cursor: not-allowed; } } .o-anchor-item:has(.o-anchor-item-link.is-active) > .o-anchor-item-link:not(.disabled), .o-anchor-item-link.is-active:not(.disabled) { font-weight: 600; color: var(--anchor-item-link-color-active); } .o-anchor-item:has(.o-anchor-item-link.is-active) > .o-anchor-item-link:not(.disabled) .o-anchor-item-circle, .o-anchor-item-link.is-active:not(.disabled) .o-anchor-item-circle { border-color: currentColor; } .o-anchor-item-title { max-height: calc(var(--anchor-item-max-row) * var(--anchor-item-link-text-height)); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--anchor-item-max-row); } .o-anchor-item-sub-link { font-size: var(--anchor-item-sub-link-text-size); line-height: var(--anchor-item-sub-link-text-height); padding-top: var(--anchor-item-sub-link-padding-v); padding-bottom: var(--anchor-item-sub-link-padding-v); } .o-anchor-item-lines { width: var(--anchor-line-width); position: absolute; top: 0; bottom: 0; left: calc(0px - var(--anchor-line-gap) - var(--anchor-line-width)); } .o-anchor-item-top-line, .o-anchor-item-bottom-line { background-color: var(--anchor-line-bg-color); position: absolute; left: 0; right: 0; } .o-anchor-item-top-line { top: 0; bottom: 50%; } .o-anchor-item-bottom-line { top: 50%; bottom: 0; } .o-anchor-item-link:not(.o-anchor-item-sub-link) .o-anchor-item-circle { position: absolute; height: var(--anchor-circle-size); width: var(--anchor-circle-size); top: var(--anchor-circle-top); left: 50%; transform: translateX(-50%); border: var(--anchor-circle-ring-width) solid var(--anchor-line-bg-color); border-radius: 50%; } .o-anchor-item-link:not(.o-anchor-item-sub-link) .o-anchor-item-top-line { bottom: unset; height: calc(var(--anchor-circle-top) - var(--anchor-circle-gap)); } .o-anchor-item-link:not(.o-anchor-item-sub-link) .o-anchor-item-bottom-line { top: calc(var(--anchor-circle-top) + var(--anchor-circle-size) + var(--anchor-circle-gap)); } @media (hover: hover) { .o-anchor-item-link:not(.o-anchor-item-sub-link):hover .o-anchor-item-circle { border-color: currentColor; } } .o-anchor-items > .o-anchor-item:first-child > .o-anchor-item-link .o-anchor-item-top-line { display: none; } .o-anchor-items > .o-anchor-item:last-child:not(.with-children) > .o-anchor-item-link .o-anchor-item-bottom-line { display: none; } @media (hover: hover) { .o-anchor-menu .o-anchor-item-sub-link:hover { background-color: var(--anchor-item-bg-color-hover); color: var(--anchor-item-link-color); } } .o-anchor-menu .o-anchor-item-sub-link:active { background-color: var(--anchor-item-bg-color-press); color: var(--anchor-item-link-color); } .o-anchor-link-popover-wrapper { max-width: var(--anchor-popover-max-width); } .o-anchor-h { background-color: var(--anchor-bg-color); position: sticky; z-index: var(--anchor-z-index); top: var(--anchor-offset-top); width: 100%; justify-content: center; } .o-anchor-h .o-anchor-items { display: flex; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; position: relative; max-width: var(--anchor-content-max-width); } .o-anchor-h .o-anchor-items::-webkit-scrollbar { display: none; } .o-anchor-h .o-anchor-items.left-overflown::before, .o-anchor-h .o-anchor-items.right-overflown::after { background-image: linear-gradient(var(--gradient-angle), rgba(var(--anchor-x-overflown-bg-color), 0), rgba(var(--anchor-x-overflown-bg-color), 0.8) 66%, rgba(var(--anchor-x-overflown-bg-color)) 100%); content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; width: var(--anchor-x-overflown-width); } .o-anchor-h .o-anchor-items.left-overflown::before { --gradient-angle: -90deg; left: calc(var(--o-anchor-ellipsis-left) * 1px); } .o-anchor-h .o-anchor-items.right-overflown::after { --gradient-angle: 90deg; right: calc(var(--o-anchor-ellipsis-right) * 1px); } .o-anchor-h.o-anchor-stickying .o-anchor-items { width: var(--anchor-content-max-width); } .o-anchor-h .o-anchor-item + .o-anchor-item { margin-left: var(--anchor-item-gap); } .o-anchor-h .o-anchor-item-title { white-space: nowrap; } .o-anchor { --anchor-line-width: 1px; --anchor-line-bg-color: var(--o-color-control4); --anchor-line-gap: var(--o-gap-2); --anchor-indicator-width: 2px; --anchor-indicator-height: 12px; --anchor-indicator-bg-color: var(--o-color-primary1); --anchor-circle-size: 8px; --anchor-circle-ring-width: 1.5px; --anchor-circle-gap: 8px; } .o-anchor-item { --anchor-item-min-width: 144px; --anchor-item-link-color: var(--o-color-info2); --anchor-item-link-color-active: var(--o-color-primary1); --anchor-item-link-color-hover: var(--o-color-primary2); --anchor-item-link-color-press: var(--o-color-primary3); --anchor-item-link-color-disabled: var(--o-color-info4); --anchor-item-max-row: 2; --anchor-item-link-text-size: var(--o-font_size-text1); --anchor-item-link-text-height: var(--o-line_height-text1); --anchor-item-sub-link-text-size: var(--o-font_size-tip1); --anchor-item-sub-link-text-height: var(--o-line_height-tip1); --anchor-item-link-padding-h: 8px; --anchor-item-link-padding-v: 8px; --anchor-item-sub-link-padding-v: 5px; --anchor-item-link-radius: var(--o-radius_control-s); --anchor-item-text-indent: 12px; } .o-anchor-small .o-anchor-item { --anchor-item-link-text-size: var(--o-font_size-tip1); --anchor-item-link-text-height: var(--o-line_height-tip1); --anchor-item-sub-link-text-size: var(--o-font_size-tip2); --anchor-item-sub-link-text-height: var(--o-line_height-tip2); --anchor-item-link-padding-v: 5px; --anchor-item-sub-link-padding-v: 5px; } .o-anchor-menu .o-anchor-item { --anchor-item-link-text-size: var(--o-font_size-tip1); --anchor-item-link-text-height: var(--o-line_height-tip1); --anchor-item-sub-link-text-size: var(--o-font_size-tip1); --anchor-item-sub-link-text-height: var(--o-line_height-tip1); --anchor-item-link-padding-v: 5px; --anchor-item-sub-link-padding-v: 5px; --anchor-item-text-indent: 20px; --anchor-item-bg-color-hover: var(--o-color-control2-light); --anchor-item-bg-color-press: var(--o-color-control3-light); } .o-anchor-link-popover-wrapper { --anchor-popover-max-width: 200px; } .o-anchor-h { --anchor-bg-color: var(--o-color-fill2); --anchor-z-index: initial; --anchor-offset-top: 0; --anchor-x-overflown-bg-color: var(--o-grey-1); --anchor-x-overflown-width: 16px; --anchor-content-max-width: unset; } .o-anchor-h .o-anchor-item { --anchor-item-link-color: var(--o-color-info3); --anchor-item-gap: 32px; --anchor-item-max-row: 1; --anchor-item-link-padding-h: 0; --anchor-item-link-padding-v: 12px; --anchor-item-min-width: unset; } [data-o-theme*=dark] .o-anchor-h { --anchor-x-overflown-bg-color: var(--o-grey-4); } @media (max-width: 1680px) { .o-anchor:not(.o-anchor-menu) .o-anchor-item { --anchor-item-link-text-size: var(--o-font_size-tip1); --anchor-item-link-text-height: var(--o-line_height-tip1); --anchor-item-sub-link-text-size: var(--o-font_size-tip2); --anchor-item-sub-link-text-height: var(--o-line_height-tip2); --anchor-item-link-padding-v: 5px; --anchor-item-sub-link-padding-v: 5px; } .o-anchor-h:not(.o-anchor-menu) .o-anchor-item { --anchor-item-gap: 24px; --anchor-item-link-padding-v: 9px; } } @media (max-width: 840px) { .o-anchor-menu .o-anchor-item { --anchor-item-sub-link-text-size: var(--o-font_size-tip2); --anchor-item-sub-link-text-height: var(--o-line_height-tip2); } .o-anchor-h .o-anchor-item { --anchor-item-gap: 16px; } }