mirror of
				https://github.com/twbs/bootstrap.git
				synced 2025-10-31 00:04:27 -04:00 
			
		
		
		
	Use the Sass variable `$accordion-button-color` to set the CSS custom property `--bs-accordion-btn-color`.
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| //
 | |
| // Base styles
 | |
| //
 | |
| 
 | |
| .accordion {
 | |
|   // scss-docs-start accordion-css-vars
 | |
|   --#{$prefix}accordion-color: #{$accordion-color};
 | |
|   --#{$prefix}accordion-bg: #{$accordion-bg};
 | |
|   --#{$prefix}accordion-transition: #{$accordion-transition};
 | |
|   --#{$prefix}accordion-border-color: #{$accordion-border-color};
 | |
|   --#{$prefix}accordion-border-width: #{$accordion-border-width};
 | |
|   --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
 | |
|   --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
 | |
|   --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
 | |
|   --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
 | |
|   --#{$prefix}accordion-btn-color: #{$accordion-button-color};
 | |
|   --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
 | |
|   --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
 | |
|   --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
 | |
|   --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
 | |
|   --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
 | |
|   --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
 | |
|   --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
 | |
|   --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
 | |
|   --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
 | |
|   --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
 | |
|   --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
 | |
|   --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
 | |
|   // scss-docs-end accordion-css-vars
 | |
| }
 | |
| 
 | |
| .accordion-button {
 | |
|   position: relative;
 | |
|   display: flex;
 | |
|   align-items: center;
 | |
|   width: 100%;
 | |
|   padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
 | |
|   @include font-size($font-size-base);
 | |
|   color: var(--#{$prefix}accordion-btn-color);
 | |
|   text-align: left; // Reset button style
 | |
|   background-color: var(--#{$prefix}accordion-btn-bg);
 | |
|   border: 0;
 | |
|   @include border-radius(0);
 | |
|   overflow-anchor: none;
 | |
|   @include transition(var(--#{$prefix}accordion-transition));
 | |
| 
 | |
|   &:not(.collapsed) {
 | |
|     color: var(--#{$prefix}accordion-active-color);
 | |
|     background-color: var(--#{$prefix}accordion-active-bg);
 | |
|     box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
 | |
| 
 | |
|     &::after {
 | |
|       background-image: var(--#{$prefix}accordion-btn-active-icon);
 | |
|       transform: var(--#{$prefix}accordion-btn-icon-transform);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Accordion icon
 | |
|   &::after {
 | |
|     flex-shrink: 0;
 | |
|     width: var(--#{$prefix}accordion-btn-icon-width);
 | |
|     height: var(--#{$prefix}accordion-btn-icon-width);
 | |
|     margin-left: auto;
 | |
|     content: "";
 | |
|     background-image: var(--#{$prefix}accordion-btn-icon);
 | |
|     background-repeat: no-repeat;
 | |
|     background-size: var(--#{$prefix}accordion-btn-icon-width);
 | |
|     @include transition(var(--#{$prefix}accordion-btn-icon-transition));
 | |
|   }
 | |
| 
 | |
|   &:hover {
 | |
|     z-index: 2;
 | |
|   }
 | |
| 
 | |
|   &:focus {
 | |
|     z-index: 3;
 | |
|     border-color: var(--#{$prefix}accordion-btn-focus-border-color);
 | |
|     outline: 0;
 | |
|     box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
 | |
|   }
 | |
| }
 | |
| 
 | |
| .accordion-header {
 | |
|   margin-bottom: 0;
 | |
| }
 | |
| 
 | |
| .accordion-item {
 | |
|   color: var(--#{$prefix}accordion-color);
 | |
|   background-color: var(--#{$prefix}accordion-bg);
 | |
|   border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
 | |
| 
 | |
|   &:first-of-type {
 | |
|     @include border-top-radius(var(--#{$prefix}accordion-border-radius));
 | |
| 
 | |
|     .accordion-button {
 | |
|       @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &:not(:first-of-type) {
 | |
|     border-top: 0;
 | |
|   }
 | |
| 
 | |
|   // Only set a border-radius on the last item if the accordion is collapsed
 | |
|   &:last-of-type {
 | |
|     @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
 | |
| 
 | |
|     .accordion-button {
 | |
|       &.collapsed {
 | |
|         @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .accordion-collapse {
 | |
|       @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .accordion-body {
 | |
|   padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
 | |
| }
 | |
| 
 | |
| 
 | |
| // Flush accordion items
 | |
| //
 | |
| // Remove borders and border-radius to keep accordion items edge-to-edge.
 | |
| 
 | |
| .accordion-flush {
 | |
|   .accordion-collapse {
 | |
|     border-width: 0;
 | |
|   }
 | |
| 
 | |
|   .accordion-item {
 | |
|     border-right: 0;
 | |
|     border-left: 0;
 | |
|     @include border-radius(0);
 | |
| 
 | |
|     &:first-child { border-top: 0; }
 | |
|     &:last-child { border-bottom: 0; }
 | |
| 
 | |
|     .accordion-button {
 | |
|       &,
 | |
|       &.collapsed {
 | |
|         @include border-radius(0);
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 |