form--checkbox-radio.css

Checkbox and radio input elements.

File

core/themes/claro/css/components/form--checkbox-radio.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. * Checkbox and radio input elements.
  10. */
  11. /**
  12. * Form item modifiers.
  13. */
  14. .form-type--boolean {
  15. margin-inline-start: var(--input--label-spacing);
  16. line-height: var(--space-l);
  17. }
  18. /**
  19. * Radio and checkbox items that are the child of a form item.
  20. */
  21. .form-type--boolean .form-boolean {
  22. position: relative;
  23. inset-block-start: calc(var(--space-l) / 2);
  24. float: left; /* LTR */
  25. margin-inline-start: calc(var(--input--label-spacing) * -1);
  26. transform: translateY(-50%);
  27. [dir="rtl"]
  28. }
  29. .form-type--boolean.form-item--no-label {
  30. margin-inline-start: 0;
  31. }
  32. .form-type--boolean.form-item--no-label .form-boolean {
  33. position: static;
  34. float: none;
  35. margin-inline: 0;
  36. transform: none;
  37. }
  38. /**
  39. * When form items are nested in radios or checkboxes group, reduce the default
  40. * space between them.
  41. */
  42. .form-boolean-group .form-type--boolean {
  43. margin-block: 0.4em;
  44. }
  45. /**
  46. * Input appearance.
  47. */
  48. .form-boolean {
  49. display: inline-block;
  50. box-sizing: border-box;
  51. width: 1.125rem;
  52. height: 1.125rem;
  53. vertical-align: text-bottom;
  54. border: 1px solid var(--input-border-color);
  55. border-radius: 2px;
  56. background: var(--input-bg-color) no-repeat 50% 50%;
  57. background-size: 100% 100%;
  58. box-shadow: 0 0 0 4px transparent;
  59. appearance: none;
  60. &:active,
  61. &:hover {
  62. border-color: var(--input-fg-color);
  63. box-shadow: inset 0 0 0 1px var(--input-fg-color);
  64. }
  65. &:focus:active,
  66. &:focus:hover {
  67. box-shadow:
  68. 0 0 0 2px var(--color-white),
  69. 0 0 0 5px var(--color-focus),
  70. inset 0 0 0 1px var(--input-fg-color);
  71. }
  72. }
  73. @media (forced-colors: active) {
  74. .form-boolean {
  75. appearance: auto;
  76. }
  77. }
  78. .form-boolean--type-radio {
  79. width: 1.1875rem;
  80. height: 1.1875rem;
  81. border-radius: 1.1875rem;
  82. &:checked {
  83. border-color: var(--input--focus-border-color);
  84. background-image: url("data:image/svg+xml,%3csvg width='17' height='17' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle r='4.5' cx='8.5' cy='8.5' fill='%23003ecc'/%3e%3c/svg%3e");
  85. box-shadow: inset 0 0 0 1px var(--input--focus-border-color);
  86. &:focus {
  87. box-shadow:
  88. 0 0 0 2px var(--color-white),
  89. 0 0 0 5px var(--color-focus),
  90. inset 0 0 0 1px var(--input--focus-border-color);
  91. &:active,
  92. &:hover {
  93. box-shadow:
  94. 0 0 0 2px var(--color-white),
  95. 0 0 0 5px var(--color-focus),
  96. inset 0 0 0 1px var(--input-fg-color);
  97. }
  98. }
  99. &:active,
  100. &:hover {
  101. border-color: var(--input-fg-color);
  102. background-image: url("data:image/svg+xml,%3csvg width='17' height='17' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle r='4.5' cx='8.5' cy='8.5' fill='%23000f33'/%3e%3c/svg%3e");
  103. box-shadow: inset 0 0 0 1px var(--input-fg-color);
  104. }
  105. }
  106. }
  107. .form-boolean--type-checkbox:checked {
  108. border-color: var(--input--focus-border-color);
  109. background-color: var(--input--focus-border-color);
  110. background-image: url("data:image/svg+xml,%3csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M3.795 7.096l2.387 2.506 6.023-6.327 1.484 1.56-7.507 7.89L2.31 8.656z' fill='%23fff'/%3e%3c/svg%3e");
  111. &:active,
  112. &:hover {
  113. border-color: var(--input-fg-color);
  114. background-color: var(--input-fg-color);
  115. }
  116. }
  117. /**
  118. * Error states.
  119. */
  120. .form-boolean.error {
  121. border-color: var(--input--error-border-color);
  122. background-color: var(--input-bg-color);
  123. box-shadow: inset 0 0 0 1px var(--input--error-border-color);
  124. &:active,
  125. &:hover {
  126. box-shadow: inset 0 0 0 1px var(--input--error-border-color);
  127. }
  128. &:focus,
  129. &:focus:active,
  130. &:focus:hover {
  131. box-shadow:
  132. 0 0 0 2px var(--color-white),
  133. 0 0 0 5px var(--color-focus),
  134. inset 0 0 0 1px var(--input--error-border-color);
  135. }
  136. &:checked:active,
  137. &:checked:hover {
  138. border-color: var(--input--error-border-color);
  139. background-color: var(--input-bg-color);
  140. }
  141. }
  142. .form-boolean--type-checkbox.error:checked,
  143. .form-boolean--type-checkbox.error:checked:active,
  144. .form-boolean--type-checkbox.error:checked:hover {
  145. background-color: var(--input--error-border-color);
  146. }
  147. .form-boolean--type-radio.error:checked,
  148. .form-boolean--type-radio.error:checked:active,
  149. .form-boolean--type-radio.error:checked:hover {
  150. background-image: url("data:image/svg+xml,%3csvg width='17' height='17' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle r='4.5' cx='8.5' cy='8.5' fill='%23d72222'/%3e%3c/svg%3e");
  151. }
  152. .form-boolean--type-radio.error:checked:focus {
  153. box-shadow:
  154. 0 0 0 2px var(--color-white),
  155. 0 0 0 5px var(--color-focus),
  156. inset 0 0 0 1px var(--input--error-border-color);
  157. }
  158. /**
  159. * Disabled states.
  160. */
  161. .form-boolean[disabled],
  162. .form-boolean[disabled]:hover,
  163. .form-boolean[disabled].error,
  164. .form-boolean[disabled].error:hover,
  165. .form-boolean--type-radio[disabled]:focus:active,
  166. .form-boolean--type-radio[disabled]:active:hover,
  167. .form-boolean--type-radio[disabled].error:active:hover {
  168. border-color: var(--input--disabled-border-color);
  169. background-color: var(--input--disabled-bg-color);
  170. background-image: none;
  171. box-shadow: none;
  172. }
  173. .form-boolean--type-checkbox[disabled]:checked {
  174. background-image: url("data:image/svg+xml,%3csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M3.795 7.096l2.387 2.506 6.023-6.327 1.484 1.56-7.507 7.89L2.31 8.656z' fill='%2382828c'/%3e%3c/svg%3e");
  175. }
  176. .form-boolean--type-radio[disabled]:checked,
  177. .form-boolean--type-radio[disabled].error:checked {
  178. background-image: url("data:image/svg+xml,%3csvg width='17' height='17' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle r='4.5' cx='8.5' cy='8.5' fill='%2382828c'/%3e%3c/svg%3e");
  179. }

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