UNPKG

@synergy-design-system/components

Version:
186 lines (158 loc) 5.76 kB
// src/components/details/details.styles.ts import { css } from "lit"; var details_styles_default = css` :host { /* Size-dependent custom properties (default to medium values) */ --details-header-padding: var(--syn-spacing-medium-large) 0; --details-content-padding: var(--syn-spacing-medium) 0 var(--syn-spacing-large); --details-summary-font: var(--syn-body-medium-bold); --details-content-font-size: var(--syn-font-size-small); --details-icon-size: var(--syn-spacing-large); --details-slotted-icon-size: var(--syn-spacing-large); /* Contained variant custom properties */ --details-header-padding-contained: var(--syn-spacing-medium-large) var(--syn-spacing-large); --details-content-padding-contained: var(--syn-spacing-medium) var(--syn-spacing-large) var(--syn-spacing-large); display: block; } .details { background-color: transparent; border: 1px solid var(--syn-panel-border-color); border-radius: var(--syn-border-radius-none); border-width: 0 0 var(--syn-border-width-small); overflow-anchor: none; } /** #429: Use token for opacity */ .details--disabled { opacity: var(--syn-opacity-50); } .details__header { align-items: center; border-radius: inherit; cursor: pointer; display: flex; gap: var(--syn-spacing-medium); padding: var(--details-header-padding); user-select: none; } .details__header::-webkit-details-marker { display: none; } .details__header:focus { outline: none; } .details__header:focus-visible { outline: var(--syn-focus-ring); outline-offset: calc(1px + var(--syn-focus-ring-offset)); } .details--disabled .details__header { cursor: not-allowed; } .details--disabled .details__header:focus-visible { box-shadow: none; outline: none; } .details__summary { align-items: center; color: var(--syn-typography-color-text); display: flex; flex: 1 1 auto; font: var(--details-summary-font); } .details__summary-icon { align-items: center; align-self: flex-start; color: var(--syn-color-neutral-950); display: flex; flex: 0 0 auto; font-size: var(--details-icon-size); position: relative; /** * As we are using an alignment of "start" instead of "center" make sure * the arrow starts on the same visual line as the first line of headline text */ top: 2px; transition: var(--syn-transition-medium) rotate ease; } /** * As we are using top/down arrows for the details element, * we have to adjust the rotation of the icon when the details is open. */ .details--open .details__summary-icon { rotate: var(--syn-details-open-rotation); } .details--open slot[name='expand-icon'], .details:not(.details--open) slot[name='collapse-icon'] { display: none; } .details__body { overflow: hidden; } .details__content { display: block; font-size: var(--details-content-font-size); line-height: var(--syn-line-height-normal); padding: var(--details-content-padding); } /** * Size variants */ .details--size-small { --details-header-padding: var(--syn-spacing-small) 0; --details-content-padding: var(--syn-spacing-small) 0 var(--syn-spacing-medium-large); --details-summary-font: var(--syn-body-small-bold); --details-content-font-size: var(--syn-font-size-x-small); --details-icon-size: var(--syn-spacing-medium-large); --details-slotted-icon-size: var(--syn-spacing-medium-large); --details-header-padding-contained: var(--syn-spacing-small) var(--syn-spacing-large); --details-content-padding-contained: var(--syn-spacing-small) var(--syn-spacing-large) var(--syn-spacing-medium-large); } /* stylelint-disable-next-line no-descending-specificity */ .details--size-small .details__header { min-height: var(--syn-spacing-large); } .details--size-large { --details-header-padding: var(--syn-spacing-large) 0; --details-content-padding: var(--syn-spacing-medium-large) 0 var(--syn-spacing-large); --details-summary-font: var(--syn-body-large-bold); --details-content-font-size: var(--syn-font-size-medium); --details-icon-size: var(--syn-spacing-x-large); --details-slotted-icon-size: var(--syn-spacing-x-large); --details-header-padding-contained: var(--syn-spacing-large); --details-content-padding-contained: var(--syn-spacing-medium-large) var(--syn-spacing-large) var(--syn-spacing-large); } .details__summary::slotted(syn-icon) { /* Avoid shrinking of the icon, if the text content of the summary is very long and multi line */ flex-shrink: 0; font-size: var(--details-slotted-icon-size); margin-right: var(--syn-spacing-small); } /** * Add a visually visible hover effect to the summary element */ .details:not(.details--disabled) .details__header:hover .details__summary, .details:not(.details--disabled) .details__header:hover .details__summary-icon { color: var(--syn-interactive-quiet-color-hover); } /** * Contained style */ .details--contained { background-color: var(--syn-panel-background-color); border-radius: var(--syn-border-radius-medium); border-width: var(--syn-panel-border-width); } /* stylelint-disable-next-line no-descending-specificity */ .details--contained .details__header { padding: var(--details-header-padding-contained); } .details--contained .details__content { padding: var(--details-content-padding-contained); } .details--contained .details__header:focus-visible { border-radius: var(--syn-border-radius-medium); } `; export { details_styles_default }; //# sourceMappingURL=chunk.IP6JSQWX.js.map