UNPKG

@telekom/scale-components

Version:

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

234 lines (194 loc) 5.92 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 { /* not selected */ --background-color-selected: var(--telekom-color-ui-base); --button-radius: 6px; --padding-top-bottom: var(--telekom-spacing-composition-space-03); --height: 28px; --font: var(--telekom-text-style-caption-bold); --label-disabled: var(--telekom-color-text-and-icon-disabled); --transition: all var(--telekom-motion-duration-transition) var(--telekom-motion-easing-standard); --color: var(--telekom-color-text-and-icon-standard); --color-selected: var(--telekom-color-text-and-icon-primary-standard); /* medium styles */ --font-medium: var(--telekom-text-style-ui-bold); --height-medium: 36px; /* large styles */ --font-large: var(--telekom-text-style-ui-bold); --height-large: 40px; /* hover styles */ --background-color-hover: var(--telekom-color-ui-state-fill-hovered); /* active styles */ --background-color-active: var(--telekom-color-ui-state-fill-pressed); display: flex; align-items: center; justify-content: center; flex: 1; } .segment { box-sizing: border-box; position: relative; border: 0; height: 100%; width: 100%; border-radius: var(--button-radius); padding-top: var(--padding-top-bottom); padding-bottom: var(--padding-top-bottom); transition: var(--transition); background-color: transparent; padding: 0; } .segment--mask { box-sizing: border-box; display: flex; align-items: center; justify-content: center; position: relative; height: 100%; width: 100%; border-radius: var(--button-radius); background-color: transparent; font: var(--font); transition: var(--transition); white-space: nowrap; color: var(--color); line-height: 1; } button.segment--small.segment--selected .segment--mask { padding-left: var(--telekom-spacing-composition-space-04); padding-right: var(--telekom-spacing-composition-space-05); } button.segment--icon-only.segment--small .segment--mask { padding-left: var(--telekom-spacing-composition-space-06); padding-right: var(--telekom-spacing-composition-space-06); } button.segment--small .segment--mask { padding-left: 0.625rem; padding-right: 0.625rem; } .segment--small { height: var(--height); } .segment--medium { height: var(--height-medium); } button.segment--medium.segment--selected .segment--mask { padding-left: var(--telekom-spacing-composition-space-05); padding-right: var(--telekom-spacing-composition-space-06); } button.segment--medium .segment--mask { font: var(--font-medium); padding-left: 0.875rem; padding-right: 0.875rem; } .segment--large { height: var(--height-large); } button.segment--large.segment--selected .segment--mask { padding-left: var(--telekom-spacing-composition-space-06); padding-right: var(--telekom-spacing-composition-space-07); } button.segment--large .segment--mask { font: var(--font-large); padding-left: var(--telekom-spacing-composition-space-06); padding-right: var(--telekom-spacing-composition-space-07); } .segment--selected { background-color: var(--background-color-selected); box-shadow: var(--telekom-shadow-raised-standard); } .segment--selected .segment--mask { color: var(--color-selected); } .segment--disabled.segment--selected .segment--mask { color: var(--label-disabled); } .segment--disabled:not(.segment--selected) .segment--mask { color: var(--label-disabled); background-color: transparent; } .segment--left-sibling-selected { border-radius: 0 var(--button-radius) var(--button-radius) 0; margin-left: 0; clip-path: inset(-2.75rem -2.75rem -2.75rem 0); backface-visibility: hidden; overflow: hidden; } .segment--right-sibling-selected { border-radius: var(--button-radius) 0 0 var(--button-radius); clip-path: inset(-2.75rem 0 -2.75rem -2.75rem); margin-right: 0; backface-visibility: hidden; overflow: hidden; position: relative; } .segment--left-right-sibling-selected { clip-path: inset(-2.75rem 0 -2.75rem 0); border-radius: 0; margin-left: 0; margin-right: 0; backface-visibility: hidden; } .segment:not(.segment--disabled):hover .segment--mask { background-color: var(--background-color-hover); } .segment:not(.segment--disabled):active .segment--mask { background-color: var(--background-color-active); } .segment:focus { box-shadow: var(--telekom-shadow-raised-standard); outline: var(--telekom-spacing-composition-space-02) solid var(--telekom-color-functional-focus-standard); outline-offset: var(--telekom-spacing-composition-space-01); z-index: 40; position: relative; } .segment:not(.segment--selected):focus { outline-offset: 0; } .segment--left-right-sibling-selected:focus, .segment--right-sibling-selected:focus, .segment--left-sibling-selected:focus { clip-path: none; } /* FIXME remove the hard-coded icon names */ .segment:not(.segment--icon-only) scale-icon-action-checkmark, .segment scale-icon-action-close { margin-right: var(--telekom-spacing-composition-space-03); } .segment:not(.segment--selected) scale-icon-action-checkmark { visibility: hidden !important; } .segment scale-icon-action-checkmark { vertical-align: middle; } .segment--selected:not(.segment--icon-only) .icon-container { display: none !important; } .segment .success-icon-container { display: none; } .segment--selected .success-icon-container { display: flex; justify-content: center; align-items: center; } .icon-container { height: 100%; display: flex; justify-content: center; align-items: center; } .segment--selected .icon-container { color: var(--color-selected); }