toolbar-button.css

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

Toolbar button styles.

File

core/modules/navigation/components/toolbar-button/toolbar-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. /* cspell:ignore csvg cpath wght */
  8. /**
  9. * @file
  10. * Toolbar button styles.
  11. */
  12. [data-drupal-admin-styles] {
  13. --toolbar-button-outline-offset: 0;
  14. --toolbar-button-bg: transparent;
  15. --toolbar-button-color: var(--admin-toolbar-color-gray-800);
  16. /* Hover styles. */
  17. --toolbar-button-hover-bg: var(--admin-toolbar-color-gray-050);
  18. --toolbar-button-hover-color: var(--admin-toolbar-color-gray-990);
  19. /* Focus variables. */
  20. --toolbar-button-focus-color: var(--admin-toolbar-color-blue-700);
  21. /* Current variables */
  22. --toolbar-button-current-bg: var(--admin-toolbar-color-gray-050);
  23. --toolbar-button-current-color: var(--admin-toolbar-color-blue-700);
  24. /* Active child variables. */
  25. --toolbar-button-has-active-child-bg: var(--admin-toolbar-color-gray-050);
  26. --toolbar-button-has-active-child-color: var(--admin-toolbar-color-gray-950);
  27. /* Icon */
  28. --toolbar-button-icon-size: var(--admin-toolbar-space-20);
  29. }
  30. :is(#extra-specificity-hack, [data-drupal-admin-styles]) {
  31. .toolbar-button {
  32. z-index: 1;
  33. flex-grow: 0;
  34. align-items: center;
  35. min-height: var(--admin-toolbar-space-40);
  36. cursor: pointer;
  37. text-align: start;
  38. -webkit-text-decoration: none;
  39. text-decoration: none;
  40. overflow-wrap: break-word;
  41. color: var(--toolbar-button-color);
  42. border: 0;
  43. border-radius: var(--admin-toolbar-space-8);
  44. background-color: var(--toolbar-button-bg);
  45. font-size: var(--admin-toolbar-font-size-info-sm);
  46. line-height: var(--admin-toolbar-line-height-info-sm);
  47. padding-inline: var(--admin-toolbar-space-16);
  48. padding-block: var(--admin-toolbar-space-10);
  49. font-variation-settings: "wght" 700;
  50. gap: calc(0.5 * var(--admin-toolbar-rem));
  51. &:has(+ .toolbar-popover__wrapper .is-active) {
  52. color: var(--toolbar-button-has-active-child-color);
  53. background-color: var(--toolbar-button-has-active-child-bg);
  54. @media (forced-colors: active) {
  55. position: relative;
  56. &::before {
  57. position: absolute;
  58. inset-block-start: 0;
  59. inset-inline-end: calc(100% + 0.3125rem);
  60. width: 0;
  61. height: 100%;
  62. content: "";
  63. border-inline-start: solid 0.25rem canvasText;
  64. }
  65. }
  66. }
  67. .top-bar__actions
  68. &[class*="toolbar-button--icon"]:has(+ .ajax-progress--throbber),
  69. &[class*="toolbar-button--icon"]:has(+ .ajax-progress-throbber) {
  70. .toolbar-button__icon {
  71. fill: transparent;
  72. background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e %3cstyle%3e %40keyframes spinner%7bto%7btransform:rotate(360deg)%7d%7d %3c/style%3e %3cpath d='M12 1a11 11 0 1 0 11 11A11 11 0 0 0 12 1Zm0 19a8 8 0 1 1 8-8 8 8 0 0 1-8 8Z' opacity='.25'/%3e %3cpath d='M10.14 1.16a11 11 0 0 0-9 8.92A1.59 1.59 0 0 0 2.46 12a1.52 1.52 0 0 0 1.65-1.3 8 8 0 0 1 6.66-6.61A1.42 1.42 0 0 0 12 2.69a1.57 1.57 0 0 0-1.86-1.53Z' style='animation:spinner .75s infinite linear' transform-origin='center'/%3e%3c/svg%3e");
  73. }
  74. & + .ajax-progress--throbber,
  75. & + .ajax-progress-throbber {
  76. display: none;
  77. }
  78. }
  79. &:hover {
  80. z-index: 20;
  81. color: var(--toolbar-button-hover-color);
  82. outline: 2px solid var(--admin-toolbar-color-blue-200);
  83. outline-offset: var(--toolbar-button-outline-offset);
  84. background-color: var(--toolbar-button-hover-bg);
  85. }
  86. &:focus {
  87. z-index: 10;
  88. color: var(--toolbar-button-focus-color);
  89. outline: 2px solid var(--admin-toolbar-color-focus);
  90. outline-offset: var(--toolbar-button-outline-offset);
  91. }
  92. &.current {
  93. color: var(--toolbar-button-current-color);
  94. background-color: var(--toolbar-button-current-bg);
  95. @media (forced-colors: active) {
  96. position: relative;
  97. &::before {
  98. position: absolute;
  99. inset-block-start: 0;
  100. inset-inline-end: calc(100% + 0.3125rem);
  101. width: 0;
  102. height: 100%;
  103. content: "";
  104. border-inline-start: solid 0.25rem canvasText;
  105. }
  106. }
  107. }
  108. }
  109. /* Dark color modifier for submenus title */
  110. .toolbar-button--dark {
  111. color: var(--admin-toolbar-color-gray-990);
  112. }
  113. .toolbar-button--large {
  114. padding: var(--admin-toolbar-space-8) var(--admin-toolbar-space-16);
  115. font-size: var(--admin-toolbar-font-size-info-lg);
  116. line-height: var(--admin-toolbar-line-height-info-lg);
  117. }
  118. .toolbar-button--non-interactive {
  119. &:hover,
  120. &:focus,
  121. &:hover:focus {
  122. z-index: 1;
  123. cursor: auto;
  124. color: var(--toolbar-button-color);
  125. outline: 0;
  126. background-color: var(--toolbar-button-bg);
  127. }
  128. }
  129. .toolbar-button--small-offset {
  130. --toolbar-button-outline-offset: calc(-1 * var(--admin-toolbar-space-4));
  131. }
  132. /* Class starts with `toolbar-button--icon` */
  133. [class*="toolbar-button--icon"] {
  134. padding-inline: var(--admin-toolbar-space-10);
  135. }
  136. [class*="toolbar-button--icon"]:not(:has(.toolbar-button__icon)) {
  137. &::before {
  138. flex-shrink: 0;
  139. content: attr(data-icon-text) / "";
  140. text-align: center;
  141. color: currentColor;
  142. font-size: calc(0.75 * var(--admin-toolbar-rem));
  143. inline-size: var(--toolbar-button-icon-size);
  144. }
  145. }
  146. .toolbar-button--primary {
  147. --toolbar-button-color: var(--admin-toolbar-color-white);
  148. --toolbar-button-bg: var(--admin-toolbar-color-blue-450);
  149. --toolbar-button-hover-color: var(--admin-toolbar-color-white);
  150. --toolbar-button-hover-bg: var(--admin-toolbar-color-blue-600);
  151. --toolbar-button-focus-color: var(--admin-toolbar-color-white);
  152. }
  153. .toolbar-button--weight--400 {
  154. font-variation-settings: "wght" 400;
  155. }
  156. /* Set 0 specificity */
  157. :where(.toolbar-button) {
  158. display: flex;
  159. flex-grow: 1;
  160. }
  161. .toolbar-button--expand--down {
  162. &[aria-expanded="true"] {
  163. &:focus,
  164. &:hover {
  165. border-bottom-right-radius: 0;
  166. border-bottom-left-radius: 0;
  167. }
  168. }
  169. }
  170. [dir="ltr"] & .toolbar-button--icon--announcements-feed-announcement .toolbar-button__icon {
  171. scale: -1 1;
  172. }
  173. .toolbar-button--collapsible {
  174. & .toolbar-button__chevron {
  175. display: none;
  176. }
  177. & .toolbar-button__label {
  178. position: absolute;
  179. overflow: hidden;
  180. clip: rect(0 0 0 0);
  181. width: 1px;
  182. height: 1px;
  183. white-space: nowrap;
  184. clip-path: inset(50%);
  185. opacity: 0;
  186. }
  187. [data-admin-toolbar="expanded"]
  188. & .toolbar-button__label {
  189. position: relative;
  190. clip: revert;
  191. width: auto;
  192. height: auto;
  193. white-space: wrap;
  194. clip-path: none;
  195. opacity: 1;
  196. }
  197. }
  198. [data-admin-toolbar-animating]
  199. }
  200. }
  201. .toolbar-button__chevron {
  202. flex-shrink: 0;
  203. margin-inline-start: auto;
  204. transition: rotate var(--admin-toolbar-transition);
  205. fill: currentColor;
  206. block-size: var(--admin-toolbar-space-16);
  207. inline-size: var(--admin-toolbar-space-16);
  208. :where([dir="rtl"])
  209. .toolbar-button--expand--down
  210. .toolbar-button--expand--down[aria-expanded="true"]
  211. }
  212. .toolbar-button__icon {
  213. --icon-color: currentColor;
  214. fill: var(--icon-color);
  215. flex-shrink: 0;
  216. inline-size: var(--toolbar-button-icon-size);
  217. block-size: var(--toolbar-button-icon-size);
  218. @media (forced-colors: active) {
  219. --icon-color: canvasText;
  220. &,
  221. path {
  222. &[fill]:not([fill="none"]) {
  223. fill: var(--icon-color);
  224. }
  225. &[stroke]:not([stroke="none"]) {
  226. stroke: var(--icon-color);
  227. }
  228. }
  229. }
  230. }
  231. button.toolbar-button .toolbar-button__icon {
  232. @media (forced-colors: active) {
  233. --icon-color: buttonText;
  234. }
  235. }
  236. a.toolbar-button .toolbar-button__icon {
  237. @media (forced-colors: active) {
  238. --icon-color: linkText;
  239. }
  240. }
  241. }

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