tables.css

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

Claro styles for Tables.

File

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

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