diff --git a/pattern_library/__init__.py b/pattern_library/__init__.py index 88b173e..c96367f 100644 --- a/pattern_library/__init__.py +++ b/pattern_library/__init__.py @@ -35,6 +35,13 @@ ("templates", ["patterns/templates"]), ("pages", ["patterns/pages"]), ), + # CUSTOM_CSS allows users to override pattern library styles by providing a path to a CSS file + # (relative to STATIC_URL) that contains CSS custom properties. This file will be included + # after the main bundle to override default styles. + # Example: "css/pattern-library-custom.css" + "CUSTOM_CSS": None, + # SITE_TITLE allows users to customize the pattern library title displayed in the header + "SITE_TITLE": "Django Pattern Library", } diff --git a/pattern_library/static/pattern_library/src/scss/_config.scss b/pattern_library/static/pattern_library/src/scss/_config.scss index 9865eb1..684dbdc 100644 --- a/pattern_library/static/pattern_library/src/scss/_config.scss +++ b/pattern_library/static/pattern_library/src/scss/_config.scss @@ -1,7 +1,14 @@ -// Overwrite the title, main colour and font family here -$site-title: 'Django Pattern Library'; -$color-primary: #34b2b2; -$family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; +// Configuration with support for runtime customization via CSS custom properties + +// Default SCSS variables for compile-time usage (needed for Sass functions) +$color-primary: #34b2b2 !default; +$family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif !default; + +// CSS Custom Properties for runtime customization +html, :root { + --color-primary: #{$color-primary}; + --family-primary: #{$family-primary}; +} // $color--primary + $family--primary are in _config.scss $white: #fff; diff --git a/pattern_library/static/pattern_library/src/scss/abstracts/_base.scss b/pattern_library/static/pattern_library/src/scss/abstracts/_base.scss index 51a0ccd..ae4cdc2 100644 --- a/pattern_library/static/pattern_library/src/scss/abstracts/_base.scss +++ b/pattern_library/static/pattern_library/src/scss/abstracts/_base.scss @@ -9,7 +9,7 @@ html, body { margin: 0; - font-family: $family-primary; + font-family: var(--family-primary); height: 100%; } diff --git a/pattern_library/static/pattern_library/src/scss/components/_list.scss b/pattern_library/static/pattern_library/src/scss/components/_list.scss index e715575..fbe7fb5 100644 --- a/pattern_library/static/pattern_library/src/scss/components/_list.scss +++ b/pattern_library/static/pattern_library/src/scss/components/_list.scss @@ -70,7 +70,7 @@ &:hover, &.is-active { background: $white; - border-left: 5px solid $color-primary; + border-left: 5px solid var(--color-primary); } } } diff --git a/pattern_library/static/pattern_library/src/scss/components/_tabbed-listing.scss b/pattern_library/static/pattern_library/src/scss/components/_tabbed-listing.scss index f84e34e..ac0d4d4 100644 --- a/pattern_library/static/pattern_library/src/scss/components/_tabbed-listing.scss +++ b/pattern_library/static/pattern_library/src/scss/components/_tabbed-listing.scss @@ -25,14 +25,14 @@ &:hover { color: #000; - background-color: $color-primary; + background-color: var(--color-primary); } } &--active { > a { color: #000; - background-color: $color-primary; + background-color: var(--color-primary); } } diff --git a/pattern_library/static/pattern_library/src/scss/layout/_header.scss b/pattern_library/static/pattern_library/src/scss/layout/_header.scss index 07bb24f..1b516cd 100644 --- a/pattern_library/static/pattern_library/src/scss/layout/_header.scss +++ b/pattern_library/static/pattern_library/src/scss/layout/_header.scss @@ -1,7 +1,7 @@ @use "../config" as *; .header { - background-color: $color-primary; + background-color: var(--color-primary); display: flex; align-items: center; height: 45px; @@ -17,10 +17,8 @@ letter-spacing: 1px; font-size: 16px; margin-left: 15px; - - &::after { - content: $site-title; - } + margin-top: 0; + margin-bottom: 0; @media only screen and (min-width: 600px) { font-size: 22px; diff --git a/pattern_library/templates/pattern_library/base.html b/pattern_library/templates/pattern_library/base.html index f84a814..388fb26 100644 --- a/pattern_library/templates/pattern_library/base.html +++ b/pattern_library/templates/pattern_library/base.html @@ -1,4 +1,5 @@ {% load static %} +{% load pattern_library_tags %} @@ -9,6 +10,7 @@ + {% pattern_library_custom_css %}
@@ -19,7 +21,7 @@