Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

header-sticky-toggle.pcss.css

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.css

View source
  1. /**
  2. * @file
  3. * Sticky Header Toggle Button.
  4. *
  5. * This button shows on the left hand side of the header (in LTR layouts), and
  6. * toggles fixing the header to the top of the viewport.
  7. */
  8. @import "../base/media-queries.pcss.css";
  9. .sticky-header-toggle {
  10. display: none;
  11. @media (--nav) {
  12. display: flex;
  13. flex-shrink: 0;
  14. align-items: center;
  15. justify-content: center;
  16. width: var(--content-left);
  17. height: var(--sp6);
  18. pointer-events: none;
  19. opacity: 0;
  20. border: 0;
  21. outline: 0;
  22. background-color: var(--color--primary-50);
  23. &:focus {
  24. cursor: pointer;
  25. pointer-events: auto;
  26. opacity: 1;
  27. outline: solid 2px var(--color--white);
  28. outline-offset: -4px;
  29. }
  30. }
  31. }
  32. body:not(.is-always-mobile-nav) .is-fixed .sticky-header-toggle {
  33. @media (--nav) {
  34. visibility: visible;
  35. }
  36. }
  37. body.is-always-mobile-nav .sticky-header-toggle {
  38. @media (--nav) {
  39. visibility: hidden;
  40. }
  41. }
  42. .sticky-header-toggle__icon {
  43. --icon-bar-height: 3px;
  44. --icon-bar-space: 7px;
  45. display: flex;
  46. flex-direction: column;
  47. justify-content: space-between;
  48. width: var(--sp2);
  49. height: calc((var(--icon-bar-height) * 3) + (var(--icon-bar-space) * 2));
  50. /* Height = 3 bars + 2 spaces */
  51. transition: opacity 0.2s;
  52. pointer-events: none;
  53. transform-style: preserve-3d;
  54. & > span {
  55. display: block;
  56. width: 100%;
  57. height: var(--icon-bar-height);
  58. transition: transform 0.2s;
  59. transform-origin: center;
  60. background-color: var(--color--white);
  61. }
  62. }
  63. .is-fixed .sticky-header-toggle {
  64. cursor: pointer;
  65. pointer-events: auto;
  66. opacity: 1;
  67. }
  68. [aria-checked="true"] .sticky-header-toggle__icon {
  69. & > span:nth-child(1) {
  70. transform: translateY(calc(var(--icon-bar-height) + var(--icon-bar-space))) rotate(-45deg);
  71. }
  72. & > span:nth-child(2) {
  73. opacity: 0;
  74. }
  75. & > span:nth-child(3) {
  76. transform: translateY(calc(0px - var(--icon-bar-height) - var(--icon-bar-space))) rotate(45deg);
  77. }
  78. }
RSS feed
Powered by Drupal