/** * Copyright Aquera Inc 2023 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import { css } from 'lit'; /** * NavTabGroup CSS */ export const styles = css` [hidden] { display: none; } :host { --indicator-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); --track-color: var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-500)); --track-width: var(--nile-border-width-1, var(--ng-border-width-1)); --tab-gap: var(--nile-spacing-lg, var(--ng-spacing-lg)); -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing)); -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing)); text-rendering: var(--nile-text-rendering, var(--ng-text-rendering)); display: block; --nile-nav-tab-padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-lg, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)) ; } .nav-tab-group { display: flex; border-radius: var(--nile-radius-none, var(--ng-radius-none)); } .nav-tab-group__tabs { display: flex; position: relative; gap: var(--tab-gap); margin: 0; padding: 0; list-style: none; } .hide__track { --track-width: 0px; --tab-gap: var(--nile-spacing-3px, var(--ng-spacing-xs)); } .nav-tab-group__body { display: block; overflow: auto; } /* -------------------------------------------------------------------------- * Nav container, scroll buttons, RTL * -------------------------------------------------------------------------- */ .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container { position: relative; padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg)); } :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container, :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container { padding: 0; } :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav, :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav { scroll-padding-inline: var(--nile-width-20px, var(--ng-width-5)); } .nav-tab-group__scroll-button { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; bottom: 0; width: var(--nile-width-20px, var(--ng-width-5)); } .nav-tab-group__scroll-button--start { left: 0; } .nav-tab-group__scroll-button--end { right: 0; } .nav-tab-group--rtl .nav-tab-group__scroll-button--start { left: auto; right: -20px; } .nav-tab-group--rtl .nav-tab-group__scroll-button--end { left: -20px; right: auto; } /* -------------------------------------------------------------------------- * Indicator, path, pill, no-track * -------------------------------------------------------------------------- */ .nav-tab-group__indicator { position: absolute; transition: 0.3s translate ease, 0.3s width ease; z-index: 2; } .nav-tab-group__indicator__path { position: absolute; height: var(--track-width); width: 100%; background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary)); bottom: 0px; z-index: 0; } .nav-tab-group__indicator--no-track { display: none; } .nav-tab-group__pill { position: absolute; top: 0; left: 0; z-index: 0; box-sizing: border-box; border-radius: var(--nile-nav-tab-radius); background: var(--nile-nav-tab-bg-active); box-shadow: var(--nile-nav-tab-active-box-shadow, none); opacity: 0; pointer-events: none; } .nav-tab-group__pill.nav-tab-group__pill--inactive { opacity: 0; transition: none; transform: none; left: 0; right: auto; top: 0; width: auto; height: auto; } /* Idle: stroke only on the active tab. While moving, .pill--transitioning matches tab border (see positionPill). */ :host([variant='toggle']) .nav-tab-group__pill { border: none; } :host([variant='toggle']) .nav-tab-group__pill.nav-tab-group__pill--transitioning { border: var(--nile-nav-tab-border); overflow: hidden; } /* Shadow lives on the active tab container so selection never flashes unshaded while the pill moves. */ :host([variant='toggle-button']) .nav-tab-group__pill { box-shadow: none; } /* -------------------------------------------------------------------------- * Placement: top * -------------------------------------------------------------------------- */ .nav-tab-group--top { flex-direction: column; } .nav-tab-group--top .nav-tab-group__nav-container { order: 1; } .nav-tab-group--top .nav-tab-group__nav, .nav-tab-group--bottom .nav-tab-group__nav { display: flex; overflow-x: auto; scrollbar-width: none; } .nav-tab-group--top .nav-tab-group__nav::-webkit-scrollbar, .nav-tab-group--bottom .nav-tab-group__nav::-webkit-scrollbar { width: 0; height: 0; } .nav-tab-group--top .nav-tab-group__tabs { flex: 1 1 auto; position: relative; flex-direction: row; } .nav-tab-group--top .nav-tab-group__indicator { bottom: 0px; border-bottom: 2px solid var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); z-index: 0; } .nav-tab-group--top .nav-tab-group__body { order: 2; } .nav-tab-group--top ::slotted(nile-nav-tab-panel) { --padding: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)); } /* -------------------------------------------------------------------------- * Placement: bottom * -------------------------------------------------------------------------- */ .nav-tab-group--bottom { flex-direction: column; } .nav-tab-group--bottom .nav-tab-group__nav-container { order: 2; } .nav-tab-group--bottom .nav-tab-group__tabs { flex: 1 1 auto; position: relative; flex-direction: row; border-top: solid var(--track-width) var(--track-color); } :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button'])) .nav-tab-group--bottom .nav-tab-group__tabs { border-top: none; } :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle'])) .nav-tab-group--top .nav-tab-group__nav, :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle'])) .nav-tab-group--bottom .nav-tab-group__nav { overflow: auto; } /* Symmetric inset so box-shadow isn’t clipped and the strip stays vertically centered (end-only padding made top/bottom look uneven). */ :host([variant='toggle-button']) .nav-tab-group--top .nav-tab-group__nav, :host([variant='toggle-button']) .nav-tab-group--bottom .nav-tab-group__nav { padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs)); box-sizing: border-box; align-items: center; padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs)); } .nav-tab-group--bottom .nav-tab-group__indicator { top: calc(-1 * var(--track-width)); border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } .nav-tab-group--bottom .nav-tab-group__body { order: 1; } .nav-tab-group--bottom ::slotted(nile-nav-tab-panel) { --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)); } /* -------------------------------------------------------------------------- * Placement: start * -------------------------------------------------------------------------- */ .nav-tab-group--start { flex-direction: row; } .nav-tab-group--start .nav-tab-group__nav-container { order: 1; } .nav-tab-group--start .nav-tab-group__tabs { flex: 0 0 auto; flex-direction: column; border-inline-end: solid var(--track-width) var(--track-color); } /* Block-level tab hosts match the flex column and full row height (wrap, multi-line labels). */ .nav-tab-group--start slot[name='nav']::slotted(nile-nav-tab), .nav-tab-group--end slot[name='nav']::slotted(nile-nav-tab) { display: block; width: 100%; box-sizing: border-box; } :host([variant='filled']) .nav-tab-group--start .nav-tab-group__tabs { border-inline-end: none; } .nav-tab-group--start .nav-tab-group__indicator { top: 0; right: calc(-1 * var(--track-width)); border-right: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color); } .nav-tab-group--start .nav-tab-group__body { flex: 1 1 auto; order: 2; } .nav-tab-group--start .nav-tab-group__indicator__path, .nav-tab-group--bottom .nav-tab-group__indicator__path, .nav-tab-group--end .nav-tab-group__indicator__path { display: none; } /* -------------------------------------------------------------------------- * Placement: end * -------------------------------------------------------------------------- */ .nav-tab-group--end { flex-direction: row; } .nav-tab-group--end .nav-tab-group__nav-container { order: 2; } .nav-tab-group--end .nav-tab-group__tabs { flex: 0 0 auto; flex-direction: column; border-inline-start: solid var(--track-width) var(--track-color); } :host([variant='filled']) .nav-tab-group--end .nav-tab-group__tabs { border-inline-start: none; } .nav-tab-group--end .nav-tab-group__indicator { top: 0; left: calc(-1 * var(--track-width)); border-left: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color); } .nav-tab-group--end .nav-tab-group__body { flex: 1 1 auto; order: 1; } /* Start & end: same horizontal panel padding */ .nav-tab-group--start ::slotted(nile-nav-tab-panel), .nav-tab-group--end ::slotted(nile-nav-tab-panel) { --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg)); } /* -------------------------------------------------------------------------- * hide__track: slotted tab tokens * -------------------------------------------------------------------------- */ .hide__track slot::slotted(nile-nav-tab) { --nile-nav-tab-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-height: auto; --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary)); --nile-nav-tab-bg-active: var(--nile-colors-brand-50, var(--ng-colors-bg-brand-primary-alt)); } /* -------------------------------------------------------------------------- * fullWidth * -------------------------------------------------------------------------- */ :host([fullWidth]) .nav-tab-group__tabs { width: 100%; flex: 1 1 auto; } :host([fullWidth]) ::slotted(nile-nav-tab) { flex: 1; min-width: 0; } :host([fullWidth]) .nav-tab-group.nav-tab-group--top .nav-tab-group__tabs { display: flex; } :host([fullWidth]) { --justify-content: center; } /* -------------------------------------------------------------------------- * Variants: filled, neutral-filled, toggle, toggle-button * -------------------------------------------------------------------------- */ :host([variant='filled']) { --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt)); --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs)); --nile-nav-tab-bg-hover: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt)); } :host([variant='neutral-filled']) { --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active)); --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs)); --nile-nav-tab-bg-hover: var(--nile-colors-dark-200, var(--ng-colors-bg-active)); --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); } :host([variant='toggle-button']) .nav-tab-group__nav-container { background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt)); border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-secondary)); border-radius: var(--nile-radius-radius-lg, var(--ng-radius-lg)); } :host([variant='toggle-button'][placement='start']) .nav-tab-group__nav-container, :host([variant='toggle-button'][placement='end']) .nav-tab-group__nav-container { padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs)); padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs)); } :host([variant='toggle-button']) { --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm)); --nile-nav-tab-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent; --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs)); position: relative; box-sizing: border-box; --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs)); --nile-nav-tab-container-overflow: visible; --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); } :host([variant='toggle']) { --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --tab-gap: var(--nile-spacing-xxs, var(--ng-spacing-xxs)); --nile-nav-tab-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-primary)); --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs)); --nile-nav-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent; --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); } :host([variant='toggle']) .nav-tab-group__nav-container { background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt)); border: none; border-radius: var(--nile-border-size-6, var(--ng-radius-sm)); box-sizing: border-box; position: relative; overflow: visible; } :host([variant='toggle']) .nav-tab-group__toggle-frame { position: absolute; inset: 0; box-sizing: border-box; border: var(--nile-width-1px, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-secondary)); border-radius: inherit; pointer-events: none; z-index: 0; } :host([variant='toggle']) .nav-tab-group__nav { position: relative; z-index: 1; } /* -------------------------------------------------------------------------- * Placement start / end: host token overrides * -------------------------------------------------------------------------- */ :host([placement='start']) { --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt)); --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-sm, var(--ng-radius-sm)); --white-space: normal; --nile-nav-tab-height: auto; --word-break: break-word; --overflow-wrap: break-word; --text-align: left; } :host([placement='start'][variant='underline']), :host([placement='start']:not([variant])) { --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover)); --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder)); --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3)); --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); } :host([variant='filled'][placement='start']) .nav-tab-group__tabs, :host([variant='neutral-filled'][placement='start']) .nav-tab-group__tabs, :host([variant='toggle'][placement='start']) .nav-tab-group__tabs, :host([variant='toggle-button'][placement='start']) .nav-tab-group__tabs { border-inline-end: none; --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs)); --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm)); } :host([variant='neutral-filled'][placement='start']) { --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active)); --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); } :host([variant='toggle'][placement='start']) { --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)); } :host([variant='toggle-button'][placement='start']) { --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs)); padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs)); } :host([placement='end']) { --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt)); --nile-nav-tab-radius: 0 var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-sm, var(--ng-radius-sm)) 0; --white-space: normal; --nile-nav-tab-height: auto; --word-break: break-word; --overflow-wrap: break-word; } :host([placement='end'][variant='underline']), :host([placement='end']:not([variant])) { --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover)); --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder)); --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3)); --white-space: normal; --nile-nav-tab-height: auto; --word-break: break-word; --overflow-wrap: break-word; --text-align: left; } :host([variant='filled'][placement='end']) .nav-tab-group__tabs, :host([variant='neutral-filled'][placement='end']) .nav-tab-group__tabs, :host([variant='toggle'][placement='end']) .nav-tab-group__tabs, :host([variant='toggle-button'][placement='end']) .nav-tab-group__tabs { border-inline-start: none; --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs)); --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm)); } :host([variant='neutral-filled'][placement='end']) { --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active)); --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); } :host([variant='toggle'][placement='end']) { --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)); } :host([variant='toggle-button'][placement='end']) { --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)); --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt)); } /* -------------------------------------------------------------------------- * Active tab: slotted token overrides (pill / underline variants) * -------------------------------------------------------------------------- */ :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'])) slot[name='nav']::slotted(nile-nav-tab[active]) { --nile-nav-tab-active-box-shadow: none; } /* Pill variants: paint fill/border only on .nav-tab-container; keep link layer transparent so a * second white plane can’t extend past the border (grey stroke + white fringe). */ :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button'])) slot[name='nav']::slotted(nile-nav-tab) { --tab-active-background-color: transparent; --tab-hover-background-color: transparent; position: relative; z-index: 1; } /* -------------------------------------------------------------------------- * Indicator placement: left (vertical start rail) * -------------------------------------------------------------------------- */ :host([indicatorPlacement='left'][placement='start']) { --nile-nav-tab-bg-active: none; --nile-nav-tab-bg-hover: none; --tab-gap: 8px; --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); --nile-nav-tab-text-color-hover: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); } :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__indicator { top: 0; right: auto; left: calc(-1 * var(--track-width)); border-right: none; border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__tabs { border-inline-end: none; } /* -------------------------------------------------------------------------- * Hover indicator * -------------------------------------------------------------------------- */ .nav-tab-group__hover-indicator { position: absolute; pointer-events: none; opacity: 0; transition: none; z-index: 2; } .nav-tab-group--top .nav-tab-group__hover-indicator { bottom: 0px; height: 0; border-bottom: 2px solid var(--indicator-color); } .nav-tab-group--bottom .nav-tab-group__hover-indicator { top: calc(-1 * var(--track-width)); height: 0; border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } .nav-tab-group--start .nav-tab-group__hover-indicator { top: 0; right: calc(-1 * var(--track-width)); width: 0; border-right: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } .nav-tab-group--end .nav-tab-group__hover-indicator { top: 0; left: calc(-1 * var(--track-width)); width: 0; border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__hover-indicator { top: 0; right: auto; left: calc(-1 * var(--track-width)); border-right: none; border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color); } /* -------------------------------------------------------------------------- * Reduced motion * -------------------------------------------------------------------------- */ @media (prefers-reduced-motion: reduce) { * { animation: none; transition: none; } } :host([placement='bottom'][variant='underline']), :host([placement='bottom']:not([variant])) { --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)); } `; export default [styles];