diff --git a/webroot/css/themes/theme-darkly.css b/webroot/css/themes/theme-darkly.css index 8d23d3c..9c4511a 100644 --- a/webroot/css/themes/theme-darkly.css +++ b/webroot/css/themes/theme-darkly.css @@ -284,6 +284,14 @@ transform: translateX(-50%) translateY(-50%); } /* Body */ +body { + background-color: var(--bs-body-bg); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%'%3e%3cdefs%3e%3clinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%' gradientTransform='rotate%280,960,497%29'%3e%3cstop offset='0.7' stop-color='%23F8F9FA'/%3e%3cstop offset='1' stop-color='%23d6bbdd'/%3e%3c/linearGradient%3e%3cpattern patternUnits='userSpaceOnUse' id='b' width='300' height='250' x='0' y='0' viewBox='0 0 1080 900'%3e%3cg fill-opacity='0.05'%3e%3cpolygon fill='%23444' points='90 150 0 300 180 300'/%3e%3cpolygon points='90 150 180 0 0 0'/%3e%3cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3e%3cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3e%3cpolygon fill='%23999' points='450 150 540 0 360 0'/%3e%3cpolygon points='630 150 540 300 720 300'/%3e%3cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3e%3cpolygon fill='%23444' points='810 150 720 300 900 300'/%3e%3cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3e%3cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3e%3cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3e%3cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3e%3cpolygon points='90 450 180 300 0 300'/%3e%3cpolygon fill='%23666' points='270 450 180 600 360 600'/%3e%3cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3e%3cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3e%3cpolygon fill='%23999' points='450 450 540 300 360 300'/%3e%3cpolygon fill='%23999' points='630 450 540 600 720 600'/%3e%3cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3e%3cpolygon points='810 450 720 600 900 600'/%3e%3cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3e%3cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3e%3cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3e%3cpolygon fill='%23222' points='90 750 0 900 180 900'/%3e%3cpolygon points='270 750 180 900 360 900'/%3e%3cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3e%3cpolygon points='450 750 540 600 360 600'/%3e%3cpolygon points='630 750 540 900 720 900'/%3e%3cpolygon fill='%23444' points='630 750 720 600 540 600'/%3e%3cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3e%3cpolygon fill='%23666' points='810 750 900 600 720 600'/%3e%3cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3e%3cpolygon fill='%23999' points='180 0 90 150 270 150'/%3e%3cpolygon fill='%23444' points='360 0 270 150 450 150'/%3e%3cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3e%3cpolygon points='900 0 810 150 990 150'/%3e%3cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3e%3cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3e%3cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3e%3cpolygon fill='%23666' points='180 300 270 150 90 150'/%3e%3cpolygon fill='%23222' points='360 300 270 450 450 450'/%3e%3cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3e%3cpolygon fill='%23444' points='540 300 450 450 630 450'/%3e%3cpolygon fill='%23222' points='540 300 630 150 450 150'/%3e%3cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3e%3cpolygon fill='%23666' points='720 300 810 150 630 150'/%3e%3cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3e%3cpolygon fill='%23999' points='900 300 990 150 810 150'/%3e%3cpolygon points='0 600 -90 750 90 750'/%3e%3cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3e%3cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3e%3cpolygon fill='%23444' points='180 600 270 450 90 450'/%3e%3cpolygon fill='%23444' points='360 600 270 750 450 750'/%3e%3cpolygon fill='%23999' points='360 600 450 450 270 450'/%3e%3cpolygon fill='%23666' points='540 600 630 450 450 450'/%3e%3cpolygon fill='%23222' points='720 600 630 750 810 750'/%3e%3cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3e%3cpolygon fill='%23222' points='900 600 990 450 810 450'/%3e%3cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3e%3cpolygon fill='%23444' points='180 900 270 750 90 750'/%3e%3cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3e%3cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3e%3cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3e%3cpolygon fill='%23222' points='900 900 990 750 810 750'/%3e%3cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3e%3cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3e%3cpolygon points='1080 600 990 750 1170 750'/%3e%3cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3e%3cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect x='0' y='0' fill='url%28%23a%29' width='100%' height='100%'/%3e%3crect x='0' y='0' fill='url%28%23b%29' width='100%' height='100%'/%3e%3c/svg%3e"); + /* background by SVGBackgrounds.com */ + background-attachment: fixed; + background-size: cover; + background-blend-mode: soft-light; } + .panel { background-color: #363636; border: 1px solid #454545; diff --git a/webroot/css/themes/theme-default.css b/webroot/css/themes/theme-default.css index 95eee2a..d826d86 100644 --- a/webroot/css/themes/theme-default.css +++ b/webroot/css/themes/theme-default.css @@ -284,6 +284,14 @@ transform: translateX(-50%) translateY(-50%); } /* Body */ +body { + background-color: var(--bs-body-bg); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%'%3e%3cdefs%3e%3clinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%' gradientTransform='rotate%280,960,497%29'%3e%3cstop offset='0.7' stop-color='%23F8F9FA'/%3e%3cstop offset='1' stop-color='%23d6bbdd'/%3e%3c/linearGradient%3e%3cpattern patternUnits='userSpaceOnUse' id='b' width='300' height='250' x='0' y='0' viewBox='0 0 1080 900'%3e%3cg fill-opacity='0.05'%3e%3cpolygon fill='%23444' points='90 150 0 300 180 300'/%3e%3cpolygon points='90 150 180 0 0 0'/%3e%3cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3e%3cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3e%3cpolygon fill='%23999' points='450 150 540 0 360 0'/%3e%3cpolygon points='630 150 540 300 720 300'/%3e%3cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3e%3cpolygon fill='%23444' points='810 150 720 300 900 300'/%3e%3cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3e%3cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3e%3cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3e%3cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3e%3cpolygon points='90 450 180 300 0 300'/%3e%3cpolygon fill='%23666' points='270 450 180 600 360 600'/%3e%3cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3e%3cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3e%3cpolygon fill='%23999' points='450 450 540 300 360 300'/%3e%3cpolygon fill='%23999' points='630 450 540 600 720 600'/%3e%3cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3e%3cpolygon points='810 450 720 600 900 600'/%3e%3cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3e%3cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3e%3cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3e%3cpolygon fill='%23222' points='90 750 0 900 180 900'/%3e%3cpolygon points='270 750 180 900 360 900'/%3e%3cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3e%3cpolygon points='450 750 540 600 360 600'/%3e%3cpolygon points='630 750 540 900 720 900'/%3e%3cpolygon fill='%23444' points='630 750 720 600 540 600'/%3e%3cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3e%3cpolygon fill='%23666' points='810 750 900 600 720 600'/%3e%3cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3e%3cpolygon fill='%23999' points='180 0 90 150 270 150'/%3e%3cpolygon fill='%23444' points='360 0 270 150 450 150'/%3e%3cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3e%3cpolygon points='900 0 810 150 990 150'/%3e%3cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3e%3cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3e%3cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3e%3cpolygon fill='%23666' points='180 300 270 150 90 150'/%3e%3cpolygon fill='%23222' points='360 300 270 450 450 450'/%3e%3cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3e%3cpolygon fill='%23444' points='540 300 450 450 630 450'/%3e%3cpolygon fill='%23222' points='540 300 630 150 450 150'/%3e%3cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3e%3cpolygon fill='%23666' points='720 300 810 150 630 150'/%3e%3cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3e%3cpolygon fill='%23999' points='900 300 990 150 810 150'/%3e%3cpolygon points='0 600 -90 750 90 750'/%3e%3cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3e%3cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3e%3cpolygon fill='%23444' points='180 600 270 450 90 450'/%3e%3cpolygon fill='%23444' points='360 600 270 750 450 750'/%3e%3cpolygon fill='%23999' points='360 600 450 450 270 450'/%3e%3cpolygon fill='%23666' points='540 600 630 450 450 450'/%3e%3cpolygon fill='%23222' points='720 600 630 750 810 750'/%3e%3cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3e%3cpolygon fill='%23222' points='900 600 990 450 810 450'/%3e%3cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3e%3cpolygon fill='%23444' points='180 900 270 750 90 750'/%3e%3cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3e%3cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3e%3cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3e%3cpolygon fill='%23222' points='900 900 990 750 810 750'/%3e%3cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3e%3cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3e%3cpolygon points='1080 600 990 750 1170 750'/%3e%3cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3e%3cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect x='0' y='0' fill='url%28%23a%29' width='100%' height='100%'/%3e%3crect x='0' y='0' fill='url%28%23b%29' width='100%' height='100%'/%3e%3c/svg%3e"); + /* background by SVGBackgrounds.com */ + background-attachment: fixed; + background-size: cover; + background-blend-mode: normal; } + .panel { background-color: #fff; border: none; diff --git a/webroot/css/themes/theme-flatly.css b/webroot/css/themes/theme-flatly.css index 767b3f7..c94d649 100644 --- a/webroot/css/themes/theme-flatly.css +++ b/webroot/css/themes/theme-flatly.css @@ -284,6 +284,14 @@ transform: translateX(-50%) translateY(-50%); } /* Body */ +body { + background-color: var(--bs-body-bg); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%'%3e%3cdefs%3e%3clinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%' gradientTransform='rotate%280,960,497%29'%3e%3cstop offset='0.7' stop-color='%23F8F9FA'/%3e%3cstop offset='1' stop-color='%23afb6bd'/%3e%3c/linearGradient%3e%3cpattern patternUnits='userSpaceOnUse' id='b' width='300' height='250' x='0' y='0' viewBox='0 0 1080 900'%3e%3cg fill-opacity='0.05'%3e%3cpolygon fill='%23444' points='90 150 0 300 180 300'/%3e%3cpolygon points='90 150 180 0 0 0'/%3e%3cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3e%3cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3e%3cpolygon fill='%23999' points='450 150 540 0 360 0'/%3e%3cpolygon points='630 150 540 300 720 300'/%3e%3cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3e%3cpolygon fill='%23444' points='810 150 720 300 900 300'/%3e%3cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3e%3cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3e%3cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3e%3cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3e%3cpolygon points='90 450 180 300 0 300'/%3e%3cpolygon fill='%23666' points='270 450 180 600 360 600'/%3e%3cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3e%3cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3e%3cpolygon fill='%23999' points='450 450 540 300 360 300'/%3e%3cpolygon fill='%23999' points='630 450 540 600 720 600'/%3e%3cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3e%3cpolygon points='810 450 720 600 900 600'/%3e%3cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3e%3cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3e%3cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3e%3cpolygon fill='%23222' points='90 750 0 900 180 900'/%3e%3cpolygon points='270 750 180 900 360 900'/%3e%3cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3e%3cpolygon points='450 750 540 600 360 600'/%3e%3cpolygon points='630 750 540 900 720 900'/%3e%3cpolygon fill='%23444' points='630 750 720 600 540 600'/%3e%3cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3e%3cpolygon fill='%23666' points='810 750 900 600 720 600'/%3e%3cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3e%3cpolygon fill='%23999' points='180 0 90 150 270 150'/%3e%3cpolygon fill='%23444' points='360 0 270 150 450 150'/%3e%3cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3e%3cpolygon points='900 0 810 150 990 150'/%3e%3cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3e%3cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3e%3cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3e%3cpolygon fill='%23666' points='180 300 270 150 90 150'/%3e%3cpolygon fill='%23222' points='360 300 270 450 450 450'/%3e%3cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3e%3cpolygon fill='%23444' points='540 300 450 450 630 450'/%3e%3cpolygon fill='%23222' points='540 300 630 150 450 150'/%3e%3cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3e%3cpolygon fill='%23666' points='720 300 810 150 630 150'/%3e%3cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3e%3cpolygon fill='%23999' points='900 300 990 150 810 150'/%3e%3cpolygon points='0 600 -90 750 90 750'/%3e%3cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3e%3cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3e%3cpolygon fill='%23444' points='180 600 270 450 90 450'/%3e%3cpolygon fill='%23444' points='360 600 270 750 450 750'/%3e%3cpolygon fill='%23999' points='360 600 450 450 270 450'/%3e%3cpolygon fill='%23666' points='540 600 630 450 450 450'/%3e%3cpolygon fill='%23222' points='720 600 630 750 810 750'/%3e%3cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3e%3cpolygon fill='%23222' points='900 600 990 450 810 450'/%3e%3cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3e%3cpolygon fill='%23444' points='180 900 270 750 90 750'/%3e%3cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3e%3cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3e%3cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3e%3cpolygon fill='%23222' points='900 900 990 750 810 750'/%3e%3cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3e%3cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3e%3cpolygon points='1080 600 990 750 1170 750'/%3e%3cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3e%3cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect x='0' y='0' fill='url%28%23a%29' width='100%' height='100%'/%3e%3crect x='0' y='0' fill='url%28%23b%29' width='100%' height='100%'/%3e%3c/svg%3e"); + /* background by SVGBackgrounds.com */ + background-attachment: fixed; + background-size: cover; + background-blend-mode: normal; } + .panel { background-color: #fff; border: none; diff --git a/webroot/css/themes/theme-minty.css b/webroot/css/themes/theme-minty.css index 644b8e4..6948503 100644 --- a/webroot/css/themes/theme-minty.css +++ b/webroot/css/themes/theme-minty.css @@ -284,6 +284,14 @@ transform: translateX(-50%) translateY(-50%); } /* Body */ +body { + background-color: var(--bs-body-bg); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%'%3e%3cdefs%3e%3clinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%' gradientTransform='rotate%280,960,497%29'%3e%3cstop offset='0.7' stop-color='%23F8F9FA'/%3e%3cstop offset='1' stop-color='%23afb6bd'/%3e%3c/linearGradient%3e%3cpattern patternUnits='userSpaceOnUse' id='b' width='300' height='250' x='0' y='0' viewBox='0 0 1080 900'%3e%3cg fill-opacity='0.05'%3e%3cpolygon fill='%23444' points='90 150 0 300 180 300'/%3e%3cpolygon points='90 150 180 0 0 0'/%3e%3cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3e%3cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3e%3cpolygon fill='%23999' points='450 150 540 0 360 0'/%3e%3cpolygon points='630 150 540 300 720 300'/%3e%3cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3e%3cpolygon fill='%23444' points='810 150 720 300 900 300'/%3e%3cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3e%3cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3e%3cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3e%3cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3e%3cpolygon points='90 450 180 300 0 300'/%3e%3cpolygon fill='%23666' points='270 450 180 600 360 600'/%3e%3cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3e%3cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3e%3cpolygon fill='%23999' points='450 450 540 300 360 300'/%3e%3cpolygon fill='%23999' points='630 450 540 600 720 600'/%3e%3cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3e%3cpolygon points='810 450 720 600 900 600'/%3e%3cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3e%3cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3e%3cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3e%3cpolygon fill='%23222' points='90 750 0 900 180 900'/%3e%3cpolygon points='270 750 180 900 360 900'/%3e%3cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3e%3cpolygon points='450 750 540 600 360 600'/%3e%3cpolygon points='630 750 540 900 720 900'/%3e%3cpolygon fill='%23444' points='630 750 720 600 540 600'/%3e%3cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3e%3cpolygon fill='%23666' points='810 750 900 600 720 600'/%3e%3cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3e%3cpolygon fill='%23999' points='180 0 90 150 270 150'/%3e%3cpolygon fill='%23444' points='360 0 270 150 450 150'/%3e%3cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3e%3cpolygon points='900 0 810 150 990 150'/%3e%3cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3e%3cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3e%3cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3e%3cpolygon fill='%23666' points='180 300 270 150 90 150'/%3e%3cpolygon fill='%23222' points='360 300 270 450 450 450'/%3e%3cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3e%3cpolygon fill='%23444' points='540 300 450 450 630 450'/%3e%3cpolygon fill='%23222' points='540 300 630 150 450 150'/%3e%3cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3e%3cpolygon fill='%23666' points='720 300 810 150 630 150'/%3e%3cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3e%3cpolygon fill='%23999' points='900 300 990 150 810 150'/%3e%3cpolygon points='0 600 -90 750 90 750'/%3e%3cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3e%3cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3e%3cpolygon fill='%23444' points='180 600 270 450 90 450'/%3e%3cpolygon fill='%23444' points='360 600 270 750 450 750'/%3e%3cpolygon fill='%23999' points='360 600 450 450 270 450'/%3e%3cpolygon fill='%23666' points='540 600 630 450 450 450'/%3e%3cpolygon fill='%23222' points='720 600 630 750 810 750'/%3e%3cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3e%3cpolygon fill='%23222' points='900 600 990 450 810 450'/%3e%3cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3e%3cpolygon fill='%23444' points='180 900 270 750 90 750'/%3e%3cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3e%3cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3e%3cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3e%3cpolygon fill='%23222' points='900 900 990 750 810 750'/%3e%3cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3e%3cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3e%3cpolygon points='1080 600 990 750 1170 750'/%3e%3cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3e%3cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect x='0' y='0' fill='url%28%23a%29' width='100%' height='100%'/%3e%3crect x='0' y='0' fill='url%28%23b%29' width='100%' height='100%'/%3e%3c/svg%3e"); + /* background by SVGBackgrounds.com */ + background-attachment: fixed; + background-size: cover; + background-blend-mode: normal; } + .panel { background-color: #fff; border: none; diff --git a/webroot/css/themes/theme-slate.css b/webroot/css/themes/theme-slate.css index dc94297..d8b5ba6 100644 --- a/webroot/css/themes/theme-slate.css +++ b/webroot/css/themes/theme-slate.css @@ -280,6 +280,14 @@ transform: translateX(-50%) translateY(-50%); } /* Body */ +body { + background-color: var(--bs-body-bg); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='100%'%3e%3cdefs%3e%3clinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%' gradientTransform='rotate%280,960,497%29'%3e%3cstop offset='0.7' stop-color='%23F8F9FA'/%3e%3cstop offset='1' stop-color='%23d6bbdd'/%3e%3c/linearGradient%3e%3cpattern patternUnits='userSpaceOnUse' id='b' width='300' height='250' x='0' y='0' viewBox='0 0 1080 900'%3e%3cg fill-opacity='0.05'%3e%3cpolygon fill='%23444' points='90 150 0 300 180 300'/%3e%3cpolygon points='90 150 180 0 0 0'/%3e%3cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3e%3cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3e%3cpolygon fill='%23999' points='450 150 540 0 360 0'/%3e%3cpolygon points='630 150 540 300 720 300'/%3e%3cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3e%3cpolygon fill='%23444' points='810 150 720 300 900 300'/%3e%3cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3e%3cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3e%3cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3e%3cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3e%3cpolygon points='90 450 180 300 0 300'/%3e%3cpolygon fill='%23666' points='270 450 180 600 360 600'/%3e%3cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3e%3cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3e%3cpolygon fill='%23999' points='450 450 540 300 360 300'/%3e%3cpolygon fill='%23999' points='630 450 540 600 720 600'/%3e%3cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3e%3cpolygon points='810 450 720 600 900 600'/%3e%3cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3e%3cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3e%3cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3e%3cpolygon fill='%23222' points='90 750 0 900 180 900'/%3e%3cpolygon points='270 750 180 900 360 900'/%3e%3cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3e%3cpolygon points='450 750 540 600 360 600'/%3e%3cpolygon points='630 750 540 900 720 900'/%3e%3cpolygon fill='%23444' points='630 750 720 600 540 600'/%3e%3cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3e%3cpolygon fill='%23666' points='810 750 900 600 720 600'/%3e%3cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3e%3cpolygon fill='%23999' points='180 0 90 150 270 150'/%3e%3cpolygon fill='%23444' points='360 0 270 150 450 150'/%3e%3cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3e%3cpolygon points='900 0 810 150 990 150'/%3e%3cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3e%3cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3e%3cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3e%3cpolygon fill='%23666' points='180 300 270 150 90 150'/%3e%3cpolygon fill='%23222' points='360 300 270 450 450 450'/%3e%3cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3e%3cpolygon fill='%23444' points='540 300 450 450 630 450'/%3e%3cpolygon fill='%23222' points='540 300 630 150 450 150'/%3e%3cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3e%3cpolygon fill='%23666' points='720 300 810 150 630 150'/%3e%3cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3e%3cpolygon fill='%23999' points='900 300 990 150 810 150'/%3e%3cpolygon points='0 600 -90 750 90 750'/%3e%3cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3e%3cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3e%3cpolygon fill='%23444' points='180 600 270 450 90 450'/%3e%3cpolygon fill='%23444' points='360 600 270 750 450 750'/%3e%3cpolygon fill='%23999' points='360 600 450 450 270 450'/%3e%3cpolygon fill='%23666' points='540 600 630 450 450 450'/%3e%3cpolygon fill='%23222' points='720 600 630 750 810 750'/%3e%3cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3e%3cpolygon fill='%23222' points='900 600 990 450 810 450'/%3e%3cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3e%3cpolygon fill='%23444' points='180 900 270 750 90 750'/%3e%3cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3e%3cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3e%3cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3e%3cpolygon fill='%23222' points='900 900 990 750 810 750'/%3e%3cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3e%3cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3e%3cpolygon points='1080 600 990 750 1170 750'/%3e%3cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3e%3cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3e%3c/g%3e%3c/pattern%3e%3c/defs%3e%3crect x='0' y='0' fill='url%28%23a%29' width='100%' height='100%'/%3e%3crect x='0' y='0' fill='url%28%23b%29' width='100%' height='100%'/%3e%3c/svg%3e"); + /* background by SVGBackgrounds.com */ + background-attachment: fixed; + background-size: cover; + background-blend-mode: normal; } + .panel { background-color: #363636; border: 1px solid #454545; diff --git a/webroot/theme/scss/mixins/_background.scss b/webroot/theme/scss/mixins/_background.scss new file mode 100644 index 0000000..6f8757a --- /dev/null +++ b/webroot/theme/scss/mixins/_background.scss @@ -0,0 +1,5 @@ +@mixin background-svg($color) { + background-image: url(escape-svg("data:image/svg+xml,")); + /* background by SVGBackgrounds.com */ +} + \ No newline at end of file diff --git a/webroot/theme/scss/mixins/_toast.scss b/webroot/theme/scss/mixins/_toast.scss index bb2cb6f..d355748 100644 --- a/webroot/theme/scss/mixins/_toast.scss +++ b/webroot/theme/scss/mixins/_toast.scss @@ -3,7 +3,6 @@ @include gradient-bg($background); border-color: $border; - @debug "The colour is: #{$border}"; strong { border-top-color: darken($border, 5%); } diff --git a/webroot/theme/scss/theme-darkly.scss b/webroot/theme/scss/theme-darkly.scss index c7d0c48..4312b4b 100644 --- a/webroot/theme/scss/theme-darkly.scss +++ b/webroot/theme/scss/theme-darkly.scss @@ -4,6 +4,8 @@ $theme: "app-darkly"; @import "darkly/variables"; +$bodyBackgroundBlendmode: soft-light; + $panelBgColor: #363636; $panelShadow: none; $panelBorder: 1px solid #454545; diff --git a/webroot/theme/scss/theme-default.scss b/webroot/theme/scss/theme-default.scss index 1161c7f..aed0484 100644 --- a/webroot/theme/scss/theme-default.scss +++ b/webroot/theme/scss/theme-default.scss @@ -4,6 +4,13 @@ $theme: "app-default"; @import "../node_modules/bootstrap/scss/variables"; @import "../node_modules/bootstrap/scss/mixins"; +@import "./mixins/background"; + +$cerebrateColor: #924da6; +$bodyBackgroundImageStopColor: tint-color($cerebrateColor, 62) !default; +$enabledBackgroundSVG: true !default; +$bodyBackgroundBlendmode: normal !default; + $panelBgColor: $white !default; $panelShadow: 0 0 35px 0 rgba(154, 161, 171, 0.25) !default; $panelBorder: none !default; @@ -33,6 +40,16 @@ $calloutShadow: $panelShadow !default; @import "additional/bootstrap-additional"; /* Body */ +body { + @if $enabledBackgroundSVG { + background-color: var(--bs-body-bg); + @include background-svg($bodyBackgroundImageStopColor); + background-attachment: fixed; + background-size: cover; + background-blend-mode: $bodyBackgroundBlendmode; + } +} + .panel { background-color: $panelBgColor; border: $panelBorder; diff --git a/webroot/theme/scss/theme-flatly.scss b/webroot/theme/scss/theme-flatly.scss index 5338769..098d440 100644 --- a/webroot/theme/scss/theme-flatly.scss +++ b/webroot/theme/scss/theme-flatly.scss @@ -3,6 +3,9 @@ $theme: "app-flatly"; @import "flatly/variables"; +@import "../node_modules/bootstrap/scss/functions"; + +$bodyBackgroundImageStopColor: tint-color($primary, 62); $topNavbarColor: $primary; $navbarActiveColor: #d6d6d6; diff --git a/webroot/theme/scss/theme-minty.scss b/webroot/theme/scss/theme-minty.scss index d221989..d84730c 100644 --- a/webroot/theme/scss/theme-minty.scss +++ b/webroot/theme/scss/theme-minty.scss @@ -3,10 +3,13 @@ $theme: "app-flatly"; @import "flatly/variables"; +@import "../node_modules/bootstrap/scss/functions"; $topNavbarColor: $primary; $navbarActiveColor: #d6d6d6; +$bodyBackgroundImageStopColor: tint-color($primary, 62); + $loadingOverlayDefaultOpacity: 0.65 !default; $sidebarBgColor: $light; diff --git a/webroot/theme/scss/theme-quartz.scss b/webroot/theme/scss/theme-quartz.scss index be26a74..92d2e3e 100644 --- a/webroot/theme/scss/theme-quartz.scss +++ b/webroot/theme/scss/theme-quartz.scss @@ -4,6 +4,8 @@ $theme: "app-slate"; @import "quartz/variables"; +$enabledBackgroundSVG: false; + $panelBgColor: $card-bg; $panelBorder: none; diff --git a/webroot/theme/scss/theme-vapor.scss b/webroot/theme/scss/theme-vapor.scss index be3baad..4fe035d 100644 --- a/webroot/theme/scss/theme-vapor.scss +++ b/webroot/theme/scss/theme-vapor.scss @@ -4,6 +4,8 @@ $theme: "app-vapor"; @import "vapor/variables"; +$enabledBackgroundSVG: false; + $panelBgColor: #363636; $panelShadow: none; $panelBorder: 1px solid #454545;