diff --git a/R/bs-theme-preset-builtin.R b/R/bs-theme-preset-builtin.R index dc2cda74b..b20bf282f 100644 --- a/R/bs-theme-preset-builtin.R +++ b/R/bs-theme-preset-builtin.R @@ -22,19 +22,22 @@ builtin_bundle <- function(name = "shiny", version = version_default()) { ) } - path_variables <- path_builtin_theme(name, "_variables.scss", version = version) - path_rules <- path_builtin_theme(name, "_rules.scss", version = version) + sass_parts <- rlang::set_names(c("variables", "mixins", "rules")) + + sass_files <- lapply(sass_parts, function(part) { + path <- path_builtin_theme(name, paste0("_", part, ".scss"), version = version) + if (file.exists(path)) sass_file(path) + }) sass_bundle( "builtin" = sass_layer( file_attachments = attachments, defaults = list( '$web-font-path: "font.css" !default;', - sass_file(path_variables) + sass_files$variables ), - rules = list( - if (file.exists(path_rules)) sass_file(path_rules) - ) + mixins = list(sass_files$mixins), + rules = list(sass_files$rules) ) ) } diff --git a/inst/builtin/bs5/shiny/_mixins.scss b/inst/builtin/bs5/shiny/_mixins.scss new file mode 100644 index 000000000..305a69b6e --- /dev/null +++ b/inst/builtin/bs5/shiny/_mixins.scss @@ -0,0 +1,3 @@ +// Shiny: selectInput() and selectizeInput() +$selectize-color-dropdown-item-active: $component-active-bg !default; +$selectize-color-dropdown-item-active-text: $component-active-color !default; diff --git a/inst/builtin/bs5/shiny/_rules.scss b/inst/builtin/bs5/shiny/_rules.scss index 7d34f4ee9..729d342df 100644 --- a/inst/builtin/bs5/shiny/_rules.scss +++ b/inst/builtin/bs5/shiny/_rules.scss @@ -5,17 +5,11 @@ $web-font-path: "https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0, } // move checkbox and radio text slightly to the right -.checkbox input, -.radio input { - margin-right: 0.35em; -} - -// make selected item more accessible -.selectize-dropdown-content .option.selected.active, -.selectize-dropdown-content .option:hover, -.selectize-dropdown-content .option:active { - background-color: $blue; - color: $white; +.checkbox, +.radio { + input { + margin-right: 0.35em; + } } // make non-selected items slightly different visually (but still 3:1 contrast) diff --git a/inst/builtin/bs5/shiny/_variables.scss b/inst/builtin/bs5/shiny/_variables.scss index b8da7bfd1..8d8f2ea85 100644 --- a/inst/builtin/bs5/shiny/_variables.scss +++ b/inst/builtin/bs5/shiny/_variables.scss @@ -23,14 +23,14 @@ $gray-700: #48505f !default; $gray-800: #343a46 !default; $gray-900: #1d1f21 !default; -$default: #dee2e6 !default; -$primary: #007bc2 !default; +$default: $gray-300 !default; +$primary: $blue !default; $secondary: #404040 !default; -$success: #00891a !default; -$info: #03c7e8 !default; -$warning: #f9b928 !default; -$danger: #c10000 !default; -$light: #f8f8f8 !default; +$success: $green !default; +$info: $cyan !default; +$warning: $yellow !default; +$danger: $red !default; +$light: $gray-100 !default; $dark: #202020 !default; $default-rgb: 222, 226, 230 !default; @@ -53,10 +53,12 @@ $gradient: linear-gradient( rgba(255, 255, 255, 0) ) !default; -$base-font: "Open Sans" !default; -$font-family-sans-serif: $base-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$body-color: $gray-900 !default; +$body-bg: $white !default; + +// Fonts +$font-family-base: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; $font-family-monospace: "Source Code Pro", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; -$headings-font-family: $font-family-sans-serif !default; $root-font-size: 18px !default; $body-font-size: 1rem !default; @@ -65,23 +67,21 @@ $h1-font-size: 2.1rem !default; $body-font-weight: 400 !default; $headings-font-weight: 400 !default; -$body-color: $gray-900 !default; -$body-bg: #ffffff !default; - +// Spacing $hr-margin-y: 2rem !default; +// Buttons $input-btn-font-size: 15px !default; - $btn-font-weight: 500 !default; $btn-padding-y: 0.75em !default; $btn-padding-x: 2em !default; - +// Form controls $form-check-input-width: 1.2em !default; $form-check-input-border-radius: 2px !default; $form-check-margin-bottom: 0.25rem !default; $form-text-color: $red !default; +// Borders $input-border-color: $gray-500 !default; - $border-radius: 3px !default;