diff --git a/packages/core/src/components/tab-button/tab-button.ios.scss b/packages/core/src/components/tab-button/tab-button.ios.scss index e6defa8915..a0729119e1 100644 --- a/packages/core/src/components/tab-button/tab-button.ios.scss +++ b/packages/core/src/components/tab-button/tab-button.ios.scss @@ -10,6 +10,10 @@ fill: $tab-button-ios-icon-color; } +.tab-button-ios.focused { + background: $tabbar-ios-background-color-focused; +} + .tab-button-ios .tab-cover { @include padding( $tab-button-ios-padding-top, diff --git a/packages/core/src/components/tab-button/tab-button.md.scss b/packages/core/src/components/tab-button/tab-button.md.scss index 5a0f98ae8f..219e08b737 100644 --- a/packages/core/src/components/tab-button/tab-button.md.scss +++ b/packages/core/src/components/tab-button/tab-button.md.scss @@ -13,6 +13,10 @@ fill: $tab-button-md-icon-color; } +.tab-button-md.focused { + background: $tabbar-md-background-color-focused; +} + .tab-button-md .tab-cover { @include padding( $tab-button-md-padding-top, diff --git a/packages/core/src/components/tab-button/tab-button.scss b/packages/core/src/components/tab-button/tab-button.scss index 1e0c560504..26043e5aae 100644 --- a/packages/core/src/components/tab-button/tab-button.scss +++ b/packages/core/src/components/tab-button/tab-button.scss @@ -41,6 +41,11 @@ ion-tab-button { color: inherit; background: transparent; cursor: pointer; + + &:active, + &:focus { + outline: none; + } } .tab-disabled { diff --git a/packages/core/src/components/tab-button/tab-button.tsx b/packages/core/src/components/tab-button/tab-button.tsx index b654dcf0b7..80cf277a76 100644 --- a/packages/core/src/components/tab-button/tab-button.tsx +++ b/packages/core/src/components/tab-button/tab-button.tsx @@ -1,4 +1,4 @@ -import {Component, Element, Event, EventEmitter, Listen, Prop} from '@stencil/core'; +import {Component, Element, Event, EventEmitter, Listen, Prop, State} from '@stencil/core'; @Component({ @@ -14,6 +14,8 @@ export class TabButton { mode: string; + @State() keyFocus = false; + @Prop() selected = false; @Prop() tab: HTMLIonTabElement; @@ -35,6 +37,14 @@ export class TabButton { ev.stopPropagation(); } + private onKeyUp() { + this.keyFocus = true; + } + + private onBlur() { + this.keyFocus = false; + } + hostData() { const selected = this.selected; const tab = this.tab; @@ -56,6 +66,7 @@ export class TabButton { 'has-badge': hasBadge, 'tab-disabled': tab.disabled, 'tab-hidden': tab.hidden, + 'focused': this.keyFocus } }; } @@ -63,7 +74,12 @@ export class TabButton { render() { const tab = this.tab; return [ -