/** * @file * Collapsible details. */ @import "../base/media-queries.pcss.css"; :root { --details-border-width: 1px; --details-summary-transition: background-color 0.12s ease-in-out; } .olives-details { display: block; margin-block: var(--sp1); color: inherit; border: var(--details-border-width) solid var(--color--gray-95); border-radius: var(--border-radius); box-shadow: 0 1px 4px var(--color--gray-90); } /* Details summary styles */ .olives-details__summary { position: relative; padding-block: var(--sp1); padding-inline-start: var(--sp2); padding-inline-end: var(--sp1); list-style: none; cursor: pointer; transition: var(--details-summary-transition); word-wrap: break-word; hyphens: auto; color: inherit; background-color: var(--color--gray-100); font-size: var(--line-height-s); font-weight: 700; line-height: var(--sp1); } /* Arrow icon */ .olives-details__summary::before { position: absolute; inset-block-start: 50%; inset-inline-start: var(--sp0-75); display: block; width: 10px; height: 10px; content: ""; transform: translateY(-50%) rotate(45deg); /* LTR */ border-top: solid 2px currentColor; border-right: solid 2px currentColor; } [dir="rtl"] .olives-details__summary::before { transform: translateY(-50%) rotate(-135deg); } /* Pseudo-selector to manage focus styles */ .olives-details__summary::after { position: absolute; inset: calc(var(--details-border-width) * -1); content: ""; pointer-events: none; opacity: 0; border-radius: var(--border-radius); box-shadow: inset 0 0 0 2px var(--color--primary-60); } /* Hide the marker */ .olives-details__summary::-webkit-details-marker { display: none; } /* Disable default outline for summary, since we have own implementation */ .olives-details__summary:focus { outline: solid 2px transparent; outline-offset: -4px; } /* Details summary, hover state */ .olives-details__summary:hover { background-color: var(--color--gray-95); } /* Details summary, focus and active states */ .olives-details__summary:focus::after, .olives-details__summary:active::after { opacity: 1; } /* Rotate arrow icon of the details summary, when details expanded */ .olives-details[open] > .olives-details__summary::before { margin-block-start: -2px; transform: translateY(-50%) rotate(135deg); } /* Details content wrapper */ .olives-details__wrapper { margin: var(--sp1); @media (--lg) { margin-block-start: var(--sp1-5); margin-block-end: var(--sp1-5); margin-inline-start: var(--sp2); margin-inline-end: var(--sp2); } } /* Description */ .olives-details__description { margin-block-end: var(--sp1); color: var(--color-text-neutral-medium); font-size: var(--font-size-xs); line-height: var(--line-height-s); }