@spaced-out/ui-design-system
Version:
Sense UI components library
272 lines (230 loc) • 5.06 kB
CSS
@value ( size34, size60, size300, sizeFluid, sizeFullViewportHeight) from '../../styles/variables/_size.css';
@value (
colorFillNone,
colorFillPrimary,
colorFocusPrimary,
colorNeutralDark,
colorNeutralDarkest,
colorTextInverseSecondary,
colorTextInversePrimary,
colorSubMenuBackgroundDefault,
colorSideMenuIconDefault,
colorSideMenuIconActive,
colorSuccess,
colorFocusDanger
) from '../../styles/variables/_color.css';
@value (
spaceNone,
spaceXXSmall,
spaceXSmall,
spaceSmall,
spaceMedium,
spaceLarge
) from '../../styles/variables/_space.css';
@value (
borderWidthPrimary,
borderWidthTertiary,
borderWidthNone,
borderRadiusSmall,
borderRadiusNone
) from '../../styles/variables/_border.css';
.subMenuWrapper {
background: colorSubMenuBackgroundDefault;
width: sizeFluid;
min-height: sizeFullViewportHeight;
cursor: default;
display: flex;
flex-direction: column;
user-select: none;
}
.subMenuTitleAndButton {
height: size60;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: borderWidthPrimary solid colorNeutralDarkest;
margin: spaceNone spaceNone spaceXXSmall spaceXXSmall;
}
.subMenuTitleWrapper {
display: flex;
flex-direction: row;
align-items: center;
padding: spaceSmall;
}
.subMenuCloseButton {
margin: spaceSmall;
}
.subMenuCloseButton:hover {
background-color: colorNeutralDarkest;
}
.subMenuCloseIcon {
color: colorSideMenuIconActive;
}
.subMenuHeader {
height: size60;
display: flex;
flex-direction: row;
align-items: center;
padding: spaceMedium spaceXSmall;
}
.menuChildWrap {
margin: spaceNone spaceSmall;
}
.menuChildWrap:last-child {
border-bottom: none;
}
.subMenuGroupWrapper,
.subMenuLinkWrapper {
display: flex;
flex-direction: column;
margin: spaceXXSmall spaceNone;
flex: auto;
}
.subMenuGroupWrapper {
background: colorNeutralDarkest;
border-radius: borderRadiusSmall;
}
.subMenuGroupHeader,
.subMenuLink {
color: colorSideMenuIconDefault;
background: colorSubMenuBackgroundDefault;
display: flex;
flex-direction: row;
justify-content: space-between;
cursor: pointer;
padding: spaceXSmall;
border-radius: borderRadiusSmall;
}
.subMenuGroupHeader:hover,
.subMenuLink:hover {
background: colorNeutralDarkest;
.groupTitle,
.menuLinkTitle {
color: colorTextInversePrimary;
}
}
.subMenuGroupHeader:focus-visible,
.subMenuGroup:focus-visible,
.subMenuLink:focus-visible {
outline: none;
}
.subMenuGroupHeader.collapsible:focus,
.subMenuLink:focus {
box-shadow: borderWidthNone borderWidthNone borderWidthNone
borderWidthTertiary colorFocusPrimary;
}
.subMenuGroupHeader:not(.collapsible) {
background: colorNeutralDarkest;
}
.subMenuGroupHeader.collapsed,
.subMenuLink.collapsed {
background: colorNeutralDarkest;
}
.subMenuGroupHeader.highlightedMenu {
border: borderWidthPrimary solid colorNeutralDark;
margin: calc(-1 * (borderWidthPrimary));
.groupTitle {
color: colorTextInversePrimary;
}
}
.subMenuLink.highlightedMenu {
background: colorNeutralDarkest;
.menuLinkTitle {
color: colorTextInversePrimary;
}
}
.groupTitleWrapper {
display: flex;
gap: spaceXXSmall;
}
.groupIconWrapper {
display: flex;
position: relative;
padding-right: spaceXSmall;
}
.statusIndicatorWrapper {
position: absolute;
top: calc(-1 * (spaceXXSmall));
right: spaceNone;
}
.groupTitle,
.menuLinkTitle {
color: colorTextInverseSecondary;
}
.menuLinkIcon {
margin-right: spaceXSmall;
}
.subMenuGroup,
.subMenuFocusWrapper {
outline: none;
display: flex;
flex-direction: column;
}
.subMenuGroup {
margin: spaceXSmall spaceXXSmall;
gap: spaceXXSmall;
background: colorNeutralDarkest;
border-radius: borderRadiusSmall;
}
.subMenuGroup.collapsed {
display: none ;
}
.menuItem {
display: flex;
flex-direction: row;
color: colorTextInverseSecondary;
flex-direction: row;
justify-content: space-between;
gap: spaceXSmall;
align-items: center;
flex: auto;
height: size34;
min-height: size34;
border-radius: borderRadiusSmall;
cursor: pointer;
padding: spaceXXSmall;
margin: spaceXXSmall;
box-sizing: border-box;
}
.menuItem:not(.selected):hover {
color: colorTextInversePrimary;
}
.menuItem:focus-visible {
outline: none;
}
.menuItem:focus {
box-shadow: borderWidthNone borderWidthNone borderWidthNone
borderWidthTertiary colorFocusPrimary;
}
.menuIcon {
color: inherit;
}
.menuItem.selected {
color: colorTextInversePrimary;
}
.menuItem.selected::before {
position: absolute;
content: '';
border-radius: borderRadiusSmall;
background-color: colorFillPrimary;
width: spaceXXSmall;
height: spaceMedium;
}
.menuItem.disabled {
pointer-events: none;
}
.menuIconName {
display: flex;
flex-direction: row;
align-items: center;
gap: spaceXXSmall;
padding-left: spaceSmall;
margin-left: spaceXXSmall;
}
.subMenuItemText {
color: inherit;
}
.subMenuItemBadges {
display: flex;
align-items: center;
}