diff --git a/src/App.scss b/src/App.scss
index 8fb3c48856..19c069ed74 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -313,6 +313,7 @@ main-router {
border-radius: $fallback--panelRadius;
border-radius: var(--panelRadius, $fallback--panelRadius);
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
+ box-shadow: var(--panel-shadow);
}
.panel-body:empty::before {
diff --git a/src/components/shadow_control/shadow_control.js b/src/components/shadow_control/shadow_control.js
index c357581d06..a6992999ae 100644
--- a/src/components/shadow_control/shadow_control.js
+++ b/src/components/shadow_control/shadow_control.js
@@ -9,6 +9,8 @@ export default {
'value', 'fallback'
],
data () {
+ console.log('sdsa')
+ console.log(this.value, this.fallback)
return {
selectedId: 0,
cValue: this.value || this.fallback
@@ -36,6 +38,9 @@ export default {
const movable = this.cValue.splice(this.selectedId, 1)[0]
this.cValue.splice(this.selectedId + 1, 0, movable)
this.selectedId += 1
+ },
+ update () {
+ this.$emit('input', this.cValue)
}
},
computed: {
@@ -67,7 +72,6 @@ export default {
return hex2rgb(this.selected.color)
},
style () {
- console.log(StyleSetter.generateShadow(this.cValue))
return {
boxShadow: StyleSetter.generateShadow(this.cValue)
}
diff --git a/src/components/shadow_control/shadow_control.vue b/src/components/shadow_control/shadow_control.vue
index 2443944991..614de76a19 100644
--- a/src/components/shadow_control/shadow_control.vue
+++ b/src/components/shadow_control/shadow_control.vue
@@ -5,6 +5,7 @@
@@ -182,15 +183,15 @@
}
.preview-window {
flex: 1;
- background-color: white;
+ background-color: #999999;
display: flex;
align-items: center;
justify-content: center;
background-image:
- linear-gradient(45deg, #808080 25%, transparent 25%),
- linear-gradient(-45deg, #808080 25%, transparent 25%),
- linear-gradient(45deg, transparent 75%, #808080 75%),
- linear-gradient(-45deg, transparent 75%, #808080 75%);
+ linear-gradient(45deg, #666666 25%, transparent 25%),
+ linear-gradient(-45deg, #666666 25%, transparent 25%),
+ linear-gradient(45deg, transparent 75%, #666666 75%),
+ linear-gradient(-45deg, transparent 75%, #666666 75%);
background-size: 20px 20px;
background-position:0 0, 0 10px, 10px -10px, -10px 0;
diff --git a/src/components/style_switcher/style_switcher.js b/src/components/style_switcher/style_switcher.js
index 8e344eb112..b40511df83 100644
--- a/src/components/style_switcher/style_switcher.js
+++ b/src/components/style_switcher/style_switcher.js
@@ -1,4 +1,5 @@
import { rgb2hex, hex2rgb, getContrastRatio, alphaBlend } from '../../services/color_convert/color_convert.js'
+import { set, delete as del } from 'vue'
import ColorInput from '../color_input/color_input.vue'
import ShadowControl from '../shadow_control/shadow_control.vue'
import ContrastRatio from '../contrast_ratio/contrast_ratio.vue'
@@ -155,7 +156,7 @@ export default {
}
},
previewTheme () {
- if (!this.preview.theme) return { colors: {}, opacity: {}, radii: {} }
+ if (!this.preview.theme) return { colors: {}, opacity: {}, radii: {}, shadows: {} }
return this.preview.theme
},
previewContrast () {
@@ -231,14 +232,30 @@ export default {
return [this.preview.colorRules, this.preview.radiiRules, 'color: var(--text)'].join(';')
},
shadowsAvailable () {
- return Object.keys(this.preview.theme.shadows)
+ return Object.keys(this.previewTheme.shadows)
},
- currentShadow () {
- const fallback = this.preview.theme.shadows[this.shadowSelected];
- return fallback ? {
- fallback,
- value: this.shadowsLocal[this.shadowSelected]
- } : undefined
+ currentShadowOverriden: {
+ get () {
+ return this.currentShadow
+ },
+ set (val) {
+ if (val) {
+ set(this.shadowsLocal, this.shadowSelected, Object.assign({}, this.currentShadowFallback))
+ } else {
+ del(this.shadowsLocal, this.shadowSelected)
+ }
+ }
+ },
+ currentShadowFallback () {
+ return this.previewTheme.shadows[this.shadowSelected]
+ },
+ currentShadow: {
+ get () {
+ return this.shadowsLocal[this.shadowSelected]
+ },
+ set (v) {
+ set(this.shadowsLocal, this.shadowSelected, v)
+ }
}
},
components: {
@@ -305,7 +322,10 @@ export default {
setCustomTheme () {
this.$store.dispatch('setOption', {
name: 'customTheme',
- value: this.currentTheme
+ value: {
+ ...this.currentTheme,
+ shadows: this.shadowsLocal
+ }
})
},
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index 0352f546f4..af816a23d2 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -1,49 +1,49 @@
-
-
-
- {{$t('settings.presets')}}
-
-
-
-
-
-
{{ $t('settings.invalid_theme_imported') }}
-
-
-
-
-
-
Preview
-
-
- ( ͡° ͜ʖ ͡°)
-
-
Content
-
- A bunch of more content and
-
a nice lil' link
-
-
-
-
-
-
+
+
+
+ {{$t('settings.presets')}}
+
+
+
+
+
+
{{ $t('settings.invalid_theme_imported') }}
+
+
+
+
+
+
Preview
+
+
+ ( ͡° ͜ʖ ͡°)
+
+
Content
+
+ A bunch of more content and
+
a nice lil' link
+
+
+
+
+
+
+
-
{{$t('settings.theme_help')}}
@@ -171,15 +171,29 @@
-
-
+
+ Shadow
+
+
+
+
-
+
diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js
index 3840e215b3..aac0405591 100644
--- a/src/services/style_setter/style_setter.js
+++ b/src/services/style_setter/style_setter.js
@@ -72,7 +72,7 @@ const getTextColor = function (bg, text, preserve) {
}
const setColors = (input, commit) => {
- const { colorRules, radiiRules, theme } = generatePreset(input)
+ const { colorRules, radiiRules, shadowRules, theme } = generatePreset(input)
const head = document.head
const body = document.body
body.style.display = 'none'
@@ -84,6 +84,7 @@ const setColors = (input, commit) => {
styleSheet.toString()
styleSheet.insertRule(`body { ${colorRules} }`, 'index-max')
styleSheet.insertRule(`body { ${radiiRules} }`, 'index-max')
+ styleSheet.insertRule(`body { ${shadowRules} }`, 'index-max')
body.style.display = 'initial'
// commit('setOption', { name: 'colors', value: htmlColors })