You are here

header-navigation.pcss.css in Drupal 9

Same filename and directory in other branches
  1. 10 core/themes/olivero/css/components/header-navigation.pcss.css

Navigation in header.

File

core/themes/olivero/css/components/header-navigation.pcss.css
View source
  1. /**
  2. * @file
  3. * Navigation in header.
  4. */
  5. @import "../base/variables.pcss.css";
  6. .header-nav {
  7. position: fixed;
  8. z-index: 105; /* appear above overlay */
  9. inset-block-start: 0;
  10. inset-inline-start: 100%;
  11. visibility: hidden;
  12. overflow: auto;
  13. /* Ensure that header nav not use additional space and force
  14. system branding block text to unnecessarily wrap. */
  15. flex-basis: 0;
  16. flex-grow: 1; /* Necessary for IE11. */
  17. width: 100%;
  18. max-width: var(--mobile-nav-width);
  19. height: 100%;
  20. padding-block: 0 var(--sp);
  21. padding-inline-start: var(--sp);
  22. padding-inline-end: var(--sp);
  23. border-block-start: solid var(--color--white) var(--sp3); /* Create room for the "close" button. */
  24. background-color: var(--color--white);
  25. box-shadow: 0 0 72px rgba(0, 0, 0, 0.1);
  26. &.is-active {
  27. visibility: visible;
  28. transform: translateX(-100%); /* LTR */
  29. }
  30. @supports (flex-basis: max-content) {
  31. flex-basis: max-content;
  32. }
  33. @media (--sm) {
  34. border-top-width: var(--sp5);
  35. }
  36. @media (--md) {
  37. padding-block-end: var(--sp3);
  38. padding-inline-start: var(--sp3);
  39. border-top-width: var(--sp7);
  40. }
  41. @media (--lg) {
  42. grid-column: 5 / 14;
  43. }
  44. }
  45. /*
  46. * Only apply transition styles when JS is loaded. This
  47. * works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
  48. */
  49. html.js .header-nav {
  50. transition: visibility 0.2s, transform 0.2s;
  51. }
  52. /* Toolbar is fixed, and tray is vertical. */
  53. body.toolbar-vertical .header-nav {
  54. border-top-width: calc(var(--toolbar-height) + var(--sp3));
  55. @media (--sm) {
  56. border-top-width: calc(var(--toolbar-height) + var(--sp5));
  57. }
  58. }
  59. /* Toolbar is fixed, and tray is vertical or toolbar is horizontal and tray is closed. */
  60. body.toolbar-vertical .header-nav,
  61. body.toolbar-horizontal.toolbar-fixed .header-nav {
  62. @media (--md) {
  63. border-top-width: calc(var(--toolbar-height) + var(--sp7));
  64. }
  65. }
  66. /* Toolbar is horizontal fixed, and tray is open. */
  67. body.toolbar-horizontal.toolbar-fixed.toolbar-tray-open .header-nav {
  68. @media (--md) {
  69. border-top-width: calc(var(--toolbar-height) + var(--toolbar-tray-height) + var(--sp7));
  70. }
  71. }
  72. body:not(.is-always-mobile-nav) .header-nav {
  73. @media (--nav) {
  74. position: static;
  75. display: flex;
  76. visibility: visible;
  77. overflow: visible;
  78. grid-column: 5 / 15;
  79. align-items: center;
  80. justify-content: flex-end;
  81. max-width: none;
  82. height: var(--header-height-wide-when-fixed);
  83. margin-block-start: auto;
  84. padding-block: 0;
  85. padding-inline-start: 0;
  86. padding-inline-end: 0;
  87. transition: transform 0.2s;
  88. transform: none;
  89. border-block-start: 0;
  90. box-shadow: none;
  91. }
  92. }
  93. body.is-always-mobile-nav {
  94. /* Toolbar is fixed, and tray is vertical or toolbar is horizontal and tray is closed. */
  95. &.toolbar-vertical .header-nav,
  96. &.toolbar-horizontal.toolbar-fixed .header-nav {
  97. @media (--nav) {
  98. border-top-width: calc(var(--toolbar-height) + var(--sp11));
  99. }
  100. }
  101. /* Toolbar is horizontal fixed, and tray is open. */
  102. &.toolbar-horizontal.toolbar-fixed.toolbar-tray-open .header-nav {
  103. @media (--nav) {
  104. border-top-width: calc(var(--toolbar-height) + var(--toolbar-tray-height) + var(--sp11));
  105. }
  106. }
  107. & .header-nav {
  108. @media (--nav) {
  109. overflow: auto;
  110. max-width: calc((7 * (var(--grid-col-width--nav) + var(--grid-gap--nav))));
  111. padding-inline-end: var(--sp);
  112. transition: transform 0.2s, visibility 0.2s;
  113. border-top-width: var(--sp11);
  114. }
  115. @media (--grid-max) {
  116. max-width: calc(100vw - (var(--max-width) + var(--content-left)) + ((7 * (var(--grid-col-width--max) + var(--grid-gap--max)))));
  117. padding-inline-end: calc(100vw - (var(--max-width) + var(--content-left) - var(--sp)));
  118. }
  119. }
  120. }
  121. [dir="rtl"] .header-nav.is-active {
  122. transform: translateX(100%);
  123. }