You are here

form--checkbox-radio.pcss.css in Drupal 10

Checkbox and radio input elements.

File

core/themes/claro/css/components/form--checkbox-radio.pcss.css
View source
  1. /**
  2. * @file
  3. * Checkbox and radio input elements.
  4. */
  5. /**
  6. * Form item modifiers.
  7. */
  8. .form-type--boolean {
  9. margin-left: var(--input--label-spacing); /* LTR */
  10. line-height: var(--space-l);
  11. }
  12. [dir="rtl"] .form-type--boolean {
  13. margin-right: var(--input--label-spacing);
  14. margin-left: 0;
  15. }
  16. /**
  17. * Radio and checkbox items that are the child of a form item.
  18. */
  19. .form-type--boolean .form-boolean {
  20. position: relative;
  21. top: calc(var(--space-l) / 2);
  22. float: left; /* LTR */
  23. margin-left: calc(var(--input--label-spacing) * -1); /* LTR */
  24. transform: translateY(-50%);
  25. }
  26. [dir="rtl"] .form-type--boolean .form-boolean {
  27. float: right;
  28. margin-right: calc(var(--input--label-spacing) * -1);
  29. margin-left: 0;
  30. }
  31. .form-type--boolean.form-item--no-label {
  32. margin-left: 0;
  33. }
  34. [dir="rtl"] .form-type--boolean.form-item--no-label {
  35. margin-right: 0;
  36. }
  37. .form-type--boolean.form-item--no-label .form-boolean,
  38. [dir="rtl"] .form-type--boolean.form-item--no-label .form-boolean {
  39. position: static;
  40. float: none;
  41. margin-right: 0;
  42. margin-left: 0;
  43. transform: none;
  44. }
  45. /**
  46. * When form items are nested in radios or checkboxes group, reduce the default
  47. * space between them.
  48. */
  49. .form-boolean-group .form-type--boolean {
  50. margin-top: 0.4em;
  51. margin-bottom: 0.4em;
  52. }
  53. /**
  54. * Input appearance.
  55. */
  56. .form-boolean {
  57. display: inline-block;
  58. box-sizing: border-box;
  59. width: 18px;
  60. height: 18px;
  61. vertical-align: text-bottom;
  62. border: 1px solid var(--input-border-color);
  63. border-radius: 2px;
  64. background: var(--input-bg-color) no-repeat 50% 50%;
  65. background-size: 100% 100%;
  66. box-shadow: 0 0 0 4px transparent;
  67. appearance: none;
  68. }
  69. @media (forced-colors: active) {
  70. .form-boolean {
  71. appearance: auto;
  72. }
  73. }
  74. .form-boolean--type-radio {
  75. width: 19px;
  76. height: 19px;
  77. border-radius: 19px;
  78. }
  79. .form-boolean:active,
  80. .form-boolean:hover {
  81. border-color: var(--input-fg-color);
  82. box-shadow: inset 0 0 0 1px var(--input-fg-color);
  83. }
  84. .form-boolean:focus:active,
  85. .form-boolean:focus:hover {
  86. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 1px var(--input-fg-color);
  87. }
  88. .form-boolean--type-checkbox:checked {
  89. border-color: var(--input--focus-border-color);
  90. background-color: var(--input--focus-border-color);
  91. background-image: url(../../images/icons/ffffff/checkmark-sm.svg);
  92. }
  93. .form-boolean--type-checkbox:checked:active,
  94. .form-boolean--type-checkbox:checked:hover {
  95. border-color: var(--input-fg-color);
  96. background-color: var(--input-fg-color);
  97. }
  98. .form-boolean--type-radio:checked {
  99. border-color: var(--input--focus-border-color);
  100. background-image: url(../../images/icons/003ecc/circle.svg);
  101. box-shadow: inset 0 0 0 1px var(--input--focus-border-color);
  102. }
  103. .form-boolean--type-radio:checked:focus {
  104. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 1px var(--input--focus-border-color);
  105. }
  106. .form-boolean--type-radio:checked:active,
  107. .form-boolean--type-radio:checked:hover {
  108. border-color: var(--input-fg-color);
  109. background-image: url(../../images/icons/000f33/circle.svg);
  110. box-shadow: inset 0 0 0 1px var(--input-fg-color);
  111. }
  112. .form-boolean--type-radio:checked:focus:active,
  113. .form-boolean--type-radio:checked:focus:hover {
  114. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 1px var(--input-fg-color);
  115. }
  116. /**
  117. * Error states.
  118. */
  119. .form-boolean.error {
  120. border-color: var(--input--error-border-color);
  121. background-color: var(--input-bg-color);
  122. box-shadow: inset 0 0 0 1px var(--input--error-border-color);
  123. }
  124. .form-boolean.error:active,
  125. .form-boolean.error:hover {
  126. box-shadow: inset 0 0 0 1px var(--input--error-border-color);
  127. }
  128. .form-boolean.error:focus,
  129. .form-boolean.error:focus:active,
  130. .form-boolean.error:focus:hover {
  131. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 1px var(--input--error-border-color);
  132. }
  133. .form-boolean.error:checked:active,
  134. .form-boolean.error:checked:hover {
  135. border-color: var(--input--error-border-color);
  136. background-color: var(--input-bg-color);
  137. }
  138. .form-boolean--type-checkbox.error:checked,
  139. .form-boolean--type-checkbox.error:checked:active,
  140. .form-boolean--type-checkbox.error:checked:hover {
  141. background-color: var(--input--error-border-color);
  142. }
  143. .form-boolean--type-radio.error:checked,
  144. .form-boolean--type-radio.error:checked:active,
  145. .form-boolean--type-radio.error:checked:hover {
  146. background-image: url(../../images/icons/d72222/circle.svg);
  147. }
  148. .form-boolean--type-radio.error:checked:focus {
  149. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 1px var(--input--error-border-color);
  150. }
  151. /**
  152. * Disabled states.
  153. */
  154. .form-boolean[disabled],
  155. .form-boolean[disabled]:hover,
  156. .form-boolean[disabled].error,
  157. .form-boolean[disabled].error:hover,
  158. .form-boolean--type-radio[disabled]:focus:active,
  159. .form-boolean--type-radio[disabled]:active:hover,
  160. .form-boolean--type-radio[disabled].error:active:hover {
  161. border-color: var(--input--disabled-border-color);
  162. background-color: var(--input--disabled-bg-color);
  163. background-image: none;
  164. box-shadow: none;
  165. }
  166. .form-boolean--type-checkbox[disabled]:checked {
  167. background-image: url(../../images/icons/82828c/checkmark.svg);
  168. }
  169. .form-boolean--type-radio[disabled]:checked,
  170. .form-boolean--type-radio[disabled].error:checked {
  171. background-image: url(../../images/icons/82828c/circle.svg);
  172. }