gin-table.pcss.css

@import "media-queries.pcss.css";

.gin-table-scroll-wrapper {
  clear: both;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  margin-block-start: calc(var(--gin-spacing-xs) * -1);
}

table.gin--sticky-table-header {
  position: sticky;
  z-index: 97;
  visibility: hidden;
  overflow: hidden;
  width: auto !important;
  margin-block-start: calc(var(--gin-spacing-xs) * -1);
  inset-block-start: calc(var(--gin-toolbar-y-offset) + var(--gin-height-sticky) - 1px);

  tr {
    display: block;
    width: max-content;
  }
}

.gin-horizontal-scroll-shadow {
  background-color: var(--gin-bg-layer);
  background-image: linear-gradient(to right, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to right, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to right, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0)), linear-gradient(to left, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0));
  background-repeat: no-repeat;
  background-attachment: local, local, scroll, scroll;
  background-position:
    left center,
    right center,
    left center,
    right center;
  background-size:
    24px 100%,
    24px 100%,
    12px 100%,
    12px 100%;

  &:dir(rtl) {
    background-image: linear-gradient(to left, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to left, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to left, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0)), linear-gradient(to right, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0));
    background-position:
      right center,
      left center,
      right center,
      left center;
  }
}

table.sticky-header {
  inset-inline-start: auto !important;
  min-width: 100%;
  max-width: fit-content;
  background: transparent;
}

table.position-sticky,
table.sticky-header {
  thead {
    position: static;
  }

  &.--is-processed thead {
    pointer-events: none;

    tr {
      border-color: transparent;

      .sortable-heading.is-active > a::before {
        display: none;
      }
    }
  }
}

table {
  thead {
    border-radius: var(--gin-border-m);
    background: transparent;

    tr {
      border-block-end: 2px solid var(--gin-border-color-table-header);

      &:hover {
        background: transparent;
      }
    }
  }

  th {
    background: var(--gin-bg-layer);
    font-size: var(--gin-font-size-s);
    font-weight: var(--gin-font-weight-bold);

    &,
    .form-item__label {
      color: var(--gin-color-title);
    }

    @media (--admin-medium) {
      height: auto;
      padding: var(--gin-spacing-m);
    }
  }

  tbody {
    tr {
      border-block-end: 1px solid var(--gin-border-color-table);
    }

    td {
      height: auto;
      padding: var(--gin-spacing-density-m) var(--gin-spacing-m);
    }
  }

  tr,
  tr:focus-within,
  .draggable-table.tabledrag-disabled tr {
    color: var(--gin-color-text);
    background-color: transparent;

    &:hover {
      color: var(--gin-color-text);
      background: var(--gin-bg-item);
    }

    &.selected:hover {
      background: transparent;
    }
  }

  tr.selected {
    .gin--dark-mode & {
      border-color: rgb(255, 255, 255, 0.2);
    }

    td {
      background-color: var(--gin-bg-item-hover);
    }
  }

  td {
    a {
      text-decoration: none;

      &:hover {
        text-decoration: underline;
        text-decoration-style: var(--gin-link-decoration-style);
      }
    }

    .group-label {
      color: var(--gin-color-title);
    }
  }
}

.sortable-heading {
  padding: var(--gin-spacing-xs) var(--gin-spacing-m);

  > a::before {
    inset-block-end: -2px;
  }

  > a::after {
    background: var(--gin-color-text-light);
    mask-image: var(--admin-icon-sort);
    mask-repeat: no-repeat;
    mask-position: center center;

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

  &.is-active > a::before,
  > a:hover::before {
    width: 100%;
    inset-inline-start: 0;
  }

  > a:hover::before {
    border-block-end-width: 3px;
  }

  &.is-active > a {
    &,
    &:hover,
    &:active {
      color: var(--gin-color-primary-active);
    }

    &::before {
      border-block-end: 0.1875rem solid var(--gin-color-primary-active);
      background-color: var(--gin-bg-item);
      border-start-start-radius: var(--gin-border-s);
      border-start-end-radius: var(--gin-border-s);
    }
  }
}

.tablesort {
  background-color: var(--gin-color-primary-active);
  background-image: none;
  mask-image: var(--admin-icon-sort);
  mask-repeat: no-repeat;
  mask-position: 0 50%;
}

.tablesort--asc {
  mask-image: var(--admin-icon-sort-asc);

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

.tablesort--desc {
  mask-image: var(--admin-icon-sort-desc);

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

.field-plugin-settings-edit-wrapper {
  float: inline-end;

  + a {
    float: inline-start;
  }
}

.region-title {
  border-block-end: 2px solid var(--gin-color-text);
}

.field-multiple-table {
  th {
    padding-block: var(--gin-spacing-xs);
    padding-inline: var(--gin-spacing-l) var(--gin-spacing-m);
    border-block-end: 0;
    background: transparent;

    &.th__order {
      padding: 0;
      font-size: 0;
    }
  }

  thead {
    th {
      background: var(--gin-bg-header);

      &:first-of-type {
        border-start-start-radius: var(--gin-border-m);
        border-end-start-radius: var(--gin-border-m);
      }
    }

    &:not(:has(th:last-of-type:not([style*="display: none"]))) th:nth-last-of-type(2),
    th:last-of-type:not([style*="display: none"]) {
      border-start-end-radius: var(--gin-border-m);
      border-end-end-radius: var(--gin-border-m);
    }

    tr {
      border-block-end: 0;
    }

    .field-label .label,
    .form-item__label--multiple-value-form {
      display: inline-block;
      margin: 0;
      padding: var(--gin-spacing-xs) 0;
      letter-spacing: -0.025em;
      color: var(--gin-color-primary-active);
      font-size: var(--gin-font-size-l);
      font-weight: var(--gin-font-weight-bold);
      line-height: 1.33333em;
    }
  }

  tr .form-item:not(:last-of-type) {
    margin-block-end: var(--gin-spacing-m);
  }

  /* Fixes paragraphs extending beyond layout */
  .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
    flex-wrap: wrap;
  }
}

.gin-layer-wrapper .views-table {
  margin-block-start: 0;
}

table td.field-plugin-summary-cell {
  vertical-align: middle;
}

table .views-field.views-field-operations {
  text-align: end;
}

File

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

View source
  1. @import "media-queries.pcss.css";
  2. .gin-table-scroll-wrapper {
  3. clear: both;
  4. overflow-x: auto;
  5. overflow-y: hidden;
  6. overscroll-behavior-x: contain;
  7. -webkit-overflow-scrolling: touch;
  8. margin-block-start: calc(var(--gin-spacing-xs) * -1);
  9. }
  10. table.gin--sticky-table-header {
  11. position: sticky;
  12. z-index: 97;
  13. visibility: hidden;
  14. overflow: hidden;
  15. width: auto !important;
  16. margin-block-start: calc(var(--gin-spacing-xs) * -1);
  17. inset-block-start: calc(var(--gin-toolbar-y-offset) + var(--gin-height-sticky) - 1px);
  18. tr {
  19. display: block;
  20. width: max-content;
  21. }
  22. }
  23. .gin-horizontal-scroll-shadow {
  24. background-color: var(--gin-bg-layer);
  25. background-image: linear-gradient(to right, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to right, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to right, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0)), linear-gradient(to left, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0));
  26. background-repeat: no-repeat;
  27. background-attachment: local, local, scroll, scroll;
  28. background-position:
  29. left center,
  30. right center,
  31. left center,
  32. right center;
  33. background-size:
  34. 24px 100%,
  35. 24px 100%,
  36. 12px 100%,
  37. 12px 100%;
  38. &:dir(rtl) {
  39. background-image: linear-gradient(to left, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to left, var(--gin-bg-layer), var(--gin-bg-layer)), linear-gradient(to left, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0)), linear-gradient(to right, rgb(0, 0, 0, 0.125), rgb(255, 255, 255, 0));
  40. background-position:
  41. right center,
  42. left center,
  43. right center,
  44. left center;
  45. }
  46. }
  47. table.sticky-header {
  48. inset-inline-start: auto !important;
  49. min-width: 100%;
  50. max-width: fit-content;
  51. background: transparent;
  52. }
  53. table.position-sticky,
  54. table.sticky-header {
  55. thead {
  56. position: static;
  57. }
  58. &.--is-processed thead {
  59. pointer-events: none;
  60. tr {
  61. border-color: transparent;
  62. .sortable-heading.is-active > a::before {
  63. display: none;
  64. }
  65. }
  66. }
  67. }
  68. table {
  69. thead {
  70. border-radius: var(--gin-border-m);
  71. background: transparent;
  72. tr {
  73. border-block-end: 2px solid var(--gin-border-color-table-header);
  74. &:hover {
  75. background: transparent;
  76. }
  77. }
  78. }
  79. th {
  80. background: var(--gin-bg-layer);
  81. font-size: var(--gin-font-size-s);
  82. font-weight: var(--gin-font-weight-bold);
  83. &,
  84. .form-item__label {
  85. color: var(--gin-color-title);
  86. }
  87. @media (--admin-medium) {
  88. height: auto;
  89. padding: var(--gin-spacing-m);
  90. }
  91. }
  92. tbody {
  93. tr {
  94. border-block-end: 1px solid var(--gin-border-color-table);
  95. }
  96. td {
  97. height: auto;
  98. padding: var(--gin-spacing-density-m) var(--gin-spacing-m);
  99. }
  100. }
  101. tr,
  102. tr:focus-within,
  103. .draggable-table.tabledrag-disabled tr {
  104. color: var(--gin-color-text);
  105. background-color: transparent;
  106. &:hover {
  107. color: var(--gin-color-text);
  108. background: var(--gin-bg-item);
  109. }
  110. &.selected:hover {
  111. background: transparent;
  112. }
  113. }
  114. tr.selected {
  115. .gin--dark-mode
  116. td {
  117. background-color: var(--gin-bg-item-hover);
  118. }
  119. }
  120. td {
  121. a {
  122. text-decoration: none;
  123. &:hover {
  124. text-decoration: underline;
  125. text-decoration-style: var(--gin-link-decoration-style);
  126. }
  127. }
  128. .group-label {
  129. color: var(--gin-color-title);
  130. }
  131. }
  132. }
  133. .sortable-heading {
  134. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  135. > a::before {
  136. inset-block-end: -2px;
  137. }
  138. > a::after {
  139. background: var(--gin-color-text-light);
  140. mask-image: var(--admin-icon-sort);
  141. mask-repeat: no-repeat;
  142. mask-position: center center;
  143. @media (forced-colors: active) {
  144. background: linktext;
  145. }
  146. }
  147. &.is-active > a::before,
  148. > a:hover::before {
  149. width: 100%;
  150. inset-inline-start: 0;
  151. }
  152. > a:hover::before {
  153. border-block-end-width: 3px;
  154. }
  155. &.is-active > a {
  156. &,
  157. &:hover,
  158. &:active {
  159. color: var(--gin-color-primary-active);
  160. }
  161. &::before {
  162. border-block-end: 0.1875rem solid var(--gin-color-primary-active);
  163. background-color: var(--gin-bg-item);
  164. border-start-start-radius: var(--gin-border-s);
  165. border-start-end-radius: var(--gin-border-s);
  166. }
  167. }
  168. }
  169. .tablesort {
  170. background-color: var(--gin-color-primary-active);
  171. background-image: none;
  172. mask-image: var(--admin-icon-sort);
  173. mask-repeat: no-repeat;
  174. mask-position: 0 50%;
  175. }
  176. .tablesort--asc {
  177. mask-image: var(--admin-icon-sort-asc);
  178. @media (forced-colors: active) {
  179. background: linktext;
  180. }
  181. }
  182. .tablesort--desc {
  183. mask-image: var(--admin-icon-sort-desc);
  184. @media (forced-colors: active) {
  185. background: linktext;
  186. }
  187. }
  188. .field-plugin-settings-edit-wrapper {
  189. float: inline-end;
  190. + a {
  191. float: inline-start;
  192. }
  193. }
  194. .region-title {
  195. border-block-end: 2px solid var(--gin-color-text);
  196. }
  197. .field-multiple-table {
  198. th {
  199. padding-block: var(--gin-spacing-xs);
  200. padding-inline: var(--gin-spacing-l) var(--gin-spacing-m);
  201. border-block-end: 0;
  202. background: transparent;
  203. &.th__order {
  204. padding: 0;
  205. font-size: 0;
  206. }
  207. }
  208. thead {
  209. th {
  210. background: var(--gin-bg-header);
  211. &:first-of-type {
  212. border-start-start-radius: var(--gin-border-m);
  213. border-end-start-radius: var(--gin-border-m);
  214. }
  215. }
  216. &:not(:has(th:last-of-type:not([style*="display: none"]))) th:nth-last-of-type(2),
  217. th:last-of-type:not([style*="display: none"]) {
  218. border-start-end-radius: var(--gin-border-m);
  219. border-end-end-radius: var(--gin-border-m);
  220. }
  221. tr {
  222. border-block-end: 0;
  223. }
  224. .field-label .label,
  225. .form-item__label--multiple-value-form {
  226. display: inline-block;
  227. margin: 0;
  228. padding: var(--gin-spacing-xs) 0;
  229. letter-spacing: -0.025em;
  230. color: var(--gin-color-primary-active);
  231. font-size: var(--gin-font-size-l);
  232. font-weight: var(--gin-font-weight-bold);
  233. line-height: 1.33333em;
  234. }
  235. }
  236. tr .form-item:not(:last-of-type) {
  237. margin-block-end: var(--gin-spacing-m);
  238. }
  239. /* Fixes paragraphs extending beyond layout */
  240. .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
  241. flex-wrap: wrap;
  242. }
  243. }
  244. .gin-layer-wrapper .views-table {
  245. margin-block-start: 0;
  246. }
  247. table td.field-plugin-summary-cell {
  248. vertical-align: middle;
  249. }
  250. table .views-field.views-field-operations {
  251. text-align: end;
  252. }

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