UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

176 lines (143 loc) 3.21 kB
/* * Accordion * * For accessibility, we provide a style for focus only on Tab. * For enable this focus, load the javascript polyfill for focus-visible * (https://github.com/WICG/focus-visible). * * Index * - Accordion * - Accordion button * - Accordion content * */ /* ACCORDION -------------------- */ .accordion { --max-height: none; overflow: hidden; font-family: var(--road-font, sans-serif); font-size: var(--road-body-small); line-height: 1.5; color: var(--road-on-surface); background: var(--road-surface); border: 1px solid; border-color: var(--road-input-outline); border-radius: 0.25rem; transition: max-height 0.3s ease-in-out; } .accordion.accordion-light { background: none; border: 0; } /** * Open state */ .accordion[open] { max-height: var(--max-height); } .accordion[open] .accordion-arrow{ transform: rotate(-90deg); } .accordion[open] .accordion-content{ padding: 0.75rem 0 0; margin: 0 1rem 0.75rem; } .accordion-light[open] .accordion-light-content { margin: 0 0 var(--road-spacing-04); } .accordion-light[open] .accordion-light-header::after { display: none; } /* ACCORDION BUTTON -------------------- */ .accordion-trigger { box-sizing: border-box; display: block; border: 1px solid transparent; border-radius: 0.25rem; outline: 0; } .accordion-light .accordion-trigger:active{ background: none; } .accordion-trigger::-webkit-details-marker{ /* Remove chrome native arrow */ display: none; } /** * Focus on Tab */ .accordion-trigger.focus-visible { border-color: var(--road-primary); } /** * Active state */ .accordion-trigger:active { background: var(--road-surface-inverse); } /** * .accordion-header is an additionnal div * because Safari doesn't support flexbox on <summary> element */ .accordion-header { box-sizing: border-box; display: flex; align-items: center; justify-content: flex-start; padding: 0.75rem 1rem; font-size: var(--road-body-medium); font-weight: 700; cursor: pointer; } .accordion-light-header{ position: relative; padding: var(--road-spacing-04) 0; font-size: var(--road-body-large); } .accordion-light--small .accordion-light-header { font-size: var(--road-body-medium); } .accordion-light--border .accordion-light-header::after { position: absolute; bottom: 1px; width: 98.3%; height: 1px; content: ""; background: var(--road-outline-weak); } /** * Custom arrow */ .accordion-arrow { width: 2rem; height: 2rem; margin-left: auto; transform: rotate(90deg); fill: var(--road-icon); } .accordion-light--small .accordion-arrow { width: 1.5rem; height: 1.5rem; } .accordion-icon-left { width: 1.5rem; height: 1.5rem; margin-right: 1rem; } /* ACCORDION CONTENT -------------------- */ .accordion-content{ padding: 0 0.5rem; margin: 0 1rem; overflow: hidden; font-size: var(--road-body-medium); border-top: 1px solid var(--road-outline-weak); } .accordion-light-content { border-top: 1px solid var(--road-outline-weak); } .accordion-light--border .accordion-light-content { border-top: 1px solid var(--road-outline-weak); border-bottom: 1px solid var(--road-outline-weak); }