dialog.pcss.css

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

Dialog theme overrides for form elements, links, and controls.

File

core/themes/default_admin/migration/css/theme/dialog.pcss.css

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

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