3 * Generic content container
7 margin-inline-start: auto;
8 margin-inline-end: auto;
9 padding-inline-start: $-m;
10 padding-inline-end: $-m;
23 * Core grid layout system
33 grid-template-columns: 1fr 1fr;
36 grid-template-columns: 1fr 1fr 1fr;
39 grid-template-columns: 2fr 1fr;
42 grid-template-columns: 1fr 3fr;
48 grid-column-gap: $-xl;
52 grid-column-gap: $-xxl;
70 @include smaller-than($m) {
71 .grid.third:not(.no-break) {
72 grid-template-columns: 1fr 1fr;
74 .grid.half:not(.no-break), .grid.left-focus:not(.no-break), .grid.right-focus:not(.no-break) {
75 grid-template-columns: 1fr;
77 .grid.half.collapse-xs {
78 grid-template-columns: 1fr 1fr;
84 .grid.right-focus.reverse-collapse > *:nth-child(2) {
87 .grid.right-focus.reverse-collapse > *:nth-child(1) {
92 @include smaller-than($s) {
93 .grid.third:not(.no-break) {
94 grid-template-columns: 1fr;
98 @include smaller-than($xs) {
99 .grid.half.collapse-xs {
100 grid-template-columns: 1fr;
109 * Flexbox layout system
113 flex-direction: column;
114 align-items: stretch;
128 align-items: stretch;
134 .flex-container-row {
142 .flex-container-column {
144 flex-direction: column;
147 .flex-container-row.inline, .flex-container-column.inline {
148 display: inline-flex !important;
151 .flex-container-column.wrap, .flex-container-row.wrap {
166 min-width: fit-content;
186 .justify-flex-start {
187 justify-content: flex-start;
190 justify-content: flex-end;
193 justify-content: center;
195 .justify-space-between {
196 justify-content: space-between;
202 align-items: stretch;
206 * Min width utilities
237 * Display and float utilities
240 display: block !important;
245 display: inline !important;
249 display: inline-block !important;
266 display: none !important;
278 height: auto !important;
296 @each $sizeLetter, $size in $screen-sizes {
297 @include smaller-than($size) {
298 .hide-under-#{$sizeLetter} {
299 display: none !important;
302 @include larger-than($size) {
303 .hide-over-#{$sizeLetter} {
304 display: none !important;
310 display: none !important;
313 .screen-reader-only {
315 inset-inline-start: -10000px;
330 * Inline content columns
332 .dual-column-content {
336 @include smaller-than($m) {
337 .dual-column-content {
358 .tri-layout-container {
360 margin-inline-start: $-xl;
361 margin-inline-end: $-xl;
362 grid-template-columns: 1fr 4fr 1fr;
363 grid-template-areas: "a b c";
364 grid-column-gap: $-xl;
368 grid-column-start: a;
374 .tri-layout-sides-content {
376 grid-template-areas: "a b c";
377 grid-template-columns: 1fr 4fr 1fr;
395 @include larger-than($xxl) {
396 .tri-layout-left-contents, .tri-layout-right-contents {
405 scrollbar-width: none;
406 -ms-overflow-style: none;
407 &::-webkit-scrollbar {
411 .tri-layout-middle-contents {
416 @include between($xxl, $xxxl) {
417 .tri-layout-sides-content, .tri-layout-container {
418 grid-template-columns: 1fr calc(940px + (2 * $-m)) 1fr;
420 .tri-layout-container {
421 grid-column-gap: $-s;
422 margin-inline-start: $-m;
423 margin-inline-end: $-m;
426 @include smaller-than($xxl) {
427 .tri-layout-container {
428 grid-template-areas: "a b b";
429 grid-template-columns: 1fr 3fr;
430 grid-template-rows: min-content min-content 1fr;
431 padding-inline-end: $-l;
434 grid-column-start: a;
437 .tri-layout-sides-content {
441 @include between($l, $xxl) {
442 .tri-layout-sides-content {
450 scrollbar-width: none;
451 -ms-overflow-style: none;
452 &::-webkit-scrollbar {
457 @include larger-than($l) {
458 .tri-layout-mobile-tabs {
461 .tri-layout-left-contents > *, .tri-layout-right-contents > * {
462 @include lightDark(opacity, 0.6, 0.75);
463 transition: opacity ease-in-out 120ms;
464 &:hover, &:focus-within {
465 opacity: 1 !important;
467 @media (prefers-contrast: more) {
468 opacity: 1 !important;
472 @include smaller-than($l) {
473 .tri-layout-container {
474 grid-template-areas: none;
475 grid-template-columns: 1fr;
477 padding-inline-end: $-xs;
478 padding-inline-start: $-xs;
480 padding-inline-start: $-m;
481 padding-inline-end: $-m;
484 .tri-layout-left > *, .tri-layout-right > * {
486 pointer-events: none;
488 .tri-layout-left, .tri-layout-right {
489 padding-top: 0 !important;
497 transition: transform ease-in-out 240ms;
507 .tri-layout-right > *, .tri-layout-left > * {
509 pointer-events: auto;
515 @include smaller-than($m) {
516 .tri-layout-container {
517 margin-inline-start: 0;
518 margin-inline-end: 0;