Пример Codesandbox
Я пишу тему bootstrap, используя их документацию ЗДЕСЬ . Я получаю следующую ошибку при попытке использовать функцию darken()
.
аргумент $color
из darken($color, $amount)
должен быть цвета
Я задал другие вопросы относительно этой ошибки, но большинство из них, похоже, связаны с порядок загрузки bootstrap импорта. Я не думаю, что это то, что здесь происходит. Кажется, что то, что возвращается из map-get()
, не считается цветом darken()
.
Пример:
// Color Palette
$soft-black: #333333;
$digital-green: #2e7d32;
$digital-green-accent: rgba(47, 127, 51, .10);
$light-green: #84bd00;
$gold: #f0b323;
$gray: #797979;
$gray-accent: rgba(51, 51, 51, 0.44);
$white: #ffffff;
$light-grey: #d2d2d2;
$red: #cc092f;
$dark-green: #005005;
$background-green: #e9eeee;
$background-grey: #f5f5f5;
$teal: #208484;
$colors: (
"soft-black": $soft-black,
"digital-green": $digital-green,
"light-green": $light-green,
"gold": $gold,
"gray": purple,
"white": $white,
"light-grey": pink,
"red": $red,
"dark-green": $dark-green,
"background-green": $background-green,
"background-grey": $background-grey,
"teal": $teal,
);
// Overriding bootstraps theme colors
$theme-colors: (
"primary": $digital-green,
"secondary": $gray,
"success": $light-green,
"info": $teal,
"warning": $gold,
"danger": $red,
"light": $white,
"dark": $soft-black
);
// Hard overrides.
// When no sass variables exist to override in bootstrap
@each $variant in ('primary', 'secondary', 'success', 'warning', 'danger', 'info', 'light', 'dark', 'link') {
$oc: darken(map-get($theme-colors, $variant), 7.5%);
.btn-outline-#{$variant}.hover, .btn-outline-#{$variant}:hover {
background-color: $oc;
color: $oc;
}
}
Странно, что это работает:
.btn-outline-#{$variant}.hover, .btn-outline-#{$variant}:hover {
background-color: map-get($theme-colors, $variant);
color: map-get($theme-colors, $variant);
}