HomePluginsToolsWorkflowAboutContact
GetSet

Premium UI/UX layout engines, customizable micro-interaction plugins, and high-performance components for modern web developers.

Plugins

  • Carousel
  • Select
  • Zoom
  • FlexoGrid
  • Sortable
  • Modal
  • Drawer
  • Tooltip
  • Popover
  • Toast
  • ContextMenu
  • Tabs
  • Accordion
  • Reveal
  • Autocomplete
  • Tags
  • Range
  • DatePicker
  • Upload
  • Cropper
  • Table
  • Tree
  • Editor

Company

  • Home
  • Plugins
  • Developer Tools
  • Showcase
  • Our Process
  • About Us
  • Contact

Policies

  • Terms and Conditions
  • Privacy Policy
  • Accessibility Policy
  • Cookie Policy

© 2026 GetSet. All rights reserved.

Crafted for frontend excellence.

Your Bundle

Your bundle is empty

Add plugins from the catalog to build one combined CDN link — like picking font families.

Browse plugins
Layout Plugin

GS Tabs

Tabs with line, pill, enclosed and segment variants, a sliding indicator, vertical mode, lazy panels and closable/addable/draggable tabs.

Latest: v1.0.2
Downloads last month: 172
Visit Demo Website

Install Package

npm i @get-set/gs-tabs
or via CDN
<link rel="stylesheet" href="https://cdn.get-set.it/gs-tabs/latest/gs-tabs.min.css">
<script src="https://cdn.get-set.it/gs-tabs/latest/gs-tabs.min.js"></script>
Interactive Playground

Live Sandbox

Tabs.jsx
1
2
3
4
5
6
7
8
9
import Tabs from '@get-set/gs-tabs';

export default function App() {
  return (
    <Tabs>
      <div className="content">Your Tabs content</div>
    </Tabs>
  );
}
Live Preview

Options

Configuration Values

Reference?Reference option.
Active Tab?Controlled active tab id (or index).
Default Active Tab?Uncontrolled initial active tab id (or index).
Orientation?Layout axis of the tablist.
Tab Position?Tablist placement relative to the panels.
Variant?Visual variant. Default: 'line'.
Size?Size preset. Default: 'md'.
Align?Tab distribution within the tablist.
Animation?Panel transition name.
Animation Duration?Panel transition duration in ms.
Animation Easing?CSS easing applied to the panel transition + indicator slide.
Add Button Label?Label / HTML for the add button.
Overflow?How to handle tabs exceeding the tablist width.
Theme?Visual theme. `auto` follows prefers-color-scheme.
Accent?Accent color (CSS var --gst-accent) for the indicator / active tab.
Class Name?Extra class name applied to the root.

Feature Flags

API Specifications

OptionTypeDefaultDescription
referencestringnoneReference.
tabsGSTabConfig[]noneTab definitions as a config array. When omitted, tabs are read from the markup children (native) / rendered children (React).
activeTabstring | numbernoneControlled active tab id (or index). When provided, fully controlled.
defaultActiveTabstring | numbernoneUncontrolled initial active tab id (or index). Default: first enabled.
orientationGSTabsOrientation'horizontal'Layout axis of the tablist. Default: 'horizontal'.
tabPositionGSTabsPosition'top'Tablist placement relative to the panels. Default: 'top'.
variantGSTabsVariant'line'Visual variant. Default: 'line'.
sizeGSTabsSize'md'Size preset. Default: 'md'.
alignGSTabsAlign'start'Tab distribution within the tablist. Default: 'start'.
stretchbooleanfalseStretch tabs to fill the tablist (shorthand for align:'stretch').
lazybooleanfalseMount a panel only the first time its tab is activated. Default: false (all panels mounted up-front).
keepMountedbooleantrueKeep a lazily-mounted panel in the DOM after it is deactivated (hidden). Default: true. When false, inactive lazy panels are unmounted.
animationGSTabsAnimation | false'fade'Panel transition name. `false` disables panel motion. Default: 'fade'.
animationDurationnumber | GSTabsAnimationDuration260Panel transition duration in ms. Default: 260.
animationEasingstring'cubic-bezier(.4,0,.2,1)'CSS easing applied to the panel transition + indicator slide.
animatedIndicatorbooleantrueAnimate the active-indicator bar sliding between tabs (line / underline variants). Default: true.
reducedMotion'auto' | boolean'auto'Honor `prefers-reduced-motion`. `'auto'` follows the OS setting; `true` always reduces; `false` never reduces. Default: 'auto'.
closablebooleanfalseShow a close (×) button on every tab. Per-tab `closable` overrides this.
addablebooleanfalseShow a trailing "add tab" (+) button. Default: false.
addButtonLabelstring'+'Label / HTML for the add button. Default: '+'.
draggablebooleanfalseReorder tabs by dragging them. Default: false.
overflowGSTabsOverflow'scroll'How to handle tabs exceeding the tablist width. `scroll` shows prev/next scroll buttons; `menu` collapses overflow into a dropdown; `wrap` wraps to multiple rows; `none` clips. Default: 'scroll'.
themeGSTabsTheme'auto'Visual theme. `auto` follows prefers-color-scheme. Default: 'auto'.
accentstringnoneAccent color (CSS var --gst-accent) for the indicator / active tab.
rtlbooleanfalseRight-to-left layout. Default: false.
customClassGSTabsCustomClassnonePer-part class overrides.
classNamestringnoneExtra class name applied to the root.

Technical Features

4 Variants

Line, pill, enclosed and segment styles.

Sliding Indicator

Animated active-tab underline / pill.

Lazy Panels

Mount panel content only when first shown.

Draggable Tabs

Reorder, add and close tabs inline.