shadcn-glass-ui 2.1.4 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/AI_USAGE.md CHANGED
@@ -138,7 +138,7 @@ export default {
138
138
  In your main CSS file (`src/index.css` or `src/globals.css`):
139
139
 
140
140
  ```css
141
- @import 'shadcn-glass-ui/dist/styles.css';
141
+ @import 'shadcn-glass-ui/styles.css';
142
142
  ```
143
143
 
144
144
  **5. Wrap app with theme provider**
@@ -203,7 +203,7 @@ export function Test() {
203
203
  **Issue: "Styles not applied"**
204
204
 
205
205
  - **Cause:** CSS not imported
206
- - **Fix:** Add `@import 'shadcn-glass-ui/dist/styles.css';` to main CSS
206
+ - **Fix:** Add `@import 'shadcn-glass-ui/styles.css';` to main CSS
207
207
 
208
208
  ---
209
209
 
@@ -541,7 +541,7 @@ npm install shadcn-glass-ui
541
541
 
542
542
  ```css
543
543
  /* src/index.css */
544
- @import 'shadcn-glass-ui/dist/styles.css';
544
+ @import 'shadcn-glass-ui/styles.css';
545
545
  ```
546
546
 
547
547
  ```typescript
@@ -658,7 +658,7 @@ mcp__context7__get-library-docs /yhooi2/shadcn-glass-ui-library --topic="token a
658
658
  ```tsx
659
659
  import { ButtonGlass, InputGlass } from 'shadcn-glass-ui';
660
660
  import { ThemeProvider, useTheme } from 'shadcn-glass-ui';
661
- import 'shadcn-glass-ui/dist/styles.css';
661
+ import 'shadcn-glass-ui/styles.css';
662
662
  ```
663
663
 
664
664
  **shadcn CLI:**
@@ -756,7 +756,7 @@ import { ThemeProvider } from '@/lib/theme-context';
756
756
  @tailwind base;
757
757
  @tailwind components;
758
758
  @tailwind utilities;
759
- @import 'shadcn-glass-ui/dist/styles.css';
759
+ @import 'shadcn-glass-ui/styles.css';
760
760
  ```
761
761
 
762
762
  ---
@@ -21,7 +21,7 @@ Always wrap your app with ThemeProvider at the root level:
21
21
 
22
22
  ```tsx
23
23
  import { ThemeProvider } from 'shadcn-glass-ui';
24
- import 'shadcn-glass-ui/dist/styles.css';
24
+ import 'shadcn-glass-ui/styles.css';
25
25
 
26
26
  function App() {
27
27
  return (
@@ -57,6 +57,8 @@ hardcoded OKLCH values across all components.
57
57
  | **RepositoryMetadataGlass** | Composite | `src/components/glass/composite/repository-metadata-glass.tsx` | 6 | Repo metadata display |
58
58
  | **UserInfoGlass** | Composite | `src/components/glass/composite/user-info-glass.tsx` | 5 | User card, avatar, stats |
59
59
  | **UserStatsLineGlass** | Composite | `src/components/glass/composite/user-stats-line-glass.tsx` | 4 | Horizontal stats line |
60
+ | **SplitLayoutGlass** | Composite | `src/components/glass/composite/split-layout-glass/` | - | Compound API, sticky scroll, master-detail |
61
+ | **SidebarGlass** | Core UI | `src/components/glass/ui/sidebar-glass/` | - | Compound API, shadcn/ui compatible, rail |
60
62
  | **HeaderNavGlass** | Section | `src/components/glass/sections/header-nav-glass.tsx` | 6 | Navigation, search, theme |
61
63
  | **ProfileHeaderGlass** | Section | `src/components/glass/sections/profile-header-glass.tsx` | 7 | Profile, avatar, stats, langs |
62
64
  | **CareerStatsGlass** | Section | `src/components/glass/sections/career-stats-glass.tsx` | 5 | Career stats, year cards |
@@ -857,6 +859,91 @@ content, anchor **API:** Compound component + Legacy wrapper
857
859
  </PopoverGlassLegacy>
858
860
  ```
859
861
 
862
+ #### SidebarGlass (Compound API)
863
+
864
+ **File:** `src/components/glass/ui/sidebar-glass/sidebar-glass.tsx` **Components:** Provider, Root,
865
+ Header, Content, Footer, Rail, Inset, Trigger, Separator, Group, GroupLabel, GroupAction,
866
+ GroupContent, Menu, MenuItem, MenuButton, MenuAction, MenuBadge, MenuSkeleton, MenuSub, MenuSubItem,
867
+ MenuSubButton **Features:** 100% shadcn/ui compatible, mobile drawer, desktop collapsible
868
+ (offcanvas/icon/none), glassmorphism
869
+
870
+ **Basic Sidebar:**
871
+
872
+ ```tsx
873
+ <SidebarGlass.Provider>
874
+ <SidebarGlass.Root>
875
+ <SidebarGlass.Header>
876
+ <Logo />
877
+ </SidebarGlass.Header>
878
+ <SidebarGlass.Content>
879
+ <SidebarGlass.Menu>
880
+ <SidebarGlass.MenuItem>
881
+ <SidebarGlass.MenuButton isActive>
882
+ <Home className="w-4 h-4" />
883
+ Dashboard
884
+ </SidebarGlass.MenuButton>
885
+ </SidebarGlass.MenuItem>
886
+ <SidebarGlass.MenuItem>
887
+ <SidebarGlass.MenuButton>
888
+ <Settings className="w-4 h-4" />
889
+ Settings
890
+ </SidebarGlass.MenuButton>
891
+ </SidebarGlass.MenuItem>
892
+ </SidebarGlass.Menu>
893
+ </SidebarGlass.Content>
894
+ <SidebarGlass.Footer>
895
+ <UserInfo />
896
+ </SidebarGlass.Footer>
897
+ </SidebarGlass.Root>
898
+ <SidebarGlass.Inset>
899
+ <main>Main Content</main>
900
+ </SidebarGlass.Inset>
901
+ </SidebarGlass.Provider>
902
+ ```
903
+
904
+ **With Groups and Submenus:**
905
+
906
+ ```tsx
907
+ <SidebarGlass.Provider collapsible="icon" side="left">
908
+ <SidebarGlass.Root>
909
+ <SidebarGlass.Content>
910
+ <SidebarGlass.Group>
911
+ <SidebarGlass.GroupLabel>Main</SidebarGlass.GroupLabel>
912
+ <SidebarGlass.GroupContent>
913
+ <SidebarGlass.Menu>
914
+ <SidebarGlass.MenuItem>
915
+ <SidebarGlass.MenuButton tooltip="Dashboard">
916
+ <Home /> Dashboard
917
+ </SidebarGlass.MenuButton>
918
+ </SidebarGlass.MenuItem>
919
+ </SidebarGlass.Menu>
920
+ </SidebarGlass.GroupContent>
921
+ </SidebarGlass.Group>
922
+ </SidebarGlass.Content>
923
+ <SidebarGlass.Rail />
924
+ </SidebarGlass.Root>
925
+ </SidebarGlass.Provider>
926
+ ```
927
+
928
+ **Props (Provider):**
929
+
930
+ | Prop | Type | Default | Description |
931
+ | ---------------- | ---------------------------------- | --------------- | ---------------------------------- |
932
+ | side | 'left' \| 'right' | 'left' | Sidebar position |
933
+ | variant | 'sidebar' \| 'floating' \| 'inset' | 'sidebar' | Visual style |
934
+ | collapsible | 'offcanvas' \| 'icon' \| 'none' | 'offcanvas' | Collapse behavior |
935
+ | open | boolean | - | Controlled open state |
936
+ | onOpenChange | (open: boolean) => void | - | Open state change handler |
937
+ | defaultOpen | boolean | true | Initial open state |
938
+ | cookieName | string | 'sidebar:state' | Cookie name for persistence |
939
+ | keyboardShortcut | string \| false | 'b' | Keyboard shortcut (Cmd/Ctrl + key) |
940
+
941
+ **Hook: useSidebar()**
942
+
943
+ ```tsx
944
+ const { state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar } = useSidebar();
945
+ ```
946
+
860
947
  ---
861
948
 
862
949
  ### Level 2 - Atomic (7)
@@ -1016,6 +1103,122 @@ feature list **Usage:**
1016
1103
  />
1017
1104
  ```
1018
1105
 
1106
+ #### SplitLayoutGlass (Compound API)
1107
+
1108
+ **File:** `src/components/glass/composite/split-layout-glass/split-layout-glass.tsx` **Components:**
1109
+ Provider, Root, Sidebar, SidebarHeader, SidebarContent, SidebarFooter, Main, MainHeader,
1110
+ MainContent, MainFooter, Trigger, Accordion **Features:** Sticky scroll, responsive
1111
+ (stack/main-only/sidebar-only), master-detail pattern, keyboard shortcut (Cmd+B)
1112
+
1113
+ **Basic Two-Column Layout:**
1114
+
1115
+ ```tsx
1116
+ <SplitLayoutGlass.Provider>
1117
+ <SplitLayoutGlass.Root>
1118
+ <SplitLayoutGlass.Sidebar>
1119
+ <SplitLayoutGlass.SidebarHeader>
1120
+ <h3>Navigation</h3>
1121
+ </SplitLayoutGlass.SidebarHeader>
1122
+ <SplitLayoutGlass.SidebarContent>
1123
+ <nav>
1124
+ <a href="#section1">Section 1</a>
1125
+ <a href="#section2">Section 2</a>
1126
+ </nav>
1127
+ </SplitLayoutGlass.SidebarContent>
1128
+ </SplitLayoutGlass.Sidebar>
1129
+ <SplitLayoutGlass.Main>
1130
+ <SplitLayoutGlass.MainContent>
1131
+ <article>
1132
+ <h1>Main Content</h1>
1133
+ <p>Your content here...</p>
1134
+ </article>
1135
+ </SplitLayoutGlass.MainContent>
1136
+ </SplitLayoutGlass.Main>
1137
+ </SplitLayoutGlass.Root>
1138
+ </SplitLayoutGlass.Provider>
1139
+ ```
1140
+
1141
+ **With Master-Detail Pattern:**
1142
+
1143
+ ```tsx
1144
+ <SplitLayoutGlass.Provider
1145
+ defaultSelectedKey="item-1"
1146
+ breakpoint="lg"
1147
+ mobileMode="drawer"
1148
+ intensity="medium"
1149
+ >
1150
+ <SplitLayoutGlass.Root ratio={{ sidebar: 1, main: 2 }} minSidebarWidth="300px">
1151
+ <SplitLayoutGlass.Sidebar>
1152
+ <SplitLayoutGlass.SidebarHeader>
1153
+ <h3>Items List</h3>
1154
+ <SplitLayoutGlass.Trigger variant="menu" />
1155
+ </SplitLayoutGlass.SidebarHeader>
1156
+ <SplitLayoutGlass.SidebarContent scrollable>
1157
+ {items.map((item) => (
1158
+ <ItemRow key={item.id} item={item} />
1159
+ ))}
1160
+ </SplitLayoutGlass.SidebarContent>
1161
+ </SplitLayoutGlass.Sidebar>
1162
+ <SplitLayoutGlass.Main>
1163
+ <SplitLayoutGlass.MainHeader>
1164
+ <Breadcrumbs />
1165
+ </SplitLayoutGlass.MainHeader>
1166
+ <SplitLayoutGlass.MainContent>
1167
+ <ItemDetail />
1168
+ </SplitLayoutGlass.MainContent>
1169
+ <SplitLayoutGlass.MainFooter>
1170
+ <Actions />
1171
+ </SplitLayoutGlass.MainFooter>
1172
+ </SplitLayoutGlass.Main>
1173
+ </SplitLayoutGlass.Root>
1174
+ </SplitLayoutGlass.Provider>
1175
+ ```
1176
+
1177
+ **Props (Provider):**
1178
+
1179
+ | Prop | Type | Default | Description |
1180
+ | ------------------- | ------------------------------------- | -------- | ---------------------------------------- |
1181
+ | selectedKey | string \| null | - | Controlled selected key (master-detail) |
1182
+ | onSelectedKeyChange | (key: string \| null) => void | - | Selection change handler |
1183
+ | defaultSelectedKey | string \| null | - | Initial selected key |
1184
+ | open | boolean | - | Controlled sidebar open state |
1185
+ | onOpenChange | (open: boolean) => void | - | Open state change handler |
1186
+ | defaultOpen | boolean | true | Initial sidebar open state |
1187
+ | breakpoint | 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' | 'md' | Desktop layout breakpoint |
1188
+ | mobileMode | 'stack' \| 'accordion' \| 'drawer' | 'stack' | Mobile layout behavior |
1189
+ | intensity | 'subtle' \| 'medium' \| 'strong' | 'medium' | Glass blur intensity |
1190
+ | stickyOffset | number | 24 | Sticky offset in pixels |
1191
+ | urlParamName | string | - | URL param name for selection persistence |
1192
+ | keyboardShortcut | string \| false | 'b' | Keyboard shortcut (Cmd/Ctrl + key) |
1193
+
1194
+ **Props (Root):**
1195
+
1196
+ | Prop | Type | Default | Description |
1197
+ | --------------- | ----------------------------------------------- | --------------------------- | ----------------------------- |
1198
+ | ratio | { sidebar: number; main: number } | { sidebar: 1, main: 2 } | Column ratio (1:2 = 33%/67%) |
1199
+ | minSidebarWidth | string | '300px' | Minimum sidebar width |
1200
+ | maxSidebarWidth | string | - | Maximum sidebar width |
1201
+ | gap | number \| { mobile?: number; desktop?: number } | { mobile: 16, desktop: 24 } | Gap between panels |
1202
+ | breakpoint | Breakpoint | - | Overrides Provider breakpoint |
1203
+ | mobileLayout | 'stack' \| 'main-only' \| 'sidebar-only' | 'stack' | Mobile layout mode |
1204
+
1205
+ **Hook: useSplitLayout()**
1206
+
1207
+ ```tsx
1208
+ const {
1209
+ selectedKey,
1210
+ setSelectedKey,
1211
+ isOpen,
1212
+ setIsOpen,
1213
+ isMobileOpen,
1214
+ setMobileOpen,
1215
+ isMobile,
1216
+ toggle,
1217
+ state,
1218
+ toggleSidebar, // shadcn/ui alias
1219
+ } = useSplitLayout();
1220
+ ```
1221
+
1019
1222
  ---
1020
1223
 
1021
1224
  ### Level 5 - Sections (7)
@@ -1060,6 +1263,14 @@ avatar, stats, languages **Usage:**
1060
1263
  - **DropdownGlass** - Dropdown menus
1061
1264
  - **ButtonGlass** (asChild) - Link buttons
1062
1265
  - **SegmentedControlGlass** - Segmented buttons
1266
+ - **SidebarGlass** - Collapsible sidebar navigation (compound API)
1267
+
1268
+ ### Layouts
1269
+
1270
+ - **SplitLayoutGlass** - Two-column responsive layout (compound API)
1271
+ - **SidebarGlass** - Sidebar with collapsible rail
1272
+ - **GlassCard** - Card containers
1273
+ - **ModalGlass** - Modal dialogs (compound API)
1063
1274
 
1064
1275
  ### Feedback
1065
1276
 
@@ -1105,6 +1316,10 @@ For AI assistants: Use Ctrl+F to search by keyword.
1105
1316
  - "avatar, profile, user" → AvatarGlass, ProfileAvatarGlass, ProfileHeaderGlass, UserInfoGlass
1106
1317
  - "badge, tag, label, status" → BadgeGlass, StatusIndicatorGlass
1107
1318
  - "tabs, navigation, switch" → TabsGlass, HeaderNavGlass, SegmentedControlGlass
1319
+ - "sidebar, drawer, collapsible, rail" → SidebarGlass
1320
+ - "split, two-column, layout, master-detail" → SplitLayoutGlass
1321
+ - "compound, compound component" → ModalGlass, TabsGlass, SidebarGlass, SplitLayoutGlass,
1322
+ StepperGlass
1108
1323
  - "theme, dark mode" → ThemeProvider, ThemeToggleGlass, useTheme
1109
1324
  - "tooltip, hint, help" → TooltipGlass
1110
1325
  - "slider, range" → SliderGlass
@@ -2,10 +2,10 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "shadcn-glass-ui Exports Map",
4
4
  "description": "Machine-readable export structure for AI assistants and automated tools",
5
- "version": "1.0.7",
5
+ "version": "1.0.8",
6
6
  "library": "shadcn-glass-ui",
7
7
  "repository": "https://github.com/yhooi2/shadcn-glass-ui",
8
- "lastUpdated": "2025-12-06",
8
+ "lastUpdated": "2025-12-17",
9
9
 
10
10
  "components": {
11
11
  "primitives": {
@@ -76,7 +76,15 @@
76
76
  "type": "component",
77
77
  "description": "Status badge with multiple variants",
78
78
  "props": "BadgeGlassProps",
79
- "variants": ["default", "secondary", "destructive", "outline", "success", "warning", "info"],
79
+ "variants": [
80
+ "default",
81
+ "secondary",
82
+ "destructive",
83
+ "outline",
84
+ "success",
85
+ "warning",
86
+ "info"
87
+ ],
80
88
  "category": "display",
81
89
  "keywords": ["badge", "tag", "label", "status"],
82
90
  "shadcnCompatible": true
@@ -169,7 +177,18 @@
169
177
  "keywords": ["modal", "dialog", "overlay", "popup"],
170
178
  "shadcnCompatible": true,
171
179
  "compoundAPI": true,
172
- "subComponents": ["Root", "Trigger", "Overlay", "Content", "Header", "Title", "Description", "Body", "Footer", "Close"]
180
+ "subComponents": [
181
+ "Root",
182
+ "Trigger",
183
+ "Overlay",
184
+ "Content",
185
+ "Header",
186
+ "Title",
187
+ "Description",
188
+ "Body",
189
+ "Footer",
190
+ "Close"
191
+ ]
173
192
  },
174
193
  {
175
194
  "name": "NotificationGlass",
@@ -245,6 +264,50 @@
245
264
  "category": "overlay",
246
265
  "keywords": ["tooltip", "hint", "help", "overlay"],
247
266
  "shadcnCompatible": true
267
+ },
268
+ {
269
+ "name": "SidebarGlass",
270
+ "path": "components/glass/ui/sidebar-glass",
271
+ "type": "component",
272
+ "description": "Collapsible sidebar navigation with glassmorphism styling (100% shadcn/ui compatible)",
273
+ "props": "SidebarGlassProps",
274
+ "category": "navigation",
275
+ "keywords": [
276
+ "sidebar",
277
+ "navigation",
278
+ "drawer",
279
+ "collapsible",
280
+ "menu",
281
+ "compound",
282
+ "rail"
283
+ ],
284
+ "shadcnCompatible": true,
285
+ "compoundAPI": true,
286
+ "subComponents": [
287
+ "Provider",
288
+ "Root",
289
+ "Header",
290
+ "Content",
291
+ "Footer",
292
+ "Rail",
293
+ "Inset",
294
+ "Trigger",
295
+ "Separator",
296
+ "Group",
297
+ "GroupLabel",
298
+ "GroupAction",
299
+ "GroupContent",
300
+ "Menu",
301
+ "MenuItem",
302
+ "MenuButton",
303
+ "MenuAction",
304
+ "MenuBadge",
305
+ "MenuSkeleton",
306
+ "MenuSub",
307
+ "MenuSubItem",
308
+ "MenuSubButton"
309
+ ],
310
+ "contains": ["ModalGlass", "GlassCard"]
248
311
  }
249
312
  ]
250
313
  },
@@ -525,6 +588,40 @@
525
588
  "category": "display",
526
589
  "keywords": ["year", "card", "timeline", "career"],
527
590
  "contains": ["GlassCard", "StatItemGlass"]
591
+ },
592
+ {
593
+ "name": "SplitLayoutGlass",
594
+ "path": "components/glass/composite/split-layout-glass",
595
+ "type": "component",
596
+ "description": "Two-column responsive layout with sticky scroll behavior and glassmorphism styling",
597
+ "props": "SplitLayoutGlassProps",
598
+ "category": "layout",
599
+ "keywords": [
600
+ "layout",
601
+ "split",
602
+ "sidebar",
603
+ "responsive",
604
+ "sticky",
605
+ "two-column",
606
+ "master-detail",
607
+ "compound"
608
+ ],
609
+ "compoundAPI": true,
610
+ "subComponents": [
611
+ "Provider",
612
+ "Root",
613
+ "Sidebar",
614
+ "SidebarHeader",
615
+ "SidebarContent",
616
+ "SidebarFooter",
617
+ "Main",
618
+ "MainHeader",
619
+ "MainContent",
620
+ "MainFooter",
621
+ "Trigger",
622
+ "Accordion"
623
+ ],
624
+ "contains": ["GlassCard", "ScrollArea"]
528
625
  }
529
626
  ]
530
627
  },
@@ -709,6 +806,24 @@
709
806
  "returns": "{ isDark: boolean; tintColor: string }",
710
807
  "category": "theming",
711
808
  "keywords": ["wallpaper", "tint", "color", "macos"]
809
+ },
810
+ {
811
+ "name": "useSplitLayout",
812
+ "path": "components/glass/composite/split-layout-glass",
813
+ "type": "hook",
814
+ "description": "Hook for accessing SplitLayoutGlass context (selectedKey, isOpen, isMobile, toggle, state)",
815
+ "returns": "SplitLayoutContextValue",
816
+ "category": "layout",
817
+ "keywords": ["split", "layout", "sidebar", "context", "state"]
818
+ },
819
+ {
820
+ "name": "useSidebar",
821
+ "path": "components/glass/ui/sidebar-glass",
822
+ "type": "hook",
823
+ "description": "Hook for accessing SidebarGlass context (100% shadcn/ui compatible)",
824
+ "returns": "SidebarContextValue",
825
+ "category": "navigation",
826
+ "keywords": ["sidebar", "context", "state", "collapsible"]
712
827
  }
713
828
  ]
714
829
  },
@@ -737,7 +852,15 @@
737
852
  ],
738
853
  "variants": {
739
854
  "AlertType": ["default", "destructive", "success", "warning"],
740
- "BadgeVariant": ["default", "secondary", "destructive", "outline", "success", "warning", "info"],
855
+ "BadgeVariant": [
856
+ "default",
857
+ "secondary",
858
+ "destructive",
859
+ "outline",
860
+ "success",
861
+ "warning",
862
+ "info"
863
+ ],
741
864
  "NotificationType": ["default", "destructive", "success", "warning"],
742
865
  "SkeletonVariant": ["text", "circle", "rectangle"],
743
866
  "TooltipPosition": ["top", "bottom", "left", "right"],
@@ -779,21 +902,21 @@
779
902
  },
780
903
 
781
904
  "statistics": {
782
- "totalComponents": 55,
905
+ "totalComponents": 57,
783
906
  "byLevel": {
784
907
  "primitives": 3,
785
- "core": 18,
908
+ "core": 19,
786
909
  "atomic": 6,
787
910
  "specialized": 8,
788
- "composite": 13,
911
+ "composite": 14,
789
912
  "sections": 7
790
913
  },
791
- "totalTypes": 45,
792
- "totalHooks": 4,
914
+ "totalTypes": 47,
915
+ "totalHooks": 6,
793
916
  "totalUtilities": 1,
794
- "shadcnCompatible": 18,
917
+ "shadcnCompatible": 19,
795
918
  "supportsAsChild": 3,
796
- "compoundAPI": 2
919
+ "compoundAPI": 4
797
920
  },
798
921
 
799
922
  "usage": {
@@ -814,7 +937,9 @@
814
937
  "MetricsGridGlass",
815
938
  "ProgressGlass",
816
939
  "BadgeGlass",
817
- "HeaderNavGlass"
940
+ "HeaderNavGlass",
941
+ "SidebarGlass",
942
+ "SplitLayoutGlass"
818
943
  ],
819
944
  "forms": [
820
945
  "InputGlass",
@@ -833,7 +958,8 @@
833
958
  "RepositoryCardGlass",
834
959
  "TrustScoreCardGlass",
835
960
  "LanguageBarGlass"
836
- ]
961
+ ],
962
+ "layouts": ["SplitLayoutGlass", "SidebarGlass", "GlassCard", "ModalGlass", "TabsGlass"]
837
963
  }
838
964
  },
839
965
 
@@ -101,8 +101,9 @@ Level 5: Sections (7) → Complete page sections
101
101
  └──────────────────┬──────────────────────────┘
102
102
 
103
103
  ┌──────────────────▼──────────────────────────┐
104
- │ LEVEL 4: COMPOSITE (13 components) │
105
- │ MetricCardGlass, AICardGlass, etc.
104
+ │ LEVEL 4: COMPOSITE (14 components) │
105
+ │ MetricCardGlass, AICardGlass,
106
+ │ SplitLayoutGlass, etc. │
106
107
  └──────────────────┬──────────────────────────┘
107
108
 
108
109
  ┌──────────────────▼──────────────────────────┐
@@ -116,8 +117,9 @@ Level 5: Sections (7) → Complete page sections
116
117
  └──────────────────┬──────────────────────────┘
117
118
 
118
119
  ┌──────────────────▼──────────────────────────┐
119
- │ LEVEL 1: CORE UI (18 components) │
120
- │ ButtonGlass, InputGlass, ModalGlass, etc.
120
+ │ LEVEL 1: CORE UI (19 components) │
121
+ │ ButtonGlass, InputGlass, ModalGlass,
122
+ │ SidebarGlass, etc. │
121
123
  └──────────────────┬──────────────────────────┘
122
124
 
123
125
  ┌──────────────────▼──────────────────────────┐
@@ -193,6 +195,12 @@ Primary building blocks for application interfaces. These are the most commonly
193
195
  | `SkeletonGlass` | Loading skeleton | `variant`, `width`, `height` | text, circle, rectangle |
194
196
  | `TooltipGlass` | Tooltip overlay | `content`, `position`, `children` | top, bottom, left, right |
195
197
 
198
+ #### Navigation (1)
199
+
200
+ | Export | Description | Key Props | shadcn/ui |
201
+ | -------------- | ------------------------------ | ---------------------------------------------- | --------- |
202
+ | `SidebarGlass` | Collapsible sidebar navigation | `side`, `variant`, `collapsible`, compound API | 100% |
203
+
196
204
  **Import:**
197
205
 
198
206
  ```tsx
@@ -326,10 +334,16 @@ import { ProgressGlass, RainbowProgressGlass, SegmentedControlGlass } from 'shad
326
334
 
327
335
  ---
328
336
 
329
- ### Level 4: Composite Components (13 components)
337
+ ### Level 4: Composite Components (14 components)
330
338
 
331
339
  Multi-component compositions that combine several elements.
332
340
 
341
+ #### Layout (1)
342
+
343
+ | Export | Description | Contains | Use Case |
344
+ | ------------------ | ---------------------------- | --------------------- | --------------------------- |
345
+ | `SplitLayoutGlass` | Two-column responsive layout | GlassCard, ScrollArea | Docs, dashboards, analytics |
346
+
333
347
  #### Metrics & Stats (4)
334
348
 
335
349
  | Export | Description | Contains | Use Case |
@@ -546,7 +560,14 @@ console.log(THEME_CONFIG); // [{ name: 'glass', label: 'Glass' }, ...]
546
560
  ### React Hooks
547
561
 
548
562
  ```tsx
549
- import { useFocus, useHover, useResponsive, useWallpaperTint } from 'shadcn-glass-ui';
563
+ import {
564
+ useFocus,
565
+ useHover,
566
+ useResponsive,
567
+ useWallpaperTint,
568
+ useSplitLayout,
569
+ useSidebar,
570
+ } from 'shadcn-glass-ui';
550
571
 
551
572
  // Focus management
552
573
  function FocusExample() {
@@ -571,6 +592,18 @@ function WallpaperExample() {
571
592
  const { isDark, tintColor } = useWallpaperTint();
572
593
  return <div style={{ color: tintColor }}>Adaptive UI</div>;
573
594
  }
595
+
596
+ // SplitLayoutGlass context
597
+ function SplitLayoutExample() {
598
+ const { selectedKey, isOpen, isMobile, toggle } = useSplitLayout();
599
+ return <button onClick={toggle}>{isOpen ? 'Close' : 'Open'}</button>;
600
+ }
601
+
602
+ // SidebarGlass context (shadcn/ui compatible)
603
+ function SidebarExample() {
604
+ const { state, toggleSidebar, isMobile } = useSidebar();
605
+ return <button onClick={toggleSidebar}>{state}</button>;
606
+ }
574
607
  ```
575
608
 
576
609
  ### CVA Variants (Advanced)
@@ -688,10 +721,10 @@ import {
688
721
  ### Component Count by Level
689
722
 
690
723
  - **Level 0 (Primitives):** 3 components
691
- - **Level 1 (Core UI):** 18 components
724
+ - **Level 1 (Core UI):** 19 components (including SidebarGlass)
692
725
  - **Level 2 (Atomic):** 7 components
693
726
  - **Level 3 (Specialized):** 10 components
694
- - **Level 4 (Composite):** 13 components
727
+ - **Level 4 (Composite):** 14 components (including SplitLayoutGlass)
695
728
  - **Level 5 (Sections):** 7 components
696
729
  - **Total:** 57 components
697
730
 
@@ -700,9 +733,10 @@ import {
700
733
  - **Components:** 57 total
701
734
  - **Types:** 25+ prop types, 15+ variant types
702
735
  - **Utilities:** 1 function (`cn`)
703
- - **Hooks:** 4 custom hooks
736
+ - **Hooks:** 6 custom hooks (including useSplitLayout, useSidebar)
704
737
  - **Theme:** 6 exports (provider, hook, constants, helpers)
705
738
  - **CVA Variants:** 15+ variant functions
739
+ - **Compound Components:** ModalGlass, TabsGlass, SidebarGlass, SplitLayoutGlass, StepperGlass
706
740
 
707
741
  ### shadcn/ui Compatibility
708
742
 
@@ -126,7 +126,7 @@ Create or update your `globals.css`:
126
126
  @tailwind utilities;
127
127
 
128
128
  /* Import shadcn-glass-ui styles (if using npm package) */
129
- @import 'shadcn-glass-ui/dist/styles.css';
129
+ @import 'shadcn-glass-ui/styles.css';
130
130
 
131
131
  /* Or define variables manually */
132
132
  @layer base {
@@ -313,7 +313,7 @@ npm install shadcn-glass-ui
313
313
 
314
314
  ```tsx
315
315
  import { ButtonGlass, InputGlass } from 'shadcn-glass-ui';
316
- import 'shadcn-glass-ui/dist/styles.css';
316
+ import 'shadcn-glass-ui/styles.css';
317
317
  ```
318
318
 
319
319
  See [GETTING_STARTED.md](./GETTING_STARTED.md) for npm installation guide.
@@ -97,7 +97,7 @@ npm install shadcn-glass-ui
97
97
 
98
98
  ```tsx
99
99
  import { ButtonGlass, InputGlass, ThemeProvider } from 'shadcn-glass-ui';
100
- import 'shadcn-glass-ui/dist/styles.css';
100
+ import 'shadcn-glass-ui/styles.css';
101
101
 
102
102
  function App() {
103
103
  return (