You are here

form--text.pcss.css in Drupal 10

Text and textarea input elements.

File

core/themes/claro/css/components/form--text.pcss.css
View source
  1. /**
  2. * @file
  3. * Text and textarea input elements.
  4. */
  5. .form-element {
  6. box-sizing: border-box;
  7. max-width: 100%;
  8. min-height: calc(((var(--input-padding-vertical) + var(--input-border-size)) * 2) + var(--input-line-height)); /* iOS. */
  9. padding: var(--input-padding-vertical) var(--input-padding-horizontal);
  10. color: var(--input-fg-color);
  11. border: var(--input-border-size) solid var(--input-border-color);
  12. border-radius: var(--input-border-radius-size);
  13. background: var(--input-bg-color);
  14. font-size: var(--input-font-size);
  15. line-height: var(--input-line-height);
  16. appearance: none; /* Being able to control inner box shadow on iOS. */
  17. }
  18. .no-touchevents .form-element--extrasmall,
  19. .no-touchevents .form-element[name$="][_weight]"] {
  20. min-height: calc(((var(--input--extrasmall-padding-vertical) + var(--input-border-size)) * 2) + var(--input--extrasmall-line-height)); /* iOS. */
  21. padding: var(--input--extrasmall-padding-vertical) var(--input--extrasmall-padding-horizontal);
  22. font-size: var(--input--extrasmall-font-size);
  23. line-height: var(--input--extrasmall-line-height);
  24. }
  25. /**
  26. * Override normalize.css's search appearance.
  27. */
  28. .form-element--type-search[type="search"] {
  29. appearance: none;
  30. box-sizing: border-box;
  31. }
  32. /**
  33. * Fix minor things for specific types.
  34. */
  35. .form-element--type-date,
  36. .form-element--type-time {
  37. vertical-align: -webkit-baseline-middle; /* Prevent iOS input jump while filling. */
  38. }
  39. .form-element--type-date {
  40. min-width: 9.5rem; /* Prevent input width change while filling. */
  41. }
  42. .form-element--type-time {
  43. min-width: 7.5rem; /* Prevent input width change while filling. */
  44. }
  45. .form-element--type-color {
  46. min-width: 3rem; /* Bigger input for webkit */
  47. padding: 0; /* Bigger pickable area */
  48. text-indent: calc(0.75rem - var(--input-border-size)); /* Text-input fallback for non-supporting browsers like Safari */
  49. }
  50. /**
  51. * Reset value border and background of the file input on IE11 and Edge.
  52. */
  53. .form-element--type-file::-ms-value {
  54. border: 0;
  55. background: inherit;
  56. }
  57. /**
  58. * Better upload button alignment for Chrome.
  59. */
  60. .form-element--type-file::-webkit-file-upload-button {
  61. vertical-align: top;
  62. }
  63. /**
  64. * Target IE 11 and Edge.
  65. *
  66. * Reduce the vertical padding of the file input element to make the browse
  67. * button fit into the needed input height.
  68. */
  69. /* stylelint-disable-next-line selector-type-no-unknown */
  70. _:-ms-fullscreen,
  71. :root .form-element--type-file {
  72. padding-top: 0.25rem;
  73. padding-bottom: 0.25rem;
  74. }
  75. /**
  76. * States.
  77. */
  78. .form-element:active {
  79. border-color: var(--input--focus-border-color);
  80. }
  81. .form-element:hover {
  82. border-color: var(--input--hover-border-color);
  83. box-shadow: inset 0 0 0 var(--input-border-size) var(--input--hover-border-color);
  84. }
  85. .form-element:focus {
  86. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus);
  87. }
  88. .form-element:hover:focus {
  89. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus), inset 0 0 0 var(--input-border-size) var(--input--hover-border-color);
  90. }
  91. .form-element.error {
  92. border-width: var(--input--error-border-size);
  93. border-color: var(--input--error-border-color);
  94. }
  95. .form-element.error:hover {
  96. box-shadow: none;
  97. }
  98. .form-element.error:hover:focus {
  99. box-shadow: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-focus);
  100. }
  101. .form-element--type-textarea.error + .cke {
  102. border-color: var(--input--error-border-color);
  103. }
  104. .form-element[disabled] {
  105. color: var(--input--disabled-fg-color);
  106. border-color: var(--input--disabled-border-color);
  107. background-color: var(--input--disabled-bg-color);
  108. box-shadow: none;
  109. /* https://stackoverflow.com/q/262158#answer-23511280 */
  110. -webkit-text-fill-color: var(--input--disabled-fg-color);
  111. }
  112. /**
  113. * Improve form element usability on narrow devices.
  114. */
  115. @media screen and (max-width: 600px) {
  116. /* Number, date and time are skipped here */
  117. .form-element {
  118. float: none;
  119. width: 100%;
  120. margin-top: 0.75rem;
  121. margin-right: 0;
  122. margin-left: 0;
  123. }
  124. .form-element:first-child,
  125. .form-item__label + .form-element {
  126. margin-top: 0;
  127. }
  128. }
  129. .form-element--type-textarea.error + .ck-editor > .ck-editor__main {
  130. border: var(--input--error-border-size) solid var(--input--error-border-color);
  131. }