diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index e2fd91f0..b0b7e881 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -3216,6 +3216,7 @@ None. | :-------- | :--------------- | :------- | :------------------- | ------------------ | ------------------------------------------ | | isOpen | let | Yes | boolean | false | Set to `true` to toggle the expanded state | | fixed | let | No | boolean | false | Set to `true` to use the fixed variant | +| rail | let | No | boolean | false | Set to `true` to use the rail variant | | ariaLabel | let | No | string | -- | Specify the ARIA label for the nav | ### Slots diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index 117368d0..9bb03b8f 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -8477,6 +8477,16 @@ "constant": false, "reactive": false }, + { + "name": "rail", + "kind": "let", + "description": "Set to `true` to use the rail variant", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": false + }, { "name": "ariaLabel", "kind": "let", diff --git a/docs/src/pages/components/UIShell.svx b/docs/src/pages/components/UIShell.svx index 76bd3b76..a8b46c00 100644 --- a/docs/src/pages/components/UIShell.svx +++ b/docs/src/pages/components/UIShell.svx @@ -36,6 +36,12 @@ The hamburger menu will automatically be rendered if the `SideNav` component is +### Header with side navigation (rail) + +Set `rail` to `true` on `SideNav` to use the rail variant. + + + ### Header with app switcher The `HeaderAction` component uses the [transition:slide API](https://svelte.dev/docs#slide); you can customize the transition duration, delay, and easing with the `transition` prop. diff --git a/docs/src/pages/framed/UIShell/HeaderNavRail.svelte b/docs/src/pages/framed/UIShell/HeaderNavRail.svelte new file mode 100644 index 00000000..e5b7c20e --- /dev/null +++ b/docs/src/pages/framed/UIShell/HeaderNavRail.svelte @@ -0,0 +1,65 @@ + + +
+
+ +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +

Welcome

+
+
+
+
diff --git a/src/UIShell/SideNav/SideNav.svelte b/src/UIShell/SideNav/SideNav.svelte index c6599986..a8b0804e 100644 --- a/src/UIShell/SideNav/SideNav.svelte +++ b/src/UIShell/SideNav/SideNav.svelte @@ -8,6 +8,9 @@ /** Set to `true` to use the fixed variant */ export let fixed = false; + /** Set to `true` to use the rail variant */ + export let rail = false; + /** * Specify the ARIA label for the nav * @type {string} @@ -46,8 +49,9 @@ class:bx--side-nav__navigation="{true}" class:bx--side-nav="{true}" class:bx--side-nav--ux="{true}" - class:bx--side-nav--expanded="{isOpen}" - class:bx--side-nav--collapsed="{!isOpen}" + class:bx--side-nav--expanded="{isOpen && !rail}" + class:bx--side-nav--collapsed="{!isOpen && !rail}" + class:bx--side-nav--rail="{rail}" {...$$restProps} > diff --git a/types/UIShell/SideNav/SideNav.d.ts b/types/UIShell/SideNav/SideNav.d.ts index 4663c9fb..83790d44 100644 --- a/types/UIShell/SideNav/SideNav.d.ts +++ b/types/UIShell/SideNav/SideNav.d.ts @@ -9,6 +9,12 @@ export interface SideNavProps */ fixed?: boolean; + /** + * Set to `true` to use the rail variant + * @default false + */ + rail?: boolean; + /** * Specify the ARIA label for the nav */