    /**
     * Creates a visual theme for a Tab
     *
     * @param {string} $ui
     * The name of the UI being created. Can not included spaces or special punctuation
     * (used in CSS class names).
     *
     * @param {color} [$ui-background-color=$tab-base-color]
     * The background-color of Tabs
     *
     * @param {color} [$ui-background-color-over=$tab-base-color-over]
     * The background-color of hovered Tabs
     *
     * @param {color} [$ui-background-color-active=$tab-base-color-active]
     * The background-color of the active Tab
     *
     * @param {color} [$ui-background-color-disabled=$tab-base-color-disabled]
     * The background-color of disabled Tabs
     *
     * @param {list} [$ui-border-radius=$tab-border-radius]
     * The border-radius of Tabs
     *
     * @param {number} [$ui-border-width=$tab-border-width]
     * The border-width of Tabs
     *
     * @param {number/list} [$ui-margin=$tab-margin]
     * The border-width of Tabs
     *
     * @param {number/list} [$ui-padding=$tab-padding]
     * The padding of Tabs
     *
     * @param {number/list} [$ui-text-padding=$tab-text-padding]
     * The padding of the Tab's text element
     *
     * @param {color} [$ui-border-color=$tab-border-color]
     * The border-color of Tabs
     *
     * @param {color} [$ui-border-color-over=$tab-border-color-over]
     * The border-color of hovered Tabs
     *
     * @param {color} [$ui-border-color-active=$tab-border-color-active]
     * The border-color of the active Tab
     *
     * @param {color} [$ui-border-color-disabled=$tab-border-color-disabled]
     * The border-color of disabled Tabs
     *
     * @param {string} [$ui-cursor=$tab-cursor]
     * The Tab cursor
     *
     * @param {string} [$ui-cursor-disabled=$tab-cursor-disabled]
     * The cursor of disabled Tabs
     *
     * @param {number} [$ui-font-size=$tab-font-size]
     * The font-size of Tabs
     *
     * @param {number} [$ui-font-size-over=$tab-font-size-over]
     * The font-size of hovered Tabs
     *
     * @param {number} [$ui-font-size-active=$tab-font-size-active]
     * The font-size of the active Tab
     *
     * @param {number} [$ui-font-size-disabled=$tab-font-size-disabled]
     * The font-size of disabled Tabs
     *
     * @param {string} [$ui-font-weight=$tab-font-weight]
     * The font-weight of Tabs
     *
     * @param {string} [$ui-font-weight-over=$tab-font-weight-over]
     * The font-weight of hovered Tabs
     *
     * @param {string} [$ui-font-weight-active=$tab-font-weight-active]
     * The font-weight of the active Tab
     *
     * @param {string} [$ui-font-weight-disabled=$tab-font-weight-disabled]
     * The font-weight of disabled Tabs
     *
     * @param {string} [$ui-font-family=$tab-font-family]
     * The font-family of Tabs
     *
     * @param {string} [$ui-font-family-over=$tab-font-family-over]
     * The font-family of hovered Tabs
     *
     * @param {string} [$ui-font-family-active=$tab-font-family-active]
     * The font-family of the active Tab
     *
     * @param {string} [$ui-font-family-disabled=$tab-font-family-disabled]
     * The font-family of disabled Tabs
     *
     * @param {number} [$ui-line-height=$tab-line-height]
     * The line-height of Tabs
     *
     * @param {color} [$ui-color=$tab-color]
     * The text color of Tabs
     *
     * @param {color} [$ui-color-over=$tab-color-over]
     * The text color of hovered Tabs
     *
     * @param {color} [$ui-color-active=$tab-color-active]
     * The text color of the active Tab
     *
     * @param {color} [$ui-color-disabled=$tab-color-disabled]
     * The text color of disabled Tabs
     *
     * @param {string/list} [$ui-background-gradient=$tab-background-gradient]
     * The background-gradient for Tabs. Can be either the name of a predefined gradient
     * or a list of color stops. Used as the `$type` parameter for
     * {@link Global_CSS#background-gradient}.
     *
     * @param {string/list} [$ui-background-gradient-over=$tab-background-gradient-over]
     * The background-gradient for hovered Tabs. Can be either the name of a predefined gradient
     * or a list of color stops. Used as the `$type` parameter for
     * {@link Global_CSS#background-gradient}.
     *
     * @param {string/list} [$ui-background-gradient-active=$tab-background-gradient-active]
     * The background-gradient for the active Tab. Can be either the name of a predefined gradient
     * or a list of color stops. Used as the `$type` parameter for
     * {@link Global_CSS#background-gradient}.
     *
     * @param {string/list} [$ui-background-gradient-disabled=$tab-background-gradient-disabled]
     * The background-gradient for disabled Tabs. Can be either the name of a predefined gradient
     * or a list of color stops. Used as the `$type` parameter for
     * {@link Global_CSS#background-gradient}.
     *
     * @param {number} [$ui-inner-border-width=$tab-inner-border-width]
     * The inner border-width of Tabs
     *
     * @param {color} [$ui-inner-border-color=$tab-inner-border-color]
     * The inner border-color of Tabs
     *
     * @param {number} [$ui-icon-width=$tab-icon-width]
     * The width of the Tab close icon
     *
     * @param {number} [$ui-icon-height=$tab-icon-height]
     * The height of the Tab close icon
     *
     * @param {number} [$ui-icon-spacing=$tab-icon-spacing]
     * the space in between the text and the close button
     *
     * @param {list} [$ui-icon-background-position=$tab-icon-background-position]
     * The background-position of Tab icons
     *
     * @param {color} [$ui-glyph-color=$tab-glyph-color]
     * The color of Tab glyph icons
     *
     * @param {color} [$ui-glyph-color-over=$tab-glyph-color-over]
     * The color of a Tab glyph icon when the Tab is hovered
     *
     * @param {color} [$ui-glyph-color-active=$tab-glyph-color-active]
     * The color of a Tab glyph icon when the Tab is active
     *
     * @param {color} [$ui-glyph-color-disabled=$tab-glyph-color-disabled]
     * The color of a Tab glyph icon when the Tab is disabled
     *
     * @param {number} [$ui-glyph-opacity=$tab-glyph-opacity]
     * The opacity of a Tab glyph icon
     *
     * @param {number} [$ui-glyph-opacity-disabled=$tab-glyph-opacity-disabled]
     * The opacity of a Tab glyph icon when the Tab is disabled
     *
     * @param {number} [$ui-opacity-disabled=$tab-opacity-disabled]
     * opacity to apply to the tab's main element when the tab is disabled
     *
     * @param {number} [$ui-text-opacity-disabled=$tab-text-opacity-disabled]
     * opacity to apply to the tab's text element when the tab is disabled
     *
     * @param {number} [$ui-icon-opacity-disabled=$tab-icon-opacity-disabled]
     * opacity to apply to the tab's icon element when the tab is disabled
     *
     * @param {number} [$ui-closable-icon-width=$tab-closable-icon-width]
     * The width of the Tab close icon
     *
     * @param {number} [$ui-closable-icon-height=$tab-closable-icon-height]
     * The height of the Tab close icon
     *
     * @param {number} [$ui-closable-icon-top=$tab-closable-icon-top]
     * The distance to offset the Tab close icon from the top of the tab
     *
     * @param {number} [$ui-closable-icon-right=$tab-closable-icon-right]
     * The distance to offset the Tab close icon from the right of the tab
     *
     * @param {number} [$ui-closable-icon-spacing=$tab-closable-icon-spacing]
     * The space in between the text and the close button
     *
     * @param {color} [$ui-border-bottom-color=$tabbar-strip-border-color]
     * The bottom border color of inactive tabs.
     *
     * @member Ext.tab.Tab
     */
    @mixin extjs-tab-ui(
        $ui,

        $ui-background-color: $tab-base-color,
        $ui-background-color-over: $tab-base-color-over,
        $ui-background-color-active: $tab-base-color-active,
        $ui-background-color-disabled: $tab-base-color-disabled,
        $ui-border-radius: $tab-border-radius,
        $ui-border-width: $tab-border-width,
        $ui-margin: $tab-margin,
        $ui-padding: $tab-padding,
        $ui-text-padding: $tab-text-padding,
        $ui-border-color: $tab-border-color,
        $ui-border-color-over: $tab-border-color-over,
        $ui-border-color-active: $tab-border-color-active,
        $ui-border-color-disabled: $tab-border-color-disabled,
        $ui-cursor: $tab-cursor,
        $ui-cursor-disabled: $tab-cursor-disabled,
        $ui-font-size: $tab-font-size,
        $ui-font-size-over: $tab-font-size-over,
        $ui-font-size-active: $tab-font-size-active,
        $ui-font-size-disabled: $tab-font-size-disabled,
        $ui-font-weight: $tab-font-weight,
        $ui-font-weight-over: $tab-font-weight-over,
        $ui-font-weight-active: $tab-font-weight-active,
        $ui-font-weight-disabled: $tab-font-weight-disabled,
        $ui-font-family: $tab-font-family,
        $ui-font-family-over: $tab-font-family-over,
        $ui-font-family-active: $tab-font-family-active,
        $ui-font-family-disabled: $tab-font-family-disabled,
        $ui-line-height: $tab-line-height,
        $ui-color: $tab-color,
        $ui-color-over: $tab-color-over,
        $ui-color-active: $tab-color-active,
        $ui-color-disabled: $tab-color-disabled,
        $ui-background-gradient: $tab-background-gradient,
        $ui-background-gradient-over: $tab-background-gradient-over,
        $ui-background-gradient-active: $tab-background-gradient-active,
        $ui-background-gradient-disabled: $tab-background-gradient-disabled,

        $ui-inner-border-width: $tab-inner-border-width,
        $ui-inner-border-color: $tab-inner-border-color,

        $ui-icon-width: $tab-icon-width,
        $ui-icon-height: $tab-icon-height,
        $ui-icon-spacing: $tab-icon-spacing,
        $ui-icon-background-position: $tab-icon-background-position,

        $ui-glyph-color: $tab-glyph-color,
        $ui-glyph-color-over: $tab-glyph-color-over,
        $ui-glyph-color-active: $tab-glyph-color-active,
        $ui-glyph-color-disabled: $tab-glyph-color-disabled,
        $ui-glyph-opacity: $tab-glyph-opacity,
        $ui-glyph-opacity-disabled: $tab-glyph-opacity-disabled,

        $ui-opacity-disabled: $tab-opacity-disabled,
        $ui-text-opacity-disabled: $tab-text-opacity-disabled,
        $ui-icon-opacity-disabled: $tab-icon-opacity-disabled,

        $ui-closable-icon-width: $tab-closable-icon-width,
        $ui-closable-icon-height: $tab-closable-icon-height,
        $ui-closable-icon-top: $tab-closable-icon-top,
        $ui-closable-icon-right: $tab-closable-icon-right,
        $ui-closable-icon-spacing: $tab-closable-icon-spacing,

        $ui-border-bottom-color: $tabbar-strip-border-color
    ) {
        $frame-border-width: $ui-border-width $ui-border-width 0 $ui-border-width;
        @include x-frame(
            $cls: 'tab',
            $ui: $ui + '-top',
            $border-radius: $ui-border-radius,
            $border-width: $frame-border-width,
            $background-color: $ui-background-color,
            $background-gradient: $ui-background-gradient,
            $background-direction: top,
            $padding: $ui-padding,
            $table: true
        );

        @include x-frame(
            $cls: 'tab',
            $ui: $ui + '-bottom',
            $border-radius: rotate180($ui-border-radius),
            $border-width: rotate180($frame-border-width),
            $background-color: $ui-background-color,
            $background-gradient: $ui-background-gradient,
            $background-direction: bottom,
            $padding: $ui-padding,
            $table: true
        );

        @include x-frame(
            $cls: 'tab',
            $ui: $ui + '-left',
            $border-radius: $ui-border-radius,
            $border-width: $frame-border-width,
            $background-color: $ui-background-color,
            $background-gradient: $ui-background-gradient,
            $background-direction: top,
            $padding: $ui-padding,
            $table: true,
            $img-ui: $ui + '-top'
        );

        @include x-frame(
            $cls: 'tab',
            $ui: $ui + '-right',
            $border-radius: $ui-border-radius,
            $border-width: $frame-border-width,
            $background-color: $ui-background-color,
            $background-gradient: $ui-background-gradient,
            $background-direction: top,
            $padding: $ui-padding,
            $table: true,
            $img-ui: $ui + '-top'
        );

        .#{$prefix}tab-#{$ui} {
            border-color: $ui-border-color;
            margin: $ui-margin;
            @if $ui-cursor != null { cursor: $ui-cursor; }

            .#{$prefix}tab-inner {
                font-size: $ui-font-size;
                font-weight: $ui-font-weight;
                font-family: $ui-font-family;
                color: $ui-color;
                line-height: $ui-line-height;
                @if $ui-text-padding != 0 {
                    padding: $ui-text-padding;
                }
            }
            .#{$prefix}tab-icon-el {
                width: $ui-icon-width;
                height: $ui-icon-height;
                line-height: $ui-icon-height;
                background-position: $ui-icon-background-position;
            }

            .#{$prefix}tab-glyph {
                font-size: $ui-icon-height;
                color: $ui-glyph-color;
                @if $ui-glyph-opacity != 1 {
                    // do not use the opacity mixin because we do not want IE's filter version of
                    // opacity to be included.  We emulate the opacity setting in IE8m by mixing
                    // the icon color into the background color. (see below)
                    opacity: $ui-glyph-opacity;
                }
                // In IE8 and below when a glyph contains partially transparent pixels, we
                // can't apply an opacity filter to the glyph element, because IE8m will render
                //  the partially transparent pixels of the glyph as black. To work around this,
                // we emulate the approximate color that the glyph would have if it had opacity
                // applied by mixing the glyph color with the tab's background-color.
                .#{$prefix}ie8m & {
                    color: mix($ui-glyph-color, $ui-background-color, $ui-glyph-opacity * 100);
                }
            }

            @if $include-ie {
                // EXTJSIV-8765: vertical tabs get shifted to the left when focused.  To work
                // around this, we move the left padding to the tab-button el.
                .#{$prefix}strict .#{$prefix}ie9 .#{$prefix}tab-bar-vertical & {
                    padding-left: 0;

                    .#{$prefix}tab-button {
                        padding-left: left($ui-padding);
                    }

                    .#{$prefix}tab-icon-el {
                        left: left($ui-padding);
                    }
                }
            }
        }

        .#{$prefix}tab-#{$ui}-icon {
            .#{$prefix}tab-inner {
                // even though there is no text we set a width and padding as buttons shrink-wrap around this element
                width: $ui-icon-width;
            }
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui} {
                margin: rtl($ui-margin);
            }
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui} {
                margin: rtl($ui-margin);
            }
        }

        .#{$prefix}tab-#{$ui}-left {
            margin: rtl($ui-margin);
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui}-left {
                margin: $ui-margin;
            }
        }

        .#{$prefix}tab-#{$ui}-top,
        .#{$prefix}tab-#{$ui}-left,
        .#{$prefix}tab-#{$ui}-right {
            border-bottom: $ui-border-width solid $ui-border-bottom-color;

            @if $ui-background-gradient != null {
                @include background-gradient($ui-background-color, $ui-background-gradient, top);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-top, 'tab/tab-#{$ui}-top-bg');
                    }
                }
            }

            @if $ui-inner-border-width != 0 {
                @include inner-border(
                    $width: $ui-inner-border-width,
                    $color: $ui-inner-border-color
                );
            }
        }

        .#{$prefix}tab-#{$ui}-bottom {
            border-top: $ui-border-width solid $ui-border-bottom-color;

            @if $ui-background-gradient != null {
                @include background-gradient($ui-background-color, $ui-background-gradient, bottom);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-bottom, 'tab/tab-#{$ui}-bottom-bg');
                    }
                }
            }

            @if $ui-inner-border-width != 0 {
                @include inner-border(
                    $width: flip-vertical($ui-inner-border-width),
                    $color: $ui-inner-border-color
                );
            }
        }

        .#{$prefix}tab-#{$ui}-left {
            @include rotate-element($angle: 270);

            @if $tab-left-rotate-direction == 'right' {
                .#{$prefix}tab-wrap {
                    @include rotate-element($angle: 180);
                }
            }
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui}-left {
                @include rotate-element($angle: 90);
            }
        }

        .#{$prefix}tab-#{$ui}-right {
            @include rotate-element($angle: 90);

            @if $tab-right-rotate-direction == 'left' {
                .#{$prefix}tab-wrap {
                    @include rotate-element($angle: 180);
                }
            }
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui}-right {
                @include rotate-element($angle: 270);
            }
        }

        .#{$prefix}tab-#{$ui}-icon-text-left {
            .#{$prefix}tab-inner {
                padding-left: $ui-icon-width + $ui-icon-spacing + left($ui-text-padding);
            }
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui}-icon-text-left {
                .#{$prefix}tab-inner {
                    padding-left: 0;
                    padding-right: $ui-icon-width + $ui-icon-spacing + left($ui-text-padding);
                }
            }
        }

        .#{$prefix}tab-#{$ui}-over {
            @if $ui-border-color-over != $ui-border-color {
                border-color: $ui-border-color-over;
            }

            @if $ui-background-color-over != $ui-background-color {
                background-color: $ui-background-color-over;
            }

            .#{$prefix}tab-inner {
                @if $ui-color-over != $ui-color {
                    color: $ui-color-over;
                }
                @if $ui-font-weight-over != $ui-font-weight {
                    font-weight: $ui-font-weight-over;
                }
                @if $ui-font-size-over != $ui-font-size {
                    font-size: $ui-font-size-over;
                }
                @if $ui-font-family-over != $ui-font-family {
                    font-family: $ui-font-family-over;
                }
            }

            .#{$prefix}tab-glyph {
                color: $ui-glyph-color-over;
                // In IE8 and below when a glyph contains partially transparent pixels, we
                // can't apply an opacity filter to the glyph element, because IE8m will render
                //  the partially transparent pixels of the glyph as black. To work around this,
                // we emulate the approximate color that the glyph would have if it had opacity
                // applied by mixing the glyph color with the tab's background-color.
                .#{$prefix}ie8m & {
                    color: mix($ui-glyph-color-over, $ui-background-color-over, $ui-glyph-opacity * 100);
                }
            }
        }

        @if $ui-background-gradient-over != null {
            .#{$prefix}tab-#{$ui}-top-over,
            .#{$prefix}tab-#{$ui}-left-over,
            .#{$prefix}tab-#{$ui}-right-over {
                @include background-gradient($ui-background-color-over, $ui-background-gradient-over, top);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-top-over, 'tab/tab-#{$ui}-top-over-bg');
                    }
                }
            }
            .#{$prefix}tab-#{$ui}-bottom-over {
                @include background-gradient($ui-background-color-over, $ui-background-gradient-over, bottom);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-bottom-over, 'tab/tab-#{$ui}-bottom-over-bg');
                    }
                }
            }
        }

        .#{$prefix}tab-#{$ui}-active {
            @if $ui-border-color-active != $ui-border-color {
                border-color: $ui-border-color-active;
            }
            background-color: $ui-background-color-active;

            .#{$prefix}tab-inner {
                @if $ui-color-active != $ui-color {
                    color: $ui-color-active;
                }
                @if $ui-font-weight-active != $ui-font-weight {
                    font-weight: $ui-font-weight-active;
                }
                @if $ui-font-size-active != $ui-font-size {
                    font-size: $ui-font-size-active;
                }
                @if $ui-font-family-active != $ui-font-family {
                    font-family: $ui-font-family-active;
                }
            }

            .#{$prefix}tab-glyph {
                color: $ui-glyph-color-active;
                // In IE8 and below when a glyph contains partially transparent pixels, we
                // can't apply an opacity filter to the glyph element, because IE8m will render
                //  the partially transparent pixels of the glyph as black. To work around this,
                // we emulate the approximate color that the glyph would have if it had opacity
                // applied by mixing the glyph color with the tab's background-color.
                .#{$prefix}ie8m & {
                    color: mix($ui-glyph-color-active, $ui-background-color-active, $ui-glyph-opacity * 100);
                }
            }
        }

        .#{$prefix}tab-#{$ui}-top-active,
        .#{$prefix}tab-#{$ui}-left-active,
        .#{$prefix}tab-#{$ui}-right-active {
            border-bottom: $ui-border-width solid $ui-background-color-active;
            @if $ui-background-gradient-active != null {
                @include background-gradient($ui-background-color-active, $ui-background-gradient-active, top);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-top-active, 'tab/tab-#{$ui}-top-active-bg');
                    }
                }
            }
        }

        .#{$prefix}tab-#{$ui}-bottom-active {
            border-top: $ui-border-width solid $ui-background-color-active;
            @if $ui-background-gradient-active != null {
                @include background-gradient($ui-background-color-active, $ui-background-gradient-active, bottom);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-bottom-active, 'tab/tab-#{$ui}-bottom-active-bg');
                    }
                }
            }
        }

        .#{$prefix}tab-#{$ui}-disabled {
            @if $ui-border-color-disabled != $ui-border-color {
                border-color: $ui-border-color-disabled;
            }

            @if $ui-opacity-disabled != 1 {
                @include opacity($ui-opacity-disabled);
            }

            @if $ui-cursor-disabled != null {
                cursor: $ui-cursor-disabled;
            }

            .#{$prefix}tab-inner {
                @if $ui-color-disabled != $ui-color {
                    color: $ui-color-disabled;
                }
                @if $ui-font-weight-disabled != $ui-font-weight {
                    font-weight: $ui-font-weight-disabled;
                }
                @if $ui-font-size-disabled != $ui-font-size {
                    font-size: $ui-font-size-disabled;
                }
                @if $ui-font-family-disabled != $ui-font-family {
                    font-family: $ui-font-family-disabled;
                }
                @if $ui-text-opacity-disabled != 1 {
                    @include opacity($ui-text-opacity-disabled);
                }
            }

            @if $ui-icon-opacity-disabled != 1 {
                .#{$prefix}tab-icon-el {
                    @include opacity($ui-icon-opacity-disabled);
                }
            }

            .#{$prefix}tab-glyph {
                color: $ui-glyph-color-disabled;
                @if $ui-glyph-opacity-disabled != 1 {
                    // do not use the opacity mixin because we do not want IE's filter version of
                    // opacity to be included.  We emulate the opacity setting in IE8m by mixing
                    // the icon color into the background color. (see below)
                    opacity: $ui-glyph-opacity-disabled;
                }
                filter: none; // override opacity from tab-icon-el
                // In IE8 and below when a glyph contains partially transparent pixels, we
                // can't apply an opacity filter to the glyph element, because IE8m will render
                //  the partially transparent pixels of the glyph as black. To work around this,
                // we emulate the approximate color that the glyph would have if it had opacity
                // applied by mixing the glyph color with the tab's background-color.
                .#{$prefix}ie8m & {
                    color: mix($ui-glyph-color-disabled, $ui-background-color-disabled, $ui-glyph-opacity-disabled * 100);
                }
            }
        }

        $disabled-border-color: $ui-border-color-disabled $ui-border-color-disabled $ui-border-bottom-color;
        .#{$prefix}tab-#{$ui}-top-disabled,
        .#{$prefix}tab-#{$ui}-left-disabled,
        .#{$prefix}tab-#{$ui}-right-disabled {
            border-color: $disabled-border-color;
        }

        .#{$prefix}tab-#{$ui}-bottom-disabled {
            border-color: rotate180($disabled-border-color);
        }

        @if $ui-background-gradient-disabled != null {
            .#{$prefix}tab-#{$ui}-top-disabled,
            .#{$prefix}tab-#{$ui}-left-disabled,
            .#{$prefix}tab-#{$ui}-right-disabled {
                @include background-gradient($ui-background-color-disabled, $ui-background-gradient-disabled, top);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-top-disabled, 'tab/tab-#{$ui}-top-disabled-bg');
                    }
                }
            }
            .#{$prefix}tab-#{$ui}-bottom-disabled {
                @include background-gradient($ui-background-color-disabled, $ui-background-gradient-disabled, bottom);

                @if not $supports-gradients or $compile-all {
                    .#{$prefix}nlg & {
                        background-image: slicer-background-image(tab-#{$ui}-bottom-disabled, 'tab/tab-#{$ui}-bottom-disabled-bg');
                    }
                }
            }
        }

        @if not $supports-border-radius or $compile-all {
            .#{$prefix}nbr .#{$prefix}tab-#{$ui} {
                background-image: none;
            }
            .#{$prefix}tab-#{$ui}-top-over,
            .#{$prefix}tab-#{$ui}-left-over,
            .#{$prefix}tab-#{$ui}-right-over {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-top-over, 'tab/tab-#{$ui}-top-over-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-top-over, 'tab/tab-#{$ui}-top-over-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-over;
                    @if $ui-background-gradient-over != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-top-over, 'tab/tab-#{$ui}-top-over-fbg');
                    }
                }
            }

            .#{$prefix}tab-#{$ui}-bottom-over {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-bottom-over, 'tab/tab-#{$ui}-bottom-over-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-bottom-over, 'tab/tab-#{$ui}-bottom-over-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-over;
                    @if $ui-background-gradient-over != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-bottom-over, 'tab/tab-#{$ui}-bottom-over-fbg');
                    }
                }
            }

            .#{$prefix}tab-#{$ui}-top-active,
            .#{$prefix}tab-#{$ui}-left-active,
            .#{$prefix}tab-#{$ui}-right-active {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-top-active, 'tab/tab-#{$ui}-top-active-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-top-active, 'tab/tab-#{$ui}-top-active-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-active;
                    @if $ui-background-gradient-active != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-top-active, 'tab/tab-#{$ui}-top-active-fbg');
                    }
                }
            }

            .#{$prefix}tab-#{$ui}-bottom-active {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-bottom-active, 'tab/tab-#{$ui}-bottom-active-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-bottom-active, 'tab/tab-#{$ui}-bottom-active-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-active;
                    @if $ui-background-gradient-active != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-bottom-active, 'tab/tab-#{$ui}-bottom-active-fbg');
                    }
                }
            }

            .#{$prefix}tab-#{$ui}-top-disabled,
            .#{$prefix}tab-#{$ui}-left-disabled,
            .#{$prefix}tab-#{$ui}-right-disabled {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-top-disabled, 'tab/tab-#{$ui}-top-disabled-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-top-disabled, 'tab/tab-#{$ui}-top-disabled-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-disabled;
                    @if $ui-background-gradient-disabled != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-top-disabled, 'tab/tab-#{$ui}-top-disabled-fbg');
                    }
                }
            }

            .#{$prefix}tab-#{$ui}-bottom-disabled {
                .#{$prefix}frame-tl,
                .#{$prefix}frame-bl,
                .#{$prefix}frame-tr,
                .#{$prefix}frame-br,
                .#{$prefix}frame-tc,
                .#{$prefix}frame-bc {
                    background-image: slicer-corner-sprite(tab-#{$ui}-bottom-disabled, 'tab/tab-#{$ui}-bottom-disabled-corners');
                }
                .#{$prefix}frame-ml,
                .#{$prefix}frame-mr {
                    background-image: slicer-sides-sprite(tab-#{$ui}-bottom-disabled, 'tab/tab-#{$ui}-bottom-disabled-sides');
                }
                .#{$prefix}frame-mc {
                    background-color: $ui-background-color-disabled;
                    @if $ui-background-gradient-disabled != null {
                        background-repeat: repeat-x;
                        background-image: slicer-frame-background-image(tab-#{$ui}-bottom-disabled, 'tab/tab-#{$ui}-bottom-disabled-fbg');
                    }
                }
            }

            @if $ui-border-width != 0 {
                .#{$prefix}nbr {
                    // frame.scss sets border:0 !important on the tab element in nbr mode.  We
                    // need an override  with !important to add the bottom-border back since
                    // tabs are special and need the bottom-border to hide the tab-strip's
                    // border when the tab is active.
                    // This needs to be wrapped in an x-nbr rule to be more specific than
                    // the rule that removes the border in x-frame
                    .#{$prefix}tab-#{$ui}-top,
                    .#{$prefix}tab-#{$ui}-left,
                    .#{$prefix}tab-#{$ui}-right {
                        border-bottom-width: $ui-border-width !important;
                    }
                    .#{$prefix}tab-#{$ui}-bottom {
                        border-top-width: $ui-border-width !important;
                    }
                }
            }
        }

        .#{$prefix}tab-#{$ui} {
            .#{$prefix}tab-close-btn {
                width: $ui-closable-icon-width;
                height: $ui-closable-icon-height;
                background-image: theme-background-image('tab/tab-#{$ui}-close');
                @if $tab-closable-icon-opacity != 1 {
                    @include opacity($tab-closable-icon-opacity);
                }
            }

            .#{$prefix}tab-close-btn-over {
                @if  $tab-closable-icon-opacity-over != $tab-closable-icon-opacity {
                    @include opacity($tab-closable-icon-opacity-over);
                }
                @if $tab-closable-icon-include-hover-background-position {
                    background-position: (-$tab-closable-icon-width) 0;
                }
            }
        }

        .#{$prefix}tab-#{$ui} .#{$prefix}tab-close-btn {
            top: $ui-closable-icon-top;
            right: $ui-closable-icon-right;
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui} .#{$prefix}tab-close-btn {
                right: auto;
                left: $ui-closable-icon-right;
            }
        }

        @if $tab-left-rotate-direction == 'right' {
            .#{$prefix}tab-#{$ui}-left .#{$prefix}tab-close-btn {
                top: auto;
                right: auto;
                bottom: $ui-closable-icon-top;
                left: $ui-closable-icon-right;
            }

            @if $include-rtl {
                .#{$prefix}rtl.#{$prefix}tab-#{$ui}-left .#{$prefix}tab-close-btn {
                    left: auto;
                    right: $ui-closable-icon-right;
                }
            }
        }

        @if $tab-right-rotate-direction == 'left' {
            .#{$prefix}tab-#{$ui}-right .#{$prefix}tab-close-btn {
                top: auto;
                right: auto;
                bottom: $ui-closable-icon-top;
                left: $ui-closable-icon-right;
            }

            @if $include-rtl {
                .#{$prefix}rtl.#{$prefix}tab-#{$ui}-right .#{$prefix}tab-close-btn {
                    left: auto;
                    right: $ui-closable-icon-right;
                }
            }
        }

        .#{$prefix}tab-#{$ui}-disabled .#{$prefix}tab-close-btn {
            @if $tab-closable-icon-opacity-disabled != $tab-closable-icon-opacity or $tab-closable-icon-opacity-disabled != $tab-closable-icon-opacity-over {
                @include opacity($tab-closable-icon-opacity-disabled);
            }
            @if $tab-closable-icon-include-hover-background-position {
                background-position: 0 0;
            }
        }

        @if $tab-closable-icon-include-pressed-background-position {
            .#{$prefix}tab-#{$ui}-pressed .#{$prefix}tab-close-btn {
                background-position: (-$ui-closable-icon-width * 2) 0;
            }
        }

        .#{$prefix}tab-#{$ui}-closable .#{$prefix}tab-wrap {
            padding-right: $ui-closable-icon-width + $ui-closable-icon-spacing;
        }

        @if $include-rtl {
            .#{$prefix}rtl.#{$prefix}tab-#{$ui}-closable .#{$prefix}tab-wrap {
                padding-right: 0px;
                padding-left: $ui-closable-icon-width + $ui-closable-icon-spacing;
            }
        }

        @if $include-ie {
            .#{$prefix}ie9m {
                @if $tab-left-rotate-direction == 'right' {
                    .#{$prefix}tab-#{$ui}-closable-left .#{$prefix}tab-icon-el {
                        left: auto;
                        right: 0;
                    }

                    @if $include-rtl {
                        .#{$prefix}rtl.#{$prefix}tab-#{$ui}-closable-left .#{$prefix}tab-icon-el {
                            right: auto;
                            left: 0;
                        }
                    }
                }

                @if $tab-right-rotate-direction == 'left' {
                    .#{$prefix}tab-#{$ui}-closable-right .#{$prefix}tab-icon-el {
                        left: auto;
                        right: 0;
                    }

                    @if $include-rtl {
                        .#{$prefix}rtl.#{$prefix}tab-#{$ui}-closable-right .#{$prefix}tab-icon-el {
                            right: auto;
                            left: 0;
                        }
                    }
                }
            }
        }

        @include x-slicer(tab-#{$ui}-top-over);
        @include x-slicer(tab-#{$ui}-bottom-over);
        @include x-slicer(tab-#{$ui}-top-active);
        @include x-slicer(tab-#{$ui}-bottom-active);
        @include x-slicer(tab-#{$ui}-top-disabled);
        @include x-slicer(tab-#{$ui}-bottom-disabled);
    }