117 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| @use "sass:map";
 | |
| @use "../settings" as *;
 | |
| 
 | |
| @if map.get($modules, "components/accordion") {
 | |
|   /**
 | |
|    * Accordion (<details>)
 | |
|    */
 | |
| 
 | |
|   #{$parent-selector} details {
 | |
|     display: block;
 | |
|     margin-bottom: var(#{$css-var-prefix}spacing);
 | |
| 
 | |
|     summary {
 | |
|       line-height: 1rem;
 | |
|       list-style-type: none;
 | |
|       cursor: pointer;
 | |
| 
 | |
|       &:not([role]) {
 | |
|         color: var(#{$css-var-prefix}accordion-close-summary-color);
 | |
|       }
 | |
| 
 | |
|       @if $enable-transitions {
 | |
|         transition: color var(#{$css-var-prefix}transition);
 | |
|       }
 | |
| 
 | |
|       // Reset marker
 | |
|       &::-webkit-details-marker {
 | |
|         display: none;
 | |
|       }
 | |
| 
 | |
|       &::marker {
 | |
|         display: none;
 | |
|       }
 | |
| 
 | |
|       &::-moz-list-bullet {
 | |
|         list-style-type: none;
 | |
|       }
 | |
| 
 | |
|       // Marker
 | |
|       &::after {
 | |
|         display: block;
 | |
|         width: 1rem;
 | |
|         height: 1rem;
 | |
|         margin-inline-start: calc(var(#{$css-var-prefix}spacing, 1rem) * 0.5);
 | |
|         float: right;
 | |
|         transform: rotate(-90deg);
 | |
|         background-image: var(#{$css-var-prefix}icon-chevron);
 | |
|         background-position: right center;
 | |
|         background-size: 1rem auto;
 | |
|         background-repeat: no-repeat;
 | |
|         content: "";
 | |
| 
 | |
|         @if $enable-transitions {
 | |
|           transition: transform var(#{$css-var-prefix}transition);
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       &:focus {
 | |
|         outline: none;
 | |
| 
 | |
|         &:not([role]) {
 | |
|           color: var(#{$css-var-prefix}accordion-active-summary-color);
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       &:focus-visible {
 | |
|         &:not([role]) {
 | |
|           outline: var(#{$css-var-prefix}outline-width) solid var(#{$css-var-prefix}primary-focus);
 | |
|           outline-offset: calc(var(#{$css-var-prefix}spacing, 1rem) * 0.5);
 | |
|           color: var(#{$css-var-prefix}primary);
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       // Type button
 | |
|       &[role="button"] {
 | |
|         width: 100%;
 | |
|         text-align: left;
 | |
| 
 | |
|         // Marker
 | |
|         &::after {
 | |
|           height: calc(1rem * var(#{$css-var-prefix}line-height, 1.5));
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // Open
 | |
|     &[open] {
 | |
|       > summary {
 | |
|         margin-bottom: var(#{$css-var-prefix}spacing);
 | |
| 
 | |
|         &:not([role]) {
 | |
|           &:not(:focus) {
 | |
|             color: var(#{$css-var-prefix}accordion-open-summary-color);
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         &::after {
 | |
|           transform: rotate(0);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   [dir="rtl"] {
 | |
|     #{$parent-selector} details {
 | |
|       summary {
 | |
|         text-align: right;
 | |
| 
 | |
|         &::after {
 | |
|           float: left;
 | |
|           background-position: left center;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | 
