diff --git a/docs/4.0/getting-started/theming.md b/docs/4.0/getting-started/theming.md index d03a2542240327ad0cbe3487e1056589448917b6..c4c50dc4b168da508ddbf24dd60bfa3d7f6e4350 100644 --- a/docs/4.0/getting-started/theming.md +++ b/docs/4.0/getting-started/theming.md @@ -163,6 +163,7 @@ You can find and customize these variables for key global options in our `_varia | `$enable-transitions` | `true` (default) or `false` | Enables predefined `transition`s on various components. | | `$enable-hover-media-query` | `true` or `false` (default) | ... | | `$enable-grid-classes` | `true` (default) or `false` | Enables the generation of CSS classes for the grid system (e.g., `.container`, `.row`, `.col-md-1`, etc.). | +| `$enable-caret` | `true` (default) or `false` | Enables pseudo element caret on `.dropdown-toggle`. | | `$enable-print-styles` | `true` (default) or `false` | Enables styles for optimizing printing. | ## Color diff --git a/scss/_dropdown.scss b/scss/_dropdown.scss index 6e81947ed9f047908d864814d3e5bd22dcb09ee2..32657167f54dee4c4ae1bc1929dac333fd29ea8d 100644 --- a/scss/_dropdown.scss +++ b/scss/_dropdown.scss @@ -6,21 +6,7 @@ .dropdown-toggle { // Generate the caret automatically - &::after { - display: inline-block; - width: 0; - height: 0; - margin-left: $caret-width * .85; - vertical-align: $caret-width * .85; - content: ""; - border-top: $caret-width solid; - border-right: $caret-width solid transparent; - border-left: $caret-width solid transparent; - } - - &:empty::after { - margin-left: 0; - } + @include caret; } // Allow for dropdowns to go bottom up (aka, dropup-menu) @@ -32,10 +18,7 @@ } .dropdown-toggle { - &::after { - border-top: 0; - border-bottom: $caret-width solid; - } + @include caret(up); } } diff --git a/scss/_mixins.scss b/scss/_mixins.scss index 09035bf10724f23a8327a37b2783a724b4799791..d9a1774b7dabf7e253fd0606cc649368a4707cb4 100644 --- a/scss/_mixins.scss +++ b/scss/_mixins.scss @@ -19,6 +19,7 @@ // // Components @import "mixins/alert"; @import "mixins/buttons"; +@import "mixins/caret"; @import "mixins/pagination"; @import "mixins/lists"; @import "mixins/list-group"; diff --git a/scss/_variables.scss b/scss/_variables.scss index 437434ce2fed226f9296b3bda6eebb221b7511d4..7b39e8b921f60351ccba2895be91b87e51946ccd 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -83,6 +83,7 @@ $theme-color-interval: 8% !default; // // Quickly modify global styling by enabling or disabling optional features. +$enable-caret: true !default; $enable-rounded: true !default; $enable-shadows: false !default; $enable-gradients: false !default; diff --git a/scss/mixins/_caret.scss b/scss/mixins/_caret.scss new file mode 100644 index 0000000000000000000000000000000000000000..daab9d03c0c54fada249c157771b828832e80f99 --- /dev/null +++ b/scss/mixins/_caret.scss @@ -0,0 +1,35 @@ +@mixin caret-down { + border-top: $caret-width solid; + border-right: $caret-width solid transparent; + border-bottom: 0; + border-left: $caret-width solid transparent; +} + +@mixin caret-up { + border-top: 0; + border-right: $caret-width solid transparent; + border-bottom: $caret-width solid; + border-left: $caret-width solid transparent; +} + +@mixin caret($direction: down) { + @if $enable-caret { + &::after { + display: inline-block; + width: 0; + height: 0; + margin-left: $caret-width * .85; + vertical-align: $caret-width * .85; + content: ""; + @if $direction == down { + @include caret-down; + } @else if $direction == up { + @include caret-up; + } + } + + &:empty::after { + margin-left: 0; + } + } +}