views-ui.css

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

Views UI styling.

File

core/themes/default_admin/css/components/views-ui.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. * Views UI styling.
  10. */
  11. /* @group Views admin */
  12. .views-admin {
  13. a:hover {
  14. -webkit-text-decoration: none;
  15. text-decoration: none;
  16. }
  17. a.button {
  18. margin-block: 0;
  19. margin-inline-end: 0;
  20. }
  21. /* Links and lists */
  22. .links {
  23. margin: 0;
  24. list-style: none outside none;
  25. li {
  26. padding-inline-end: 0;
  27. }
  28. }
  29. .button .links li {
  30. padding-inline-end: 0.75rem;
  31. }
  32. .item-list ul {
  33. margin: 0;
  34. padding: 0;
  35. }
  36. /* Icons */
  37. .icon {
  38. width: 1rem;
  39. height: 1rem;
  40. }
  41. .icon,
  42. .icon-text {
  43. background-image: url(../../../../modules/views_ui/images/sprites.png);
  44. background-repeat: no-repeat;
  45. background-attachment: scroll;
  46. background-position: top left;
  47. &:dir(rtl) {
  48. background-position: top right;
  49. }
  50. }
  51. a.icon {
  52. border: 1px solid #ddd;
  53. border-radius: 0.25rem;
  54. background:
  55. linear-gradient(-90deg, #fff 0, #e8e8e8 100%) no-repeat,
  56. repeat-y;
  57. box-shadow: 0 0 0 rgb(0, 0, 0, 0.3333) inset;
  58. &:hover {
  59. border-color: #d0d0d0;
  60. box-shadow: 0 0 1px rgb(0, 0, 0, 0.3333) inset;
  61. }
  62. &:active {
  63. border-color: #c0c0c0;
  64. }
  65. }
  66. span.icon {
  67. position: relative;
  68. float: inline-start;
  69. }
  70. .icon.compact {
  71. display: block;
  72. overflow: hidden;
  73. text-indent: -624.9375rem;
  74. direction: ltr;
  75. }
  76. /* Targets any element with an icon -> text combo */
  77. .icon-text {
  78. padding-inline-start: 1.1875rem;
  79. }
  80. .icon.linked {
  81. background-position: center -153px;
  82. }
  83. .icon.unlinked {
  84. background-position: center -195px;
  85. }
  86. .icon.delete {
  87. background-position: center -52px;
  88. }
  89. a.icon.delete {
  90. background-position:
  91. center -52px,
  92. top left;
  93. &:dir(rtl) {
  94. background-position:
  95. center -52px,
  96. top right;
  97. }
  98. }
  99. .icon.rearrange {
  100. background-position: center -111px;
  101. }
  102. a.icon.rearrange {
  103. background-position:
  104. center -111px,
  105. top left;
  106. &:dir(rtl) {
  107. background-position:
  108. center -111px,
  109. top right;
  110. }
  111. }
  112. .icon.add {
  113. background: none;
  114. &::before {
  115. content: "+";
  116. font-size: var(--gin-font-size);
  117. line-height: 0.1;
  118. }
  119. }
  120. /* Details */
  121. details details {
  122. margin-bottom: 0;
  123. }
  124. details.box-padding {
  125. border: none;
  126. }
  127. /* Form items */
  128. .form-item {
  129. margin-top: 0.5625rem;
  130. padding-top: 0;
  131. padding-bottom: 0;
  132. }
  133. .container-inline .form-item {
  134. margin-block: var(--gin-spacing-density-s);
  135. }
  136. .form-type-checkbox {
  137. margin-top: 0.375rem;
  138. }
  139. .form-checkbox,
  140. .form-radio {
  141. vertical-align: baseline;
  142. }
  143. /* Hide 'remove' checkboxes. */
  144. .views-remove-checkbox {
  145. display: none;
  146. }
  147. .form-textarea-wrapper,
  148. .form-item-options-content {
  149. width: 100%;
  150. }
  151. /* Indent form elements so they're directly underneath the label of the checkbox that reveals them */
  152. .form-type-checkbox + .form-wrapper {
  153. margin-inline-start: 1rem;
  154. }
  155. /* Sizes the labels of checkboxes and radio buttons to the height of the text. */
  156. .form-type-checkbox label,
  157. .form-type-radio label {
  158. line-height: 2;
  159. }
  160. .unit-title {
  161. margin-top: 1.125rem;
  162. margin-bottom: 0;
  163. font-size: 0.9375rem;
  164. line-height: 1.6154;
  165. }
  166. /* View list */
  167. .view-changed {
  168. margin-bottom: 1.3125rem;
  169. }
  170. /* Display edit form actions */
  171. .form-edit {
  172. .form-actions,
  173. .field-actions {
  174. margin-top: 0;
  175. padding: var(--space-s) var(--space-m);
  176. border-right: 1px solid var(--color-gray-200-o-80);
  177. border-bottom: 1px solid var(--color-gray-200-o-80);
  178. border-left: 1px solid var(--color-gray-200-o-80);
  179. background-color: var(--color-gray-050);
  180. }
  181. }
  182. .label--separator.label--separator {
  183. margin-inline: var(--space-xs);
  184. }
  185. /* Filter rearrange grouping */
  186. .group-populated {
  187. display: none;
  188. }
  189. td.group-title {
  190. font-weight: bold;
  191. }
  192. .group-message .form-submit,
  193. .views-remove-group-link,
  194. .views-add-group {
  195. float: inline-end;
  196. clear: both;
  197. }
  198. .views-operator-label {
  199. position: absolute;
  200. z-index: 1;
  201. bottom: -0.8125rem;
  202. padding: 0.5px 0.375rem;
  203. text-transform: uppercase;
  204. border: 1px solid var(--color-gray-200);
  205. background: #fff;
  206. font-weight: bold;
  207. font-style: italic;
  208. }
  209. .grouped-description,
  210. .exposed-description {
  211. float: inline-start;
  212. padding-block-start: 0.1875rem;
  213. padding-inline-end: 0.625rem;
  214. }
  215. /* Live preview */
  216. .preview-submit-wrapper {
  217. display: inline-block;
  218. }
  219. .form-item--live-preview {
  220. vertical-align: top;
  221. }
  222. /* Messages */
  223. .messages {
  224. margin-bottom: 1.125rem;
  225. line-height: 1.4555;
  226. }
  227. /* Dropbuttons (with JS enabled) */
  228. .js & .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber {
  229. position: absolute;
  230. z-index: 2;
  231. top: -1px;
  232. inset-inline-end: -0.3125rem;
  233. }
  234. pre {
  235. margin-block: 0;
  236. white-space: pre-wrap;
  237. }
  238. }
  239. /* @end */
  240. .views-admin-dependent .form-item {
  241. margin-block: 0.375rem;
  242. }
  243. /* @end */
  244. /* @group View list */
  245. .views-ui-view-name h3 {
  246. margin: 0.25em 0;
  247. font-weight: bold;
  248. }
  249. .views-ui-view-displays ul {
  250. margin-inline: 0;
  251. padding-inline: 0;
  252. list-style: none;
  253. }
  254. .views-list-section {
  255. margin-bottom: 2em;
  256. }
  257. /* These header classes are ambiguous and should be scoped to th elements */
  258. .views-ui-name {
  259. width: 20%;
  260. }
  261. .views-ui-description {
  262. width: 30%;
  263. }
  264. .views-ui-machine-name {
  265. width: 15%;
  266. }
  267. .views-ui-displays {
  268. width: 25%;
  269. }
  270. .views-ui-operations {
  271. width: 10%;
  272. }
  273. .form-item-description-enable + .form-item-description {
  274. margin-top: 0;
  275. }
  276. .form-item-description-enable label {
  277. font-weight: bold;
  278. }
  279. .form-item-page-create label,
  280. .form-item-block-create label,
  281. .form-item-rest-export-create label {
  282. font-weight: bold;
  283. }
  284. /* This makes the form elements after the "Display Format" label flow underneath the label */
  285. .form-item-page-style-style-plugin > label,
  286. .form-item-block-style-style-plugin > label {
  287. display: block;
  288. }
  289. .views-attachment .options-set label {
  290. font-weight: normal;
  291. }
  292. /* @end */
  293. /* @group Views display layout */
  294. .views-displays {
  295. padding-bottom: 2.25rem;
  296. border: 1px solid var(--gin-border-color);
  297. border-radius: var(--gin-border-l);
  298. }
  299. .views-display-top {
  300. position: relative;
  301. display: flex;
  302. flex-wrap: wrap;
  303. justify-content: space-between;
  304. padding-block: var(--gin-spacing-m) var(--gin-spacing-xs);
  305. padding-inline: var(--space-s);
  306. border: 0 none;
  307. border-radius: var(--gin-border-l);
  308. background-color: var(--gin-bg-header);
  309. .dropbutton-wrapper {
  310. inset-block-start: 1.25rem;
  311. inset-inline-end: var(--gin-spacing-l);
  312. }
  313. }
  314. .edit-display-settings {
  315. margin: var(--space-l) var(--space-l) 0 var(--space-l);
  316. }
  317. .edit-display-settings-top.views-ui-display-tab-bucket {
  318. position: relative;
  319. display: flex;
  320. flex-wrap: wrap;
  321. justify-content: space-between;
  322. margin: 0 0 var(--space-l);
  323. padding: 0;
  324. border-bottom: none;
  325. line-height: 1.25rem;
  326. .views-display-setting {
  327. padding: 0.125rem 0 0;
  328. }
  329. }
  330. .views-display-column {
  331. box-sizing: border-box;
  332. border: 1px solid var(--color-gray-200-o-80);
  333. border-radius: var(--base-border-radius);
  334. box-shadow: var(--details-box-shadow);
  335. & +
  336. }
  337. .views-display-deleted {
  338. & > details > summary,
  339. & .details-wrapper > .views-ui-display-tab-bucket > *,
  340. & .views-display-columns {
  341. opacity: 0.25;
  342. }
  343. }
  344. .views-display-disabled {
  345. & > details > summary,
  346. & .details-wrapper > .views-ui-display-tab-bucket > *,
  347. & .views-display-columns {
  348. opacity: 0.5;
  349. }
  350. }
  351. .views-display-tab .details-wrapper > .views-ui-display-tab-bucket .actions {
  352. opacity: 1;
  353. }
  354. .views-edit-view {
  355. margin-bottom: 0.9375rem;
  356. .unit-title {
  357. margin-block-start: 0;
  358. margin-block-end: var(--gin-spacing-m);
  359. /* Duplicated from h1/h2/h3 styles in _body.scss (was @extend h2). */
  360. letter-spacing: -0.025em;
  361. font-size: var(--gin-font-size-h2);
  362. font-weight: var(--gin-font-weight-normal);
  363. }
  364. &.disabled {
  365. .views-displays {
  366. background-color: transparent;
  367. }
  368. .views-display-column {
  369. opacity: 0.75;
  370. background: transparent;
  371. }
  372. }
  373. }
  374. /* @end */
  375. /* @group Attachment buckets */
  376. .views-ui-display-tab-bucket {
  377. position: relative;
  378. margin: 0;
  379. padding-block: 0 var(--space-xs);
  380. border-bottom: 1px solid var(--gin-border-color);
  381. line-height: 1.25rem;
  382. &:last-of-type {
  383. margin-bottom: 0;
  384. border-bottom: none;
  385. }
  386. & +
  387. &.access {
  388. padding-top: 0;
  389. }
  390. &.page-settings {
  391. border-bottom: medium none;
  392. }
  393. .links {
  394. padding: 2px 0.375rem 0.25rem;
  395. li + li {
  396. margin-inline-start: 0.1875rem;
  397. }
  398. }
  399. .views-ui-display-tab-bucket__title {
  400. margin: 0;
  401. padding: var(--gin-spacing-m);
  402. text-transform: none;
  403. color: var(--gin-color-title);
  404. font-size: var(--gin-font-size-xl);
  405. font-weight: var(--gin-font-weight-semibold);
  406. }
  407. .views-display-setting {
  408. display: flex;
  409. flex-wrap: wrap;
  410. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  411. color: var(--gin-color-text);
  412. font-size: var(--font-size-s);
  413. }
  414. .views-group-text {
  415. margin-block: 0.375rem;
  416. }
  417. .dropbutton-wrapper {
  418. inset-block-start: 0.875rem;
  419. inset-inline-end: var(--gin-spacing-m);
  420. }
  421. }
  422. /** Applies an overridden(italics) font style to overridden buckets.
  423. * The better way to implement this would be to add the overridden class
  424. * to the bucket header when the bucket is overridden and style it as a
  425. * generic icon classed element. For the moment, we'll style the bucket
  426. * header specifically with the overridden font style.
  427. */
  428. .views-ui-display-tab-setting.overridden,
  429. .views-ui-display-tab-bucket.overridden .views-ui-display-tab-bucket__title {
  430. font-style: italic;
  431. }
  432. .views-ui-display-tab-actions.views-ui-display-tab-bucket .views-display-setting {
  433. background-color: transparent;
  434. }
  435. .views-display-setting .label {
  436. margin-inline-end: var(--space-xs);
  437. white-space: nowrap;
  438. }
  439. /**
  440. * Position dropbuttons with flexbox instead after the dropbuttons have been
  441. * converted to splitbuttons.
  442. *
  443. * @see https://www.drupal.org/project/drupal/issues/3134107
  444. * @see https://www.drupal.org/project/drupal/issues/1899236
  445. */
  446. .edit-display-settings-top.views-ui-display-tab-bucket .dropbutton-wrapper {
  447. top: 0.8125rem;
  448. inset-inline-end: var(--space-s);
  449. }
  450. /* Styles on devices with touchevents. */
  451. html:not(.no-touchevents) {
  452. .views-ui-display-tab-bucket__header--actions {
  453. padding: var(--space-l) var(--space-xs);
  454. }
  455. .edit-display-settings-top.views-ui-display-tab-bucket {
  456. padding: var(--space-m) var(--space-xs);
  457. }
  458. }
  459. /* @end */
  460. /* @group Filter rearrange grouping */
  461. .views-ui-dialog td.group-title {
  462. height: 1px;
  463. margin: 0;
  464. padding: 0;
  465. span {
  466. display: block;
  467. overflow: hidden;
  468. height: 1px;
  469. }
  470. }
  471. /* @end */
  472. /* @group Filter form */
  473. .views-ui-rearrange-filter-form {
  474. table {
  475. border-collapse: collapse;
  476. }
  477. :is(th, td) {
  478. vertical-align: top;
  479. }
  480. tr {
  481. border-bottom: 0;
  482. &:first-of-type {
  483. border-top: 0.0625rem solid var(--color-gray-200);
  484. }
  485. &:not(.draggable):hover {
  486. background: inherit;
  487. }
  488. &[id^="views-row"] {
  489. border-inline-end: 1px solid #cdcdcd;
  490. }
  491. td:last-child {
  492. border-inline-end: medium none;
  493. }
  494. &.drag td {
  495. background-color: #fe7 !important;
  496. }
  497. &.drag-previous td {
  498. background-color: #ffb !important;
  499. }
  500. }
  501. td {
  502. & > .form-item {
  503. display: revert;
  504. }
  505. &[rowspan] {
  506. border: 1px solid var(--color-gray-200);
  507. }
  508. }
  509. [id^="views-row"] {
  510. border: medium none;
  511. }
  512. .draggable td {
  513. vertical-align: middle;
  514. border-bottom: 0.0625rem solid var(--color-gray-200);
  515. }
  516. .group-empty {
  517. border-bottom: 1px solid #cdcdcd;
  518. }
  519. .filter-group-operator-row {
  520. border-right: 1px solid transparent !important;
  521. border-left: 1px solid transparent !important;
  522. }
  523. .action-links {
  524. float: inline-start;
  525. margin: 0 0 1em;
  526. padding: 0;
  527. }
  528. .tabledrag-cell {
  529. position: relative;
  530. }
  531. }
  532. /* @end */
  533. /* @group Live preview */
  534. .view-preview-form {
  535. position: relative;
  536. .form-item--view-args,
  537. .form-actions,
  538. .field-actions {
  539. margin-top: 0.3125rem;
  540. }
  541. .form-actions,
  542. .field-actions {
  543. vertical-align: top;
  544. }
  545. .form-actions {
  546. align-items: flex-end;
  547. }
  548. .views-bulk-actions__item {
  549. margin-block-start: 0;
  550. }
  551. .arguments-preview {
  552. margin-inline-start: 0;
  553. font-size: 1em;
  554. }
  555. .form-item--view-args {
  556. margin-top: var(--space-m);
  557. }
  558. .arguments-preview,
  559. .form-item--view-args {
  560. margin-inline: var(--space-m);
  561. }
  562. .form-item--live-preview {
  563. position: static !important;
  564. top: 0.6875rem;
  565. inset-inline-end: var(--space-s);
  566. margin-block-start: var(--gin-spacing-l);
  567. margin-inline-start: 2px;
  568. }
  569. .preview-section {
  570. padding: var(--gin-spacing-m);
  571. border: 1px dashed var(--gin-border-color-layer2);
  572. }
  573. .view-filters .preview-section {
  574. display: flex;
  575. flex-wrap: wrap;
  576. }
  577. @media screen and (min-width: 45em) {
  578. /* 720px */
  579. .form-type-textfield .description {
  580. white-space: nowrap;
  581. }
  582. }
  583. }
  584. .views-preview-wrapper {
  585. border: 1px solid #ccc;
  586. }
  587. .view-preview-form__title {
  588. margin-top: 0;
  589. padding: 0;
  590. border-block-end: 0 none;
  591. background-color: transparent;
  592. }
  593. .views-live-preview {
  594. padding: 0;
  595. .views-query-info {
  596. overflow: auto;
  597. }
  598. .section-title {
  599. display: inline-block;
  600. margin-block: 0;
  601. color: var(--gin-color-text);
  602. font-size: 0.8125rem;
  603. font-weight: normal;
  604. line-height: 1.6154;
  605. }
  606. .view > * {
  607. margin-top: var(--space-m);
  608. }
  609. .preview-section {
  610. margin: 0 -0.3125rem;
  611. padding: 0.1875rem 0.3125rem;
  612. border: 1px dashed #dedede;
  613. }
  614. li.views-row + li.views-row {
  615. margin-top: 1.125rem;
  616. }
  617. /* The div.views-row is intentional and excludes li.views-row, for example */
  618. div.views-row + div.views-row {
  619. margin-top: 2.25rem;
  620. }
  621. .gin-layer-wrapper {
  622. border-color: var(--gin-border-color);
  623. }
  624. }
  625. .views-query-info {
  626. pre {
  627. margin-top: 0;
  628. margin-bottom: 0;
  629. }
  630. table {
  631. margin: 0.625rem 0;
  632. border-spacing: 1px;
  633. border-collapse: separate;
  634. border-color: var(--color-bg);
  635. border-radius: 0.4375rem;
  636. tr {
  637. background-color: var(--gin-bg-layer2);
  638. td {
  639. color: var(--gin-color-text);
  640. &:last-child {
  641. border: 0;
  642. }
  643. }
  644. }
  645. th,
  646. td {
  647. padding: var(--space-xs) var(--space-l);
  648. font-size: var(--font-size-s);
  649. }
  650. }
  651. }
  652. /* @end */
  653. /* @group Modal dialog box */
  654. .views-filterable-options {
  655. .form-type-checkbox {
  656. padding: 0.3125rem 0.5rem;
  657. border-top: none;
  658. .description {
  659. margin-top: 0;
  660. margin-bottom: 0;
  661. }
  662. }
  663. }
  664. .filterable-option .form-item {
  665. margin-top: 0;
  666. margin-bottom: 0;
  667. }
  668. .views-filterable-options-controls {
  669. .form-item {
  670. width: 30%;
  671. margin: 0;
  672. margin-inline-start: 2%;
  673. }
  674. input,
  675. select {
  676. width: 100%;
  677. }
  678. }
  679. .views-ui-dialog.views-ui-dialog > .ui-dialog-content {
  680. padding: 0;
  681. }
  682. .views-ui-dialog {
  683. /* Form layout */
  684. .form--flex {
  685. display: flex;
  686. overflow: hidden;
  687. flex-wrap: wrap;
  688. }
  689. .form--inline {
  690. padding-block-start: 0;
  691. }
  692. /* Form items */
  693. .form-item {
  694. margin-block: var(--space-m);
  695. }
  696. .form-item-selected {
  697. margin: 0;
  698. padding: 0.375rem 1rem;
  699. }
  700. .form-item:first-of-type.description {
  701. margin: 0 0 var(--space-l) 0;
  702. padding-bottom: var(--space-s);
  703. border-bottom: 0.0625rem solid var(--color-gray-200);
  704. font-weight: bold;
  705. }
  706. .form-item--fields-area-text-custom-removed {
  707. display: inline-block;
  708. margin-inline-end: var(--gin-spacing-xxs);
  709. }
  710. /* Form fields */
  711. .form-element {
  712. min-height: calc(((var(--input-padding-vertical--small) + var(--input-border-size)) * 2) + var(--input-line-height--small)); /* iOS. */
  713. padding: var(--input-padding-vertical--small) var(--input-padding-horizontal--small);
  714. font-size: var(--input-font-size--small);
  715. line-height: var(--input-line-height--small);
  716. }
  717. .form-element--type-select {
  718. padding-inline-end: calc(2rem - var(--input-border-size));
  719. background-position-y: 56%;
  720. }
  721. textarea {
  722. width: 100%;
  723. }
  724. /* Extra specificity to override dialog CSS. */
  725. .form-item__description[class] {
  726. max-width: none;
  727. }
  728. td .form-element {
  729. width: auto;
  730. }
  731. /* Booleans */
  732. .form-type--boolean {
  733. margin-inline: 0;
  734. .form-boolean {
  735. top: 0;
  736. float: none;
  737. margin: 0;
  738. margin-inline-end: 0.25rem;
  739. transform: none;
  740. }
  741. }
  742. .form-boolean-group .form-type--boolean {
  743. margin-top: 0.4em;
  744. margin-bottom: 0.4em;
  745. }
  746. /* So "remove" link appears next to the checkbox. */
  747. .draggable .form-type--checkbox {
  748. display: inline-block;
  749. margin: 0 0.25rem;
  750. }
  751. /* Buttons */
  752. input.form-submit,
  753. a.button {
  754. margin-block: 0;
  755. margin-inline-end: 0;
  756. }
  757. /* Add form selection list */
  758. .views-add-form-selected {
  759. padding: 0 1rem;
  760. > div {
  761. display: block;
  762. margin: 0;
  763. padding: 0.3rem 0.8rem;
  764. border: 1px solid #dedfe4;
  765. border-radius: 2px 2px 0 0;
  766. box-shadow: 0 4px 20px rgb(0, 0, 0, 0.1);
  767. }
  768. .views-selected-options {
  769. display: inline;
  770. }
  771. }
  772. /* Top offset banner */
  773. .views-offset-top:not(:empty) {
  774. position: relative;
  775. padding: var(--space-s) var(--space-m) var(--space-xs);
  776. background-color: var(--color-gray-050);
  777. &::after {
  778. position: absolute;
  779. bottom: 0;
  780. left: 0;
  781. width: 100%;
  782. height: 0.1875rem;
  783. content: "";
  784. background: linear-gradient(to bottom, rgb(80, 81, 86, 0.11) 0%, rgb(18, 19, 20, 0.02) 49%, rgb(18, 19, 20, 0) 100%);
  785. }
  786. }
  787. .views-offset-top {
  788. > * {
  789. margin: 0;
  790. }
  791. .form-item {
  792. max-width: 40%;
  793. margin: 0 var(--space-s) var(--space-s) 0;
  794. }
  795. }
  796. /* Misc */
  797. .tabledrag-toggle-weight-wrapper {
  798. margin: 0 0 var(--space-m) 0;
  799. }
  800. details .item-list {
  801. padding-inline-start: 2em;
  802. }
  803. .views-override:not(:empty) {
  804. border-block-end: 0 none;
  805. background-color: var(--gin-bg-app);
  806. }
  807. .views-filterable-options {
  808. margin-bottom: 0.625rem;
  809. }
  810. .scroll {
  811. overflow: auto;
  812. padding: 1em;
  813. }
  814. /* Don't let the messages overwhelm the modal */
  815. .views-messages {
  816. overflow: auto;
  817. max-height: 12.5rem;
  818. }
  819. }
  820. [id^="views-ui-add-handler-form"] .scroll {
  821. padding-block: 0;
  822. }
  823. .views-ui-dialog.views-ui-dialog-scroll .ui-dialog-titlebar {
  824. border: none;
  825. }
  826. /* @end */
  827. /* @group Messages */
  828. .views-messages .messages-list,
  829. .views-messages .messages-list__item {
  830. margin-block: 0;
  831. }
  832. /* @end */
  833. /* @group Forms */
  834. /**
  835. * Claro positions the summary absolutely, but does not have a way to ignore
  836. * details without a summary so we make one up.
  837. *
  838. * @todo Neither a fieldset without legend nor a details without summary is
  839. * valid HTML markup in any way. Refactor Views UI to not produce such invalid
  840. * markup.
  841. */
  842. details.fieldset-no-legend {
  843. padding-top: 0;
  844. }
  845. /* @group Dependent options */
  846. /* This is necessary to supercede the Claro .form-item
  847. * reset declaration that sets the margin to zero.
  848. */
  849. .form-item-options-expose-required,
  850. .form-item-options-expose-label,
  851. .form-item-options-expose-field-identifier,
  852. .form-item-options-expose-description {
  853. margin-block: 0.375rem;
  854. margin-inline-start: 1.5em;
  855. }
  856. .views-admin-dependent {
  857. .form-item .form-item,
  858. .form-type-checkboxes,
  859. .form-type-radios {
  860. margin-block: 0.375rem;
  861. }
  862. .form-type-radio,
  863. .form-radios .form-item {
  864. margin-block: 2px;
  865. }
  866. }
  867. .views-display-top__extra-actions-wrapper {
  868. margin: 0 var(--space-xs);
  869. }
  870. /* @group Attachment details */
  871. #edit-display-settings-title {
  872. color: var(--color-blue-400);
  873. }
  874. #edit-displays {
  875. .views-display-top {
  876. border-end-start-radius: 0;
  877. border-end-end-radius: 0;
  878. }
  879. }
  880. .edit-display-settings {
  881. margin: 0;
  882. padding: var(--gin-spacing-l);
  883. }
  884. /* @group Attachment details tabs
  885. *
  886. * The tabs that switch between sections
  887. *
  888. * @todo this group contains lots of duplicates from core styles because Claro
  889. * has its custom markup for views tabs. Some of these could be removed after
  890. * https://www.drupal.org/node/3051605 has been solved.
  891. */
  892. .views-tabs {
  893. display: flex;
  894. overflow: visible;
  895. flex-wrap: wrap;
  896. margin: 0;
  897. margin-inline-end: var(--space-l);
  898. padding: 0;
  899. list-style: none;
  900. text-align: end;
  901. border-bottom: 0 none;
  902. .views-display-deleted-link {
  903. -webkit-text-decoration: line-through;
  904. text-decoration: line-through;
  905. }
  906. li.add ul.action-list li {
  907. margin: 0;
  908. }
  909. li {
  910. margin-block: 0 0.3125rem;
  911. margin-inline: 0.375rem 0.3125rem;
  912. &,
  913. &.is-active {
  914. width: auto;
  915. padding: 0;
  916. border: 0;
  917. background: transparent;
  918. }
  919. &:hover {
  920. padding-inline-start: 0;
  921. border: 0;
  922. }
  923. & + li {
  924. border-top: 0;
  925. }
  926. }
  927. a {
  928. display: inline-block;
  929. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  930. border: var(--input-border-size) solid #cbcbcb;
  931. border-radius: 0.4375rem;
  932. font-size: small;
  933. line-height: 1.3333;
  934. &.views-display-disabled-link {
  935. padding-inline-start: var(--gin-spacing-l);
  936. &::before {
  937. display: inline-block;
  938. width: var(--gin-spacing-l);
  939. height: var(--gin-spacing-s);
  940. margin-inline-start: calc(var(--gin-spacing-m) * -1);
  941. content: "";
  942. background-color: currentColor;
  943. mask-image: var(--admin-icon-hide);
  944. mask-repeat: no-repeat;
  945. mask-position: center left;
  946. mask-size: contain;
  947. &:dir(rtl) {
  948. mask-position: center right;
  949. }
  950. }
  951. }
  952. }
  953. /* Display a red border if the display doesn't validate. */
  954. li.is-active a.is-active.error,
  955. .error {
  956. padding: 0.5rem;
  957. border: 2px solid #ed541d;
  958. }
  959. a:focus {
  960. outline: none;
  961. }
  962. li a {
  963. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  964. color: var(--gin-color-primary);
  965. border: 2px solid var(--gin-color-primary);
  966. border-radius: var(--gin-border-xs);
  967. background: transparent;
  968. font-size: var(--gin-font-size-xs);
  969. font-weight: var(--gin-font-weight-heavy);
  970. .icon.add {
  971. display: block;
  972. }
  973. }
  974. li a:hover,
  975. li.is-active a,
  976. li.is-active a.is-active {
  977. color: var(--gin-bg-app);
  978. border-color: transparent;
  979. background: var(--gin-color-primary);
  980. }
  981. .add {
  982. position: relative;
  983. a {
  984. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  985. color: var(--gin-color-primary);
  986. border: 2px solid var(--gin-color-primary);
  987. border-radius: var(--gin-border-xs);
  988. background: transparent;
  989. font-size: var(--gin-font-size-xs);
  990. font-weight: var(--gin-font-weight-heavy);
  991. &:hover,
  992. &:focus {
  993. color: var(--gin-bg-app);
  994. border-color: transparent;
  995. background: var(--gin-color-primary);
  996. }
  997. &:focus {
  998. outline: none;
  999. box-shadow:
  1000. 0 0 0 1px var(--gin-color-focus-border),
  1001. 0 0 0 4px var(--gin-color-focus);
  1002. }
  1003. }
  1004. &.open a {
  1005. color: var(--gin-color-primary);
  1006. background: var(--gin-bg-layer2);
  1007. &:hover,
  1008. &:focus,
  1009. &:active {
  1010. color: var(--gin-color-primary);
  1011. }
  1012. }
  1013. /* Hide core icon, added via JS that isn't accessible via theme function. */
  1014. .icon.add {
  1015. display: none;
  1016. }
  1017. }
  1018. .action-list {
  1019. position: absolute;
  1020. z-index: 50;
  1021. margin: 0;
  1022. background: var(--gin-bg-layer3);
  1023. box-shadow: 0 1px 2px var(--gin-shadow-button);
  1024. inset-block-start: 2.25rem;
  1025. inset-inline-start: -2px;
  1026. li {
  1027. /* @todo are these styles */
  1028. display: block;
  1029. border: none;
  1030. background-color: transparent;
  1031. input.button {
  1032. width: 100%;
  1033. text-align: start;
  1034. border: none !important;
  1035. box-shadow: none;
  1036. line-height: 1.2;
  1037. }
  1038. &:hover,
  1039. &:focus,
  1040. &:active {
  1041. &,
  1042. input.button {
  1043. color: var(--gin-color-button-text);
  1044. background: var(--gin-color-primary);
  1045. }
  1046. }
  1047. }
  1048. li:first-child {
  1049. border-width: 1px 1px 0;
  1050. border-radius: 0 var(--base-border-radius) 0 0; /* LTR */
  1051. &:dir(rtl) {
  1052. border-radius: 0 0 0 var(--base-border-radius);
  1053. }
  1054. }
  1055. }
  1056. }
  1057. .views-tabs .action-list li:last-child,
  1058. .views-displays .action-list li:last-child {
  1059. padding-bottom: 0.4rem;
  1060. border-width: 0 1px 1px;
  1061. border-bottom-right-radius: var(--gin-border-l);
  1062. border-bottom-left-radius: var(--gin-border-l);
  1063. }
  1064. .views-tabs__action-list-button {
  1065. width: 100%;
  1066. margin: 0;
  1067. padding: var(--space-s) var(--space-l);
  1068. text-align: left;
  1069. border: medium none;
  1070. border-radius: 0;
  1071. background: none repeat scroll 0 0 transparent;
  1072. font-weight: normal;
  1073. &.button:hover,
  1074. &.button:focus {
  1075. color: var(--color-white);
  1076. background-color: var(--color-absolutezero);
  1077. }
  1078. /* Remove outline provided by default styling */
  1079. &:not(:focus) {
  1080. box-shadow: none;
  1081. }
  1082. /* JS moves Views action buttons under a secondary tabs container, which causes
  1083. a large layout shift. We mitigate this by using animations to temporarily hide
  1084. the buttons, but they will appear after a set amount of time just in case the JS
  1085. is loaded but does not properly run. */
  1086. @media (scripting: enabled) {
  1087. &:not(.views-tabs--secondary *) {
  1088. animation-name: appear;
  1089. animation-duration: 0.1s;
  1090. /* Buttons will be hidden for the amount of time in the animation-delay if
  1091. not moved. Note this is the approximate time to download the views
  1092. aggregate CSS with slow 3G. */
  1093. animation-delay: 5s;
  1094. animation-iteration-count: 1;
  1095. animation-fill-mode: backwards;
  1096. }
  1097. }
  1098. }
  1099. @keyframes appear {
  1100. from {
  1101. display: none;
  1102. }
  1103. to {
  1104. display: unset;
  1105. }
  1106. }
  1107. /* #3186729: Drupal 9.1 fix */
  1108. .views-ui-display-tab-bucket__header {
  1109. display: inline-flex;
  1110. justify-content: space-between;
  1111. box-sizing: border-box;
  1112. width: 100%;
  1113. padding-block: var(--gin-spacing-m) var(--gin-spacing-xs);
  1114. padding-inline: 0;
  1115. .views-ui-display-tab-bucket__title {
  1116. padding: 0 var(--gin-spacing-m);
  1117. }
  1118. .views-ui-display-tab-bucket__actions {
  1119. margin-inline-start: var(--space-xs);
  1120. margin-inline-end: var(--gin-spacing-m);
  1121. }
  1122. }
  1123. .views-ui-display-tab-actions {
  1124. .views-ui-display-tab-setting {
  1125. padding: var(--gin-spacing-m);
  1126. }
  1127. }
  1128. /* @group Add view */
  1129. .form-item-page-create,
  1130. .form-item-block-create {
  1131. margin-top: 0.8125rem;
  1132. }
  1133. /* @group Modal dialog box
  1134. *
  1135. * The contents of the popup dialog on the views edit form.
  1136. */
  1137. .filterable-option .form-item.form-type-checkbox {
  1138. padding-top: 0.25rem;
  1139. /* This selector is aggressive because Claro's reset for .form-items is aggressive. */
  1140. padding-bottom: 0.25rem;
  1141. padding-inline-start: 0.25rem;
  1142. }
  1143. /* @group Grouping styles
  1144. *
  1145. * For grouping related form elements together, mainly used with exposed
  1146. * filters.
  1147. */
  1148. .views-config-group-region {
  1149. display: table;
  1150. margin: var(--space-l) 0;
  1151. border: 0.0625rem solid var(--color-gray-200);
  1152. border-collapse: collapse;
  1153. .views-group-box {
  1154. position: relative;
  1155. display: table-cell;
  1156. padding: var(--space-l);
  1157. border: 0.0625rem solid var(--color-gray-200);
  1158. }
  1159. .views-group-box--operator {
  1160. padding-inline-end: var(--space-xxl);
  1161. border-inline-end-width: 0;
  1162. }
  1163. .views-group-box--value {
  1164. padding: 0;
  1165. border-inline-start-width: 0;
  1166. > .form-item {
  1167. margin-inline: var(--space-xxl) var(--space-l);
  1168. &::before {
  1169. position: absolute;
  1170. top: 0;
  1171. left: 0;
  1172. width: 0.0625rem;
  1173. height: 100%;
  1174. content: "";
  1175. border-inline-start: 0.0625rem solid var(--color-gray-200);
  1176. }
  1177. &::after {
  1178. position: absolute;
  1179. z-index: 1;
  1180. top: 3.8rem;
  1181. inset-inline-start: calc(var(--space-m) * -1);
  1182. padding-block: 0 0.3rem;
  1183. padding-inline: 0.4rem 0.3rem;
  1184. content: ">";
  1185. color: var(--color-gray-600);
  1186. border: 0.0625rem solid var(--color-gray-200);
  1187. background: #fff;
  1188. font-size: var(--font-size-h1);
  1189. font-weight: bold;
  1190. line-height: var(--font-size-h1);
  1191. }
  1192. }
  1193. }
  1194. }
  1195. .views-display-column,
  1196. .edit-display-settings-top.views-ui-display-tab-bucket {
  1197. margin-block-end: var(--gin-spacing-m);
  1198. border-color: var(--gin-border-color);
  1199. border-radius: var(--gin-border-m);
  1200. box-shadow: none;
  1201. }
  1202. a.views-field-excluded {
  1203. color: var(--gin-color-disabled);
  1204. }
  1205. .views-filterable-options {
  1206. border-block-start: none;
  1207. }
  1208. .view-block-content .views-table {
  1209. margin-block-start: 0;
  1210. }
  1211. .views-display-columns {
  1212. display: grid;
  1213. gap: var(--space-xl);
  1214. .details-wrapper {
  1215. margin: 0;
  1216. }
  1217. @media screen and (min-width: 60rem) {
  1218. display: grid;
  1219. grid-template-columns: 1fr 1fr 1fr;
  1220. }
  1221. }
  1222. /* @todo. This was in Gin's Views file. Might could move it. */
  1223. .system-modules,
  1224. .locale-translation-status-form {
  1225. tr.even,
  1226. tr.odd {
  1227. border-block-start: 1px solid var(--gin-border-color);
  1228. border-block-end: none;
  1229. background: none;
  1230. }
  1231. }
  1232. .system-modules td {
  1233. height: auto;
  1234. padding: var(--gin-spacing-m);
  1235. details summary {
  1236. background-color: transparent;
  1237. }
  1238. }
  1239. .machine-name-label {
  1240. color: var(--gin-color-text);
  1241. }
  1242. .machine-name-value {
  1243. color: var(--gin-color-title);
  1244. }
  1245. .view-header {
  1246. margin-block-end: var(--gin-spacing-l);
  1247. }
  1248. .form-item--options-value-all {
  1249. display: none;
  1250. }
  1251. .js-only {
  1252. display: none;
  1253. }
  1254. html.js {
  1255. .js-only {
  1256. display: inherit;
  1257. }
  1258. span.js-only {
  1259. display: inline;
  1260. }
  1261. }

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