@synergy-design-system/components
Version:
186 lines (158 loc) • 5.76 kB
JavaScript
// 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