mirror of
				https://github.com/spectreconsole/spectre.console.git
				synced 2025-10-25 15:19:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			192 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| // The dropdown wrapper (`<div>`)
 | |
| .dropup,
 | |
| .dropright,
 | |
| .dropdown,
 | |
| .dropleft {
 | |
|   position: relative;
 | |
| }
 | |
| 
 | |
| .dropdown-toggle {
 | |
|   white-space: nowrap;
 | |
| 
 | |
|   // Generate the caret automatically
 | |
|   @include caret();
 | |
| }
 | |
| 
 | |
| // The dropdown menu
 | |
| .dropdown-menu {
 | |
|   position: absolute;
 | |
|   top: 100%;
 | |
|   left: 0;
 | |
|   z-index: $zindex-dropdown;
 | |
|   display: none; // none by default, but block on "open" of the menu
 | |
|   float: left;
 | |
|   min-width: $dropdown-min-width;
 | |
|   padding: $dropdown-padding-y 0;
 | |
|   margin: $dropdown-spacer 0 0; // override default ul
 | |
|   @include font-size($dropdown-font-size);
 | |
|   color: $dropdown-color;
 | |
|   text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
 | |
|   list-style: none;
 | |
|   background-color: $dropdown-bg;
 | |
|   background-clip: padding-box;
 | |
|   border: $dropdown-border-width solid $dropdown-border-color;
 | |
|   @include border-radius($dropdown-border-radius);
 | |
|   @include box-shadow($dropdown-box-shadow);
 | |
| }
 | |
| 
 | |
| @each $breakpoint in map-keys($grid-breakpoints) {
 | |
|   @include media-breakpoint-up($breakpoint) {
 | |
|     $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
 | |
| 
 | |
|     .dropdown-menu#{$infix}-left {
 | |
|       right: auto;
 | |
|       left: 0;
 | |
|     }
 | |
| 
 | |
|     .dropdown-menu#{$infix}-right {
 | |
|       right: 0;
 | |
|       left: auto;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| // Allow for dropdowns to go bottom up (aka, dropup-menu)
 | |
| // Just add .dropup after the standard .dropdown class and you're set.
 | |
| .dropup {
 | |
|   .dropdown-menu {
 | |
|     top: auto;
 | |
|     bottom: 100%;
 | |
|     margin-top: 0;
 | |
|     margin-bottom: $dropdown-spacer;
 | |
|   }
 | |
| 
 | |
|   .dropdown-toggle {
 | |
|     @include caret(up);
 | |
|   }
 | |
| }
 | |
| 
 | |
| .dropright {
 | |
|   .dropdown-menu {
 | |
|     top: 0;
 | |
|     right: auto;
 | |
|     left: 100%;
 | |
|     margin-top: 0;
 | |
|     margin-left: $dropdown-spacer;
 | |
|   }
 | |
| 
 | |
|   .dropdown-toggle {
 | |
|     @include caret(right);
 | |
|     &::after {
 | |
|       vertical-align: 0;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .dropleft {
 | |
|   .dropdown-menu {
 | |
|     top: 0;
 | |
|     right: 100%;
 | |
|     left: auto;
 | |
|     margin-top: 0;
 | |
|     margin-right: $dropdown-spacer;
 | |
|   }
 | |
| 
 | |
|   .dropdown-toggle {
 | |
|     @include caret(left);
 | |
|     &::before {
 | |
|       vertical-align: 0;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| // When enabled Popper.js, reset basic dropdown position
 | |
| // stylelint-disable-next-line no-duplicate-selectors
 | |
| .dropdown-menu {
 | |
|   &[x-placement^="top"],
 | |
|   &[x-placement^="right"],
 | |
|   &[x-placement^="bottom"],
 | |
|   &[x-placement^="left"] {
 | |
|     right: auto;
 | |
|     bottom: auto;
 | |
|   }
 | |
| }
 | |
| 
 | |
| // Dividers (basically an `<hr>`) within the dropdown
 | |
| .dropdown-divider {
 | |
|   @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);
 | |
| }
 | |
| 
 | |
| // Links, buttons, and more within the dropdown menu
 | |
| //
 | |
| // `<button>`-specific styles are denoted with `// For <button>s`
 | |
| .dropdown-item {
 | |
|   display: block;
 | |
|   width: 100%; // For `<button>`s
 | |
|   padding: $dropdown-item-padding-y $dropdown-item-padding-x;
 | |
|   clear: both;
 | |
|   font-weight: $font-weight-normal;
 | |
|   color: $dropdown-link-color;
 | |
|   text-align: inherit; // For `<button>`s
 | |
|   white-space: nowrap; // prevent links from randomly breaking onto new lines
 | |
|   background-color: transparent; // For `<button>`s
 | |
|   border: 0; // For `<button>`s
 | |
| 
 | |
|   // Prevent dropdown overflow if there's no padding
 | |
|   // See https://github.com/twbs/bootstrap/pull/27703
 | |
|   @if $dropdown-padding-y == 0 {
 | |
|     &:first-child {
 | |
|       @include border-top-radius($dropdown-inner-border-radius);
 | |
|     }
 | |
| 
 | |
|     &:last-child {
 | |
|       @include border-bottom-radius($dropdown-inner-border-radius);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   @include hover-focus() {
 | |
|     color: $dropdown-link-hover-color;
 | |
|     text-decoration: none;
 | |
|     @include gradient-bg($dropdown-link-hover-bg);
 | |
|   }
 | |
| 
 | |
|   &.active,
 | |
|   &:active {
 | |
|     color: $dropdown-link-active-color;
 | |
|     text-decoration: none;
 | |
|     @include gradient-bg($dropdown-link-active-bg);
 | |
|   }
 | |
| 
 | |
|   &.disabled,
 | |
|   &:disabled {
 | |
|     color: $dropdown-link-disabled-color;
 | |
|     pointer-events: none;
 | |
|     background-color: transparent;
 | |
|     // Remove CSS gradients if they're enabled
 | |
|     @if $enable-gradients {
 | |
|       background-image: none;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .dropdown-menu.show {
 | |
|   display: block;
 | |
| }
 | |
| 
 | |
| // Dropdown section headers
 | |
| .dropdown-header {
 | |
|   display: block;
 | |
|   padding: $dropdown-padding-y $dropdown-item-padding-x;
 | |
|   margin-bottom: 0; // for use with heading elements
 | |
|   @include font-size($font-size-sm);
 | |
|   color: $dropdown-header-color;
 | |
|   white-space: nowrap; // as with > li > a
 | |
| }
 | |
| 
 | |
| // Dropdown text
 | |
| .dropdown-item-text {
 | |
|   display: block;
 | |
|   padding: $dropdown-item-padding-y $dropdown-item-padding-x;
 | |
|   color: $dropdown-link-color;
 | |
| }
 |