UNPKG

@telekom/scale-components

Version:

Scale is the digital design system for Telekom products and experiences.

201 lines (189 loc) 5.11 kB
/** * @license * Scale https://github.com/telekom/scale * * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ :host { --color: var(--telekom-color-text-and-icon-standard); --radius: var(--telekom-radius-standard); --font-size: var(--telekom-typography-font-size-small); --border: 1px solid var(--telekom-color-ui-faint); --color-hover: var(--telekom-color-text-and-icon-primary-hovered); --color-active: var(--telekom-color-text-and-icon-primary-pressed); --color-button: var(--telekom-color-ui-subtle); --border-button: var(--border); --focus-outline: var(--telekom-line-weight-highlight) solid var(--telekom-color-functional-focus-standard); --radius-first-prompt: var(--radius) 0 0 var(--radius); --radius-last-prompt: 0 var(--radius) var(--radius) 0; --radius-first-prompt-stack: 0 0 0 var(--radius); --radius-last-prompt-stack: 0 0 var(--radius) 0; --stroke-svg: var(--telekom-color-ui-extra-strong); /* FIXME is this needed? */ --stroke-svg-high-contrast: #fff; --width-button: 44px; --padding-info: var(--telekom-spacing-composition-space-04); --height-button: 44px; --line-height-info: calc(var(--height-button) - 2px); } .pagination { display: flex; overflow: auto; flex-wrap: wrap; } .pagination__info, .pagination__info-responsive { color: var(--color); text-align: center; font-size: var(--font-size); font-weight: var(--telekom-typography-font-weight-medium); line-height: var(--line-height-info); padding: 0 var(--padding-info); border: var(--border); flex-shrink: 0; border-left: 0; border-right: 0; white-space: nowrap; order: 1; } .pagination__info-responsive { display: none; } .pagination__info span, .pagination__info-responsive span { color: var(--telekom-color-text-and-icon-primary-standard); font-weight: var(--telekom-typography-font-weight-bold); } button { display: flex; flex-shrink: 0; justify-content: center; align-items: center; padding: 0; margin: 0; height: var(--height-button); width: var(--width-button); color: var(--color-button); background: none; border: var(--border-button); } button:focus { outline: var(--focus-outline); outline-offset: -3px; } .pagination__first-prompt { border-radius: var(--radius-first-prompt); margin-right: -1px; } .pagination__last-prompt { border-radius: var(--radius-last-prompt); margin-left: -1px; order: 2; } .pagination__next-prompt { order: 2; } button svg { display: block; } button:not(:disabled) { cursor: pointer; } button:not(:disabled) svg { color: var(--stroke-svg); } button:disabled svg { color: var(--telekom-color-text-and-icon-disabled); } button:not(:disabled):hover { border-color: var(--telekom-color-primary-hovered); z-index: 1; } button:not(:disabled):hover svg { color: var(--color-hover); } button:not(:disabled):active { border-color: var(--color-active); z-index: 1; } button:not(:disabled):active svg { color: var(--color-active); } /* Hide Borders option */ .pagination--hide-borders .pagination__info, .pagination--hide-borders .pagination__info-responsive { border: 0; } .pagination--hide-borders .pagination__info-responsive { border-bottom: var(--border); } .pagination--hide-borders button { border-radius: 0; border-top-width: 0; border-bottom-width: 0; } .pagination--hide-borders .pagination__first-prompt { border-left-color: transparent; } .pagination--hide-borders .pagination__last-prompt { border-right-color: transparent; } .pagination--hide-borders button:not(:disabled):hover { /* Important to override external changes to hide side borders - i.e. in scale-data-grid */ border-width: 1px; border-color: var(--telekom-color-primary-hovered); } .pagination__button-wrapper { display: flex; } @media screen and (forced-colors: active), (-ms-high-contrast: active) { button:not(:disabled) svg { color: var(--stroke-svg-high-contrast); } } @media screen and (max-width: 639px) { :host { width: 100%; } .pagination { flex-direction: column; } .pagination__info-responsive { display: initial; order: 0; overflow: auto; border-left: var(--border); border-right: var(--border); border-bottom: 0; border-radius: var(--radius) var(--radius) 0 0; line-height: var(--line-height-info); } .pagination__info { display: none; line-height: var(--line-height-info); } .pagination__first-prompt { border-radius: var(--radius-first-prompt-stack); } .pagination__last-prompt { border-radius: var(--radius-last-prompt-stack); } .pagination__next-prompt { margin-left: -1px; } button { flex: 1; height: var(--height-button); } .pagination--hide-borders .pagination__first-prompt { border-left-width: 0; } .pagination--hide-borders .pagination__last-prompt { border-right-width: 0; } }