add functional setting switch
This commit is contained in:
parent
79827b946d
commit
e8d4517606
|
@ -5,14 +5,28 @@
|
||||||
|
|
||||||
/*Imports*/
|
/*Imports*/
|
||||||
import { SettingsWrapper } from './';
|
import { SettingsWrapper } from './';
|
||||||
const components = { SettingsWrapper };
|
import { SettingSwitch } from '../generic';
|
||||||
|
const components = { SettingsWrapper, SettingSwitch };
|
||||||
|
|
||||||
function openInternalEditor() {
|
function openInternalEditor() {
|
||||||
CssEditor.show();
|
CssEditor.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function settingClicked() {
|
||||||
|
this.dummySetting.checked = !this.dummySetting.checked;
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components,
|
components,
|
||||||
methods: { openInternalEditor }
|
methods: { openInternalEditor, settingClicked },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dummySetting: {
|
||||||
|
title: "Live Update",
|
||||||
|
hint: "Automatically update client css when saved.",
|
||||||
|
checked: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
|
@ -1,9 +1,5 @@
|
||||||
<SettingsWrapper headertext="CSS Editor">
|
<SettingsWrapper headertext="CSS Editor">
|
||||||
<div class="bd-css-editor">
|
<div class="bd-css-editor">
|
||||||
<div class="bd-form-item">
|
|
||||||
<h5>Settings</h5>
|
|
||||||
</div>
|
|
||||||
<div class="bd-form-divider"></div>
|
|
||||||
<div class="bd-form-item">
|
<div class="bd-form-item">
|
||||||
<h5>Custom Editor</h5>
|
<h5>Custom Editor</h5>
|
||||||
<div class="bd-form-warning">
|
<div class="bd-form-warning">
|
||||||
|
@ -18,6 +14,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bd-form-divider"></div>
|
<div class="bd-form-divider"></div>
|
||||||
|
<SettingSwitch :setting="dummySetting" :onClick="settingClicked"/>
|
||||||
<div class="bd-form-item">
|
<div class="bd-form-item">
|
||||||
<h5>System Editor</h5>
|
<h5>System Editor</h5>
|
||||||
<div class="bd-form-button">
|
<div class="bd-form-button">
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<template src="./templates/SettingSwitch.html"></template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: ['setting', 'onClick']
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -1 +1,2 @@
|
||||||
export { default as ScrollerWrap } from './ScrollerWrap.vue';
|
export { default as ScrollerWrap } from './ScrollerWrap.vue';
|
||||||
|
export { default as SettingSwitch } from './SettingSwitch.vue';
|
|
@ -0,0 +1,10 @@
|
||||||
|
<div class="bd-setting-switch">
|
||||||
|
<div class="bd-title">
|
||||||
|
<h3>{{setting.title}}</h3>
|
||||||
|
<label class="bd-switch-wrapper" @click="onClick">
|
||||||
|
<input type="checkbox" class="bd-switch-checkbox"/>
|
||||||
|
<div class="bd-switch" :class="{'bd-checked': setting.checked}"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="bd-hint">{{setting.hint}}</div>
|
||||||
|
</div>
|
|
@ -119,3 +119,98 @@
|
||||||
background: lighten(#3e82e5, 5%);
|
background: lighten(#3e82e5, 5%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
-webkit-box-pack: start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
-webkit-box-align: stretch;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-title {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
-webkit-box-align: stretch;
|
||||||
|
align-items: stretch;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
user-select: none;
|
||||||
|
position: relative;
|
||||||
|
width: 44px;
|
||||||
|
height: 24px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper input {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper .bd-switch {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background: #72767d;
|
||||||
|
border-radius: 14px;
|
||||||
|
transition: background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-title h3 {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #f6f6f7;
|
||||||
|
flex: 1;
|
||||||
|
line-height: 24px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-hint {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
color: #72767d;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
line-height: 30px;
|
||||||
|
border-bottom: 0px solid hsla(218,5%,47%,.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper .bd-switch:before {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
position: absolute;
|
||||||
|
top: 3px;
|
||||||
|
left: 3px;
|
||||||
|
bottom: 3px;
|
||||||
|
background: #f6f6f7;
|
||||||
|
border-radius: 10px;
|
||||||
|
transition: all .15s ease;
|
||||||
|
box-shadow: 0 3px 1px 0 rgba(0,0,0,.05), 0 2px 2px 0 rgba(0,0,0,.1), 0 3px 3px 0 rgba(0,0,0,.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper .bd-switch.bd-checked {
|
||||||
|
background: $colbdblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bd-setting-switch .bd-switch-wrapper .bd-switch.bd-checked:before {
|
||||||
|
transform: translateX(20px);
|
||||||
|
}
|
Loading…
Reference in New Issue