Skip to content

Commit 6a495d5

Browse files
feat(ui-shell): add side-nav-divider component (#7756)
* feat(ui-shell): add side-nav-divider component * fix(side-nav-divider): use gray-20 instead of ui-03 as background * fix(side-nav-divider): use function declaration Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent 1900914 commit 6a495d5

File tree

7 files changed

+100
-0
lines changed

7 files changed

+100
-0
lines changed

packages/components/src/components/ui-shell/_side-nav.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,15 @@
344344
height: mini-units(6);
345345
}
346346

347+
//----------------------------------------------------------------------------
348+
// Side-nav > Navigation > Divider
349+
//----------------------------------------------------------------------------
350+
.#{$prefix}--side-nav__divider {
351+
height: 1px;
352+
margin: $spacing-03 $spacing-05;
353+
background-color: $ibm-color__gray-20;
354+
}
355+
347356
//----------------------------------------------------------------------------
348357
// Side-nav > Navigation > {Menu,Submenu}
349358
//----------------------------------------------------------------------------

packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7023,6 +7023,13 @@ Map {
70237023
},
70247024
},
70257025
},
7026+
"SideNavDivider" => Object {
7027+
"propTypes": Object {
7028+
"className": Object {
7029+
"type": "string",
7030+
},
7031+
},
7032+
},
70267033
"SideNavFooter" => Object {
70277034
"defaultProps": Object {
70287035
"assistiveText": "Toggle opening or closing the side navigation",

packages/react/src/__tests__/index-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ describe('Carbon Components React', () => {
116116
"SelectableTile",
117117
"SideNav",
118118
"SideNavDetails",
119+
"SideNavDivider",
119120
"SideNavFooter",
120121
"SideNavHeader",
121122
"SideNavIcon",
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* Copyright IBM Corp. 2021
3+
*
4+
* This source code is licensed under the Apache-2.0 license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
import { settings } from 'carbon-components';
9+
import cx from 'classnames';
10+
import PropTypes from 'prop-types';
11+
import React from 'react';
12+
13+
const { prefix } = settings;
14+
15+
function SideNavDivider({ className }) {
16+
const classNames = cx(`${prefix}--side-nav__divider`, className);
17+
return <li role="separator" className={classNames} />;
18+
}
19+
20+
SideNavDivider.propTypes = {
21+
/**
22+
* Provide an optional class to be applied to the containing node
23+
*/
24+
className: PropTypes.string,
25+
};
26+
27+
export default SideNavDivider;

packages/react/src/components/UIShell/UIShell-story.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
// SideNavHeader,
3434
// SideNavDetails,
3535
// SideNavSwitcher,
36+
SideNavDivider,
3637
SideNavItems,
3738
SideNavLink,
3839
SideNavMenu,
@@ -151,6 +152,7 @@ export default {
151152
SkipToContent,
152153
SideNav,
153154
SideNavItems,
155+
SideNavDivider,
154156
SideNavLink,
155157
SideNavMenu,
156158
SideNavMenuItem,
@@ -683,6 +685,58 @@ export const FixedSideNavWIcons = withReadme(readme, () => (
683685

684686
FixedSideNavWIcons.storyName = 'Fixed SideNav w/ Icons';
685687

688+
export const FixedSideNavWDivider = withReadme(readme, () => (
689+
<>
690+
<SideNav
691+
isFixedNav
692+
expanded={true}
693+
isChildOfHeader={false}
694+
aria-label="Side navigation">
695+
<SideNavItems>
696+
<SideNavMenu title="L0 menu">
697+
<SideNavMenuItem href="javascript:void(0)">
698+
L0 menu item
699+
</SideNavMenuItem>
700+
<SideNavMenuItem href="javascript:void(0)">
701+
L0 menu item
702+
</SideNavMenuItem>
703+
<SideNavMenuItem href="javascript:void(0)">
704+
L0 menu item
705+
</SideNavMenuItem>
706+
</SideNavMenu>
707+
<SideNavMenu title="L0 menu" isActive={true}>
708+
<SideNavMenuItem href="javascript:void(0)">
709+
L0 menu item
710+
</SideNavMenuItem>
711+
<SideNavMenuItem aria-current="page" href="javascript:void(0)">
712+
L0 menu item
713+
</SideNavMenuItem>
714+
<SideNavMenuItem href="javascript:void(0)">
715+
L0 menu item
716+
</SideNavMenuItem>
717+
</SideNavMenu>
718+
<SideNavMenu title="L0 menu">
719+
<SideNavMenuItem href="javascript:void(0)">
720+
L0 menu item
721+
</SideNavMenuItem>
722+
<SideNavMenuItem href="javascript:void(0)">
723+
L0 menu item
724+
</SideNavMenuItem>
725+
<SideNavMenuItem href="javascript:void(0)">
726+
L0 menu item
727+
</SideNavMenuItem>
728+
</SideNavMenu>
729+
<SideNavDivider />
730+
<SideNavLink href="javascript:void(0)">L0 link</SideNavLink>
731+
<SideNavLink href="javascript:void(0)">L0 link</SideNavLink>
732+
</SideNavItems>
733+
</SideNav>
734+
<StoryContent useResponsiveOffset={false} />
735+
</>
736+
));
737+
738+
FixedSideNavWDivider.storyName = 'Fixed SideNav w/ Divider';
739+
686740
export const SideNavRail = withReadme(readme, () => (
687741
<>
688742
<SideNav aria-label="Side navigation" isRail>

packages/react/src/components/UIShell/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export SkipToContent from './SkipToContent';
2727

2828
export SideNav from './SideNav';
2929
export SideNavDetails from './SideNavDetails';
30+
export SideNavDivider from './SideNavDivider';
3031
export SideNavFooter from './SideNavFooter';
3132
export SideNavHeader from './SideNavHeader';
3233
export SideNavIcon from './SideNavIcon';

packages/react/src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ export {
186186
SkipToContent,
187187
SideNav,
188188
SideNavDetails,
189+
SideNavDivider,
189190
SideNavFooter,
190191
SideNavHeader,
191192
SideNavIcon,

0 commit comments

Comments
 (0)