@scania/tegel
Version:
Tegel Design System
341 lines (328 loc) • 6.97 kB
CSS
:host,
:root {
--tds-scrollbar-width-standard: thin;
--tds-scrollbar-width: 10px;
--tds-scrollbar-height: 10px;
--tds-scrollbar-thumb-border-width: 3px;
--tds-scrollbar-thumb-border-hover-width: 2px;
}
body {
scrollbar-width: thin;
}
/* Typography Usage mixins */
/* MIXINS */
/* MODAL STYLING */
.tds-modal {
box-sizing: border-box;
box-shadow: var(--tds-modal-box-shadow);
background-color: var(--background-elevation-layer-02);
margin: auto;
position: relative;
border-radius: var(--radius-narrow);
max-height: 85vh;
overflow-y: auto;
pointer-events: auto;
}
.tds-modal * {
box-sizing: border-box;
}
.tds-modal:hover::-webkit-scrollbar-thumb {
border: var(--tds-scrollbar-thumb-border-hover-width) solid transparent;
background-clip: padding-box;
}
.tds-modal::-webkit-scrollbar {
width: var(--tds-scrollbar-width);
}
.tds-modal::-webkit-scrollbar-track {
background: var(--tds-scrollbar-track-color);
}
.tds-modal::-webkit-scrollbar-thumb {
border-radius: 40px;
background: var(--tds-scrollbar-thumb-color);
border: var(--tds-scrollbar-thumb-border-width) solid transparent;
background-clip: padding-box;
}
.tds-modal::-webkit-scrollbar-button {
height: 0;
width: 0;
}
@supports not selector(::-webkit-scrollbar) {
.tds-modal {
scrollbar-color: var(--tds-scrollbar-thumb-color) var(--tds-scrollbar-track-color);
scrollbar-width: var(--tds-scrollbar-width-standard);
}
}
.tds-modal__actions-sticky {
overflow: hidden;
display: flex;
flex-direction: column;
}
.tds-modal__actions-sticky .body {
font-family: var(--body-01-font-family);
font-size: var(--body-01-font-size);
line-height: var(--body-01-line-height);
font-weight: var(--body-01-font-weight);
letter-spacing: var(--body-01-letter-spacing);
text-transform: var(--body-01-text-transform);
max-height: calc(85vh - 36px);
overflow-y: auto;
}
.tds-modal__actions-sticky slot[name=actions] {
bottom: -1px;
left: 0;
right: 0;
background-color: var(--background-elevation-layer-02);
padding: 24px 16px 16px;
display: flex;
gap: 16px;
}
.tds-modal__actions-static slot[name=actions] {
background-color: var(--background-elevation-layer-02);
display: flex;
gap: 16px;
padding: 24px 16px 16px;
}
@media (min-width: 320px) {
.tds-modal-xs {
width: 100%;
}
.tds-modal-sm {
width: 100%;
}
.tds-modal-md {
width: 100%;
}
.tds-modal-lg {
width: 100%;
}
}
@media (min-width: 672px) {
.tds-modal-xs {
width: 50%;
}
.tds-modal-sm {
width: 62.5%;
}
.tds-modal-md {
width: 75%;
}
.tds-modal-lg {
width: 100%;
}
}
@media (min-width: 1056px) {
.tds-modal-xs {
width: 31.25%;
}
.tds-modal-sm {
width: 43.75%;
}
.tds-modal-md {
width: 62.5%;
}
.tds-modal-lg {
width: 75%;
}
}
@media (min-width: 1312px) {
.tds-modal-xs {
width: 31.25%;
}
.tds-modal-sm {
width: 37.5%;
}
.tds-modal-md {
width: 62.5%;
}
.tds-modal-lg {
width: 75%;
}
}
@media (min-width: 1584px) {
.tds-modal-xs {
width: 25%;
}
.tds-modal-sm {
width: 37.5%;
}
.tds-modal-md {
width: 50%;
}
.tds-modal-lg {
width: 75%;
}
}
@media (max-width: 320px) {
.tds-modal-md,
.tds-modal-lg,
.tds-modal-sm {
height: 100%;
}
.tds-modal-md slot[name=actions]::slotted(*),
.tds-modal-lg slot[name=actions]::slotted(*),
.tds-modal-sm slot[name=actions]::slotted(*) {
display: flex;
}
}
/* MODAL SUB ELEMENTS */
.header {
display: flex;
padding: 16px;
position: sticky;
top: 0;
background-color: var(--background-elevation-layer-02);
z-index: 1;
}
.header,
slot[name=header]::slotted(*) {
font-family: var(--headline-05-font-family);
font-size: var(--headline-05-font-size);
line-height: var(--headline-05-line-height);
font-weight: var(--headline-05-font-weight);
letter-spacing: var(--headline-05-letter-spacing);
text-transform: var(--headline-05-text-transform);
color: var(--foreground-text-strong);
margin: 0;
flex: 1;
}
.body {
font-family: var(--body-01-font-family);
font-size: var(--body-01-font-size);
line-height: var(--body-01-line-height);
font-weight: var(--body-01-font-weight);
letter-spacing: var(--body-01-letter-spacing);
text-transform: var(--body-01-text-transform);
color: var(--foreground-text-strong);
overflow-y: visible;
padding: 0 16px 16px;
}
.body:hover::-webkit-scrollbar-thumb {
border: var(--tds-scrollbar-thumb-border-hover-width) solid transparent;
background-clip: padding-box;
}
.body::-webkit-scrollbar {
width: var(--tds-scrollbar-width);
}
.body::-webkit-scrollbar-track {
background: var(--tds-scrollbar-track-color);
}
.body::-webkit-scrollbar-thumb {
border-radius: 40px;
background: var(--tds-scrollbar-thumb-color);
border: var(--tds-scrollbar-thumb-border-width) solid transparent;
background-clip: padding-box;
}
.body::-webkit-scrollbar-button {
height: 0;
width: 0;
}
@supports not selector(::-webkit-scrollbar) {
.body {
scrollbar-color: var(--tds-scrollbar-thumb-color) var(--tds-scrollbar-track-color);
scrollbar-width: var(--tds-scrollbar-width-standard);
}
}
.tds-modal-backdrop {
box-sizing: border-box;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: var(--tds-modal-backdrop-background);
pointer-events: auto;
}
.tds-modal-backdrop * {
box-sizing: border-box;
}
button.tds-modal-close {
margin: 0 0 auto auto;
background-color: transparent;
border: 0;
padding: 0;
appearance: unset;
}
.tds-modal-close {
display: inline-block;
height: auto;
color: var(--foreground-text-strong);
cursor: pointer;
}
.tds-modal-close:focus {
outline: 2px solid var(--tds-focus-outline-color);
box-shadow: 0 0 0 1px var(--tds-white);
outline-offset: 1px;
z-index: 1;
}
@media (min-width: 320px) {
.tds-modal-close {
margin-left: 16px;
}
}
@media (min-width: 1056px) {
.tds-modal-close {
margin-left: 48px;
}
}
.tds-modal-close-btn {
display: inline-block;
height: auto;
background-repeat: no-repeat;
cursor: pointer;
}
@media (min-width: 320px) {
.tds-modal-close-btn {
margin-left: 16px;
}
}
@media (min-width: 1056px) {
.tds-modal-close-btn {
margin-left: 48px;
}
}
.tds-modal-close-btn svg {
fill: var(--foreground-text-strong);
}
.tds-modal-overflow {
overflow: hidden;
}
/* WEB COMPONENT STUFF */
:host {
box-sizing: border-box;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 0 16px;
z-index: 700;
pointer-events: none;
}
:host * {
box-sizing: border-box;
}
:host .tds-modal-close {
border: none;
background-color: transparent;
}
:host .tds-modal-close-btn {
border: none;
background-color: transparent;
}
@media (max-width: 320px) {
:host {
padding: 0;
}
}
:host.show {
display: flex;
}
:host.hide {
display: none;
}
:host(.show) {
display: flex;
}
:host(.hide) {
display: none;
}