@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
198 lines (195 loc) • 11.8 kB
CSS
/**
* This component uses Tailwind CSS and DaisyUI.
* Only add styles here that should not be applied by Tailwind, Daisy, or the theme.
*/
modus-wc-menu-item .modus-wc-menu-item button {
align-items: center;
border-radius: inherit;
display: flex;
width: 100%;
}
modus-wc-menu-item .modus-wc-menu-item button:hover {
background-color: transparent;
}
modus-wc-menu-item .modus-wc-menu-item button:focus {
background-color: transparent;
}
modus-wc-menu-item .modus-wc-menu-item button.modus-wc-menu-dropdown-toggle::after {
color: var(--modus-wc-color-base-content);
}
modus-wc-menu-item .modus-wc-menu-item button .modus-wc-menu-item-content {
align-items: center;
display: flex;
width: 100%;
}
modus-wc-menu-item .modus-wc-menu-item button .modus-wc-menu-item-content [slot=start-icon] {
padding-inline-end: var(--modus-wc-spacing-sm);
}
modus-wc-menu-item .modus-wc-menu-item button .modus-wc-menu-item-content modus-wc-checkbox {
padding-inline-end: var(--modus-wc-spacing-sm);
}
modus-wc-menu-item .modus-wc-menu-item button .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-menu-item .modus-wc-menu-item button .modus-wc-menu-item-content .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-sm);
white-space: nowrap;
}
modus-wc-menu-item .modus-wc-menu-item button .modus-wc-menu-item-content .modus-wc-menu-item-selected-icon {
margin-left: auto;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-sm button {
font-size: var(--modus-wc-font-size-sm);
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-sm button .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-xs);
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-md button {
font-size: var(--modus-wc-font-size-md);
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-md button .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-sm);
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-lg button {
font-size: var(--modus-wc-font-size-lg);
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-lg button .modus-wc-menu-item-sublabel {
font-size: var(--modus-wc-font-size-md);
}
modus-wc-menu-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-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-selected) {
color: var(--modus-wc-color-base-content);
}
modus-wc-menu-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-menu-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-menu-item .modus-wc-menu-item.modus-wc-menu-item-selected button {
background-color: transparent;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-selected button:hover, modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-selected button:focus {
background-color: transparent;
border-radius: inherit;
box-shadow: none;
color: inherit;
}
modus-wc-menu-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-menu-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-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button {
background-color: transparent;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:hover, modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:focus {
background-color: transparent;
border-radius: inherit;
box-shadow: none;
color: inherit;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-disabled {
opacity: 0.4;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-disabled button {
pointer-events: none;
}
modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: var(--modus-wc-color-base-100);
outline: none;
}
modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: var(--modus-wc-color-base-100);
}
modus-wc-menu-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-menu-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-menu-item .modus-wc-menu-item:focus-visible {
background-color: transparent;
outline: 2px solid var(--modus-wc-color-primary);
outline-offset: -2px;
}
modus-wc-menu-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-classic-dark] modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-active),
[data-theme=connect-dark] modus-wc-menu-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-menu-item .modus-wc-menu-item button.modus-wc-menu-dropdown-toggle::after,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item button.modus-wc-menu-dropdown-toggle::after {
color: var(--modus-wc-color-gray-3);
}
[data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):hover,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: var(--modus-wc-color-gray-9);
color: inherit;
outline: none;
}
[data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):hover,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: var(--modus-wc-color-gray-9);
color: inherit;
}
[data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active, [data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)),
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) {
background-color: color-mix(in sRGB, var(--modus-wc-color-primary) 30%, transparent);
}
[data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button, [data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button {
background-color: transparent;
}
[data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:hover, [data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:focus, [data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button:hover, [data-theme=modus-classic-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button:focus,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:hover,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-active button:focus,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button:hover,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item:active:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)) button:focus {
background-color: transparent;
box-shadow: none;
color: inherit;
}
[data-theme=modus-classic-dark] modus-wc-menu-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-menu-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-menu-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-menu-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-menu-item .modus-wc-menu-item > button.modus-wc-menu-dropdown-toggle::after,
[data-theme=connect-dark] modus-wc-menu-item .modus-wc-menu-item > button.modus-wc-menu-dropdown-toggle::after {
color: var(--modus-wc-color-white);
}
/* Connect side nav: never paint li with base-100 on hover (white flash on blue panel). */
[data-theme=connect-light] modus-wc-side-navigation modus-wc-menu .modus-wc-menu li.modus-wc-menu-item:not(.modus-wc-menu-item-active):hover {
background-color: transparent;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-disabled):not(.modus-wc-menu-item-focused):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: transparent;
outline: none;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-menu-item .modus-wc-menu-item.modus-wc-menu-item-focused:not(.modus-wc-menu-item-disabled):not(:has(.modus-wc-menu-dropdown)):hover {
background-color: transparent;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-menu-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-light] modus-wc-side-navigation modus-wc-menu-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: transparent;
}
[data-theme=connect-light] modus-wc-side-navigation modus-wc-menu-item .modus-wc-menu-item:not(.modus-wc-menu-item-active) > button:hover {
background-color: var(--modus-wc-color-trimble-blue);
color: var(--modus-wc-color-white);
}