/
githubmirror
/
ionic-framework
Обзор
Документация
Войти
/
githubmirror
/
ionic-framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
core/src/components/tab-button/tab-button.scss
195 строк
4 KB
Brandy Carney
feat(components): improve button states and add new css properties (#19440)
24 янв 2020, 00:57
Не верифицирован
24 янв 2020, 00:57
9415929
Код
Авторство
О чём код?
@import "../../themes/ionic.globals"; :host { /** * @prop --background: Background of the tab button * @prop --background-focused: Background of the tab button when focused with the tab key * @prop --background-focused-opacity: Opacity of the tab button background when focused with the tab key * * @prop --color: Color of the tab button * @prop --color-focused: Color of the tab button when focused with the tab key * @prop --color-selected: Color of the selected tab button * * @prop --padding-top: Top padding of the tab button * @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the tab button * @prop --padding-bottom: Bottom padding of the tab button * @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the tab button * * @prop --ripple-color: Color of the button ripple effect */ --ripple-color: var(--color-selected); --background-focused-opacity: 1; flex: 1; flex-direction: column; align-items: center; justify-content: center; height: 100%; outline: none; background: var(--background); color: var(--color); } // Tab Button: Native // -------------------------------------------------- .button-native { @include border-radius(inherit); @include margin(0); @include padding(var(--padding-top), var(--padding-end), var(--padding-bottom), var(--padding-start)); @include text-inherit(); display: flex; position: relative; flex-direction: inherit; align-items: inherit; justify-content: inherit; width: 100%; height: 100%; border: 0; outline: none; background: transparent; text-decoration: none; cursor: pointer; overflow: hidden; box-sizing: border-box; -webkit-user-drag: none; } .button-native::after { @include button-state(); } .button-inner { display: flex; position: relative; flex-flow: inherit; align-items: inherit; justify-content: inherit; width: 100%; height: 100%; z-index: 1; } // Tab Button: States // -------------------------------------------------- :host(.ion-focused) .button-native { color: var(--color-focused); &::after { background: var(--background-focused); opacity: var(--background-focused-opacity); } } @media (any-hover: hover) { a:hover { color: var(--color-selected); } } :host(.tab-selected) { color: var(--color-selected); } :host(.tab-hidden) { /* stylelint-disable-next-line declaration-no-important */ display: none !important; } :host(.tab-disabled) { pointer-events: none; opacity: .4; } // Tab Button: Label / Icon // -------------------------------------------------- ::slotted(ion-label), ::slotted(ion-icon) { display: block; align-self: center; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; box-sizing: border-box; } ::slotted(ion-label) { order: 0; } ::slotted(ion-icon) { order: -1; height: 1em; } :host(.tab-has-label-only) ::slotted(ion-label) { white-space: normal; } // Tab Button: Badge // -------------------------------------------------- ::slotted(ion-badge) { box-sizing: border-box; position: absolute; z-index: 1; } // Tab Button: Layout // -------------------------------------------------- :host(.tab-layout-icon-start) { flex-direction: row; } :host(.tab-layout-icon-end) { flex-direction: row-reverse; } :host(.tab-layout-icon-bottom) { flex-direction: column-reverse; } :host(.tab-layout-icon-hide) ::slotted(ion-icon) { display: none; } :host(.tab-layout-label-hide) ::slotted(ion-label) { display: none; } ion-ripple-effect { color: var(--ripple-color); }