diff --git a/public/timeout.wav b/public/timeout.wav new file mode 100644 index 0000000..a1f4627 Binary files /dev/null and b/public/timeout.wav differ diff --git a/src/App.vue b/src/App.vue index 2aa16cb..83c815c 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,8 +1,8 @@ @@ -19,6 +19,7 @@ export default { data: function() { return { time: 0, + playsound: false, wakeLockAvailable: this.hasWakeLock() } }, @@ -26,6 +27,9 @@ export default { setTime(number) { this.time = number; }, + setPlaySound(state) { + this.playsound = state; + }, hasWakeLock() { if ('wakeLock' in navigator) { return true; @@ -41,6 +45,8 @@ export default { + + 1 + + + + diff --git a/src/scss/form-elements.scss b/src/scss/form-elements.scss new file mode 100644 index 0000000..81f2f64 --- /dev/null +++ b/src/scss/form-elements.scss @@ -0,0 +1,63 @@ + +/* The switch - the box around the slider */ +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; +} + +/* Hide default HTML checkbox */ +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: $light-gray; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: $red; +} + +input:focus + .slider { + box-shadow: 0 0 1px $red; +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} \ No newline at end of file diff --git a/src/scss/includes.scss b/src/scss/includes.scss new file mode 100644 index 0000000..4ae740a --- /dev/null +++ b/src/scss/includes.scss @@ -0,0 +1,3 @@ +@import "~@/scss/vars.scss"; +@import "~@/scss/form-elements.scss"; +@import "~@/scss/fonts.scss"; \ No newline at end of file diff --git a/src/scss/vars.scss b/src/scss/vars.scss index ba61eff..fad871b 100644 --- a/src/scss/vars.scss +++ b/src/scss/vars.scss @@ -1,3 +1,6 @@ $light-red: #ff8888; $dark-red: #880000; -$red: #ff0000; \ No newline at end of file +$red: #ff0000; +$white: #f9e3d1; +$black: #121212; +$light-gray: #ababab; \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 64f8786..3750e78 100644 --- a/vue.config.js +++ b/vue.config.js @@ -9,7 +9,7 @@ module.exports = { // `scss` syntax requires an semicolon at the end of a statement, while `sass` syntax requires none // in that case, we can target the `scss` syntax separately using the `scss` option scss: { - additionalData: `@import "~@/scss/fonts.scss";@import "~@/scss/vars.scss";` + additionalData: `@import "~@/scss/includes.scss";` }, } }