gin-form.pcss.css

Same filename and directory in other branches
  1. 11.x core/themes/default_admin/migration/css/base/gin-form.pcss.css
/* cspell:ignore Darkmode, tablesaw */
.form-element {
  box-sizing: border-box;
  min-height: calc((var(--input-padding-vertical) * 2) + var(--input-line-height));
  color: var(--gin-color-text);
  border: 1px solid var(--gin-border-color-form-element);
  border-radius: var(--gin-border-m);
  background-color: var(--gin-bg-input);
  line-height: var(--input-line-height);
  padding-block: calc(var(--input-padding-vertical) - 1px);
  padding-inline: var(--input-padding-horizontal);

  &:hover {
    border-color: var(--gin-color-text);
    box-shadow: inset 0 0 0 1px var(--gin-color-text);
  }

  &[disabled],
  &[disabled]:hover {
    cursor: not-allowed;
    color: var(--gin-color-disabled);
    border-color: var(--gin-color-disabled-border);
    background-color: var(--gin-color-disabled-bg) !important;
    box-shadow: none;
  }

  .gin--dark-mode & {
    color-scheme: dark;
  }

  @media (prefers-reduced-motion: no-preference) {
    transition: var(--gin-transition);
  }
}

.form-element--small,
.form-element--extrasmall {
  border-radius: var(--gin-border-s);
  font-size: var(--gin-font-size-s);
  line-height: 1.5;
}

.form-textarea-wrapper {
  /* box-shadow: 0 1px 2px rgba(0, 0, 0, .15); */
  border-radius: var(--gin-border-m);

  textarea {
    max-width: 100%;
  }
}

.form-item--editor-format,
.form-element--editor-format {
  width: auto;

  .form-item__label {
    inset-block-start: 3px;
    padding-block-end: 0;
  }
}

/* Password */
.password-field {
  width: 100%;
}

.password-confirm {
  width: 100%;
  max-width: var(--gin-max-line-length);
}

.password-strength__title {
  color: var(--gin-color-text-light);
}

.password-strength__text {
  color: var(--gin-color-title);
}

.password-suggestions {
  color: var(--gin-color-text-light);
  border: 1px solid var(--gin-border-color-layer2);
  background-color: transparent;
}

.subfield-option {
  border: 1px solid var(--gin-border-color-layer2);
  border-radius: var(--gin-border-m);
}

/* Select */
.form-element--type-select {
  padding-inline-end: calc(var(--gin-spacing-xs) + var(--gin-spacing-xl) - 1px);

  .gin--dark-mode & {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke-width='1.5' d='M1 1L7 7L13 1' stroke='%23ffffff'/%3E%3C/svg%3E%0A");
  }
}

.form-element--type-select--small {
  min-height: 2.25rem;
  background-position: 100% 52%;
  font-size: var(--gin-font-size-xs);
  line-height: 1.4;
  padding-block: 0.474rem; /* 0.79rem * 1.2 / 2 */

  &:dir(rtl) {
    background-position: 0% 52%;
  }
}

.form-boolean {
  width: 21px;
  height: 21px;
  border-color: var(--gin-border-color-form-element);
  border-radius: var(--gin-border-xs);
}

/* Darkmode Checkbox */
.form-boolean--type-checkbox {
  &:not(:checked) {
    .gin--dark-mode & {
      background: var(--gin-bg-input);
    }
  }

  &:checked {
    background-color: var(--gin-color-primary);

    &:not(:disabled) {
      .gin--dark-mode & {
        background-image: var(--admin-icon-checked);
      }
    }

    &:hover {
      background-color: var(--gin-color-primary-hover);
    }

    &:active {
      background-color: var(--gin-color-primary-active);
    }
  }
}

/* Single Checkbox: show as toggle */
:not(.form-checkboxes, td, .tabledrag-cell-content__item, .media-library-item__click-to-select-checkbox, .field-content, .ajax-new-content, .tablesaw-cell-content) > .form-type--checkbox {
  position: relative;
  margin-inline-start: 0;

  input {
    all: unset;
    appearance: none;
    position: relative;
    display: inline-block;
    overflow: hidden;
    box-sizing: border-box;
    width: 2.5rem;
    height: 1.5rem;
    cursor: pointer;
    vertical-align: top;
    border: 3px solid transparent;
    border-radius: var(--gin-border-l);
    background-color: var(--gin-color-disabled);
    clip-path: circle(var(--gin-spacing-l) at 50% 50%); /* Fix Safari bug */

    .gin--dark-mode & {
      background-color: var(--gin-bg-input);
    }

    &::before {
      position: absolute;
      width: 100%;
      height: 100%;
      content: "";
      transform: translateX(-16px);
      border-radius: 21px;
      background-color: #fff;

      &:dir(rtl) {
        transform: translateX(16px);
      }

      .gin--dark-mode & {
        background-color: var(--gin-border-color-form-element);
      }

      @media (prefers-reduced-motion: no-preference) {
        transition: transform 0.3s;
      }

      @media (forced-colors: active) {
        background-color: CanvasText;
      }
    }

    /* Disabled state: set cursor to not-allowed */
    &:disabled {
      cursor: not-allowed;
    }

    /* Hover state */
    &:hover {
      opacity: 0.9;
      box-shadow: 0 0 2px rgb(0, 0, 0, 0.2);
    }

    /* Hover/Focus state */
    &:active,
    &:focus {
      box-shadow:
        0 0 0 1px var(--gin-color-focus-border),
        0 0 0 4px var(--gin-color-focus);
    }

    /* Active state */
    &:checked {
      background-color: var(--gin-switch);

      .gin--dark-mode & {
        background-color: var(--gin-color-primary-light-active);
      }

      &::before {
        transform: translateX(16px);
        background-color: #fff;

        &:dir(rtl) {
          transform: translateX(-16px);
        }

        .gin--dark-mode & {
          background-color: var(--gin-color-primary-hover);
        }

        .gin--high-contrast-mode & {
          background-color: var(--gin-border-color);
        }

        @media (forced-colors: active) {
          padding-inline-start: var(--gin-spacing-xs);
          background-color: LinkText !important;
        }
      }

      @media (forced-colors: active) {
        &::after {
          transform: translateX(16px);
          mask-image: var(--admin-icon-checked);
          mask-position: 2px 2px;

          &:dir(rtl) {
            transform: translateX(-16px);
          }
        }
      }
    }

    /* Disabled state */
    &:disabled {
      opacity: 0.75;
      background-color: var(--gin-color-disabled);
      box-shadow: none;

      &::before {
        opacity: 0.6;
        background-color: #fff;
      }
    }

    @media (forced-colors: active) {
      border-width: 2px;
    }

    @media (forced-colors: active) {
      &::after {
        position: absolute;
        width: 100%;
        height: 100%;
        content: "";
        transform: translateX(-16px);
        background-color: Canvas;
        mask-image: var(--admin-icon-toggle-unchecked);
        mask-size: 16px 16px;
        mask-position: 17px 2px;
        mask-repeat: no-repeat;

        &:dir(rtl) {
          transform: translateX(16px);
        }

        @media (prefers-reduced-motion: no-preference) {
          transition: transform 0.3s;
        }
      }
    }
  }

  label {
    position: relative;
    z-index: 1;
    padding-block-end: 0;
    padding-inline-start: var(--gin-spacing-xxs);
    color: var(--gin-color-text);
  }
}

/* Correctly align bulk action checkboxes when used in combination with tabledrag */
table:has(.tabledrag-cell-content__item .form-checkbox) th.select-all .form-checkbox {
  margin-inline-start: calc(var(--tabledrag-handle-icon-size, calc(17rem / 16)) + var(--gin-spacing-m));
}

.form-boolean {
  &:hover,
  &:active {
    .gin--dark-mode & {
      border-color: var(--gin-color-text);
      box-shadow: none;
    }
  }
}

.form-boolean--type-radio {
  &,
  &:hover,
  &:active,
  &:focus,
  &:hover:focus {
    border-color: var(--gin-border-color-form-element);
    border-radius: 50%;
    background-color: var(--gin-bg-input);
    background-image: none;
  }

  &:hover {
    box-shadow: inset 0 0 0 1px var(--gin-border-color-layer2);

    &,
    .gin--dark-mode & {
      border-color: var(--gin-color-text);
    }
  }

  &:active,
  &:focus {
    box-shadow:
      inset 0 0 0 1px var(--gin-border-color-layer2),
      0 0 0 1px var(--gin-color-focus-border),
      0 0 0 4px var(--gin-color-focus);
  }

  &:checked:not(:disabled) {
    &,
    &:hover {
      background-color: var(--gin-bg-layer);
      background-image: none;
      box-shadow: inset 0 0 0 5px var(--gin-color-primary);
    }

    &:active,
    &:focus,
    &:hover:focus {
      border-color: var(--gin-color-focus-border);
      box-shadow:
        inset 0 0 0 5px var(--gin-color-primary),
        0 0 0 1px var(--gin-color-focus-border),
        0 0 0 4px var(--gin-color-focus);
    }
  }

  &:disabled {
    &,
    &:hover {
      cursor: not-allowed;
      border-color: var(--gin-color-disabled-border);
      background: var(--gin-color-disabled-bg);
    }
  }

  &:checked:disabled {
    &,
    &:hover {
      background: var(--gin-color-disabled);
      box-shadow: inset 0 0 0 5px var(--gin-color-disabled-bg);
    }
  }
}

.form-boolean--type-checkbox[disabled] {
  &,
  &:hover {
    cursor: not-allowed;
    border-color: var(--gin-color-disabled-border);
    background-color: var(--gin-color-disabled-bg);

    &:checked {
      border-color: var(--gin-color-disabled-border);
      background-color: var(--gin-color-disabled-bg);
      box-shadow: none;
    }
  }
}

.form-radios,
.form-checkboxes {
  .form-type--boolean {
    margin-block: var(--gin-spacing-xs);
  }
}

.form-actions {
  margin-block-end: 0;
}

.form-edit .form-actions {
  margin-block-end: 0;
  padding: 0;
  border: 0 none;
  background-color: transparent;
}

/* Fieldgroup */
fieldset:not(.fieldgroup) {
  padding-block-start: var(--gin-spacing-xs);
  color: var(--gin-color-text-light);
  border-color: var(--gin-border-color);
  border-radius: var(--gin-border-m);
  background: transparent;
  box-shadow: none;
  padding-inline: 0;

  > legend {
    inset-block-start: 20px;
  }

  > .fieldset-wrapper {
    margin-block-start: 20px;
  }

  &.error {
    border: 2px solid var(--gin-color-danger);
  }
}

.fieldset__label,
.fieldset__label--group,
.form-item__label {
  margin-block-start: 0;
  margin-block-end: var(--gin-spacing-xs);
  color: var(--gin-color-title);
  font-size: var(--gin-font-size-s);
  font-weight: var(--gin-font-weight-semibold);
}

.form-item__label.has-error,
.form-item__error-message {
  color: var(--gin-color-danger);
}

.form-item__description,
.fieldset__description,
.filter-guidelines__item {
  max-width: var(--gin-max-line-length);
  color: var(--gin-color-text-light);
}

.form-item__label.form-required::after,
.fieldset__label.form-required::after,
.form-required > .fieldset__label::after,
.horizontal-tab-button .form-required::after,
.vertical-tabs__menu-link .form-required::after {
  content: "*";
  vertical-align: text-top;
  color: var(--gin-color-danger);
  background: none;
  line-height: 1;
  margin-inline: 0.15em;
}

.gin-details.error {
  border: 2px solid var(--gin-color-danger);
}

.gin-details__summary:not(.form-required) {
  .required-mark {
    display: none;
  }
}

.form-item__warning {
  display: inline-block;
  margin-block-start: var(--gin-spacing-xs);
}

html.js .form-autocomplete {
  padding-inline-end: 36px;
}

.entity-form-display-form {
  > .form-actions {
    margin-block: 0;
  }
}

.required-mark {
  &::after {
    background: var(--gin-color-danger);
    mask-image: var(--admin-icon-asterisk);
    mask-position: center center;
    mask-size: 100% 100%;
  }
}

.form-wrapper,
.form-composite {
  .form-item__label {
    position: relative;
  }
}

.field--type-text-with-summary,
.field--widget-text-textarea {
  .form-item {
    margin-block-end: 0;
  }

  .filter-wrapper {
    border: 0 none;
    padding-inline: 0;
  }
}

.claro-autocomplete {
  width: calc(100% - var(--gin-spacing-m));

  .form-autocomplete {
    width: 100%;
  }
}

.no-touchevents .form-element--type-select.form-element--extrasmall {
  min-height: 1.75rem;
  font-size: var(--gin-font-size-s);
  line-height: 1.5;
}

/* Special case, form starts with a form item, remove margin-block-start. */
#block-gin-content > form > .form-item:first-of-type {
  margin-block-start: 0;
}

.image-style-new {
  .form-item {
    margin-inline-end: var(--gin-spacing-xxs);
  }
}

tr .form-item {
  margin-block: 0;
}

.container-inline .form-item {
  margin-block: var(--gin-spacing-density-s);
}

.field-plugin-settings-edit-form {
  margin-block-start: var(--gin-spacing-s);

  .form-item {
    margin-block: var(--gin-spacing-m);
  }

  .form-boolean-group .form-item {
    margin-block: var(--gin-spacing-xs);
  }
}

/* Length indicator */
.length-indicator {
  margin-block-end: var(--gin-spacing-l);
}

File

core/themes/default_admin/migration/css/base/gin-form.pcss.css

View source
  1. /* cspell:ignore Darkmode, tablesaw */
  2. .form-element {
  3. box-sizing: border-box;
  4. min-height: calc((var(--input-padding-vertical) * 2) + var(--input-line-height));
  5. color: var(--gin-color-text);
  6. border: 1px solid var(--gin-border-color-form-element);
  7. border-radius: var(--gin-border-m);
  8. background-color: var(--gin-bg-input);
  9. line-height: var(--input-line-height);
  10. padding-block: calc(var(--input-padding-vertical) - 1px);
  11. padding-inline: var(--input-padding-horizontal);
  12. &:hover {
  13. border-color: var(--gin-color-text);
  14. box-shadow: inset 0 0 0 1px var(--gin-color-text);
  15. }
  16. &[disabled],
  17. &[disabled]:hover {
  18. cursor: not-allowed;
  19. color: var(--gin-color-disabled);
  20. border-color: var(--gin-color-disabled-border);
  21. background-color: var(--gin-color-disabled-bg) !important;
  22. box-shadow: none;
  23. }
  24. .gin--dark-mode
  25. @media (prefers-reduced-motion: no-preference) {
  26. transition: var(--gin-transition);
  27. }
  28. }
  29. .form-element--small,
  30. .form-element--extrasmall {
  31. border-radius: var(--gin-border-s);
  32. font-size: var(--gin-font-size-s);
  33. line-height: 1.5;
  34. }
  35. .form-textarea-wrapper {
  36. /* box-shadow: 0 1px 2px rgba(0, 0, 0, .15); */
  37. border-radius: var(--gin-border-m);
  38. textarea {
  39. max-width: 100%;
  40. }
  41. }
  42. .form-item--editor-format,
  43. .form-element--editor-format {
  44. width: auto;
  45. .form-item__label {
  46. inset-block-start: 3px;
  47. padding-block-end: 0;
  48. }
  49. }
  50. /* Password */
  51. .password-field {
  52. width: 100%;
  53. }
  54. .password-confirm {
  55. width: 100%;
  56. max-width: var(--gin-max-line-length);
  57. }
  58. .password-strength__title {
  59. color: var(--gin-color-text-light);
  60. }
  61. .password-strength__text {
  62. color: var(--gin-color-title);
  63. }
  64. .password-suggestions {
  65. color: var(--gin-color-text-light);
  66. border: 1px solid var(--gin-border-color-layer2);
  67. background-color: transparent;
  68. }
  69. .subfield-option {
  70. border: 1px solid var(--gin-border-color-layer2);
  71. border-radius: var(--gin-border-m);
  72. }
  73. /* Select */
  74. .form-element--type-select {
  75. padding-inline-end: calc(var(--gin-spacing-xs) + var(--gin-spacing-xl) - 1px);
  76. .gin--dark-mode
  77. }
  78. .form-element--type-select--small {
  79. min-height: 2.25rem;
  80. background-position: 100% 52%;
  81. font-size: var(--gin-font-size-xs);
  82. line-height: 1.4;
  83. padding-block: 0.474rem; /* 0.79rem * 1.2 / 2 */
  84. &:dir(rtl) {
  85. background-position: 0% 52%;
  86. }
  87. }
  88. .form-boolean {
  89. width: 21px;
  90. height: 21px;
  91. border-color: var(--gin-border-color-form-element);
  92. border-radius: var(--gin-border-xs);
  93. }
  94. /* Darkmode Checkbox */
  95. .form-boolean--type-checkbox {
  96. &:not(:checked) {
  97. .gin--dark-mode
  98. }
  99. &:checked {
  100. background-color: var(--gin-color-primary);
  101. &:not(:disabled) {
  102. .gin--dark-mode
  103. }
  104. &:hover {
  105. background-color: var(--gin-color-primary-hover);
  106. }
  107. &:active {
  108. background-color: var(--gin-color-primary-active);
  109. }
  110. }
  111. }
  112. /* Single Checkbox: show as toggle */
  113. :not(.form-checkboxes, td, .tabledrag-cell-content__item, .media-library-item__click-to-select-checkbox, .field-content, .ajax-new-content, .tablesaw-cell-content) > .form-type--checkbox {
  114. position: relative;
  115. margin-inline-start: 0;
  116. input {
  117. all: unset;
  118. appearance: none;
  119. position: relative;
  120. display: inline-block;
  121. overflow: hidden;
  122. box-sizing: border-box;
  123. width: 2.5rem;
  124. height: 1.5rem;
  125. cursor: pointer;
  126. vertical-align: top;
  127. border: 3px solid transparent;
  128. border-radius: var(--gin-border-l);
  129. background-color: var(--gin-color-disabled);
  130. clip-path: circle(var(--gin-spacing-l) at 50% 50%); /* Fix Safari bug */
  131. .gin--dark-mode
  132. &::before {
  133. position: absolute;
  134. width: 100%;
  135. height: 100%;
  136. content: "";
  137. transform: translateX(-16px);
  138. border-radius: 21px;
  139. background-color: #fff;
  140. &:dir(rtl) {
  141. transform: translateX(16px);
  142. }
  143. .gin--dark-mode
  144. @media (prefers-reduced-motion: no-preference) {
  145. transition: transform 0.3s;
  146. }
  147. @media (forced-colors: active) {
  148. background-color: CanvasText;
  149. }
  150. }
  151. /* Disabled state: set cursor to not-allowed */
  152. &:disabled {
  153. cursor: not-allowed;
  154. }
  155. /* Hover state */
  156. &:hover {
  157. opacity: 0.9;
  158. box-shadow: 0 0 2px rgb(0, 0, 0, 0.2);
  159. }
  160. /* Hover/Focus state */
  161. &:active,
  162. &:focus {
  163. box-shadow:
  164. 0 0 0 1px var(--gin-color-focus-border),
  165. 0 0 0 4px var(--gin-color-focus);
  166. }
  167. /* Active state */
  168. &:checked {
  169. background-color: var(--gin-switch);
  170. .gin--dark-mode
  171. &::before {
  172. transform: translateX(16px);
  173. background-color: #fff;
  174. &:dir(rtl) {
  175. transform: translateX(-16px);
  176. }
  177. .gin--dark-mode
  178. .gin--high-contrast-mode
  179. @media (forced-colors: active) {
  180. padding-inline-start: var(--gin-spacing-xs);
  181. background-color: LinkText !important;
  182. }
  183. }
  184. @media (forced-colors: active) {
  185. &::after {
  186. transform: translateX(16px);
  187. mask-image: var(--admin-icon-checked);
  188. mask-position: 2px 2px;
  189. &:dir(rtl) {
  190. transform: translateX(-16px);
  191. }
  192. }
  193. }
  194. }
  195. /* Disabled state */
  196. &:disabled {
  197. opacity: 0.75;
  198. background-color: var(--gin-color-disabled);
  199. box-shadow: none;
  200. &::before {
  201. opacity: 0.6;
  202. background-color: #fff;
  203. }
  204. }
  205. @media (forced-colors: active) {
  206. border-width: 2px;
  207. }
  208. @media (forced-colors: active) {
  209. &::after {
  210. position: absolute;
  211. width: 100%;
  212. height: 100%;
  213. content: "";
  214. transform: translateX(-16px);
  215. background-color: Canvas;
  216. mask-image: var(--admin-icon-toggle-unchecked);
  217. mask-size: 16px 16px;
  218. mask-position: 17px 2px;
  219. mask-repeat: no-repeat;
  220. &:dir(rtl) {
  221. transform: translateX(16px);
  222. }
  223. @media (prefers-reduced-motion: no-preference) {
  224. transition: transform 0.3s;
  225. }
  226. }
  227. }
  228. }
  229. label {
  230. position: relative;
  231. z-index: 1;
  232. padding-block-end: 0;
  233. padding-inline-start: var(--gin-spacing-xxs);
  234. color: var(--gin-color-text);
  235. }
  236. }
  237. /* Correctly align bulk action checkboxes when used in combination with tabledrag */
  238. table:has(.tabledrag-cell-content__item .form-checkbox) th.select-all .form-checkbox {
  239. margin-inline-start: calc(var(--tabledrag-handle-icon-size, calc(17rem / 16)) + var(--gin-spacing-m));
  240. }
  241. .form-boolean {
  242. &:hover,
  243. &:active {
  244. .gin--dark-mode
  245. }
  246. }
  247. .form-boolean--type-radio {
  248. &,
  249. &:hover,
  250. &:active,
  251. &:focus,
  252. &:hover:focus {
  253. border-color: var(--gin-border-color-form-element);
  254. border-radius: 50%;
  255. background-color: var(--gin-bg-input);
  256. background-image: none;
  257. }
  258. &:hover {
  259. box-shadow: inset 0 0 0 1px var(--gin-border-color-layer2);
  260. &,
  261. .gin--dark-mode
  262. }
  263. &:active,
  264. &:focus {
  265. box-shadow:
  266. inset 0 0 0 1px var(--gin-border-color-layer2),
  267. 0 0 0 1px var(--gin-color-focus-border),
  268. 0 0 0 4px var(--gin-color-focus);
  269. }
  270. &:checked:not(:disabled) {
  271. &,
  272. &:hover {
  273. background-color: var(--gin-bg-layer);
  274. background-image: none;
  275. box-shadow: inset 0 0 0 5px var(--gin-color-primary);
  276. }
  277. &:active,
  278. &:focus,
  279. &:hover:focus {
  280. border-color: var(--gin-color-focus-border);
  281. box-shadow:
  282. inset 0 0 0 5px var(--gin-color-primary),
  283. 0 0 0 1px var(--gin-color-focus-border),
  284. 0 0 0 4px var(--gin-color-focus);
  285. }
  286. }
  287. &:disabled {
  288. &,
  289. &:hover {
  290. cursor: not-allowed;
  291. border-color: var(--gin-color-disabled-border);
  292. background: var(--gin-color-disabled-bg);
  293. }
  294. }
  295. &:checked:disabled {
  296. &,
  297. &:hover {
  298. background: var(--gin-color-disabled);
  299. box-shadow: inset 0 0 0 5px var(--gin-color-disabled-bg);
  300. }
  301. }
  302. }
  303. .form-boolean--type-checkbox[disabled] {
  304. &,
  305. &:hover {
  306. cursor: not-allowed;
  307. border-color: var(--gin-color-disabled-border);
  308. background-color: var(--gin-color-disabled-bg);
  309. &:checked {
  310. border-color: var(--gin-color-disabled-border);
  311. background-color: var(--gin-color-disabled-bg);
  312. box-shadow: none;
  313. }
  314. }
  315. }
  316. .form-radios,
  317. .form-checkboxes {
  318. .form-type--boolean {
  319. margin-block: var(--gin-spacing-xs);
  320. }
  321. }
  322. .form-actions {
  323. margin-block-end: 0;
  324. }
  325. .form-edit .form-actions {
  326. margin-block-end: 0;
  327. padding: 0;
  328. border: 0 none;
  329. background-color: transparent;
  330. }
  331. /* Fieldgroup */
  332. fieldset:not(.fieldgroup) {
  333. padding-block-start: var(--gin-spacing-xs);
  334. color: var(--gin-color-text-light);
  335. border-color: var(--gin-border-color);
  336. border-radius: var(--gin-border-m);
  337. background: transparent;
  338. box-shadow: none;
  339. padding-inline: 0;
  340. > legend {
  341. inset-block-start: 20px;
  342. }
  343. > .fieldset-wrapper {
  344. margin-block-start: 20px;
  345. }
  346. &.error {
  347. border: 2px solid var(--gin-color-danger);
  348. }
  349. }
  350. .fieldset__label,
  351. .fieldset__label--group,
  352. .form-item__label {
  353. margin-block-start: 0;
  354. margin-block-end: var(--gin-spacing-xs);
  355. color: var(--gin-color-title);
  356. font-size: var(--gin-font-size-s);
  357. font-weight: var(--gin-font-weight-semibold);
  358. }
  359. .form-item__label.has-error,
  360. .form-item__error-message {
  361. color: var(--gin-color-danger);
  362. }
  363. .form-item__description,
  364. .fieldset__description,
  365. .filter-guidelines__item {
  366. max-width: var(--gin-max-line-length);
  367. color: var(--gin-color-text-light);
  368. }
  369. .form-item__label.form-required::after,
  370. .fieldset__label.form-required::after,
  371. .form-required > .fieldset__label::after,
  372. .horizontal-tab-button .form-required::after,
  373. .vertical-tabs__menu-link .form-required::after {
  374. content: "*";
  375. vertical-align: text-top;
  376. color: var(--gin-color-danger);
  377. background: none;
  378. line-height: 1;
  379. margin-inline: 0.15em;
  380. }
  381. .gin-details.error {
  382. border: 2px solid var(--gin-color-danger);
  383. }
  384. .gin-details__summary:not(.form-required) {
  385. .required-mark {
  386. display: none;
  387. }
  388. }
  389. .form-item__warning {
  390. display: inline-block;
  391. margin-block-start: var(--gin-spacing-xs);
  392. }
  393. html.js .form-autocomplete {
  394. padding-inline-end: 36px;
  395. }
  396. .entity-form-display-form {
  397. > .form-actions {
  398. margin-block: 0;
  399. }
  400. }
  401. .required-mark {
  402. &::after {
  403. background: var(--gin-color-danger);
  404. mask-image: var(--admin-icon-asterisk);
  405. mask-position: center center;
  406. mask-size: 100% 100%;
  407. }
  408. }
  409. .form-wrapper,
  410. .form-composite {
  411. .form-item__label {
  412. position: relative;
  413. }
  414. }
  415. .field--type-text-with-summary,
  416. .field--widget-text-textarea {
  417. .form-item {
  418. margin-block-end: 0;
  419. }
  420. .filter-wrapper {
  421. border: 0 none;
  422. padding-inline: 0;
  423. }
  424. }
  425. .claro-autocomplete {
  426. width: calc(100% - var(--gin-spacing-m));
  427. .form-autocomplete {
  428. width: 100%;
  429. }
  430. }
  431. .no-touchevents .form-element--type-select.form-element--extrasmall {
  432. min-height: 1.75rem;
  433. font-size: var(--gin-font-size-s);
  434. line-height: 1.5;
  435. }
  436. /* Special case, form starts with a form item, remove margin-block-start. */
  437. #block-gin-content > form > .form-item:first-of-type {
  438. margin-block-start: 0;
  439. }
  440. .image-style-new {
  441. .form-item {
  442. margin-inline-end: var(--gin-spacing-xxs);
  443. }
  444. }
  445. tr .form-item {
  446. margin-block: 0;
  447. }
  448. .container-inline .form-item {
  449. margin-block: var(--gin-spacing-density-s);
  450. }
  451. .field-plugin-settings-edit-form {
  452. margin-block-start: var(--gin-spacing-s);
  453. .form-item {
  454. margin-block: var(--gin-spacing-m);
  455. }
  456. .form-boolean-group .form-item {
  457. margin-block: var(--gin-spacing-xs);
  458. }
  459. }
  460. /* Length indicator */
  461. .length-indicator {
  462. margin-block-end: var(--gin-spacing-l);
  463. }

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