toolbar-button.pcss.css

Same filename and directory in other branches
  1. 10 core/modules/navigation/components/toolbar-button/toolbar-button.pcss.css

Toolbar button styles.

File

core/modules/navigation/components/toolbar-button/toolbar-button.pcss.css

View source
  1. /* cspell:ignore csvg cpath wght */
  2. /**
  3. * @file
  4. * Toolbar button styles.
  5. */
  6. @import "../../css/base/media-queries.pcss.css";
  7. [data-drupal-admin-styles] {
  8. --toolbar-button-outline-offset: 0;
  9. --toolbar-button-bg: transparent;
  10. --toolbar-button-color: var(--admin-toolbar-color-gray-800);
  11. /* Hover styles. */
  12. --toolbar-button-hover-bg: var(--admin-toolbar-color-gray-050);
  13. --toolbar-button-hover-color: var(--admin-toolbar-color-gray-990);
  14. /* Focus variables. */
  15. --toolbar-button-focus-color: var(--admin-toolbar-color-blue-700);
  16. /* Current variables */
  17. --toolbar-button-current-bg: var(--admin-toolbar-color-gray-050);
  18. --toolbar-button-current-color: var(--admin-toolbar-color-blue-700);
  19. /* Active child variables. */
  20. --toolbar-button-has-active-child-bg: var(--admin-toolbar-color-gray-050);
  21. --toolbar-button-has-active-child-color: var(--admin-toolbar-color-gray-950);
  22. /* Icon */
  23. --toolbar-button-icon-size: var(--admin-toolbar-space-20);
  24. }
  25. .toolbar-button {
  26. z-index: 1;
  27. flex-grow: 0;
  28. align-items: center;
  29. min-height: var(--admin-toolbar-space-40);
  30. cursor: pointer;
  31. text-align: start;
  32. text-decoration: none;
  33. overflow-wrap: break-word;
  34. color: var(--toolbar-button-color);
  35. border: 0;
  36. border-radius: var(--admin-toolbar-space-8);
  37. background-color: var(--toolbar-button-bg);
  38. font-size: var(--admin-toolbar-font-size-info-sm);
  39. line-height: var(--admin-toolbar-line-height-info-sm);
  40. padding-inline: var(--admin-toolbar-space-16);
  41. padding-block: var(--admin-toolbar-space-10);
  42. font-variation-settings: "wght" 700;
  43. gap: calc(0.5 * var(--admin-toolbar-rem));
  44. &:has(+ .toolbar-popover__wrapper .is-active) {
  45. color: var(--toolbar-button-has-active-child-color);
  46. background-color: var(--toolbar-button-has-active-child-bg);
  47. }
  48. &[class*="toolbar-button--icon"]:has(+ .ajax-progress--throbber),
  49. &[class*="toolbar-button--icon"]:has(+ .ajax-progress-throbber) {
  50. .toolbar-button__icon {
  51. fill: transparent;
  52. background-image: url(../../assets/icons/throbber.svg);
  53. }
  54. & + .ajax-progress--throbber,
  55. & + .ajax-progress-throbber {
  56. display: none;
  57. }
  58. }
  59. &:hover {
  60. z-index: 20;
  61. color: var(--toolbar-button-hover-color);
  62. outline: 2px solid var(--admin-toolbar-color-blue-200);
  63. outline-offset: var(--toolbar-button-outline-offset);
  64. background-color: var(--toolbar-button-hover-bg);
  65. }
  66. &:focus {
  67. z-index: 10;
  68. color: var(--toolbar-button-focus-color);
  69. outline: 2px solid var(--admin-toolbar-color-focus);
  70. outline-offset: var(--toolbar-button-outline-offset);
  71. }
  72. &.current {
  73. color: var(--toolbar-button-current-color);
  74. background-color: var(--toolbar-button-current-bg);
  75. }
  76. }
  77. /* Dark color modifier for submenus title */
  78. .toolbar-button--dark {
  79. color: var(--admin-toolbar-color-gray-990);
  80. }
  81. .toolbar-button--large {
  82. padding: var(--admin-toolbar-space-8) var(--admin-toolbar-space-16);
  83. font-size: var(--admin-toolbar-font-size-info-lg);
  84. line-height: var(--admin-toolbar-line-height-info-lg);
  85. }
  86. .toolbar-button--non-interactive {
  87. &:hover,
  88. &:focus,
  89. &:hover:focus {
  90. z-index: 1;
  91. cursor: auto;
  92. color: var(--toolbar-button-color);
  93. outline: 0;
  94. background-color: var(--toolbar-button-bg);
  95. }
  96. }
  97. .toolbar-button--small-offset {
  98. --toolbar-button-outline-offset: calc(-1 * var(--admin-toolbar-space-4));
  99. }
  100. /* Class starts with `toolbar-button--icon` */
  101. [class*="toolbar-button--icon"] {
  102. padding-inline: var(--admin-toolbar-space-10);
  103. }
  104. [class*="toolbar-button--icon"]:not(:has(.toolbar-button__icon)) {
  105. &::before {
  106. flex-shrink: 0;
  107. content: attr(data-icon-text) / "";
  108. text-align: center;
  109. color: currentColor;
  110. font-size: calc(0.75 * var(--admin-toolbar-rem));
  111. inline-size: var(--toolbar-button-icon-size);
  112. }
  113. }
  114. .toolbar-button--primary {
  115. --toolbar-button-color: var(--admin-toolbar-color-white);
  116. --toolbar-button-bg: var(--admin-toolbar-color-blue-450);
  117. --toolbar-button-hover-color: var(--admin-toolbar-color-white);
  118. --toolbar-button-hover-bg: var(--admin-toolbar-color-blue-600);
  119. --toolbar-button-focus-color: var(--admin-toolbar-color-white);
  120. }
  121. .toolbar-button--weight--400 {
  122. font-variation-settings: "wght" 400;
  123. }
  124. /* Set 0 specificity */
  125. :where(.toolbar-button) {
  126. display: flex;
  127. flex-grow: 1;
  128. }
  129. .toolbar-button--expand--down {
  130. &[aria-expanded="true"] {
  131. &:focus,
  132. &:hover {
  133. border-bottom-right-radius: 0;
  134. border-bottom-left-radius: 0;
  135. }
  136. }
  137. }
  138. [dir="ltr"] .toolbar-button--icon--announcements-feed-announcement .toolbar-button__icon {
  139. scale: -1 1;
  140. }
  141. .toolbar-button--collapsible {
  142. & .toolbar-button__chevron {
  143. display: none;
  144. }
  145. & .toolbar-button__label {
  146. position: absolute;
  147. overflow: hidden;
  148. clip: rect(0 0 0 0);
  149. width: 1px;
  150. height: 1px;
  151. white-space: nowrap;
  152. clip-path: inset(50%);
  153. opacity: 0;
  154. }
  155. [data-admin-toolbar="expanded"]
  156. & .toolbar-button__label {
  157. position: relative;
  158. clip: revert;
  159. width: auto;
  160. height: auto;
  161. white-space: wrap;
  162. clip-path: none;
  163. opacity: 1;
  164. }
  165. }
  166. [data-admin-toolbar-animating]
  167. }
  168. }
  169. .toolbar-button__chevron {
  170. flex-shrink: 0;
  171. margin-inline-start: auto;
  172. transition: rotate var(--admin-toolbar-transition);
  173. fill: currentColor;
  174. block-size: var(--admin-toolbar-space-16);
  175. inline-size: var(--admin-toolbar-space-16);
  176. :where([dir="rtl"])
  177. .toolbar-button--expand--down
  178. .toolbar-button--expand--down[aria-expanded="true"]
  179. }
  180. .toolbar-button__icon {
  181. fill: currentColor;
  182. flex-shrink: 0;
  183. inline-size: var(--toolbar-button-icon-size);
  184. block-size: var(--toolbar-button-icon-size);
  185. }

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.