packages/core/styles/components/menu.pcss (123 lines of code) (raw):

/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ :root { --ifm-menu-color: var(--ifm-color-emphasis-700); --ifm-menu-color-active: var(--ifm-color-primary); --ifm-menu-color-background-active: var(--ifm-hover-overlay); --ifm-menu-color-background-hover: var(--ifm-hover-overlay); --ifm-menu-link-padding-horizontal: 1rem; --ifm-menu-link-padding-vertical: 0.375rem; --ifm-menu-link-sublist-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>'); --ifm-menu-link-sublist-icon-filter: none; } @define-mixin caret { background: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem; filter: var(--ifm-menu-link-sublist-icon-filter); height: 1.25rem; transform: rotate(180deg); width: 1.25rem; @mixin transition transform, var(--ifm-transition-fast), linear; } @define-mixin menu-item { border-radius: 0.25rem; display: flex; @mixin transition background; &:hover { background: var(--ifm-menu-color-background-hover); } } .menu { font-weight: var(--ifm-font-weight-semibold); overflow-x: hidden; @media print { display: none; } &__list { list-style: none; margin: 0; padding-left: 0; /* Non-top level menus */ ^&__list { flex: 0 0 100%; margin-top: 0.25rem; padding-left: var(--ifm-menu-link-padding-horizontal); } } &__list-item { &:not(:first-child) { margin-top: 0.25rem; } &--collapsed { ^^&__list { height: 0; overflow: hidden; } ^^&__link--sublist:after, ^^&__caret:before { transform: rotateZ(90deg); } } &-collapsible { flex-wrap: wrap; position: relative; @mixin menu-item; &--active { background: var(--ifm-menu-color-background-hover); } ^^&__link { &:hover, &--active { background: none !important; } } } } &__link, &__caret { @mixin menu-item; } &__link { color: var(--ifm-menu-color); flex: 1; line-height: 1.25; padding: var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal); &:hover { text-decoration: none; } &--sublist-caret { justify-content: space-between; &:after { content: ''; min-width: 1.25rem; @mixin caret; } } &:hover { color: var(--ifm-menu-color); @mixin transition color; } &--active { color: var(--ifm-menu-color-active); &:hover { color: var(--ifm-menu-color-active); } &:not(^&--sublist) { background-color: var(--ifm-menu-color-background-active); } } } &__caret { margin-left: 0.1rem; padding: var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal); &:before { content: ''; @mixin caret; } } }