@trimble-oss/moduswebcomponents
Version:
Modus Web Components is a modern, accessible UI library built with Stencil JS that provides reusable web components following Trimble's Modus design system. This updated version focuses on improved flexibility, enhanced theming options, comprehensive cust
249 lines (241 loc) • 16.8 kB
CSS
/**
* Only add styles here that should not be applied by Tailwind or the theme.
*/
modus-wc-tree-item .modus-wc-menu-item {
display: flex;
flex-direction: column;
width: 100%;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive {
align-items: center;
border-radius: inherit;
display: flex;
width: 100%;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive:focus {
background-color: transparent;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive.modus-wc-menu-dropdown-toggle::after {
color: var(--modus-wc-color-base-content);
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content {
align-items: center;
display: flex;
width: 100%;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content [slot=start] {
padding-inline-end: var(--modus-wc-spacing-sm);
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content [slot=end] {
margin-inline-start: auto;
padding-inline-start: var(--modus-wc-spacing-sm);
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content [slot=end]:is(modus-wc-dropdown-menu) {
background-color: transparent;
padding-inline-start: 0;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content modus-wc-checkbox {
padding-inline-end: var(--modus-wc-spacing-sm);
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content .modus-wc-menu-item-labels {
padding-inline-end: var(--modus-wc-spacing-xs);
padding-inline-start: var(--modus-wc-spacing-md);
white-space: nowrap;
}
modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-sm);
white-space: nowrap;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-sm .modus-wc-menu-item-interactive {
font-size: var(--modus-wc-font-size-sm);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-sm .modus-wc-menu-item-interactive .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-xs);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-md .modus-wc-menu-item-interactive {
font-size: var(--modus-wc-font-size-md);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-md .modus-wc-menu-item-interactive .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-sm);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-lg .modus-wc-menu-item-interactive {
font-size: var(--modus-wc-font-size-lg);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-lg .modus-wc-menu-item-interactive .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-md);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-bordered {
border-bottom: var(--modus-wc-border-width-xs) solid var(--modus-wc-color-base-200);
border-radius: 0;
border-top: var(--modus-wc-border-width-xs) solid var(--modus-wc-color-base-200);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-bordered.modus-wc-menu-item-selected, modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-bordered.modus-wc-menu-item-active {
border-color: transparent;
}
modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-selected) {
color: var(--modus-wc-color-base-content);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-selected {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary-pale) 50%, transparent);
border-radius: inherit;
color: var(--modus-wc-base-content);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-selected:focus {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary-pale) 50%, transparent);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-selected .modus-wc-menu-item-interactive {
background-color: transparent;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-selected .modus-wc-menu-item-interactive:hover, modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-selected .modus-wc-menu-item-interactive:focus {
background-color: transparent;
border-radius: inherit;
box-shadow: none;
color: inherit;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary-pale) 50%, transparent);
border-radius: inherit;
color: var(--modus-wc-color-base-content);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active:focus {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary-pale) 50%, transparent);
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive {
background-color: transparent;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:hover, modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:focus {
background-color: transparent;
border-radius: inherit;
box-shadow: none;
color: inherit;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-disabled {
opacity: 0.4;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-disabled .modus-wc-menu-item-interactive {
pointer-events: none;
}
modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: var(--modus-wc-color-base-100);
outline: none;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: var(--modus-wc-color-base-100);
}
modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):focus:not(:focus-visible), modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)).modus-wc-arrow-focused {
background-color: var(--modus-wc-color-base-100);
color: var(--modus-wc-color-primary);
outline: none;
}
modus-wc-tree-item .modus-wc-menu-item:focus-visible {
background-color: transparent;
outline: 2px solid var(--modus-wc-color-primary);
outline-offset: -2px;
}
modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-focused {
border-radius: inherit;
outline: 2px solid var(--modus-wc-color-primary);
outline-offset: -2px;
}
[data-theme=modus-modern-light] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive:hover,
[data-theme=modus-modern-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive:hover,
[data-theme=modus-classic-light] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive:hover,
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive:hover {
background-color: transparent;
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active),
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active) {
color: var(--modus-wc-color-gray-light);
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive.modus-wc-menu-dropdown-toggle::after,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive.modus-wc-menu-dropdown-toggle::after {
color: var(--modus-wc-color-gray-3);
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: var(--modus-wc-color-gray-9);
color: inherit;
outline: none;
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: var(--modus-wc-color-gray-9);
color: inherit;
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active, [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)),
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary) 30%, transparent);
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive, [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive {
background-color: transparent;
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:hover, [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:focus, [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive:hover, [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive:focus,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:hover,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive:focus,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive:hover,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :active)):not(:has([slot=start] :active)) .modus-wc-menu-item-interactive:focus {
background-color: transparent;
box-shadow: none;
color: inherit;
}
[data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):focus:not(:focus-visible), [data-theme=modus-classic-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)).modus-wc-arrow-focused,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):focus:not(:focus-visible),
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)).modus-wc-arrow-focused {
background-color: var(--modus-wc-color-gray-9);
}
[data-theme=connect-light] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content:not(:has([slot=start])) .modus-wc-menu-item-labels,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content:not(:has([slot=start])) .modus-wc-menu-item-labels {
padding-inline-start: 0;
}
[data-theme=connect-light] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content:not(:has([slot=end])) .modus-wc-menu-item-labels,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-content:not(:has([slot=end])) .modus-wc-menu-item-labels {
padding-inline-end: 0;
}
[data-theme=connect-light] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-labels,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item .modus-wc-menu-item-interactive .modus-wc-menu-item-labels {
font-weight: var(--modus-wc-font-weight-normal);
}
[data-theme=connect-light] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive .modus-wc-menu-item-labels,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-active .modus-wc-menu-item-interactive .modus-wc-menu-item-labels {
font-weight: var(--modus-wc-font-weight-semibold);
}
[data-theme=connect-light] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-md .modus-wc-menu-item-interactive .modus-wc-menu-item-labels,
[data-theme=connect-dark] modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-md .modus-wc-menu-item-interactive .modus-wc-menu-item-labels {
font-size: 0.8125rem;
line-height: 1.125rem;
}
/* Connect light side nav: suppress base-100 li hover; paint row on interactive. */
[data-theme=connect-light] modus-wc-side-navigation modus-wc-tree-menu .modus-wc-menu li.modus-wc-menu-item:hover,
[data-theme=connect-light] modus-wc-side-navigation modus-wc-tree-item .modus-wc-menu-item:hover {
background-color: transparent;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active) > .modus-wc-menu-item-interactive:hover {
background-color: var(--modus-wc-color-trimble-blue) ;
color: var(--modus-wc-color-white) ;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: transparent;
outline: none;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-tree-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):not(:has([slot=end] :hover)):not(:has([slot=end] :active)):not(:has([slot=start] :hover)):not(:has([slot=start] :active)):hover {
background-color: transparent;
}
modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):has([slot=end] :active) {
background-color: transparent;
color: inherit;
}
modus-wc-tree-item .modus-wc-menu-item:has([slot=end] :active) > .modus-wc-menu-item-interactive {
background-color: transparent;
color: inherit;
}
modus-wc-tree-item .modus-wc-menu-item:not(.modus-wc-menu-item-active):has([slot=start] :active) {
background-color: transparent;
color: inherit;
}
modus-wc-tree-item .modus-wc-menu-item:has([slot=start] :active) > .modus-wc-menu-item-interactive {
background-color: transparent;
color: inherit;
}