button.pcss.css

Same filename in this branch
  1. main core/misc/dialog/off-canvas/css/button.pcss.css
  2. main core/themes/olivero/css/components/button.pcss.css
  3. main core/themes/claro/css/components/button.pcss.css
  4. main core/themes/admin/css/components/button.pcss.css
Same filename and directory in other branches
  1. 10 core/misc/dialog/off-canvas/css/button.pcss.css
  2. 10 core/themes/olivero/css/components/button.pcss.css
  3. 10 core/themes/claro/css/components/button.pcss.css
  4. 11.x core/misc/dialog/off-canvas/css/button.pcss.css
  5. 11.x core/themes/olivero/css/components/button.pcss.css
  6. 11.x core/themes/claro/css/components/button.pcss.css
  7. 9 core/themes/olivero/css/components/button.pcss.css
  8. 9 core/themes/claro/css/components/button.pcss.css
  9. 8.9.x core/themes/claro/css/components/button.pcss.css
  10. 11.x core/themes/admin/css/components/button.pcss.css
  11. 11.x core/themes/default_admin/css/components/button.pcss.css

Button styles.

File

core/themes/default_admin/css/components/button.pcss.css

View source
  1. @import "../base/media-queries.pcss.css";
  2. /**
  3. * @file
  4. * Button styles.
  5. */
  6. /**
  7. * Base button styles.
  8. *
  9. * These styles have been duplicated to dropbutton.css and action-links.css
  10. * since those components inherits most of these design elements. Whenever
  11. * making changes to this file, remember to check if that needs to be applied to
  12. * dropbutton.css or action-links.css as well.
  13. */
  14. .button {
  15. display: inline-flex;
  16. align-items: center;
  17. box-sizing: border-box;
  18. cursor: pointer;
  19. text-align: center;
  20. text-decoration: none;
  21. color: var(--admin-color-primary);
  22. border: 2px solid var(--admin-color-primary);
  23. border-radius: var(--admin-radius-m);
  24. background-color: transparent;
  25. box-shadow: 0 1px 2px var(--admin-color-primary-soft);
  26. font-size: var(--admin-font-size-s);
  27. font-weight: var(--admin-font-weight-semibold);
  28. line-height: 1;
  29. margin-block: var(--admin-space-m);
  30. margin-inline: 0 var(--admin-space-s);
  31. padding-block: calc(var(--admin-space-s) - 2px);
  32. padding-inline: var(--admin-space-m);
  33. appearance: none;
  34. &:hover {
  35. text-decoration: none;
  36. color: var(--admin-color-text-on-primary);
  37. border-color: var(--admin-color-primary-hover);
  38. background-color: var(--admin-color-primary-hover);
  39. }
  40. &:active {
  41. color: var(--admin-color-text-on-primary);
  42. border-color: var(--admin-color-primary-active);
  43. background-color: var(--admin-color-primary-active);
  44. }
  45. @media (prefers-reduced-motion: no-preference) {
  46. transition: var(--admin-transition);
  47. }
  48. }
  49. .form-actions .button {
  50. margin-inline-end: var(--admin-space-xs);
  51. }
  52. /* Common styles for small buttons. */
  53. .no-touchevents {
  54. & .button--small {
  55. min-height: 2rem;
  56. font-size: var(--admin-font-size-xs);
  57. margin-block: var(--admin-space-s);
  58. margin-inline: 0 var(--admin-space-xs);
  59. padding-block: var(--admin-space-xs);
  60. padding-inline: var(--admin-space-s);
  61. }
  62. /* Common styles for extra small buttons. */
  63. & .button--extrasmall {
  64. min-height: 1.5rem;
  65. font-size: var(--admin-font-size-2xs);
  66. margin-block: var(--admin-space-xs);
  67. margin-inline: 0 var(--admin-space-xs);
  68. padding-block: var(--admin-space-2xs);
  69. padding-inline: var(--admin-space-xs);
  70. }
  71. }
  72. .button.button--small {
  73. border-radius: var(--admin-radius-s);
  74. font-size: var(--admin-font-size-2xs);
  75. padding-block: calc(var(--admin-space-2xs) + 2px);
  76. padding-inline: var(--admin-space-s);
  77. }
  78. /* Common styles for extra small buttons. */
  79. .button.button--extrasmall {
  80. border-radius: var(--admin-radius-s);
  81. font-size: var(--admin-font-size-2xs);
  82. padding-block: var(--admin-space-2xs);
  83. padding-inline: var(--admin-space-s);
  84. }
  85. /* Styles for action link buttons. */
  86. .button--action {
  87. margin: 0;
  88. &::before {
  89. margin-inline: -0.25em 0;
  90. padding-inline: 0 0.25em;
  91. content: "+";
  92. font-weight: 900;
  93. }
  94. }
  95. /*
  96. * Primary button styles.
  97. */
  98. /* @todo the .toolbar-button--primary styling needs to be moved to the
  99. Navigation module after Drupal core supports dark mode. */
  100. :is(#extra-specificity-hack, [data-drupal-admin-styles]) .top-bar__actions .toolbar-button--primary,
  101. #edit-submit.form-submit,
  102. .button--primary,
  103. .button--primary:not(:focus),
  104. .ief-entity-submit {
  105. background: var(--admin-color-primary);
  106. box-shadow: 0.1em 0.25em 0.5em var(--admin-color-primary-soft);
  107. &:hover {
  108. color: var(--admin-color-text-on-primary);
  109. background-color: var(--admin-color-primary-hover);
  110. }
  111. &:active {
  112. color: var(--admin-color-text-on-primary);
  113. background-color: var(--admin-color-primary-active);
  114. }
  115. &,
  116. &:hover,
  117. &:active {
  118. color: var(--admin-color-text-on-primary);
  119. }
  120. }
  121. /* Danger button styles */
  122. .button--danger {
  123. color: var(--button-fg-color--danger);
  124. border-color: transparent;
  125. &:is(:hover, :active) {
  126. color: var(--button-fg-color--danger);
  127. border-color: var(--admin-color-error);
  128. background-color: var(--button--hover-bg-color--danger);
  129. }
  130. }
  131. a.button:hover,
  132. a.button:active {
  133. color: var(--admin-color-text-on-primary);
  134. }
  135. a.button--primary:hover,
  136. a.button--primary:active {
  137. .dark-mode
  138. }
  139. /**
  140. * Disabled state styles as last.
  141. *
  142. * Overrides every definitions before, including variants.
  143. */
  144. .button.button:disabled,
  145. .button.button.is-disabled {
  146. &,
  147. &:hover,
  148. &:active {
  149. color: var(--admin-color-text-disabled);
  150. border: 2px solid var(--admin-color-border-disabled) !important;
  151. background: transparent;
  152. box-shadow: none;
  153. }
  154. /* Make disabled behave like a [disabled] or . */
  155. &.is-disabled {
  156. user-select: none;
  157. pointer-events: none;
  158. }
  159. }
  160. .button.button--primary:disabled,
  161. .button.button--primary.is-disabled {
  162. &,
  163. &:hover,
  164. &:active {
  165. color: var(--admin-color-text-disabled);
  166. background-color: var(--admin-color-bg-disabled);
  167. }
  168. }
  169. /**
  170. * Style a clickable/tappable element as a link. Duplicates the base style for
  171. * the tag, plus a reset for padding, borders and background.
  172. */
  173. .link {
  174. display: inline;
  175. padding: 0;
  176. cursor: pointer;
  177. text-decoration: underline;
  178. border: 0;
  179. background: none;
  180. appearance: none;
  181. }
  182. /* Autocomplete field remove button. */
  183. .multiple-fields-remove-button.button {
  184. border: 0 none !important;
  185. mask-image: var(--admin-icon-remove);
  186. mask-size: 16px 16px;
  187. mask-repeat: no-repeat;
  188. mask-position: center center;
  189. }