Skip to content

Commit 9bebe72

Browse files
committed
fix: rework layer adding to ensure correct order
Bootstrap defaults come after brand palette but before brand vars
1 parent 1242c6d commit 9bebe72

File tree

1 file changed

+17
-31
lines changed

1 file changed

+17
-31
lines changed

shiny/ui/_theme_brand.py

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -289,25 +289,29 @@ def __init__(
289289
self.brand = brand
290290

291291
# Prep Sass and CSS Variables -------------------------------------------------
292-
sass_vars_colors, sass_vars_brand, css_vars_brand = (
292+
sass_vars_theme_colors, sass_vars_brand_colors, css_vars_brand = (
293293
ThemeBrand._prepare_color_vars(brand)
294294
)
295295
sass_vars_typography = ThemeBrand._prepare_typography_vars(brand)
296296

297297
# Theme -----------------------------------------------------------------------
298298
# Defaults are added in reverse order, so each chunk appears above the next
299299
# layer of defaults. The intended order in the final output is:
300-
# 1. Brand Sass color and typography vars
301-
# 2. Brand's Bootstrap Sass vars
302-
# 3. Gray scale variables from Brand fg/bg or black/white
303-
# 4. Fallback vars needed by additional Brand rules
300+
# 1. Brand Color palette
301+
# 2. Brand Bootstrap Sass vars
302+
# 3. Brand theme colors
303+
# 4. Brand typography
304+
# 5. Gray scale variables from Brand fg/bg or black/white
305+
# 6. Fallback vars needed by additional Brand rules
304306

305307
self.add_defaults("", "// *---- brand: end of defaults ----* //", "")
306308
self._add_sass_ensure_variables()
307309
self._add_sass_brand_grays()
308-
self._add_defaults_brand_bootstrap(brand_bootstrap)
309-
self._add_defaults_typography(sass_vars_typography)
310-
self._add_defaults_color(sass_vars_colors, sass_vars_brand)
310+
self._add_defaults_hdr("typography", **sass_vars_typography)
311+
self._add_defaults_hdr("theme colors", **sass_vars_theme_colors)
312+
if brand_bootstrap.defaults:
313+
self._add_defaults_hdr("bootstrap defaults", **brand_bootstrap.defaults)
314+
self._add_defaults_hdr("brand colors", **sass_vars_brand_colors)
311315

312316
# Brand rules (now in forwards order)
313317
self._add_rules_brand_colors(css_vars_brand)
@@ -391,6 +395,10 @@ def _prepare_typography_vars(brand: Brand) -> dict[str, str]:
391395

392396
return mapped
393397

398+
def _add_defaults_hdr(self, header: str, **kwargs: YamlScalarType):
399+
self.add_defaults(**kwargs)
400+
self.add_defaults(f"\n// *---- brand: {header} ----* //")
401+
394402
def _add_sass_ensure_variables(self):
395403
"""Ensure the variables we create to augment Bootstrap's variables exist"""
396404
self.add_defaults(
@@ -438,6 +446,7 @@ def _add_sass_brand_grays(self):
438446
)
439447
self.add_defaults(
440448
"""
449+
// *---- brand: automatic gray gradient ----* //
441450
$enable-brand-grays: true !default;
442451
// Ensure these variables exist so that we can set them inside of @if context
443452
// They can still be overwritten by the user, even with !default;
@@ -477,20 +486,6 @@ def _add_sass_brand_grays(self):
477486
}
478487
"""
479488
)
480-
self.add_defaults("// *---- brand: automatic gray gradient ----* //")
481-
482-
def _add_defaults_brand_bootstrap(self, brand_bootstrap: BrandBootstrapConfig):
483-
if not brand_bootstrap.defaults:
484-
return
485-
486-
self.add_defaults(**brand_bootstrap.defaults)
487-
self.add_defaults(
488-
"// *---- brand.defaults.bootstrap + brand.defaults.shiny.theme ----* //"
489-
)
490-
491-
def _add_defaults_typography(self, sass_vars_typography: dict[str, str]):
492-
self.add_defaults(**sass_vars_typography)
493-
self.add_defaults("\n// *---- brand.typography ----* //")
494489

495490
def _add_sass_brand_rules(self):
496491
"""Additional rules to fill in Bootstrap styles for Brand parameters"""
@@ -532,15 +527,6 @@ def _add_sass_brand_rules(self):
532527
"""
533528
)
534529

535-
def _add_defaults_color(
536-
self,
537-
sass_vars_colors: dict[str, str],
538-
sass_vars_brand: dict[str, str],
539-
):
540-
self.add_defaults(**sass_vars_colors)
541-
self.add_defaults(**sass_vars_brand)
542-
self.add_defaults("\n// *---- brand.color ----* //")
543-
544530
def _add_rules_brand_colors(self, css_vars_colors: list[str]):
545531
self.add_rules("\n// *---- brand.color.palette ----* //")
546532
self.add_rules(":root {", *css_vars_colors, "}")

0 commit comments

Comments
 (0)