tabs.pcss.css

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

Styles for tabs and horizontal/vertical tab components.

File

core/themes/default_admin/migration/css/components/tabs.pcss.css

View source
  1. /**
  2. * @file
  3. * Styles for tabs and horizontal/vertical tab components.
  4. */
  5. @import "../../../css/base/media-queries.pcss.css";
  6. .tabs {
  7. box-shadow: none;
  8. }
  9. .tabs-wrapper,
  10. .horizontal-tabs ul.horizontal-tabs-list {
  11. padding: 0 var(--space-xs);
  12. margin-inline: calc(var(--space-xs) * -1);
  13. @media (--admin-small) {
  14. padding: 0;
  15. }
  16. }
  17. .gin--dark-mode .tabs-wrapper:not(.is-horizontal) {
  18. .tabs {
  19. border-color: #8e929c;
  20. }
  21. .tabs__tab {
  22. border-color: #8e929c;
  23. background-color: var(--gin-bg-item-hover);
  24. }
  25. }
  26. .vertical-tabs__items {
  27. z-index: inherit;
  28. }
  29. .gin--dark-mode .tabs {
  30. border-color: var(--gin-border-color-layer2);
  31. .tabs__tab,
  32. .tabs__tab.is-active {
  33. border-color: var(--gin-border-color-layer2);
  34. background-color: transparent;
  35. }
  36. }
  37. .tabs__link,
  38. .gin-details__summary,
  39. .horizontal-tabs ul.horizontal-tabs-list li.horizontal-tab-button a {
  40. color: var(--gin-color-text);
  41. font-size: var(--font-size-base);
  42. font-weight: var(--font-weight-semibold);
  43. padding-block: calc(var(--space-l) - var(--space-xxs));
  44. strong {
  45. font-weight: inherit;
  46. }
  47. }
  48. .tabs__link.is-active,
  49. .gin-details__summary[aria-expanded="true"],
  50. .horizontal-tabs ul.horizontal-tabs-list li.horizontal-tab-button.selected a {
  51. font-weight: var(--font-weight-semibold);
  52. }
  53. .is-horizontal .tabs__link,
  54. .horizontal-tabs ul.horizontal-tabs-list li.horizontal-tab-button a {
  55. &:hover,
  56. &:focus {
  57. color: var(--gin-color-primary);
  58. background: var(--gin-bg-item-hover);
  59. }
  60. }
  61. .is-horizontal .tabs--primary,
  62. .is-horizontal .tabs--secondary,
  63. .horizontal-tabs ul.horizontal-tabs-list {
  64. position: relative;
  65. &::after {
  66. position: absolute;
  67. display: block;
  68. width: 100%;
  69. max-width: calc(100% + var(--space-xs));
  70. content: "";
  71. pointer-events: none;
  72. inset-block-end: 0;
  73. inset-inline-start: 0;
  74. border-block-end: 1px solid var(--gin-border-color);
  75. @media (prefers-reduced-motion: no-preference) {
  76. transition: var(--gin-transition);
  77. }
  78. @media (--admin-small) {
  79. inset-inline-start: var(--space-xs);
  80. inset-block-end: var(--space-l);
  81. max-width: calc(100% - var(--space-m));
  82. }
  83. }
  84. @media (--admin-small) {
  85. overflow-x: auto;
  86. width: 100%;
  87. padding-block: 0.3125rem var(--space-l);
  88. padding-inline: var(--space-xs);
  89. margin-block-end: calc(var(--space-xl) * -1);
  90. }
  91. }
  92. @media (--admin-small) {
  93. .gin--edit-form .is-horizontal .tabs--primary,
  94. .gin--edit-form .is-horizontal .tabs--secondary,
  95. .gin--edit-form .horizontal-tabs ul.horizontal-tabs-list {
  96. padding-block-start: 0.4rem;
  97. }
  98. }
  99. .is-horizontal .tabs--primary .tabs__tab,
  100. .is-horizontal .tabs--primary .horizontal-tab-button,
  101. .is-horizontal .tabs--secondary .tabs__tab,
  102. .is-horizontal .tabs--secondary .horizontal-tab-button,
  103. .horizontal-tabs ul.horizontal-tabs-list .tabs__tab,
  104. .horizontal-tabs ul.horizontal-tabs-list .horizontal-tab-button {
  105. position: relative;
  106. }
  107. .is-horizontal .tabs--primary .horizontal-tab-button:focus-within::after,
  108. .is-horizontal .tabs--secondary .horizontal-tab-button:focus-within::after,
  109. .horizontal-tabs ul.horizontal-tabs-list .horizontal-tab-button:focus-within::after {
  110. background: var(--gin-bg-layer);
  111. }
  112. .horizontal-tabs ul.horizontal-tabs-list {
  113. &::before {
  114. z-index: 1;
  115. background: var(--gin-bg-layer);
  116. }
  117. &::after {
  118. inset-inline-start: var(--space-xs);
  119. max-width: calc(100% - var(--space-m));
  120. }
  121. }
  122. @media (--admin-small) {
  123. .is-horizontal .tabs--primary,
  124. .is-horizontal .tabs--secondary {
  125. margin-inline: 0;
  126. }
  127. .tabs--primary {
  128. margin-block-end: 0;
  129. }
  130. .is-horizontal .tabs--primary::after {
  131. border-block-end: 0 none;
  132. }
  133. .gin--high-contrast-mode .is-horizontal .tabs--primary::after {
  134. border-block-end: 1px solid;
  135. }
  136. }
  137. @media (--admin-to-small) {
  138. .is-horizontal .tabs--primary .tabs__tab {
  139. border-block-end: 1px solid var(--gin-border-color-layer2);
  140. background-color: var(--gin-bg-layer);
  141. }
  142. .is-horizontal .tabs--primary .tabs__tab[data-original-order="0"] {
  143. border-block-end: none;
  144. }
  145. }
  146. .is-horizontal .tabs--primary .tabs__link {
  147. height: 100%;
  148. min-height: var(--space-xxl);
  149. &.is-active::before {
  150. display: none;
  151. }
  152. @media (--admin-small) {
  153. min-height: 2rem;
  154. margin-inline-end: 0.25em;
  155. border-radius: 2rem;
  156. font-size: var(--font-size-base);
  157. padding-block: calc(var(--space-xs) - 2px);
  158. padding-inline: var(--space-s);
  159. &.is-active {
  160. color: var(--gin-color-primary-active);
  161. border: 1.5px solid currentColor;
  162. }
  163. }
  164. }
  165. .tabs__trigger svg {
  166. stroke: var(--gin-color-primary);
  167. }
  168. .is-horizontal .tabs--secondary {
  169. @media (--admin-small) {
  170. margin-block-start: var(--space-m);
  171. &::before {
  172. width: 100%;
  173. }
  174. }
  175. }
  176. .is-horizontal .tabs--secondary .tabs__link {
  177. min-height: 2.5rem;
  178. padding-block: var(--space-xs) var(--space-m);
  179. padding-inline: var(--space-m);
  180. border-radius: var(--gin-border-m) var(--gin-border-m) 0 0;
  181. font-size: var(--font-size-s);
  182. }
  183. .horizontal-tabs {
  184. position: static !important;
  185. display: flex;
  186. flex-wrap: wrap;
  187. width: 100%;
  188. margin-block-start: calc(var(--space-m) * -1);
  189. border: 0 none;
  190. ul.horizontal-tabs-list {
  191. overflow: hidden;
  192. border-inline-end: 0 none;
  193. border-block-end: 0 none;
  194. background: none;
  195. li.horizontal-tab-button {
  196. border-inline-end: 0 none;
  197. border-block-end: 0 none;
  198. background: none;
  199. a {
  200. padding-block: var(--space-xs) var(--space-m);
  201. padding-inline: var(--space-m);
  202. border-radius: var(--gin-border-m) var(--gin-border-m) 0 0;
  203. font-size: var(--font-size-s);
  204. &::before {
  205. position: absolute;
  206. display: block;
  207. content: "";
  208. }
  209. }
  210. &.selected a {
  211. color: var(--gin-color-primary);
  212. &::before {
  213. z-index: 1;
  214. border-inline: none;
  215. width: 100%;
  216. height: 3px;
  217. border-block-end: 3px solid var(--gin-color-primary);
  218. inset-block-start: auto;
  219. inset-block-end: 0;
  220. inset-inline-start: 0;
  221. inset-inline-end: 0;
  222. }
  223. }
  224. }
  225. @media (--admin-small) {
  226. &::after {
  227. inset-inline-start: var(--space-xs);
  228. max-width: calc(100% - var(--space-m));
  229. }
  230. }
  231. }
  232. .horizontal-tabs {
  233. margin-block-start: var(--space-m);
  234. }
  235. .horizontal-tabs-panes,
  236. [data-horizontal-tabs-panes] {
  237. width: 100%;
  238. }
  239. .horizontal-tabs-pane {
  240. padding: 0;
  241. box-shadow: none;
  242. > .details-wrapper {
  243. margin: 0;
  244. > .gin-details__description {
  245. margin-block-start: var(--space-m);
  246. }
  247. }
  248. }
  249. }
  250. .gin-details__description {
  251. max-width: var(--gin-max-line-length);
  252. color: var(--gin-color-text-light);
  253. }
  254. .gin-details__summary::before,
  255. .gin-details[open] > .gin-details__summary::before {
  256. inset-inline-start: 1.125rem;
  257. background: var(--gin-color-text);
  258. mask-image: url("../../media/icons/general/handle.svg");
  259. mask-repeat: no-repeat;
  260. mask-position: center center;
  261. mask-size: 100% 100%;
  262. @media (forced-colors: active) {
  263. background-color: buttonBorder;
  264. }
  265. }
  266. @media (forced-colors: active) {
  267. .gin-details__summary::before {
  268. transform: rotate(90deg);
  269. &:dir(rtl) {
  270. transform: rotate(-90deg);
  271. }
  272. }
  273. .gin-details[open] > .gin-details__summary::before {
  274. margin-block-start: -6px;
  275. transform: rotate(270deg);
  276. &:dir(rtl) {
  277. transform: rotate(-270deg);
  278. }
  279. }
  280. }
  281. .gin-details__summary:hover::before,
  282. .gin-details__summary:hover:focus::before,
  283. .gin-details[open] > .gin-details__summary:hover::before,
  284. .gin-details[open] > .gin-details__summary:focus::before,
  285. .gin-details[open] > .gin-details__summary--accordion::before,
  286. .gin-details[open] > .gin-details__summary--accordion-item::before,
  287. .gin-details[open] > .gin-details__summary--vertical-tabs-item::before {
  288. background: var(--gin-color-primary);
  289. @media (forced-colors: active) {
  290. background-color: linkText;
  291. }
  292. }
  293. .gin-details__wrapper--accordion,
  294. .gin-details__wrapper--accordion-item,
  295. .gin-details__wrapper--vertical-tabs-item {
  296. border-block-start: 1px solid var(--gin-border-color);
  297. background: var(--gin-bg-app);
  298. }
  299. .gin--dark-mode {
  300. .gin-details,
  301. .gin-details__summary--accordion,
  302. .gin-details__summary--accordion-item,
  303. .gin-details__summary--vertical-tabs-item {
  304. background-color: transparent;
  305. }
  306. .gin-details {
  307. border-color: var(--gin-border-color);
  308. }
  309. .vertical-tabs__items {
  310. border: 0 none;
  311. background: none;
  312. }
  313. .vertical-tabs__menu-item.is-selected .vertical-tabs__menu-link {
  314. border-color: transparent;
  315. background: var(--gin-bg-app);
  316. }
  317. .vertical-tabs__menu-link {
  318. color: var(--gin-color-text);
  319. }
  320. .vertical-tabs__menu-link-summary {
  321. color: var(--gin-color-text-light);
  322. }
  323. .vertical-tabs .gin-details__wrapper {
  324. background: var(--gin-bg-app);
  325. }
  326. }
  327. .vertical-tabs__items {
  328. border-radius: var(--gin-border-m);
  329. .vertical-tabs__item {
  330. border-radius: 0;
  331. > .gin-details__wrapper {
  332. display: inline-block;
  333. width: 100%;
  334. }
  335. @media (--admin-wider) {
  336. border-start-end-radius: var(--gin-border-m);
  337. border-end-end-radius: var(--gin-border-m);
  338. border-end-start-radius: var(--gin-border-m);
  339. & ~ .vertical-tabs__item {
  340. border-start-start-radius: var(--gin-border-m);
  341. }
  342. }
  343. @media (--admin-large) {
  344. .gin-details__summary {
  345. padding-inline-start: var(--space-xxl);
  346. &::before {
  347. inset-inline-start: var(--space-m);
  348. }
  349. }
  350. }
  351. }
  352. @media (--admin-large) {
  353. border-start-start-radius: 0;
  354. }
  355. }
  356. .vertical-tabs__menu-item-title {
  357. font-weight: var(--font-weight-bold);
  358. }
  359. .vertical-tabs__menu-item {
  360. &::before,
  361. &::after {
  362. border-color: var(--gin-border-color);
  363. }
  364. }
  365. .vertical-tabs__menu-link:hover,
  366. .vertical-tabs__menu-item.is-selected .vertical-tabs__menu-link:hover {
  367. color: var(--gin-color-primary);
  368. &::before {
  369. background: var(--gin-bg-item-hover);
  370. }
  371. }
  372. [open] > .gin-details__summary--vertical-tabs-item:not(:focus, :active)::after,
  373. [open] > .gin-details__summary--accordion-item:not(:focus, :active)::after {
  374. border-inline-start-width: 5px;
  375. }
  376. @media screen and (--admin-wider) {
  377. html.js .vertical-tabs__item {
  378. float: inline-start;
  379. overflow: visible;
  380. width: 100%;
  381. }
  382. }

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