header-sticky-toggle.pcss.css in Drupal 10
Same filename and directory in other branches
Sticky Header Toggle Button.
This button shows on the left hand side of the header (in LTR layouts), and toggles fixing the header to the top of the viewport.
File
core/themes/olivero/css/components/header-sticky-toggle.pcss.cssView source
- /**
- * @file
- * Sticky Header Toggle Button.
- *
- * This button shows on the left hand side of the header (in LTR layouts), and
- * toggles fixing the header to the top of the viewport.
- */
-
- @import "../base/media-queries.pcss.css";
-
- .sticky-header-toggle {
- display: none;
-
- @media (--nav) {
- display: flex;
- flex-shrink: 0;
- align-items: center;
- justify-content: center;
- width: var(--content-left);
- height: var(--sp6);
- pointer-events: none;
- opacity: 0;
- border: 0;
- outline: 0;
- background-color: var(--color--primary-50);
-
- &:focus {
- cursor: pointer;
- pointer-events: auto;
- opacity: 1;
- outline: solid 2px var(--color--white);
- outline-offset: -4px;
- }
- }
- }
-
- body:not(.is-always-mobile-nav) .is-fixed .sticky-header-toggle {
- @media (--nav) {
- visibility: visible;
- }
- }
-
- body.is-always-mobile-nav .sticky-header-toggle {
- @media (--nav) {
- visibility: hidden;
- }
- }
-
- .sticky-header-toggle__icon {
- position: relative;
- width: var(--sp2);
- height: 21px;
- transition: opacity 0.2s;
- pointer-events: none;
- transform-style: preserve-3d;
-
- & > span {
- display: block;
- height: 0;
- /* Intentionally not using CSS logical properties. */
- border-top: solid 3px var(--color--white);
-
- &:nth-child(1) {
- position: absolute;
- inset-block-start: 0;
- inset-inline-start: 0;
- width: 100%;
- height: 0;
- transition: transform 0.2s;
- background-color: var(--color--white);
- }
-
- &:nth-child(2) {
- position: absolute;
- inset-block-start: 9px;
- inset-inline-start: 0;
- width: 100%;
- height: 0;
- transition: opacity 0.2s;
- background-color: var(--color--white);
- }
-
- &:nth-child(3) {
- position: absolute;
- inset-block: auto 0;
- inset-inline-start: 0;
- width: 100%;
- height: 0;
- transition: transform 0.2s;
- background-color: var(--color--white);
- }
- }
- }
-
- .is-fixed .sticky-header-toggle {
- cursor: pointer;
- pointer-events: auto;
- opacity: 1;
- }
-
- [aria-checked="true"] .sticky-header-toggle__icon {
- & > span:nth-child(1) {
- inset-block-start: 9px;
- transform: rotate(-45deg);
- }
-
- & > span:nth-child(2) {
- opacity: 0;
- }
-
- & > span:nth-child(3) {
- inset-block-start: 9px;
- transform: rotate(45deg);
- }
- }