tables.pcss.css

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

Claro styles for Tables.

File

core/themes/default_admin/css/components/tables.pcss.css

View source
  1. /**
  2. * @file
  3. * Claro styles for Tables.
  4. */
  5. @import "../base/media-queries.pcss.css";
  6. table {
  7. --cell-padding-y: var(--gin-spacing-density-m);
  8. --cell-padding-x: var(--gin-spacing-m);
  9. width: 100%;
  10. margin-block: var(--space-l);
  11. border-collapse: collapse;
  12. thead {
  13. border-radius: var(--gin-border-m);
  14. background: transparent;
  15. tr {
  16. border-block-end: 2px solid var(--gin-border-color-table-header);
  17. &:hover {
  18. background: transparent;
  19. }
  20. }
  21. }
  22. th {
  23. background: var(--gin-bg-layer);
  24. font-size: var(--gin-font-size-s);
  25. font-weight: var(--gin-font-weight-bold);
  26. &,
  27. .form-item__label {
  28. color: var(--gin-color-title);
  29. }
  30. }
  31. tbody {
  32. tr {
  33. border-block-end: 1px solid var(--gin-border-color-table);
  34. }
  35. td {
  36. height: auto;
  37. padding: var(--cell-padding-y) var(--cell-padding-x);
  38. }
  39. }
  40. tr,
  41. tr:focus-within,
  42. .draggable-table.tabledrag-disabled tr {
  43. color: var(--gin-color-text);
  44. background-color: transparent;
  45. &:hover {
  46. color: var(--gin-color-text);
  47. background: var(--gin-bg-item);
  48. }
  49. &.selected:hover {
  50. background: transparent;
  51. }
  52. }
  53. tr.selected {
  54. .gin--dark-mode
  55. td {
  56. background-color: var(--gin-bg-item-hover);
  57. }
  58. }
  59. td {
  60. a {
  61. text-decoration: none;
  62. &:hover {
  63. text-decoration: underline;
  64. text-decoration-style: var(--gin-link-decoration-style);
  65. }
  66. }
  67. .group-label {
  68. color: var(--gin-color-title);
  69. }
  70. }
  71. &.gin--sticky-table-header {
  72. position: sticky;
  73. z-index: 97;
  74. visibility: hidden;
  75. overflow: hidden;
  76. width: auto !important;
  77. margin-block-start: calc(var(--gin-spacing-xs) * -1);
  78. inset-block-start: calc(var(--gin-toolbar-y-offset) + var(--gin-height-sticky) - 1px);
  79. tr {
  80. display: block;
  81. width: max-content;
  82. }
  83. }
  84. }
  85. table.sticky-header {
  86. inset-inline-start: auto !important;
  87. min-width: 100%;
  88. max-width: fit-content;
  89. background: transparent;
  90. }
  91. table.position-sticky,
  92. table.sticky-header {
  93. thead {
  94. position: static;
  95. }
  96. &.--is-processed thead {
  97. pointer-events: none;
  98. tr {
  99. border-color: transparent;
  100. .sortable-heading.is-active > a::before {
  101. display: none;
  102. }
  103. }
  104. }
  105. }
  106. caption {
  107. text-align: start;
  108. }
  109. th {
  110. position: relative;
  111. box-sizing: border-box;
  112. height: var(--space-xxl);
  113. padding: var(--space-xs) var(--space-m);
  114. text-align: start;
  115. color: var(--color-text);
  116. background: var(--color-gray-050);
  117. line-height: 1.25rem;
  118. /* 20px */
  119. }
  120. table th {
  121. @media (--admin-medium) {
  122. height: auto;
  123. padding: var(--gin-spacing-m);
  124. }
  125. }
  126. /* The actual sort link. */
  127. .sortable-heading {
  128. padding: var(--gin-spacing-xs) var(--gin-spacing-m);
  129. & > a {
  130. display: block;
  131. padding-block: var(--space-xs);
  132. padding-inline: 0 1.5rem;
  133. text-decoration: none;
  134. color: inherit;
  135. &:focus,
  136. &:hover {
  137. text-decoration: none;
  138. &::before {
  139. border-color: inherit;
  140. border-block-end-width: 3px;
  141. }
  142. &::after {
  143. opacity: 1;
  144. }
  145. }
  146. &::before {
  147. position: absolute;
  148. z-index: 0;
  149. inset-block-start: 0;
  150. inset-inline-end: 1rem;
  151. inset-block-end: -2px;
  152. inset-inline-start: 1rem;
  153. display: block;
  154. content: "";
  155. border-bottom: 0.125rem solid transparent;
  156. }
  157. &::after {
  158. position: absolute;
  159. inset-block-start: 50%;
  160. inset-inline-end: 1rem;
  161. width: 0.875rem;
  162. height: 1rem;
  163. margin-block-start: -0.5rem;
  164. content: "";
  165. opacity: 0.5;
  166. background: var(--gin-color-text-light);
  167. background-size: contain;
  168. mask-image: var(--admin-icon-sort);
  169. mask-repeat: no-repeat;
  170. mask-position: center center;
  171. [dir="rtl"]
  172. }
  173. @media (forced-colors: active) {
  174. opacity: 1;
  175. background: linktext;
  176. mask: url(../../images/icons/000f33/sort--inactive.svg) no-repeat 50% 50%;
  177. }
  178. }
  179. }
  180. &.is-active > a {
  181. color: var(--color-absolutezero);
  182. &::before {
  183. /* border-bottom: 0.1875rem solid var(--color-absolutezero); */
  184. border-block-end: 0.1875rem solid var(--gin-color-primary-active);
  185. background-color: var(--gin-bg-item);
  186. border-start-start-radius: var(--gin-border-s);
  187. border-start-end-radius: var(--gin-border-s);
  188. }
  189. &::after {
  190. content: none;
  191. }
  192. &,
  193. &:hover,
  194. &:active {
  195. color: var(--gin-color-primary-active);
  196. }
  197. }
  198. &.is-active > a::before,
  199. > a:hover::before {
  200. width: 100%;
  201. inset-inline-start: 0;
  202. }
  203. }
  204. tr {
  205. border-bottom: 0.0625rem solid var(--color-gray-200);
  206. &:hover,
  207. &:focus-within {
  208. color: var(--color-text);
  209. background: var(--color-bgblue-hover);
  210. }
  211. &.color-warning:hover,
  212. &.color-warning:focus {
  213. color: var(--color-text);
  214. background: #fdf8ed;
  215. }
  216. &.color-error:hover,
  217. &.color-error:focus {
  218. color: var(--color-text);
  219. background: #fcf4f2;
  220. }
  221. }
  222. tr,
  223. .draggable-table.tabledrag-disabled tr {
  224. color: var(--color-text);
  225. background: var(--color-white);
  226. }
  227. thead tr {
  228. border: 0;
  229. }
  230. td {
  231. box-sizing: border-box;
  232. height: 4rem;
  233. padding: var(--space-xs) var(--space-m);
  234. text-align: start;
  235. & .item-list ul {
  236. margin: 0;
  237. }
  238. &.is-active {
  239. background: none;
  240. }
  241. }
  242. /**
  243. * Target every .form-element input that parent is a form-item of a table cell.
  244. * This ignores the filter format select of the textarea editor.
  245. */
  246. td {
  247. & > .form-item {
  248. display: flex;
  249. align-items: center;
  250. }
  251. & > .form-item > .form-item__prefix {
  252. margin-inline-end: var(--space-xs);
  253. white-space: nowrap;
  254. }
  255. & > .form-item > .form-item__suffix {
  256. margin-inline-start: var(--space-xs);
  257. white-space: nowrap;
  258. }
  259. & > .form-item > .form-element,
  260. & > .ajax-new-content > .form-item > .form-element,
  261. & > .form-item > .claro-autocomplete,
  262. & > .form-item > .claro-autocomplete > .form-element,
  263. & > .ajax-new-content > .form-item > .claro-autocomplete,
  264. & > .ajax-new-content > .form-item > .claro-autocomplete > .form-element {
  265. width: 100%;
  266. }
  267. & > .form-item > .form-element--type-select,
  268. & > .ajax-new-content > .form-item > .form-element--type-select {
  269. width: max-content;
  270. min-width: 100%;
  271. }
  272. }
  273. /* Win over table-file-multiple-widget. */
  274. th.is-disabled.is-disabled {
  275. color: var(--input--disabled-fg-color);
  276. }
  277. /* Force browsers to calculate the width of a 'select all' element. */
  278. th.select-all {
  279. width: 1px;
  280. }
  281. /**
  282. * Captions.
  283. */
  284. .caption {
  285. margin-block-end: 1.25rem;
  286. /* 20px */
  287. }
  288. tfoot {
  289. font-weight: bold;
  290. & tr {
  291. &:last-child {
  292. border-bottom: 0;
  293. }
  294. &:first-child td {
  295. border-top: 0.0625rem solid var(--color-gray-500);
  296. }
  297. }
  298. }
  299. /**
  300. * Responsive table cells.
  301. */
  302. th.priority-low,
  303. th.priority-medium,
  304. td.priority-low,
  305. td.priority-medium {
  306. display: none;
  307. }
  308. @media screen and (min-width: 38em) {
  309. th.priority-medium,
  310. td.priority-medium {
  311. display: table-cell;
  312. }
  313. }
  314. @media screen and (min-width: 60em) {
  315. th.priority-low,
  316. td.priority-low {
  317. display: table-cell;
  318. }
  319. }
  320. .gin-table-scroll-wrapper {
  321. clear: both;
  322. overflow-x: auto;
  323. overflow-y: hidden;
  324. overscroll-behavior-x: contain;
  325. margin-block-start: calc(var(--gin-spacing-xs) * -1);
  326. }
  327. .gin-horizontal-scroll-shadow {
  328. background-color: var(--gin-bg-layer);
  329. 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));
  330. background-repeat: no-repeat;
  331. background-attachment: local, local, scroll, scroll;
  332. background-position:
  333. left center,
  334. right center,
  335. left center,
  336. right center;
  337. background-size:
  338. 24px 100%,
  339. 24px 100%,
  340. 12px 100%,
  341. 12px 100%;
  342. &:dir(rtl) {
  343. 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));
  344. background-position:
  345. right center,
  346. left center,
  347. right center,
  348. left center;
  349. }
  350. }
  351. .tablesort {
  352. background-color: var(--gin-color-primary-active);
  353. background-image: none;
  354. mask-image: var(--admin-icon-sort);
  355. mask-repeat: no-repeat;
  356. mask-position: 0 50%;
  357. }
  358. .tablesort--asc {
  359. mask-image: var(--admin-icon-sort-asc);
  360. @media (forced-colors: active) {
  361. background: linktext;
  362. }
  363. }
  364. .tablesort--desc {
  365. mask-image: var(--admin-icon-sort-desc);
  366. @media (forced-colors: active) {
  367. background: linktext;
  368. }
  369. }
  370. .field-plugin-settings-edit-wrapper {
  371. float: inline-end;
  372. + a {
  373. float: inline-start;
  374. }
  375. }
  376. .region-title {
  377. border-block-end: 2px solid var(--gin-color-text);
  378. }
  379. .field-multiple-table {
  380. th {
  381. padding-block: var(--gin-spacing-xs);
  382. padding-inline: var(--gin-spacing-l) var(--gin-spacing-m);
  383. border-block-end: 0;
  384. background: transparent;
  385. &.th__order {
  386. padding: 0;
  387. font-size: 0;
  388. }
  389. }
  390. thead {
  391. th {
  392. background: var(--gin-bg-header);
  393. &:first-of-type {
  394. border-start-start-radius: var(--gin-border-m);
  395. border-end-start-radius: var(--gin-border-m);
  396. }
  397. }
  398. &:not(:has(th:last-of-type:not([style*="display: none"]))) th:nth-last-of-type(2),
  399. th:last-of-type:not([style*="display: none"]) {
  400. border-start-end-radius: var(--gin-border-m);
  401. border-end-end-radius: var(--gin-border-m);
  402. }
  403. tr {
  404. border-block-end: 0;
  405. }
  406. .field-label .label,
  407. .form-item__label--multiple-value-form {
  408. display: inline-block;
  409. margin: 0;
  410. padding: var(--gin-spacing-xs) 0;
  411. letter-spacing: -0.025em;
  412. color: var(--gin-color-primary-active);
  413. font-size: var(--gin-font-size-l);
  414. font-weight: var(--gin-font-weight-bold);
  415. line-height: 1.33333em;
  416. }
  417. }
  418. tr .form-item:not(:last-of-type) {
  419. margin-block-end: var(--gin-spacing-m);
  420. }
  421. /* Fixes paragraphs extending beyond layout */
  422. .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
  423. flex-wrap: wrap;
  424. }
  425. }
  426. .gin-layer-wrapper .views-table {
  427. margin-block-start: 0;
  428. }
  429. table td.field-plugin-summary-cell {
  430. vertical-align: middle;
  431. }
  432. table .views-field.views-field-operations {
  433. text-align: end;
  434. }

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