mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 10:21:05 +00:00
Merge pull request #396 from IBM/374-header-hamburger-persistence
feat(UIShell): add persistentHamburgerMenu prop to Header
This commit is contained in:
commit
d9e14b2561
4 changed files with 80 additions and 4 deletions
|
@ -37,3 +37,7 @@ components: ["Header",
|
||||||
### Header with utilities
|
### Header with utilities
|
||||||
|
|
||||||
<FileSource src="/framed/UIShell/HeaderUtilities" />
|
<FileSource src="/framed/UIShell/HeaderUtilities" />
|
||||||
|
|
||||||
|
### Header with persisted hamburger menu
|
||||||
|
|
||||||
|
<FileSource src="/framed/UIShell/PersistedHamburgerMenu" />
|
65
docs/src/pages/framed/UIShell/PersistedHamburgerMenu.svelte
Normal file
65
docs/src/pages/framed/UIShell/PersistedHamburgerMenu.svelte
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
Header,
|
||||||
|
HeaderNav,
|
||||||
|
HeaderNavItem,
|
||||||
|
HeaderNavMenu,
|
||||||
|
SideNav,
|
||||||
|
SideNavItems,
|
||||||
|
SideNavMenu,
|
||||||
|
SideNavMenuItem,
|
||||||
|
SideNavLink,
|
||||||
|
SkipToContent,
|
||||||
|
Content,
|
||||||
|
Grid,
|
||||||
|
Row,
|
||||||
|
Column,
|
||||||
|
} from "carbon-components-svelte";
|
||||||
|
|
||||||
|
let isSideNavOpen = false;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Header
|
||||||
|
persistentHamburgerMenu="{true}"
|
||||||
|
company="IBM"
|
||||||
|
platformName="Carbon Svelte"
|
||||||
|
bind:isSideNavOpen
|
||||||
|
>
|
||||||
|
<div slot="skip-to-content">
|
||||||
|
<SkipToContent />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<HeaderNav>
|
||||||
|
<HeaderNavItem href="/" text="Link 1" />
|
||||||
|
<HeaderNavItem href="/" text="Link 2" />
|
||||||
|
<HeaderNavItem href="/" text="Link 3" />
|
||||||
|
<HeaderNavMenu text="Menu">
|
||||||
|
<HeaderNavItem href="/" text="Link 1" />
|
||||||
|
<HeaderNavItem href="/" text="Link 2" />
|
||||||
|
<HeaderNavItem href="/" text="Link 3" />
|
||||||
|
</HeaderNavMenu>
|
||||||
|
</HeaderNav>
|
||||||
|
</Header>
|
||||||
|
|
||||||
|
<SideNav bind:isOpen="{isSideNavOpen}">
|
||||||
|
<SideNavItems>
|
||||||
|
<SideNavLink text="Link 1" />
|
||||||
|
<SideNavLink text="Link 2" />
|
||||||
|
<SideNavLink text="Link 3" />
|
||||||
|
<SideNavMenu text="Menu">
|
||||||
|
<SideNavMenuItem href="/" text="Link 1" />
|
||||||
|
<SideNavMenuItem href="/" text="Link 2" />
|
||||||
|
<SideNavMenuItem href="/" text="Link 3" />
|
||||||
|
</SideNavMenu>
|
||||||
|
</SideNavItems>
|
||||||
|
</SideNav>
|
||||||
|
|
||||||
|
<Content>
|
||||||
|
<Grid>
|
||||||
|
<Row>
|
||||||
|
<Column>
|
||||||
|
<h1>Welcome</h1>
|
||||||
|
</Column>
|
||||||
|
</Row>
|
||||||
|
</Grid>
|
||||||
|
</Content>
|
|
@ -36,6 +36,12 @@
|
||||||
*/
|
*/
|
||||||
export let platformName = "";
|
export let platformName = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify Hamburger Menu persistance
|
||||||
|
* @type {boolean} [persistentHamburgerMenu=false]
|
||||||
|
*/
|
||||||
|
export let persistentHamburgerMenu = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain a reference to the HTML anchor element
|
* Obtain a reference to the HTML anchor element
|
||||||
* @type {null | HTMLAnchorElement} [ref=null]
|
* @type {null | HTMLAnchorElement} [ref=null]
|
||||||
|
@ -46,7 +52,8 @@
|
||||||
|
|
||||||
let winWidth = undefined;
|
let winWidth = undefined;
|
||||||
|
|
||||||
$: isSideNavOpen = expandedByDefault && winWidth >= 1056;
|
$: isSideNavOpen =
|
||||||
|
expandedByDefault && winWidth >= 1056 && !persistentHamburgerMenu;
|
||||||
$: ariaLabel = company
|
$: ariaLabel = company
|
||||||
? `${company} `
|
? `${company} `
|
||||||
: "" + (uiShellAriaLabel || $$props["aria-label"] || platformName);
|
: "" + (uiShellAriaLabel || $$props["aria-label"] || platformName);
|
||||||
|
@ -56,7 +63,7 @@
|
||||||
|
|
||||||
<header role="banner" aria-label="{ariaLabel}" class:bx--header="{true}">
|
<header role="banner" aria-label="{ariaLabel}" class:bx--header="{true}">
|
||||||
<slot name="skip-to-content" />
|
<slot name="skip-to-content" />
|
||||||
{#if winWidth < 1056}
|
{#if winWidth < 1056 || persistentHamburgerMenu}
|
||||||
<HamburgerMenu bind:isOpen="{isSideNavOpen}" />
|
<HamburgerMenu bind:isOpen="{isSideNavOpen}" />
|
||||||
{/if}
|
{/if}
|
||||||
<a
|
<a
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
class:bx--side-nav="{true}"
|
class:bx--side-nav="{true}"
|
||||||
class:bx--side-nav--ux="{true}"
|
class:bx--side-nav--ux="{true}"
|
||||||
class:bx--side-nav--expanded="{isOpen}"
|
class:bx--side-nav--expanded="{isOpen}"
|
||||||
class:bx--side-nav--collapsed="{!isOpen && fixed}"
|
class:bx--side-nav--collapsed="{!isOpen}"
|
||||||
{...$$restProps}
|
{...$$restProps}
|
||||||
>
|
>
|
||||||
<slot />
|
<slot />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue