bootstrap-less-port
Version:
A Less port of Bootstrap v4
1,124 lines (851 loc) • 43.3 kB
text/less
// Variables
//
// Variables should follow the `@component-state-property-size` formula for
// consistent naming. Ex: @nav-link-disabled-color and @modal-content-box-shadow-xs.
// Color system
@white: #fff;
@gray-100: #f8f9fa;
@gray-200: #e9ecef;
@gray-300: #dee2e6;
@gray-400: #ced4da;
@gray-500: #adb5bd;
@gray-600: #6c757d;
@gray-700: #495057;
@gray-800: #343a40;
@gray-900: #212529;
@black: #000;
@grays: {
100: @gray-100;
200: @gray-200;
300: @gray-300;
400: @gray-400;
500: @gray-500;
600: @gray-600;
700: @gray-700;
800: @gray-800;
900: @gray-900;
};
@blue: #007bff;
@indigo: #6610f2;
@purple: #6f42c1;
@pink: #e83e8c;
@red: #dc3545;
@orange: #fd7e14;
@yellow: #ffc107;
@green: #28a745;
@teal: #20c997;
@cyan: #17a2b8;
@colors: {
blue: @blue;
indigo: @indigo;
purple: @purple;
pink: @pink;
red: @red;
orange: @orange;
yellow: @yellow;
green: @green;
teal: @teal;
cyan: @cyan;
white: @white;
gray: @gray-600;
gray-dark: @gray-800;
};
@primary: @blue;
@secondary: @gray-600;
@success: @green;
@info: @cyan;
@warning: @yellow;
@danger: @red;
@light: @gray-100;
@dark: @gray-800;
@theme-colors: {
primary: @primary;
secondary: @secondary;
success: @success;
info: @info;
warning: @warning;
danger: @danger;
light: @light;
dark: @dark;
};
// Set a specific jump point for requesting color jumps
@theme-color-interval: 8%;
// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
@yiq-contrasted-threshold: 150;
// Customize the light and dark text colors for use in our YIQ color contrast function.
@yiq-text-dark: @gray-900;
@yiq-text-light: @white;
// Characters which are escaped by the escape-svg function
// LESS PORT: Because of the unconventional use of special characters here, the value of this
// variable is considered to be a whole string -- not a ruleset!
@escaped-characters: {
<: %3c;
>: %3e;
#: %23;
(: %28;
): %29;
};
// Options
//
// Quickly modify global styling by enabling or disabling optional features.
// LESS PORT: Note that `false` has no actual meaning in Less, but in this case it has the desired
// effect (of disabling a feature) only because it’s not `true`, which is what Less cares about.
@enable-caret: true;
@enable-rounded: true;
@enable-shadows: false;
@enable-gradients: false;
@enable-transitions: true;
@enable-prefers-reduced-motion-media-query: true;
@enable-hover-media-query: false; // Deprecated, no longer affects any compiled CSS
@enable-grid-classes: true;
@enable-pointer-cursor-for-buttons: true;
@enable-print-styles: true;
@enable-responsive-font-sizes: false;
@enable-validation-icons: true;
@enable-deprecation-messages: true;
// Spacing
//
// Control the default styling of most Bootstrap elements by modifying these
// variables. Mostly focused on spacing.
// You can add more entries to the @spacers map, should you need more variation.
@spacer: 1rem;
@spacers: {
0: 0;
1: (@spacer * 0.25);
2: (@spacer * 0.5);
3: @spacer;
4: (@spacer * 1.5);
5: (@spacer * 3);
};
// This variable affects the `.h-*` and `.w-*` classes.
@sizes: {
25: 25%;
50: 50%;
75: 75%;
100: 100%;
auto: auto;
};
// Body
//
// Settings for the `<body>` element.
@body-bg: @white;
@body-color: @gray-900;
// Links
//
// Style anchor elements.
@link-color: theme-color(primary);
@link-decoration: none;
@link-hover-color: darken(@link-color, 15%);
@link-hover-decoration: underline;
// Darken percentage for links with `.text-*` class (e.g. `.text-success`)
@emphasized-link-hover-darken-percentage: 15%;
// Paragraphs
//
// Style p element.
@paragraph-margin-bottom: 1rem;
// Grid breakpoints
//
// Define the minimum dimensions at which your layout will change,
// adapting to different screen sizes, for use in media queries.
@grid-breakpoints: {
xs: 0;
sm: 576px;
md: 768px;
lg: 992px;
xl: 1200px;
};
//@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
//@include _assert-starts-at-zero($grid-breakpoints);
// Grid containers
//
// Define the maximum width of `.container` for different screen sizes.
@container-max-widths: {
sm: 540px;
md: 720px;
lg: 960px;
xl: 1140px;
};
//@include _assert-ascending($container-max-widths, "$container-max-widths");
// Grid columns
//
// Set the number of columns and specify the width of the gutters.
@grid-columns: 12;
@grid-gutter-width: 30px;
@grid-row-columns: 6;
// Components
//
// Define common padding and border radius sizes and more.
@line-height-lg: 1.5;
@line-height-sm: 1.5;
@border-width: 1px;
@border-color: @gray-300;
@border-radius: 0.25rem;
@border-radius-lg: 0.3rem;
@border-radius-sm: 0.2rem;
@rounded-pill: 50rem;
@box-shadow-sm: 0 0.125rem 0.25rem fade(@black, 7.5%);
@box-shadow: 0 0.5rem 1rem fade(@black, 15%);
@box-shadow-lg: 0 1rem 3rem fade(@black, 17.5%);
@component-active-color: @white;
@component-active-bg: theme-color(primary);
@caret-width: 0.3em;
@caret-vertical-align: (@caret-width * 0.85);
@caret-spacing: (@caret-width * 0.85);
@transition-base: all 0.2s ease-in-out;
@transition-fade: opacity 0.15s linear;
@transition-collapse: height 0.35s ease;
// LESS PORT: No `join()` to extend the list here. The variable can just be overridden if different/
// additional values are desired.
@embed-responsive-aspect-ratios:
21 9,
16 9,
4 3,
1 1;
// Typography
//
// Font, line-height, and color for body text, headings, and more.
@font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
@font-family-base: @font-family-sans-serif;
@font-size-base: 1rem; // Assumes the browser default, typically `16px`
@font-size-lg: (@font-size-base * 1.25);
@font-size-sm: (@font-size-base * 0.875);
@font-weight-lighter: lighter;
@font-weight-light: 300;
@font-weight-normal: 400;
@font-weight-bold: 700;
@font-weight-bolder: bolder;
@font-weight-base: @font-weight-normal;
@line-height-base: 1.5;
@h1-font-size: (@font-size-base * 2.5);
@h2-font-size: (@font-size-base * 2);
@h3-font-size: (@font-size-base * 1.75);
@h4-font-size: (@font-size-base * 1.5);
@h5-font-size: (@font-size-base * 1.25);
@h6-font-size: @font-size-base;
@headings-margin-bottom: (@spacer / 2);
@headings-font-family: ~""; // LESS PORT: Sass version uses `null`
@headings-font-weight: 500;
@headings-line-height: 1.2;
@headings-color: ~""; // LESS PORT: Sass version uses `null`
@display1-size: 6rem;
@display2-size: 5.5rem;
@display3-size: 4.5rem;
@display4-size: 3.5rem;
@display1-weight: 300;
@display2-weight: 300;
@display3-weight: 300;
@display4-weight: 300;
@display-line-height: @headings-line-height;
@lead-font-size: (@font-size-base * 1.25);
@lead-font-weight: 300;
@small-font-size: 80%;
@text-muted: @gray-600;
@blockquote-small-color: @gray-600;
@blockquote-small-font-size: @small-font-size;
@blockquote-font-size: (@font-size-base * 1.25);
@hr-border-color: fade(@black, 10%);
@hr-border-width: @border-width;
@mark-padding: 0.2em;
@dt-font-weight: @font-weight-bold;
@kbd-box-shadow: inset 0 -0.1rem 0 fade(@black, 25%);
@nested-kbd-font-weight: @font-weight-bold;
@list-inline-padding: 0.5rem;
@mark-bg: #fcf8e3;
@hr-margin-y: @spacer;
// Tables
//
// Customizes the `.table` component with basic values, each used across all table variations.
@table-cell-padding: 0.75rem;
@table-cell-padding-sm: 0.3rem;
@table-color: @body-color;
@table-bg: ~""; // LESS PORT: Sass version uses `null`
@table-accent-bg: fade(@black, 5%);
@table-hover-color: @table-color;
@table-hover-bg: fade(@black, 7.5%);
@table-active-bg: @table-hover-bg;
@table-border-width: @border-width;
@table-border-color: @border-color;
@table-head-bg: @gray-200;
@table-head-color: @gray-700;
@table-th-font-weight: ~""; // LESS PORT: Sass version uses `null`
@table-dark-color: @white;
@table-dark-bg: @gray-800;
@table-dark-accent-bg: fade(@white, 5%);
@table-dark-hover-color: @table-dark-color;
@table-dark-hover-bg: fade(@white, 7.5%);
@table-dark-border-color: lighten(@table-dark-bg, 7.5%);
@table-striped-order: odd;
@table-caption-color: @text-muted;
@table-bg-level: -9;
@table-border-level: -6;
// Buttons + Forms
//
// Shared variables that are reassigned to `@input-` and `@btn-` specific variables.
@input-btn-padding-y: 0.375rem;
@input-btn-padding-x: 0.75rem;
@input-btn-font-family: ~""; // LESS PORT: Sass version uses `null`
@input-btn-font-size: @font-size-base;
@input-btn-line-height: @line-height-base;
@input-btn-focus-width: 0.2rem;
@input-btn-focus-color: fade(@component-active-bg, 25%);
@input-btn-focus-box-shadow: 0 0 0 @input-btn-focus-width @input-btn-focus-color;
@input-btn-padding-y-sm: 0.25rem;
@input-btn-padding-x-sm: 0.5rem;
@input-btn-font-size-sm: @font-size-sm;
@input-btn-line-height-sm: @line-height-sm;
@input-btn-padding-y-lg: 0.5rem;
@input-btn-padding-x-lg: 1rem;
@input-btn-font-size-lg: @font-size-lg;
@input-btn-line-height-lg: @line-height-lg;
@input-btn-border-width: @border-width;
// Buttons
//
// For each of Bootstrap's buttons, define text, background, and border color.
@btn-padding-y: @input-btn-padding-y;
@btn-padding-x: @input-btn-padding-x;
@btn-font-family: @input-btn-font-family;
@btn-font-size: @input-btn-font-size;
@btn-line-height: @input-btn-line-height;
@btn-white-space: ~""; // Set to `nowrap` to prevent text wrapping // LESS PORT: Sass version uses `null`
@btn-padding-y-sm: @input-btn-padding-y-sm;
@btn-padding-x-sm: @input-btn-padding-x-sm;
@btn-font-size-sm: @input-btn-font-size-sm;
@btn-line-height-sm: @input-btn-line-height-sm;
@btn-padding-y-lg: @input-btn-padding-y-lg;
@btn-padding-x-lg: @input-btn-padding-x-lg;
@btn-font-size-lg: @input-btn-font-size-lg;
@btn-line-height-lg: @input-btn-line-height-lg;
@btn-border-width: @input-btn-border-width;
@btn-font-weight: @font-weight-normal;
@btn-box-shadow: inset 0 1px 0 fade(@white, 15%), 0 1px 1px fade(@black, 7.5%);
@btn-focus-width: @input-btn-focus-width;
@btn-focus-box-shadow: @input-btn-focus-box-shadow;
@btn-disabled-opacity: 0.65;
@btn-active-box-shadow: inset 0 3px 5px fade(@black, 12.5%);
@btn-link-disabled-color: @gray-600;
@btn-block-spacing-y: 0.5rem;
// Allows for customizing button radius independently from global border radius
@btn-border-radius: @border-radius;
@btn-border-radius-lg: @border-radius-lg;
@btn-border-radius-sm: @border-radius-sm;
@btn-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
// Forms
@label-margin-bottom: 0.5rem;
@input-padding-y: @input-btn-padding-y;
@input-padding-x: @input-btn-padding-x;
@input-font-family: @input-btn-font-family;
@input-font-size: @input-btn-font-size;
@input-font-weight: @font-weight-base;
@input-line-height: @input-btn-line-height;
@input-padding-y-sm: @input-btn-padding-y-sm;
@input-padding-x-sm: @input-btn-padding-x-sm;
@input-font-size-sm: @input-btn-font-size-sm;
@input-line-height-sm: @input-btn-line-height-sm;
@input-padding-y-lg: @input-btn-padding-y-lg;
@input-padding-x-lg: @input-btn-padding-x-lg;
@input-font-size-lg: @input-btn-font-size-lg;
@input-line-height-lg: @input-btn-line-height-lg;
@input-bg: @white;
@input-disabled-bg: @gray-200;
@input-color: @gray-700;
@input-border-color: @gray-400;
@input-border-width: @input-btn-border-width;
@input-box-shadow: inset 0 1px 1px fade(@black, 7.5%);
@input-border-radius: @border-radius;
@input-border-radius-lg: @border-radius-lg;
@input-border-radius-sm: @border-radius-sm;
@input-focus-bg: @input-bg;
@input-focus-border-color: lighten(@component-active-bg, 25%);
@input-focus-color: @input-color;
@input-focus-width: @input-btn-focus-width;
@input-focus-box-shadow: @input-btn-focus-box-shadow;
@input-placeholder-color: @gray-600;
@input-plaintext-color: @body-color;
@input-height-border: (@input-border-width * 2);
@input-height-inner: add((@input-line-height * 1em), (@input-padding-y * 2));
@input-height-inner-half: add((@input-line-height * 0.5em), (@input-padding-y));
@input-height-inner-quarter: add((@input-line-height * 0.25em), (@input-padding-y / 2));
@input-height: add((@input-line-height * 1em), add((@input-padding-y * 2), @input-height-border, false));
@input-height-sm: add((@input-line-height-sm * 1em), add((@input-padding-y-sm * 2), @input-height-border, false));
@input-height-lg: add((@input-line-height-lg * 1em), add((@input-padding-y-lg * 2), @input-height-border, false));
@input-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
@form-text-margin-top: 0.25rem;
@form-check-input-gutter: 1.25rem;
@form-check-input-margin-y: 0.3rem;
@form-check-input-margin-x: 0.25rem;
@form-check-inline-margin-x: 0.75rem;
@form-check-inline-input-margin-x: 0.3125rem;
@form-grid-gutter-width: 10px;
@form-group-margin-bottom: 1rem;
@input-group-addon-color: @input-color;
@input-group-addon-bg: @gray-200;
@input-group-addon-border-color: @input-border-color;
@custom-forms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
@custom-control-gutter: 0.5rem;
@custom-control-spacer-x: 1rem;
@custom-control-cursor: ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-size: 1rem;
@custom-control-indicator-bg: @input-bg;
@custom-control-indicator-bg-size: 50% 50%;
@custom-control-indicator-box-shadow: @input-box-shadow;
@custom-control-indicator-border-color: @gray-500;
@custom-control-indicator-border-width: @input-border-width;
@custom-control-label-color: ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-disabled-bg: @input-disabled-bg;
@custom-control-label-disabled-color: @gray-600;
@custom-control-indicator-checked-color: @component-active-color;
@custom-control-indicator-checked-bg: @component-active-bg;
@custom-control-indicator-checked-disabled-bg: fade(theme-color(primary), 50%);
@custom-control-indicator-checked-box-shadow: ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-checked-border-color: @custom-control-indicator-checked-bg;
@custom-control-indicator-focus-box-shadow: @input-focus-box-shadow;
@custom-control-indicator-focus-border-color: @input-focus-border-color;
@custom-control-indicator-active-color: @component-active-color;
@custom-control-indicator-active-bg: lighten(@component-active-bg, 35%);
@custom-control-indicator-active-box-shadow: ~""; // LESS PORT: Sass version uses `null`
@custom-control-indicator-active-border-color: @custom-control-indicator-active-bg;
@custom-checkbox-indicator-border-radius: @border-radius;
@custom-checkbox-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='@{custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>");
@custom-checkbox-indicator-indeterminate-bg: @component-active-bg;
@custom-checkbox-indicator-indeterminate-color: @custom-control-indicator-checked-color;
@custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='@{custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>");
@custom-checkbox-indicator-indeterminate-box-shadow: ~""; // LESS PORT: Sass version uses `null`
@custom-checkbox-indicator-indeterminate-border-color: @custom-checkbox-indicator-indeterminate-bg;
@custom-radio-indicator-border-radius: 50%;
@custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='@{custom-control-indicator-checked-color}'/></svg>");
@custom-switch-width: (@custom-control-indicator-size * 1.75);
@custom-switch-indicator-border-radius: (@custom-control-indicator-size / 2);
@custom-switch-indicator-size: subtract(@custom-control-indicator-size, (@custom-control-indicator-border-width * 4));
@custom-select-padding-y: @input-padding-y;
@custom-select-padding-x: @input-padding-x;
@custom-select-font-family: @input-font-family;
@custom-select-font-size: @input-font-size;
@custom-select-height: @input-height;
@custom-select-indicator-padding: 1rem; // Extra padding to account for the presence of the background-image based indicator
@custom-select-font-weight: @input-font-weight;
@custom-select-line-height: @input-line-height;
@custom-select-color: @input-color;
@custom-select-disabled-color: @gray-600;
@custom-select-bg: @input-bg;
@custom-select-disabled-bg: @gray-200;
@custom-select-bg-size: 8px 10px; // In pixels because image dimensions
@custom-select-indicator-color: @gray-800;
@custom-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='@{custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>");
@custom-select-background: escape-svg(@custom-select-indicator) right @custom-select-padding-x ~"center/@{custom-select-bg-size}" no-repeat; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
@custom-select-feedback-icon-padding-right: add((1em * 0.75), ((2 * @custom-select-padding-y * 0.75) + @custom-select-padding-x + @custom-select-indicator-padding));
@custom-select-feedback-icon-position: center right (@custom-select-padding-x + @custom-select-indicator-padding);
@custom-select-feedback-icon-size: @input-height-inner-half @input-height-inner-half;
@custom-select-border-width: @input-border-width;
@custom-select-border-color: @input-border-color;
@custom-select-border-radius: @border-radius;
@custom-select-box-shadow: inset 0 1px 2px fade(@black, 7.5%);
@custom-select-focus-border-color: @input-focus-border-color;
@custom-select-focus-width: @input-focus-width;
@custom-select-focus-box-shadow: 0 0 0 @custom-select-focus-width @input-btn-focus-color;
@custom-select-padding-y-sm: @input-padding-y-sm;
@custom-select-padding-x-sm: @input-padding-x-sm;
@custom-select-font-size-sm: @input-font-size-sm;
@custom-select-height-sm: @input-height-sm;
@custom-select-padding-y-lg: @input-padding-y-lg;
@custom-select-padding-x-lg: @input-padding-x-lg;
@custom-select-font-size-lg: @input-font-size-lg;
@custom-select-height-lg: @input-height-lg;
@custom-range-track-width: 100%;
@custom-range-track-height: 0.5rem;
@custom-range-track-cursor: pointer;
@custom-range-track-bg: @gray-300;
@custom-range-track-border-radius: 1rem;
@custom-range-track-box-shadow: inset 0 0.25rem 0.25rem fade(@black, 10%);
@custom-range-thumb-width: 1rem;
@custom-range-thumb-height: @custom-range-thumb-width;
@custom-range-thumb-bg: @component-active-bg;
@custom-range-thumb-border: 0;
@custom-range-thumb-border-radius: 1rem;
@custom-range-thumb-box-shadow: 0 0.1rem 0.25rem fade(@black, 10%);
@custom-range-thumb-focus-box-shadow: 0 0 0 1px @body-bg, @input-focus-box-shadow;
@custom-range-thumb-focus-box-shadow-width: @input-focus-width; // For focus box shadow issue in IE/Edge
@custom-range-thumb-active-bg: lighten(@component-active-bg, 35%);
@custom-range-thumb-disabled-bg: @gray-500;
@custom-file-height: @input-height;
@custom-file-height-inner: @input-height-inner;
@custom-file-focus-border-color: @input-focus-border-color;
@custom-file-focus-box-shadow: @input-focus-box-shadow;
@custom-file-disabled-bg: @input-disabled-bg;
@custom-file-padding-y: @input-padding-y;
@custom-file-padding-x: @input-padding-x;
@custom-file-line-height: @input-line-height;
@custom-file-font-family: @input-font-family;
@custom-file-font-weight: @input-font-weight;
@custom-file-color: @input-color;
@custom-file-bg: @input-bg;
@custom-file-border-width: @input-border-width;
@custom-file-border-color: @input-border-color;
@custom-file-border-radius: @input-border-radius;
@custom-file-box-shadow: @input-box-shadow;
@custom-file-button-color: @custom-file-color;
@custom-file-button-bg: @input-group-addon-bg;
@custom-file-text: {
en: "Browse";
};
// Form validation
@form-feedback-margin-top: @form-text-margin-top;
@form-feedback-font-size: @small-font-size;
@form-feedback-valid-color: theme-color(success);
@form-feedback-invalid-color: theme-color(danger);
@form-feedback-icon-valid-color: @form-feedback-valid-color;
@form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='@{form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-0.4-1.04.46-1.4 1.1-0.8l1.1 1.4 3.4-3.8c.6-0.63 1.6-0.27 1.2.7l-4 4.6c-0.43.5-0.8.4-1.1.1z'/></svg>");
@form-feedback-icon-invalid-color: @form-feedback-invalid-color;
@form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='@{form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='0.6' fill='@{form-feedback-icon-invalid-color}' stroke='none'/></svg>");
// LESS PORT: No `map-merge()` to extend the ruleset here. The variable can just be overridden if
// different/additional values are desired.
@form-validation-states: {
@valid: {
color: @form-feedback-valid-color;
icon: @form-feedback-icon-valid;
};
@invalid: {
color: @form-feedback-invalid-color;
icon: @form-feedback-icon-invalid;
};
};
// Z-index master list
//
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.
@zindex-dropdown: 1000;
@zindex-sticky: 1020;
@zindex-fixed: 1030;
@zindex-modal-backdrop: 1040;
@zindex-modal: 1050;
@zindex-popover: 1060;
@zindex-tooltip: 1070;
// Navs
@nav-link-padding-y: 0.5rem;
@nav-link-padding-x: 1rem;
@nav-link-disabled-color: @gray-600;
@nav-tabs-border-color: @gray-300;
@nav-tabs-border-width: @border-width;
@nav-tabs-border-radius: @border-radius;
@nav-tabs-link-hover-border-color: @gray-200 @gray-200 @nav-tabs-border-color;
@nav-tabs-link-active-color: @gray-700;
@nav-tabs-link-active-bg: @body-bg;
@nav-tabs-link-active-border-color: @gray-300 @gray-300 @nav-tabs-link-active-bg;
@nav-pills-border-radius: @border-radius;
@nav-pills-link-active-color: @component-active-color;
@nav-pills-link-active-bg: @component-active-bg;
@nav-divider-color: @gray-200;
@nav-divider-margin-y: (@spacer / 2);
// Navbar
@navbar-padding-y: (@spacer / 2);
@navbar-padding-x: @spacer;
@navbar-nav-link-padding-x: 0.5rem;
@navbar-brand-font-size: @font-size-lg;
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
@nav-link-height: (@font-size-base * @line-height-base + @nav-link-padding-y * 2);
@navbar-brand-height: (@navbar-brand-font-size * @line-height-base);
@navbar-brand-padding-y: ((@nav-link-height - @navbar-brand-height) / 2);
@navbar-toggler-padding-y: 0.25rem;
@navbar-toggler-padding-x: 0.75rem;
@navbar-toggler-font-size: @font-size-lg;
@navbar-toggler-border-radius: @btn-border-radius;
@navbar-nav-scroll-max-height: 75vh;
@navbar-dark-color: fade(@white, 50%);
@navbar-dark-hover-color: fade(@white, 75%);
@navbar-dark-active-color: @white;
@navbar-dark-disabled-color: fade(@white, 25%);
@navbar-dark-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='@{navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
@navbar-dark-toggler-border-color: fade(@white, 10%);
@navbar-light-color: fade(@black, 50%);
@navbar-light-hover-color: fade(@black, 70%);
@navbar-light-active-color: fade(@black, 90%);
@navbar-light-disabled-color: fade(@black, 30%);
@navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='@{navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
@navbar-light-toggler-border-color: fade(@black, 10%);
@navbar-light-brand-color: @navbar-light-active-color;
@navbar-light-brand-hover-color: @navbar-light-active-color;
@navbar-dark-brand-color: @navbar-dark-active-color;
@navbar-dark-brand-hover-color: @navbar-dark-active-color;
// Dropdowns
//
// Dropdown menu container and contents.
@dropdown-min-width: 10rem;
@dropdown-padding-x: 0;
@dropdown-padding-y: 0.5rem;
@dropdown-spacer: 0.125rem;
@dropdown-font-size: @font-size-base;
@dropdown-color: @body-color;
@dropdown-bg: @white;
@dropdown-border-color: fade(@black, 15%);
@dropdown-border-radius: @border-radius;
@dropdown-border-width: @border-width;
@dropdown-inner-border-radius: subtract(@dropdown-border-radius, @dropdown-border-width);
@dropdown-divider-bg: @gray-200;
@dropdown-divider-margin-y: @nav-divider-margin-y;
@dropdown-box-shadow: 0 0.5rem 1rem fade(@black, 17.5%);
@dropdown-link-color: @gray-900;
@dropdown-link-hover-color: darken(@gray-900, 5%);
@dropdown-link-hover-bg: @gray-200;
@dropdown-link-active-color: @component-active-color;
@dropdown-link-active-bg: @component-active-bg;
@dropdown-link-disabled-color: @gray-500;
@dropdown-item-padding-y: 0.25rem;
@dropdown-item-padding-x: 1.5rem;
@dropdown-header-color: @gray-600;
@dropdown-header-padding: @dropdown-padding-y @dropdown-item-padding-x;
// Pagination
@pagination-padding-y: 0.5rem;
@pagination-padding-x: 0.75rem;
@pagination-padding-y-sm: 0.25rem;
@pagination-padding-x-sm: 0.5rem;
@pagination-padding-y-lg: 0.75rem;
@pagination-padding-x-lg: 1.5rem;
@pagination-line-height: 1.25;
@pagination-color: @link-color;
@pagination-bg: @white;
@pagination-border-width: @border-width;
@pagination-border-color: @gray-300;
@pagination-focus-box-shadow: @input-btn-focus-box-shadow;
@pagination-focus-outline: 0;
@pagination-hover-color: @link-hover-color;
@pagination-hover-bg: @gray-200;
@pagination-hover-border-color: @gray-300;
@pagination-active-color: @component-active-color;
@pagination-active-bg: @component-active-bg;
@pagination-active-border-color: @pagination-active-bg;
@pagination-disabled-color: @gray-600;
@pagination-disabled-bg: @white;
@pagination-disabled-border-color: @gray-300;
@pagination-border-radius-sm: @border-radius-sm;
@pagination-border-radius-lg: @border-radius-lg;
// Jumbotron
@jumbotron-padding: 2rem;
@jumbotron-color: ~""; // LESS PORT: Sass version uses `null`
@jumbotron-bg: @gray-200;
// Cards
@card-spacer-y: 0.75rem;
@card-spacer-x: 1.25rem;
@card-border-width: @border-width;
@card-border-radius: @border-radius;
@card-border-color: fade(@black, 12.5%);
@card-inner-border-radius: subtract(@card-border-radius, @card-border-width);
@card-cap-bg: fade(@black, 3%);
@card-cap-color: ~""; // LESS PORT: Sass version uses `null`
@card-height: ~""; // LESS PORT: Sass version uses `null`
@card-color: ~""; // LESS PORT: Sass version uses `null`
@card-bg: @white;
@card-img-overlay-padding: 1.25rem;
@card-group-margin: (@grid-gutter-width / 2);
@card-deck-margin: @card-group-margin;
@card-columns-count: 3;
@card-columns-gap: 1.25rem;
@card-columns-margin: @card-spacer-y;
// Tooltips
@tooltip-font-size: @font-size-sm;
@tooltip-max-width: 200px;
@tooltip-color: @white;
@tooltip-bg: @black;
@tooltip-border-radius: @border-radius;
@tooltip-opacity: 0.9;
@tooltip-padding-y: 0.25rem;
@tooltip-padding-x: 0.5rem;
@tooltip-margin: 0;
@tooltip-arrow-width: 0.8rem;
@tooltip-arrow-height: 0.4rem;
@tooltip-arrow-color: @tooltip-bg;
// Form tooltips must come after regular tooltips
@form-feedback-tooltip-padding-y: @tooltip-padding-y;
@form-feedback-tooltip-padding-x: @tooltip-padding-x;
@form-feedback-tooltip-font-size: @tooltip-font-size;
@form-feedback-tooltip-line-height: @line-height-base;
@form-feedback-tooltip-opacity: @tooltip-opacity;
@form-feedback-tooltip-border-radius: @tooltip-border-radius;
// Popovers
@popover-font-size: @font-size-sm;
@popover-bg: @white;
@popover-max-width: 276px;
@popover-border-width: @border-width;
@popover-border-color: fade(@black, 20%);
@popover-border-radius: @border-radius-lg;
@popover-inner-border-radius: subtract(@popover-border-radius, @popover-border-width);
@popover-box-shadow: 0 0.25rem 0.5rem fade(@black, 20%);
@popover-header-bg: darken(@popover-bg, 3%);
@popover-header-color: @headings-color;
@popover-header-padding-y: 0.5rem;
@popover-header-padding-x: 0.75rem;
@popover-body-color: @body-color;
@popover-body-padding-y: @popover-header-padding-y;
@popover-body-padding-x: @popover-header-padding-x;
@popover-arrow-width: 1rem;
@popover-arrow-height: 0.5rem;
@popover-arrow-color: @popover-bg;
@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
// Toasts
@toast-max-width: 350px;
@toast-padding-x: 0.75rem;
@toast-padding-y: 0.25rem;
@toast-font-size: 0.875rem;
@toast-color: ~""; // LESS PORT: Sass version uses `null`
@toast-background-color: fade(@white, 85%);
@toast-border-width: 1px;
@toast-border-color: rgba(0, 0, 0, 0.1);
@toast-border-radius: 0.25rem;
@toast-box-shadow: 0 0.25rem 0.75rem fade(@black, 10%);
@toast-header-color: @gray-600;
@toast-header-background-color: fade(@white, 85%);
@toast-header-border-color: rgba(0, 0, 0, 0.05);
// Badges
@badge-font-size: 75%;
@badge-font-weight: @font-weight-bold;
@badge-padding-y: 0.25em;
@badge-padding-x: 0.4em;
@badge-border-radius: @border-radius;
@badge-transition: @btn-transition;
@badge-focus-width: @input-btn-focus-width;
@badge-pill-padding-x: 0.6em;
// Use a higher than normal value to ensure completely rounded edges when
// customizing padding or font-size on labels.
@badge-pill-border-radius: 10rem;
// Modals
// Padding applied to the modal body
@modal-inner-padding: 1rem;
// Margin between elements in footer, must be lower than or equal to 2 * @modal-inner-padding
@modal-footer-margin-between: 0.5rem;
@modal-dialog-margin: 0.5rem;
@modal-dialog-margin-y-sm-up: 1.75rem;
@modal-title-line-height: @line-height-base;
@modal-content-color: ~""; // LESS PORT: Sass version uses `null`
@modal-content-bg: @white;
@modal-content-border-color: fade(@black, 20%);
@modal-content-border-width: @border-width;
@modal-content-border-radius: @border-radius-lg;
@modal-content-inner-border-radius: subtract(@modal-content-border-radius, @modal-content-border-width);
@modal-content-box-shadow-xs: 0 0.25rem 0.5rem fade(@black, 50%);
@modal-content-box-shadow-sm-up: 0 0.5rem 1rem fade(@black, 50%);
@modal-backdrop-bg: @black;
@modal-backdrop-opacity: 0.5;
@modal-header-border-color: @border-color;
@modal-footer-border-color: @modal-header-border-color;
@modal-header-border-width: @modal-content-border-width;
@modal-footer-border-width: @modal-header-border-width;
@modal-header-padding-y: 1rem;
@modal-header-padding-x: 1rem;
@modal-header-padding: @modal-header-padding-y @modal-header-padding-x; // Keep this for backwards compatibility
@modal-xl: 1140px;
@modal-lg: 800px;
@modal-md: 500px;
@modal-sm: 300px;
@modal-fade-transform: translate(0, -50px);
@modal-show-transform: none;
@modal-transition: transform 0.3s ease-out;
@modal-scale-transform: scale(1.02);
// Alerts
//
// Define alert colors, border radius, and padding.
@alert-padding-y: 0.75rem;
@alert-padding-x: 1.25rem;
@alert-margin-bottom: 1rem;
@alert-border-radius: @border-radius;
@alert-link-font-weight: @font-weight-bold;
@alert-border-width: @border-width;
@alert-bg-level: -10;
@alert-border-level: -9;
@alert-color-level: 6;
// Progress bars
@progress-height: 1rem;
@progress-font-size: (@font-size-base * 0.75);
@progress-bg: @gray-200;
@progress-border-radius: @border-radius;
@progress-box-shadow: inset 0 0.1rem 0.1rem fade(@black, 10%);
@progress-bar-color: @white;
@progress-bar-bg: theme-color(primary);
@progress-bar-animation-timing: 1s linear infinite;
@progress-bar-transition: width 0.6s ease;
// List group
@list-group-color: ~""; // LESS PORT: Sass version uses `null`
@list-group-bg: @white;
@list-group-border-color: fade(@black, 12.5%);
@list-group-border-width: @border-width;
@list-group-border-radius: @border-radius;
@list-group-item-padding-y: 0.75rem;
@list-group-item-padding-x: 1.25rem;
@list-group-hover-bg: @gray-100;
@list-group-active-color: @component-active-color;
@list-group-active-bg: @component-active-bg;
@list-group-active-border-color: @list-group-active-bg;
@list-group-disabled-color: @gray-600;
@list-group-disabled-bg: @list-group-bg;
@list-group-action-color: @gray-700;
@list-group-action-hover-color: @list-group-action-color;
@list-group-action-active-color: @body-color;
@list-group-action-active-bg: @gray-200;
// Image thumbnails
@thumbnail-padding: 0.25rem;
@thumbnail-bg: @body-bg;
@thumbnail-border-width: @border-width;
@thumbnail-border-color: @gray-300;
@thumbnail-border-radius: @border-radius;
@thumbnail-box-shadow: 0 1px 2px fade(@black, 7.5%);
// Figures
@figure-caption-font-size: 90%;
@figure-caption-color: @gray-600;
// Breadcrumbs
@breadcrumb-font-size: ~""; // LESS PORT: Sass version uses `null`
@breadcrumb-padding-y: 0.75rem;
@breadcrumb-padding-x: 1rem;
@breadcrumb-item-padding: 0.5rem;
@breadcrumb-margin-bottom: 1rem;
@breadcrumb-bg: @gray-200;
@breadcrumb-divider-color: @gray-600;
@breadcrumb-active-color: @gray-600;
@breadcrumb-divider: "/";
@breadcrumb-border-radius: @border-radius;
// Carousel
@carousel-control-color: @white;
@carousel-control-width: 15%;
@carousel-control-opacity: 0.5;
@carousel-control-hover-opacity: 0.9;
@carousel-control-transition: opacity 0.15s ease;
@carousel-indicator-width: 30px;
@carousel-indicator-height: 3px;
@carousel-indicator-hit-area-height: 10px;
@carousel-indicator-spacer: 3px;
@carousel-indicator-active-bg: @white;
@carousel-indicator-transition: opacity 0.6s ease;
@carousel-caption-width: 70%;
@carousel-caption-color: @white;
@carousel-control-icon-width: 20px;
@carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='@{carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>");
@carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='@{carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>");
@carousel-transition-duration: 0.6s;
@carousel-transition: transform @carousel-transition-duration ease-in-out; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity 0.5s ease-out`)
// Spinners
@spinner-width: 2rem;
@spinner-height: @spinner-width;
@spinner-border-width: 0.25em;
@spinner-width-sm: 1rem;
@spinner-height-sm: @spinner-width-sm;
@spinner-border-width-sm: 0.2em;
// Close
@close-font-size: (@font-size-base * 1.5);
@close-font-weight: @font-weight-bold;
@close-color: @black;
@close-text-shadow: 0 1px 0 @white;
// Code
@code-font-size: 87.5%;
@code-color: @pink;
@kbd-padding-y: 0.2rem;
@kbd-padding-x: 0.4rem;
@kbd-font-size: @code-font-size;
@kbd-color: @white;
@kbd-bg: @gray-900;
@pre-color: @gray-900;
@pre-scrollable-max-height: 340px;
// Utilities
@displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex;
@overflows: auto, hidden;
@positions: static, relative, absolute, fixed, sticky;
@user-selects: all, auto, none;
// Printing
@print-page-size: a3;
@print-body-min-width: @grid-breakpoints[lg];