views-ui.css

Same filename in other branches
  1. 9 core/themes/seven/css/components/views-ui.css
  2. 9 core/themes/claro/css/components/views-ui.css
  3. 8.9.x core/themes/seven/css/components/views-ui.css
  4. 8.9.x core/themes/claro/css/components/views-ui.css
  5. 11.x core/themes/claro/css/components/views-ui.css
/*
 * DO NOT EDIT THIS FILE.
 * See the following change record for more information,
 * https://www.drupal.org/node/3084859
 * @preserve
 */

/**
 * Views styling
 */

/* @group Forms */

/**
 * Claro positions the summary absolutely, but does not have a way to ignore
 * details without a summary so we make one up.
 *
 * @todo Neither a fieldset without legend nor a details without summary is
 *   valid HTML markup in any way. Refactor Views UI to not produce such invalid
 *   markup.
 */

details.fieldset-no-legend {
  padding-top: 0;
}

/**
 * Being extra safe here and scoping this to the add view wizard form (where
 * a layout problem occurs for the Display format details if we don't fix its
 * padding), but it's probably safe to just let it apply everywhere.
 */

.views-ui-dialog input.form-submit,
.views-admin a.button,
.views-ui-dialog a.button {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
}

[dir="rtl"] .views-ui-dialog input.form-submit,
[dir="rtl"] .views-admin a.button,
[dir="rtl"] .views-ui-dialog a.button {
  margin-right: 1em;
  margin-left: 0;
}

[dir="rtl"] .views-ui-dialog input.form-submit:first-child,
[dir="rtl"] .views-admin a.button:first-child,
[dir="rtl"] .views-ui-dialog a.button:first-child {
  margin-right: 0;
}

.views-ui-dialog .form--flex {
  display: flex;
  overflow: hidden;
  flex-wrap: wrap;
}

.views-ui-dialog .form-item {
  margin-top: var(--space-m);
  margin-bottom: var(--space-m);
}

.views-ui-dialog .form-type--boolean {
  margin-right: 0;
  margin-left: 0;
}

.views-ui-dialog .form-type--boolean .form-boolean {
  top: 0;
  float: none;
  margin: 0 0.25rem 0 0; /* LTR */
  transform: none;
}

[dir="rtl"] .views-ui-dialog .form-type--boolean .form-boolean {
  margin-right: 0;
  margin-left: 0.25rem;
}

.views-ui-dialog .form-boolean-group .form-type--boolean {
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}

.views-ui-dialog .form-item:first-of-type.description {
  margin: 0 0 var(--space-l) 0;
  padding-bottom: var(--space-s);
  border-bottom: 0.0625rem solid var(--color-gray-200);
  font-weight: bold;
}

/* So "remove" link appears next to the checkbox. */

.views-ui-dialog .draggable .form-type--checkbox {
  display: inline-block;
  margin: 0 0.25rem;
}

.views-ui-dialog .form-element {
  min-height: calc(((var(--input-padding-vertical--small) + var(--input-border-size)) * 2) + var(--input-line-height--small)); /* iOS. */
  padding: var(--input-padding-vertical--small) var(--input-padding-horizontal--small);
  font-size: var(--input-font-size--small);
  line-height: var(--input-line-height--small);
}

.views-ui-dialog .form-element--type-select {
  padding-inline-end: calc(2rem - var(--input-border-size));
  background-position-y: 56%;
}

.views-ui-dialog td .form-element {
  width: auto;
}

/* @group Dependent options */

/* This is necessary to supercede the Claro .form-item
 * reset declaration that sets the margin to zero.
 */

.form-item-options-expose-required,
.form-item-options-expose-label,
.form-item-options-expose-field-identifier,
.form-item-options-expose-description {
  margin-left: 1.5em; /* LTR */
}

[dir="rtl"] .form-item-options-expose-required,
[dir="rtl"] .form-item-options-expose-label,
[dir="rtl"] .form-item-options-expose-field-identifier,
[dir="rtl"] .form-item-options-expose-description {
  margin-right: 1.5em;
  margin-left: 0;
}

.views-admin-dependent .form-item .form-item,
.views-admin-dependent .form-type-checkboxes,
.views-admin-dependent .form-type-radios,
.views-admin-dependent .form-item .form-item,
.form-item-options-expose-required,
.form-item-options-expose-label,
.form-item-options-expose-field-identifier,
.form-item-options-expose-description {
  margin-top: 0.375rem;
  margin-bottom: 0.375rem;
}

.views-admin-dependent .form-type-radio,
.views-admin-dependent .form-radios .form-item {
  margin-top: 2px;
  margin-bottom: 2px;
}

/* @end */

/* @group Lists */

.views-admin .item-list ul {
  margin: 0;
  padding: 0;
}

.views-admin .links li {
  padding-right: 0; /* LTR */
}

[dir="rtl"] .views-admin .links li {
  padding-left: 0;
}

.views-admin .button .links li {
  padding-right: 0.75rem; /* LTR */
}

[dir="rtl"] .views-admin .button .links li {
  padding-left: 0.75rem;
}

.views-display-top__extra-actions-wrapper {
  margin: calc(var(--space-xs) / 2) var(--space-xs) var(--space-xs);
}

/* @end */

/* @group Tables */

.views-ui-rearrange-filter-form td,
.views-ui-rearrange-filter-form th {
  vertical-align: top;
}

/* @end */

/* @group Attachment details */

#edit-display-settings-title {
  color: var(--color-blue-400);
}

/* @end */

/* @group Attachment details tabs
 *
 * The tabs that switch between sections
 *
 * @todo this group contains lots of duplicates from core styles because Claro
 *   has its custom markup for views tabs. Some of these could be removed after
 *   https://www.drupal.org/node/3051605 has been solved.
 */

.views-tabs {
  display: flex;
  overflow: visible;
  flex-wrap: wrap;
  margin: 0 var(--space-l) 0 0; /* LTR */
  padding: 0;
  list-style: none;
  text-align: left; /* LTR */
  border-bottom: 0 none;
}

[dir="rtl"] .views-tabs {
  margin-right: 0;
  margin-left: var(--space-l);
  text-align: right;
}

.views-tabs .views-display-deleted-link {
  -webkit-text-decoration: line-through;
  text-decoration: line-through;
}

.views-tabs li,
.views-tabs li.is-active {
  width: auto;
  padding: 0;
  border: 0;
  background: transparent;
}

.views-tabs li.add ul.action-list li {
  margin: 0;
}

.views-tabs li {
  margin: 0 0.3125rem 0.3125rem 0.375rem; /* LTR */
}

[dir="rtl"] .views-tabs li {
  margin-right: 0.375rem;
  margin-left: 0.3125rem;
}

.views-tabs li + li {
  border-top: 0;
}

.views-tabs li:hover {
  padding-left: 0; /* LTR */
  border: 0;
}

[dir="rtl"] .views-tabs li:hover {
  padding-right: 0;
}

.views-tabs a {
  display: inline-block;
  padding: 0.625rem;
  border: var(--input-border-size) solid #cbcbcb;
  border-radius: 0.4375rem;
  font-size: small;
  line-height: 1.3333;
}

/* Display a red border if the display doesn't validate. */

.views-tabs li.is-active a.is-active.error,
.views-tabs .error {
  padding: 0.5rem;
  border: 2px solid #ed541d;
}

.views-tabs a:focus {
  outline: none;
}

.views-tabs li a {
  -webkit-text-decoration: none;
  text-decoration: none;
  background-color: #fff;
}

.views-tabs li a:hover,
.views-tabs li.is-active a,
.views-tabs li.is-active a.is-active {
  color: #fff;
  background-color: #555;
}

.views-tabs .add {
  position: relative;
}

.views-tabs .add a {
  padding: 0.5625rem 0.8125rem 0.5625rem 0.5625rem;
  color: var(--color-gray-800);
  border: none;
  border-radius: var(--base-border-radius);
  background-color: transparent;
  font-size: var(--font-size-base);
  font-weight: 700;
}

.views-tabs .add a::before {
  display: inline-block;
  width: 1em;
  height: calc(1em - (var(--input-border-size) * 2));
  content: "";
  /* Copy of icon from .action-link--icon-plus */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%23545560'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
}

.views-tabs .add a:hover {
  color: var(--color-absolutezero-hover);
  background-color: var(--color-bgblue-hover);
}

.views-tabs .add a:hover::before {
  /* Copy of icon from .action-link--icon-plus:hover */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%230036b1'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
}

.views-tabs .add a:focus {
  background-color: var(--color-bgblue-active);
  box-shadow: 0 0 0 3px #26a769;
}

.views-tabs .add.open a {
  color: var(--color-white);
  background-color: var(--color-absolutezero);
}

.views-tabs .add.open a::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%23FFFFFF'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
}

/* Hide core icon, added via JS that isn't accessible via theme function. */

.views-tabs .add .icon.add {
  display: none;
}

.views-tabs .action-list {
  position: absolute;
  z-index: 50;
  top: 2.375rem;
  left: -2px; /* LTR */
  margin: 0;
  box-shadow: var(--details-box-shadow);
}

[dir="rtl"] .views-tabs .action-list {
  right: 0;
  left: auto;
}

.views-tabs .action-list li {
  display: block;
}

.views-tabs .action-list li {
  border-width: 0 1px;
  border-style: solid;
  border-color: #cbcbcb;
  background-color: #fff;
}

.views-tabs .action-list li:first-child {
  border-width: 1px 1px 0;
  border-radius: 0 var(--base-border-radius) 0 0; /* LTR */
}

[dir="rtl"] .views-tabs .action-list li:first-child {
  border-radius: 0 0 0 var(--base-border-radius);
}

.views-tabs .action-list li:last-child,
.views-displays .action-list li:last-child {
  padding-bottom: 0.4rem;
  border-width: 0 1px 1px;
  border-bottom-right-radius: var(--button-border-radius-size);
  border-bottom-left-radius: var(--button-border-radius-size);
}

.views-tabs__action-list-button {
  width: 100%;
  margin: 0;
  padding: var(--space-s) var(--space-l);
  text-align: left;
  border: medium none;
  border-radius: 0;
  background: none repeat scroll 0 0 transparent;
  font-weight: normal;
}

/* JS moves Views action buttons under a secondary tabs container, which causes
a large layout shift. We mitigate this by using animations to temporarily hide
the buttons, but they will appear after a set amount of time just in case the JS
is loaded but does not properly run. */

@media (scripting: enabled) {
  .views-tabs__action-list-button:not(.views-tabs--secondary *) {
    animation-name: appear;
    animation-duration: 0.1s;
    /* Buttons will be hidden for the amount of time in the animation-delay if
    not moved. Note this is the approximate time to download the views
    aggregate CSS with slow 3G. */
    animation-delay: 5s;
    animation-iteration-count: 1;
    animation-fill-mode: backwards;
  }
}

@keyframes appear {
  from {
    display: none;
  }

  to {
    display: unset;
  }
}

/* RTL required for precedence over core's styles. */

[dir="rtl"] .views-tabs__action-list-button {
  margin: 0;
}

.views-tabs__action-list-button.button:hover,
.views-tabs__action-list-button.button:focus {
  color: var(--color-white);
  background-color: var(--color-absolutezero);
}

/* Remove outline provided by default styling */

.views-tabs__action-list-button:not(:focus) {
  box-shadow: none;
}

/* @end */

/* @group Attachment buckets
 *
 * These are the individual "buckets," or boxes, inside the display settings area
 */

.views-ui-display-tab-bucket .links {
  padding: 2px 0.375rem 0.25rem;
}

.views-ui-display-tab-bucket .links li + li {
  margin-left: 0.1875rem; /* LTR */
}

[dir="rtl"] .views-ui-display-tab-bucket .links li + li {
  margin-right: 0.1875rem;
  margin-left: 0;
}

/* @end */

/* @group Rearrange filter criteria */

.views-ui-rearrange-filter-form tr {
  border-bottom: 0;
}

.views-ui-rearrange-filter-form tr:first-of-type {
  border-top: 0.0625rem solid var(--color-gray-200);
}

.views-ui-rearrange-filter-form tr:not(.draggable):hover {
  background: inherit;
}

.views-ui-rearrange-filter-form .action-links {
  float: left;
  margin: 0 0 1em;
  padding: 0;
}

.views-ui-rearrange-filter-form .tabledrag-toggle-weight-wrapper {
  float: right;
}

.views-ui-rearrange-filter-form .tabledrag-cell {
  position: relative;
}

.views-ui-rearrange-filter-form [id^="views-row"] {
  border: medium none;
}

.views-ui-rearrange-filter-form tr td:last-child {
  border-right: medium none; /* LTR */
}

[dir="rtl"] .views-ui-rearrange-filter-form tr td:last-child {
  border-right: initial;
  border-left: medium none;
}

.views-ui-rearrange-filter-form .filter-group-operator-row {
  border-right: 1px solid transparent !important;
  border-left: 1px solid transparent !important;
}

.views-ui-rearrange-filter-form tr.drag td {
  background-color: #fe7 !important;
}

.views-ui-rearrange-filter-form tr.drag-previous td {
  background-color: #ffb !important;
}

.views-ui-rearrange-filter-form .draggable td {
  vertical-align: middle;
}

/* @end */

/* @group Live preview elements */

.views-query-info pre {
  margin-top: 0;
  margin-bottom: 0;
}

/* @group Query info table */

.views-query-info table {
  border-spacing: 1px;
  border-radius: 0.4375rem;
}

.views-query-info table tr td:last-child {
  /* Fixes a Claro style that bleeds down into this table unnecessarily */
  border-right: 0 none; /* LTR */
}

[dir="rtl"] .views-query-info table tr td:last-child {
  border-right: initial;
  border-left: 0 none;
}

/* @end */

/* @end */

/* @group Add view */

.form-item-page-create,
.form-item-block-create {
  margin-top: 0.8125rem;
}

/* @end */

/* @group Modal dialog box
 *
 * The contents of the popup dialog on the views edit form.
 */

.filterable-option .form-item.form-type-checkbox {
  padding-top: 0.25rem;
  /* This selector is aggressive because Claro's reset for .form-items is aggressive. */
  padding-bottom: 0.25rem;
  padding-left: 0.25rem; /* LTR */
}

[dir="rtl"] .filterable-option .form-item.form-type-checkbox {
  padding-right: 0.25rem;
  padding-left: 0.5rem;
}

/* @end */

/* @group Grouping styles
 *
 * For grouping related form elements together, mainly used with exposed
 * filters.
 */

.views-config-group-region {
  display: table;
  margin: var(--space-l) 0;
  border: 0.0625rem solid var(--color-gray-200);
  border-collapse: collapse;
}

.views-config-group-region .views-group-box {
  position: relative;
  display: table-cell;
  padding: var(--space-l);
  border: 0.0625rem solid var(--color-gray-200);
}

.views-config-group-region .views-group-box--operator {
  padding-right: var(--space-xl);
  border-right-width: 0;
}

[dir="rtl"] .views-config-group-region .views-group-box--operator {
  padding-right: var(--space-l);
  padding-left: var(--space-xl);
  border-right-width: 0.0625rem;
  border-left-width: 0;
}

.views-config-group-region .views-group-box--value {
  padding: 0;
  border-left-width: 0; /* LTR */
}

[dir="rtl"] .views-config-group-region .views-group-box--value {
  border-right-width: 0;
  border-left-width: 0.0625rem;
}

.views-config-group-region .views-group-box--value > .form-item {
  margin-right: var(--space-l); /* LTR */
  margin-left: var(--space-xl); /* LTR */
}

[dir="rtl"] .views-config-group-region .views-group-box--value > .form-item {
  margin-right: var(--space-xl); /* LTR */
  margin-left: var(--space-l); /* LTR */
}

.views-config-group-region .views-group-box--value > .form-item::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 0.0625rem;
  height: 100%;
  content: "";
  border-left: 0.0625rem solid var(--color-gray-200);
}

[dir="rtl"] .views-config-group-region .views-group-box--value > .form-item::before {
  right: 0;
}

.views-config-group-region .views-group-box--value > .form-item::after {
  position: absolute;
  z-index: 1;
  top: 3.8rem;
  left: calc(var(--space-m) * -1); /* LTR */
  padding: 0 0.3rem 0.3rem 0.4rem; /* LTR */
  content: ">";
  color: var(--color-gray-600);
  border: 0.0625rem solid var(--color-gray-200);
  background: #fff;
  font-size: var(--font-size-h1);
  font-weight: bold;
  line-height: var(--font-size-h1);
}

[dir="rtl"] .views-config-group-region .views-group-box--value > .form-item::after {
  right: calc(var(--space-m) * -1);
  left: auto;
  padding-right: 0.4rem;
  padding-left: 0.3rem;
}

File

core/themes/claro/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. * Views styling
  9. */
  10. /* @group Forms */
  11. /**
  12. * Claro positions the summary absolutely, but does not have a way to ignore
  13. * details without a summary so we make one up.
  14. *
  15. * @todo Neither a fieldset without legend nor a details without summary is
  16. * valid HTML markup in any way. Refactor Views UI to not produce such invalid
  17. * markup.
  18. */
  19. details.fieldset-no-legend {
  20. padding-top: 0;
  21. }
  22. /**
  23. * Being extra safe here and scoping this to the add view wizard form (where
  24. * a layout problem occurs for the Display format details if we don't fix its
  25. * padding), but it's probably safe to just let it apply everywhere.
  26. */
  27. .views-ui-dialog input.form-submit,
  28. .views-admin a.button,
  29. .views-ui-dialog a.button {
  30. margin-top: 0;
  31. margin-right: 0;
  32. margin-bottom: 0;
  33. }
  34. [dir="rtl"] .views-ui-dialog input.form-submit,
  35. [dir="rtl"] .views-admin a.button,
  36. [dir="rtl"] .views-ui-dialog a.button {
  37. margin-right: 1em;
  38. margin-left: 0;
  39. }
  40. [dir="rtl"] .views-ui-dialog input.form-submit:first-child,
  41. [dir="rtl"] .views-admin a.button:first-child,
  42. [dir="rtl"] .views-ui-dialog a.button:first-child {
  43. margin-right: 0;
  44. }
  45. .views-ui-dialog .form--flex {
  46. display: flex;
  47. overflow: hidden;
  48. flex-wrap: wrap;
  49. }
  50. .views-ui-dialog .form-item {
  51. margin-top: var(--space-m);
  52. margin-bottom: var(--space-m);
  53. }
  54. .views-ui-dialog .form-type--boolean {
  55. margin-right: 0;
  56. margin-left: 0;
  57. }
  58. .views-ui-dialog .form-type--boolean .form-boolean {
  59. top: 0;
  60. float: none;
  61. margin: 0 0.25rem 0 0; /* LTR */
  62. transform: none;
  63. }
  64. [dir="rtl"] .views-ui-dialog .form-type--boolean .form-boolean {
  65. margin-right: 0;
  66. margin-left: 0.25rem;
  67. }
  68. .views-ui-dialog .form-boolean-group .form-type--boolean {
  69. margin-top: 0.4em;
  70. margin-bottom: 0.4em;
  71. }
  72. .views-ui-dialog .form-item:first-of-type.description {
  73. margin: 0 0 var(--space-l) 0;
  74. padding-bottom: var(--space-s);
  75. border-bottom: 0.0625rem solid var(--color-gray-200);
  76. font-weight: bold;
  77. }
  78. /* So "remove" link appears next to the checkbox. */
  79. .views-ui-dialog .draggable .form-type--checkbox {
  80. display: inline-block;
  81. margin: 0 0.25rem;
  82. }
  83. .views-ui-dialog .form-element {
  84. min-height: calc(((var(--input-padding-vertical--small) + var(--input-border-size)) * 2) + var(--input-line-height--small)); /* iOS. */
  85. padding: var(--input-padding-vertical--small) var(--input-padding-horizontal--small);
  86. font-size: var(--input-font-size--small);
  87. line-height: var(--input-line-height--small);
  88. }
  89. .views-ui-dialog .form-element--type-select {
  90. padding-inline-end: calc(2rem - var(--input-border-size));
  91. background-position-y: 56%;
  92. }
  93. .views-ui-dialog td .form-element {
  94. width: auto;
  95. }
  96. /* @group Dependent options */
  97. /* This is necessary to supercede the Claro .form-item
  98. * reset declaration that sets the margin to zero.
  99. */
  100. .form-item-options-expose-required,
  101. .form-item-options-expose-label,
  102. .form-item-options-expose-field-identifier,
  103. .form-item-options-expose-description {
  104. margin-left: 1.5em; /* LTR */
  105. }
  106. [dir="rtl"] .form-item-options-expose-required,
  107. [dir="rtl"] .form-item-options-expose-label,
  108. [dir="rtl"] .form-item-options-expose-field-identifier,
  109. [dir="rtl"] .form-item-options-expose-description {
  110. margin-right: 1.5em;
  111. margin-left: 0;
  112. }
  113. .views-admin-dependent .form-item .form-item,
  114. .views-admin-dependent .form-type-checkboxes,
  115. .views-admin-dependent .form-type-radios,
  116. .views-admin-dependent .form-item .form-item,
  117. .form-item-options-expose-required,
  118. .form-item-options-expose-label,
  119. .form-item-options-expose-field-identifier,
  120. .form-item-options-expose-description {
  121. margin-top: 0.375rem;
  122. margin-bottom: 0.375rem;
  123. }
  124. .views-admin-dependent .form-type-radio,
  125. .views-admin-dependent .form-radios .form-item {
  126. margin-top: 2px;
  127. margin-bottom: 2px;
  128. }
  129. /* @end */
  130. /* @group Lists */
  131. .views-admin .item-list ul {
  132. margin: 0;
  133. padding: 0;
  134. }
  135. .views-admin .links li {
  136. padding-right: 0; /* LTR */
  137. }
  138. [dir="rtl"] .views-admin .links li {
  139. padding-left: 0;
  140. }
  141. .views-admin .button .links li {
  142. padding-right: 0.75rem; /* LTR */
  143. }
  144. [dir="rtl"] .views-admin .button .links li {
  145. padding-left: 0.75rem;
  146. }
  147. .views-display-top__extra-actions-wrapper {
  148. margin: calc(var(--space-xs) / 2) var(--space-xs) var(--space-xs);
  149. }
  150. /* @end */
  151. /* @group Tables */
  152. .views-ui-rearrange-filter-form td,
  153. .views-ui-rearrange-filter-form th {
  154. vertical-align: top;
  155. }
  156. /* @end */
  157. /* @group Attachment details */
  158. #edit-display-settings-title {
  159. color: var(--color-blue-400);
  160. }
  161. /* @end */
  162. /* @group Attachment details tabs
  163. *
  164. * The tabs that switch between sections
  165. *
  166. * @todo this group contains lots of duplicates from core styles because Claro
  167. * has its custom markup for views tabs. Some of these could be removed after
  168. * https://www.drupal.org/node/3051605 has been solved.
  169. */
  170. .views-tabs {
  171. display: flex;
  172. overflow: visible;
  173. flex-wrap: wrap;
  174. margin: 0 var(--space-l) 0 0; /* LTR */
  175. padding: 0;
  176. list-style: none;
  177. text-align: left; /* LTR */
  178. border-bottom: 0 none;
  179. }
  180. [dir="rtl"] .views-tabs {
  181. margin-right: 0;
  182. margin-left: var(--space-l);
  183. text-align: right;
  184. }
  185. .views-tabs .views-display-deleted-link {
  186. -webkit-text-decoration: line-through;
  187. text-decoration: line-through;
  188. }
  189. .views-tabs li,
  190. .views-tabs li.is-active {
  191. width: auto;
  192. padding: 0;
  193. border: 0;
  194. background: transparent;
  195. }
  196. .views-tabs li.add ul.action-list li {
  197. margin: 0;
  198. }
  199. .views-tabs li {
  200. margin: 0 0.3125rem 0.3125rem 0.375rem; /* LTR */
  201. }
  202. [dir="rtl"] .views-tabs li {
  203. margin-right: 0.375rem;
  204. margin-left: 0.3125rem;
  205. }
  206. .views-tabs li + li {
  207. border-top: 0;
  208. }
  209. .views-tabs li:hover {
  210. padding-left: 0; /* LTR */
  211. border: 0;
  212. }
  213. [dir="rtl"] .views-tabs li:hover {
  214. padding-right: 0;
  215. }
  216. .views-tabs a {
  217. display: inline-block;
  218. padding: 0.625rem;
  219. border: var(--input-border-size) solid #cbcbcb;
  220. border-radius: 0.4375rem;
  221. font-size: small;
  222. line-height: 1.3333;
  223. }
  224. /* Display a red border if the display doesn't validate. */
  225. .views-tabs li.is-active a.is-active.error,
  226. .views-tabs .error {
  227. padding: 0.5rem;
  228. border: 2px solid #ed541d;
  229. }
  230. .views-tabs a:focus {
  231. outline: none;
  232. }
  233. .views-tabs li a {
  234. -webkit-text-decoration: none;
  235. text-decoration: none;
  236. background-color: #fff;
  237. }
  238. .views-tabs li a:hover,
  239. .views-tabs li.is-active a,
  240. .views-tabs li.is-active a.is-active {
  241. color: #fff;
  242. background-color: #555;
  243. }
  244. .views-tabs .add {
  245. position: relative;
  246. }
  247. .views-tabs .add a {
  248. padding: 0.5625rem 0.8125rem 0.5625rem 0.5625rem;
  249. color: var(--color-gray-800);
  250. border: none;
  251. border-radius: var(--base-border-radius);
  252. background-color: transparent;
  253. font-size: var(--font-size-base);
  254. font-weight: 700;
  255. }
  256. .views-tabs .add a::before {
  257. display: inline-block;
  258. width: 1em;
  259. height: calc(1em - (var(--input-border-size) * 2));
  260. content: "";
  261. /* Copy of icon from .action-link--icon-plus */
  262. background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%23545560'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
  263. }
  264. .views-tabs .add a:hover {
  265. color: var(--color-absolutezero-hover);
  266. background-color: var(--color-bgblue-hover);
  267. }
  268. .views-tabs .add a:hover::before {
  269. /* Copy of icon from .action-link--icon-plus:hover */
  270. background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%230036b1'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
  271. }
  272. .views-tabs .add a:focus {
  273. background-color: var(--color-bgblue-active);
  274. box-shadow: 0 0 0 3px #26a769;
  275. }
  276. .views-tabs .add.open a {
  277. color: var(--color-white);
  278. background-color: var(--color-absolutezero);
  279. }
  280. .views-tabs .add.open a::before {
  281. background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' stroke-width='2' stroke='%23FFFFFF'%3E%3Cpath d='m3 8h10'/%3E%3Cpath d='m8 3v10'/%3E%3C/svg%3E");
  282. }
  283. /* Hide core icon, added via JS that isn't accessible via theme function. */
  284. .views-tabs .add .icon.add {
  285. display: none;
  286. }
  287. .views-tabs .action-list {
  288. position: absolute;
  289. z-index: 50;
  290. top: 2.375rem;
  291. left: -2px; /* LTR */
  292. margin: 0;
  293. box-shadow: var(--details-box-shadow);
  294. }
  295. [dir="rtl"] .views-tabs .action-list {
  296. right: 0;
  297. left: auto;
  298. }
  299. .views-tabs .action-list li {
  300. display: block;
  301. }
  302. .views-tabs .action-list li {
  303. border-width: 0 1px;
  304. border-style: solid;
  305. border-color: #cbcbcb;
  306. background-color: #fff;
  307. }
  308. .views-tabs .action-list li:first-child {
  309. border-width: 1px 1px 0;
  310. border-radius: 0 var(--base-border-radius) 0 0; /* LTR */
  311. }
  312. [dir="rtl"] .views-tabs .action-list li:first-child {
  313. border-radius: 0 0 0 var(--base-border-radius);
  314. }
  315. .views-tabs .action-list li:last-child,
  316. .views-displays .action-list li:last-child {
  317. padding-bottom: 0.4rem;
  318. border-width: 0 1px 1px;
  319. border-bottom-right-radius: var(--button-border-radius-size);
  320. border-bottom-left-radius: var(--button-border-radius-size);
  321. }
  322. .views-tabs__action-list-button {
  323. width: 100%;
  324. margin: 0;
  325. padding: var(--space-s) var(--space-l);
  326. text-align: left;
  327. border: medium none;
  328. border-radius: 0;
  329. background: none repeat scroll 0 0 transparent;
  330. font-weight: normal;
  331. }
  332. /* JS moves Views action buttons under a secondary tabs container, which causes
  333. a large layout shift. We mitigate this by using animations to temporarily hide
  334. the buttons, but they will appear after a set amount of time just in case the JS
  335. is loaded but does not properly run. */
  336. @media (scripting: enabled) {
  337. .views-tabs__action-list-button:not(.views-tabs--secondary *) {
  338. animation-name: appear;
  339. animation-duration: 0.1s;
  340. /* Buttons will be hidden for the amount of time in the animation-delay if
  341. not moved. Note this is the approximate time to download the views
  342. aggregate CSS with slow 3G. */
  343. animation-delay: 5s;
  344. animation-iteration-count: 1;
  345. animation-fill-mode: backwards;
  346. }
  347. }
  348. @keyframes appear {
  349. from {
  350. display: none;
  351. }
  352. to {
  353. display: unset;
  354. }
  355. }
  356. /* RTL required for precedence over core's styles. */
  357. [dir="rtl"] .views-tabs__action-list-button {
  358. margin: 0;
  359. }
  360. .views-tabs__action-list-button.button:hover,
  361. .views-tabs__action-list-button.button:focus {
  362. color: var(--color-white);
  363. background-color: var(--color-absolutezero);
  364. }
  365. /* Remove outline provided by default styling */
  366. .views-tabs__action-list-button:not(:focus) {
  367. box-shadow: none;
  368. }
  369. /* @end */
  370. /* @group Attachment buckets
  371. *
  372. * These are the individual "buckets," or boxes, inside the display settings area
  373. */
  374. .views-ui-display-tab-bucket .links {
  375. padding: 2px 0.375rem 0.25rem;
  376. }
  377. .views-ui-display-tab-bucket .links li + li {
  378. margin-left: 0.1875rem; /* LTR */
  379. }
  380. [dir="rtl"] .views-ui-display-tab-bucket .links li + li {
  381. margin-right: 0.1875rem;
  382. margin-left: 0;
  383. }
  384. /* @end */
  385. /* @group Rearrange filter criteria */
  386. .views-ui-rearrange-filter-form tr {
  387. border-bottom: 0;
  388. }
  389. .views-ui-rearrange-filter-form tr:first-of-type {
  390. border-top: 0.0625rem solid var(--color-gray-200);
  391. }
  392. .views-ui-rearrange-filter-form tr:not(.draggable):hover {
  393. background: inherit;
  394. }
  395. .views-ui-rearrange-filter-form .action-links {
  396. float: left;
  397. margin: 0 0 1em;
  398. padding: 0;
  399. }
  400. .views-ui-rearrange-filter-form .tabledrag-toggle-weight-wrapper {
  401. float: right;
  402. }
  403. .views-ui-rearrange-filter-form .tabledrag-cell {
  404. position: relative;
  405. }
  406. .views-ui-rearrange-filter-form [id^="views-row"] {
  407. border: medium none;
  408. }
  409. .views-ui-rearrange-filter-form tr td:last-child {
  410. border-right: medium none; /* LTR */
  411. }
  412. [dir="rtl"] .views-ui-rearrange-filter-form tr td:last-child {
  413. border-right: initial;
  414. border-left: medium none;
  415. }
  416. .views-ui-rearrange-filter-form .filter-group-operator-row {
  417. border-right: 1px solid transparent !important;
  418. border-left: 1px solid transparent !important;
  419. }
  420. .views-ui-rearrange-filter-form tr.drag td {
  421. background-color: #fe7 !important;
  422. }
  423. .views-ui-rearrange-filter-form tr.drag-previous td {
  424. background-color: #ffb !important;
  425. }
  426. .views-ui-rearrange-filter-form .draggable td {
  427. vertical-align: middle;
  428. }
  429. /* @end */
  430. /* @group Live preview elements */
  431. .views-query-info pre {
  432. margin-top: 0;
  433. margin-bottom: 0;
  434. }
  435. /* @group Query info table */
  436. .views-query-info table {
  437. border-spacing: 1px;
  438. border-radius: 0.4375rem;
  439. }
  440. .views-query-info table tr td:last-child {
  441. /* Fixes a Claro style that bleeds down into this table unnecessarily */
  442. border-right: 0 none; /* LTR */
  443. }
  444. [dir="rtl"] .views-query-info table tr td:last-child {
  445. border-right: initial;
  446. border-left: 0 none;
  447. }
  448. /* @end */
  449. /* @end */
  450. /* @group Add view */
  451. .form-item-page-create,
  452. .form-item-block-create {
  453. margin-top: 0.8125rem;
  454. }
  455. /* @end */
  456. /* @group Modal dialog box
  457. *
  458. * The contents of the popup dialog on the views edit form.
  459. */
  460. .filterable-option .form-item.form-type-checkbox {
  461. padding-top: 0.25rem;
  462. /* This selector is aggressive because Claro's reset for .form-items is aggressive. */
  463. padding-bottom: 0.25rem;
  464. padding-left: 0.25rem; /* LTR */
  465. }
  466. [dir="rtl"] .filterable-option .form-item.form-type-checkbox {
  467. padding-right: 0.25rem;
  468. padding-left: 0.5rem;
  469. }
  470. /* @end */
  471. /* @group Grouping styles
  472. *
  473. * For grouping related form elements together, mainly used with exposed
  474. * filters.
  475. */
  476. .views-config-group-region {
  477. display: table;
  478. margin: var(--space-l) 0;
  479. border: 0.0625rem solid var(--color-gray-200);
  480. border-collapse: collapse;
  481. }
  482. .views-config-group-region .views-group-box {
  483. position: relative;
  484. display: table-cell;
  485. padding: var(--space-l);
  486. border: 0.0625rem solid var(--color-gray-200);
  487. }
  488. .views-config-group-region .views-group-box--operator {
  489. padding-right: var(--space-xl);
  490. border-right-width: 0;
  491. }
  492. [dir="rtl"] .views-config-group-region .views-group-box--operator {
  493. padding-right: var(--space-l);
  494. padding-left: var(--space-xl);
  495. border-right-width: 0.0625rem;
  496. border-left-width: 0;
  497. }
  498. .views-config-group-region .views-group-box--value {
  499. padding: 0;
  500. border-left-width: 0; /* LTR */
  501. }
  502. [dir="rtl"] .views-config-group-region .views-group-box--value {
  503. border-right-width: 0;
  504. border-left-width: 0.0625rem;
  505. }
  506. .views-config-group-region .views-group-box--value > .form-item {
  507. margin-right: var(--space-l); /* LTR */
  508. margin-left: var(--space-xl); /* LTR */
  509. }
  510. [dir="rtl"] .views-config-group-region .views-group-box--value > .form-item {
  511. margin-right: var(--space-xl); /* LTR */
  512. margin-left: var(--space-l); /* LTR */
  513. }
  514. .views-config-group-region .views-group-box--value > .form-item::before {
  515. position: absolute;
  516. top: 0;
  517. left: 0;
  518. width: 0.0625rem;
  519. height: 100%;
  520. content: "";
  521. border-left: 0.0625rem solid var(--color-gray-200);
  522. }
  523. [dir="rtl"] .views-config-group-region .views-group-box--value > .form-item::before {
  524. right: 0;
  525. }
  526. .views-config-group-region .views-group-box--value > .form-item::after {
  527. position: absolute;
  528. z-index: 1;
  529. top: 3.8rem;
  530. left: calc(var(--space-m) * -1); /* LTR */
  531. padding: 0 0.3rem 0.3rem 0.4rem; /* LTR */
  532. content: ">";
  533. color: var(--color-gray-600);
  534. border: 0.0625rem solid var(--color-gray-200);
  535. background: #fff;
  536. font-size: var(--font-size-h1);
  537. font-weight: bold;
  538. line-height: var(--font-size-h1);
  539. }
  540. [dir="rtl"] .views-config-group-region .views-group-box--value > .form-item::after {
  541. right: calc(var(--space-m) * -1);
  542. left: auto;
  543. padding-right: 0.4rem;
  544. padding-left: 0.3rem;
  545. }

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