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

Breadcrumb

  1. Drupal Core 11.1.x

nav-primary-button.css

Button that expands second level nav when clicked.

File

core/themes/olivero/css/components/navigation/nav-primary-button.css

View source
  1. /*
  2. * DO NOT EDIT THIS FILE.
  3. * See the following change record for more information,
  4. * https://www.drupal.org/node/3084859
  5. * @preserve
  6. */
  7. /**
  8. * @file
  9. * Button that expands second level nav when clicked.
  10. */
  11. .primary-nav__button-toggle {
  12. position: relative;
  13. overflow: hidden;
  14. width: var(--sp2);
  15. height: var(--sp2);
  16. margin-block-start: var(--sp0-5); /* Visually align button with menu link text. */
  17. padding-block: 0;
  18. padding-inline-start: 0;
  19. padding-inline-end: 0;
  20. cursor: pointer;
  21. text-indent: -62.4375rem;
  22. border: 0;
  23. background: transparent;
  24. -webkit-appearance: none;
  25. }
  26. .primary-nav__button-toggle:focus {
  27. outline: auto 2px var(--color--primary-50);
  28. outline-offset: 2px;
  29. }
  30. .primary-nav__button-toggle .icon--menu-toggle {
  31. position: absolute;
  32. /* stylelint-disable csstools/use-logical */
  33. top: 50%;
  34. left: 50%;
  35. /* stylelint-enable csstools/use-logical */
  36. width: 1rem;
  37. height: 1rem;
  38. transition: background-color 0.2s;
  39. transform: translate(-50%, -50%);
  40. border-radius: 2px;
  41. }
  42. .primary-nav__button-toggle .icon--menu-toggle::before,
  43. .primary-nav__button-toggle .icon--menu-toggle::after {
  44. position: absolute;
  45. /* stylelint-disable csstools/use-logical */
  46. top: 50%;
  47. left: 50%;
  48. /* stylelint-enable csstools/use-logical */
  49. width: var(--sp);
  50. height: 0;
  51. content: "";
  52. transform: translate(-50%, -50%);
  53. /* Intentionally not using CSS logical properties. */
  54. border-top: solid 3px var(--color--primary-50);
  55. }
  56. .primary-nav__button-toggle .icon--menu-toggle::after {
  57. transition: opacity 0.2s;
  58. transform: translate(-50%, -50%) rotate(90deg);
  59. }
  60. .primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle::after {
  61. opacity: 0;
  62. }
  63. /* aria-hidden attribute is removed by JS. Button is non-functional
  64. until JS is enabled.
  65. */
  66. .primary-nav__button-toggle[aria-hidden="true"] {
  67. pointer-events: none;
  68. }
  69. @media (min-width: 75rem) {
  70. body:not(.is-always-mobile-nav) .primary-nav__button-toggle {
  71. flex-shrink: 0;
  72. align-self: stretch;
  73. width: calc(var(--sp2) + 0.5rem);
  74. height: auto;
  75. margin-block-start: 0;
  76. margin-inline-end: calc(-1 * var(--sp2));
  77. }
  78. body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus {
  79. border: 0;
  80. outline: 0;
  81. }
  82. body:not(.is-always-mobile-nav) .primary-nav__button-toggle:focus .icon--menu-toggle {
  83. border: solid 2px var(--color--primary-40);
  84. }
  85. body:not(.is-always-mobile-nav) .primary-nav__button-toggle:active {
  86. /* Necessary for Safari. */
  87. color: currentColor;
  88. }
  89. body:not(.is-always-mobile-nav) .primary-nav__button-toggle[aria-expanded="true"] .icon--menu-toggle::after {
  90. opacity: 0.8;
  91. }
  92. body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle {
  93. inset-inline-start: 0.1875rem;
  94. width: 1.125rem;
  95. transform: translateY(-50%);
  96. border-radius: 0.25rem;
  97. background-color: var(--color--white);
  98. }
  99. body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle::before {
  100. content: none;
  101. }
  102. body:not(.is-always-mobile-nav) .primary-nav__button-toggle .icon--menu-toggle::after {
  103. /* stylelint-disable csstools/use-logical */
  104. top: calc(50% - 2px);
  105. left: 0.1875rem;
  106. /* stylelint-enable csstools/use-logical */
  107. width: 0.5rem;
  108. height: 0.5rem;
  109. content: "";
  110. transform: translateY(-50%) rotate(45deg);
  111. opacity: 0.8;
  112. /* Intentionally not using CSS logical properties. */
  113. border-top: none;
  114. border-right: solid 2px currentColor;
  115. border-bottom: solid 2px currentColor;
  116. background: transparent;
  117. }
  118. }
RSS feed
Powered by Drupal