Skip to content

Commit

Permalink
include bootstrap5 version with bootstrap5 variables in color scheme,…
Browse files Browse the repository at this point in the history
… add dark color scheme
  • Loading branch information
lenadax committed Oct 17, 2024
1 parent 7df8c96 commit ff9a64b
Show file tree
Hide file tree
Showing 6 changed files with 200 additions and 7 deletions.
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,18 @@ SCSS_TARGET?=src/yafowil/widget/slider/resources/widget.css
# Default: scss/styles.min.css
SCSS_MIN_TARGET?=src/yafowil/widget/slider/resources/widget.min.css

# The SCSS root source file for Bootstrap5.
# Default: scss/styles.scss
SCSS_SOURCE_BS5?=scss/bootstrap5/widget.scss

# The target file for the compiled Bootstrap5 Stylesheet.
# Default: scss/styles.css
SCSS_TARGET_BS5?=src/yafowil/widget/slider/resources/bootstrap5/widget.css

# The target file for the compressed Bootstrap5 Stylesheet.
# Default: scss/styles.min.css
SCSS_MIN_TARGET_BS5?=src/yafowil/widget/slider/resources/bootstrap5/widget.min.css

# Additional options to be passed to SCSS compiler.
# Default: --no-source-map=none
SCSS_OPTIONS?=--no-source-map=none
Expand Down Expand Up @@ -263,6 +275,10 @@ scss: $(NPM_TARGET)
$(SCSS_OPTIONS) $(SCSS_SOURCE) $(SCSS_TARGET)
@$(NPM_PREFIX)/node_modules/.bin/sass \
$(SCSS_OPTIONS) --style compressed $(SCSS_SOURCE) $(SCSS_MIN_TARGET)
@$(NPM_PREFIX)/node_modules/.bin/sass \
$(SCSS_OPTIONS) $(SCSS_SOURCE_BS5) $(SCSS_TARGET_BS5)
@$(NPM_PREFIX)/node_modules/.bin/sass \
$(SCSS_OPTIONS) --style compressed $(SCSS_SOURCE_BS5) $(SCSS_MIN_TARGET_BS5)

##############################################################################
# rollup
Expand Down
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@
"karma-test:coverage": "node js/karma-coverage.js"
},
"devDependencies": {
"@rollup/plugin-terser": "^0.4.3",
"karma": "^6.4.2",
"@rollup/plugin-terser": "^0.4.4",
"karma": "^6.4.4",
"karma-chrome-launcher": "^3.2.0",
"karma-coverage": "^2.2.0",
"karma-coverage": "^2.2.1",
"karma-module-resolver-preprocessor": "^1.1.3",
"karma-qunit": "^4.1.2",
"karma-qunit": "^4.2.1",
"karma-viewport": "^1.0.9",
"qunit": "^2.19.4",
"rollup": "^2.79.1",
"qunit": "^2.22.0",
"rollup": "^2.79.2",
"rollup-plugin-cleanup": "^3.2.1",
"sass": "^1.62.1"
"sass": "^1.80.1"
},
"dependencies": {
"jquery": "^3.6.0"
Expand Down
73 changes: 73 additions & 0 deletions scss/bootstrap5/widget.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
div.yafowil_slider {
padding-top:0.65em;
width: 100%;

& > .slider {
position: relative;
display: flex;
align-items: center;

.slider-bg {
position: absolute;
width: 100%;
border-radius: 15px;
background: lightgray;
box-shadow: inset 1px 1px 2px rgb(0 0 0 / 15%);
}

.slider-value-track {
position: absolute;
border-radius: 15px;
background: var(--yafowil-accent-color, var(--bs-primary));
}

.slider-handle {
position: absolute;
background: white;
transform: translateX(-50%);
border-radius: 50%;
box-shadow: 0 0 2px 2px rgba(0,0,0,0.2);
z-index: 1000;
}

.slider-handle.active {
border: 1px solid var(--yafowil-accent-color, var(--bs-primary))!important;
}
}

& > .slider.slider-vertical {
margin-top: 10px;
justify-content: center;

.slider-bg {
height: 100%;
box-shadow: inset 0px 1px 2px rgb(0 0 0 / 15%);
}

.slider-value-track {
top: 0;
height: 0;
}

.slider-handle {
top: 0;
transform: translateY(-50%);
}
}
}

[data-bs-theme="dark"] {
div.yafowil_slider {
& > .slider {
.slider-bg {
background-color: var(--bs-gray-700);
box-shadow: none!important;
}
.slider-handle {
background: var(--bs-gray-400);
box-shadow: 0 0 2px 2px rgba(0,0,0,.4);
border: 1px solid #ffffff12;
}
}
}
}
45 changes: 45 additions & 0 deletions src/yafowil/widget/slider/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,36 @@
'order': 20,
}]

##############################################################################
# Bootstrap 5
##############################################################################

# webresource ################################################################

bootstrap5_resources = wr.ResourceGroup(
name='yafowil.widget.slider',
directory=resources_dir,
path='yafowil-slider'
)
bootstrap5_resources.add(wr.ScriptResource(
name='yafowil-slider-js',
depends='jquery-js',
resource='widget.js',
compressed='widget.min.js'
))
bootstrap5_resources.add(wr.StyleResource(
name='yafowil-slider-css',
resource='bootstrap5/widget.css',
compressed='bootstrap5/widget.min.css'
))

# B/C resources ##############################################################

bootstrap5_css = [{
'group': 'yafowil.widget.slider.common',
'resource': 'bootstrap5/widget.css',
'order': 20,
}]

##############################################################################
# Registration
Expand All @@ -60,3 +90,18 @@ def register():
js=js, css=css
)
factory.register_resources('default', widget_name, resources)

# Bootstrap 5
factory.register_theme(
['bootstrap5'],
widget_name,
resources_dir,
js=js,
css=bootstrap5_css
)

factory.register_resources(
['bootstrap5'],
widget_name,
bootstrap5_resources
)
58 changes: 58 additions & 0 deletions src/yafowil/widget/slider/resources/bootstrap5/widget.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
div.yafowil_slider {
padding-top: 0.65em;
width: 100%;
}
div.yafowil_slider > .slider {
position: relative;
display: flex;
align-items: center;
}
div.yafowil_slider > .slider .slider-bg {
position: absolute;
width: 100%;
border-radius: 15px;
background: lightgray;
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.15);
}
div.yafowil_slider > .slider .slider-value-track {
position: absolute;
border-radius: 15px;
background: var(--yafowil-accent-color, var(--bs-primary));
}
div.yafowil_slider > .slider .slider-handle {
position: absolute;
background: white;
transform: translateX(-50%);
border-radius: 50%;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2);
z-index: 1000;
}
div.yafowil_slider > .slider .slider-handle.active {
border: 1px solid var(--yafowil-accent-color, var(--bs-primary)) !important;
}
div.yafowil_slider > .slider.slider-vertical {
margin-top: 10px;
justify-content: center;
}
div.yafowil_slider > .slider.slider-vertical .slider-bg {
height: 100%;
box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.15);
}
div.yafowil_slider > .slider.slider-vertical .slider-value-track {
top: 0;
height: 0;
}
div.yafowil_slider > .slider.slider-vertical .slider-handle {
top: 0;
transform: translateY(-50%);
}

[data-bs-theme=dark] div.yafowil_slider > .slider .slider-bg {
background-color: var(--bs-gray-700);
box-shadow: none !important;
}
[data-bs-theme=dark] div.yafowil_slider > .slider .slider-handle {
background: var(--bs-gray-400);
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.4);
border: 1px solid rgba(255, 255, 255, 0.0705882353);
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ff9a64b

Please sign in to comment.