1
0
mirror of https://github.com/tabler/tabler.git synced 2026-08-06 19:32:22 +04:00

Move --tblr- custom-property prefixing from Sass to PostCSS (#2795)

Co-authored-by: codecalm <codecalm@gmail.com>
This commit is contained in:
Bartosz-Do
2026-08-05 23:48:56 +02:00
committed by GitHub
parent 1effe221cb
commit cad8eb8c91
134 changed files with 3052 additions and 2855 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ Shared instructions for all AI agents (Claude Code, Cursor, etc.). Canonical age
### CSS classes
- Use Bootstrap 5 classes plus Tabler's custom classes.
- Follow Tabler's CSS custom properties pattern: `--#{$prefix}component-property`.
- Follow Tabler's CSS custom properties pattern: `--component-property`.
- Cards: `card` for containers, `card-body` for content, `card-header` / `card-title` for headers.
- Buttons: `btn` for all buttons; `btn-primary` for primary actions; plain `btn` for secondary actions (do not use `btn-outline-secondary`); `btn-sm` for small buttons; `w-100` for full width.
- Forms: `form-control` for inputs, `form-label` for labels, `form-check` for checkboxes/radios, `form-select` for dropdowns.
+9 -1
View File
@@ -31,9 +31,11 @@ import { basename, join, resolve } from 'node:path'
import { compile as compileSass } from 'sass'
import postcss, { type Result } from 'postcss'
import autoprefixer from 'autoprefixer'
import prefixCustomProperties from 'postcss-prefix-custom-properties'
import rtlcss from 'rtlcss'
import CleanCSS from 'clean-css'
import { addBanner } from '../shared/banner/index.mjs'
import { cssVarIgnore, cssVarPrefix, inlineValueComments } from './css-var-prefix'
const args = process.argv.slice(2)
const flags = args.filter((arg) => arg.startsWith('--'))
@@ -47,6 +49,7 @@ const withMinify = flags.includes('--minify')
const withBanner = flags.includes('--banner')
const mapOptions = { inline: false, annotation: true, sourcesContent: true }
const written: string[] = []
const pendingWrites: { file: string; content: string }[] = []
@@ -68,7 +71,12 @@ async function compile(entry: string): Promise<{ outFile: string; result: Result
// Banner goes in before postcss runs, so the map it generates already counts
// the banner's lines — and so does the rtl map chained onto it below.
const input = withBanner ? addBanner(css, outFile) : css
const result = await postcss([autoprefixer({ cascade: false })]).process(input, {
// Prefixing is its own pass, ahead of the one that generates the map:
// postcss maps generated positions back to *its own input*, so renaming
// inside the map-generating pass would leave every mapping — and the
// embedded sourcesContent — describing css that no longer exists on disk.
const { css: prefixed } = await postcss([inlineValueComments, prefixCustomProperties({ prefix: cssVarPrefix, ignore: cssVarIgnore })]).process(input, { from: outFile, to: outFile, map: false })
const result = await postcss([autoprefixer({ cascade: false })]).process(prefixed, {
from: outFile,
to: outFile,
map: mapOptions,
+42
View File
@@ -0,0 +1,42 @@
// The `--tblr-` custom-property prefix, applied at build time.
//
// Custom properties are authored bare in scss (`--card-bg`) rather than through
// a Sass interpolation on every declaration and every var() call; the public
// prefix is added here, in the css pipeline (see build-css.ts).
//
// Lives in its own module so scss/tests/css-var-prefix.test.mjs asserts against
// the same configuration the build uses.
import type { Root } from 'postcss'
export const cssVarPrefix = 'tblr-'
// Names that must survive unprefixed. Everything here belongs to a third-party
// stylesheet we theme, and those libraries read their variables by their own
// name — prefixing one detaches the theming with no error anywhere, in css or
// at build time. Add an entry whenever a vendor override introduces a new
// foreign name.
export const cssVarIgnore = [
/^--tblr-/, // already prefixed, e.g. names that cannot round-trip postcss (see $navbar-light-icon-color)
/^--bs-/, // bootstrap
/^--fc-/, // fullcalendar
/^--gl-/, // star-rating.js
/^--litepicker-/, // litepicker
/^--plyr-/, // plyr
/^--ts-/, // tom-select
'--section-bg', // marketing sections, unprefixed since it was introduced
]
// postcss parks a comment trailing a declaration value in `raws.value.raw` and
// hands plugins the cleaned `value`, so any plugin that writes `decl.value`
// back drops the comment. That silently ate every `/*rtl:ignore*/` marker — the
// ones rtlcss reads to leave a declaration alone in the .rtl build. Folding raw
// into value first costs nothing (it stringifies identically) and leaves the
// comment in the value proper, where postcss-value-parser round-trips it.
export const inlineValueComments = {
postcssPlugin: 'tabler-inline-value-comments',
Once(root: Root) {
root.walkDecls((decl) => {
if (decl.raws.value) decl.value = decl.raws.value.raw
})
},
}
+5
View File
@@ -5,6 +5,11 @@ declare module 'rtlcss' {
export default function rtlcss(config?: unknown): Plugin
}
declare module 'postcss-prefix-custom-properties' {
import type { Plugin } from 'postcss'
export default function prefixCustomProperties(options?: { prefix?: string; ignore?: (string | RegExp)[] }): Plugin
}
declare module 'clean-css' {
interface MinifyResult {
styles: string
+1 -1
View File
@@ -2,5 +2,5 @@
"@tabler/core": patch
---
Migrated `rgba()` functions to modern CSS color functions (`color-mix()` and `color-transparent()`) for better browser support and cleaner code. Replaced `rgba(var(--#{$prefix}*-rgb), ...)` with `color-mix(in srgb, var(--#{$prefix}*) ..., transparent)`, static percentage `color-mix()` with `color-transparent()`, and `rgba($variable, ...)` with `color-transparent($variable, ...)`.
Migrated `rgba()` functions to modern CSS color functions (`color-mix()` and `color-transparent()`) for better browser support and cleaner code. Replaced `rgba(var(*-rgb), ...)` with `color-mix(in srgb, var(*) ..., transparent)`, static percentage `color-mix()` with `color-transparent()`, and `rgba($variable, ...)` with `color-transparent($variable, ...)`.
@@ -0,0 +1,5 @@
---
"@tabler/core": minor
---
Removed the `$prefix` Sass variable and its `--#{$prefix}` interpolations; the `--tblr-` custom property prefix is now applied at build time by `postcss-prefix-custom-properties`. Compiled CSS is unchanged, but the prefix can no longer be customised by overriding `$prefix` before importing the Sass sources.
+1 -1
View File
@@ -32,7 +32,7 @@ Do not edit `dist/` folders - they are generated by the build.
## Code style
- Use Bootstrap 5 conventions and Tabler's CSS custom properties pattern: `--#{$prefix}component-property`.
- Use Bootstrap 5 conventions and Tabler's CSS custom properties pattern: `--component-property`. Write custom properties without a prefix — the build adds the public `--tblr-` prefix. Names owned by a third-party library you are theming must be listed in `cssVarIgnore` in `.build/css-var-prefix.ts` so they stay untouched.
- Write documentation in simple English: short sentences, common words, direct instructions.
- Ensure changes work in all supported browsers (see the [browser support docs](https://docs.tabler.io/ui/getting-started/browser-support/)).
+24 -24
View File
@@ -101,14 +101,14 @@ $utilities-text: map.merge(
$utilities-text-colors: map-loop($utilities-text, rgba-css-var, '$key', 'text') !default;
$utilities-text-emphasis-colors: (
'primary-emphasis': var(--#{$prefix}primary-text-emphasis),
'secondary-emphasis': var(--#{$prefix}secondary-text-emphasis),
'success-emphasis': var(--#{$prefix}success-text-emphasis),
'info-emphasis': var(--#{$prefix}info-text-emphasis),
'warning-emphasis': var(--#{$prefix}warning-text-emphasis),
'danger-emphasis': var(--#{$prefix}danger-text-emphasis),
'light-emphasis': var(--#{$prefix}light-text-emphasis),
'dark-emphasis': var(--#{$prefix}dark-text-emphasis),
'primary-emphasis': var(--primary-text-emphasis),
'secondary-emphasis': var(--secondary-text-emphasis),
'success-emphasis': var(--success-text-emphasis),
'info-emphasis': var(--info-text-emphasis),
'warning-emphasis': var(--warning-text-emphasis),
'danger-emphasis': var(--danger-text-emphasis),
'light-emphasis': var(--light-text-emphasis),
'dark-emphasis': var(--dark-text-emphasis),
) !default;
$utilities-bg: map.merge(
@@ -122,14 +122,14 @@ $utilities-bg: map.merge(
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, '$key', 'bg') !default;
$utilities-bg-subtle: (
'primary-subtle': var(--#{$prefix}primary-bg-subtle),
'secondary-subtle': var(--#{$prefix}secondary-bg-subtle),
'success-subtle': var(--#{$prefix}success-bg-subtle),
'info-subtle': var(--#{$prefix}info-bg-subtle),
'warning-subtle': var(--#{$prefix}warning-bg-subtle),
'danger-subtle': var(--#{$prefix}danger-bg-subtle),
'light-subtle': var(--#{$prefix}light-bg-subtle),
'dark-subtle': var(--#{$prefix}dark-bg-subtle),
'primary-subtle': var(--primary-bg-subtle),
'secondary-subtle': var(--secondary-bg-subtle),
'success-subtle': var(--success-bg-subtle),
'info-subtle': var(--info-bg-subtle),
'warning-subtle': var(--warning-bg-subtle),
'danger-subtle': var(--danger-bg-subtle),
'light-subtle': var(--light-bg-subtle),
'dark-subtle': var(--dark-bg-subtle),
) !default;
$utilities-border: map.merge(
@@ -142,14 +142,14 @@ $utilities-border: map.merge(
$utilities-border-colors: map-loop($utilities-border, rgba-css-var, '$key', 'border') !default;
$utilities-border-subtle: (
'primary-subtle': var(--#{$prefix}primary-border-subtle),
'secondary-subtle': var(--#{$prefix}secondary-border-subtle),
'success-subtle': var(--#{$prefix}success-border-subtle),
'info-subtle': var(--#{$prefix}info-border-subtle),
'warning-subtle': var(--#{$prefix}warning-border-subtle),
'danger-subtle': var(--#{$prefix}danger-border-subtle),
'light-subtle': var(--#{$prefix}light-border-subtle),
'dark-subtle': var(--#{$prefix}dark-border-subtle),
'primary-subtle': var(--primary-border-subtle),
'secondary-subtle': var(--secondary-border-subtle),
'success-subtle': var(--success-border-subtle),
'info-subtle': var(--info-border-subtle),
'warning-subtle': var(--warning-border-subtle),
'danger-subtle': var(--danger-border-subtle),
'light-subtle': var(--light-border-subtle),
'dark-subtle': var(--dark-border-subtle),
) !default;
$utilities-links-underline: map-loop($utilities-colors, rgba-css-var, '$key', 'link-underline') !default;
+46 -46
View File
@@ -4,100 +4,100 @@
:root,
:host {
/** Direction multiplier for physical transforms (1 = LTR, -1 = RTL) */
--#{$prefix}dir: 1;
--dir: 1;
/** Fonts */
--#{$prefix}font-monospace: #{$font-family-monospace};
--#{$prefix}font-sans-serif: #{$font-family-sans-serif};
--#{$prefix}font-serif: #{$font-family-serif};
--#{$prefix}font-comic: #{$font-family-comic};
--font-monospace: #{$font-family-monospace};
--font-sans-serif: #{$font-family-sans-serif};
--font-serif: #{$font-family-serif};
--font-comic: #{$font-family-comic};
/** Gray colors */
--#{$prefix}gray-50: #{$gray-50};
--#{$prefix}gray-100: #{$gray-100};
--#{$prefix}gray-200: #{$gray-200};
--#{$prefix}gray-300: #{$gray-300};
--#{$prefix}gray-400: #{$gray-400};
--#{$prefix}gray-500: #{$gray-500};
--#{$prefix}gray-600: #{$gray-600};
--#{$prefix}gray-700: #{$gray-700};
--#{$prefix}gray-800: #{$gray-800};
--#{$prefix}gray-900: #{$gray-900};
--#{$prefix}gray-950: #{$gray-950};
--gray-50: #{$gray-50};
--gray-100: #{$gray-100};
--gray-200: #{$gray-200};
--gray-300: #{$gray-300};
--gray-400: #{$gray-400};
--gray-500: #{$gray-500};
--gray-600: #{$gray-600};
--gray-700: #{$gray-700};
--gray-800: #{$gray-800};
--gray-900: #{$gray-900};
--gray-950: #{$gray-950};
--#{$prefix}white: #{$white};
--#{$prefix}black: #{$black};
--#{$prefix}dark: #{$dark};
--#{$prefix}light: #{$light};
--white: #{$white};
--black: #{$black};
--dark: #{$dark};
--light: #{$light};
/** Brand colors */
--#{$prefix}brand: #{$primary};
--brand: #{$primary};
/** Theme colors */
@each $name, $color in map.merge($theme-colors, $social-colors) {
--#{$prefix}#{$name}: #{$color};
--#{$prefix}#{$name}-rgb: #{to-rgb($color)};
--#{$prefix}#{$name}-fg: #{if(sass(contrast-ratio($color) > $min-contrast-ratio): var(--#{$prefix}light); else: var(--#{$prefix}dark))};
--#{$prefix}#{$name}-darken: #{theme-color-darker($color)};
--#{$prefix}#{$name}-darken: color-mix(in oklab, var(--#{$prefix}#{$name}), transparent 20%);
--#{$prefix}#{$name}-lt: #{theme-color-lighter($color)};
--#{$prefix}#{$name}-lt: color-mix(in oklab, var(--#{$prefix}#{$name}) 10%, transparent);
--#{$prefix}#{$name}-200: color-mix(in oklab, var(--#{$prefix}#{$name}) 20%, transparent);
--#{$prefix}#{$name}-lt-rgb: #{to-rgb(theme-color-lighter($color))};
--#{$name}: #{$color};
--#{$name}-rgb: #{to-rgb($color)};
--#{$name}-fg: #{if(sass(contrast-ratio($color) > $min-contrast-ratio): var(--light); else: var(--dark))};
--#{$name}-darken: #{theme-color-darker($color)};
--#{$name}-darken: color-mix(in oklab, var(--#{$name}), transparent 20%);
--#{$name}-lt: #{theme-color-lighter($color)};
--#{$name}-lt: color-mix(in oklab, var(--#{$name}) 10%, transparent);
--#{$name}-200: color-mix(in oklab, var(--#{$name}) 20%, transparent);
--#{$name}-lt-rgb: #{to-rgb(theme-color-lighter($color))};
}
/** Gray colors */
@each $name, $color in $gray-colors {
--#{$prefix}#{$name}-fg: var(--#{$prefix}#{$name});
--#{$name}-fg: var(--#{$name});
}
/** Spacers */
@each $name, $value in $spacers {
--#{$prefix}spacer-#{$name}: #{$value};
--spacer-#{$name}: #{$value};
}
/** Font sizes */
@each $name, $value in $font-weights {
--#{$prefix}font-weight-#{$name}: #{$value};
--font-weight-#{$name}: #{$value};
}
@each $name, $value in $font-sizes {
--#{$prefix}font-size-h#{$name}: #{$value};
--font-size-h#{$name}: #{$value};
}
@each $name, $value in $line-heights {
--#{$prefix}line-height-#{$name}: #{$value};
--line-height-#{$name}: #{$value};
}
/** Shadows */
@each $name, $value in $box-shadows {
--#{$prefix}shadow#{if(sass($name): '-#{$name}'; else: '')}: #{$value};
--shadow#{if(sass($name): '-#{$name}'; else: '')}: #{$value};
}
/** Border radiuses */
--#{$prefix}border-radius-scale: 1;
--border-radius-scale: 1;
@each $name, $value in $border-radiuses {
@if $name {
--#{$prefix}border-radius-#{$name}: calc(#{$value} * var(--#{$prefix}border-radius-scale, 1));
--border-radius-#{$name}: calc(#{$value} * var(--border-radius-scale, 1));
} @else {
--#{$prefix}border-radius: #{$value};
--border-radius: #{$value};
}
}
/** Backdrops */
--#{$prefix}backdrop-opacity: #{$backdrop-opacity};
--#{$prefix}backdrop-bg: var(--#{$prefix}bg-surface-dark);
--backdrop-opacity: #{$backdrop-opacity};
--backdrop-bg: var(--bg-surface-dark);
@each $name, $value in $backdrops {
--#{$prefix}backdrop-bg#{if(sass($name): '-#{$name}'; else: '')}: #{$value};
--backdrop-bg#{if(sass($name): '-#{$name}'; else: '')}: #{$value};
}
--#{$prefix}backdrop-blur: #{$backdrop-blur};
--#{$prefix}backdrop-filter: blur(var(--#{$prefix}backdrop-blur));
--backdrop-blur: #{$backdrop-blur};
--backdrop-filter: blur(var(--backdrop-blur));
}
[dir='ltr'] {
--#{$prefix}dir: 1;
--dir: 1;
}
[dir='rtl'] {
--#{$prefix}dir: -1;
--dir: -1;
}
-1
View File
@@ -7,7 +7,6 @@
// through `_config.scss`, so overriding them works exactly as before.
// Prefixes
$prefix: 'tblr-' !default;
// Characters which are escaped by the escape-svg function
$escaped-characters: (('<', '%3c'), ('>', '%3e'), ('#', '%23'), ('(', '%28'), (')', '%29')) !default;
+52 -52
View File
@@ -6,8 +6,8 @@
@use 'mixins/functions' as *;
$border-values: (
null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent),
wide: $border-width-wide var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent),
null: var(--border-width) var(--border-style) var(--border-color-translucent),
wide: $border-width-wide var(--border-style) var(--border-color-translucent),
0: 0,
);
@@ -87,9 +87,9 @@ $utilities: map.merge(
property: box-shadow,
class: shadow,
values: (
null: var(--#{$prefix}box-shadow),
sm: var(--#{$prefix}box-shadow-sm),
lg: var(--#{$prefix}box-shadow-lg),
null: var(--box-shadow),
sm: var(--box-shadow-sm),
lg: var(--box-shadow-lg),
none: none,
),
),
@@ -125,8 +125,8 @@ $utilities: map.merge(
property: transform,
class: translate-middle,
values: (
null: translate(calc(var(--#{$prefix}dir) * -50%), -50%) #{'/*rtl:ignore*/'},
x: translateX(calc(var(--#{$prefix}dir) * -50%)) #{'/*rtl:ignore*/'},
null: translate(calc(var(--dir) * -50%), -50%) #{'/*rtl:ignore*/'},
x: translateX(calc(var(--dir) * -50%)) #{'/*rtl:ignore*/'},
y: translateY(-50%),
),
),
@@ -575,7 +575,7 @@ $utilities: map.merge(
property: background,
class: bg-gradient,
values: (
null: linear-gradient(var(--#{$prefix}gradient-direction, to right), var(--#{$prefix}gradient-stops, var(--#{$prefix}gradient-from, transparent), var(--#{$prefix}gradient-to, transparent))) no-repeat,
null: linear-gradient(var(--gradient-direction, to right), var(--gradient-stops, var(--gradient-from, transparent), var(--gradient-to, transparent))) no-repeat,
),
),
'bg-blur': (
@@ -586,7 +586,7 @@ $utilities: map.merge(
),
),
'bg-gradient-direction': (
property: --#{$prefix}gradient-direction,
property: --gradient-direction,
class: bg-gradient,
values: (
to-t: to top,
@@ -612,7 +612,7 @@ $utilities: map.merge(
property: font-family,
class: font,
values: (
monospace: var(--#{$prefix}font-monospace),
monospace: var(--font-monospace),
),
),
'font-size': (
@@ -692,15 +692,15 @@ $utilities: map.merge(
values: map.merge(
$utilities-text-colors,
(
'muted': var(--#{$prefix}secondary-color),
'muted': var(--secondary-color),
// deprecated
'black-50': rgba($black, 0.5),
// deprecated
'white-50': rgba($white, 0.5),
// deprecated
'body-secondary': var(--#{$prefix}secondary-color),
'body-tertiary': var(--#{$prefix}tertiary-color),
'body-emphasis': var(--#{$prefix}emphasis-color),
'body-secondary': var(--secondary-color),
'body-tertiary': var(--tertiary-color),
'body-emphasis': var(--emphasis-color),
'reset': inherit,
)
),
@@ -751,7 +751,7 @@ $utilities: map.merge(
values: map.merge(
$utilities-links-underline,
(
null: color-mix(in srgb, var(--#{$prefix}link-color) calc(var(--#{$prefix}link-underline-opacity, 1) * 100%), transparent),
null: color-mix(in srgb, var(--link-color) calc(var(--link-underline-opacity, 1) * 100%), transparent),
)
),
),
@@ -778,8 +778,8 @@ $utilities: map.merge(
$utilities-bg-colors,
(
'transparent': transparent,
'body-secondary': color-mix(in srgb, var(--#{$prefix}secondary-bg) calc(var(--#{$prefix}bg-opacity) * 100%), transparent),
'body-tertiary': color-mix(in srgb, var(--#{$prefix}tertiary-bg) calc(var(--#{$prefix}bg-opacity) * 100%), transparent),
'body-secondary': color-mix(in srgb, var(--secondary-bg) calc(var(--bg-opacity) * 100%), transparent),
'body-tertiary': color-mix(in srgb, var(--tertiary-bg) calc(var(--bg-opacity) * 100%), transparent),
)
),
),
@@ -812,75 +812,75 @@ $utilities: map.merge(
property: border-radius,
class: rounded,
values: (
null: var(--#{$prefix}border-radius),
null: var(--border-radius),
0: 0,
1: var(--#{$prefix}border-radius-sm),
2: var(--#{$prefix}border-radius),
3: var(--#{$prefix}border-radius-lg),
4: var(--#{$prefix}border-radius-xl),
5: var(--#{$prefix}border-radius-xxl),
1: var(--border-radius-sm),
2: var(--border-radius),
3: var(--border-radius-lg),
4: var(--border-radius-xl),
5: var(--border-radius-xxl),
circle: 50%,
pill: var(--#{$prefix}border-radius-pill),
pill: var(--border-radius-pill),
),
),
'rounded-top': (
property: border-start-start-radius border-start-end-radius,
class: rounded-top,
values: (
null: var(--#{$prefix}border-radius),
null: var(--border-radius),
0: 0,
1: var(--#{$prefix}border-radius-sm),
2: var(--#{$prefix}border-radius),
3: var(--#{$prefix}border-radius-lg),
4: var(--#{$prefix}border-radius-xl),
5: var(--#{$prefix}border-radius-xxl),
1: var(--border-radius-sm),
2: var(--border-radius),
3: var(--border-radius-lg),
4: var(--border-radius-xl),
5: var(--border-radius-xxl),
circle: 50%,
pill: var(--#{$prefix}border-radius-pill),
pill: var(--border-radius-pill),
),
),
'rounded-end': (
property: border-end-end-radius border-end-start-radius,
class: rounded-end,
values: (
null: var(--#{$prefix}border-radius),
null: var(--border-radius),
0: 0,
1: var(--#{$prefix}border-radius-sm),
2: var(--#{$prefix}border-radius),
3: var(--#{$prefix}border-radius-lg),
4: var(--#{$prefix}border-radius-xl),
5: var(--#{$prefix}border-radius-xxl),
1: var(--border-radius-sm),
2: var(--border-radius),
3: var(--border-radius-lg),
4: var(--border-radius-xl),
5: var(--border-radius-xxl),
circle: 50%,
pill: var(--#{$prefix}border-radius-pill),
pill: var(--border-radius-pill),
),
),
'rounded-bottom': (
property: border-end-end-radius border-end-start-radius,
class: rounded-bottom,
values: (
null: var(--#{$prefix}border-radius),
null: var(--border-radius),
0: 0,
1: var(--#{$prefix}border-radius-sm),
2: var(--#{$prefix}border-radius),
3: var(--#{$prefix}border-radius-lg),
4: var(--#{$prefix}border-radius-xl),
5: var(--#{$prefix}border-radius-xxl),
1: var(--border-radius-sm),
2: var(--border-radius),
3: var(--border-radius-lg),
4: var(--border-radius-xl),
5: var(--border-radius-xxl),
circle: 50%,
pill: var(--#{$prefix}border-radius-pill),
pill: var(--border-radius-pill),
),
),
'rounded-start': (
property: border-start-start-radius border-start-end-radius,
class: rounded-start,
values: (
null: var(--#{$prefix}border-radius),
null: var(--border-radius),
0: 0,
1: var(--#{$prefix}border-radius-sm),
2: var(--#{$prefix}border-radius),
3: var(--#{$prefix}border-radius-lg),
4: var(--#{$prefix}border-radius-xl),
5: var(--#{$prefix}border-radius-xxl),
1: var(--border-radius-sm),
2: var(--border-radius),
3: var(--border-radius-lg),
4: var(--border-radius-xl),
5: var(--border-radius-xxl),
circle: 50%,
pill: var(--#{$prefix}border-radius-pill),
pill: var(--border-radius-pill),
),
),
'visibility': (
+254 -254
View File
File diff suppressed because it is too large Load Diff
+65 -65
View File
@@ -6,77 +6,77 @@
.btn {
// scss-docs-start btn-css-vars
--#{$prefix}btn-padding-x: #{$btn-padding-x};
--#{$prefix}btn-padding-y: #{$btn-padding-y};
--#{$prefix}btn-font-family: #{$btn-font-family};
@include rfs($btn-font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-font-weight: #{$btn-font-weight};
--#{$prefix}btn-line-height: #{$btn-line-height};
--#{$prefix}btn-color: #{$btn-color};
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-width: #{$btn-border-width};
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-border-radius: #{$btn-border-radius};
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-box-shadow: #{$btn-box-shadow};
--#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
--#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), 0.5);
--btn-padding-x: #{$btn-padding-x};
--btn-padding-y: #{$btn-padding-y};
--btn-font-family: #{$btn-font-family};
@include rfs($btn-font-size, --btn-font-size);
--btn-font-weight: #{$btn-font-weight};
--btn-line-height: #{$btn-line-height};
--btn-color: #{$btn-color};
--btn-bg: transparent;
--btn-border-width: #{$btn-border-width};
--btn-border-color: transparent;
--btn-border-radius: #{$btn-border-radius};
--btn-hover-border-color: transparent;
--btn-box-shadow: #{$btn-box-shadow};
--btn-disabled-opacity: #{$btn-disabled-opacity};
--btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--btn-focus-shadow-rgb), 0.5);
// scss-docs-end btn-css-vars
display: inline-block;
padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
font-family: var(--#{$prefix}btn-font-family);
@include font-size(var(--#{$prefix}btn-font-size));
font-weight: var(--#{$prefix}btn-font-weight);
line-height: var(--#{$prefix}btn-line-height);
color: var(--#{$prefix}btn-color);
padding: var(--btn-padding-y) var(--btn-padding-x);
font-family: var(--btn-font-family);
@include font-size(var(--btn-font-size));
font-weight: var(--btn-font-weight);
line-height: var(--btn-line-height);
color: var(--btn-color);
text-align: center;
text-decoration: if(sass($link-decoration == none): null; else: none);
white-space: $btn-white-space;
vertical-align: middle;
cursor: if(sass($enable-button-pointers): pointer; else: null);
user-select: none;
border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
@include border-radius(var(--#{$prefix}btn-border-radius));
@include gradient-bg(var(--#{$prefix}btn-bg));
@include box-shadow(var(--#{$prefix}btn-box-shadow));
border: var(--btn-border-width) solid var(--btn-border-color);
@include border-radius(var(--btn-border-radius));
@include gradient-bg(var(--btn-bg));
@include box-shadow(var(--btn-box-shadow));
@include transition($btn-transition);
&:hover {
color: var(--#{$prefix}btn-hover-color);
color: var(--btn-hover-color);
text-decoration: if(sass($link-hover-decoration == underline): none; else: null);
background-color: var(--#{$prefix}btn-hover-bg);
border-color: var(--#{$prefix}btn-hover-border-color);
background-color: var(--btn-hover-bg);
border-color: var(--btn-hover-border-color);
}
.btn-check + &:hover {
// override for the checkbox/radio buttons
color: var(--#{$prefix}btn-color);
background-color: var(--#{$prefix}btn-bg);
border-color: var(--#{$prefix}btn-border-color);
color: var(--btn-color);
background-color: var(--btn-bg);
border-color: var(--btn-border-color);
}
&:focus-visible {
color: var(--#{$prefix}btn-hover-color);
@include gradient-bg(var(--#{$prefix}btn-hover-bg));
border-color: var(--#{$prefix}btn-hover-border-color);
color: var(--btn-hover-color);
@include gradient-bg(var(--btn-hover-bg));
border-color: var(--btn-hover-border-color);
outline: 0;
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows {
box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-box-shadow), var(--btn-focus-box-shadow);
} @else {
box-shadow: var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-focus-box-shadow);
}
}
.btn-check:focus-visible + & {
border-color: var(--#{$prefix}btn-hover-border-color);
border-color: var(--btn-hover-border-color);
outline: 0;
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows {
box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-box-shadow), var(--btn-focus-box-shadow);
} @else {
box-shadow: var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-focus-box-shadow);
}
}
@@ -85,19 +85,19 @@
&:first-child:active,
&.active,
&.show {
color: var(--#{$prefix}btn-active-color);
background-color: var(--#{$prefix}btn-active-bg);
color: var(--btn-active-color);
background-color: var(--btn-active-bg);
// Remove CSS gradients if they're enabled
background-image: if(sass($enable-gradients): none; else: null);
border-color: var(--#{$prefix}btn-active-border-color);
@include box-shadow(var(--#{$prefix}btn-active-shadow));
border-color: var(--btn-active-border-color);
@include box-shadow(var(--btn-active-shadow));
&:focus-visible {
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows {
box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-active-shadow), var(--btn-focus-box-shadow);
} @else {
box-shadow: var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-focus-box-shadow);
}
}
}
@@ -105,21 +105,21 @@
.btn-check:checked:focus-visible + & {
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows {
box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-active-shadow), var(--btn-focus-box-shadow);
} @else {
box-shadow: var(--#{$prefix}btn-focus-box-shadow);
box-shadow: var(--btn-focus-box-shadow);
}
}
&:disabled,
&.disabled,
fieldset:disabled & {
color: var(--#{$prefix}btn-disabled-color);
color: var(--btn-disabled-color);
pointer-events: none;
background-color: var(--#{$prefix}btn-disabled-bg);
background-color: var(--btn-disabled-bg);
background-image: if(sass($enable-gradients): none; else: null);
border-color: var(--#{$prefix}btn-disabled-border-color);
opacity: var(--#{$prefix}btn-disabled-opacity);
border-color: var(--btn-disabled-border-color);
opacity: var(--btn-disabled-opacity);
@include box-shadow(none);
}
}
@@ -161,18 +161,18 @@
// Make a button look and behave like a link
.btn-link {
--#{$prefix}btn-font-weight: #{$font-weight-normal};
--#{$prefix}btn-color: #{$btn-link-color};
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-hover-color: #{$btn-link-hover-color};
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-active-color: #{$btn-link-hover-color};
--#{$prefix}btn-active-border-color: transparent;
--#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
--#{$prefix}btn-disabled-border-color: transparent;
--#{$prefix}btn-box-shadow: 0 0 0 #000; // Can't use `none` as keyword negates all values when used with multiple shadows
--#{$prefix}btn-focus-shadow-rgb: #{$btn-link-focus-shadow-rgb};
--btn-font-weight: #{$font-weight-normal};
--btn-color: #{$btn-link-color};
--btn-bg: transparent;
--btn-border-color: transparent;
--btn-hover-color: #{$btn-link-hover-color};
--btn-hover-border-color: transparent;
--btn-active-color: #{$btn-link-hover-color};
--btn-active-border-color: transparent;
--btn-disabled-color: #{$btn-link-disabled-color};
--btn-disabled-border-color: transparent;
--btn-box-shadow: 0 0 0 #000; // Can't use `none` as keyword negates all values when used with multiple shadows
--btn-focus-shadow-rgb: #{$btn-link-focus-shadow-rgb};
text-decoration: $link-decoration;
@if $enable-gradients {
@@ -185,11 +185,11 @@
}
&:focus-visible {
color: var(--#{$prefix}btn-color);
color: var(--btn-color);
}
&:hover {
color: var(--#{$prefix}btn-hover-color);
color: var(--btn-hover-color);
}
// No need for an active state here
+56 -56
View File
@@ -6,39 +6,39 @@
.card {
// scss-docs-start card-css-vars
--#{$prefix}card-spacer-y: #{$card-spacer-y};
--#{$prefix}card-spacer-x: #{$card-spacer-x};
--#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
--#{$prefix}card-title-color: #{$card-title-color};
--#{$prefix}card-subtitle-color: #{$card-subtitle-color};
--#{$prefix}card-border-width: #{$card-border-width};
--#{$prefix}card-border-color: #{$card-border-color};
--#{$prefix}card-border-radius: #{$card-border-radius};
--#{$prefix}card-box-shadow: #{$card-box-shadow};
--#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};
--#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};
--#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};
--#{$prefix}card-cap-bg: #{$card-cap-bg};
--#{$prefix}card-cap-color: #{$card-cap-color};
--#{$prefix}card-height: #{$card-height};
--#{$prefix}card-color: #{$card-color};
--#{$prefix}card-bg: #{$card-bg};
--#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};
--#{$prefix}card-group-margin: #{$card-group-margin};
--card-spacer-y: #{$card-spacer-y};
--card-spacer-x: #{$card-spacer-x};
--card-title-spacer-y: #{$card-title-spacer-y};
--card-title-color: #{$card-title-color};
--card-subtitle-color: #{$card-subtitle-color};
--card-border-width: #{$card-border-width};
--card-border-color: #{$card-border-color};
--card-border-radius: #{$card-border-radius};
--card-box-shadow: #{$card-box-shadow};
--card-inner-border-radius: #{$card-inner-border-radius};
--card-cap-padding-y: #{$card-cap-padding-y};
--card-cap-padding-x: #{$card-cap-padding-x};
--card-cap-bg: #{$card-cap-bg};
--card-cap-color: #{$card-cap-color};
--card-height: #{$card-height};
--card-color: #{$card-color};
--card-bg: #{$card-bg};
--card-img-overlay-padding: #{$card-img-overlay-padding};
--card-group-margin: #{$card-group-margin};
// scss-docs-end card-css-vars
position: relative;
display: flex;
flex-direction: column;
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
height: var(--#{$prefix}card-height);
color: var(--#{$prefix}body-color);
height: var(--card-height);
color: var(--body-color);
word-wrap: break-word;
background-color: var(--#{$prefix}card-bg);
background-color: var(--card-bg);
background-clip: border-box;
border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
@include border-radius(var(--#{$prefix}card-border-radius));
@include box-shadow(var(--#{$prefix}card-box-shadow));
border: var(--card-border-width) solid var(--card-border-color);
@include border-radius(var(--card-border-radius));
@include box-shadow(var(--card-box-shadow));
> hr {
margin-inline-end: 0;
@@ -51,12 +51,12 @@
&:first-child {
border-top-width: 0;
@include border-top-radius(var(--#{$prefix}card-inner-border-radius));
@include border-top-radius(var(--card-inner-border-radius));
}
&:last-child {
border-bottom-width: 0;
@include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
@include border-bottom-radius(var(--card-inner-border-radius));
}
}
@@ -72,19 +72,19 @@
// Enable `flex-grow: 1` for decks and groups so that card blocks take up
// as much space as possible, ensuring footers are aligned to the bottom.
flex: 1 1 auto;
padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);
color: var(--#{$prefix}card-color);
padding: var(--card-spacer-y) var(--card-spacer-x);
color: var(--card-color);
}
.card-title {
margin-bottom: var(--#{$prefix}card-title-spacer-y);
color: var(--#{$prefix}card-title-color);
margin-bottom: var(--card-title-spacer-y);
color: var(--card-title-color);
}
.card-subtitle {
margin-top: calc(-0.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
margin-top: calc(-0.5 * var(--card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
margin-bottom: 0;
color: var(--#{$prefix}card-subtitle-color);
color: var(--card-subtitle-color);
}
.card-text:last-child {
@@ -97,7 +97,7 @@
}
+ .card-link {
margin-inline-start: var(--#{$prefix}card-spacer-x);
margin-inline-start: var(--card-spacer-x);
}
}
@@ -106,25 +106,25 @@
//
.card-header {
padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
padding: var(--card-cap-padding-y) var(--card-cap-padding-x);
margin-bottom: 0; // Removes the default margin-bottom of <hN>
color: var(--#{$prefix}card-cap-color);
background-color: var(--#{$prefix}card-cap-bg);
border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
color: var(--card-cap-color);
background-color: var(--card-cap-bg);
border-bottom: var(--card-border-width) solid var(--card-border-color);
&:first-child {
@include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);
@include border-radius(var(--card-inner-border-radius) var(--card-inner-border-radius) 0 0);
}
}
.card-footer {
padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
color: var(--#{$prefix}card-cap-color);
background-color: var(--#{$prefix}card-cap-bg);
border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
padding: var(--card-cap-padding-y) var(--card-cap-padding-x);
color: var(--card-cap-color);
background-color: var(--card-cap-bg);
border-top: var(--card-border-width) solid var(--card-border-color);
&:last-child {
@include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));
@include border-radius(0 0 var(--card-inner-border-radius) var(--card-inner-border-radius));
}
}
@@ -133,28 +133,28 @@
//
.card-header-tabs {
margin-inline-end: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-end: calc(-0.5 * var(--card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-bottom: calc(-1 * var(--card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
border-bottom: 0;
.nav-link.active {
background-color: var(--#{$prefix}card-bg);
border-bottom-color: var(--#{$prefix}card-bg);
background-color: var(--card-bg);
border-bottom-color: var(--card-bg);
}
}
.card-header-pills {
margin-inline-end: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-end: calc(-0.5 * var(--card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
}
// Card image
.card-img-overlay {
position: absolute;
inset: 0;
padding: var(--#{$prefix}card-img-overlay-padding);
@include border-radius(var(--#{$prefix}card-inner-border-radius));
padding: var(--card-img-overlay-padding);
@include border-radius(var(--card-inner-border-radius));
}
.card-img,
@@ -165,12 +165,12 @@
.card-img,
.card-img-top {
@include border-top-radius(var(--#{$prefix}card-inner-border-radius));
@include border-top-radius(var(--card-inner-border-radius));
}
.card-img,
.card-img-bottom {
@include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
@include border-bottom-radius(var(--card-inner-border-radius));
}
//
@@ -181,7 +181,7 @@
// The child selector allows nested `.card` within `.card-group`
// to display properly.
> .card {
margin-bottom: var(--#{$prefix}card-group-margin);
margin-bottom: var(--card-group-margin);
}
@include media-breakpoint-up(sm) {
+11 -11
View File
@@ -47,13 +47,13 @@
.carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end {
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * 100%));
transform: translateX(calc(var(--dir) * 100%));
}
.carousel-item-prev:not(.carousel-item-end),
.active.carousel-item-start {
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * -100%));
transform: translateX(calc(var(--dir) * -100%));
}
//
@@ -101,7 +101,7 @@
color: $carousel-control-color;
text-align: center;
background: none;
filter: var(--#{$prefix}carousel-control-icon-filter);
filter: var(--carousel-control-icon-filter);
border: 0;
opacity: $carousel-control-opacity;
@include transition($carousel-control-transition);
@@ -171,7 +171,7 @@
margin-inline-start: $carousel-indicator-spacer;
text-indent: -999px;
cursor: pointer;
background-color: var(--#{$prefix}carousel-indicator-active-bg);
background-color: var(--carousel-indicator-active-bg);
background-clip: padding-box;
border: 0;
// Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -196,16 +196,16 @@
bottom: $carousel-caption-spacer;
padding-top: $carousel-caption-padding-y;
padding-bottom: $carousel-caption-padding-y;
color: var(--#{$prefix}carousel-caption-color);
color: var(--carousel-caption-color);
text-align: center;
}
// Dark mode carousel
@mixin carousel-dark() {
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
--#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
--carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
--carousel-caption-color: #{$carousel-caption-color-dark};
--carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
}
.carousel-dark {
@@ -215,9 +215,9 @@
:root,
[data-bs-theme='light'],
[data-theme='light'] {
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
--#{$prefix}carousel-caption-color: #{$carousel-caption-color};
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
--carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
--carousel-caption-color: #{$carousel-caption-color};
--carousel-control-icon-filter: #{$carousel-control-icon-filter};
}
@if $enable-dark-mode {
+67 -67
View File
@@ -22,65 +22,65 @@
// The dropdown menu
.dropdown-menu {
// scss-docs-start dropdown-css-vars
--#{$prefix}dropdown-zindex: #{$zindex-dropdown};
--#{$prefix}dropdown-min-width: #{$dropdown-min-width};
--#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};
--#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};
--#{$prefix}dropdown-spacer: #{$dropdown-spacer};
@include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);
--#{$prefix}dropdown-color: #{$dropdown-color};
--#{$prefix}dropdown-bg: #{$dropdown-bg};
--#{$prefix}dropdown-border-color: #{$dropdown-border-color};
--#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};
--#{$prefix}dropdown-border-width: #{$dropdown-border-width};
--#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
--#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};
--#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
--#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};
--#{$prefix}dropdown-link-color: #{$dropdown-link-color};
--#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};
--#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
--#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};
--#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};
--#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
--#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};
--#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};
--#{$prefix}dropdown-header-color: #{$dropdown-header-color};
--#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};
--#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};
--dropdown-zindex: #{$zindex-dropdown};
--dropdown-min-width: #{$dropdown-min-width};
--dropdown-padding-x: #{$dropdown-padding-x};
--dropdown-padding-y: #{$dropdown-padding-y};
--dropdown-spacer: #{$dropdown-spacer};
@include rfs($dropdown-font-size, --dropdown-font-size);
--dropdown-color: #{$dropdown-color};
--dropdown-bg: #{$dropdown-bg};
--dropdown-border-color: #{$dropdown-border-color};
--dropdown-border-radius: #{$dropdown-border-radius};
--dropdown-border-width: #{$dropdown-border-width};
--dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
--dropdown-divider-bg: #{$dropdown-divider-bg};
--dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
--dropdown-box-shadow: #{$dropdown-box-shadow};
--dropdown-link-color: #{$dropdown-link-color};
--dropdown-link-hover-color: #{$dropdown-link-hover-color};
--dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
--dropdown-link-active-color: #{$dropdown-link-active-color};
--dropdown-link-active-bg: #{$dropdown-link-active-bg};
--dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
--dropdown-item-padding-x: #{$dropdown-item-padding-x};
--dropdown-item-padding-y: #{$dropdown-item-padding-y};
--dropdown-header-color: #{$dropdown-header-color};
--dropdown-header-padding-x: #{$dropdown-header-padding-x};
--dropdown-header-padding-y: #{$dropdown-header-padding-y};
// scss-docs-end dropdown-css-vars
position: absolute;
z-index: var(--#{$prefix}dropdown-zindex);
z-index: var(--dropdown-zindex);
display: none; // none by default, but block on "open" of the menu
min-width: var(--#{$prefix}dropdown-min-width);
padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
min-width: var(--dropdown-min-width);
padding: var(--dropdown-padding-y) var(--dropdown-padding-x);
margin: 0; // Override default margin of ul
@include font-size(var(--#{$prefix}dropdown-font-size));
color: var(--#{$prefix}dropdown-color);
@include font-size(var(--dropdown-font-size));
color: var(--dropdown-color);
text-align: start; // Ensures proper alignment if parent has it changed (e.g., modal footer)
list-style: none;
background-color: var(--#{$prefix}dropdown-bg);
background-color: var(--dropdown-bg);
background-clip: padding-box;
border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);
@include border-radius(var(--#{$prefix}dropdown-border-radius));
@include box-shadow(var(--#{$prefix}dropdown-box-shadow));
border: var(--dropdown-border-width) solid var(--dropdown-border-color);
@include border-radius(var(--dropdown-border-radius));
@include box-shadow(var(--dropdown-box-shadow));
&[data-bs-popper],
&[data-tblr-popper] {
top: 100%;
inset-inline-start: 0;
margin-top: var(--#{$prefix}dropdown-spacer);
margin-top: var(--dropdown-spacer);
}
@if $dropdown-padding-y == 0 {
> .dropdown-item:first-child,
> li:first-child .dropdown-item {
@include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));
@include border-top-radius(var(--dropdown-inner-border-radius));
}
> .dropdown-item:last-child,
> li:last-child .dropdown-item {
@include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));
@include border-bottom-radius(var(--dropdown-inner-border-radius));
}
}
}
@@ -124,7 +124,7 @@
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: var(--#{$prefix}dropdown-spacer);
margin-bottom: var(--dropdown-spacer);
}
.dropdown-toggle {
@@ -139,7 +139,7 @@
inset-inline-end: auto;
inset-inline-start: 100%;
margin-top: 0;
margin-inline-start: var(--#{$prefix}dropdown-spacer);
margin-inline-start: var(--dropdown-spacer);
}
.dropdown-toggle {
@@ -157,7 +157,7 @@
inset-inline-end: 100%;
inset-inline-start: auto;
margin-top: 0;
margin-inline-end: var(--#{$prefix}dropdown-spacer);
margin-inline-end: var(--dropdown-spacer);
}
.dropdown-toggle {
@@ -171,9 +171,9 @@
// Dividers (basically an `<hr>`) within the dropdown
.dropdown-divider {
height: 0;
margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
margin: var(--dropdown-divider-margin-y) 0;
overflow: hidden;
border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);
border-top: 1px solid var(--dropdown-divider-bg);
opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element
}
@@ -183,34 +183,34 @@
.dropdown-item {
display: block;
width: 100%; // For `<button>`s
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
padding: var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);
clear: both;
font-weight: $font-weight-normal;
color: var(--#{$prefix}dropdown-link-color);
color: var(--dropdown-link-color);
text-align: inherit; // For `<button>`s
text-decoration: if(sass($link-decoration == none): null; else: none);
white-space: nowrap; // prevent links from randomly breaking onto new lines
background-color: transparent; // For `<button>`s
border: 0; // For `<button>`s
@include border-radius(var(--#{$prefix}dropdown-item-border-radius, 0));
@include border-radius(var(--dropdown-item-border-radius, 0));
&:hover,
&:focus {
color: var(--#{$prefix}dropdown-link-hover-color);
color: var(--dropdown-link-hover-color);
text-decoration: if(sass($link-hover-decoration == underline): none; else: null);
@include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
@include gradient-bg(var(--dropdown-link-hover-bg));
}
&.active,
&:active {
color: var(--#{$prefix}dropdown-link-active-color);
color: var(--dropdown-link-active-color);
text-decoration: none;
@include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
@include gradient-bg(var(--dropdown-link-active-bg));
}
&.disabled,
&:disabled {
color: var(--#{$prefix}dropdown-link-disabled-color);
color: var(--dropdown-link-disabled-color);
pointer-events: none;
background-color: transparent;
// Remove CSS gradients if they're enabled
@@ -225,34 +225,34 @@
// Dropdown section headers
.dropdown-header {
display: block;
padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
padding: var(--dropdown-header-padding-y) var(--dropdown-header-padding-x);
margin-bottom: 0; // for use with heading elements
@include font-size($font-size-sm);
color: var(--#{$prefix}dropdown-header-color);
color: var(--dropdown-header-color);
white-space: nowrap; // as with > li > a
}
// Dropdown text
.dropdown-item-text {
display: block;
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
color: var(--#{$prefix}dropdown-link-color);
padding: var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);
color: var(--dropdown-link-color);
}
// Dark dropdowns
.dropdown-menu-dark {
// scss-docs-start dropdown-dark-css-vars
--#{$prefix}dropdown-color: #{$dropdown-dark-color};
--#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
--#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
--#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
--#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
--#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
--#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
--#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
--#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
--#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
--#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
--#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
--dropdown-color: #{$dropdown-dark-color};
--dropdown-bg: #{$dropdown-dark-bg};
--dropdown-border-color: #{$dropdown-dark-border-color};
--dropdown-box-shadow: #{$dropdown-dark-box-shadow};
--dropdown-link-color: #{$dropdown-dark-link-color};
--dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
--dropdown-divider-bg: #{$dropdown-dark-divider-bg};
--dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
--dropdown-link-active-color: #{$dropdown-dark-link-active-color};
--dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
--dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
--dropdown-header-color: #{$dropdown-dark-header-color};
// scss-docs-end dropdown-dark-css-vars
}
+4 -4
View File
@@ -6,7 +6,7 @@
:root {
@each $name, $value in $grid-breakpoints {
--#{$prefix}breakpoint-#{$name}: #{$value};
--breakpoint-#{$name}: #{$value};
}
}
@@ -23,9 +23,9 @@
@if $enable-cssgrid {
.grid {
display: grid;
grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
gap: var(--#{$prefix}gap, #{$grid-gutter-width});
grid-template-rows: repeat(var(--rows, 1), 1fr);
grid-template-columns: repeat(var(--columns, #{$grid-columns}), 1fr);
gap: var(--gap, #{$grid-gutter-width});
@include make-cssgrid();
}
+50 -50
View File
@@ -8,23 +8,23 @@
.list-group {
// scss-docs-start list-group-css-vars
--#{$prefix}list-group-color: #{$list-group-color};
--#{$prefix}list-group-bg: #{$list-group-bg};
--#{$prefix}list-group-border-color: #{$list-group-border-color};
--#{$prefix}list-group-border-width: #{$list-group-border-width};
--#{$prefix}list-group-border-radius: #{$list-group-border-radius};
--#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};
--#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};
--#{$prefix}list-group-action-color: #{$list-group-action-color};
--#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};
--#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};
--#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};
--#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};
--#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};
--#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};
--#{$prefix}list-group-active-color: #{$list-group-active-color};
--#{$prefix}list-group-active-bg: #{$list-group-active-bg};
--#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};
--list-group-color: #{$list-group-color};
--list-group-bg: #{$list-group-bg};
--list-group-border-color: #{$list-group-border-color};
--list-group-border-width: #{$list-group-border-width};
--list-group-border-radius: #{$list-group-border-radius};
--list-group-item-padding-x: #{$list-group-item-padding-x};
--list-group-item-padding-y: #{$list-group-item-padding-y};
--list-group-action-color: #{$list-group-action-color};
--list-group-action-hover-color: #{$list-group-action-hover-color};
--list-group-action-hover-bg: #{$list-group-hover-bg};
--list-group-action-active-color: #{$list-group-action-active-color};
--list-group-action-active-bg: #{$list-group-action-active-bg};
--list-group-disabled-color: #{$list-group-disabled-color};
--list-group-disabled-bg: #{$list-group-disabled-bg};
--list-group-active-color: #{$list-group-active-color};
--list-group-active-bg: #{$list-group-active-bg};
--list-group-active-border-color: #{$list-group-active-border-color};
// scss-docs-end list-group-css-vars
display: flex;
@@ -33,7 +33,7 @@
// No need to set list-style: none; since .list-group-item is block level
padding-inline-start: 0; // reset padding because ul and ol
margin-bottom: 0;
@include border-radius(var(--#{$prefix}list-group-border-radius));
@include border-radius(var(--list-group-border-radius));
}
.list-group-numbered {
@@ -54,11 +54,11 @@
.list-group-item {
position: relative;
display: block;
padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);
color: var(--#{$prefix}list-group-color);
padding: var(--list-group-item-padding-y) var(--list-group-item-padding-x);
color: var(--list-group-color);
text-decoration: if(sass($link-decoration == none): null; else: none);
background-color: var(--#{$prefix}list-group-bg);
border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);
background-color: var(--list-group-bg);
border: var(--list-group-border-width) solid var(--list-group-border-color);
&:first-child {
@include border-top-radius(inherit);
@@ -70,17 +70,17 @@
&.disabled,
&:disabled {
color: var(--#{$prefix}list-group-disabled-color);
color: var(--list-group-disabled-color);
pointer-events: none;
background-color: var(--#{$prefix}list-group-disabled-bg);
background-color: var(--list-group-disabled-bg);
}
// Include both here for `<a>`s and `<button>`s
&.active {
z-index: 2; // Place active items above their siblings for proper border styling
color: var(--#{$prefix}list-group-active-color);
background-color: var(--#{$prefix}list-group-active-bg);
border-color: var(--#{$prefix}list-group-active-border-color);
color: var(--list-group-active-color);
background-color: var(--list-group-active-bg);
border-color: var(--list-group-active-border-color);
}
// stylelint-disable-next-line scss/selector-no-redundant-nesting-selector
@@ -88,8 +88,8 @@
border-top-width: 0;
&.active {
margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
border-top-width: var(--#{$prefix}list-group-border-width);
margin-top: calc(-1 * var(--list-group-border-width)); // stylelint-disable-line function-disallowed-list
border-top-width: var(--list-group-border-width);
}
}
}
@@ -101,7 +101,7 @@
.list-group-item-action {
width: 100%; // For `<button>`s (anchors become 100% by default though)
color: var(--#{$prefix}list-group-action-color);
color: var(--list-group-action-color);
text-align: inherit; // For `<button>`s (anchors inherit)
&:not(.active) {
@@ -109,14 +109,14 @@
&:hover,
&:focus {
z-index: 1; // Place hover/focus items above their siblings for proper border styling
color: var(--#{$prefix}list-group-action-hover-color);
color: var(--list-group-action-hover-color);
text-decoration: none;
background-color: var(--#{$prefix}list-group-action-hover-bg);
background-color: var(--list-group-action-hover-bg);
}
&:active {
color: var(--#{$prefix}list-group-action-active-color);
background-color: var(--#{$prefix}list-group-action-active-bg);
color: var(--list-group-action-active-color);
background-color: var(--list-group-action-active-bg);
}
}
}
@@ -134,12 +134,12 @@
> .list-group-item {
&:first-child:not(:last-child) {
@include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));
@include border-bottom-start-radius(var(--list-group-border-radius));
@include border-top-end-radius(0);
}
&:last-child:not(:first-child) {
@include border-top-end-radius(var(--#{$prefix}list-group-border-radius));
@include border-top-end-radius(var(--list-group-border-radius));
@include border-bottom-start-radius(0);
}
@@ -148,12 +148,12 @@
}
+ .list-group-item {
border-top-width: var(--#{$prefix}list-group-border-width);
border-top-width: var(--list-group-border-width);
border-inline-start-width: 0;
&.active {
margin-inline-start: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
border-inline-start-width: var(--#{$prefix}list-group-border-width);
margin-inline-start: calc(-1 * var(--list-group-border-width)); // stylelint-disable-line function-disallowed-list
border-inline-start-width: var(--list-group-border-width);
}
}
}
@@ -170,7 +170,7 @@
@include border-radius(0);
> .list-group-item {
border-width: 0 0 var(--#{$prefix}list-group-border-width);
border-width: 0 0 var(--list-group-border-width);
&:last-child {
border-bottom-width: 0;
@@ -186,16 +186,16 @@
@each $state in map.keys($theme-colors) {
.list-group-item-#{$state} {
--#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text-emphasis);
--#{$prefix}list-group-bg: var(--#{$prefix}#{$state}-bg-subtle);
--#{$prefix}list-group-border-color: var(--#{$prefix}#{$state}-border-subtle);
--#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color);
--#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle);
--#{$prefix}list-group-action-active-color: var(--#{$prefix}emphasis-color);
--#{$prefix}list-group-action-active-bg: var(--#{$prefix}#{$state}-border-subtle);
--#{$prefix}list-group-active-color: var(--#{$prefix}#{$state}-bg-subtle);
--#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text-emphasis);
--#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text-emphasis);
--list-group-color: var(--#{$state}-text-emphasis);
--list-group-bg: var(--#{$state}-bg-subtle);
--list-group-border-color: var(--#{$state}-border-subtle);
--list-group-action-hover-color: var(--emphasis-color);
--list-group-action-hover-bg: var(--#{$state}-border-subtle);
--list-group-action-active-color: var(--emphasis-color);
--list-group-action-active-bg: var(--#{$state}-border-subtle);
--list-group-active-color: var(--#{$state}-bg-subtle);
--list-group-active-bg: var(--#{$state}-text-emphasis);
--list-group-active-border-color: var(--#{$state}-text-emphasis);
}
}
// scss-docs-end list-group-modifiers
+54 -54
View File
@@ -12,33 +12,33 @@
.modal {
// scss-docs-start modal-css-vars
--#{$prefix}modal-zindex: #{$zindex-modal};
--#{$prefix}modal-width: #{$modal-md};
--#{$prefix}modal-padding: #{$modal-inner-padding};
--#{$prefix}modal-margin: #{$modal-dialog-margin};
--#{$prefix}modal-color: #{$modal-content-color};
--#{$prefix}modal-bg: #{$modal-content-bg};
--#{$prefix}modal-border-color: #{$modal-content-border-color};
--#{$prefix}modal-border-width: #{$modal-content-border-width};
--#{$prefix}modal-border-radius: #{$modal-content-border-radius};
--#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};
--#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};
--#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};
--#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};
--#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
--#{$prefix}modal-header-border-color: #{$modal-header-border-color};
--#{$prefix}modal-header-border-width: #{$modal-header-border-width};
--#{$prefix}modal-title-line-height: #{$modal-title-line-height};
--#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};
--#{$prefix}modal-footer-bg: #{$modal-footer-bg};
--#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};
--#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};
--modal-zindex: #{$zindex-modal};
--modal-width: #{$modal-md};
--modal-padding: #{$modal-inner-padding};
--modal-margin: #{$modal-dialog-margin};
--modal-color: #{$modal-content-color};
--modal-bg: #{$modal-content-bg};
--modal-border-color: #{$modal-content-border-color};
--modal-border-width: #{$modal-content-border-width};
--modal-border-radius: #{$modal-content-border-radius};
--modal-box-shadow: #{$modal-content-box-shadow-xs};
--modal-inner-border-radius: #{$modal-content-inner-border-radius};
--modal-header-padding-x: #{$modal-header-padding-x};
--modal-header-padding-y: #{$modal-header-padding-y};
--modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
--modal-header-border-color: #{$modal-header-border-color};
--modal-header-border-width: #{$modal-header-border-width};
--modal-title-line-height: #{$modal-title-line-height};
--modal-footer-gap: #{$modal-footer-margin-between};
--modal-footer-bg: #{$modal-footer-bg};
--modal-footer-border-color: #{$modal-footer-border-color};
--modal-footer-border-width: #{$modal-footer-border-width};
// scss-docs-end modal-css-vars
position: fixed;
inset-inline-start: 0;
top: 0;
z-index: var(--#{$prefix}modal-zindex);
z-index: var(--modal-zindex);
display: none;
width: 100%;
height: 100%;
@@ -56,7 +56,7 @@
.modal-dialog {
position: relative;
width: auto;
margin: var(--#{$prefix}modal-margin);
margin: var(--modal-margin);
// allow clicks to pass through for custom click handling to close modal
pointer-events: none;
@@ -76,7 +76,7 @@
}
.modal-dialog-scrollable {
height: calc(100% - var(--#{$prefix}modal-margin) * 2);
height: calc(100% - var(--modal-margin) * 2);
.modal-content {
max-height: 100%;
@@ -91,7 +91,7 @@
.modal-dialog-centered {
display: flex;
align-items: center;
min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);
min-height: calc(100% - var(--modal-margin) * 2);
}
// Actual modal
@@ -101,13 +101,13 @@
flex-direction: column;
width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
// counteract the pointer-events: none; in the .modal-dialog
color: var(--#{$prefix}modal-color);
color: var(--modal-color);
pointer-events: auto;
background-color: var(--#{$prefix}modal-bg);
background-color: var(--modal-bg);
background-clip: padding-box;
border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);
@include border-radius(var(--#{$prefix}modal-border-radius));
@include box-shadow(var(--#{$prefix}modal-box-shadow));
border: var(--modal-border-width) solid var(--modal-border-color);
@include border-radius(var(--modal-border-radius));
@include box-shadow(var(--modal-box-shadow));
// Remove focus outline from opened modal
outline: 0;
}
@@ -115,12 +115,12 @@
// Modal background
.modal-backdrop {
// scss-docs-start modal-backdrop-css-vars
--#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};
--#{$prefix}backdrop-bg: #{$modal-backdrop-bg};
--#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};
--backdrop-zindex: #{$zindex-modal-backdrop};
--backdrop-bg: #{$modal-backdrop-bg};
--backdrop-opacity: #{$modal-backdrop-opacity};
// scss-docs-end modal-backdrop-css-vars
@include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));
@include overlay-backdrop(var(--backdrop-zindex), var(--backdrop-bg), var(--backdrop-opacity));
}
// Modal header
@@ -129,16 +129,16 @@
display: flex;
flex-shrink: 0;
align-items: center;
padding: var(--#{$prefix}modal-header-padding);
border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
@include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
padding: var(--modal-header-padding);
border-bottom: var(--modal-header-border-width) solid var(--modal-header-border-color);
@include border-top-radius(var(--modal-inner-border-radius));
.btn-close {
padding: calc(var(--#{$prefix}modal-header-padding-y) * 0.5) calc(var(--#{$prefix}modal-header-padding-x) * 0.5);
padding: calc(var(--modal-header-padding-y) * 0.5) calc(var(--modal-header-padding-x) * 0.5);
// Split properties to avoid invalid calc() function if value is 0
margin-top: calc(-0.5 * var(--#{$prefix}modal-header-padding-y));
margin-inline-end: calc(-0.5 * var(--#{$prefix}modal-header-padding-x));
margin-bottom: calc(-0.5 * var(--#{$prefix}modal-header-padding-y));
margin-top: calc(-0.5 * var(--modal-header-padding-y));
margin-inline-end: calc(-0.5 * var(--modal-header-padding-x));
margin-bottom: calc(-0.5 * var(--modal-header-padding-y));
margin-inline-start: auto;
}
}
@@ -146,7 +146,7 @@
// Title text within header
.modal-title {
margin-bottom: 0;
line-height: var(--#{$prefix}modal-title-line-height);
line-height: var(--modal-title-line-height);
}
// Modal body
@@ -156,7 +156,7 @@
// Enable `flex-grow: 1` so that the body take up as much space as possible
// when there should be a fixed height on `.modal-dialog`.
flex: 1 1 auto;
padding: var(--#{$prefix}modal-padding);
padding: var(--modal-padding);
}
// Footer (for actions)
@@ -166,48 +166,48 @@
flex-wrap: wrap;
align-items: center; // vertically center
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * 0.5);
background-color: var(--#{$prefix}modal-footer-bg);
border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);
@include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));
padding: calc(var(--modal-padding) - var(--modal-footer-gap) * 0.5);
background-color: var(--modal-footer-bg);
border-top: var(--modal-footer-border-width) solid var(--modal-footer-border-color);
@include border-bottom-radius(var(--modal-inner-border-radius));
// Place margin between footer elements
// This solution is far from ideal because of the universal selector usage,
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800
> * {
margin: calc(var(--#{$prefix}modal-footer-gap) * 0.5); // Todo in v6: replace with gap on parent class
margin: calc(var(--modal-footer-gap) * 0.5); // Todo in v6: replace with gap on parent class
}
}
// Scale up the modal
@include media-breakpoint-up(sm) {
.modal {
--#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};
--#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};
--modal-margin: #{$modal-dialog-margin-y-sm-up};
--modal-box-shadow: #{$modal-content-box-shadow-sm-up};
}
// Automatically set modal's width for larger viewports
.modal-dialog {
max-width: var(--#{$prefix}modal-width);
max-width: var(--modal-width);
margin-inline-end: auto;
margin-inline-start: auto;
}
.modal-sm {
--#{$prefix}modal-width: #{$modal-sm};
--modal-width: #{$modal-sm};
}
}
@include media-breakpoint-up(lg) {
.modal-lg,
.modal-xl {
--#{$prefix}modal-width: #{$modal-lg};
--modal-width: #{$modal-lg};
}
}
@include media-breakpoint-up(xl) {
.modal-xl {
--#{$prefix}modal-width: #{$modal-xl};
--modal-width: #{$modal-xl};
}
}
+41 -41
View File
@@ -7,13 +7,13 @@
.nav {
// scss-docs-start nav-css-vars
--#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
--#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
@include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
--#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
--#{$prefix}nav-link-color: #{$nav-link-color};
--#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
--#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
--nav-link-padding-x: #{$nav-link-padding-x};
--nav-link-padding-y: #{$nav-link-padding-y};
@include rfs($nav-link-font-size, --nav-link-font-size);
--nav-link-font-weight: #{$nav-link-font-weight};
--nav-link-color: #{$nav-link-color};
--nav-link-hover-color: #{$nav-link-hover-color};
--nav-link-disabled-color: #{$nav-link-disabled-color};
// scss-docs-end nav-css-vars
display: flex;
@@ -25,10 +25,10 @@
.nav-link {
display: block;
padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
@include font-size(var(--#{$prefix}nav-link-font-size));
font-weight: var(--#{$prefix}nav-link-font-weight);
color: var(--#{$prefix}nav-link-color);
padding: var(--nav-link-padding-y) var(--nav-link-padding-x);
@include font-size(var(--nav-link-font-size));
font-weight: var(--nav-link-font-weight);
color: var(--nav-link-color);
text-decoration: if(sass($link-decoration == none): null; else: none);
background: none;
border: 0;
@@ -36,7 +36,7 @@
&:hover,
&:focus {
color: var(--#{$prefix}nav-link-hover-color);
color: var(--nav-link-hover-color);
text-decoration: if(sass($link-hover-decoration == underline): none; else: null);
}
@@ -48,7 +48,7 @@
// Disabled state lightens text
&.disabled,
&:disabled {
color: var(--#{$prefix}nav-link-disabled-color);
color: var(--nav-link-disabled-color);
pointer-events: none;
cursor: default;
}
@@ -60,40 +60,40 @@
.nav-tabs {
// scss-docs-start nav-tabs-css-vars
--#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
--#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
--#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
--#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
--#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
--#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
--#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
--nav-tabs-border-width: #{$nav-tabs-border-width};
--nav-tabs-border-color: #{$nav-tabs-border-color};
--nav-tabs-border-radius: #{$nav-tabs-border-radius};
--nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
--nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
--nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
--nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
// scss-docs-end nav-tabs-css-vars
border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
border-bottom: var(--nav-tabs-border-width) solid var(--nav-tabs-border-color);
.nav-link {
margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
@include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
margin-bottom: calc(-1 * var(--nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
border: var(--nav-tabs-border-width) solid transparent;
@include border-top-radius(var(--nav-tabs-border-radius));
&:hover,
&:focus {
// Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
isolation: isolate;
border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
border-color: var(--nav-tabs-link-hover-border-color);
}
}
.nav-link.active,
.nav-item.show .nav-link {
color: var(--#{$prefix}nav-tabs-link-active-color);
background-color: var(--#{$prefix}nav-tabs-link-active-bg);
border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
color: var(--nav-tabs-link-active-color);
background-color: var(--nav-tabs-link-active-bg);
border-color: var(--nav-tabs-link-active-border-color);
}
.dropdown-menu {
// Make dropdown border overlap tab border
margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
margin-top: calc(-1 * var(--nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
// Remove the top rounded corners here since there is a hard edge above the menu
@include border-top-radius(0);
}
@@ -105,19 +105,19 @@
.nav-pills {
// scss-docs-start nav-pills-css-vars
--#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
--#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
--#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
--nav-pills-border-radius: #{$nav-pills-border-radius};
--nav-pills-link-active-color: #{$nav-pills-link-active-color};
--nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
// scss-docs-end nav-pills-css-vars
.nav-link {
@include border-radius(var(--#{$prefix}nav-pills-border-radius));
@include border-radius(var(--nav-pills-border-radius));
}
.nav-link.active,
.show > .nav-link {
color: var(--#{$prefix}nav-pills-link-active-color);
@include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
color: var(--nav-pills-link-active-color);
@include gradient-bg(var(--nav-pills-link-active-bg));
}
}
@@ -127,17 +127,17 @@
.nav-underline {
// scss-docs-start nav-underline-css-vars
--#{$prefix}nav-underline-gap: #{$nav-underline-gap};
--#{$prefix}nav-underline-border-width: #{$nav-underline-border-width};
--#{$prefix}nav-underline-link-active-color: #{$nav-underline-link-active-color};
--nav-underline-gap: #{$nav-underline-gap};
--nav-underline-border-width: #{$nav-underline-border-width};
--nav-underline-link-active-color: #{$nav-underline-link-active-color};
// scss-docs-end nav-underline-css-vars
gap: var(--#{$prefix}nav-underline-gap);
gap: var(--nav-underline-gap);
.nav-link {
padding-inline-end: 0;
padding-inline-start: 0;
border-bottom: var(--#{$prefix}nav-underline-border-width) solid transparent;
border-bottom: var(--nav-underline-border-width) solid transparent;
&:hover,
&:focus {
@@ -148,7 +148,7 @@
.nav-link.active,
.show > .nav-link {
font-weight: $font-weight-bold;
color: var(--#{$prefix}nav-underline-link-active-color);
color: var(--nav-underline-link-active-color);
border-bottom-color: currentcolor;
}
}
+57 -57
View File
@@ -9,26 +9,26 @@
.navbar {
// scss-docs-start navbar-css-vars
--#{$prefix}navbar-padding-x: #{if(sass($navbar-padding-x == null): 0; else: $navbar-padding-x)};
--#{$prefix}navbar-padding-y: #{$navbar-padding-y};
--#{$prefix}navbar-color: #{$navbar-light-color};
--#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
--#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
--#{$prefix}navbar-active-color: #{$navbar-light-active-color};
--#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
--#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
--#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
--#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
--#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
--#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
--#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
--#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
--#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
--#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
--#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
--#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
--#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
--#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
--navbar-padding-x: #{if(sass($navbar-padding-x == null): 0; else: $navbar-padding-x)};
--navbar-padding-y: #{$navbar-padding-y};
--navbar-color: #{$navbar-light-color};
--navbar-hover-color: #{$navbar-light-hover-color};
--navbar-disabled-color: #{$navbar-light-disabled-color};
--navbar-active-color: #{$navbar-light-active-color};
--navbar-brand-padding-y: #{$navbar-brand-padding-y};
--navbar-brand-margin-end: #{$navbar-brand-margin-end};
--navbar-brand-font-size: #{$navbar-brand-font-size};
--navbar-brand-color: #{$navbar-light-brand-color};
--navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
--navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
--navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
--navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
--navbar-toggler-font-size: #{$navbar-toggler-font-size};
--navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
--navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
--navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
--navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
--navbar-toggler-transition: #{$navbar-toggler-transition};
// scss-docs-end navbar-css-vars
position: relative;
@@ -36,7 +36,7 @@
flex-wrap: wrap; // allow us to do the line break for collapsing content
align-items: center;
justify-content: space-between; // space out brand from logo
padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
padding: var(--navbar-padding-y) var(--navbar-padding-x);
@include gradient-bg();
// Because flex properties aren't inherited, we need to redeclare these first
@@ -66,17 +66,17 @@
// Used for brand, project, or site names.
.navbar-brand {
padding-top: var(--#{$prefix}navbar-brand-padding-y);
padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
margin-inline-end: var(--#{$prefix}navbar-brand-margin-end);
@include font-size(var(--#{$prefix}navbar-brand-font-size));
color: var(--#{$prefix}navbar-brand-color);
padding-top: var(--navbar-brand-padding-y);
padding-bottom: var(--navbar-brand-padding-y);
margin-inline-end: var(--navbar-brand-margin-end);
@include font-size(var(--navbar-brand-font-size));
color: var(--navbar-brand-color);
text-decoration: if(sass($link-decoration == none): null; else: none);
white-space: nowrap;
&:hover,
&:focus {
color: var(--#{$prefix}navbar-brand-hover-color);
color: var(--navbar-brand-hover-color);
text-decoration: if(sass($link-hover-decoration == underline): none; else: null);
}
}
@@ -87,13 +87,13 @@
.navbar-nav {
// scss-docs-start navbar-nav-css-vars
--#{$prefix}nav-link-padding-x: 0;
--#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
@include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
--#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
--#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
--#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
--#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
--nav-link-padding-x: 0;
--nav-link-padding-y: #{$nav-link-padding-y};
@include rfs($nav-link-font-size, --nav-link-font-size);
--nav-link-font-weight: #{$nav-link-font-weight};
--nav-link-color: var(--navbar-color);
--nav-link-hover-color: var(--navbar-hover-color);
--nav-link-disabled-color: var(--navbar-disabled-color);
// scss-docs-end navbar-nav-css-vars
display: flex;
@@ -105,7 +105,7 @@
.nav-link {
&.active,
&.show {
color: var(--#{$prefix}navbar-active-color);
color: var(--navbar-active-color);
}
}
@@ -121,12 +121,12 @@
.navbar-text {
padding-top: $nav-link-padding-y;
padding-bottom: $nav-link-padding-y;
color: var(--#{$prefix}navbar-color);
color: var(--navbar-color);
a,
a:hover,
a:focus {
color: var(--#{$prefix}navbar-active-color);
color: var(--navbar-active-color);
}
}
@@ -148,14 +148,14 @@
// Button for toggling the navbar when in its collapsed state
.navbar-toggler {
padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
@include font-size(var(--#{$prefix}navbar-toggler-font-size));
padding: var(--navbar-toggler-padding-y) var(--navbar-toggler-padding-x);
@include font-size(var(--navbar-toggler-font-size));
line-height: 1;
color: var(--#{$prefix}navbar-color);
color: var(--navbar-color);
background-color: transparent; // remove default button style
border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
@include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
@include transition(var(--#{$prefix}navbar-toggler-transition));
border: var(--border-width) solid var(--navbar-toggler-border-color); // remove default button style
@include border-radius(var(--navbar-toggler-border-radius));
@include transition(var(--navbar-toggler-transition));
&:hover {
text-decoration: none;
@@ -164,7 +164,7 @@
&:focus {
text-decoration: none;
outline: 0;
box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
box-shadow: 0 0 0 var(--navbar-toggler-focus-width);
}
}
@@ -175,14 +175,14 @@
width: 1.5em;
height: 1.5em;
vertical-align: middle;
background-image: var(--#{$prefix}navbar-toggler-icon-bg);
background-image: var(--navbar-toggler-icon-bg);
background-repeat: no-repeat;
background-position: center;
background-size: 100%;
}
.navbar-nav-scroll {
max-height: var(--#{$prefix}scroll-height, 75vh);
max-height: var(--scroll-height, 75vh);
overflow-y: auto;
}
@@ -208,8 +208,8 @@
}
.nav-link {
padding-inline-end: var(--#{$prefix}navbar-nav-link-padding-x);
padding-inline-start: var(--#{$prefix}navbar-nav-link-padding-x);
padding-inline-end: var(--navbar-nav-link-padding-x);
padding-inline-start: var(--navbar-nav-link-padding-x);
}
}
@@ -270,21 +270,21 @@
.navbar[data-bs-theme='dark'],
.navbar[data-theme='dark'] {
// scss-docs-start navbar-dark-css-vars
--#{$prefix}navbar-color: #{$navbar-dark-color};
--#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
--#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
--#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
--#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
--#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
--#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
--#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
--navbar-color: #{$navbar-dark-color};
--navbar-hover-color: #{$navbar-dark-hover-color};
--navbar-disabled-color: #{$navbar-dark-disabled-color};
--navbar-active-color: #{$navbar-dark-active-color};
--navbar-brand-color: #{$navbar-dark-brand-color};
--navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
--navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
--navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
// scss-docs-end navbar-dark-css-vars
}
@if $enable-dark-mode {
@include color-mode(dark) {
.navbar-toggler-icon {
--#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
--navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
}
}
}
+36 -36
View File
@@ -6,18 +6,18 @@
%offcanvas-css-vars {
// scss-docs-start offcanvas-css-vars
--#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
--#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
--#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
--#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
--#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
--#{$prefix}offcanvas-color: #{$offcanvas-color};
--#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
--#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
--#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
--#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
--#{$prefix}offcanvas-transition: #{transform $offcanvas-transition-duration ease-in-out};
--#{$prefix}offcanvas-title-line-height: #{$offcanvas-title-line-height};
--offcanvas-zindex: #{$zindex-offcanvas};
--offcanvas-width: #{$offcanvas-horizontal-width};
--offcanvas-height: #{$offcanvas-vertical-height};
--offcanvas-padding-x: #{$offcanvas-padding-x};
--offcanvas-padding-y: #{$offcanvas-padding-y};
--offcanvas-color: #{$offcanvas-color};
--offcanvas-bg: #{$offcanvas-bg-color};
--offcanvas-border-width: #{$offcanvas-border-width};
--offcanvas-border-color: #{$offcanvas-border-color};
--offcanvas-box-shadow: #{$offcanvas-box-shadow};
--offcanvas-transition: #{transform $offcanvas-transition-duration ease-in-out};
--offcanvas-title-line-height: #{$offcanvas-title-line-height};
// scss-docs-end offcanvas-css-vars
}
@@ -38,50 +38,50 @@
@include media-breakpoint-down($next) {
position: fixed;
bottom: 0;
z-index: var(--#{$prefix}offcanvas-zindex);
z-index: var(--offcanvas-zindex);
display: flex;
flex-direction: column;
max-width: 100%;
color: var(--#{$prefix}offcanvas-color);
color: var(--offcanvas-color);
visibility: hidden;
background-color: var(--#{$prefix}offcanvas-bg);
background-color: var(--offcanvas-bg);
background-clip: padding-box;
outline: 0;
@include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
@include transition(var(--#{$prefix}offcanvas-transition));
@include box-shadow(var(--offcanvas-box-shadow));
@include transition(var(--offcanvas-transition));
&.offcanvas-start {
top: 0;
inset-inline-start: 0;
width: var(--#{$prefix}offcanvas-width);
border-inline-end: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
width: var(--offcanvas-width);
border-inline-end: var(--offcanvas-border-width) solid var(--offcanvas-border-color);
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * -100%));
transform: translateX(calc(var(--dir) * -100%));
}
&.offcanvas-end {
top: 0;
inset-inline-end: 0;
width: var(--#{$prefix}offcanvas-width);
border-inline-start: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
width: var(--offcanvas-width);
border-inline-start: var(--offcanvas-border-width) solid var(--offcanvas-border-color);
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * 100%));
transform: translateX(calc(var(--dir) * 100%));
}
&.offcanvas-top {
top: 0;
inset-inline: 0;
height: var(--#{$prefix}offcanvas-height);
height: var(--offcanvas-height);
max-height: 100%;
border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
border-bottom: var(--offcanvas-border-width) solid var(--offcanvas-border-color);
transform: translateY(-100%);
}
&.offcanvas-bottom {
inset-inline: 0;
height: var(--#{$prefix}offcanvas-height);
height: var(--offcanvas-height);
max-height: 100%;
border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
border-top: var(--offcanvas-border-width) solid var(--offcanvas-border-color);
transform: translateY(100%);
}
@@ -99,8 +99,8 @@
@if not($infix == '') {
@include media-breakpoint-up($next) {
--#{$prefix}offcanvas-height: auto;
--#{$prefix}offcanvas-border-width: 0;
--offcanvas-height: auto;
--offcanvas-border-width: 0;
background-color: transparent !important; // stylelint-disable-line declaration-no-important
.offcanvas-header {
@@ -127,25 +127,25 @@
.offcanvas-header {
display: flex;
align-items: center;
padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
padding: var(--offcanvas-padding-y) var(--offcanvas-padding-x);
.btn-close {
padding: calc(var(--#{$prefix}offcanvas-padding-y) * 0.5) calc(var(--#{$prefix}offcanvas-padding-x) * 0.5);
padding: calc(var(--offcanvas-padding-y) * 0.5) calc(var(--offcanvas-padding-x) * 0.5);
// Split properties to avoid invalid calc() function if value is 0
margin-top: calc(-0.5 * var(--#{$prefix}offcanvas-padding-y));
margin-inline-end: calc(-0.5 * var(--#{$prefix}offcanvas-padding-x));
margin-bottom: calc(-0.5 * var(--#{$prefix}offcanvas-padding-y));
margin-top: calc(-0.5 * var(--offcanvas-padding-y));
margin-inline-end: calc(-0.5 * var(--offcanvas-padding-x));
margin-bottom: calc(-0.5 * var(--offcanvas-padding-y));
margin-inline-start: auto;
}
}
.offcanvas-title {
margin-bottom: 0;
line-height: var(--#{$prefix}offcanvas-title-line-height);
line-height: var(--offcanvas-title-line-height);
}
.offcanvas-body {
flex-grow: 1;
padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
padding: var(--offcanvas-padding-y) var(--offcanvas-padding-x);
overflow-y: auto;
}
+40 -40
View File
@@ -2,26 +2,26 @@
.pagination {
// scss-docs-start pagination-css-vars
--#{$prefix}pagination-padding-x: #{$pagination-padding-x};
--#{$prefix}pagination-padding-y: #{$pagination-padding-y};
@include rfs($pagination-font-size, --#{$prefix}pagination-font-size);
--#{$prefix}pagination-color: #{$pagination-color};
--#{$prefix}pagination-bg: #{$pagination-bg};
--#{$prefix}pagination-border-width: #{$pagination-border-width};
--#{$prefix}pagination-border-color: #{$pagination-border-color};
--#{$prefix}pagination-border-radius: #{$pagination-border-radius};
--#{$prefix}pagination-hover-color: #{$pagination-hover-color};
--#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};
--#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};
--#{$prefix}pagination-focus-color: #{$pagination-focus-color};
--#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};
--#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
--#{$prefix}pagination-active-color: #{$pagination-active-color};
--#{$prefix}pagination-active-bg: #{$pagination-active-bg};
--#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};
--#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};
--#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};
--#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};
--pagination-padding-x: #{$pagination-padding-x};
--pagination-padding-y: #{$pagination-padding-y};
@include rfs($pagination-font-size, --pagination-font-size);
--pagination-color: #{$pagination-color};
--pagination-bg: #{$pagination-bg};
--pagination-border-width: #{$pagination-border-width};
--pagination-border-color: #{$pagination-border-color};
--pagination-border-radius: #{$pagination-border-radius};
--pagination-hover-color: #{$pagination-hover-color};
--pagination-hover-bg: #{$pagination-hover-bg};
--pagination-hover-border-color: #{$pagination-hover-border-color};
--pagination-focus-color: #{$pagination-focus-color};
--pagination-focus-bg: #{$pagination-focus-bg};
--pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
--pagination-active-color: #{$pagination-active-color};
--pagination-active-bg: #{$pagination-active-bg};
--pagination-active-border-color: #{$pagination-active-border-color};
--pagination-disabled-color: #{$pagination-disabled-color};
--pagination-disabled-bg: #{$pagination-disabled-bg};
--pagination-disabled-border-color: #{$pagination-disabled-border-color};
// scss-docs-end pagination-css-vars
display: flex;
@@ -31,44 +31,44 @@
.page-link {
position: relative;
display: block;
padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
@include font-size(var(--#{$prefix}pagination-font-size));
color: var(--#{$prefix}pagination-color);
padding: var(--pagination-padding-y) var(--pagination-padding-x);
@include font-size(var(--pagination-font-size));
color: var(--pagination-color);
text-decoration: if(sass($link-decoration == none): null; else: none);
background-color: var(--#{$prefix}pagination-bg);
border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
background-color: var(--pagination-bg);
border: var(--pagination-border-width) solid var(--pagination-border-color);
@include transition($pagination-transition);
&:hover {
z-index: 2;
color: var(--#{$prefix}pagination-hover-color);
color: var(--pagination-hover-color);
text-decoration: if(sass($link-hover-decoration == underline): none; else: null);
background-color: var(--#{$prefix}pagination-hover-bg);
border-color: var(--#{$prefix}pagination-hover-border-color);
background-color: var(--pagination-hover-bg);
border-color: var(--pagination-hover-border-color);
}
&:focus {
z-index: 3;
color: var(--#{$prefix}pagination-focus-color);
background-color: var(--#{$prefix}pagination-focus-bg);
color: var(--pagination-focus-color);
background-color: var(--pagination-focus-bg);
outline: $pagination-focus-outline;
box-shadow: var(--#{$prefix}pagination-focus-box-shadow);
box-shadow: var(--pagination-focus-box-shadow);
}
&.active,
.active > & {
z-index: 3;
color: var(--#{$prefix}pagination-active-color);
@include gradient-bg(var(--#{$prefix}pagination-active-bg));
border-color: var(--#{$prefix}pagination-active-border-color);
color: var(--pagination-active-color);
@include gradient-bg(var(--pagination-active-bg));
border-color: var(--pagination-active-border-color);
}
&.disabled,
.disabled > & {
color: var(--#{$prefix}pagination-disabled-color);
color: var(--pagination-disabled-color);
pointer-events: none;
background-color: var(--#{$prefix}pagination-disabled-bg);
border-color: var(--#{$prefix}pagination-disabled-border-color);
background-color: var(--pagination-disabled-bg);
border-color: var(--pagination-disabled-border-color);
}
}
@@ -80,19 +80,19 @@
@if $pagination-margin-start == calc(-1 * #{$pagination-border-width}) {
&:first-child {
.page-link {
@include border-start-radius(var(--#{$prefix}pagination-border-radius));
@include border-start-radius(var(--pagination-border-radius));
}
}
&:last-child {
.page-link {
@include border-end-radius(var(--#{$prefix}pagination-border-radius));
@include border-end-radius(var(--pagination-border-radius));
}
}
} @else {
// Add border-radius to all pageLinks in case they have left margin
.page-link {
@include border-radius(var(--#{$prefix}pagination-border-radius));
@include border-radius(var(--pagination-border-radius));
}
}
}
+64 -64
View File
@@ -2,47 +2,47 @@
.popover {
// scss-docs-start popover-css-vars
--#{$prefix}popover-zindex: #{$zindex-popover};
--#{$prefix}popover-max-width: #{$popover-max-width};
@include rfs($popover-font-size, --#{$prefix}popover-font-size);
--#{$prefix}popover-bg: #{$popover-bg};
--#{$prefix}popover-border-width: #{$popover-border-width};
--#{$prefix}popover-border-color: #{$popover-border-color};
--#{$prefix}popover-border-radius: #{$popover-border-radius};
--#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
--#{$prefix}popover-box-shadow: #{$popover-box-shadow};
--#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
--#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
@include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
--#{$prefix}popover-header-color: #{$popover-header-color};
--#{$prefix}popover-header-bg: #{$popover-header-bg};
--#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
--#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
--#{$prefix}popover-body-color: #{$popover-body-color};
--#{$prefix}popover-arrow-width: #{$popover-arrow-width};
--#{$prefix}popover-arrow-height: #{$popover-arrow-height};
--#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
--popover-zindex: #{$zindex-popover};
--popover-max-width: #{$popover-max-width};
@include rfs($popover-font-size, --popover-font-size);
--popover-bg: #{$popover-bg};
--popover-border-width: #{$popover-border-width};
--popover-border-color: #{$popover-border-color};
--popover-border-radius: #{$popover-border-radius};
--popover-inner-border-radius: #{$popover-inner-border-radius};
--popover-box-shadow: #{$popover-box-shadow};
--popover-header-padding-x: #{$popover-header-padding-x};
--popover-header-padding-y: #{$popover-header-padding-y};
@include rfs($popover-header-font-size, --popover-header-font-size);
--popover-header-color: #{$popover-header-color};
--popover-header-bg: #{$popover-header-bg};
--popover-body-padding-x: #{$popover-body-padding-x};
--popover-body-padding-y: #{$popover-body-padding-y};
--popover-body-color: #{$popover-body-color};
--popover-arrow-width: #{$popover-arrow-width};
--popover-arrow-height: #{$popover-arrow-height};
--popover-arrow-border: var(--popover-border-color);
// scss-docs-end popover-css-vars
z-index: var(--#{$prefix}popover-zindex);
z-index: var(--popover-zindex);
display: block;
max-width: var(--#{$prefix}popover-max-width);
max-width: var(--popover-max-width);
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
@include font-size(var(--#{$prefix}popover-font-size));
@include font-size(var(--popover-font-size));
// Allow breaking very long words so they don't overflow the popover's bounds
word-wrap: break-word;
background-color: var(--#{$prefix}popover-bg);
background-color: var(--popover-bg);
background-clip: padding-box;
border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
@include border-radius(var(--#{$prefix}popover-border-radius));
@include box-shadow(var(--#{$prefix}popover-box-shadow));
border: var(--popover-border-width) solid var(--popover-border-color);
@include border-radius(var(--popover-border-radius));
@include box-shadow(var(--popover-box-shadow));
.popover-arrow {
display: block;
width: var(--#{$prefix}popover-arrow-width);
height: var(--#{$prefix}popover-arrow-height);
width: var(--popover-arrow-width);
height: var(--popover-arrow-height);
&::before,
&::after {
@@ -58,21 +58,21 @@
.bs-popover-top {
> .popover-arrow {
bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width)); // stylelint-disable-line function-disallowed-list
&::before,
&::after {
border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
}
&::before {
bottom: 0;
border-top-color: var(--#{$prefix}popover-arrow-border);
border-top-color: var(--popover-arrow-border);
}
&::after {
bottom: var(--#{$prefix}popover-border-width);
border-top-color: var(--#{$prefix}popover-bg);
bottom: var(--popover-border-width);
border-top-color: var(--popover-bg);
}
}
}
@@ -80,23 +80,23 @@
/* rtl:begin:ignore */
.bs-popover-end {
> .popover-arrow {
left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
width: var(--#{$prefix}popover-arrow-height);
height: var(--#{$prefix}popover-arrow-width);
left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width)); // stylelint-disable-line function-disallowed-list
width: var(--popover-arrow-height);
height: var(--popover-arrow-width);
&::before,
&::after {
border-width: calc(var(--#{$prefix}popover-arrow-width) * 0.5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
}
&::before {
left: 0;
border-right-color: var(--#{$prefix}popover-arrow-border);
border-right-color: var(--popover-arrow-border);
}
&::after {
left: var(--#{$prefix}popover-border-width);
border-right-color: var(--#{$prefix}popover-bg);
left: var(--popover-border-width);
border-right-color: var(--popover-bg);
}
}
}
@@ -105,21 +105,21 @@
.bs-popover-bottom {
> .popover-arrow {
top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width)); // stylelint-disable-line function-disallowed-list
&::before,
&::after {
border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * 0.5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height); // stylelint-disable-line function-disallowed-list
}
&::before {
top: 0;
border-bottom-color: var(--#{$prefix}popover-arrow-border);
border-bottom-color: var(--popover-arrow-border);
}
&::after {
top: var(--#{$prefix}popover-border-width);
border-bottom-color: var(--#{$prefix}popover-bg);
top: var(--popover-border-width);
border-bottom-color: var(--popover-bg);
}
}
@@ -129,33 +129,33 @@
top: 0;
inset-inline-start: 50%;
display: block;
width: var(--#{$prefix}popover-arrow-width);
margin-inline-start: calc(-0.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list
width: var(--popover-arrow-width);
margin-inline-start: calc(-0.5 * var(--popover-arrow-width)); // stylelint-disable-line function-disallowed-list
content: '';
border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);
border-bottom: var(--popover-border-width) solid var(--popover-header-bg);
}
}
/* rtl:begin:ignore */
.bs-popover-start {
> .popover-arrow {
right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
width: var(--#{$prefix}popover-arrow-height);
height: var(--#{$prefix}popover-arrow-width);
right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width)); // stylelint-disable-line function-disallowed-list
width: var(--popover-arrow-height);
height: var(--popover-arrow-width);
&::before,
&::after {
border-width: calc(var(--#{$prefix}popover-arrow-width) * 0.5) 0 calc(var(--#{$prefix}popover-arrow-width) * 0.5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height); // stylelint-disable-line function-disallowed-list
}
&::before {
right: 0;
border-left-color: var(--#{$prefix}popover-arrow-border);
border-left-color: var(--popover-arrow-border);
}
&::after {
right: var(--#{$prefix}popover-border-width);
border-left-color: var(--#{$prefix}popover-bg);
right: var(--popover-border-width);
border-left-color: var(--popover-bg);
}
}
}
@@ -179,13 +179,13 @@
// Offset the popover to account for the popover arrow
.popover-header {
padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);
padding: var(--popover-header-padding-y) var(--popover-header-padding-x);
margin-bottom: 0; // Reset the default from Reboot
@include font-size(var(--#{$prefix}popover-header-font-size));
color: var(--#{$prefix}popover-header-color);
background-color: var(--#{$prefix}popover-header-bg);
border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
@include border-top-radius(var(--#{$prefix}popover-inner-border-radius));
@include font-size(var(--popover-header-font-size));
color: var(--popover-header-color);
background-color: var(--popover-header-bg);
border-bottom: var(--popover-border-width) solid var(--popover-border-color);
@include border-top-radius(var(--popover-inner-border-radius));
&:empty {
display: none;
@@ -193,6 +193,6 @@
}
.popover-body {
padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
color: var(--#{$prefix}popover-body-color);
padding: var(--popover-body-padding-y) var(--popover-body-padding-x);
color: var(--popover-body-color);
}
+18 -18
View File
@@ -6,7 +6,7 @@
@if $enable-transitions {
@keyframes progress-bar-stripes {
0% {
background-position-x: var(--#{$prefix}progress-height);
background-position-x: var(--progress-height);
}
}
}
@@ -15,23 +15,23 @@
.progress,
.progress-stacked {
// scss-docs-start progress-css-vars
--#{$prefix}progress-height: #{$progress-height};
@include rfs($progress-font-size, --#{$prefix}progress-font-size);
--#{$prefix}progress-bg: #{$progress-bg};
--#{$prefix}progress-border-radius: #{$progress-border-radius};
--#{$prefix}progress-box-shadow: #{$progress-box-shadow};
--#{$prefix}progress-bar-color: #{$progress-bar-color};
--#{$prefix}progress-bar-bg: #{$progress-bar-bg};
--#{$prefix}progress-bar-transition: #{$progress-bar-transition};
--progress-height: #{$progress-height};
@include rfs($progress-font-size, --progress-font-size);
--progress-bg: #{$progress-bg};
--progress-border-radius: #{$progress-border-radius};
--progress-box-shadow: #{$progress-box-shadow};
--progress-bar-color: #{$progress-bar-color};
--progress-bar-bg: #{$progress-bar-bg};
--progress-bar-transition: #{$progress-bar-transition};
// scss-docs-end progress-css-vars
display: flex;
height: var(--#{$prefix}progress-height);
height: var(--progress-height);
overflow: hidden; // force rounded corners by cropping it
@include font-size(var(--#{$prefix}progress-font-size));
background-color: var(--#{$prefix}progress-bg);
@include border-radius(var(--#{$prefix}progress-border-radius));
@include box-shadow(var(--#{$prefix}progress-box-shadow));
@include font-size(var(--progress-font-size));
background-color: var(--progress-bg);
@include border-radius(var(--progress-border-radius));
@include box-shadow(var(--progress-box-shadow));
}
.progress-bar {
@@ -39,16 +39,16 @@
flex-direction: column;
justify-content: center;
overflow: hidden;
color: var(--#{$prefix}progress-bar-color);
color: var(--progress-bar-color);
text-align: center;
white-space: nowrap;
background-color: var(--#{$prefix}progress-bar-bg);
@include transition(var(--#{$prefix}progress-bar-transition));
background-color: var(--progress-bar-bg);
@include transition(var(--progress-bar-transition));
}
.progress-bar-striped {
@include gradient-striped();
background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
background-size: var(--progress-height) var(--progress-height);
}
.progress-stacked > .progress {
+14 -14
View File
@@ -26,7 +26,7 @@
:root {
@if $font-size-root != null {
@include font-size(var(--#{$prefix}root-font-size));
@include font-size(var(--root-font-size));
}
@if $enable-smooth-scroll {
@@ -46,13 +46,13 @@
// scss-docs-start reboot-body-rules
body {
margin: 0; // 1
font-family: var(--#{$prefix}body-font-family);
@include font-size(var(--#{$prefix}body-font-size));
font-weight: var(--#{$prefix}body-font-weight);
line-height: var(--#{$prefix}body-line-height);
color: var(--#{$prefix}body-color);
text-align: var(--#{$prefix}body-text-align);
background-color: var(--#{$prefix}body-bg); // 2
font-family: var(--body-font-family);
@include font-size(var(--body-font-size));
font-weight: var(--body-font-weight);
line-height: var(--body-line-height);
color: var(--body-color);
text-align: var(--body-text-align);
background-color: var(--body-bg); // 2
-webkit-text-size-adjust: 100%; // 3
-webkit-tap-highlight-color: rgba($black, 0); // 4
}
@@ -83,7 +83,7 @@ hr {
font-style: $headings-font-style;
font-weight: $headings-font-weight;
line-height: $headings-line-height;
color: var(--#{$prefix}heading-color);
color: var(--heading-color);
}
h1 {
@@ -205,8 +205,8 @@ small {
mark {
padding: $mark-padding;
color: var(--#{$prefix}highlight-color);
background-color: var(--#{$prefix}highlight-bg);
color: var(--highlight-color);
background-color: var(--highlight-bg);
}
// Sub and Sup
@@ -232,11 +232,11 @@ sup {
// Links
a {
color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));
color: rgba(var(--link-color-rgb), var(--link-opacity, 1));
text-decoration: $link-decoration;
&:hover {
--#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);
--link-color-rgb: var(--link-hover-color-rgb);
text-decoration: $link-hover-decoration;
}
}
@@ -286,7 +286,7 @@ pre {
code {
@include font-size($code-font-size);
color: var(--#{$prefix}code-color);
color: var(--code-color);
word-wrap: break-word;
// Streamline the style when inside anchors to avoid broken underline and more
+77 -77
View File
@@ -13,144 +13,144 @@
// Generate palettes for full colors, grays, and theme colors.
@each $color, $value in $colors {
--#{$prefix}#{$color}: #{$value};
--#{$color}: #{$value};
}
@each $color, $value in $grays {
--#{$prefix}gray-#{$color}: #{$value};
--gray-#{$color}: #{$value};
}
@each $color, $value in $theme-colors {
--#{$prefix}#{$color}: #{$value};
--#{$color}: #{$value};
}
@each $color, $value in $theme-colors-rgb {
--#{$prefix}#{$color}-rgb: #{$value};
--#{$color}-rgb: #{$value};
}
// $theme-colors-*-dark maps are only populated when $enable-dark-mode is true (see _maps.scss)
@if $enable-dark-mode {
@each $color, $value in $theme-colors-text {
--#{$prefix}#{$color}-text-emphasis: light-dark(#{$value}, #{map.get($theme-colors-text-dark, $color)});
--#{$color}-text-emphasis: light-dark(#{$value}, #{map.get($theme-colors-text-dark, $color)});
}
@each $color, $value in $theme-colors-bg-subtle {
--#{$prefix}#{$color}-bg-subtle: light-dark(#{$value}, #{map.get($theme-colors-bg-subtle-dark, $color)});
--#{$color}-bg-subtle: light-dark(#{$value}, #{map.get($theme-colors-bg-subtle-dark, $color)});
}
@each $color, $value in $theme-colors-border-subtle {
--#{$prefix}#{$color}-border-subtle: light-dark(#{$value}, #{map.get($theme-colors-border-subtle-dark, $color)});
--#{$color}-border-subtle: light-dark(#{$value}, #{map.get($theme-colors-border-subtle-dark, $color)});
}
} @else {
@each $color, $value in $theme-colors-text {
--#{$prefix}#{$color}-text-emphasis: #{$value};
--#{$color}-text-emphasis: #{$value};
}
@each $color, $value in $theme-colors-bg-subtle {
--#{$prefix}#{$color}-bg-subtle: #{$value};
--#{$color}-bg-subtle: #{$value};
}
@each $color, $value in $theme-colors-border-subtle {
--#{$prefix}#{$color}-border-subtle: #{$value};
--#{$color}-border-subtle: #{$value};
}
}
--#{$prefix}white-rgb: #{to-rgb($white)};
--#{$prefix}black-rgb: #{to-rgb($black)};
--white-rgb: #{to-rgb($white)};
--black-rgb: #{to-rgb($black)};
// Fonts
// Note: Use `inspect` for lists so that quoted items keep the quotes.
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
--#{$prefix}font-sans-serif: #{meta.inspect($font-family-sans-serif)};
--#{$prefix}font-monospace: #{meta.inspect($font-family-monospace)};
--#{$prefix}gradient: #{$gradient};
--font-sans-serif: #{meta.inspect($font-family-sans-serif)};
--font-monospace: #{meta.inspect($font-family-monospace)};
--gradient: #{$gradient};
// Root and body
// scss-docs-start root-body-variables
@if $font-size-root != null {
--#{$prefix}root-font-size: #{$font-size-root};
--root-font-size: #{$font-size-root};
}
--#{$prefix}body-font-family: #{meta.inspect($font-family-base)};
@include rfs($font-size-base, --#{$prefix}body-font-size);
--#{$prefix}body-font-weight: #{$font-weight-base};
--#{$prefix}body-line-height: #{$line-height-base};
--body-font-family: #{meta.inspect($font-family-base)};
@include rfs($font-size-base, --body-font-size);
--body-font-weight: #{$font-weight-base};
--body-line-height: #{$line-height-base};
@if $body-text-align != null {
--#{$prefix}body-text-align: #{$body-text-align};
--body-text-align: #{$body-text-align};
}
--#{$prefix}body-color: light-dark(#{$body-color}, #{$body-color-dark});
--#{$prefix}body-color-rgb: #{to-rgb($body-color)};
--#{$prefix}body-bg: light-dark(#{$body-bg}, #{$body-bg-dark});
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
--body-color: light-dark(#{$body-color}, #{$body-color-dark});
--body-color-rgb: #{to-rgb($body-color)};
--body-bg: light-dark(#{$body-bg}, #{$body-bg-dark});
--body-bg-rgb: #{to-rgb($body-bg)};
--#{$prefix}emphasis-color: light-dark(#{$body-emphasis-color}, #{$body-emphasis-color-dark});
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
--emphasis-color: light-dark(#{$body-emphasis-color}, #{$body-emphasis-color-dark});
--emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
--#{$prefix}secondary-color: light-dark(#{$body-secondary-color}, #{$body-secondary-color-dark});
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
--#{$prefix}secondary-bg: light-dark(#{$body-secondary-bg}, #{$body-secondary-bg-dark});
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
--secondary-color: light-dark(#{$body-secondary-color}, #{$body-secondary-color-dark});
--secondary-color-rgb: #{to-rgb($body-secondary-color)};
--secondary-bg: light-dark(#{$body-secondary-bg}, #{$body-secondary-bg-dark});
--secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
--#{$prefix}tertiary-color: light-dark(#{$body-tertiary-color}, #{$body-tertiary-color-dark});
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
--#{$prefix}tertiary-bg: light-dark(#{$body-tertiary-bg}, #{$body-tertiary-bg-dark});
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
--tertiary-color: light-dark(#{$body-tertiary-color}, #{$body-tertiary-color-dark});
--tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
--tertiary-bg: light-dark(#{$body-tertiary-bg}, #{$body-tertiary-bg-dark});
--tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
// scss-docs-end root-body-variables
// $headings-color is itself light-dark(gray-900, white); the dark-mode block below
// overrides it to `inherit`, which can't be expressed as a light-dark() branch.
--#{$prefix}heading-color: #{$headings-color};
--heading-color: #{$headings-color};
--#{$prefix}link-color: light-dark(#{$link-color}, #{$link-color-dark});
--#{$prefix}link-color-rgb: #{to-rgb($link-color)};
--#{$prefix}link-decoration: #{$link-decoration};
--link-color: light-dark(#{$link-color}, #{$link-color-dark});
--link-color-rgb: #{to-rgb($link-color)};
--link-decoration: #{$link-decoration};
--#{$prefix}link-hover-color: light-dark(#{$link-hover-color}, #{$link-hover-color-dark});
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
--link-hover-color: light-dark(#{$link-hover-color}, #{$link-hover-color-dark});
--link-hover-color-rgb: #{to-rgb($link-hover-color)};
@if $link-hover-decoration != null {
--#{$prefix}link-hover-decoration: #{$link-hover-decoration};
--link-hover-decoration: #{$link-hover-decoration};
}
// $code-color is itself light-dark(gray-600, gray-400); layout/_root.scss re-declares
// --code-color afterwards and is the one that actually wins in the compiled cascade.
--#{$prefix}code-color: #{$code-color};
--#{$prefix}highlight-color: light-dark(#{$mark-color}, #{$mark-color-dark});
--#{$prefix}highlight-bg: light-dark(#{$mark-bg}, #{$mark-bg-dark});
--code-color: #{$code-color};
--highlight-color: light-dark(#{$mark-color}, #{$mark-color-dark});
--highlight-bg: light-dark(#{$mark-bg}, #{$mark-bg-dark});
// scss-docs-start root-border-var
--#{$prefix}border-width: #{$border-width};
--#{$prefix}border-style: #{$border-style};
--#{$prefix}border-color: light-dark(#{$border-color}, #{$border-color-dark});
--#{$prefix}border-color-translucent: light-dark(#{$border-color-translucent}, #{$border-color-translucent-dark});
--border-width: #{$border-width};
--border-style: #{$border-style};
--border-color: light-dark(#{$border-color}, #{$border-color-dark});
--border-color-translucent: light-dark(#{$border-color-translucent}, #{$border-color-translucent-dark});
--#{$prefix}border-radius: #{$border-radius};
--#{$prefix}border-radius-sm: #{$border-radius-sm};
--#{$prefix}border-radius-lg: #{$border-radius-lg};
--#{$prefix}border-radius-xl: #{$border-radius-xl};
--#{$prefix}border-radius-xxl: #{$border-radius-xxl};
--#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency
--#{$prefix}border-radius-pill: #{$border-radius-pill};
--border-radius: #{$border-radius};
--border-radius-sm: #{$border-radius-sm};
--border-radius-lg: #{$border-radius-lg};
--border-radius-xl: #{$border-radius-xl};
--border-radius-xxl: #{$border-radius-xxl};
--border-radius-2xl: var(--border-radius-xxl); // Deprecated in v5.3.0 for consistency
--border-radius-pill: #{$border-radius-pill};
// scss-docs-end root-border-var
--#{$prefix}box-shadow: #{$box-shadow};
--#{$prefix}box-shadow-sm: #{$box-shadow-sm};
--#{$prefix}box-shadow-lg: #{$box-shadow-lg};
--#{$prefix}box-shadow-inset: #{$box-shadow-inset};
--box-shadow: #{$box-shadow};
--box-shadow-sm: #{$box-shadow-sm};
--box-shadow-lg: #{$box-shadow-lg};
--box-shadow-inset: #{$box-shadow-inset};
// Focus styles
// scss-docs-start root-focus-variables
--#{$prefix}focus-ring-width: #{$focus-ring-width};
--#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
--#{$prefix}focus-ring-color: #{$focus-ring-color};
--focus-ring-width: #{$focus-ring-width};
--focus-ring-opacity: #{$focus-ring-opacity};
--focus-ring-color: #{$focus-ring-color};
// scss-docs-end root-focus-variables
// scss-docs-start root-form-validation-variables
--#{$prefix}form-valid-color: light-dark(#{$form-valid-color}, #{$form-valid-color-dark});
--#{$prefix}form-valid-border-color: light-dark(#{$form-valid-border-color}, #{$form-valid-border-color-dark});
--#{$prefix}form-invalid-color: light-dark(#{$form-invalid-color}, #{$form-invalid-color-dark});
--#{$prefix}form-invalid-border-color: light-dark(#{$form-invalid-border-color}, #{$form-invalid-border-color-dark});
--form-valid-color: light-dark(#{$form-valid-color}, #{$form-valid-color-dark});
--form-valid-border-color: light-dark(#{$form-valid-border-color}, #{$form-valid-border-color-dark});
--form-invalid-color: light-dark(#{$form-invalid-color}, #{$form-invalid-color-dark});
--form-invalid-border-color: light-dark(#{$form-invalid-border-color}, #{$form-invalid-border-color-dark});
// scss-docs-end root-form-validation-variables
}
@@ -158,18 +158,18 @@
@include color-mode(dark, true) {
// scss-docs-start root-dark-mode-vars
// -rgb triplets and non-color overrides can't be expressed inside light-dark(), so they stay here.
--#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
--body-color-rgb: #{to-rgb($body-color-dark)};
--body-bg-rgb: #{to-rgb($body-bg-dark)};
--emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
--secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
--secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
--tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
--tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
--#{$prefix}heading-color: #{$headings-color-dark};
--heading-color: #{$headings-color-dark};
--#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
--link-color-rgb: #{to-rgb($link-color-dark)};
--link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
// scss-docs-end root-dark-mode-vars
}
}
+22 -22
View File
@@ -8,12 +8,12 @@
.spinner-border {
display: inline-block;
flex-shrink: 0;
width: var(--#{$prefix}spinner-width);
height: var(--#{$prefix}spinner-height);
vertical-align: var(--#{$prefix}spinner-vertical-align);
width: var(--spinner-width);
height: var(--spinner-height);
vertical-align: var(--spinner-vertical-align);
// stylelint-disable-next-line property-disallowed-list
border-radius: 50%;
animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
animation: var(--spinner-animation-speed) linear infinite var(--spinner-animation-name);
}
// scss-docs-start spinner-border-keyframes
@@ -26,23 +26,23 @@
.spinner-border {
// scss-docs-start spinner-border-css-vars
--#{$prefix}spinner-width: #{$spinner-width};
--#{$prefix}spinner-height: #{$spinner-height};
--#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
--#{$prefix}spinner-border-width: #{$spinner-border-width};
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
--#{$prefix}spinner-animation-name: spinner-border;
--spinner-width: #{$spinner-width};
--spinner-height: #{$spinner-height};
--spinner-vertical-align: #{$spinner-vertical-align};
--spinner-border-width: #{$spinner-border-width};
--spinner-animation-speed: #{$spinner-animation-speed};
--spinner-animation-name: spinner-border;
// scss-docs-end spinner-border-css-vars
border: var(--#{$prefix}spinner-border-width) solid currentcolor;
border: var(--spinner-border-width) solid currentcolor;
border-right-color: transparent;
}
.spinner-border-sm {
// scss-docs-start spinner-border-sm-css-vars
--#{$prefix}spinner-width: #{$spinner-width-sm};
--#{$prefix}spinner-height: #{$spinner-height-sm};
--#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
--spinner-width: #{$spinner-width-sm};
--spinner-height: #{$spinner-height-sm};
--spinner-border-width: #{$spinner-border-width-sm};
// scss-docs-end spinner-border-sm-css-vars
}
@@ -64,11 +64,11 @@
.spinner-grow {
// scss-docs-start spinner-grow-css-vars
--#{$prefix}spinner-width: #{$spinner-width};
--#{$prefix}spinner-height: #{$spinner-height};
--#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
--#{$prefix}spinner-animation-name: spinner-grow;
--spinner-width: #{$spinner-width};
--spinner-height: #{$spinner-height};
--spinner-vertical-align: #{$spinner-vertical-align};
--spinner-animation-speed: #{$spinner-animation-speed};
--spinner-animation-name: spinner-grow;
// scss-docs-end spinner-grow-css-vars
background-color: currentcolor;
@@ -76,15 +76,15 @@
}
.spinner-grow-sm {
--#{$prefix}spinner-width: #{$spinner-width-sm};
--#{$prefix}spinner-height: #{$spinner-height-sm};
--spinner-width: #{$spinner-width-sm};
--spinner-height: #{$spinner-height-sm};
}
@if $enable-reduced-motion {
@media (prefers-reduced-motion: reduce) {
.spinner-border,
.spinner-grow {
--#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
--spinner-animation-speed: #{$spinner-animation-speed * 2};
}
}
}
+26 -26
View File
@@ -8,26 +8,26 @@
.table {
// Reset needed for nesting tables
--#{$prefix}table-color-type: initial;
--#{$prefix}table-bg-type: initial;
--#{$prefix}table-color-state: initial;
--#{$prefix}table-bg-state: initial;
--table-color-type: initial;
--table-bg-type: initial;
--table-color-state: initial;
--table-bg-state: initial;
// End of reset
--#{$prefix}table-color: #{$table-color};
--#{$prefix}table-bg: #{$table-bg};
--#{$prefix}table-border-color: #{$table-border-color};
--#{$prefix}table-accent-bg: #{$table-accent-bg};
--#{$prefix}table-striped-color: #{$table-striped-color};
--#{$prefix}table-striped-bg: #{$table-striped-bg};
--#{$prefix}table-active-color: #{$table-active-color};
--#{$prefix}table-active-bg: #{$table-active-bg};
--#{$prefix}table-hover-color: #{$table-hover-color};
--#{$prefix}table-hover-bg: #{$table-hover-bg};
--table-color: #{$table-color};
--table-bg: #{$table-bg};
--table-border-color: #{$table-border-color};
--table-accent-bg: #{$table-accent-bg};
--table-striped-color: #{$table-striped-color};
--table-striped-bg: #{$table-striped-bg};
--table-active-color: #{$table-active-color};
--table-active-bg: #{$table-active-bg};
--table-hover-color: #{$table-hover-color};
--table-hover-bg: #{$table-hover-bg};
width: 100%;
margin-bottom: $spacer;
vertical-align: $table-cell-vertical-align;
border-color: var(--#{$prefix}table-border-color);
border-color: var(--table-border-color);
// Target th & td
// We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
@@ -37,10 +37,10 @@
> :not(caption) > * > * {
padding: $table-cell-padding-y $table-cell-padding-x;
// Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb
color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));
background-color: var(--#{$prefix}table-bg);
color: var(--table-color-state, var(--table-color-type, var(--table-color)));
background-color: var(--table-bg);
border-bottom-width: $table-border-width;
box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));
box-shadow: inset 0 0 0 9999px var(--table-bg-state, var(--table-bg-type, var(--table-accent-bg)));
}
> tbody {
@@ -113,16 +113,16 @@
// For rows
.table-striped {
> tbody > tr:nth-of-type(#{$table-striped-order}) > * {
--#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
--#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
--table-color-type: var(--table-striped-color);
--table-bg-type: var(--table-striped-bg);
}
}
// For columns
.table-striped-columns {
> :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
--#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
--#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
--table-color-type: var(--table-striped-color);
--table-bg-type: var(--table-striped-bg);
}
}
@@ -131,8 +131,8 @@
// The `.table-active` class can be added to highlight rows or cells
.table-active {
--#{$prefix}table-color-state: var(--#{$prefix}table-active-color);
--#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);
--table-color-state: var(--table-active-color);
--table-bg-state: var(--table-active-bg);
}
// Hover effect
@@ -141,8 +141,8 @@
.table-hover {
> tbody > tr:hover > * {
--#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);
--#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);
--table-color-state: var(--table-hover-color);
--table-bg-state: var(--table-hover-bg);
}
}
+33 -33
View File
@@ -2,33 +2,33 @@
.toast {
// scss-docs-start toast-css-vars
--#{$prefix}toast-zindex: #{$zindex-toast};
--#{$prefix}toast-padding-x: #{$toast-padding-x};
--#{$prefix}toast-padding-y: #{$toast-padding-y};
--#{$prefix}toast-spacing: #{$toast-spacing};
--#{$prefix}toast-max-width: #{$toast-max-width};
@include rfs($toast-font-size, --#{$prefix}toast-font-size);
--#{$prefix}toast-color: #{$toast-color};
--#{$prefix}toast-bg: #{$toast-background-color};
--#{$prefix}toast-border-width: #{$toast-border-width};
--#{$prefix}toast-border-color: #{$toast-border-color};
--#{$prefix}toast-border-radius: #{$toast-border-radius};
--#{$prefix}toast-box-shadow: #{$toast-box-shadow};
--#{$prefix}toast-header-color: #{$toast-header-color};
--#{$prefix}toast-header-bg: #{$toast-header-background-color};
--#{$prefix}toast-header-border-color: #{$toast-header-border-color};
--toast-zindex: #{$zindex-toast};
--toast-padding-x: #{$toast-padding-x};
--toast-padding-y: #{$toast-padding-y};
--toast-spacing: #{$toast-spacing};
--toast-max-width: #{$toast-max-width};
@include rfs($toast-font-size, --toast-font-size);
--toast-color: #{$toast-color};
--toast-bg: #{$toast-background-color};
--toast-border-width: #{$toast-border-width};
--toast-border-color: #{$toast-border-color};
--toast-border-radius: #{$toast-border-radius};
--toast-box-shadow: #{$toast-box-shadow};
--toast-header-color: #{$toast-header-color};
--toast-header-bg: #{$toast-header-background-color};
--toast-header-border-color: #{$toast-header-border-color};
// scss-docs-end toast-css-vars
width: var(--#{$prefix}toast-max-width);
width: var(--toast-max-width);
max-width: 100%;
@include font-size(var(--#{$prefix}toast-font-size));
color: var(--#{$prefix}toast-color);
@include font-size(var(--toast-font-size));
color: var(--toast-color);
pointer-events: auto;
background-color: var(--#{$prefix}toast-bg);
background-color: var(--toast-bg);
background-clip: padding-box;
border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
box-shadow: var(--#{$prefix}toast-box-shadow);
@include border-radius(var(--#{$prefix}toast-border-radius));
border: var(--toast-border-width) solid var(--toast-border-color);
box-shadow: var(--toast-box-shadow);
@include border-radius(var(--toast-border-radius));
&.showing {
opacity: 0;
@@ -40,36 +40,36 @@
}
.toast-container {
--#{$prefix}toast-zindex: #{$zindex-toast};
--toast-zindex: #{$zindex-toast};
position: absolute;
z-index: var(--#{$prefix}toast-zindex);
z-index: var(--toast-zindex);
width: max-content;
max-width: 100%;
pointer-events: none;
> :not(:last-child) {
margin-bottom: var(--#{$prefix}toast-spacing);
margin-bottom: var(--toast-spacing);
}
}
.toast-header {
display: flex;
align-items: center;
padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
color: var(--#{$prefix}toast-header-color);
background-color: var(--#{$prefix}toast-header-bg);
padding: var(--toast-padding-y) var(--toast-padding-x);
color: var(--toast-header-color);
background-color: var(--toast-header-bg);
background-clip: padding-box;
border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
@include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
border-bottom: var(--toast-border-width) solid var(--toast-header-border-color);
@include border-top-radius(calc(var(--toast-border-radius) - var(--toast-border-width)));
.btn-close {
margin-inline-end: calc(-0.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: var(--#{$prefix}toast-padding-x);
margin-inline-end: calc(-0.5 * var(--toast-padding-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: var(--toast-padding-x);
}
}
.toast-body {
padding: var(--#{$prefix}toast-padding-x);
padding: var(--toast-padding-x);
word-wrap: break-word;
}
+39 -39
View File
@@ -3,40 +3,40 @@
.tooltip {
// scss-docs-start tooltip-css-vars
--#{$prefix}tooltip-zindex: #{$zindex-tooltip};
--#{$prefix}tooltip-max-width: #{$tooltip-max-width};
--#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
--#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
--#{$prefix}tooltip-margin: #{$tooltip-margin};
@include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
--#{$prefix}tooltip-color: #{$tooltip-color};
--#{$prefix}tooltip-bg: #{$tooltip-bg};
--#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
--#{$prefix}tooltip-opacity: #{$tooltip-opacity};
--#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
--#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
--tooltip-zindex: #{$zindex-tooltip};
--tooltip-max-width: #{$tooltip-max-width};
--tooltip-padding-x: #{$tooltip-padding-x};
--tooltip-padding-y: #{$tooltip-padding-y};
--tooltip-margin: #{$tooltip-margin};
@include rfs($tooltip-font-size, --tooltip-font-size);
--tooltip-color: #{$tooltip-color};
--tooltip-bg: #{$tooltip-bg};
--tooltip-border-radius: #{$tooltip-border-radius};
--tooltip-opacity: #{$tooltip-opacity};
--tooltip-arrow-width: #{$tooltip-arrow-width};
--tooltip-arrow-height: #{$tooltip-arrow-height};
// scss-docs-end tooltip-css-vars
z-index: var(--#{$prefix}tooltip-zindex);
z-index: var(--tooltip-zindex);
display: block;
margin: var(--#{$prefix}tooltip-margin);
margin: var(--tooltip-margin);
@include deprecate('`$tooltip-margin`', 'v5', 'v5.x', true);
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
@include font-size(var(--#{$prefix}tooltip-font-size));
@include font-size(var(--tooltip-font-size));
// Allow breaking very long words so they don't overflow the tooltip's bounds
word-wrap: break-word;
opacity: 0;
&.show {
opacity: var(--#{$prefix}tooltip-opacity);
opacity: var(--tooltip-opacity);
}
.tooltip-arrow {
display: block;
width: var(--#{$prefix}tooltip-arrow-width);
height: var(--#{$prefix}tooltip-arrow-height);
width: var(--tooltip-arrow-width);
height: var(--tooltip-arrow-height);
&::before {
position: absolute;
@@ -48,50 +48,50 @@
}
.bs-tooltip-top .tooltip-arrow {
bottom: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
bottom: calc(-1 * var(--tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
&::before {
top: -1px;
border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-top-color: var(--#{$prefix}tooltip-bg);
border-width: var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-top-color: var(--tooltip-bg);
}
}
/* rtl:begin:ignore */
.bs-tooltip-end .tooltip-arrow {
left: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
width: var(--#{$prefix}tooltip-arrow-height);
height: var(--#{$prefix}tooltip-arrow-width);
left: calc(-1 * var(--tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
width: var(--tooltip-arrow-height);
height: var(--tooltip-arrow-width);
&::before {
right: -1px;
border-width: calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-right-color: var(--#{$prefix}tooltip-bg);
border-width: calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height) calc(var(--tooltip-arrow-width) * 0.5) 0; // stylelint-disable-line function-disallowed-list
border-right-color: var(--tooltip-bg);
}
}
/* rtl:end:ignore */
.bs-tooltip-bottom .tooltip-arrow {
top: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
top: calc(-1 * var(--tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
&::before {
bottom: -1px;
border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
border-bottom-color: var(--#{$prefix}tooltip-bg);
border-width: 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
border-bottom-color: var(--tooltip-bg);
}
}
/* rtl:begin:ignore */
.bs-tooltip-start .tooltip-arrow {
right: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
width: var(--#{$prefix}tooltip-arrow-height);
height: var(--#{$prefix}tooltip-arrow-width);
right: calc(-1 * var(--tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
width: var(--tooltip-arrow-height);
height: var(--tooltip-arrow-width);
&::before {
left: -1px;
border-width: calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * 0.5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
border-left-color: var(--#{$prefix}tooltip-bg);
border-width: calc(var(--tooltip-arrow-width) * 0.5) 0 calc(var(--tooltip-arrow-width) * 0.5) var(--tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
border-left-color: var(--tooltip-bg);
}
}
@@ -114,10 +114,10 @@
// Wrapper for the tooltip content
.tooltip-inner {
max-width: var(--#{$prefix}tooltip-max-width);
padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
color: var(--#{$prefix}tooltip-color);
max-width: var(--tooltip-max-width);
padding: var(--tooltip-padding-y) var(--tooltip-padding-x);
color: var(--tooltip-color);
text-align: center;
background-color: var(--#{$prefix}tooltip-bg);
@include border-radius(var(--#{$prefix}tooltip-border-radius));
background-color: var(--tooltip-bg);
@include border-radius(var(--tooltip-border-radius));
}
@@ -20,7 +20,7 @@
height: 100%; // allow textareas
padding: $form-floating-padding-y $form-floating-padding-x;
overflow: hidden;
color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
color: rgba(var(--body-color-rgb), #{$form-floating-label-opacity});
text-align: start;
text-overflow: ellipsis;
white-space: nowrap;
+15 -15
View File
@@ -29,7 +29,7 @@
}
.form-check-input {
--#{$prefix}form-check-bg: #{$form-check-input-bg};
--form-check-bg: #{$form-check-input-bg};
flex-shrink: 0;
width: $form-check-input-width;
@@ -37,8 +37,8 @@
margin-top: ($line-height-base - $form-check-input-width) * 0.5; // line-height minus check height
vertical-align: top;
appearance: none;
background-color: var(--#{$prefix}form-check-bg);
background-image: var(--#{$prefix}form-check-bg-image);
background-color: var(--form-check-bg);
background-image: var(--form-check-bg-image);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
@@ -71,17 +71,17 @@
&[type='checkbox'] {
@if $enable-gradients {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)}, var(--#{$prefix}gradient);
--form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)}, var(--gradient);
} @else {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)};
--form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)};
}
}
&[type='radio'] {
@if $enable-gradients {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}, var(--#{$prefix}gradient);
--form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}, var(--gradient);
} @else {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)};
--form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)};
}
}
}
@@ -91,9 +91,9 @@
border-color: $form-check-input-indeterminate-border-color;
@if $enable-gradients {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}, var(--#{$prefix}gradient);
--form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}, var(--gradient);
} @else {
--#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)};
--form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)};
}
}
@@ -127,26 +127,26 @@
padding-inline-start: $form-switch-padding-start;
.form-check-input {
--#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)};
--form-switch-bg: #{escape-svg($form-switch-bg-image)};
width: $form-switch-width;
margin-inline-start: $form-switch-padding-start * -1;
background-image: var(--#{$prefix}form-switch-bg);
background-image: var(--form-switch-bg);
background-position: left center;
@include border-radius($form-switch-border-radius, 0);
@include transition($form-switch-transition);
&:focus {
--#{$prefix}form-switch-bg: #{escape-svg($form-switch-focus-bg-image)};
--form-switch-bg: #{escape-svg($form-switch-focus-bg-image)};
}
&:checked {
background-position: $form-switch-checked-bg-position;
@if $enable-gradients {
--#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)}, var(--#{$prefix}gradient);
--form-switch-bg: #{escape-svg($form-switch-checked-bg-image)}, var(--gradient);
} @else {
--#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)};
--form-switch-bg: #{escape-svg($form-switch-checked-bg-image)};
}
}
}
@@ -185,7 +185,7 @@
@if $enable-dark-mode {
@include color-mode(dark) {
.form-switch .form-check-input:not(:checked):not(:focus) {
--#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image-dark)};
--form-switch-bg: #{escape-svg($form-switch-bg-image-dark)};
}
}
}
+3 -3
View File
@@ -6,7 +6,7 @@
@use '../../config' as *;
.form-select {
--#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator)};
--form-select-bg-img: #{escape-svg($form-select-indicator)};
display: block;
width: 100%;
@@ -18,7 +18,7 @@
color: $form-select-color;
appearance: none;
background-color: $form-select-bg;
background-image: var(--#{$prefix}form-select-bg-img), var(--#{$prefix}form-select-bg-icon, none);
background-image: var(--form-select-bg-img), var(--form-select-bg-icon, none);
background-repeat: no-repeat;
background-position: $form-select-bg-position;
background-size: $form-select-bg-size;
@@ -76,7 +76,7 @@
@if $enable-dark-mode {
@include color-mode(dark) {
.form-select {
--#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator-dark)};
--form-select-bg-img: #{escape-svg($form-select-indicator-dark)};
}
}
}
+3 -3
View File
@@ -117,7 +117,7 @@
&::before {
display: block;
padding-top: var(--#{$prefix}aspect-ratio);
padding-top: var(--aspect-ratio);
content: '';
}
@@ -132,7 +132,7 @@
@each $key, $ratio in $aspect-ratios {
.ratio-#{$key} {
--#{$prefix}aspect-ratio: #{$ratio};
--aspect-ratio: #{$ratio};
}
}
@@ -142,5 +142,5 @@
.focus-ring:focus {
outline: 0;
// By default, there is no `--bs-focus-ring-x`, `--bs-focus-ring-y`, or `--bs-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
box-shadow: var(--focus-ring-x, 0) var(--focus-ring-y, 0) var(--focus-ring-blur, 0) var(--focus-ring-width) var(--focus-ring-color);
}
+10 -10
View File
@@ -50,29 +50,29 @@ body {
// Boxed container
//
.layout-boxed {
--#{$prefix}theme-boxed-border-radius: 0;
--#{$prefix}theme-boxed-width: #{map.get($container-max-widths, xxl)};
--theme-boxed-border-radius: 0;
--theme-boxed-width: #{map.get($container-max-widths, xxl)};
@include media-breakpoint-up(md) {
background: $dark linear-gradient(to right, rgba(#fff, 0.1), transparent) fixed;
padding: 1rem;
--#{$prefix}theme-boxed-border-radius: #{$border-radius};
--theme-boxed-border-radius: #{$border-radius};
}
.page {
margin: 0 auto;
max-width: var(--#{$prefix}theme-boxed-width);
@include border-radius(var(--#{$prefix}theme-boxed-border-radius));
color: var(--#{$prefix}body-color);
max-width: var(--theme-boxed-width);
@include border-radius(var(--theme-boxed-border-radius));
color: var(--body-color);
@include media-breakpoint-up(md) {
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
background: var(--#{$prefix}body-bg);
border: var(--border-width) var(--border-style) var(--border-color);
background: var(--body-bg);
}
> .navbar:first-child {
border-start-start-radius: var(--#{$prefix}theme-boxed-border-radius);
border-start-end-radius: var(--#{$prefix}theme-boxed-border-radius);
border-start-start-radius: var(--theme-boxed-border-radius);
border-start-end-radius: var(--theme-boxed-border-radius);
}
}
}
+1 -1
View File
@@ -36,7 +36,7 @@
// Everything else here has been folded into light-dark() declarations in
// layout/_root.scss; only genuinely dark-only, non-paired values remain.
--#{$prefix}btn-color: #{$darken-dark};
--btn-color: #{$darken-dark};
.navbar-brand-autodark {
.navbar-brand-image {
+1 -1
View File
@@ -1,7 +1,7 @@
@use '../config' as *;
.footer {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) $footer-border-color;
border-top: var(--border-width) var(--border-style) $footer-border-color;
background-color: $footer-bg;
padding: $footer-padding-y 0;
color: $footer-color;
+23 -23
View File
@@ -44,14 +44,14 @@
color: inherit;
&.disabled {
color: var(--#{$prefix}disabled-color);
color: var(--disabled-color);
pointer-events: none;
background-color: transparent;
}
&.active,
&:active {
background: var(--#{$prefix}navbar-active-bg);
background: var(--navbar-active-bg);
}
}
@@ -82,17 +82,17 @@
Navbar
*/
.navbar {
--#{$prefix}navbar-bg: var(--#{$prefix}bg-surface);
--#{$prefix}navbar-border-width: #{$navbar-border-width};
--#{$prefix}navbar-active-border-color: #{$navbar-active-border-color};
--#{$prefix}navbar-active-bg: #{$navbar-light-active-bg};
--#{$prefix}navbar-border-color: #{$navbar-border-color};
--#{$prefix}navbar-hover-color: #{$navbar-hover-color};
--navbar-bg: var(--bg-surface);
--navbar-border-width: #{$navbar-border-width};
--navbar-active-border-color: #{$navbar-active-border-color};
--navbar-active-bg: #{$navbar-light-active-bg};
--navbar-border-color: #{$navbar-border-color};
--navbar-hover-color: #{$navbar-hover-color};
align-items: stretch;
min-height: $navbar-height;
box-shadow: inset 0 calc(-1 * var(--#{$prefix}navbar-border-width)) 0 0 var(--#{$prefix}navbar-border-color);
background: var(--#{$prefix}navbar-bg);
color: var(--#{$prefix}navbar-color);
box-shadow: inset 0 calc(-1 * var(--navbar-border-width)) 0 0 var(--navbar-border-color);
background: var(--navbar-bg);
color: var(--navbar-color);
.navbar-collapse & {
flex-grow: 1;
@@ -108,7 +108,7 @@ Navbar
}
.navbar-nav {
--#{$prefix}nav-link-icon-margin-end: #{$nav-link-icon-margin-end};
--nav-link-icon-margin-end: #{$nav-link-icon-margin-end};
min-height: subtract($navbar-height, 2 * $navbar-padding-y);
.nav-link {
@@ -116,14 +116,14 @@ Navbar
min-width: 2.5rem;
min-height: 2.5rem;
justify-content: center;
@include border-radius(var(--#{$prefix}border-radius));
@include border-radius(var(--border-radius));
.badge {
position: absolute;
top: 0.5rem;
inset-inline-end: 0.5rem;
/*rtl:ignore*/
transform: translate(calc(var(--#{$prefix}dir) * 50%), -50%);
transform: translate(calc(var(--dir) * 50%), -50%);
}
}
}
@@ -149,7 +149,7 @@ Navbar
position: relative;
.nav-link {
color: var(--#{$prefix}navbar-active-color);
color: var(--navbar-active-color);
}
&:after {
@@ -158,17 +158,17 @@ Navbar
inset-inline-start: 0;
inset-inline-end: 0;
bottom: -0.25rem;
border: 0 var(--#{$prefix}border-style) var(--#{$prefix}navbar-active-border-color);
border: 0 var(--border-style) var(--navbar-active-border-color);
border-bottom-width: 2px;
}
}
&.navbar-vertical {
box-shadow: inset calc(-1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
box-shadow: inset calc(-1 * var(--navbar-border-width)) 0 0 0 var(--navbar-border-color);
&.navbar-right,
&.navbar-end {
box-shadow: inset calc(1 * var(--#{$prefix}navbar-border-width)) 0 0 0 var(--#{$prefix}navbar-border-color);
box-shadow: inset calc(1 * var(--navbar-border-width)) 0 0 0 var(--navbar-border-color);
}
}
@@ -226,7 +226,7 @@ Navbar toggler
height: 2px;
width: 1.25em;
background: currentColor;
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
position: relative;
@include transition(top $navbar-toggler-animation-time $navbar-toggler-animation-time, bottom $navbar-toggler-animation-time $navbar-toggler-animation-time, transform $navbar-toggler-animation-time, opacity 0s $navbar-toggler-animation-time);
@@ -271,7 +271,7 @@ Navbar toggler
Navbar transparent
*/
.navbar-transparent {
--#{$prefix}navbar-border-color: transparent !important;
--navbar-border-color: transparent !important;
background: transparent !important;
}
@@ -279,9 +279,9 @@ Navbar transparent
Navbar nav
*/
.navbar-nav {
--#{$prefix}nav-link-hover-bg: #{$navbar-nav-link-hover-bg};
--#{$prefix}nav-link-icon-color: #{$nav-link-icon-color};
--#{$prefix}nav-link-hover-icon-color: #{$nav-link-hover-icon-color};
--nav-link-hover-bg: #{$navbar-nav-link-hover-bg};
--nav-link-icon-color: #{$nav-link-icon-color};
--nav-link-hover-icon-color: #{$nav-link-hover-icon-color};
margin: 0;
padding: 0;
align-items: stretch;
+21 -21
View File
@@ -7,12 +7,12 @@
inset-inline-start: 0;
z-index: $zindex-tooltip;
padding: 0.5rem 1rem;
background: var(--#{$prefix}primary);
color: var(--#{$prefix}primary-fg, #fff);
background: var(--primary);
color: var(--primary-fg, #fff);
text-decoration: none;
&:focus-visible {
outline: 2px solid var(--#{$prefix}primary);
outline: 2px solid var(--primary);
outline-offset: 2px;
}
}
@@ -47,17 +47,17 @@
// Content body
.page-body {
margin-top: var(--#{$prefix}page-padding-y);
margin-bottom: var(--#{$prefix}page-padding-y);
margin-top: var(--page-padding-y);
margin-bottom: var(--page-padding-y);
display: flex;
flex-direction: column;
flex: 1;
}
.page-body-card {
background: var(--#{$prefix}bg-surface);
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) $card-border-color;
padding: var(--#{$prefix}page-padding) 0;
background: var(--bg-surface);
border-top: var(--border-width) var(--border-style) $card-border-color;
padding: var(--page-padding) 0;
margin-bottom: 0;
flex: 1;
@@ -102,15 +102,15 @@
max-width: 100%;
.page-wrapper & {
margin: var(--#{$prefix}page-padding-y) 0 0;
margin: var(--page-padding-y) 0 0;
}
}
.page-header-border {
border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
padding: var(--#{$prefix}page-padding-y) 0;
border-bottom: var(--border-width) var(--border-style) var(--border-color);
padding: var(--page-padding-y) 0;
margin: 0 !important;
background-color: var(--#{$prefix}bg-surface);
background-color: var(--bg-surface);
}
.page-pretitle {
@@ -140,29 +140,29 @@
.page-subtitle {
margin-top: 0.25rem;
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
//
// Page cover
//
.page-cover {
--#{$prefix}page-cover-blur: 20px;
--#{$prefix}page-cover-padding: 1rem;
--page-cover-blur: 20px;
--page-cover-padding: 1rem;
min-height: 6rem;
padding: var(--#{$prefix}page-cover-padding) 0;
padding: var(--page-cover-padding) 0;
position: relative;
overflow: hidden;
}
.page-cover-img {
position: absolute;
top: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
inset-inline-start: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
inset-inline-end: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
bottom: calc(-2 * var(--#{$prefix}page-cover-blur, 0));
top: calc(-2 * var(--page-cover-blur, 0));
inset-inline-start: calc(-2 * var(--page-cover-blur, 0));
inset-inline-end: calc(-2 * var(--page-cover-blur, 0));
bottom: calc(-2 * var(--page-cover-blur, 0));
pointer-events: none;
filter: blur(var(--#{$prefix}page-cover-blur));
filter: blur(var(--page-cover-blur));
object-fit: cover;
background-size: cover;
background-position: center;
+37 -37
View File
@@ -11,59 +11,59 @@
[data-bs-theme='light'],
[data-theme='light'] {
color-scheme: light;
--#{$prefix}spacer: var(--#{$prefix}spacer-2);
--spacer: var(--spacer-2);
--#{$prefix}bg-surface: light-dark(var(--#{$prefix}bg-surface-primary), var(--#{$prefix}gray-800));
--#{$prefix}bg-surface-primary: var(--#{$prefix}white);
--#{$prefix}bg-surface-secondary: light-dark(var(--#{$prefix}gray-50), var(--#{$prefix}gray-900));
--#{$prefix}bg-surface-tertiary: light-dark(var(--#{$prefix}gray-50), var(--#{$prefix}gray-800));
--#{$prefix}bg-surface-dark: var(--#{$prefix}gray-900);
--#{$prefix}bg-surface-inverted: light-dark(var(--#{$prefix}gray-900), var(--#{$prefix}gray-100));
--#{$prefix}bg-forms: light-dark(var(--#{$prefix}bg-surface), var(--#{$prefix}gray-900));
--#{$prefix}bg-forms-disabled: light-dark(var(--#{$prefix}bg-surface-secondary), var(--#{$prefix}gray-800));
--bg-surface: light-dark(var(--bg-surface-primary), var(--gray-800));
--bg-surface-primary: var(--white);
--bg-surface-secondary: light-dark(var(--gray-50), var(--gray-900));
--bg-surface-tertiary: light-dark(var(--gray-50), var(--gray-800));
--bg-surface-dark: var(--gray-900);
--bg-surface-inverted: light-dark(var(--gray-900), var(--gray-100));
--bg-forms: light-dark(var(--bg-surface), var(--gray-900));
--bg-forms-disabled: light-dark(var(--bg-surface-secondary), var(--gray-800));
--#{$prefix}text-inverted: light-dark(var(--#{$prefix}gray-100), var(--#{$prefix}gray-800));
--text-inverted: light-dark(var(--gray-100), var(--gray-800));
--#{$prefix}body-color: light-dark(var(--#{$prefix}gray-700), var(--#{$prefix}gray-200));
--#{$prefix}body-bg: light-dark(var(--#{$prefix}bg-surface-secondary), var(--#{$prefix}gray-900));
--body-color: light-dark(var(--gray-700), var(--gray-200));
--body-bg: light-dark(var(--bg-surface-secondary), var(--gray-900));
// Same color-mix() expression in both modes no light-dark() needed.
--#{$prefix}link-color: var(--#{$prefix}primary);
--#{$prefix}link-hover-color: color-mix(in srgb, var(--#{$prefix}primary), #000 20%);
--link-color: var(--primary);
--link-hover-color: color-mix(in srgb, var(--primary), #000 20%);
--#{$prefix}secondary: light-dark(var(--#{$prefix}gray-500), var(--#{$prefix}gray-400));
--#{$prefix}tertiary: var(--#{$prefix}gray-400);
--secondary: light-dark(var(--gray-500), var(--gray-400));
--tertiary: var(--gray-400);
--#{$prefix}border-color: light-dark(#{$border-color}, var(--#{$prefix}gray-700));
--#{$prefix}border-color-translucent: light-dark(#{$border-color-translucent}, var(--#{$prefix}dark-mode-border-color-translucent));
--#{$prefix}border-dark-color: light-dark(#{$border-dark-color}, var(--#{$prefix}dark-mode-border-dark-color));
--#{$prefix}border-dark-color-translucent: #{$border-dark-color-translucent};
--#{$prefix}border-light-color: #{$border-light-color};
--#{$prefix}border-light-color-translucent: #{$border-light-color-translucent};
--#{$prefix}border-active-color: light-dark(#{$border-active-color}, var(--#{$prefix}dark-mode-border-active-color));
--#{$prefix}border-active-color-translucent: #{$border-active-color-translucent};
--border-color: light-dark(#{$border-color}, var(--gray-700));
--border-color-translucent: light-dark(#{$border-color-translucent}, var(--dark-mode-border-color-translucent));
--border-dark-color: light-dark(#{$border-dark-color}, var(--dark-mode-border-dark-color));
--border-dark-color-translucent: #{$border-dark-color-translucent};
--border-light-color: #{$border-light-color};
--border-light-color-translucent: #{$border-light-color-translucent};
--border-active-color: light-dark(#{$border-active-color}, var(--dark-mode-border-active-color));
--border-active-color-translucent: #{$border-active-color-translucent};
--#{$prefix}icon-color: #{$icon-color};
--icon-color: #{$icon-color};
--#{$prefix}active-bg: light-dark(#{$active-bg}, #{$lighten-dark});
--active-bg: light-dark(#{$active-bg}, #{$lighten-dark});
--#{$prefix}disabled-bg: #{$disabled-bg};
--disabled-bg: #{$disabled-bg};
// $disabled-color already derives from var(--body-color) at compute time, so it
// adapts to dark mode on its own no light-dark() or dark-block override needed.
--#{$prefix}disabled-color: #{$disabled-color};
--disabled-color: #{$disabled-color};
--#{$prefix}code-color: #{$code-color};
--#{$prefix}code-bg: #{$code-bg};
--code-color: #{$code-color};
--code-bg: #{$code-bg};
--#{$prefix}dark-mode-border-color: #{$border-color-dark};
--#{$prefix}dark-mode-border-color-translucent: #{$border-color-translucent-dark};
--#{$prefix}dark-mode-border-active-color: #{$border-active-color-dark};
--#{$prefix}dark-mode-border-dark-color: #{$border-dark-color-dark};
--dark-mode-border-color: #{$border-color-dark};
--dark-mode-border-color-translucent: #{$border-color-translucent-dark};
--dark-mode-border-active-color: #{$border-active-color-dark};
--dark-mode-border-dark-color: #{$border-dark-color-dark};
--#{$prefix}page-padding: #{$page-padding};
--#{$prefix}page-padding-y: #{$page-padding-y};
--page-padding: #{$page-padding};
--page-padding-y: #{$page-padding-y};
@include media-breakpoint-down($cards-grid-breakpoint) {
--#{$prefix}page-padding: #{$page-padding-sm};
--page-padding: #{$page-padding-sm};
}
}
+13 -13
View File
@@ -4,17 +4,17 @@
@use '../config' as *;
.browser {
@include border-radius(var(--#{$prefix}border-radius-lg));
box-shadow: 0 0 0 1px var(--#{$prefix}border-color);
background: var(--#{$prefix}bg-surface-secondary);
@include border-radius(var(--border-radius-lg));
box-shadow: 0 0 0 1px var(--border-color);
background: var(--bg-surface-secondary);
overflow: hidden;
}
.browser-header {
padding: 0.25rem 1rem;
background: var(--#{$prefix}border-color-light) linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.03));
border-bottom: 1px solid var(--#{$prefix}border-color);
@include border-radius(calc(var(--#{$prefix}border-radius-lg) - 1px) calc(var(--#{$prefix}border-radius-lg) - 1px) 0 0);
background: var(--border-color-light) linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.03));
border-bottom: 1px solid var(--border-color);
@include border-radius(calc(var(--border-radius-lg) - 1px) calc(var(--border-radius-lg) - 1px) 0 0);
}
.browser-dots {
@@ -43,9 +43,9 @@
width: 0.75rem;
min-width: 0.75rem;
height: 0.75rem;
background: var(--#{$prefix}border-color);
@include border-radius(var(--#{$prefix}border-radius-circle));
border: 1px solid var(--#{$prefix}border-color-dark);
background: var(--border-color);
@include border-radius(var(--border-radius-circle));
border: 1px solid var(--border-color-dark);
}
.browser-input {
@@ -55,15 +55,15 @@
justify-content: center;
text-decoration: none;
padding: 0.25rem;
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h5);
@include border-radius(var(--#{$prefix}border-radius));
color: var(--secondary);
font-size: var(--font-size-h5);
@include border-radius(var(--border-radius));
line-height: 1;
cursor: pointer;
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.05),
0 1px 2px 0 rgba(0, 0, 0, 0.05);
background-image: linear-gradient(to bottom, var(--#{$prefix}bg-surface), var(--#{$prefix}bg-surface-secondary));
background-image: linear-gradient(to bottom, var(--bg-surface), var(--bg-surface-secondary));
&:hover {
text-decoration: none;
+3 -3
View File
@@ -1,10 +1,10 @@
@use '../config' as *;
.body-marketing {
--#{$prefix}body-font-size: 1rem;
--#{$prefix}body-line-height: 1.75;
--body-font-size: 1rem;
--body-line-height: 1.75;
}
.body-gradient {
background: var(--#{$prefix}bg-surface) linear-gradient(to bottom, var(--#{$prefix}bg-surface-secondary) 12%, var(--#{$prefix}bg-surface) 99%) repeat-x top center/100% 100vh;
background: var(--bg-surface) linear-gradient(to bottom, var(--bg-surface-secondary) 12%, var(--bg-surface) 99%) repeat-x top center/100% 100vh;
}
+4 -4
View File
@@ -10,7 +10,7 @@
.hero-title {
font-size: 3rem;
font-weight: var(--#{$prefix}font-weight-black);
font-weight: var(--font-weight-black);
letter-spacing: $spacing-tight;
line-height: $headings-line-height;
@@ -20,14 +20,14 @@
}
.hero-description {
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h2);
color: var(--secondary);
font-size: var(--font-size-h2);
line-height: 1.5;
margin: 0 auto;
max-width: 45rem;
@include media-breakpoint-down(sm) {
font-size: var(--#{$prefix}font-size-h3);
font-size: var(--font-size-h3);
}
}
+4 -4
View File
@@ -17,12 +17,12 @@ $pricing-card-width: 22rem;
flex: 1;
display: flex;
flex-direction: column;
background: var(--#{$prefix}bg-surface);
background: var(--bg-surface);
border: 1px solid $border-color;
padding: 2rem;
margin: 0 0 1rem;
position: relative;
box-shadow: var(--#{$prefix}shadow-card);
box-shadow: var(--shadow-card);
text-align: center;
@include border-radius($border-radius-lg);
@@ -41,14 +41,14 @@ $pricing-card-width: 22rem;
&.featured {
z-index: 1;
border: 2px solid var(--#{$prefix}primary);
border: 2px solid var(--primary);
order: -1;
@include media-breakpoint-up(md) {
order: unset;
margin-top: 0;
margin-bottom: 0;
box-shadow: var(--#{$prefix}shadow-card);
box-shadow: var(--shadow-card);
@include border-radius($border-radius-lg);
}
}
+9 -9
View File
@@ -45,20 +45,20 @@
}
.section-white {
--section-bg: var(--#{$prefix}bg-surface);
--section-bg: var(--bg-surface);
}
.section-light {
--section-bg: var(--#{$prefix}bg-surface-secondary);
--section-bg: var(--bg-surface-secondary);
}
.section-primary {
--section-bg: var(--#{$prefix}primary);
--section-bg: var(--primary);
color: $white;
}
.section-dark {
--section-bg: var(--#{$prefix}dark);
--section-bg: var(--dark);
color: $white;
}
@@ -73,8 +73,8 @@
}
.section-title {
font-size: var(--#{$prefix}font-size-h1);
font-weight: var(--#{$prefix}font-weight-semibold);
font-size: var(--font-size-h1);
font-weight: var(--font-weight-semibold);
line-height: 1.2;
}
@@ -83,9 +83,9 @@
}
.section-description {
color: var(--#{$prefix}secondary);
font-size: var(--#{$prefix}font-size-h3);
line-height: var(--#{$prefix}line-height-h3);
color: var(--secondary);
font-size: var(--font-size-h3);
line-height: var(--line-height-h3);
margin-top: 1rem;
}
+14 -14
View File
@@ -3,34 +3,34 @@
@use '../config' as *;
.shape {
--#{$prefix}shape-size: #{$avatar-size};
--#{$prefix}shape-icon-size: #{$avatar-icon-size};
--#{$prefix}shape-border-radius: 35%;
background-color: var(--#{$prefix}primary-lt);
color: var(--#{$prefix}primary);
@include border-radius(var(--#{$prefix}shape-border-radius));
--shape-size: #{$avatar-size};
--shape-icon-size: #{$avatar-icon-size};
--shape-border-radius: 35%;
background-color: var(--primary-lt);
color: var(--primary);
@include border-radius(var(--shape-border-radius));
display: inline-flex;
align-items: center;
justify-content: center;
height: var(--#{$prefix}shape-size);
width: var(--#{$prefix}shape-size);
height: var(--shape-size);
width: var(--shape-size);
.icon {
width: var(--#{$prefix}shape-icon-size);
height: var(--#{$prefix}shape-icon-size);
width: var(--shape-icon-size);
height: var(--shape-icon-size);
}
}
@each $avatar-size, $size in $avatar-sizes {
.shape-#{$avatar-size} {
--#{$prefix}shape-size: #{map.get($size, size)};
--#{$prefix}shape-icon-size: #{map.get($size, icon-size)};
--shape-size: #{map.get($size, size)};
--shape-icon-size: #{map.get($size, icon-size)};
}
}
@each $name, $color in $colors {
.shape-#{$name} {
background: var(--#{$prefix}#{$name}-lt);
color: var(--#{$prefix}#{$name});
background: var(--#{$name}-lt);
color: var(--#{$name});
}
}
+4 -4
View File
@@ -121,12 +121,12 @@
// stylelint-disable scss/dollar-variable-pattern
@function rgba-css-var($identifier, $target) {
@if $identifier == 'body' and $target == 'bg' {
@return color-mix(in srgb, var(--#{$prefix}#{$identifier}-bg) calc(var(--#{$prefix}#{$target}-opacity) * 100%), transparent);
@return color-mix(in srgb, var(--#{$identifier}-bg) calc(var(--#{$target}-opacity) * 100%), transparent);
}
@if $identifier == 'body' and $target == 'text' {
@return color-mix(in srgb, var(--#{$prefix}#{$identifier}-color) calc(var(--#{$prefix}#{$target}-opacity) * 100%), transparent);
@return color-mix(in srgb, var(--#{$identifier}-color) calc(var(--#{$target}-opacity) * 100%), transparent);
} @else {
@return color-mix(in srgb, var(--#{$prefix}#{$identifier}) calc(var(--#{$prefix}#{$target}-opacity) * 100%), transparent);
@return color-mix(in srgb, var(--#{$identifier}) calc(var(--#{$target}-opacity) * 100%), transparent);
}
}
@@ -155,7 +155,7 @@
@function varify($list) {
$result: null;
@each $entry in $list {
$result: list.append($result, var(--#{$prefix}#{$entry}), space);
$result: list.append($result, var(--#{$entry}), space);
}
@return $result;
}
+10 -10
View File
@@ -7,7 +7,7 @@
@mixin subheader($include-color: true, $include-line-height: true) {
font-size: $h5-font-size;
font-weight: var(--#{$prefix}font-weight-medium);
font-weight: var(--font-weight-medium);
text-transform: uppercase;
letter-spacing: 0.04em;
@@ -16,14 +16,14 @@
}
@if ($include-color) {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
}
@mixin scrollbar {
$selector: if(sass(meta.type-of(&) != 'null'): '&'; else: '*');
#{$selector} {
scrollbar-color: color-transparent(var(--#{$prefix}scrollbar-color, var(--#{$prefix}body-color)), 0.2) transparent;
scrollbar-color: color-transparent(var(--scrollbar-color, var(--body-color)), 0.2) transparent;
}
#{$selector}::-webkit-scrollbar {
@@ -35,7 +35,7 @@
#{$selector}::-webkit-scrollbar-thumb {
@include border-radius(1rem);
border: 5px solid transparent;
box-shadow: inset 0 0 0 1rem color-transparent(var(--#{$prefix}scrollbar-color, var(--#{$prefix}body-color)), 0.2);
box-shadow: inset 0 0 0 1rem color-transparent(var(--scrollbar-color, var(--body-color)), 0.2);
}
#{$selector}::-webkit-scrollbar-track {
@@ -43,7 +43,7 @@
}
#{$selector}:hover::-webkit-scrollbar-thumb {
box-shadow: inset 0 0 0 1rem color-transparent(var(--#{$prefix}scrollbar-color, var(--#{$prefix}body-color)), 0.4);
box-shadow: inset 0 0 0 1rem color-transparent(var(--scrollbar-color, var(--body-color)), 0.4);
}
#{$selector}::-webkit-scrollbar-corner {
@@ -59,20 +59,20 @@
// Elements list
//
@mixin elements-list($gap: 0.5rem) {
--#{$prefix}list-gap: #{$gap};
--list-gap: #{$gap};
display: flex;
flex-wrap: wrap;
gap: var(--#{$prefix}list-gap);
gap: var(--list-gap);
}
@mixin focus-ring($show-border: false) {
outline: 0;
box-shadow:
0 0 0 2px var(--#{$prefix}primary),
0 0 $focus-ring-blur $focus-ring-width color-transparent(var(--#{$prefix}primary), 0.25);
0 0 0 2px var(--primary),
0 0 $focus-ring-blur $focus-ring-width color-transparent(var(--primary), 0.25);
@if ($show-border) {
border-color: color-transparent(var(--#{$prefix}primary), 0.25);
border-color: color-transparent(var(--primary), 0.25);
}
}
+4 -4
View File
@@ -17,8 +17,8 @@
}
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
--#{$prefix}btn-padding-y: #{$padding-y};
--#{$prefix}btn-padding-x: #{$padding-x};
@include rfs($font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-border-radius: #{$border-radius};
--btn-padding-y: #{$padding-y};
--btn-padding-x: #{$padding-x};
@include rfs($font-size, --btn-font-size);
--btn-border-radius: #{$border-radius};
}
+2 -2
View File
@@ -43,8 +43,8 @@
vertical-align: $caret-vertical-align;
width: $caret-width;
height: $caret-width;
border-bottom: 1px var(--#{$prefix}border-style);
border-inline-start: 1px var(--#{$prefix}border-style);
border-bottom: 1px var(--border-style);
border-inline-start: 1px var(--border-style);
margin-inline-end: 0.1em;
@if $direction != 'left' {
+4 -4
View File
@@ -5,11 +5,11 @@
// Container mixins
@mixin make-container($gutter: $container-padding-x) {
--#{$prefix}gutter-x: #{$gutter};
--#{$prefix}gutter-y: 0;
--gutter-x: #{$gutter};
--gutter-y: 0;
width: 100%;
padding-inline-end: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
padding-inline-start: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
padding-inline-end: calc(var(--gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
padding-inline-start: calc(var(--gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
margin-inline-end: auto;
margin-inline-start: auto;
}
+1 -1
View File
@@ -93,7 +93,7 @@
@if $enable-validation-icons {
&:not([multiple]):not([size]),
&:not([multiple])[size='1'] {
--#{$prefix}form-select-bg-icon: #{escape-svg($icon)};
--form-select-bg-icon: #{escape-svg($icon)};
padding-inline-end: $form-select-feedback-icon-padding-end;
background-position: $form-select-bg-position, $form-select-feedback-icon-position;
background-size: $form-select-bg-size, $form-select-feedback-icon-size;
+1 -1
View File
@@ -8,7 +8,7 @@
background-color: $color;
@if $enable-gradients {
background-image: var(--#{$prefix}gradient);
background-image: var(--gradient);
}
}
+10 -10
View File
@@ -12,13 +12,13 @@
// Generate semantic grid columns with these mixins.
@mixin make-row($gutter: $grid-gutter-width) {
--#{$prefix}gutter-x: #{$gutter};
--#{$prefix}gutter-y: 0;
--gutter-x: #{$gutter};
--gutter-y: 0;
display: flex;
flex-wrap: wrap;
margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
margin-inline-end: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
margin-top: calc(-1 * var(--gutter-y)); // stylelint-disable-line function-disallowed-list
margin-inline-end: calc(-0.5 * var(--gutter-x)); // stylelint-disable-line function-disallowed-list
margin-inline-start: calc(-0.5 * var(--gutter-x)); // stylelint-disable-line function-disallowed-list
}
@mixin make-col-ready() {
@@ -26,9 +26,9 @@
flex-shrink: 0;
width: 100%;
max-width: 100%;
padding-inline-end: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
padding-inline-start: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
margin-top: var(--#{$prefix}gutter-y);
padding-inline-end: calc(var(--gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
padding-inline-start: calc(var(--gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list
margin-top: var(--gutter-y);
}
@mixin make-col($size: false, $columns: $grid-columns) {
@@ -102,12 +102,12 @@
@each $key, $value in $gutters {
.g#{$infix}-#{$key},
.gx#{$infix}-#{$key} {
--#{$prefix}gutter-x: #{$value};
--gutter-x: #{$value};
}
.g#{$infix}-#{$key},
.gy#{$infix}-#{$key} {
--#{$prefix}gutter-y: #{$value};
--gutter-y: #{$value};
}
}
}
+4 -4
View File
@@ -6,8 +6,8 @@
// Pagination
@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
--#{$prefix}pagination-padding-x: #{$padding-x};
--#{$prefix}pagination-padding-y: #{$padding-y};
@include rfs($font-size, --#{$prefix}pagination-font-size);
--#{$prefix}pagination-border-radius: #{$border-radius};
--pagination-padding-x: #{$padding-x};
--pagination-padding-y: #{$padding-y};
@include rfs($font-size, --pagination-font-size);
--pagination-border-radius: #{$border-radius};
}
+11 -11
View File
@@ -13,17 +13,17 @@
$active-bg: color.mix($color, $background, math.percentage($table-active-bg-factor));
$table-border-color: color.mix($color, $background, math.percentage($table-border-factor));
--#{$prefix}table-color: #{$color};
--#{$prefix}table-bg: #{$background};
--#{$prefix}table-border-color: #{$table-border-color};
--#{$prefix}table-striped-bg: #{$striped-bg};
--#{$prefix}table-striped-color: #{color-contrast($striped-bg)};
--#{$prefix}table-active-bg: #{$active-bg};
--#{$prefix}table-active-color: #{color-contrast($active-bg)};
--#{$prefix}table-hover-bg: #{$hover-bg};
--#{$prefix}table-hover-color: #{color-contrast($hover-bg)};
--table-color: #{$color};
--table-bg: #{$background};
--table-border-color: #{$table-border-color};
--table-striped-bg: #{$striped-bg};
--table-striped-color: #{color-contrast($striped-bg)};
--table-active-bg: #{$active-bg};
--table-active-color: #{color-contrast($active-bg)};
--table-hover-bg: #{$hover-bg};
--table-hover-color: #{color-contrast($hover-bg)};
color: var(--#{$prefix}table-color);
border-color: var(--#{$prefix}table-border-color);
color: var(--table-color);
border-color: var(--table-border-color);
}
}
+4 -4
View File
@@ -64,12 +64,12 @@
@if $is-css-var {
.#{$property-class + $infix + $property-class-modifier} {
--#{$prefix}#{$css-variable-name}: #{$value};
--#{$css-variable-name}: #{$value};
}
@each $pseudo in $state {
.#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
--#{$prefix}#{$css-variable-name}: #{$value};
--#{$css-variable-name}: #{$value};
}
}
} @else {
@@ -77,7 +77,7 @@
@each $property in $properties {
@if $is-local-vars {
@each $local-var, $variable in $is-local-vars {
--#{$prefix}#{$local-var}: #{$variable};
--#{$local-var}: #{$variable};
}
}
#{$property}: $value if(sass($enable-important-utilities): !important; else: null);
@@ -89,7 +89,7 @@
@each $property in $properties {
@if $is-local-vars {
@each $local-var, $variable in $is-local-vars {
--#{$prefix}#{$local-var}: #{$variable};
--#{$local-var}: #{$variable};
}
}
#{$property}: $value if(sass($enable-important-utilities): !important; else: null);
+77 -77
View File
@@ -2,133 +2,133 @@
[data-bs-theme-base='slate'],
[data-theme-base='slate'] {
--#{$prefix}gray-50: #f8fafc;
--#{$prefix}gray-100: #f1f5f9;
--#{$prefix}gray-200: #e2e8f0;
--#{$prefix}gray-300: #cbd5e1;
--#{$prefix}gray-400: #94a3b8;
--#{$prefix}gray-500: #64748b;
--#{$prefix}gray-600: #475569;
--#{$prefix}gray-700: #334155;
--#{$prefix}gray-800: #1e293b;
--#{$prefix}gray-900: #0f172a;
--#{$prefix}gray-950: #020617;
--gray-50: #f8fafc;
--gray-100: #f1f5f9;
--gray-200: #e2e8f0;
--gray-300: #cbd5e1;
--gray-400: #94a3b8;
--gray-500: #64748b;
--gray-600: #475569;
--gray-700: #334155;
--gray-800: #1e293b;
--gray-900: #0f172a;
--gray-950: #020617;
}
[data-bs-theme-base='gray'],
[data-theme-base='gray'] {
--#{$prefix}gray-50: #{$gray-50};
--#{$prefix}gray-100: #{$gray-100};
--#{$prefix}gray-200: #{$gray-200};
--#{$prefix}gray-300: #{$gray-300};
--#{$prefix}gray-400: #{$gray-400};
--#{$prefix}gray-500: #{$gray-500};
--#{$prefix}gray-600: #{$gray-600};
--#{$prefix}gray-700: #{$gray-700};
--#{$prefix}gray-800: #{$gray-800};
--#{$prefix}gray-900: #{$gray-900};
--#{$prefix}gray-950: #{$gray-950};
--gray-50: #{$gray-50};
--gray-100: #{$gray-100};
--gray-200: #{$gray-200};
--gray-300: #{$gray-300};
--gray-400: #{$gray-400};
--gray-500: #{$gray-500};
--gray-600: #{$gray-600};
--gray-700: #{$gray-700};
--gray-800: #{$gray-800};
--gray-900: #{$gray-900};
--gray-950: #{$gray-950};
}
[data-bs-theme-base='zinc'],
[data-theme-base='zinc'] {
--#{$prefix}gray-50: #fafafa;
--#{$prefix}gray-100: #f4f4f5;
--#{$prefix}gray-200: #e4e4e7;
--#{$prefix}gray-300: #d4d4d8;
--#{$prefix}gray-400: #a1a1aa;
--#{$prefix}gray-500: #71717a;
--#{$prefix}gray-600: #52525b;
--#{$prefix}gray-700: #3f3f46;
--#{$prefix}gray-800: #27272a;
--#{$prefix}gray-900: #18181b;
--#{$prefix}gray-950: #09090b;
--gray-50: #fafafa;
--gray-100: #f4f4f5;
--gray-200: #e4e4e7;
--gray-300: #d4d4d8;
--gray-400: #a1a1aa;
--gray-500: #71717a;
--gray-600: #52525b;
--gray-700: #3f3f46;
--gray-800: #27272a;
--gray-900: #18181b;
--gray-950: #09090b;
}
[data-bs-theme-base='neutral'],
[data-theme-base='neutral'] {
--#{$prefix}gray-50: #fafafa;
--#{$prefix}gray-100: #f5f5f5;
--#{$prefix}gray-200: #e5e5e5;
--#{$prefix}gray-300: #d4d4d4;
--#{$prefix}gray-400: #a3a3a3;
--#{$prefix}gray-500: #737373;
--#{$prefix}gray-600: #525252;
--#{$prefix}gray-700: #404040;
--#{$prefix}gray-800: #262626;
--#{$prefix}gray-900: #171717;
--#{$prefix}gray-950: #0a0a0a;
--gray-50: #fafafa;
--gray-100: #f5f5f5;
--gray-200: #e5e5e5;
--gray-300: #d4d4d4;
--gray-400: #a3a3a3;
--gray-500: #737373;
--gray-600: #525252;
--gray-700: #404040;
--gray-800: #262626;
--gray-900: #171717;
--gray-950: #0a0a0a;
}
[data-bs-theme-base='stone'],
[data-theme-base='stone'] {
--#{$prefix}gray-50: #fafaf9;
--#{$prefix}gray-100: #f5f5f4;
--#{$prefix}gray-200: #e7e5e4;
--#{$prefix}gray-300: #d6d3d1;
--#{$prefix}gray-400: #a8a29e;
--#{$prefix}gray-500: #78716c;
--#{$prefix}gray-600: #57534e;
--#{$prefix}gray-700: #44403c;
--#{$prefix}gray-800: #292524;
--#{$prefix}gray-900: #1c1917;
--#{$prefix}gray-950: #0c0a09;
--gray-50: #fafaf9;
--gray-100: #f5f5f4;
--gray-200: #e7e5e4;
--gray-300: #d6d3d1;
--gray-400: #a8a29e;
--gray-500: #78716c;
--gray-600: #57534e;
--gray-700: #44403c;
--gray-800: #292524;
--gray-900: #1c1917;
--gray-950: #0c0a09;
}
// Easter egg: not listed in the theme settings panel, enable with `data-bs-theme-base="pink"` or `?theme-base=pink`
[data-bs-theme-base='pink'],
[data-theme-base='pink'] {
--#{$prefix}gray-50: #fdf2f8;
--#{$prefix}gray-100: #fce7f3;
--#{$prefix}gray-200: #fbcfe8;
--#{$prefix}gray-300: #f9a8d4;
--#{$prefix}gray-400: #f472b6;
--#{$prefix}gray-500: #ec4899;
--#{$prefix}gray-600: #db2777;
--#{$prefix}gray-700: #be185d;
--#{$prefix}gray-800: #9d174d;
--#{$prefix}gray-900: #831843;
--#{$prefix}gray-950: #500724;
--gray-50: #fdf2f8;
--gray-100: #fce7f3;
--gray-200: #fbcfe8;
--gray-300: #f9a8d4;
--gray-400: #f472b6;
--gray-500: #ec4899;
--gray-600: #db2777;
--gray-700: #be185d;
--gray-800: #9d174d;
--gray-900: #831843;
--gray-950: #500724;
}
@each $name, $value in $extra-colors {
[data-bs-theme-primary='#{$name}'],
[data-theme-primary='#{$name}'] {
--#{$prefix}primary: #{$value};
--#{$prefix}primary-rgb: #{to-rgb($value)};
--primary: #{$value};
--primary-rgb: #{to-rgb($value)};
}
}
@each $value in (0, 0.5, 1, 1.5, 2) {
[data-bs-theme-radius='#{$value}'],
[data-theme-radius='#{$value}'] {
--#{$prefix}border-radius-scale: #{$value};
--border-radius-scale: #{$value};
}
}
[data-bs-theme-primary='inverted'],
[data-theme-primary='inverted'] {
--#{$prefix}primary: var(--#{$prefix}gray-800);
--#{$prefix}primary-fg: var(--#{$prefix}light);
--#{$prefix}primary-rgb: #{to-rgb($dark)};
--primary: var(--gray-800);
--primary-fg: var(--light);
--primary-rgb: #{to-rgb($dark)};
&[data-bs-theme='dark'],
[data-bs-theme='dark'],
&[data-theme='dark'],
[data-theme='dark'] {
--#{$prefix}primary: #{$light};
--#{$prefix}primary-fg: var(--#{$prefix}dark);
--#{$prefix}primary-rgb: #{to-rgb($light)};
--primary: #{$light};
--primary-fg: var(--dark);
--primary-rgb: #{to-rgb($light)};
}
}
@each $name, $value in (monospace: $font-family-monospace, sans-serif: $font-family-sans-serif, serif: $font-family-serif, comic: $font-family-comic) {
[data-bs-theme-font='#{$name}'],
[data-theme-font='#{$name}'] {
--#{$prefix}body-font-family: var(--#{$prefix}font-#{$name});
--body-font-family: var(--font-#{$name});
@if $name == 'monospace' {
--#{$prefix}body-font-size: 80%;
--body-font-size: 80%;
}
}
}
@@ -0,0 +1,64 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`css custom-property prefixing > leaves vendor-owned names alone and prefixes everything else 1`] = `
[
"--fc-border-color",
"--fc-daygrid-event-dot-width",
"--fc-event-bg-color",
"--fc-event-border-color",
"--fc-event-text-color",
"--gl-star-color",
"--gl-star-color-inactive",
"--gl-star-size",
"--litepicker-button-next-month-color",
"--litepicker-button-next-month-color-hover",
"--litepicker-button-prev-month-color",
"--litepicker-button-prev-month-color-hover",
"--litepicker-container-months-color-bg",
"--litepicker-day-color",
"--litepicker-day-color-hover",
"--litepicker-is-end-color-bg",
"--litepicker-is-in-range-color",
"--litepicker-is-start-color-bg",
"--litepicker-is-today-color",
"--litepicker-month-header-color",
"--litepicker-month-weekday-color",
"--plyr-color-main",
"--tblr-active-bg",
"--tblr-backdrop-bg",
"--tblr-bg-forms",
"--tblr-bg-surface",
"--tblr-bg-surface-inverted",
"--tblr-bg-surface-secondary",
"--tblr-body-bg",
"--tblr-body-color",
"--tblr-border-color",
"--tblr-border-color-translucent",
"--tblr-border-radius",
"--tblr-border-style",
"--tblr-border-width",
"--tblr-card-bg",
"--tblr-font-sans-serif",
"--tblr-font-size-h3",
"--tblr-font-size-h5",
"--tblr-font-weight-medium",
"--tblr-font-weight-semibold",
"--tblr-gray-500",
"--tblr-icon-size",
"--tblr-info",
"--tblr-light",
"--tblr-primary",
"--tblr-primary-200",
"--tblr-primary-lt",
"--tblr-secondary",
"--tblr-secondary-bg",
"--tblr-shadow-card",
"--tblr-shadow-dropdown",
"--tblr-shadow-input",
"--tblr-tertiary",
"--tblr-text-inverted",
"--tblr-yellow",
"--ts-pr-caret",
"--ts-pr-clear-button",
]
`;
+4 -4
View File
@@ -76,8 +76,8 @@
vertical-align: 0.306em;
width: 0.36em;
height: 0.36em;
border-bottom: 1px var(--tblr-border-style);
border-inline-start: 1px var(--tblr-border-style);
border-bottom: 1px var(--border-style);
border-inline-start: 1px var(--border-style);
margin-inline-end: 0.1em;
margin-inline-start: 0.306em;
transform: rotate(-45deg);
@@ -100,8 +100,8 @@
vertical-align: 0.306em;
width: 0.36em;
height: 0.36em;
border-bottom: 1px var(--tblr-border-style);
border-inline-start: 1px var(--tblr-border-style);
border-bottom: 1px var(--border-style);
border-inline-start: 1px var(--border-style);
margin-inline-end: 0.1em;
margin-inline-end: 0.306em;
transform: rotate(45deg);
+6 -6
View File
@@ -1,7 +1,7 @@
// Tests for the CSS custom-property builders in scss/mixins/_functions.scss:
// `varify()` and `rgba-css-var()`. Both read the global `$prefix`, which lives
// in scss/_settings.scss (already `@use`d by functions.scss), so a plain `@use`
// of the functions module is enough no fixtures.
// `varify()` and `rgba-css-var()`. A plain `@use` of the functions module is
// enough no fixtures. Both emit unprefixed names: the `--tblr-` prefix is
// added later, by the css pipeline (.build/css-var-prefix.ts).
@use 'sass:meta';
@use '../mixins/functions' as *;
@@ -19,7 +19,7 @@
}
@include expect() {
.t {
padding: var(--tblr-gutter-x) var(--tblr-gutter-y);
padding: var(--gutter-x) var(--gutter-y);
}
}
}
@@ -28,10 +28,10 @@
@include describe('rgba-css-var') {
@include it('builds a color-mix() from the identifier and target opacity') {
@include assert-equal(meta.inspect(rgba-css-var('primary', 'bg')), 'color-mix(in srgb, var(--tblr-primary) calc(var(--tblr-bg-opacity) * 100%), transparent)');
@include assert-equal(meta.inspect(rgba-css-var('primary', 'bg')), 'color-mix(in srgb, var(--primary) calc(var(--bg-opacity) * 100%), transparent)');
}
@include it('special-cases the body background') {
@include assert-equal(meta.inspect(rgba-css-var('body', 'bg')), 'color-mix(in srgb, var(--tblr-body-bg) calc(var(--tblr-bg-opacity) * 100%), transparent)');
@include assert-equal(meta.inspect(rgba-css-var('body', 'bg')), 'color-mix(in srgb, var(--body-bg) calc(var(--bg-opacity) * 100%), transparent)');
}
}
+4 -3
View File
@@ -1,8 +1,9 @@
// Output tests for the `generate-utility` mixin from
// scss/mixins/bootstrap/_utilities.scss the engine behind Tabler's utility
// classes. `@use "../mixins/bootstrap/utilities"` pulls in the real
// settings/variables chain, so `$prefix` = "tblr-" and
// `$enable-important-utilities` = true (hence the `!important` in the output).
// settings/variables chain, so `$enable-important-utilities` = true (hence the
// `!important` in the output). Custom properties are expected unprefixed: the
// `--tblr-` prefix is added later, by the css pipeline (.build/css-var-prefix.ts).
//
// Each `it` feeds the mixin a hand-built utility map and asserts the generated
// classes, covering the branches that shape the output: map vs list values,
@@ -106,7 +107,7 @@
}
@include expect() {
.opacity-50 {
--tblr-opacity: 0.5;
--opacity: 0.5;
}
}
}
+8 -8
View File
@@ -117,13 +117,13 @@
}
@include expect() {
.t {
--tblr-gutter-x: 1rem;
--tblr-gutter-y: 0;
--gutter-x: 1rem;
--gutter-y: 0;
display: flex;
flex-wrap: wrap;
margin-top: calc(-1 * var(--tblr-gutter-y));
margin-inline-end: calc(-0.5 * var(--tblr-gutter-x));
margin-inline-start: calc(-0.5 * var(--tblr-gutter-x));
margin-top: calc(-1 * var(--gutter-y));
margin-inline-end: calc(-0.5 * var(--gutter-x));
margin-inline-start: calc(-0.5 * var(--gutter-x));
}
}
}
@@ -143,9 +143,9 @@
flex-shrink: 0;
width: 100%;
max-width: 100%;
padding-inline-end: calc(var(--tblr-gutter-x) * 0.5);
padding-inline-start: calc(var(--tblr-gutter-x) * 0.5);
margin-top: var(--tblr-gutter-y);
padding-inline-end: calc(var(--gutter-x) * 0.5);
padding-inline-start: calc(var(--gutter-x) * 0.5);
margin-top: var(--gutter-y);
}
}
}
+18 -17
View File
@@ -2,8 +2,9 @@
//
// `@use "../mixins/mixins"` transitively pulls in the real settings/variables
// chain (all relative to that file, so no extra load paths are needed), which
// means the assertions run against real values `$prefix` = "tblr-", the real
// `$h5-font-size`, etc. instead of fixtures.
// means the assertions run against real values the real `$h5-font-size`,
// etc. instead of fixtures. Custom properties are expected unprefixed: the
// `--tblr-` prefix is added later, by the css pipeline (.build/css-var-prefix.ts).
@use '../mixins/mixins' as *;
@@ -18,11 +19,11 @@
@include expect() {
.t {
font-size: 0.75rem;
font-weight: var(--tblr-font-weight-medium);
font-weight: var(--font-weight-medium);
text-transform: uppercase;
letter-spacing: 0.04em;
line-height: 1rem;
color: var(--tblr-secondary);
color: var(--secondary);
}
}
}
@@ -38,7 +39,7 @@
@include expect() {
.t {
font-size: 0.75rem;
font-weight: var(--tblr-font-weight-medium);
font-weight: var(--font-weight-medium);
text-transform: uppercase;
letter-spacing: 0.04em;
}
@@ -74,10 +75,10 @@
}
@include expect() {
.t {
--tblr-list-gap: 0.5rem;
--list-gap: 0.5rem;
display: flex;
flex-wrap: wrap;
gap: var(--tblr-list-gap);
gap: var(--list-gap);
}
}
}
@@ -92,10 +93,10 @@
}
@include expect() {
.t {
--tblr-list-gap: 1rem;
--list-gap: 1rem;
display: flex;
flex-wrap: wrap;
gap: var(--tblr-list-gap);
gap: var(--list-gap);
}
}
}
@@ -114,8 +115,8 @@
.t {
outline: 0;
box-shadow:
0 0 0 2px var(--tblr-primary),
0 0 0 0.25rem color-mix(in srgb, var(--tblr-primary) 25%, transparent);
0 0 0 2px var(--primary),
0 0 0 0.25rem color-mix(in srgb, var(--primary) 25%, transparent);
}
}
}
@@ -132,9 +133,9 @@
.t {
outline: 0;
box-shadow:
0 0 0 2px var(--tblr-primary),
0 0 0 0.25rem color-mix(in srgb, var(--tblr-primary) 25%, transparent);
border-color: color-mix(in srgb, var(--tblr-primary) 25%, transparent);
0 0 0 2px var(--primary),
0 0 0 0.25rem color-mix(in srgb, var(--primary) 25%, transparent);
border-color: color-mix(in srgb, var(--primary) 25%, transparent);
}
}
}
@@ -175,7 +176,7 @@
}
@include expect() {
.scroll {
scrollbar-color: color-mix(in srgb, var(--tblr-scrollbar-color, var(--tblr-body-color)) 20%, transparent) transparent;
scrollbar-color: color-mix(in srgb, var(--scrollbar-color, var(--body-color)) 20%, transparent) transparent;
}
.scroll::-webkit-scrollbar {
width: 1rem;
@@ -190,13 +191,13 @@
.scroll::-webkit-scrollbar-thumb {
border-radius: 1rem;
border: 5px solid transparent;
box-shadow: inset 0 0 0 1rem color-mix(in srgb, var(--tblr-scrollbar-color, var(--tblr-body-color)) 20%, transparent);
box-shadow: inset 0 0 0 1rem color-mix(in srgb, var(--scrollbar-color, var(--body-color)) 20%, transparent);
}
.scroll::-webkit-scrollbar-track {
background: transparent;
}
.scroll:hover::-webkit-scrollbar-thumb {
box-shadow: inset 0 0 0 1rem color-mix(in srgb, var(--tblr-scrollbar-color, var(--tblr-body-color)) 40%, transparent);
box-shadow: inset 0 0 0 1rem color-mix(in srgb, var(--scrollbar-color, var(--body-color)) 40%, transparent);
}
.scroll::-webkit-scrollbar-corner {
background: transparent;
+61
View File
@@ -0,0 +1,61 @@
// Guards the build-time `--tblr-` prefixing configured in .build/css-var-prefix.ts.
//
// Custom properties are authored bare in scss, so a name Tabler owns and a name
// a vendor library owns look identical in source — only `cssVarIgnore` tells
// them apart. Get that wrong and nothing fails: the vendor's variable quietly
// becomes `--tblr-fc-border-color`, the library never reads it, and the theming
// is simply gone.
//
// tabler-vendors.scss is where every foreign name lives, so its full set of
// custom-property names is snapshotted. A vendor override added without the
// matching `cssVarIgnore` entry shows up in the snapshot diff as a `--tblr-`
// name that plainly belongs to someone else.
import { describe, expect, it } from 'vitest'
import { readdirSync } from 'node:fs'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import { compile as compileSass } from 'sass'
import postcss from 'postcss'
import prefixCustomProperties from 'postcss-prefix-custom-properties'
import { cssVarIgnore, cssVarPrefix, inlineValueComments } from '../../../.build/css-var-prefix.ts'
const scssDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..')
// The same two passes build-css.ts runs before autoprefixer.
async function buildCustomPropertyNames(entry) {
const { css } = compileSass(path.join(scssDir, entry), { loadPaths: ['node_modules'], style: 'expanded' })
const result = await postcss([
inlineValueComments,
prefixCustomProperties({ prefix: cssVarPrefix, ignore: cssVarIgnore }),
]).process(css, { from: undefined })
const names = new Set()
result.root.walkDecls((decl) => {
if (decl.prop.startsWith('--')) names.add(decl.prop)
for (const [, name] of decl.value.matchAll(/var\(\s*(--[\w-]+)/g)) names.add(name)
})
result.root.walkAtRules('property', (atRule) => names.add(atRule.params.trim()))
return [...names].sort()
}
describe('css custom-property prefixing', () => {
it('leaves vendor-owned names alone and prefixes everything else', async () => {
await expect(buildCustomPropertyNames('tabler-vendors.scss')).resolves.toMatchSnapshot()
})
it('has no dead entries in the ignore list', async () => {
// A pattern matching nothing means the vendor it protected is gone, or the
// name drifted — either way the entry no longer guards anything.
// Every entry point, since foreign names are spread across the bundles.
const entries = readdirSync(scssDir).filter((file) => file.endsWith('.scss') && !file.startsWith('_'))
const perEntry = await Promise.all(entries.map(buildCustomPropertyNames))
const all = [...new Set(perEntry.flat())]
for (const pattern of cssVarIgnore) {
const matches =
pattern instanceof RegExp ? all.some((name) => pattern.test(name)) : all.includes(pattern)
expect(matches, `unused cssVarIgnore entry: ${pattern}`).toBe(true)
}
})
})
+42 -42
View File
@@ -1,27 +1,27 @@
@use '../config' as *;
.accordion {
--#{$prefix}accordion-color: var(--#{$prefix}body-color);
--#{$prefix}accordion-border-color: var(--#{$prefix}border-color);
--#{$prefix}accordion-border-radius: #{$accordion-border-radius};
--#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
--#{$prefix}accordion-padding-x: #{$accordion-body-padding-x};
--#{$prefix}accordion-gap: 0;
--#{$prefix}accordion-active-color: #{$accordion-button-active-color};
--#{$prefix}accordion-btn-color: var(--#{$prefix}accordion-color);
--#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
--#{$prefix}accordion-btn-toggle-width: #{$accordion-btn-toggle-width};
--#{$prefix}accordion-btn-padding-x: var(--#{$prefix}accordion-padding-x);
--#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
--#{$prefix}accordion-btn-font-weight: var(--#{$prefix}font-weight-medium);
--#{$prefix}accordion-body-padding-x: var(--#{$prefix}accordion-padding-x);
--#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
--#{$prefix}accordion-btn-gap: #{$accordion-btn-gap};
--#{$prefix}accordion-header-gap: #{$accordion-header-gap};
--accordion-color: var(--body-color);
--accordion-border-color: var(--border-color);
--accordion-border-radius: #{$accordion-border-radius};
--accordion-inner-border-radius: #{$accordion-inner-border-radius};
--accordion-padding-x: #{$accordion-body-padding-x};
--accordion-gap: 0;
--accordion-active-color: #{$accordion-button-active-color};
--accordion-btn-color: var(--accordion-color);
--accordion-btn-bg: #{$accordion-button-bg};
--accordion-btn-toggle-width: #{$accordion-btn-toggle-width};
--accordion-btn-padding-x: var(--accordion-padding-x);
--accordion-btn-padding-y: #{$accordion-button-padding-y};
--accordion-btn-font-weight: var(--font-weight-medium);
--accordion-body-padding-x: var(--accordion-padding-x);
--accordion-body-padding-y: #{$accordion-body-padding-y};
--accordion-btn-gap: #{$accordion-btn-gap};
--accordion-header-gap: #{$accordion-header-gap};
display: flex;
flex-direction: column;
gap: var(--#{$prefix}accordion-gap);
gap: var(--accordion-gap);
}
.accordion-button {
@@ -29,19 +29,19 @@
display: flex;
align-items: center;
width: 100%;
padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-padding-x);
padding: var(--accordion-btn-padding-y) var(--accordion-padding-x);
color: inherit;
text-align: inherit;
background-color: transparent;
border: 0;
font-size: inherit;
font-weight: var(--#{$prefix}accordion-btn-font-weight);
gap: var(--#{$prefix}accordion-btn-gap);
font-weight: var(--accordion-btn-font-weight);
gap: var(--accordion-btn-gap);
&:not(.collapsed) {
border-bottom-color: transparent;
box-shadow: none;
color: var(--#{$prefix}accordion-active-color);
color: var(--accordion-active-color);
}
}
@@ -49,10 +49,10 @@
margin: 0;
position: relative;
display: flex;
gap: var(--#{$prefix}accordion-header-gap);
gap: var(--accordion-header-gap);
align-items: center;
width: 100%;
color: var(--#{$prefix}accordion-btn-color);
color: var(--accordion-btn-color);
text-align: start;
background-color: transparent;
border: 0;
@@ -66,7 +66,7 @@
&:focus {
z-index: 3;
outline: 0;
box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
box-shadow: var(--accordion-btn-focus-box-shadow);
&:not(:focus-visible) {
outline: none;
@@ -76,7 +76,7 @@
}
.accordion-button-icon {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.accordion-button-toggle {
@@ -85,13 +85,13 @@
transition: $transition-time transform;
margin-inline-start: auto;
margin-inline-end: 0;
color: var(--#{$prefix}secondary);
width: var(--#{$prefix}accordion-btn-toggle-width);
height: var(--#{$prefix}accordion-btn-toggle-width);
color: var(--secondary);
width: var(--accordion-btn-toggle-width);
height: var(--accordion-btn-toggle-width);
.accordion-button:not(.collapsed) & {
transform: rotate(-180deg);
color: var(--#{$prefix}accordion-active-color);
color: var(--accordion-active-color);
}
path {
@@ -108,14 +108,14 @@
}
.accordion-item {
color: var(--#{$prefix}accordion-color);
border: var(--#{$prefix}border-width) solid var(--#{$prefix}accordion-border-color);
color: var(--accordion-color);
border: var(--border-width) solid var(--accordion-border-color);
&:first-of-type {
@include border-top-radius(var(--#{$prefix}accordion-border-radius));
@include border-top-radius(var(--accordion-border-radius));
> .accordion-header {
@include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
@include border-top-radius(var(--accordion-inner-border-radius));
}
}
@@ -124,23 +124,23 @@
}
&:last-of-type {
@include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
@include border-bottom-radius(var(--accordion-border-radius));
> .accordion-header {
&.collapsed {
@include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
@include border-bottom-radius(var(--accordion-inner-border-radius));
}
}
> .accordion-collapse {
@include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
@include border-bottom-radius(var(--accordion-border-radius));
}
}
}
.accordion-body {
color: var(--#{$prefix}secondary);
padding: 0 var(--#{$prefix}accordion-body-padding-x) var(--#{$prefix}accordion-body-padding-y);
color: var(--secondary);
padding: 0 var(--accordion-body-padding-x) var(--accordion-body-padding-y);
}
.accordion-flush {
@@ -165,11 +165,11 @@
}
.accordion-tabs {
--#{$prefix}accordion-gap: #{$accordion-tabs-gap};
--accordion-gap: #{$accordion-tabs-gap};
> .accordion-item {
border: var(--#{$prefix}border-width) solid var(--#{$prefix}accordion-border-color);
@include border-radius(var(--#{$prefix}accordion-border-radius));
border: var(--border-width) solid var(--accordion-border-color);
@include border-radius(var(--accordion-border-radius));
}
}
+41 -41
View File
@@ -1,54 +1,54 @@
@use '../config' as *;
.alert {
--#{$prefix}alert-variant-color: var(--#{$prefix}body-color);
--#{$prefix}alert-color: var(--#{$prefix}alert-variant-color);
--#{$prefix}alert-bg: #{color-transparent(var(--#{$prefix}alert-variant-color), 0.16, var(--#{$prefix}bg-surface))};
--#{$prefix}alert-padding-x: #{$alert-padding-x};
--#{$prefix}alert-padding-y: #{$alert-padding-y};
--#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
--#{$prefix}alert-border-color: #{color-transparent(var(--#{$prefix}alert-variant-color), 0.2, var(--#{$prefix}bg-surface))};
--#{$prefix}alert-border-color: var(--#{$prefix}border-color);
--#{$prefix}alert-border: var(--#{$prefix}border-width) solid var(--#{$prefix}alert-border-color);
--#{$prefix}alert-border-radius: var(--#{$prefix}border-radius);
--#{$prefix}alert-link-color: inherit;
--#{$prefix}alert-heading-font-weight: var(--#{$prefix}font-weight-medium);
--#{$prefix}alert-heading-margin-bottom: #{$alert-heading-margin-bottom};
--#{$prefix}alert-icon-size: #{$alert-icon-size};
--#{$prefix}alert-padding-inline-end: #{$alert-padding-inline-end};
--#{$prefix}alert-gap: #{$alert-gap};
--alert-variant-color: var(--body-color);
--alert-color: var(--alert-variant-color);
--alert-bg: #{color-transparent(var(--alert-variant-color), 0.16, var(--bg-surface))};
--alert-padding-x: #{$alert-padding-x};
--alert-padding-y: #{$alert-padding-y};
--alert-margin-bottom: #{$alert-margin-bottom};
--alert-border-color: #{color-transparent(var(--alert-variant-color), 0.2, var(--bg-surface))};
--alert-border-color: var(--border-color);
--alert-border: var(--border-width) solid var(--alert-border-color);
--alert-border-radius: var(--border-radius);
--alert-link-color: inherit;
--alert-heading-font-weight: var(--font-weight-medium);
--alert-heading-margin-bottom: #{$alert-heading-margin-bottom};
--alert-icon-size: #{$alert-icon-size};
--alert-padding-inline-end: #{$alert-padding-inline-end};
--alert-gap: #{$alert-gap};
position: relative;
padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
margin-bottom: var(--#{$prefix}alert-margin-bottom);
background-color: color-mix(in srgb, var(--#{$prefix}alert-bg), var(--#{$prefix}bg-surface));
@include border-radius(var(--#{$prefix}alert-border-radius));
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}alert-border-color);
box-shadow: var(--#{$prefix}box-shadow);
color: var(--#{$prefix}alert-color);
padding: var(--alert-padding-y) var(--alert-padding-x);
margin-bottom: var(--alert-margin-bottom);
background-color: color-mix(in srgb, var(--alert-bg), var(--bg-surface));
@include border-radius(var(--alert-border-radius));
border: var(--border-width) var(--border-style) var(--alert-border-color);
box-shadow: var(--box-shadow);
color: var(--alert-color);
display: flex;
flex-direction: row;
gap: var(--#{$prefix}alert-gap);
gap: var(--alert-gap);
}
.alert-heading {
color: inherit;
margin-bottom: var(--#{$prefix}alert-heading-margin-bottom);
font-weight: var(--#{$prefix}alert-heading-font-weight);
margin-bottom: var(--alert-heading-margin-bottom);
font-weight: var(--alert-heading-font-weight);
}
.alert-description {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.alert-icon {
color: var(--#{$prefix}alert-color);
width: var(--#{$prefix}alert-icon-size) !important;
height: var(--#{$prefix}alert-icon-size) !important;
color: var(--alert-color);
width: var(--alert-icon-size) !important;
height: var(--alert-icon-size) !important;
}
.alert-action {
color: var(--#{$prefix}alert-color);
color: var(--alert-color);
text-decoration: underline;
&:hover {
@@ -62,29 +62,29 @@
.alert-link {
font-weight: $alert-link-font-weight;
color: var(--#{$prefix}alert-link-color);
color: var(--alert-link-color);
&,
&:hover {
color: var(--#{$prefix}alert-color);
color: var(--alert-color);
}
}
.alert-dismissible {
padding-inline-end: var(--#{$prefix}alert-padding-inline-end);
padding-inline-end: var(--alert-padding-inline-end);
.btn-close {
position: absolute;
top: calc(var(--#{$prefix}alert-padding-x) / 2 - 1px);
inset-inline-end: calc(var(--#{$prefix}alert-padding-y) / 2 - 1px);
top: calc(var(--alert-padding-x) / 2 - 1px);
inset-inline-end: calc(var(--alert-padding-y) / 2 - 1px);
z-index: 1;
padding: calc(var(--#{$prefix}alert-padding-y) * 1.25) var(--#{$prefix}alert-padding-x);
padding: calc(var(--alert-padding-y) * 1.25) var(--alert-padding-x);
}
}
.alert-important {
background-color: var(--#{$prefix}alert-variant-color);
color: var(--#{$prefix}white);
background-color: var(--alert-variant-color);
color: var(--white);
.alert-description {
color: inherit;
@@ -97,11 +97,11 @@
.alert-minor {
background: transparent;
border-color: var(--tblr-border-color);
border-color: var(--border-color);
}
@each $name, $color in $theme-colors {
.alert-#{$name} {
--#{$prefix}alert-variant-color: var(--#{$prefix}#{$name});
--alert-variant-color: var(--#{$name});
}
}
+55 -55
View File
@@ -3,75 +3,75 @@
@use '../config' as *;
.avatar {
--#{$prefix}avatar-size: var(--#{$prefix}avatar-list-size, #{$avatar-size});
--#{$prefix}avatar-status-size: #{$avatar-status-size};
--#{$prefix}avatar-bg: #{$avatar-bg};
--#{$prefix}avatar-box-shadow-color: var(--#{$prefix}border-color-translucent);
--#{$prefix}avatar-box-shadow: inset 0 0 0 1px var(--#{$prefix}avatar-box-shadow-color);
--#{$prefix}avatar-font-size: #{$avatar-font-size};
--#{$prefix}avatar-icon-size: #{$avatar-icon-size};
--#{$prefix}avatar-brand-size: #{$avatar-brand-size};
--#{$prefix}avatar-border-radius: #{$avatar-border-radius};
--avatar-size: var(--avatar-list-size, #{$avatar-size});
--avatar-status-size: #{$avatar-status-size};
--avatar-bg: #{$avatar-bg};
--avatar-box-shadow-color: var(--border-color-translucent);
--avatar-box-shadow: inset 0 0 0 1px var(--avatar-box-shadow-color);
--avatar-font-size: #{$avatar-font-size};
--avatar-icon-size: #{$avatar-icon-size};
--avatar-brand-size: #{$avatar-brand-size};
--avatar-border-radius: #{$avatar-border-radius};
position: relative;
width: var(--#{$prefix}avatar-size);
height: var(--#{$prefix}avatar-size);
font-size: var(--#{$prefix}avatar-font-size);
font-weight: var(--#{$prefix}font-weight-medium);
width: var(--avatar-size);
height: var(--avatar-size);
font-size: var(--avatar-font-size);
font-weight: var(--font-weight-medium);
line-height: 1;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--#{$prefix}secondary);
color: var(--secondary);
text-align: center;
text-transform: uppercase;
vertical-align: bottom;
user-select: none;
background: var(--#{$prefix}avatar-bg) no-repeat center/cover;
@include border-radius(var(--#{$prefix}avatar-border-radius));
box-shadow: var(--#{$prefix}avatar-box-shadow);
background: var(--avatar-bg) no-repeat center/cover;
@include border-radius(var(--avatar-border-radius));
box-shadow: var(--avatar-box-shadow);
transition:
color $transition-time,
background-color $transition-time,
box-shadow $transition-time;
.icon {
width: var(--#{$prefix}avatar-icon-size);
height: var(--#{$prefix}avatar-icon-size);
width: var(--avatar-icon-size);
height: var(--avatar-icon-size);
}
.badge {
position: absolute;
inset-inline-end: 0;
bottom: 0;
@include border-radius(var(--#{$prefix}border-radius-pill));
box-shadow: 0 0 0 calc(var(--#{$prefix}avatar-status-size) / 4) $card-bg;
@include border-radius(var(--border-radius-pill));
box-shadow: 0 0 0 calc(var(--avatar-status-size) / 4) $card-bg;
}
@at-root a#{&} {
cursor: pointer;
&:hover {
color: var(--#{$prefix}primary);
--#{$prefix}avatar-box-shadow-color: var(--#{$prefix}primary);
color: var(--primary);
--avatar-box-shadow-color: var(--primary);
}
}
}
.avatar-rounded {
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
}
.avatar-square {
@include border-radius(var(--#{$prefix}border-radius));
@include border-radius(var(--border-radius));
}
@each $avatar-size, $size in $avatar-sizes {
.avatar-#{$avatar-size} {
--#{$prefix}avatar-size: #{map.get($size, size)};
--#{$prefix}avatar-status-size: #{map.get($size, status-size)};
--#{$prefix}avatar-font-size: #{map.get($size, font-size)};
--#{$prefix}avatar-icon-size: #{map.get($size, icon-size)};
--#{$prefix}avatar-brand-size: #{map.get($size, brand-size)};
--avatar-size: #{map.get($size, size)};
--avatar-status-size: #{map.get($size, status-size)};
--avatar-font-size: #{map.get($size, font-size)};
--avatar-icon-size: #{map.get($size, icon-size)};
--avatar-brand-size: #{map.get($size, brand-size)};
.badge:empty {
width: map.get($size, status-size);
@@ -88,7 +88,7 @@
// Avatar list
//
.avatar-list {
--#{$prefix}avatar-list-size: #{$avatar-size};
--avatar-list-size: #{$avatar-size};
@include elements-list;
a.avatar {
@@ -100,22 +100,22 @@
.avatar-list-stacked {
display: block;
--#{$prefix}list-gap: 0;
--list-gap: 0;
.avatar {
box-shadow:
var(--#{$prefix}avatar-box-shadow),
0 0 0 2px var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
var(--avatar-box-shadow),
0 0 0 2px var(--card-bg, var(--bg-surface));
&:not(:first-child) {
margin-inline-start: calc(#{$avatar-list-spacing} * var(--#{$prefix}avatar-size)) !important;
margin-inline-start: calc(#{$avatar-list-spacing} * var(--avatar-size)) !important;
}
}
}
@each $avatar-size, $size in $avatar-sizes {
.avatar-list-#{$avatar-size} {
--#{$prefix}avatar-list-size: #{map.get($size, size)};
--avatar-list-size: #{map.get($size, size)};
}
}
@@ -123,24 +123,24 @@
// Avatar upload
//
.avatar-upload {
--#{$prefix}avatar-upload-icon-size: #{$avatar-upload-icon-size};
--#{$prefix}avatar-upload-text-margin-top: #{$avatar-upload-text-margin-top};
--avatar-upload-icon-size: #{$avatar-upload-icon-size};
--avatar-upload-text-margin-top: #{$avatar-upload-text-margin-top};
border: var(--#{$prefix}border-width) dashed var(--#{$prefix}border-color);
border: var(--border-width) dashed var(--border-color);
background: $form-check-input-bg;
box-shadow: none;
flex-direction: column;
@include transition(color $transition-time, background-color $transition-time);
svg {
width: var(--#{$prefix}avatar-upload-icon-size);
height: var(--#{$prefix}avatar-upload-icon-size);
width: var(--avatar-upload-icon-size);
height: var(--avatar-upload-icon-size);
stroke-width: 1;
}
&:hover {
border-color: var(--#{$prefix}primary);
color: var(--#{$prefix}primary);
border-color: var(--primary);
color: var(--primary);
text-decoration: none;
}
}
@@ -148,25 +148,25 @@
.avatar-upload-text {
font-size: $h6-font-size;
line-height: 1;
margin-top: var(--#{$prefix}avatar-upload-text-margin-top);
margin-top: var(--avatar-upload-text-margin-top);
}
.avatar-cover {
--#{$prefix}avatar-cover-ring-width: #{$avatar-cover-ring-width};
--avatar-cover-ring-width: #{$avatar-cover-ring-width};
margin-top: calc(-0.5 * var(--#{$prefix}avatar-size));
box-shadow: 0 0 0 var(--#{$prefix}avatar-cover-ring-width) var(--#{$prefix}card-bg, var(--#{$prefix}body-bg));
margin-top: calc(-0.5 * var(--avatar-size));
box-shadow: 0 0 0 var(--avatar-cover-ring-width) var(--card-bg, var(--body-bg));
}
.avatar-brand {
--#{$prefix}avatar-brand-offset: #{$avatar-brand-offset};
width: var(--#{$prefix}avatar-brand-size);
height: var(--#{$prefix}avatar-brand-size);
--avatar-brand-offset: #{$avatar-brand-offset};
width: var(--avatar-brand-size);
height: var(--avatar-brand-size);
position: absolute;
inset-inline-end: var(--#{$prefix}avatar-brand-offset);
bottom: var(--#{$prefix}avatar-brand-offset);
inset-inline-end: var(--avatar-brand-offset);
bottom: var(--avatar-brand-offset);
z-index: 1000;
background: var(--#{$prefix}bg-surface);
@include border-radius(var(--#{$prefix}border-radius));
border: 1px solid var(--#{$prefix}border-color);
background: var(--bg-surface);
@include border-radius(var(--border-radius));
border: 1px solid var(--border-color);
}
+33 -33
View File
@@ -1,43 +1,43 @@
@use '../config' as *;
.badge {
--#{$prefix}badge-padding-x: #{$badge-padding-x};
--#{$prefix}badge-padding-y: #{$badge-padding-y};
--#{$prefix}badge-font-size: #{$badge-font-size};
--#{$prefix}badge-font-weight: #{$badge-font-weight};
--#{$prefix}badge-color: #{$badge-color};
--#{$prefix}badge-border-radius: #{$badge-border-radius};
--#{$prefix}badge-icon-size: 1em;
--#{$prefix}badge-line-height: 1;
--#{$prefix}badge-gap: #{$badge-gap};
--badge-padding-x: #{$badge-padding-x};
--badge-padding-y: #{$badge-padding-y};
--badge-font-size: #{$badge-font-size};
--badge-font-weight: #{$badge-font-weight};
--badge-color: #{$badge-color};
--badge-border-radius: #{$badge-border-radius};
--badge-icon-size: 1em;
--badge-line-height: 1;
--badge-gap: #{$badge-gap};
display: inline-flex;
padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
font-weight: var(--#{$prefix}badge-font-weight);
font-size: var(--#{$prefix}badge-font-size);
color: var(--#{$prefix}badge-color);
padding: var(--badge-padding-y) var(--badge-padding-x);
font-weight: var(--badge-font-weight);
font-size: var(--badge-font-size);
color: var(--badge-color);
text-align: center;
white-space: nowrap;
justify-content: center;
align-items: center;
gap: var(--#{$prefix}badge-gap);
gap: var(--badge-gap);
background: $badge-bg-color;
overflow: hidden;
user-select: none;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
@include border-radius(var(--#{$prefix}badge-border-radius));
min-width: calc(1em + var(--#{$prefix}badge-padding-y) * 2 + 2px);
border: var(--border-width) var(--border-style) transparent;
@include border-radius(var(--badge-border-radius));
min-width: calc(1em + var(--badge-padding-y) * 2 + 2px);
letter-spacing: 0.04em;
vertical-align: bottom;
line-height: var(--#{$prefix}badge-line-height);
line-height: var(--badge-line-height);
@at-root a#{&} {
background: var(--#{$prefix}bg-surface-secondary);
background: var(--bg-surface-secondary);
}
.icon {
width: 1em;
height: 1em;
font-size: var(--#{$prefix}badge-icon-size);
font-size: var(--badge-icon-size);
stroke-width: 2;
}
}
@@ -50,7 +50,7 @@
min-width: 0;
min-height: auto;
padding: 0;
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
vertical-align: baseline;
}
@@ -59,14 +59,14 @@
//
.badge-outline {
background-color: transparent;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) currentColor;
border: var(--border-width) var(--border-style) currentColor;
}
//
// Pill badge
//
.badge-pill {
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
}
//
@@ -84,7 +84,7 @@
top: 0 !important;
inset-inline-end: 0 !important;
/*rtl:ignore*/
transform: translate(calc(var(--#{$prefix}dir) * 50%), -50%);
transform: translate(calc(var(--dir) * 50%), -50%);
z-index: 1;
}
@@ -96,22 +96,22 @@
// Badge sizes
//
.badge-sm {
--#{$prefix}badge-font-size: #{$badge-font-size-sm};
--#{$prefix}badge-icon-size: 1em;
--#{$prefix}badge-padding-y: 2px;
--#{$prefix}badge-padding-x: #{$badge-padding-x-sm};
--badge-font-size: #{$badge-font-size-sm};
--badge-icon-size: 1em;
--badge-padding-y: 2px;
--badge-padding-x: #{$badge-padding-x-sm};
}
.badge-lg {
--#{$prefix}badge-font-size: #{$badge-font-size-lg};
--#{$prefix}badge-icon-size: 1em;
--#{$prefix}badge-padding-y: #{$badge-padding-y-lg};
--#{$prefix}badge-padding-x: #{$badge-padding-x-lg};
--badge-font-size: #{$badge-font-size-lg};
--badge-icon-size: 1em;
--badge-padding-y: #{$badge-padding-y-lg};
--badge-padding-x: #{$badge-padding-x-lg};
}
//
// Badge with only icon
//
.badge-icononly {
--#{$prefix}badge-padding-x: 0;
--badge-padding-x: 0;
}
+25 -25
View File
@@ -3,31 +3,31 @@
@use '../config' as *;
.breadcrumb {
--#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
--#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
--#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
--#{$prefix}breadcrumb-font-size: #{$breadcrumb-font-size};
--#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
--#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
--#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
--#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
--#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
--#{$prefix}breadcrumb-item-active-font-weight: #{$breadcrumb-active-font-weight};
--#{$prefix}breadcrumb-item-disabled-color: #{$breadcrumb-disabled-color};
--#{$prefix}breadcrumb-link-color: #{$breadcrumb-link-color};
--breadcrumb-padding-x: #{$breadcrumb-padding-x};
--breadcrumb-padding-y: #{$breadcrumb-padding-y};
--breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
--breadcrumb-font-size: #{$breadcrumb-font-size};
--breadcrumb-bg: #{$breadcrumb-bg};
--breadcrumb-border-radius: #{$breadcrumb-border-radius};
--breadcrumb-divider-color: #{$breadcrumb-divider-color};
--breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
--breadcrumb-item-active-color: #{$breadcrumb-active-color};
--breadcrumb-item-active-font-weight: #{$breadcrumb-active-font-weight};
--breadcrumb-item-disabled-color: #{$breadcrumb-disabled-color};
--breadcrumb-link-color: #{$breadcrumb-link-color};
display: flex;
flex-wrap: wrap;
@include font-size(var(--#{$prefix}breadcrumb-font-size));
@include font-size(var(--breadcrumb-font-size));
list-style: none;
background-color: var(--#{$prefix}breadcrumb-bg);
@include border-radius(var(--#{$prefix}breadcrumb-border-radius));
background-color: var(--breadcrumb-bg);
@include border-radius(var(--breadcrumb-border-radius));
padding: 0;
margin: 0;
background: transparent;
a {
color: var(--#{$prefix}breadcrumb-link-color);
color: var(--breadcrumb-link-color);
&:hover {
text-decoration: underline;
@@ -36,13 +36,13 @@
}
.breadcrumb-muted {
--#{$prefix}breadcrumb-link-color: var(--#{$prefix}secondary);
--breadcrumb-link-color: var(--secondary);
}
.breadcrumb-item {
&.active {
color: var(--#{$prefix}breadcrumb-item-active-color);
font-weight: var(--#{$prefix}breadcrumb-item-active-font-weight);
color: var(--breadcrumb-item-active-color);
font-weight: var(--breadcrumb-item-active-font-weight);
a {
color: inherit;
@@ -51,7 +51,7 @@
}
&.disabled {
color: var(--#{$prefix}breadcrumb-item-disabled-color);
color: var(--breadcrumb-item-disabled-color);
&:before {
color: inherit;
@@ -64,13 +64,13 @@
}
& + & {
padding-inline-start: var(--#{$prefix}breadcrumb-item-padding-x);
padding-inline-start: var(--breadcrumb-item-padding-x);
&::before {
float: inline-start;
padding-inline-end: var(--#{$prefix}breadcrumb-item-padding-x);
color: var(--#{$prefix}breadcrumb-divider-color);
content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider));
padding-inline-end: var(--breadcrumb-item-padding-x);
color: var(--breadcrumb-divider-color);
content: var(--breadcrumb-divider, escape-svg($breadcrumb-divider));
/*rtl:raw:
transform: scaleX(-1);
*/
@@ -80,6 +80,6 @@
@each $name, $symbol in $breadcrumb-variants {
.breadcrumb-#{$name} {
--#{$prefix}breadcrumb-divider: '#{string.quote($symbol)}';
--breadcrumb-divider: '#{string.quote($symbol)}';
}
}
+109 -109
View File
@@ -7,47 +7,47 @@
@use '../config' as *;
.btn {
--#{$prefix}btn-icon-size: #{$input-btn-icon-size};
--#{$prefix}btn-icon-color: inherit;
--#{$prefix}btn-bg: var(--#{$prefix}bg-surface);
--#{$prefix}btn-color: var(--#{$prefix}body-color);
--#{$prefix}btn-border-color: #{$btn-border-color};
--#{$prefix}btn-hover-bg: var(--#{$prefix}btn-bg);
--#{$prefix}btn-hover-border-color: var(--#{$prefix}border-active-color);
--#{$prefix}btn-active-color: #{$active-color};
--#{$prefix}btn-active-bg: #{$active-bg};
--#{$prefix}btn-active-border-color: #{$active-border-color};
--btn-icon-size: #{$input-btn-icon-size};
--btn-icon-color: inherit;
--btn-bg: var(--bg-surface);
--btn-color: var(--body-color);
--btn-border-color: #{$btn-border-color};
--btn-hover-bg: var(--btn-bg);
--btn-hover-border-color: var(--border-active-color);
--btn-active-color: #{$active-color};
--btn-active-bg: #{$active-bg};
--btn-active-border-color: #{$active-border-color};
display: inline-flex;
align-items: center;
justify-content: center;
white-space: nowrap;
box-shadow: var(--#{$prefix}btn-box-shadow);
box-shadow: var(--btn-box-shadow);
position: relative;
min-width: calc((var(--#{$prefix}btn-line-height) * 1) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
min-height: calc((var(--#{$prefix}btn-line-height) * 1) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
min-width: calc((var(--btn-line-height) * 1) + (var(--btn-padding-y) * 2) + (var(--btn-border-width) * 2));
min-height: calc((var(--btn-line-height) * 1) + (var(--btn-padding-y) * 2) + (var(--btn-border-width) * 2));
@include border-radius(var(--#{$prefix}btn-border-radius));
@include border-radius(var(--btn-border-radius));
.icon {
width: var(--#{$prefix}btn-icon-size);
height: var(--#{$prefix}btn-icon-size);
min-width: var(--#{$prefix}btn-icon-size);
font-size: var(--#{$prefix}btn-icon-size);
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
width: var(--btn-icon-size);
height: var(--btn-icon-size);
min-width: var(--btn-icon-size);
font-size: var(--btn-icon-size);
margin: 0 calc(var(--btn-padding-x) / 2) 0 calc(var(--btn-padding-x) / -4);
vertical-align: bottom;
color: var(--#{$prefix}btn-icon-color);
color: var(--btn-icon-color);
}
.avatar {
width: var(--#{$prefix}btn-icon-size);
height: var(--#{$prefix}btn-icon-size);
margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
width: var(--btn-icon-size);
height: var(--btn-icon-size);
margin: 0 calc(var(--btn-padding-x) / 2) 0 calc(var(--btn-padding-x) / -4);
}
.icon-right,
.icon-end {
margin: 0 calc(var(--#{$prefix}btn-padding-x) / -4) 0 calc(var(--#{$prefix}btn-padding-x) / 2);
margin: 0 calc(var(--btn-padding-x) / -4) 0 calc(var(--btn-padding-x) / 2);
}
.badge {
@@ -55,9 +55,9 @@
}
.btn-check + &:hover {
color: var(--#{$prefix}btn-hover-color);
background-color: var(--#{$prefix}btn-hover-bg);
border-color: var(--#{$prefix}btn-hover-border-color);
color: var(--btn-hover-color);
background-color: var(--btn-hover-bg);
border-color: var(--btn-hover-border-color);
}
}
@@ -81,69 +81,69 @@
// Button color variations
//
.btn-ghost {
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-box-shadow: none;
--#{$prefix}btn-hover-bg: var(--#{$prefix}bg-surface-secondary);
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-hover-color: var(--#{$prefix}body-color);
--btn-bg: transparent;
--btn-border-color: transparent;
--btn-box-shadow: none;
--btn-hover-bg: var(--bg-surface-secondary);
--btn-hover-border-color: transparent;
--btn-hover-color: var(--body-color);
}
@each $color, $value in map.merge($theme-colors, $social-colors) {
.btn-#{$color} {
@if $color == 'dark' {
--#{$prefix}btn-border-color: var(--#{$prefix}dark-mode-border-color);
--#{$prefix}btn-hover-border-color: var(--#{$prefix}dark-mode-border-active-color);
--#{$prefix}btn-active-border-color: var(--#{$prefix}dark-mode-border-active-color);
--btn-border-color: var(--dark-mode-border-color);
--btn-hover-border-color: var(--dark-mode-border-active-color);
--btn-active-border-color: var(--dark-mode-border-active-color);
} @else {
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-active-border-color: transparent;
--btn-border-color: transparent;
--btn-hover-border-color: transparent;
--btn-active-border-color: transparent;
}
--#{$prefix}btn-color: var(--#{$prefix}#{$color}-fg, #{$white});
--#{$prefix}btn-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color}-darken);
--#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-active-bg: var(--#{$prefix}#{$color}-darken);
--#{$prefix}btn-disabled-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
--btn-color: var(--#{$color}-fg, #{$white});
--btn-bg: var(--#{$color});
--btn-hover-color: var(--#{$color}-fg);
--btn-hover-bg: var(--#{$color}-darken);
--btn-active-color: var(--#{$color}-fg);
--btn-active-bg: var(--#{$color}-darken);
--btn-disabled-bg: var(--#{$color});
--btn-disabled-color: var(--#{$color}-fg);
--btn-box-shadow: var(--shadow-input);
}
.btn-outline-#{$color},
.btn-outline.btn-#{$color} {
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-active-border-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-disabled-border-color: var(--#{$prefix}#{$color});
--btn-color: var(--#{$color});
--btn-bg: transparent;
--btn-border-color: var(--#{$color});
--btn-hover-color: var(--#{$color}-fg);
--btn-hover-border-color: transparent;
--btn-hover-bg: var(--#{$color});
--btn-active-color: var(--#{$color}-fg);
--btn-active-bg: var(--#{$color});
--btn-active-border-color: var(--#{$color});
--btn-disabled-color: var(--#{$color});
--btn-disabled-border-color: var(--#{$color});
}
.btn-ghost-#{$color},
.btn-ghost.btn-#{$color} {
--#{$prefix}btn-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-hover-border-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
--#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
--#{$prefix}btn-active-border-color: transparent;
--#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
--#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
--#{$prefix}btn-disabled-bg: transparent;
--#{$prefix}btn-disabled-border-color: transparent;
--#{$prefix}gradient: none;
--#{$prefix}btn-box-shadow: none;
--btn-color: var(--#{$color});
--btn-bg: transparent;
--btn-border-color: transparent;
--btn-hover-color: var(--#{$color}-fg);
--btn-hover-bg: var(--#{$color});
--btn-hover-border-color: var(--#{$color});
--btn-active-color: var(--#{$color}-fg);
--btn-active-bg: var(--#{$color});
--btn-active-border-color: transparent;
--btn-active-shadow: #{$btn-active-box-shadow};
--btn-disabled-color: var(--#{$color});
--btn-disabled-bg: transparent;
--btn-disabled-border-color: transparent;
--gradient: none;
--btn-box-shadow: none;
}
}
@@ -152,23 +152,23 @@
//
.btn-sm,
.btn-group-sm > .btn {
--#{$prefix}btn-line-height: #{$input-btn-line-height-sm};
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-sm};
--btn-line-height: #{$input-btn-line-height-sm};
--btn-icon-size: #{$input-btn-icon-size-sm};
}
.btn-lg,
.btn-group-lg > .btn {
--#{$prefix}btn-line-height: #{$input-btn-line-height-lg};
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-lg};
--btn-line-height: #{$input-btn-line-height-lg};
--btn-icon-size: #{$input-btn-icon-size-lg};
}
.btn-xl,
.btn-group-xl > .btn {
--#{$prefix}btn-line-height: #{$input-btn-line-height-xl};
--#{$prefix}btn-icon-size: #{$input-btn-icon-size-xl};
--#{$prefix}btn-padding-y: #{$input-btn-padding-y-xl};
--#{$prefix}btn-padding-x: #{$input-btn-padding-x-xl};
--#{$prefix}btn-font-size: #{$input-btn-font-size-xl};
--btn-line-height: #{$input-btn-line-height-xl};
--btn-icon-size: #{$input-btn-icon-size-xl};
--btn-padding-y: #{$input-btn-padding-y-xl};
--btn-padding-x: #{$input-btn-padding-x-xl};
--btn-font-size: #{$input-btn-font-size-xl};
}
//
@@ -177,12 +177,12 @@
.btn-pill {
padding-inline-end: 1.5em;
padding-inline-start: 1.5em;
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
&[class*='btn-icon'] {
--#{$prefix}btn-pill-icon-padding-y: #{$btn-pill-icon-padding-y};
--#{$prefix}btn-pill-icon-padding-x: #{$btn-pill-icon-padding-x};
padding: var(--#{$prefix}btn-pill-icon-padding-y) var(--#{$prefix}btn-pill-icon-padding-x);
--btn-pill-icon-padding-y: #{$btn-pill-icon-padding-y};
--btn-pill-icon-padding-x: #{$btn-pill-icon-padding-x};
padding: var(--btn-pill-icon-padding-y) var(--btn-pill-icon-padding-x);
}
}
@@ -199,12 +199,12 @@
padding-inline-end: 0;
.icon {
margin: calc(-1 * var(--#{$prefix}btn-padding-x));
margin: calc(-1 * var(--btn-padding-x));
}
//[BUG] btn-sm and btn-xl with an icon looks broken
//issue #2470 fixed
min-width: calc(var(--#{$prefix}btn-line-height) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
min-width: calc(var(--btn-line-height) + (var(--btn-padding-y) * 2) + (var(--btn-border-width) * 2));
}
//
@@ -222,12 +222,12 @@
// Button floating
//
.btn-floating {
--#{$prefix}btn-floating-offset: #{$btn-floating-offset};
--btn-floating-offset: #{$btn-floating-offset};
position: fixed;
z-index: $zindex-fixed;
bottom: var(--#{$prefix}btn-floating-offset);
inset-inline-start: var(--#{$prefix}btn-floating-offset);
box-shadow: var(--#{$prefix}shadow-dropdown);
bottom: var(--btn-floating-offset);
inset-inline-start: var(--btn-floating-offset);
box-shadow: var(--shadow-dropdown);
@include media-print {
display: none;
@@ -251,15 +251,15 @@
content: '';
display: inline-block;
vertical-align: text-bottom;
border: $spinner-border-width var(--#{$prefix}border-style) currentColor;
border: $spinner-border-width var(--border-style) currentColor;
border-inline-end-color: transparent;
@include border-radius(var(--#{$prefix}border-radius-pill));
color: var(--#{$prefix}btn-color);
@include border-radius(var(--border-radius-pill));
color: var(--btn-color);
position: absolute;
width: var(--#{$prefix}btn-icon-size);
height: var(--#{$prefix}btn-icon-size);
inset-inline-start: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
top: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
width: var(--btn-icon-size);
height: var(--btn-icon-size);
inset-inline-start: calc(50% - var(--btn-icon-size) / 2);
top: calc(50% - var(--btn-icon-size) / 2);
animation: spinner-border 0.75s linear infinite;
}
}
@@ -268,9 +268,9 @@
// Action button
//
.btn-action {
--#{$prefix}border-color: transparent;
color: var(--#{$prefix}secondary);
@include border-radius(var(--#{$prefix}border-radius));
--border-color: transparent;
color: var(--secondary);
@include border-radius(var(--border-radius));
background: transparent;
box-shadow: none;
@@ -284,20 +284,20 @@
}
&:focus-visible {
outline: 2px solid var(--#{$prefix}primary);
outline: 2px solid var(--primary);
outline-offset: -2px;
box-shadow: none;
}
&:hover,
&.show {
color: var(--#{$prefix}body-color);
background: var(--#{$prefix}active-bg);
color: var(--body-color);
background: var(--active-bg);
border-color: transparent;
}
&.show {
color: var(--#{$prefix}primary);
color: var(--primary);
}
@include media-print {
@@ -322,7 +322,7 @@
&:focus-visible {
.icon {
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * 4px));
transform: translateX(calc(var(--dir) * 4px));
}
}
@@ -340,7 +340,7 @@
&:focus-visible {
.icon {
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * -4px));
transform: translateX(calc(var(--dir) * -4px));
}
}
}
+23 -22
View File
@@ -1,13 +1,13 @@
@use '../config' as *;
.calendar {
--#{$prefix}calendar-padding-y: #{$calendar-padding-y};
--#{$prefix}calendar-date-padding: #{$calendar-date-padding};
--#{$prefix}calendar-date-size: #{$calendar-date-size};
--calendar-padding-y: #{$calendar-padding-y};
--calendar-date-padding: #{$calendar-date-padding};
--calendar-date-size: #{$calendar-date-size};
display: block;
font-size: $font-size-sm;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
@include border-radius(var(--#{$prefix}border-radius));
border: var(--border-width) var(--border-style) var(--border-color);
@include border-radius(var(--border-radius));
}
.calendar-nav {
@@ -25,17 +25,17 @@
display: flex;
flex-wrap: wrap;
justify-content: start;
padding: var(--#{$prefix}calendar-padding-y) 0;
padding: var(--calendar-padding-y) 0;
}
.calendar-header {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.calendar-date {
flex: 0 0 calc(100% / 7);
max-width: calc(100% / 7);
padding: var(--#{$prefix}calendar-date-padding);
padding: var(--calendar-date-padding);
text-align: center;
border: 0;
@@ -47,9 +47,9 @@
.date-item {
position: relative;
display: inline-block;
width: var(--#{$prefix}calendar-date-size);
height: var(--#{$prefix}calendar-date-size);
line-height: var(--#{$prefix}calendar-date-size);
width: var(--calendar-date-size);
height: var(--calendar-date-size);
line-height: var(--calendar-date-size);
color: #66758c;
text-align: center;
text-decoration: none;
@@ -57,26 +57,27 @@
vertical-align: middle;
cursor: pointer;
background: 0 0;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
@include border-radius(var(--#{$prefix}border-radius-pill));
border: var(--border-width) var(--border-style) transparent;
@include border-radius(var(--border-radius-pill));
outline: 0;
@include transition(background $transition-time, border $transition-time, box-shadow 0.32s, color $transition-time);
&:hover {
color: var(--#{$prefix}primary);
color: var(--primary);
text-decoration: none;
background: #fefeff;
border-color: var(--#{$prefix}border-color);
border-color: var(--border-color);
}
&:focus-visible {
outline: 2px solid var(--#{$prefix}primary);
outline: 2px solid var(--primary);
outline-offset: 2px;
}
}
.date-today {
color: var(--#{$prefix}primary);
border-color: var(--#{$prefix}border-color);
color: var(--primary);
border-color: var(--border-color);
}
}
@@ -88,9 +89,9 @@
top: 50%;
inset-inline-end: 0;
inset-inline-start: 0;
height: var(--#{$prefix}calendar-date-size);
height: var(--calendar-date-size);
content: '';
background: color-transparent(var(--#{$prefix}primary), 0.1);
background: color-transparent(var(--primary), 0.1);
transform: translateY(-50%);
}
@@ -98,8 +99,8 @@
&.range-end {
.date-item {
color: $white;
background: var(--#{$prefix}primary);
border-color: var(--#{$prefix}primary);
background: var(--primary);
border-color: var(--primary);
}
}
+117 -117
View File
@@ -2,7 +2,7 @@
@use '../config' as *;
@property --tblr-card-gradient-direction {
@property --card-gradient-direction {
syntax: '<angle>';
inherits: true;
initial-value: 180deg;
@@ -10,11 +10,11 @@
@keyframes gradient-animation {
0% {
--#{$prefix}card-gradient-direction: 180deg;
--card-gradient-direction: 180deg;
}
100% {
--#{$prefix}card-gradient-direction: 540deg;
--card-gradient-direction: 540deg;
}
}
@@ -31,7 +31,7 @@
&:hover {
text-decoration: none;
box-shadow: var(--#{$prefix}shadow-card-hover);
box-shadow: var(--shadow-card-hover);
}
}
@@ -51,24 +51,24 @@
// Card dashed
.card-dashed {
border: var(--#{$prefix}border-width) dashed var(--#{$prefix}border-color);
border: var(--border-width) dashed var(--border-color);
}
// Card transparent
.card-transparent {
background: transparent;
border: var(--#{$prefix}border-width) dashed var(--#{$prefix}border-color);
border: var(--border-width) dashed var(--border-color);
box-shadow: none;
}
// Card stamp
.card-stamp {
--#{$prefix}stamp-size: #{$card-stamp-size};
--stamp-size: #{$card-stamp-size};
position: absolute;
top: 0;
inset-inline-end: 0;
width: calc(var(--#{$prefix}stamp-size) * 1);
height: calc(var(--#{$prefix}stamp-size) * 1);
width: calc(var(--stamp-size) * 1);
height: calc(var(--stamp-size) * 1);
max-height: 100%;
border-start-end-radius: $border-radius;
opacity: $card-stamp-opacity;
@@ -77,28 +77,28 @@
}
.card-stamp-lg {
--#{$prefix}stamp-size: #{$card-stamp-size-lg};
--stamp-size: #{$card-stamp-size-lg};
}
.card-stamp-icon {
background: var(--#{$prefix}secondary);
color: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
background: var(--secondary);
color: var(--card-bg, var(--bg-surface));
display: flex;
align-items: center;
justify-content: center;
@include border-radius(var(--#{$prefix}border-radius-pill));
width: calc(var(--#{$prefix}stamp-size) * 1);
height: calc(var(--#{$prefix}stamp-size) * 1);
@include border-radius(var(--border-radius-pill));
width: calc(var(--stamp-size) * 1);
height: calc(var(--stamp-size) * 1);
position: relative;
top: calc(var(--#{$prefix}stamp-size) * -0.25);
inset-inline-end: calc(var(--#{$prefix}stamp-size) * -0.25);
font-size: calc(var(--#{$prefix}stamp-size) * 0.75);
top: calc(var(--stamp-size) * -0.25);
inset-inline-end: calc(var(--stamp-size) * -0.25);
font-size: calc(var(--stamp-size) * 0.75);
transform: rotate(10deg);
.icon {
stroke-width: 2;
width: calc(var(--#{$prefix}stamp-size) * 0.75);
height: calc(var(--#{$prefix}stamp-size) * 0.75);
width: calc(var(--stamp-size) * 0.75);
height: calc(var(--stamp-size) * 0.75);
}
}
@@ -133,8 +133,8 @@
}
.card-active {
--#{$prefix}card-border-color: var(--#{$prefix}primary);
--#{$prefix}card-bg: var(--#{$prefix}active-bg);
--card-border-color: var(--primary);
--card-bg: var(--active-bg);
}
.card-btn {
@@ -143,10 +143,10 @@
justify-content: center;
padding: $card-spacer-y $card-spacer-x;
text-align: center;
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-top: var(--border-width) var(--border-style) var(--border-color);
flex: 1;
color: inherit;
font-weight: var(--#{$prefix}font-weight-medium);
font-weight: var(--font-weight-medium);
@include transition(background $transition-time);
&:hover {
@@ -155,7 +155,7 @@
}
& + & {
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-inline-start: var(--border-width) var(--border-style) var(--border-color);
}
}
@@ -163,19 +163,19 @@
Stacked card
*/
.card-stacked {
--#{$prefix}card-stacked-offset: #{$card-stacked-offset};
--card-stacked-offset: #{$card-stacked-offset};
position: relative;
&:after {
position: absolute;
top: calc(-1 * var(--#{$prefix}card-stacked-offset));
inset-inline-end: var(--#{$prefix}card-stacked-offset);
inset-inline-start: var(--#{$prefix}card-stacked-offset);
height: var(--#{$prefix}card-stacked-offset);
top: calc(-1 * var(--card-stacked-offset));
inset-inline-end: var(--card-stacked-offset);
inset-inline-start: var(--card-stacked-offset);
height: var(--card-stacked-offset);
content: '';
background: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}card-border-color);
@include border-radius(var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius) 0 0);
background: var(--card-bg, var(--bg-surface));
border: var(--border-width) var(--border-style) var(--card-border-color);
@include border-radius(var(--card-border-radius) var(--card-border-radius) 0 0);
}
}
@@ -207,9 +207,9 @@ Stacked card
}
.card-actions {
--#{$prefix}card-actions-gutter: #{$card-actions-gutter};
margin: calc(-1 * var(--#{$prefix}card-actions-gutter)) calc(-1 * var(--#{$prefix}card-actions-gutter)) calc(-1 * var(--#{$prefix}card-actions-gutter)) auto;
padding-inline-start: var(--#{$prefix}card-actions-gutter);
--card-actions-gutter: #{$card-actions-gutter};
margin: calc(-1 * var(--card-actions-gutter)) calc(-1 * var(--card-actions-gutter)) calc(-1 * var(--card-actions-gutter)) auto;
padding-inline-start: var(--card-actions-gutter);
a {
text-decoration: none;
@@ -221,31 +221,31 @@ Stacked card
color: inherit;
display: flex;
align-items: center;
background-color: var(--#{$prefix}card-cap-bg);
background-color: var(--card-cap-bg);
&:first-child {
@include border-radius(var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius) 0 0);
@include border-radius(var(--card-border-radius) var(--card-border-radius) 0 0);
}
}
.card-header-light {
border-bottom-color: transparent;
background: var(--#{$prefix}bg-surface-tertiary);
background: var(--bg-surface-tertiary);
}
.card-header-tabs {
background: $card-header-tabs-bg;
flex: 1;
margin: calc(var(--#{$prefix}card-cap-padding-y) * -1) calc(var(--#{$prefix}card-cap-padding-x) * -1) calc(var(--#{$prefix}card-cap-padding-y) * -1);
padding: calc(var(--#{$prefix}card-cap-padding-y) * 0.5) calc(var(--#{$prefix}card-cap-padding-x) * 0.5) 0;
@include border-radius(var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius) 0 0);
margin: calc(var(--card-cap-padding-y) * -1) calc(var(--card-cap-padding-x) * -1) calc(var(--card-cap-padding-y) * -1);
padding: calc(var(--card-cap-padding-y) * 0.5) calc(var(--card-cap-padding-x) * 0.5) 0;
@include border-radius(var(--card-border-radius) var(--card-border-radius) 0 0);
}
.card-header-pills {
--#{$prefix}card-header-pills-margin: #{$card-header-pills-margin};
--card-header-pills-margin: #{$card-header-pills-margin};
flex: 1;
margin-top: calc(-1 * var(--#{$prefix}card-header-pills-margin));
margin-bottom: calc(-1 * var(--#{$prefix}card-header-pills-margin));
margin-top: calc(-1 * var(--card-header-pills-margin));
margin-bottom: calc(-1 * var(--card-header-pills-margin));
}
// Card rotate
@@ -285,7 +285,7 @@ Stacked card
margin-top: auto;
&:last-child {
@include border-radius(0 0 var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius));
@include border-radius(0 0 var(--card-border-radius) var(--card-border-radius));
}
}
@@ -301,8 +301,8 @@ Stacked card
// Card progress
.card-progress {
--#{$prefix}card-progress-height: #{$card-progress-height};
height: var(--#{$prefix}card-progress-height);
--card-progress-height: #{$card-progress-height};
height: var(--card-progress-height);
&:last-child {
@include border-radius(0 0 2px 2px);
@@ -314,18 +314,18 @@ Stacked card
}
.card-meta {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.card-title {
--#{$prefix}card-title-margin-bottom: #{$card-title-margin-bottom};
--#{$prefix}card-title-line-height: #{$card-title-line-height};
--card-title-margin-bottom: #{$card-title-margin-bottom};
--card-title-line-height: #{$card-title-line-height};
display: block;
margin: 0 0 var(--#{$prefix}card-title-margin-bottom);
margin: 0 0 var(--card-title-margin-bottom);
font-size: $h3-font-size;
font-weight: var(--#{$prefix}font-weight-medium);
color: var(--#{$prefix}heading-color);
line-height: var(--#{$prefix}card-title-line-height);
font-weight: var(--font-weight-medium);
color: var(--heading-color);
line-height: var(--card-title-line-height);
@at-root a#{&}:hover {
color: inherit;
@@ -337,9 +337,9 @@ Stacked card
}
.card-subtitle {
--#{$prefix}card-subtitle-margin-start: #{$card-subtitle-margin-start};
--card-subtitle-margin-start: #{$card-subtitle-margin-start};
margin-bottom: $card-title-spacer-y;
color: var(--#{$prefix}secondary);
color: var(--secondary);
font-weight: normal;
.card-header & {
@@ -347,16 +347,16 @@ Stacked card
}
.card-title & {
margin: 0 0 0 var(--#{$prefix}card-subtitle-margin-start);
margin: 0 0 0 var(--card-subtitle-margin-start);
font-size: $h4-font-size;
}
}
.card-body {
--#{$prefix}card-body-padding-sm: #{$card-body-padding-sm};
--#{$prefix}card-body-padding-md: #{$card-body-padding-md};
--#{$prefix}card-body-padding-lg: #{$card-body-padding-lg};
--#{$prefix}card-body-padding-lg-up: #{$card-body-padding-lg-up};
--card-body-padding-sm: #{$card-body-padding-sm};
--card-body-padding-md: #{$card-body-padding-md};
--card-body-padding-lg: #{$card-body-padding-lg};
--card-body-padding-lg-up: #{$card-body-padding-lg-up};
position: relative;
> :last-child {
@@ -364,22 +364,22 @@ Stacked card
}
.card-sm > & {
padding: var(--#{$prefix}card-body-padding-sm);
padding: var(--card-body-padding-sm);
}
.card-md > & {
@include media-breakpoint-up(md) {
padding: var(--#{$prefix}card-body-padding-md);
padding: var(--card-body-padding-md);
}
}
.card-lg > & {
@include media-breakpoint-up(md) {
padding: var(--#{$prefix}card-body-padding-lg);
padding: var(--card-body-padding-lg);
}
@include media-breakpoint-up(lg) {
padding: var(--#{$prefix}card-body-padding-lg-up);
padding: var(--card-body-padding-lg-up);
}
}
@@ -388,7 +388,7 @@ Stacked card
}
& + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-top: var(--border-width) var(--border-style) var(--border-color);
}
}
@@ -400,21 +400,21 @@ Stacked card
Card optinos
*/
.card-options {
--#{$prefix}card-options-top: #{$card-options-top};
--#{$prefix}card-options-inset: #{$card-options-inset};
top: var(--#{$prefix}card-options-top);
inset-inline-end: var(--#{$prefix}card-options-inset);
--card-options-top: #{$card-options-top};
--card-options-inset: #{$card-options-inset};
top: var(--card-options-top);
inset-inline-end: var(--card-options-inset);
display: flex;
margin-inline-start: auto;
}
.card-options-link {
--#{$prefix}card-options-link-min-width: #{$card-options-link-min-width};
--#{$prefix}card-options-link-margin-start: #{$card-options-link-margin-start};
--card-options-link-min-width: #{$card-options-link-min-width};
--card-options-link-margin-start: #{$card-options-link-margin-start};
display: inline-block;
min-width: var(--#{$prefix}card-options-link-min-width);
margin-inline-start: var(--#{$prefix}card-options-link-margin-start);
color: var(--#{$prefix}secondary);
min-width: var(--card-options-link-min-width);
margin-inline-start: var(--card-options-link-margin-start);
color: var(--secondary);
}
/**
@@ -426,7 +426,7 @@ Card status
inset-inline-end: 0;
inset-inline-start: 0;
height: $card-status-size;
@include border-radius(var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius) 0 0);
@include border-radius(var(--card-border-radius) var(--card-border-radius) 0 0);
}
.card-status-start {
@@ -435,7 +435,7 @@ Card status
bottom: 0;
width: $card-status-size;
height: 100%;
@include border-radius(var(--#{$prefix}card-border-radius) 0 0 var(--#{$prefix}card-border-radius));
@include border-radius(var(--card-border-radius) 0 0 var(--card-border-radius));
}
.card-status-bottom {
@@ -444,7 +444,7 @@ Card status
bottom: 0;
width: 100%;
height: $card-status-size;
@include border-radius(0 0 var(--#{$prefix}card-border-radius) var(--#{$prefix}card-border-radius));
@include border-radius(0 0 var(--card-border-radius) var(--card-border-radius));
}
/**
@@ -459,13 +459,13 @@ Card table
&:first-child {
padding-inline-start: $card-spacer-x;
border-inline-start: 0;
border-start-start-radius: var(--#{$prefix}card-border-radius);
border-start-start-radius: var(--card-border-radius);
}
&:last-child {
padding-inline-end: $card-spacer-x;
border-inline-end: 0;
border-start-end-radius: var(--#{$prefix}card-border-radius);
border-start-end-radius: var(--card-border-radius);
}
}
}
@@ -476,11 +476,11 @@ Card table
&:last-child {
tr:last-child {
> *:last-child {
border-end-end-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width));
border-end-end-radius: calc(var(--card-border-radius) - var(--card-border-width));
}
> *:first-child {
border-end-start-radius: calc(var(--#{$prefix}card-border-radius) - var(--#{$prefix}card-border-width));
border-end-start-radius: calc(var(--card-border-radius) - var(--card-border-width));
}
}
}
@@ -516,7 +516,7 @@ Card table
}
.card-body + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}table-border-color);
border-top: var(--border-width) var(--border-style) var(--table-border-color);
}
}
@@ -541,21 +541,21 @@ Card code
Card chart
*/
.card-chart {
--#{$prefix}card-avatar-height: #{$card-avatar-height};
--card-avatar-height: #{$card-avatar-height};
position: relative;
z-index: 1;
height: var(--#{$prefix}card-avatar-height);
height: var(--card-avatar-height);
}
/**
Card avatar
*/
.card-avatar {
--#{$prefix}card-avatar-ring-width: #{$card-avatar-ring-width};
--card-avatar-ring-width: #{$card-avatar-ring-width};
margin-inline-start: auto;
margin-inline-end: auto;
box-shadow: 0 0 0 var(--#{$prefix}card-avatar-ring-width) var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
margin-top: calc(-1 * calc(var(--#{$prefix}avatar-size) * 0.5));
box-shadow: 0 0 0 var(--card-avatar-ring-width) var(--card-bg, var(--bg-surface));
margin-top: calc(-1 * calc(var(--avatar-size) * 0.5));
}
/*
@@ -563,7 +563,7 @@ Card list group
*/
.card-list-group {
.card-body + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-top: var(--border-width) var(--border-style) var(--border-color);
}
.list-group-item {
@@ -592,18 +592,18 @@ Card list group
.nav-link {
background: $card-cap-bg;
border: $card-border-width var(--#{$prefix}border-style) $card-border-color;
border: $card-border-width var(--border-style) $card-border-color;
&.active,
&:active,
&:hover {
border-color: $card-border-color;
color: var(--#{$prefix}body-color);
color: var(--body-color);
}
&.active {
color: $headings-color;
background: var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
background: var(--card-bg, var(--bg-surface));
border-bottom-color: transparent;
}
}
@@ -643,7 +643,7 @@ Card list group
margin-bottom: 0;
.nav-link {
border-bottom: $card-border-width var(--#{$prefix}border-style) $card-border-color;
border-bottom: $card-border-width var(--border-style) $card-border-color;
@include border-radius(0 0 $card-border-radius $card-border-radius);
}
@@ -662,12 +662,12 @@ Card list group
}
.nav-tabs + .tab-content .card {
border-end-start-radius: var(--#{$prefix}card-border-radius);
border-end-start-radius: var(--card-border-radius);
border-start-start-radius: 0 !important;
}
.tab-content:has(+ .nav-tabs) .card {
border-start-start-radius: var(--#{$prefix}card-border-radius);
border-start-start-radius: var(--card-border-radius);
border-end-start-radius: 0 !important;
}
}
@@ -676,64 +676,64 @@ Card list group
Card note
*/
.card-note {
--#{$prefix}card-bg: #fff7dd;
--#{$prefix}card-border-color: #fff1c9;
--card-bg: #fff7dd;
--card-border-color: #fff1c9;
}
/**
Card gradient
*/
.card-gradient {
--#{$prefix}card-gradient-direction: 180deg;
--#{$prefix}card-gradient-opacity: 86%;
--#{$prefix}card-gradient: var(--tblr-primary), var(--tblr-primary);
--card-gradient-direction: 180deg;
--card-gradient-opacity: 86%;
--card-gradient: var(--primary), var(--primary);
background:
radial-gradient(ellipse at center, var(--#{$prefix}card-bg) 0%, color-mix(in srgb, var(--#{$prefix}card-bg) 0%, transparent) 80%) border-box,
linear-gradient(var(--#{$prefix}card-gradient-direction), color-mix(in srgb, var(--#{$prefix}card-bg) var(--#{$prefix}card-gradient-opacity), transparent) 0%, var(--#{$prefix}card-bg) 40%) border-box,
linear-gradient(calc(270deg + var(--#{$prefix}card-gradient-direction)), var(--#{$prefix}card-gradient)) border-box;
radial-gradient(ellipse at center, var(--card-bg) 0%, color-mix(in srgb, var(--card-bg) 0%, transparent) 80%) border-box,
linear-gradient(var(--card-gradient-direction), color-mix(in srgb, var(--card-bg) var(--card-gradient-opacity), transparent) 0%, var(--card-bg) 40%) border-box,
linear-gradient(calc(270deg + var(--card-gradient-direction)), var(--card-gradient)) border-box;
}
@each $name, $color in map.merge($colors, $theme-colors) {
.card-gradient-#{$name} {
--#{$prefix}card-gradient: var(--tblr-#{$name}), var(--tblr-#{$name});
--card-gradient: var(--#{$name}), var(--#{$name});
}
}
.card-gradient-rainbow {
--#{$prefix}card-gradient: #78c5d6, #459ba8, #79c267, #c5d647, #f5d63d, #f08b33, #e868a2, #be61a5;
--card-gradient: #78c5d6, #459ba8, #79c267, #c5d647, #f5d63d, #f08b33, #e868a2, #be61a5;
}
.card-gradient-sun {
--#{$prefix}card-gradient: #fd1d1d, #fcb045;
--card-gradient: #fd1d1d, #fcb045;
}
.card-gradient-snow {
--#{$prefix}card-gradient: #333, #e9ecef;
--card-gradient: #333, #e9ecef;
}
.card-gradient-ocean {
--#{$prefix}card-gradient: #1cb5e0, #000851;
--card-gradient: #1cb5e0, #000851;
}
.card-gradient-mellow {
--#{$prefix}card-gradient: #f8ff00, #3ad59f;
--card-gradient: #f8ff00, #3ad59f;
}
.card-gradient-disco {
--#{$prefix}card-gradient: #fc466b, #3f5efb;
--card-gradient: #fc466b, #3f5efb;
}
.card-gradient-psychedelic {
--#{$prefix}card-gradient: #fcc5e4, #fda34b, #ff7882, #c8699e, #7046aa, #0c1db8, #020f75;
--card-gradient: #fcc5e4, #fda34b, #ff7882, #c8699e, #7046aa, #0c1db8, #020f75;
}
.card-gradient-love {
--#{$prefix}card-gradient: #f235e6, #bc0707;
--card-gradient: #f235e6, #bc0707;
}
.card-gradient-gold {
--#{$prefix}card-gradient: #9d4100, #bf7122, #f59f00, #ffd700;
--card-gradient: #9d4100, #bf7122, #f59f00, #ffd700;
}
.card-gradient-animated {
@@ -741,13 +741,13 @@ Card gradient
}
.card-gradient-bottom {
--#{$prefix}card-gradient-direction: 0deg;
--card-gradient-direction: 0deg;
}
.card-gradient-end {
--#{$prefix}card-gradient-direction: 270deg;
--card-gradient-direction: 270deg;
}
.card-gradient-start {
--#{$prefix}card-gradient-direction: 90deg;
--card-gradient-direction: 90deg;
}
+8 -8
View File
@@ -4,11 +4,11 @@
}
.carousel-indicators-vertical {
--#{$prefix}carousel-indicators-vertical-margin-inline-end: #{$carousel-indicators-vertical-margin-inline-end};
--carousel-indicators-vertical-margin-inline-end: #{$carousel-indicators-vertical-margin-inline-end};
inset-inline-start: auto;
top: 0;
margin: 0 var(--#{$prefix}carousel-indicators-vertical-margin-inline-end) 0 0;
margin: 0 var(--carousel-indicators-vertical-margin-inline-end) 0 0;
flex-direction: column;
[data-bs-target],
@@ -17,8 +17,8 @@
width: $carousel-indicator-height;
height: $carousel-indicator-width;
border: 0;
border-inline-start: $carousel-indicator-hit-area-height var(--#{$prefix}border-style) transparent;
border-inline-end: $carousel-indicator-hit-area-height var(--#{$prefix}border-style) transparent;
border-inline-start: $carousel-indicator-hit-area-height var(--border-style) transparent;
border-inline-end: $carousel-indicator-hit-area-height var(--border-style) transparent;
}
}
@@ -27,8 +27,8 @@
[data-target] {
width: $carousel-indicator-dot-width;
height: $carousel-indicator-dot-width;
@include border-radius(var(--#{$prefix}border-radius-pill));
border: $carousel-indicator-hit-area-height var(--#{$prefix}border-style) transparent;
@include border-radius(var(--border-radius-pill));
border: $carousel-indicator-hit-area-height var(--border-style) transparent;
margin: 0;
}
}
@@ -40,7 +40,7 @@
height: auto;
background: no-repeat center/cover;
border: 0;
@include border-radius(var(--#{$prefix}border-radius));
@include border-radius(var(--border-radius));
box-shadow: $box-shadow;
margin: 0 $carousel-indicator-spacer;
opacity: $carousel-indicator-thumb-opacity;
@@ -51,7 +51,7 @@
&:before {
content: '';
padding-top: var(--#{$prefix}aspect-ratio, 100%);
padding-top: var(--aspect-ratio, 100%);
display: block;
}
}
+22 -22
View File
@@ -1,10 +1,10 @@
@use '../config' as *;
.chart {
--#{$prefix}chart-min-height: #{$chart-min-height};
--chart-min-height: #{$chart-min-height};
display: block;
min-height: var(--#{$prefix}chart-min-height);
min-height: var(--chart-min-height);
text {
font-family: inherit;
@@ -12,57 +12,57 @@
}
.chart-sm {
--#{$prefix}chart-height-sm: #{$chart-height-sm};
--chart-height-sm: #{$chart-height-sm};
height: var(--#{$prefix}chart-height-sm);
height: var(--chart-height-sm);
}
.chart-lg {
--#{$prefix}chart-height-lg: #{$chart-height-lg};
--chart-height-lg: #{$chart-height-lg};
height: var(--#{$prefix}chart-height-lg);
height: var(--chart-height-lg);
}
.chart-square {
--#{$prefix}chart-height-square: #{$chart-height-square};
--chart-height-square: #{$chart-height-square};
height: var(--#{$prefix}chart-height-square);
height: var(--chart-height-square);
}
/**
Chart sparkline
*/
.chart-sparkline {
--#{$prefix}chart-sparkline-width: #{$chart-sparkline-width};
--#{$prefix}chart-sparkline-height: #{$chart-sparkline-height};
--chart-sparkline-width: #{$chart-sparkline-width};
--chart-sparkline-height: #{$chart-sparkline-height};
position: relative;
width: var(--#{$prefix}chart-sparkline-width);
height: var(--#{$prefix}chart-sparkline-height);
width: var(--chart-sparkline-width);
height: var(--chart-sparkline-height);
line-height: 1;
min-height: 0 !important;
}
.chart-sparkline-sm {
--#{$prefix}chart-sparkline-height-sm: #{$chart-sparkline-height-sm};
--chart-sparkline-height-sm: #{$chart-sparkline-height-sm};
height: var(--#{$prefix}chart-sparkline-height-sm);
height: var(--chart-sparkline-height-sm);
}
.chart-sparkline-square {
--#{$prefix}chart-sparkline-width-square: #{$chart-sparkline-width-square};
--chart-sparkline-width-square: #{$chart-sparkline-width-square};
width: var(--#{$prefix}chart-sparkline-width-square);
width: var(--chart-sparkline-width-square);
}
.chart-sparkline-wide {
--#{$prefix}chart-sparkline-width-wide: #{$chart-sparkline-width-wide};
--chart-sparkline-width-wide: #{$chart-sparkline-width-wide};
width: var(--#{$prefix}chart-sparkline-width-wide);
width: var(--chart-sparkline-width-wide);
}
.chart-sparkline-label {
--#{$prefix}chart-sparkline-label-icon-size: #{$chart-sparkline-label-icon-size};
--chart-sparkline-label-icon-size: #{$chart-sparkline-label-icon-size};
position: absolute;
top: 0;
@@ -75,8 +75,8 @@ Chart sparkline
font-size: $h6-font-size;
.icon {
width: var(--#{$prefix}chart-sparkline-label-icon-size);
height: var(--#{$prefix}chart-sparkline-label-icon-size);
font-size: var(--#{$prefix}chart-sparkline-label-icon-size);
width: var(--chart-sparkline-label-icon-size);
height: var(--chart-sparkline-label-icon-size);
font-size: var(--chart-sparkline-label-icon-size);
}
}
+10 -10
View File
@@ -1,31 +1,31 @@
@use '../config' as *;
.chat {
--#{$prefix}chat-bubbles-gap: #{$chat-bubbles-gap};
--#{$prefix}chat-bubble-padding: #{$chat-bubble-padding};
--#{$prefix}chat-bubble-title-margin-bottom: #{$chat-bubble-title-margin-bottom};
--chat-bubbles-gap: #{$chat-bubbles-gap};
--chat-bubble-padding: #{$chat-bubble-padding};
--chat-bubble-title-margin-bottom: #{$chat-bubble-title-margin-bottom};
}
.chat-bubbles {
display: flex;
flex-direction: column;
gap: var(--#{$prefix}chat-bubbles-gap);
gap: var(--chat-bubbles-gap);
}
.chat-bubble {
background: var(--#{$prefix}bg-surface-secondary);
@include border-radius(var(--#{$prefix}border-radius-lg));
padding: var(--#{$prefix}chat-bubble-padding);
background: var(--bg-surface-secondary);
@include border-radius(var(--border-radius-lg));
padding: var(--chat-bubble-padding);
position: relative;
}
.chat-bubble-me {
background-color: var(--#{$prefix}primary-lt);
background-color: var(--primary-lt);
box-shadow: none;
}
.chat-bubble-title {
margin-bottom: var(--#{$prefix}chat-bubble-title-margin-bottom);
margin-bottom: var(--chat-bubble-title-margin-bottom);
}
.chat-bubble-author {
@@ -33,7 +33,7 @@
}
.chat-bubble-date {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.chat-bubble-body {
+23 -23
View File
@@ -1,24 +1,24 @@
@use '../config' as *;
.btn-close {
--#{$prefix}btn-close-color: currentColor;
--#{$prefix}btn-close-bg: #{escape-svg($btn-close-bg)};
--#{$prefix}btn-close-opacity: #{$btn-close-opacity};
--#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
--#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
--#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity};
--#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
--#{$prefix}btn-close-size: #{$btn-close-width};
--btn-close-color: currentColor;
--btn-close-bg: #{escape-svg($btn-close-bg)};
--btn-close-opacity: #{$btn-close-opacity};
--btn-close-hover-opacity: #{$btn-close-hover-opacity};
--btn-close-focus-shadow: #{$btn-close-focus-shadow};
--btn-close-focus-opacity: #{$btn-close-focus-opacity};
--btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
--btn-close-size: #{$btn-close-width};
width: var(--#{$prefix}btn-close-size);
height: var(--#{$prefix}btn-close-size);
width: var(--btn-close-size);
height: var(--btn-close-size);
padding: $btn-close-padding-y $btn-close-padding-x;
color: var(--#{$prefix}btn-close-color);
mask: var(--#{$prefix}btn-close-bg) no-repeat center/calc(var(--#{$prefix}btn-close-size) * 0.75);
background-color: var(--#{$prefix}btn-close-color);
color: var(--btn-close-color);
mask: var(--btn-close-bg) no-repeat center/calc(var(--btn-close-size) * 0.75);
background-color: var(--btn-close-color);
border: 0;
@include border-radius(var(--tblr-border-radius));
opacity: var(--#{$prefix}btn-close-opacity);
@include border-radius(var(--border-radius));
opacity: var(--btn-close-opacity);
cursor: pointer;
display: block;
position: relative;
@@ -35,23 +35,23 @@
}
&:hover {
color: var(--#{$prefix}btn-close-color);
color: var(--btn-close-color);
text-decoration: none;
opacity: var(--#{$prefix}btn-close-hover-opacity);
background-color: var(--#{$prefix}btn-close-color);
opacity: var(--btn-close-hover-opacity);
background-color: var(--btn-close-color);
}
&:focus {
outline: 0;
box-shadow: var(--#{$prefix}btn-close-focus-shadow);
opacity: var(--#{$prefix}btn-close-focus-opacity);
box-shadow: var(--btn-close-focus-shadow);
opacity: var(--btn-close-focus-opacity);
}
&:disabled,
&.disabled {
pointer-events: none;
user-select: none;
opacity: var(--#{$prefix}btn-close-disabled-opacity);
opacity: var(--btn-close-disabled-opacity);
}
@include media-print {
@@ -60,7 +60,7 @@
}
// @mixin btn-close-white() {
// --#{$prefix}btn-close-filter: #{$btn-close-filter-dark};
// --btn-close-filter: #{$btn-close-filter-dark};
// }
// .btn-close-white {
@@ -69,7 +69,7 @@
// :root,
// [data-bs-theme="light"] {
// --#{$prefix}btn-close-filter: #{$btn-close-filter};
// --btn-close-filter: #{$btn-close-filter};
// }
// @if $enable-dark-mode {
+6 -6
View File
@@ -5,16 +5,16 @@
@use '../config' as *;
.datagrid {
--#{$prefix}datagrid-padding: #{$datagrid-padding};
--#{$prefix}datagrid-item-width: #{$datagrid-item-width};
--#{$prefix}datagrid-title-margin-bottom: #{$datagrid-title-margin-bottom};
--datagrid-padding: #{$datagrid-padding};
--datagrid-item-width: #{$datagrid-item-width};
--datagrid-title-margin-bottom: #{$datagrid-title-margin-bottom};
display: grid;
grid-gap: var(--#{$prefix}datagrid-padding);
grid-template-columns: repeat(auto-fit, minmax(var(--#{$prefix}datagrid-item-width), 1fr));
grid-gap: var(--datagrid-padding);
grid-template-columns: repeat(auto-fit, minmax(var(--datagrid-item-width), 1fr));
}
.datagrid-title {
@include subheader;
margin-bottom: var(--#{$prefix}datagrid-title-margin-bottom);
margin-bottom: var(--datagrid-title-margin-bottom);
}
+21 -21
View File
@@ -1,15 +1,15 @@
@use '../config' as *;
.dropdown-menu {
--#{$prefix}dropdown-item-gap: #{$dropdown-item-gap};
--#{$prefix}dropdown-item-icon-size: #{$icon-size};
--#{$prefix}dropdown-item-icon-color: var(--#{$prefix}tertiary);
--#{$prefix}dropdown-header-padding-bottom: #{$dropdown-header-padding-bottom};
--#{$prefix}dropdown-menu-columns-gap: #{$dropdown-menu-columns-gap};
--#{$prefix}dropdown-arrow-offset: #{$dropdown-arrow-offset};
--#{$prefix}dropdown-arrow-inset: #{$dropdown-arrow-inset};
--#{$prefix}dropdown-dropend-offset: #{$dropdown-dropend-offset};
--#{$prefix}dropdown-menu-card-min-width: #{$dropdown-menu-card-min-width};
--dropdown-item-gap: #{$dropdown-item-gap};
--dropdown-item-icon-size: #{$icon-size};
--dropdown-item-icon-color: var(--tertiary);
--dropdown-header-padding-bottom: #{$dropdown-header-padding-bottom};
--dropdown-menu-columns-gap: #{$dropdown-menu-columns-gap};
--dropdown-arrow-offset: #{$dropdown-arrow-offset};
--dropdown-arrow-inset: #{$dropdown-arrow-inset};
--dropdown-dropend-offset: #{$dropdown-dropend-offset};
--dropdown-menu-card-min-width: #{$dropdown-menu-card-min-width};
user-select: none;
background-clip: border-box;
@@ -34,18 +34,18 @@
align-items: center;
margin: 0;
line-height: $line-height-base;
gap: var(--#{$prefix}dropdown-item-gap);
gap: var(--dropdown-item-gap);
}
.dropdown-item-icon {
width: var(--#{$prefix}dropdown-item-icon-size) !important;
height: var(--#{$prefix}dropdown-item-icon-size) !important;
color: var(--#{$prefix}dropdown-item-icon-color);
width: var(--dropdown-item-icon-size) !important;
height: var(--dropdown-item-icon-size) !important;
color: var(--dropdown-item-icon-color);
text-align: center;
}
.dropdown-item-indicator {
height: var(--#{$prefix}dropdown-item-icon-size);
height: var(--dropdown-item-icon-size);
display: inline-flex;
line-height: 1;
vertical-align: bottom;
@@ -54,7 +54,7 @@
.dropdown-header {
@include subheader;
padding-bottom: var(--#{$prefix}dropdown-header-padding-bottom);
padding-bottom: var(--dropdown-header-padding-bottom);
pointer-events: none;
}
@@ -74,15 +74,15 @@
.dropdown-menu-columns {
display: flex;
flex: 0 var(--#{$prefix}dropdown-menu-columns-gap);
flex: 0 var(--dropdown-menu-columns-gap);
}
.dropdown-menu-arrow {
&:before {
content: '';
position: absolute;
top: calc(-1 * var(--#{$prefix}dropdown-arrow-offset));
inset-inline-start: var(--#{$prefix}dropdown-arrow-inset);
top: calc(-1 * var(--dropdown-arrow-offset));
inset-inline-start: var(--dropdown-arrow-inset);
display: block;
background: inherit;
width: 14px;
@@ -98,7 +98,7 @@
&.dropdown-menu-end {
&:before {
inset-inline-end: var(--#{$prefix}dropdown-arrow-inset);
inset-inline-end: var(--dropdown-arrow-inset);
inset-inline-start: auto;
}
}
@@ -107,7 +107,7 @@
.dropend {
> .dropdown-menu {
margin-top: subtract(calc(-1 * $dropdown-padding-y), 1px);
margin-inline-start: calc(-1 * var(--#{$prefix}dropdown-dropend-offset));
margin-inline-start: calc(-1 * var(--dropdown-dropend-offset));
}
.dropdown-toggle {
@@ -119,7 +119,7 @@
.dropdown-menu-card {
padding: 0;
min-width: var(--#{$prefix}dropdown-menu-card-min-width);
min-width: var(--dropdown-menu-card-min-width);
> .card {
margin: 0;
+24 -24
View File
@@ -1,35 +1,35 @@
@use '../config' as *;
.empty {
--#{$prefix}empty-padding: #{$empty-padding};
--#{$prefix}empty-padding-md: #{$empty-padding-md};
--#{$prefix}empty-icon-size: #{$empty-icon-size};
--#{$prefix}empty-icon-margin-bottom: #{$empty-icon-margin-bottom};
--#{$prefix}empty-img-margin-bottom: #{$empty-img-margin-bottom};
--#{$prefix}empty-header-margin-bottom: #{$empty-header-margin-bottom};
--#{$prefix}empty-header-font-size: #{$empty-header-font-size};
--#{$prefix}empty-title-margin-bottom: #{$empty-title-margin-bottom};
--#{$prefix}empty-action-margin-top: #{$empty-action-margin-top};
--empty-padding: #{$empty-padding};
--empty-padding-md: #{$empty-padding-md};
--empty-icon-size: #{$empty-icon-size};
--empty-icon-margin-bottom: #{$empty-icon-margin-bottom};
--empty-img-margin-bottom: #{$empty-img-margin-bottom};
--empty-header-margin-bottom: #{$empty-header-margin-bottom};
--empty-header-font-size: #{$empty-header-font-size};
--empty-title-margin-bottom: #{$empty-title-margin-bottom};
--empty-action-margin-top: #{$empty-action-margin-top};
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
padding: var(--#{$prefix}empty-padding);
padding: var(--empty-padding);
text-align: center;
@include media-breakpoint-up(md) {
padding: var(--#{$prefix}empty-padding-md);
padding: var(--empty-padding-md);
}
}
.empty-icon {
margin: 0 0 var(--#{$prefix}empty-icon-margin-bottom);
width: var(--#{$prefix}empty-icon-size);
height: var(--#{$prefix}empty-icon-size);
margin: 0 0 var(--empty-icon-margin-bottom);
width: var(--empty-icon-size);
height: var(--empty-icon-size);
line-height: 1;
color: var(--#{$prefix}secondary);
color: var(--secondary);
svg {
width: 100%;
@@ -38,16 +38,16 @@
}
.empty-img {
margin: 0 0 var(--#{$prefix}empty-img-margin-bottom);
margin: 0 0 var(--empty-img-margin-bottom);
line-height: 1;
}
.empty-header {
margin: 0 0 var(--#{$prefix}empty-header-margin-bottom);
font-size: var(--#{$prefix}empty-header-font-size);
font-weight: var(--#{$prefix}font-weight-light);
margin: 0 0 var(--empty-header-margin-bottom);
font-size: var(--empty-header-font-size);
font-weight: var(--font-weight-light);
line-height: 1;
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
.empty-title {
@@ -58,14 +58,14 @@
.empty-title,
.empty-subtitle {
margin: 0 0 var(--#{$prefix}empty-title-margin-bottom);
margin: 0 0 var(--empty-title-margin-bottom);
}
.empty-action {
margin-top: var(--#{$prefix}empty-action-margin-top);
margin-top: var(--empty-action-margin-top);
}
.empty-bordered {
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
@include border-radius(var(--#{$prefix}border-radius));
border: var(--border-width) var(--border-style) var(--border-color);
@include border-radius(var(--border-radius));
}
+36 -36
View File
@@ -11,15 +11,15 @@ Form label
*/
.col-form-label,
.form-label {
--#{$prefix}form-label-required-gap: #{$form-label-required-gap};
--form-label-required-gap: #{$form-label-required-gap};
display: block;
font-weight: var(--#{$prefix}font-weight-medium);
font-weight: var(--font-weight-medium);
&.required {
&:after {
content: '*';
margin-inline-start: var(--#{$prefix}form-label-required-gap);
margin-inline-start: var(--form-label-required-gap);
color: $red;
}
}
@@ -27,7 +27,7 @@ Form label
.form-label-description {
float: inline-end;
font-weight: var(--#{$prefix}font-weight-normal);
font-weight: var(--font-weight-normal);
color: $form-secondary-color;
}
@@ -35,9 +35,9 @@ Form label
Form hint
*/
.form-hint {
--#{$prefix}form-hint-margin-top: #{$form-hint-margin-top};
--#{$prefix}form-hint-label-offset: #{$form-hint-label-offset};
--#{$prefix}form-hint-control-margin-top: #{$form-hint-control-margin-top};
--form-hint-margin-top: #{$form-hint-margin-top};
--form-hint-label-offset: #{$form-hint-label-offset};
--form-hint-control-margin-top: #{$form-hint-control-margin-top};
display: block;
color: $form-secondary-color;
@@ -47,17 +47,17 @@ Form hint
}
& + .form-control {
margin-top: var(--#{$prefix}form-hint-margin-top);
margin-top: var(--form-hint-margin-top);
}
.form-label + & {
margin-top: var(--#{$prefix}form-hint-label-offset);
margin-top: var(--form-hint-label-offset);
}
.input-group + &,
.form-control + &,
.form-select + & {
margin-top: var(--#{$prefix}form-hint-control-margin-top);
margin-top: var(--form-hint-control-margin-top);
color: $form-secondary-color;
}
}
@@ -67,7 +67,7 @@ Form select
*/
.form-select {
&:-moz-focusring {
color: var(--#{$prefix}body-color);
color: var(--body-color);
}
}
@@ -76,9 +76,9 @@ Form control
*/
.form-control {
&:-webkit-autofill {
box-shadow: 0 0 0 1000px var(--#{$prefix}bg-surface-secondary) inset;
color: var(--#{$prefix}body-color);
-webkit-text-fill-color: var(--#{$prefix}body-color);
box-shadow: 0 0 0 1000px var(--bg-surface-secondary) inset;
color: var(--body-color);
-webkit-text-fill-color: var(--body-color);
}
&:disabled,
@@ -93,7 +93,7 @@ Form control
}
.form-control-light {
background-color: var(--#{$prefix}gray-100);
background-color: var(--gray-100);
border-color: transparent;
}
@@ -114,7 +114,7 @@ Form control
}
.form-control-rounded {
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
}
.form-control-flush {
@@ -127,20 +127,20 @@ Form control
}
.form-footer {
--#{$prefix}form-footer-margin-top: #{$form-footer-margin-top};
--form-footer-margin-top: #{$form-footer-margin-top};
margin-top: var(--#{$prefix}form-footer-margin-top);
margin-top: var(--form-footer-margin-top);
}
.form-fieldset {
--#{$prefix}form-fieldset-padding: #{$form-fieldset-padding};
--#{$prefix}form-fieldset-margin-bottom: #{$form-fieldset-margin-bottom};
--form-fieldset-padding: #{$form-fieldset-padding};
--form-fieldset-margin-bottom: #{$form-fieldset-margin-bottom};
padding: var(--#{$prefix}form-fieldset-padding);
margin-bottom: var(--#{$prefix}form-fieldset-margin-bottom);
background: var(--#{$prefix}bg-surface-secondary);
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
@include border-radius(var(--#{$prefix}border-radius));
padding: var(--form-fieldset-padding);
margin-bottom: var(--form-fieldset-margin-bottom);
background: var(--bg-surface-secondary);
border: var(--border-width) var(--border-style) var(--border-color);
@include border-radius(var(--border-radius));
}
fieldset:empty {
@@ -151,29 +151,29 @@ fieldset:empty {
Form help
*/
.form-help {
--#{$prefix}form-help-size: #{$form-help-size};
--#{$prefix}form-help-font-size: #{$form-help-font-size};
--form-help-size: #{$form-help-size};
--form-help-font-size: #{$form-help-font-size};
display: inline-flex;
font-weight: var(--#{$prefix}font-weight-semibold);
font-weight: var(--font-weight-semibold);
align-items: center;
justify-content: center;
width: var(--#{$prefix}form-help-size);
height: var(--#{$prefix}form-help-size);
font-size: var(--#{$prefix}form-help-font-size);
width: var(--form-help-size);
height: var(--form-help-size);
font-size: var(--form-help-font-size);
color: $form-secondary-color;
text-align: center;
text-decoration: none;
cursor: pointer;
user-select: none;
background: var(--#{$prefix}gray-100);
@include border-radius(var(--#{$prefix}border-radius-pill));
background: var(--gray-100);
@include border-radius(var(--border-radius-pill));
@include transition(background-color $transition-time, color $transition-time);
&:hover,
&[aria-describedby] {
color: $white;
background: var(--#{$prefix}primary);
background: var(--primary);
}
}
@@ -262,9 +262,9 @@ Forms on mobile devices
*/
.form-control,
.form-select {
--#{$prefix}form-control-mobile-font-size: #{$form-control-mobile-font-size};
--form-control-mobile-font-size: #{$form-control-mobile-font-size};
@include media-breakpoint-down(sm) {
font-size: var(--#{$prefix}form-control-mobile-font-size);
font-size: var(--form-control-mobile-font-size);
}
}
+11 -11
View File
@@ -7,7 +7,7 @@
}
.col-separator {
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-inline-start: var(--border-width) var(--border-style) var(--border-color);
}
.container {
@@ -21,18 +21,18 @@
@each $name, $value in (0: 0, sm: $grid-row-gutter-sm, md: $grid-row-gutter-md, lg: $grid-row-gutter-lg) {
.row-#{$name} {
--#{$prefix}grid-row-gutter: #{$value};
margin-inline-end: calc(-1 * var(--#{$prefix}grid-row-gutter));
margin-inline-start: calc(-1 * var(--#{$prefix}grid-row-gutter));
--grid-row-gutter: #{$value};
margin-inline-end: calc(-1 * var(--grid-row-gutter));
margin-inline-start: calc(-1 * var(--grid-row-gutter));
> .col,
> [class*='col-'] {
padding-inline-end: var(--#{$prefix}grid-row-gutter);
padding-inline-start: var(--#{$prefix}grid-row-gutter);
padding-inline-end: var(--grid-row-gutter);
padding-inline-start: var(--grid-row-gutter);
}
.card {
margin-bottom: calc(2 * var(--#{$prefix}grid-row-gutter));
margin-bottom: calc(2 * var(--grid-row-gutter));
}
}
}
@@ -50,8 +50,8 @@
}
.row-cards {
--#{$prefix}gutter-x: #{$cards-grid-gap};
--#{$prefix}gutter-y: #{$cards-grid-gap};
--gutter-x: #{$cards-grid-gap};
--gutter-y: #{$cards-grid-gap};
min-width: 0;
.row-cards {
@@ -95,7 +95,7 @@
.divide-y#{$name-prefixed} {
> :not(template) ~ :not(template) {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent) !important;
border-top: var(--border-width) var(--border-style) var(--border-color-translucent) !important;
}
> :not(template):not(:first-child) {
@@ -109,7 +109,7 @@
.divide-x#{$name-prefixed} {
> :not(template) ~ :not(template) {
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color-translucent) !important;
border-inline-start: var(--border-width) var(--border-style) var(--border-color-translucent) !important;
}
> :not(template):not(:first-child) {
+10 -10
View File
@@ -4,10 +4,10 @@
@use '../config' as *;
.icon {
--#{$prefix}icon-size: #{$font-size-base * $line-height-base};
width: var(--#{$prefix}icon-size);
height: var(--#{$prefix}icon-size);
font-size: var(--#{$prefix}icon-size);
--icon-size: #{$font-size-base * $line-height-base};
width: var(--icon-size);
height: var(--icon-size);
font-size: var(--icon-size);
vertical-align: bottom;
display: inline-block;
transform-origin: center;
@@ -25,9 +25,9 @@
// Inline icon
//
.icon-inline {
--#{$prefix}icon-size: #{$icon-inline-size};
--#{$prefix}icon-inline-vertical-align: #{$icon-inline-vertical-align};
vertical-align: var(--#{$prefix}icon-inline-vertical-align);
--icon-size: #{$icon-inline-size};
--icon-inline-vertical-align: #{$icon-inline-vertical-align};
vertical-align: var(--icon-inline-vertical-align);
}
//
@@ -41,17 +41,17 @@
// Icon size
//
.icon-sm {
--#{$prefix}icon-size: #{$icon-sm-size};
--icon-size: #{$icon-sm-size};
stroke-width: 1.5;
}
.icon-md {
--#{$prefix}icon-size: #{$icon-md-size};
--icon-size: #{$icon-md-size};
stroke-width: 1;
}
.icon-lg {
--#{$prefix}icon-size: #{$icon-lg-size};
--icon-size: #{$icon-lg-size};
stroke-width: 1;
}
+4 -4
View File
@@ -3,18 +3,18 @@
@use '../config' as *;
.img-responsive {
--#{$prefix}img-responsive-ratio: #{math.percentage(0.75)};
--img-responsive-ratio: #{math.percentage(0.75)};
background: no-repeat center/cover;
padding-top: var(--#{$prefix}img-responsive-ratio);
padding-top: var(--img-responsive-ratio);
}
.img-responsive-grid {
padding-top: calc(var(--#{$prefix}img-responsive-ratio) - calc(var(--#{$prefix}gutter-y) / 2));
padding-top: calc(var(--img-responsive-ratio) - calc(var(--gutter-y) / 2));
}
@each $key, $ratio in $aspect-ratios {
.img-responsive-#{$key} {
--#{$prefix}img-responsive-ratio: #{$ratio};
--img-responsive-ratio: #{$ratio};
}
}
+4 -4
View File
@@ -4,11 +4,11 @@ Legend
@use '../config' as *;
.legend {
--#{$prefix}legend-size: #{$legend-size};
--legend-size: #{$legend-size};
display: inline-block;
background: $legend-bg;
width: var(--#{$prefix}legend-size);
height: var(--#{$prefix}legend-size);
width: var(--legend-size);
height: var(--legend-size);
@include border-radius($legend-border-radius);
border: 1px solid var(--#{$prefix}border-color-translucent);
border: 1px solid var(--border-color-translucent);
}
+8 -8
View File
@@ -1,7 +1,7 @@
@use '../config' as *;
.list-group {
--#{$prefix}list-group-header-padding-y: #{$list-group-header-padding-y};
--list-group-header-padding-y: #{$list-group-header-padding-y};
margin-inline-start: 0;
margin-inline-end: 0;
@@ -9,13 +9,13 @@
.list-group-header {
background: $list-group-header-bg;
padding: var(--#{$prefix}list-group-header-padding-y) $list-group-item-padding-x;
padding: var(--list-group-header-padding-y) $list-group-item-padding-x;
font-size: $h5-font-size;
font-weight: var(--#{$prefix}font-weight-medium);
font-weight: var(--font-weight-medium);
line-height: 1;
text-transform: uppercase;
color: $list-group-header-color;
border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-bottom: var(--border-width) var(--border-style) var(--border-color);
.list-group-flush > & {
&:last-child {
@@ -44,7 +44,7 @@
.list-bordered {
.list-item {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-top: var(--border-width) var(--border-style) var(--border-color);
margin-top: -1px;
&:first-child {
@@ -74,7 +74,7 @@
}
.list-group-transparent {
--#{$prefix}list-group-border-radius: 0;
--list-group-border-radius: 0;
margin: 0 (-$list-group-item-padding-x);
.list-group-item {
@@ -82,11 +82,11 @@
border: 0;
.icon {
color: var(--#{$prefix}secondary);
color: var(--secondary);
}
&.active {
font-weight: var(--#{$prefix}font-weight-semibold);
font-weight: var(--font-weight-semibold);
color: inherit;
background: $list-group-active-bg;
+3 -3
View File
@@ -15,12 +15,12 @@
width: 100%;
height: 100%;
content: '';
border: 1px var(--#{$prefix}border-style);
border: 1px var(--border-style);
border-color: transparent;
border-top-color: currentColor;
border-inline-start-color: currentColor;
@include border-radius(var(--#{$prefix}border-radius-pill));
@include border-radius(var(--border-radius-pill));
animation: rotate-360 0.6s linear;
animation-iteration-count: infinite;
}
@@ -57,7 +57,7 @@ Dimmer
@keyframes animated-dots {
0% {
/*rtl:ignore*/
transform: translateX(calc(var(--#{$prefix}dir) * -100%));
transform: translateX(calc(var(--dir) * -100%));
}
}
+14 -14
View File
@@ -1,18 +1,18 @@
@use '../config' as *;
$markdown-font-size: var(--#{$prefix}font-size-h3) !default;
$markdown-line-height: var(--#{$prefix}line-height-lg) !default;
$markdown-font-size: var(--font-size-h3) !default;
$markdown-line-height: var(--line-height-lg) !default;
/**
Prose (formerly markdown)
*/
.prose,
.markdown {
--#{$prefix}markdown-heading-margin-top: #{$markdown-heading-margin-top};
--#{$prefix}markdown-blockquote-margin-y: #{$markdown-blockquote-margin-y};
--#{$prefix}markdown-blockquote-padding-y: #{$markdown-blockquote-padding-y};
--#{$prefix}markdown-blockquote-padding-x: #{$markdown-blockquote-padding-x};
--#{$prefix}markdown-pre-max-height: #{$markdown-pre-max-height};
--markdown-heading-margin-top: #{$markdown-heading-margin-top};
--markdown-blockquote-margin-y: #{$markdown-blockquote-margin-y};
--markdown-blockquote-padding-y: #{$markdown-blockquote-padding-y};
--markdown-blockquote-padding-x: #{$markdown-blockquote-padding-x};
--markdown-pre-max-height: #{$markdown-pre-max-height};
line-height: $markdown-line-height;
font-size: $markdown-font-size;
@@ -47,29 +47,29 @@ Prose (formerly markdown)
h4,
h5,
h6 {
margin-top: var(--#{$prefix}markdown-heading-margin-top);
margin-top: var(--markdown-heading-margin-top);
}
}
> table {
// The `@extend .table, .table-bordered, .table-sm` part lives in
// `_extends.scss` its targets span modules loaded after this one.
font-size: var(--#{$prefix}body-font-size);
font-size: var(--body-font-size);
}
> blockquote {
font-size: $h3-font-size;
margin: var(--#{$prefix}markdown-blockquote-margin-y) 0;
padding: var(--#{$prefix}markdown-blockquote-padding-y) var(--#{$prefix}markdown-blockquote-padding-x);
margin: var(--markdown-blockquote-margin-y) 0;
padding: var(--markdown-blockquote-padding-y) var(--markdown-blockquote-padding-x);
}
> img,
> p > img {
@include border-radius(var(--#{$prefix}border-radius));
border: 1px solid var(--#{$prefix}border-color);
@include border-radius(var(--border-radius));
border: 1px solid var(--border-color);
}
pre {
max-height: var(--#{$prefix}markdown-pre-max-height);
max-height: var(--markdown-pre-max-height);
}
}
+7 -7
View File
@@ -18,11 +18,11 @@
@include scrollbar;
.modal-title {
margin-bottom: var(--#{$prefix}modal-body-title-margin-bottom);
margin-bottom: var(--modal-body-title-margin-bottom);
}
& + & {
border-top: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-top: var(--border-width) var(--border-style) var(--border-color);
}
}
@@ -32,7 +32,7 @@
inset-inline-start: 0;
inset-inline-end: 0;
height: $modal-status-size;
background: var(--#{$prefix}secondary);
background: var(--secondary);
@include border-radius($modal-content-border-radius $modal-content-border-radius 0 0);
}
@@ -54,10 +54,10 @@
@if $modal-footer-border-width == 0 {
padding-top: 0;
} @else {
padding-top: var(--#{$prefix}modal-footer-padding-y);
padding-top: var(--modal-footer-padding-y);
}
padding-bottom: var(--#{$prefix}modal-footer-padding-y);
padding-bottom: var(--modal-footer-padding-y);
}
.modal-blur {
@@ -70,8 +70,8 @@
}
.modal {
--#{$prefix}modal-body-title-margin-bottom: #{$modal-body-title-margin-bottom};
--#{$prefix}modal-footer-padding-y: #{$modal-footer-padding-y};
--modal-body-title-margin-bottom: #{$modal-body-title-margin-bottom};
--modal-footer-padding-y: #{$modal-footer-padding-y};
@include media-print {
display: none !important;
+16 -16
View File
@@ -1,11 +1,11 @@
@use '../config' as *;
.nav {
--#{$prefix}nav-link-hover-bg: #{color-transparent(var(--#{$prefix}nav-link-color), 0.04)};
--#{$prefix}nav-vertical-nested-margin-start: #{$nav-vertical-nested-margin-start};
--#{$prefix}nav-vertical-nested-padding-start: #{$nav-vertical-nested-padding-start};
--#{$prefix}nav-link-toggle-padding-x: #{$nav-link-toggle-padding-x};
--#{$prefix}nav-link-icon-margin-end: #{$nav-link-icon-margin-end};
--nav-link-hover-bg: #{color-transparent(var(--nav-link-color), 0.04)};
--nav-vertical-nested-margin-start: #{$nav-vertical-nested-margin-start};
--nav-vertical-nested-padding-start: #{$nav-vertical-nested-padding-start};
--nav-link-toggle-padding-x: #{$nav-link-toggle-padding-x};
--nav-link-icon-margin-end: #{$nav-link-icon-margin-end};
}
.nav-vertical {
@@ -16,15 +16,15 @@
}
.nav {
margin-inline-start: var(--#{$prefix}nav-vertical-nested-margin-start);
border-inline-start: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
padding-inline-start: var(--#{$prefix}nav-vertical-nested-padding-start);
margin-inline-start: var(--nav-vertical-nested-margin-start);
border-inline-start: var(--border-width) var(--border-style) var(--border-color);
padding-inline-start: var(--nav-vertical-nested-padding-start);
}
.nav-link.active,
.nav-item.show .nav-link {
font-weight: var(--#{$prefix}font-weight-semibold);
color: var(--#{$prefix}nav-link-active-color);
font-weight: var(--font-weight-semibold);
color: var(--nav-link-active-color);
}
&.nav-pills {
@@ -36,7 +36,7 @@
// Nav bordered
//
.nav-bordered {
border-bottom: $nav-bordered-border-width var(--#{$prefix}border-style) $nav-bordered-border-color;
border-bottom: $nav-bordered-border-width var(--border-style) $nav-bordered-border-color;
.nav-item {
+ .nav-item {
@@ -49,7 +49,7 @@
padding-inline-end: 0;
margin: 0 0 calc(-1 * #{$nav-bordered-border-width});
border: 0;
border-bottom: $nav-bordered-link-active-border-width var(--#{$prefix}border-style) transparent;
border-bottom: $nav-bordered-link-active-border-width var(--border-style) transparent;
&:hover {
background-color: transparent;
@@ -76,13 +76,13 @@
&:hover,
&:focus {
background-color: var(--#{$prefix}nav-link-hover-bg);
background-color: var(--nav-link-hover-bg);
}
}
.nav-link-toggle {
margin-inline-start: auto;
padding: 0 var(--#{$prefix}nav-link-toggle-padding-x);
padding: 0 var(--nav-link-toggle-padding-x);
@include transition(transform $transition-time);
@include caret();
@@ -98,7 +98,7 @@
.nav-link-icon {
width: $nav-link-icon-size;
height: $nav-link-icon-size;
margin-inline-end: var(--#{$prefix}nav-link-icon-margin-end);
margin-inline-end: var(--nav-link-icon-margin-end);
color: $nav-link-icon-color;
svg {
@@ -107,7 +107,7 @@
}
.nav-link:hover & {
color: var(--#{$prefix}nav-link-hover-icon-color);
color: var(--nav-link-hover-icon-color);
}
}
+6 -6
View File
@@ -7,7 +7,7 @@
}
.offcanvas-header {
border-bottom: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color);
border-bottom: var(--border-width) var(--border-style) var(--border-color);
}
.offcanvas-footer {
@@ -15,15 +15,15 @@
}
.offcanvas-title {
--#{$prefix}offcanvas-title-line-height: #{$offcanvas-title-line-height};
--offcanvas-title-line-height: #{$offcanvas-title-line-height};
font-size: $h3-font-size;
font-weight: var(--#{$prefix}font-weight-medium);
line-height: var(--#{$prefix}offcanvas-title-line-height);
font-weight: var(--font-weight-medium);
line-height: var(--offcanvas-title-line-height);
}
.offcanvas-narrow {
--#{$prefix}offcanvas-narrow-width: #{$offcanvas-narrow-width};
--offcanvas-narrow-width: #{$offcanvas-narrow-width};
width: var(--#{$prefix}offcanvas-narrow-width);
width: var(--offcanvas-narrow-width);
}
+21 -21
View File
@@ -2,12 +2,12 @@
.pagination {
margin: 0;
--#{$prefix}pagination-gap: #{$pagination-gap};
--#{$prefix}pagination-link-min-width: #{$pagination-link-min-width};
--#{$prefix}page-text-padding-x: #{$page-text-padding-x};
--pagination-gap: #{$pagination-gap};
--pagination-link-min-width: #{$pagination-link-min-width};
--page-text-padding-x: #{$page-text-padding-x};
user-select: none;
gap: var(--#{$prefix}pagination-gap);
line-height: var(--#{$prefix}body-line-height);
gap: var(--pagination-gap);
line-height: var(--body-line-height);
@include media-print {
display: none;
@@ -15,17 +15,17 @@
}
.page-link {
min-width: var(--#{$prefix}pagination-link-min-width);
@include border-radius(var(--#{$prefix}pagination-border-radius));
min-width: var(--pagination-link-min-width);
@include border-radius(var(--pagination-border-radius));
}
.page-item:not(.active) .page-link:hover {
background: var(--#{$prefix}pagination-hover-bg);
background: var(--pagination-hover-bg);
}
.page-text {
padding-inline-start: var(--#{$prefix}page-text-padding-x);
padding-inline-end: var(--#{$prefix}page-text-padding-x);
padding-inline-start: var(--page-text-padding-x);
padding-inline-end: var(--page-text-padding-x);
}
.page-item {
@@ -44,11 +44,11 @@
}
.page-item-subtitle {
--#{$prefix}page-item-subtitle-margin-bottom: #{$page-item-subtitle-margin-bottom};
--#{$prefix}page-item-subtitle-font-size: #{$page-item-subtitle-font-size};
margin-bottom: var(--#{$prefix}page-item-subtitle-margin-bottom);
font-size: var(--#{$prefix}page-item-subtitle-font-size);
color: var(--#{$prefix}secondary);
--page-item-subtitle-margin-bottom: #{$page-item-subtitle-margin-bottom};
--page-item-subtitle-font-size: #{$page-item-subtitle-font-size};
margin-bottom: var(--page-item-subtitle-margin-bottom);
font-size: var(--page-item-subtitle-font-size);
color: var(--secondary);
text-transform: uppercase;
.page-item.disabled & {
@@ -58,8 +58,8 @@
.page-item-title {
font-size: $h3-font-size;
font-weight: var(--#{$prefix}font-weight-normal);
color: var(--#{$prefix}body-color);
font-weight: var(--font-weight-normal);
color: var(--body-color);
.page-link:hover & {
color: $link-color;
@@ -71,11 +71,11 @@
}
.pagination-outline {
--#{$prefix}pagination-border-color: var(--#{$prefix}border-color);
--#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);
--#{$prefix}pagination-border-width: 1px;
--pagination-border-color: var(--border-color);
--pagination-disabled-border-color: var(--border-color);
--pagination-border-width: 1px;
}
.pagination-circle {
--#{$prefix}pagination-border-radius: var(--tblr-border-radius-pill);
--pagination-border-radius: var(--border-radius-pill);
}
+121 -123
View File
@@ -1,217 +1,215 @@
@use '../config' as *;
.bg-pattern-diagonal {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(-45deg, var(--#{$prefix}pattern-fill) 0 1px, transparent 0 50%);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(-45deg, var(--pattern-fill) 0 1px, transparent 0 50%);
background-clip: padding-box;
background-size: var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
background-size: var(--pattern-size) var(--pattern-size);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-diagonal-2 {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(45deg, var(--#{$prefix}pattern-fill) 0 1px, transparent 0 50%);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(45deg, var(--pattern-fill) 0 1px, transparent 0 50%);
background-clip: padding-box;
background-size: var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
background-size: var(--pattern-size) var(--pattern-size);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-dots {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: 5px;
--#{$prefix}pattern-dot: 0.5px;
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 20%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: radial-gradient(circle, var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-dot), transparent var(--#{$prefix}pattern-dot)), radial-gradient(circle, var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-dot), transparent var(--#{$prefix}pattern-dot));
--pattern-color: var(--body-color);
--pattern-size: 5px;
--pattern-dot: 0.5px;
--pattern-fill: color-mix(in oklch, var(--pattern-color) 20%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: radial-gradient(circle, var(--pattern-fill) var(--pattern-dot), transparent var(--pattern-dot)), radial-gradient(circle, var(--pattern-fill) var(--pattern-dot), transparent var(--pattern-dot));
background-position:
0 0,
calc(var(--#{$prefix}pattern-size) / 2) calc(var(--#{$prefix}pattern-size) / 2);
background-size: var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
calc(var(--pattern-size) / 2) calc(var(--pattern-size) / 2);
background-size: var(--pattern-size) var(--pattern-size);
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-rectangles {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 3%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-size: #{$pattern-size};
background-image:
repeating-linear-gradient(45deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%, transparent 75%, var(--#{$prefix}pattern-fill) 75%, var(--#{$prefix}pattern-fill)),
repeating-linear-gradient(45deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%, transparent 75%, var(--#{$prefix}pattern-fill) 75%, var(--#{$prefix}pattern-fill));
--pattern-color: var(--body-color);
--pattern-fill: color-mix(in oklch, var(--pattern-color) 3%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-size: #{$pattern-size};
background-image: repeating-linear-gradient(45deg, var(--pattern-fill) 25%, transparent 25%, transparent 75%, var(--pattern-fill) 75%, var(--pattern-fill)), repeating-linear-gradient(45deg, var(--pattern-fill) 25%, transparent 25%, transparent 75%, var(--pattern-fill) 75%, var(--pattern-fill));
background-position:
-1px -1px,
calc(var(--#{$prefix}pattern-size) - 1px) calc(var(--#{$prefix}pattern-size) - 1px);
background-size: calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2);
calc(var(--pattern-size) - 1px) calc(var(--pattern-size) - 1px);
background-size: calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2);
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-lines {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 6%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-size: #{$pattern-size};
background-size: var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
background-image: repeating-linear-gradient(0deg, var(--#{$prefix}pattern-fill), var(--#{$prefix}pattern-fill) 1px, transparent 1px, transparent);
--pattern-color: var(--body-color);
--pattern-fill: color-mix(in oklch, var(--pattern-color) 6%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-size: #{$pattern-size};
background-size: var(--pattern-size) var(--pattern-size);
background-image: repeating-linear-gradient(0deg, var(--pattern-fill), var(--pattern-fill) 1px, transparent 1px, transparent);
background-position: -1px -1px;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-lines-vertical {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 6%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-size: #{$pattern-size};
background-size: var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
background-image: repeating-linear-gradient(90deg, var(--#{$prefix}pattern-fill), var(--#{$prefix}pattern-fill) 1px, transparent 1px, transparent);
--pattern-color: var(--body-color);
--pattern-fill: color-mix(in oklch, var(--pattern-color) 6%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-size: #{$pattern-size};
background-size: var(--pattern-size) var(--pattern-size);
background-image: repeating-linear-gradient(90deg, var(--pattern-fill), var(--pattern-fill) 1px, transparent 1px, transparent);
background-position: -1px -1px;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-grid {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 6%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-size: #{$pattern-size};
background-image: linear-gradient(to right, var(--#{$prefix}pattern-fill) 1px, transparent 1px), linear-gradient(to bottom, var(--#{$prefix}pattern-fill) 1px, transparent 1px);
background-size: calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2);
--pattern-color: var(--body-color);
--pattern-fill: color-mix(in oklch, var(--pattern-color) 6%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-size: #{$pattern-size};
background-image: linear-gradient(to right, var(--pattern-fill) 1px, transparent 1px), linear-gradient(to bottom, var(--pattern-fill) 1px, transparent 1px);
background-size: calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2);
background-position:
-1px -1px,
-1px -1px;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-grid-diagonal {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-size: #{$pattern-size};
background-image: linear-gradient(45deg, transparent 49%, var(--#{$prefix}pattern-fill) 49%, var(--#{$prefix}pattern-fill) 51%, transparent 51%), linear-gradient(-45deg, transparent 49%, var(--#{$prefix}pattern-fill) 49%, var(--#{$prefix}pattern-fill) 51%, transparent 51%);
background-size: calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2);
--pattern-color: var(--body-color);
--pattern-fill: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-size: #{$pattern-size};
background-image: linear-gradient(45deg, transparent 49%, var(--pattern-fill) 49%, var(--pattern-fill) 51%, transparent 51%), linear-gradient(-45deg, transparent 49%, var(--pattern-fill) 49%, var(--pattern-fill) 51%, transparent 51%);
background-size: calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2);
background-position: center center;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-blueprint {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-line: color-mix(in oklch, var(--#{$prefix}pattern-color) 6%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: linear-gradient(var(--#{$prefix}pattern-line) 2px, transparent 2px), linear-gradient(90deg, var(--#{$prefix}pattern-line) 2px, transparent 2px), linear-gradient(var(--#{$prefix}pattern-line) 1px, transparent 1px), linear-gradient(90deg, var(--#{$prefix}pattern-line) 1px, transparent 1px);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-line: color-mix(in oklch, var(--pattern-color) 6%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: linear-gradient(var(--pattern-line) 2px, transparent 2px), linear-gradient(90deg, var(--pattern-line) 2px, transparent 2px), linear-gradient(var(--pattern-line) 1px, transparent 1px), linear-gradient(90deg, var(--pattern-line) 1px, transparent 1px);
background-size:
calc(var(--#{$prefix}pattern-size) * 10) calc(var(--#{$prefix}pattern-size) * 10),
calc(var(--#{$prefix}pattern-size) * 10) calc(var(--#{$prefix}pattern-size) * 10),
calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2),
calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2);
calc(var(--pattern-size) * 10) calc(var(--pattern-size) * 10),
calc(var(--pattern-size) * 10) calc(var(--pattern-size) * 10),
calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2),
calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2);
background-position:
-3px -3px,
-3px -3px,
-2px -2px,
-2px -2px;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-cross-dots {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: radial-gradient(var(--#{$prefix}pattern-fill) 1px, transparent 1px), radial-gradient(var(--#{$prefix}pattern-fill) 1px, transparent 1px);
background-size: calc(var(--#{$prefix}pattern-size) * 2) calc(var(--#{$prefix}pattern-size) * 2);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: radial-gradient(var(--pattern-fill) 1px, transparent 1px), radial-gradient(var(--pattern-fill) 1px, transparent 1px);
background-size: calc(var(--pattern-size) * 2) calc(var(--pattern-size) * 2);
background-position:
0 0,
var(--#{$prefix}pattern-size) var(--#{$prefix}pattern-size);
var(--pattern-size) var(--pattern-size);
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-circles {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 10%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image:
radial-gradient(circle at center top, transparent 9%, var(--#{$prefix}pattern-fill) 10%, var(--#{$prefix}pattern-fill) 15%, transparent 16%), radial-gradient(circle at center bottom, transparent 9%, var(--#{$prefix}pattern-fill) 10%, var(--#{$prefix}pattern-fill) 15%, transparent 16%),
radial-gradient(circle at right center, transparent 9%, var(--#{$prefix}pattern-fill) 10%, var(--#{$prefix}pattern-fill) 15%, transparent 16%), radial-gradient(circle at left center, transparent 9%, var(--#{$prefix}pattern-fill) 10%, var(--#{$prefix}pattern-fill) 15%, transparent 16%);
radial-gradient(circle at center top, transparent 9%, var(--pattern-fill) 10%, var(--pattern-fill) 15%, transparent 16%), radial-gradient(circle at center bottom, transparent 9%, var(--pattern-fill) 10%, var(--pattern-fill) 15%, transparent 16%),
radial-gradient(circle at right center, transparent 9%, var(--pattern-fill) 10%, var(--pattern-fill) 15%, transparent 16%), radial-gradient(circle at left center, transparent 9%, var(--pattern-fill) 10%, var(--pattern-fill) 15%, transparent 16%);
background-position: 0 0;
background-size: calc(var(--#{$prefix}pattern-size) * 3) calc(var(--#{$prefix}pattern-size) * 3);
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
background-size: calc(var(--pattern-size) * 3) calc(var(--pattern-size) * 3);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-diagonal-stripes {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 5%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(45deg, transparent, transparent var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) calc(2 * var(--#{$prefix}pattern-size)));
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 5%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(45deg, transparent, transparent var(--pattern-size), var(--pattern-fill) var(--pattern-size), var(--pattern-fill) calc(2 * var(--pattern-size)));
background-repeat: no-repeat;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-diagonal-stripes-2 {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 5%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(-45deg, transparent, transparent var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) calc(2 * var(--#{$prefix}pattern-size)));
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 5%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(-45deg, transparent, transparent var(--pattern-size), var(--pattern-fill) var(--pattern-size), var(--pattern-fill) calc(2 * var(--pattern-size)));
background-repeat: no-repeat;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-zigzag {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 5%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 5%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background:
linear-gradient(135deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%) calc(-1 * var(--#{$prefix}pattern-size)) 0,
linear-gradient(225deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%) calc(-1 * var(--#{$prefix}pattern-size)) 0,
linear-gradient(315deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%),
linear-gradient(45deg, var(--#{$prefix}pattern-fill) 25%, transparent 25%);
background-size: calc(2 * var(--#{$prefix}pattern-size)) calc(2 * var(--#{$prefix}pattern-size));
linear-gradient(135deg, var(--pattern-fill) 25%, transparent 25%) calc(-1 * var(--pattern-size)) 0,
linear-gradient(225deg, var(--pattern-fill) 25%, transparent 25%) calc(-1 * var(--pattern-size)) 0,
linear-gradient(315deg, var(--pattern-fill) 25%, transparent 25%),
linear-gradient(45deg, var(--pattern-fill) 25%, transparent 25%);
background-size: calc(2 * var(--pattern-size)) calc(2 * var(--pattern-size));
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-vertical-stripes {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 5%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(90deg, transparent, transparent var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) calc(2 * var(--#{$prefix}pattern-size)));
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 5%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(90deg, transparent, transparent var(--pattern-size), var(--pattern-fill) var(--pattern-size), var(--pattern-fill) calc(2 * var(--pattern-size)));
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
.bg-pattern-horizontal-stripes {
--#{$prefix}pattern-color: var(--#{$prefix}body-color);
--#{$prefix}pattern-size: #{$pattern-size};
--#{$prefix}pattern-fill: color-mix(in oklch, var(--#{$prefix}pattern-color) 5%, transparent);
--#{$prefix}pattern-border: color-mix(in oklch, var(--#{$prefix}pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(0deg, transparent, transparent var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) var(--#{$prefix}pattern-size), var(--#{$prefix}pattern-fill) calc(2 * var(--#{$prefix}pattern-size)));
--pattern-color: var(--body-color);
--pattern-size: #{$pattern-size};
--pattern-fill: color-mix(in oklch, var(--pattern-color) 5%, transparent);
--pattern-border: color-mix(in oklch, var(--pattern-color) 10%, transparent);
background-image: repeating-linear-gradient(0deg, transparent, transparent var(--pattern-size), var(--pattern-fill) var(--pattern-size), var(--pattern-fill) calc(2 * var(--pattern-size)));
background-position: -1px -1px;
background-clip: padding-box;
border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}pattern-border);
border: var(--border-width) var(--border-style) var(--pattern-border);
}
// Color variants
@each $color, $value in $theme-colors {
.bg-pattern-#{$color} {
--#{$prefix}pattern-color: #{$value};
--pattern-color: #{$value};
}
}
@@ -225,6 +223,6 @@ $sizes: (
@each $size, $value in $sizes {
.bg-pattern-#{$size} {
--#{$prefix}pattern-size: #{$value};
--pattern-size: #{$value};
}
}
+1 -1
View File
@@ -11,7 +11,7 @@
vertical-align: bottom;
font-style: normal;
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.1);
@include config.border-radius(var(--#{config.$prefix}border-radius));
@include config.border-radius(var(--border-radius));
}
@each $payment in config.$payment-providers {
+1 -1
View File
@@ -6,6 +6,6 @@
}
&:not(.avatar):not([class*='card-img-']) {
@include border-radius(var(--#{$prefix}border-radius));
@include border-radius(var(--border-radius));
}
}
+21 -21
View File
@@ -23,33 +23,33 @@ Progress
appearance: none;
&::-webkit-progress-bar {
background: var(--#{$prefix}progress-bg);
background: var(--progress-bg);
}
&::-webkit-progress-value {
background-color: var(--#{$prefix}primary);
background-color: var(--primary);
}
&::-moz-progress-bar {
background-color: var(--#{$prefix}primary);
background-color: var(--primary);
}
&::-ms-fill {
background-color: var(--#{$prefix}primary);
background-color: var(--primary);
border: none;
}
}
.progress-sm {
--#{$prefix}progress-height: #{$progress-height-sm};
--progress-height: #{$progress-height-sm};
}
.progress-lg {
--#{$prefix}progress-height: #{$progress-height-lg};
--progress-height: #{$progress-height-lg};
}
.progress-xl {
--#{$prefix}progress-height: #{$progress-height-xl};
--progress-height: #{$progress-height-xl};
}
/**
@@ -78,10 +78,10 @@ Progress bar
}
.progress-separated {
--#{$prefix}progress-separated-ring-width: #{$progress-separated-ring-width};
--progress-separated-ring-width: #{$progress-separated-ring-width};
.progress-bar {
box-shadow: 0 0 0 var(--#{$prefix}progress-separated-ring-width) var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
box-shadow: 0 0 0 var(--progress-separated-ring-width) var(--card-bg, var(--bg-surface));
}
}
@@ -89,10 +89,10 @@ Progress bar
Progressbg
*/
.progressbg {
--#{$prefix}progressbg-padding-y: #{$progressbg-padding-y};
--#{$prefix}progressbg-padding-x: #{$progressbg-padding-x};
--progressbg-padding-y: #{$progressbg-padding-y};
--progressbg-padding-x: #{$progressbg-padding-x};
position: relative;
padding: var(--#{$prefix}progressbg-padding-y) var(--#{$prefix}progressbg-padding-x);
padding: var(--progressbg-padding-y) var(--progressbg-padding-x);
display: flex;
}
@@ -117,36 +117,36 @@ Progressbg
}
.progressbg-value {
--#{$prefix}progressbg-value-padding-start: #{$progressbg-value-padding-start};
font-weight: var(--#{$prefix}font-weight-medium);
--progressbg-value-padding-start: #{$progressbg-value-padding-start};
font-weight: var(--font-weight-medium);
margin-inline-start: auto;
padding-inline-start: var(--#{$prefix}progressbg-value-padding-start);
padding-inline-start: var(--progressbg-value-padding-start);
}
/**
Progress steps
*/
.progress-steps {
--#{$prefix}progress-steps-gap: #{$progress-steps-gap};
--progress-steps-gap: #{$progress-steps-gap};
display: flex;
flex-wrap: nowrap;
width: 100%;
padding: 0;
margin: 0;
list-style: none;
gap: var(--#{$prefix}progress-steps-gap);
gap: var(--progress-steps-gap);
}
.progress-steps-item {
--#{$prefix}progress-steps-item-height: #{$progress-steps-item-height};
--progress-steps-item-height: #{$progress-steps-item-height};
flex: 1 1 0;
min-height: var(--#{$prefix}progress-steps-item-height);
min-height: var(--progress-steps-item-height);
margin-top: 0;
color: inherit;
text-align: center;
cursor: default;
background-color: var(--tblr-border-color);
@include border-radius(var(--#{$prefix}border-radius-pill));
background-color: var(--border-color);
@include border-radius(var(--border-radius-pill));
@at-root a#{&} {
cursor: pointer;
+47 -47
View File
@@ -3,38 +3,38 @@
@use '../config' as *;
.ribbon {
--#{$prefix}ribbon-margin: #{$card-ribbon-margin};
--#{$prefix}ribbon-border-radius: #{$card-ribbon-border-radius};
--#{$prefix}ribbon-font-size: #{$card-ribbon-font-size};
--#{$prefix}ribbon-icon-size: #{$card-ribbon-icon-size};
--#{$prefix}ribbon-offset: #{$ribbon-offset};
--#{$prefix}ribbon-padding-y: #{$ribbon-padding-y};
--#{$prefix}ribbon-padding-x: #{$ribbon-padding-x};
--#{$prefix}ribbon-min-size: #{$ribbon-min-size};
--#{$prefix}ribbon-top-width: #{$ribbon-top-width};
--#{$prefix}ribbon-top-padding-y: #{$ribbon-top-padding-y};
--#{$prefix}ribbon-bookmark-border-size: #{$ribbon-bookmark-border-size};
--#{$prefix}ribbon-bookmark-notch-width: #{$ribbon-bookmark-notch-width};
--ribbon-margin: #{$card-ribbon-margin};
--ribbon-border-radius: #{$card-ribbon-border-radius};
--ribbon-font-size: #{$card-ribbon-font-size};
--ribbon-icon-size: #{$card-ribbon-icon-size};
--ribbon-offset: #{$ribbon-offset};
--ribbon-padding-y: #{$ribbon-padding-y};
--ribbon-padding-x: #{$ribbon-padding-x};
--ribbon-min-size: #{$ribbon-min-size};
--ribbon-top-width: #{$ribbon-top-width};
--ribbon-top-padding-y: #{$ribbon-top-padding-y};
--ribbon-bookmark-border-size: #{$ribbon-bookmark-border-size};
--ribbon-bookmark-notch-width: #{$ribbon-bookmark-notch-width};
position: absolute;
top: var(--#{$prefix}ribbon-offset);
inset-inline-end: calc(-1 * var(--#{$prefix}ribbon-margin));
top: var(--ribbon-offset);
inset-inline-end: calc(-1 * var(--ribbon-margin));
z-index: 1;
padding: var(--#{$prefix}ribbon-padding-y) var(--#{$prefix}ribbon-padding-x);
font-size: var(--#{$prefix}ribbon-font-size);
font-weight: var(--#{$prefix}font-weight-semibold);
padding: var(--ribbon-padding-y) var(--ribbon-padding-x);
font-size: var(--ribbon-font-size);
font-weight: var(--font-weight-semibold);
line-height: 1;
color: $white;
text-align: center;
text-transform: uppercase;
background: var(--#{$prefix}primary);
border-color: var(--#{$prefix}primary);
@include border-radius(var(--#{$prefix}ribbon-border-radius) 0 var(--#{$prefix}ribbon-border-radius) var(--#{$prefix}ribbon-border-radius));
background: var(--primary);
border-color: var(--primary);
@include border-radius(var(--ribbon-border-radius) 0 var(--ribbon-border-radius) var(--ribbon-border-radius));
display: inline-flex;
align-items: center;
justify-content: center;
min-height: var(--#{$prefix}ribbon-min-size);
min-width: var(--#{$prefix}ribbon-min-size);
min-height: var(--ribbon-min-size);
min-width: var(--ribbon-min-size);
&:before {
position: absolute;
@@ -44,7 +44,7 @@
height: 0;
content: '';
filter: brightness(70%);
border: calc(var(--#{$prefix}ribbon-margin) * 0.5) var(--#{$prefix}border-style);
border: calc(var(--ribbon-margin) * 0.5) var(--border-style);
border-color: inherit;
border-top-color: transparent;
border-inline-end-color: transparent;
@@ -53,28 +53,28 @@
@if $enable-extra-colors {
@each $color, $value in $extra-colors {
&.bg-#{$color} {
border-color: var(--#{$prefix}#{$color});
border-color: var(--#{$color});
}
&.bg-#{$color}-lt {
border-color: color-transparent(var(--#{$prefix}#{$color}), 0.1) !important;
border-color: color-transparent(var(--#{$color}), 0.1) !important;
}
}
}
.icon {
width: var(--#{$prefix}ribbon-icon-size);
height: var(--#{$prefix}ribbon-icon-size);
font-size: var(--#{$prefix}ribbon-icon-size);
width: var(--ribbon-icon-size);
height: var(--ribbon-icon-size);
font-size: var(--ribbon-icon-size);
}
}
.ribbon-top {
top: calc(-1 * var(--#{$prefix}ribbon-margin));
inset-inline-end: var(--#{$prefix}ribbon-offset);
width: var(--#{$prefix}ribbon-top-width);
padding: var(--#{$prefix}ribbon-top-padding-y) 0;
@include border-radius(0 var(--#{$prefix}ribbon-border-radius) var(--#{$prefix}ribbon-border-radius) var(--#{$prefix}ribbon-border-radius));
top: calc(-1 * var(--ribbon-margin));
inset-inline-end: var(--ribbon-offset);
width: var(--ribbon-top-width);
padding: var(--ribbon-top-padding-y) 0;
@include border-radius(0 var(--ribbon-border-radius) var(--ribbon-border-radius) var(--ribbon-border-radius));
&:before {
top: 0;
@@ -87,7 +87,7 @@
&.ribbon-start {
inset-inline-end: auto;
inset-inline-start: var(--#{$prefix}ribbon-offset);
inset-inline-start: var(--ribbon-offset);
&:before {
top: 0;
@@ -99,8 +99,8 @@
.ribbon-start {
inset-inline-end: auto;
inset-inline-start: calc(-1 * var(--#{$prefix}ribbon-margin));
@include border-radius(0 var(--#{$prefix}ribbon-border-radius) var(--#{$prefix}ribbon-border-radius) var(--#{$prefix}ribbon-border-radius));
inset-inline-start: calc(-1 * var(--ribbon-margin));
@include border-radius(0 var(--ribbon-border-radius) var(--ribbon-border-radius) var(--ribbon-border-radius));
&:before {
top: auto;
@@ -114,12 +114,12 @@
.ribbon-bottom {
top: auto;
bottom: var(--#{$prefix}ribbon-offset);
bottom: var(--ribbon-offset);
}
.ribbon-bookmark {
padding-inline-start: var(--#{$prefix}ribbon-padding-y);
@include border-radius(0 0 var(--#{$prefix}ribbon-border-radius) 0);
padding-inline-start: var(--ribbon-padding-y);
@include border-radius(0 0 var(--ribbon-border-radius) 0);
&:after {
position: absolute;
@@ -129,41 +129,41 @@
width: 0;
height: 0;
content: '';
border: var(--#{$prefix}ribbon-bookmark-border-size) var(--#{$prefix}border-style);
border: var(--ribbon-bookmark-border-size) var(--border-style);
border-color: inherit;
border-inline-end-width: 0;
border-inline-start-color: transparent;
border-inline-start-width: var(--#{$prefix}ribbon-bookmark-notch-width);
border-inline-start-width: var(--ribbon-bookmark-notch-width);
}
&.ribbon-left {
padding-inline-end: var(--#{$prefix}ribbon-bookmark-notch-width);
padding-inline-end: var(--ribbon-bookmark-notch-width);
&:after {
inset-inline-end: auto;
inset-inline-start: 100%;
border-inline-end-color: transparent;
border-inline-end-width: var(--#{$prefix}ribbon-bookmark-notch-width);
border-inline-end-width: var(--ribbon-bookmark-notch-width);
border-inline-start-width: 0;
}
}
&.ribbon-top {
padding-inline-end: 0;
padding-bottom: var(--#{$prefix}ribbon-padding-y);
padding-bottom: var(--ribbon-padding-y);
padding-inline-start: 0;
@include border-radius(0 var(--#{$prefix}ribbon-border-radius) 0 0);
@include border-radius(0 var(--ribbon-border-radius) 0 0);
&:after {
top: 100%;
inset-inline-end: 0;
inset-inline-start: 0;
border-color: inherit;
border-width: var(--#{$prefix}ribbon-bookmark-border-size);
border-width: var(--ribbon-bookmark-border-size);
border-top-width: 0;
border-bottom-color: transparent;
border-bottom-width: var(--#{$prefix}ribbon-bookmark-notch-width);
border-bottom-width: var(--ribbon-bookmark-notch-width);
}
}
}
+43 -43
View File
@@ -1,40 +1,40 @@
@use '../config' as *;
.nav-segmented {
--#{$prefix}nav-bg: var(--#{$prefix}bg-surface-tertiary);
--#{$prefix}nav-padding: #{$nav-segmented-padding};
--#{$prefix}nav-height: #{$nav-segmented-height};
--#{$prefix}nav-gap: #{$nav-segmented-gap};
--#{$prefix}nav-active-bg: var(--#{$prefix}bg-surface);
--#{$prefix}nav-font-size: inherit;
--#{$prefix}nav-radius: #{$nav-segmented-radius};
--nav-bg: var(--bg-surface-tertiary);
--nav-padding: #{$nav-segmented-padding};
--nav-height: #{$nav-segmented-height};
--nav-gap: #{$nav-segmented-gap};
--nav-active-bg: var(--bg-surface);
--nav-font-size: inherit;
--nav-radius: #{$nav-segmented-radius};
--#{$prefix}nav-link-disabled-color: var(--#{$prefix}disabled-color);
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size};
--#{$prefix}nav-link-icon-margin: #{$nav-segmented-icon-margin};
--nav-link-disabled-color: var(--disabled-color);
--nav-link-gap: #{$nav-segmented-link-gap};
--nav-link-padding-x: #{$nav-segmented-link-padding-x};
--nav-link-icon-size: #{$nav-segmented-link-icon-size};
--nav-link-icon-margin: #{$nav-segmented-icon-margin};
display: inline-flex;
flex-wrap: wrap;
gap: var(--#{$prefix}nav-gap);
padding: var(--#{$prefix}nav-padding);
gap: var(--nav-gap);
padding: var(--nav-padding);
list-style: none;
background: var(--#{$prefix}nav-bg);
@include border-radius(calc(var(--#{$prefix}nav-radius) + var(--#{$prefix}nav-padding)));
background: var(--nav-bg);
@include border-radius(calc(var(--nav-radius) + var(--nav-padding)));
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
.nav-link {
display: inline-flex;
gap: calc(#{$nav-segmented-link-gap} + var(--#{$prefix}nav-link-gap));
gap: calc(#{$nav-segmented-link-gap} + var(--nav-link-gap));
align-items: center;
margin: 0;
font-size: var(--#{$prefix}nav-font-size);
min-width: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
height: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
padding: 0 calc(var(--#{$prefix}nav-link-padding-x) - 2px);
font-size: var(--nav-font-size);
min-width: calc(var(--nav-height) - 2 * var(--nav-padding));
height: calc(var(--nav-height) - 2 * var(--nav-padding));
padding: 0 calc(var(--nav-link-padding-x) - 2px);
border: 1px solid transparent;
background: transparent;
color: var(--#{$prefix}secondary);
color: var(--secondary);
text-align: center;
text-decoration: none;
white-space: nowrap;
@@ -42,28 +42,28 @@
transition:
background-color $transition-time,
color $transition-time;
@include border-radius(var(--#{$prefix}nav-radius));
@include border-radius(var(--nav-radius));
flex-grow: 1;
justify-content: center;
&:hover,
&.hover {
background: rgba(0, 0, 0, 0.04);
color: var(--#{$prefix}body-color);
color: var(--body-color);
}
&.disabled,
&:disabled {
color: var(--#{$prefix}nav-link-disabled-color);
color: var(--nav-link-disabled-color);
cursor: not-allowed;
}
}
.nav-link-input:checked + .nav-link,
.nav-link.active {
color: var(--#{$prefix}body-color);
background: var(--#{$prefix}nav-active-bg);
border-color: var(--#{$prefix}border-color);
color: var(--body-color);
background: var(--nav-active-bg);
border-color: var(--border-color);
}
.nav-link-input {
@@ -71,9 +71,9 @@
}
.nav-link-icon {
width: var(--#{$prefix}nav-link-icon-size);
height: var(--#{$prefix}nav-link-icon-size);
margin: 0 var(--#{$prefix}nav-link-icon-margin);
width: var(--nav-link-icon-size);
height: var(--nav-link-icon-size);
margin: 0 var(--nav-link-icon-margin);
color: inherit;
}
}
@@ -87,19 +87,19 @@
}
.nav-sm {
--#{$prefix}nav-height: #{$nav-segmented-height-sm};
--#{$prefix}nav-font-size: var(--tblr-font-size-h5);
--#{$prefix}nav-radius: #{$nav-segmented-radius-sm};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x-sm};
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap-sm};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size-sm};
--nav-height: #{$nav-segmented-height-sm};
--nav-font-size: var(--font-size-h5);
--nav-radius: #{$nav-segmented-radius-sm};
--nav-link-padding-x: #{$nav-segmented-link-padding-x-sm};
--nav-link-gap: #{$nav-segmented-link-gap-sm};
--nav-link-icon-size: #{$nav-segmented-link-icon-size-sm};
}
.nav-lg {
--#{$prefix}nav-height: #{$nav-segmented-height-lg};
--#{$prefix}nav-font-size: var(--tblr-font-size-h3);
--#{$prefix}nav-radius: #{$nav-segmented-radius-lg};
--#{$prefix}nav-link-padding-x: #{$nav-segmented-link-padding-x-lg};
--#{$prefix}nav-link-gap: #{$nav-segmented-link-gap-lg};
--#{$prefix}nav-link-icon-size: #{$nav-segmented-link-icon-size-lg};
--nav-height: #{$nav-segmented-height-lg};
--nav-font-size: var(--font-size-h3);
--nav-radius: #{$nav-segmented-radius-lg};
--nav-link-padding-x: #{$nav-segmented-link-padding-x-lg};
--nav-link-gap: #{$nav-segmented-link-gap-lg};
--nav-link-icon-size: #{$nav-segmented-link-icon-size-lg};
}
+9 -9
View File
@@ -1,22 +1,22 @@
@use '../config' as *;
.signature {
--#{$prefix}signature-padding: var(--#{$prefix}spacer-1);
--#{$prefix}signature-border-radius: var(--#{$prefix}border-radius);
--#{$prefix}signature-canvas-height: 12.5rem;
border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);
padding: var(--#{$prefix}signature-padding);
@include border-radius(var(--#{$prefix}border-radius));
--signature-padding: var(--spacer-1);
--signature-border-radius: var(--border-radius);
--signature-canvas-height: 12.5rem;
border: var(--border-width) solid var(--border-color);
padding: var(--signature-padding);
@include border-radius(var(--border-radius));
}
.signature-canvas {
border: var(--#{$prefix}border-width) dashed var(--#{$prefix}border-color);
@include border-radius(calc(var(--#{$prefix}signature-border-radius) - var(--#{$prefix}signature-padding)));
border: var(--border-width) dashed var(--border-color);
@include border-radius(calc(var(--signature-border-radius) - var(--signature-padding)));
display: block;
cursor: crosshair;
width: 100%;
// A fixed height is required: without it the canvas height comes from its own
// width/height attributes, which `resizeCanvas()` rewrites on every resize
// each run then measures a different `offsetHeight` and the pad drifts.
height: var(--#{$prefix}signature-canvas-height);
height: var(--signature-canvas-height);
}

Some files were not shown because too many files have changed in this diff Show More