UNPKG

@scania/tegel

Version:
341 lines (328 loc) 6.97 kB
: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; }