Changeset 35412 for main


Ignore:
Timestamp:
2021-09-16T13:22:16+12:00 (3 years ago)
Author:
cstephen
Message:

Add ToggleButton component.
Improve button themes.

Location:
main/trunk/model-interfaces-dev/atea/korero-maori-asr/src
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItemEditor.vue

    r35409 r35412  
    11<template>
    2     <div>
    3         <div class="editor-controls">
    4             <button class="btn-toggle" @click="enableEditing = enableEditing == null ? true : null" :toggled="enableEditing">
    5                 <span class="material-icons .mdi-m">edit</span>
    6             </button>
    7         </div>
    8 
    9         <div class="text-container words-container" :hidden="enableEditing">
    10             <ul class="list-view" v-if="!enableEditing">
    11                 <li v-for="word in words" :key="word.id" class="word-container" @click="playAudio(word.startTime)">
    12                         <span class="word-highlight word" :class="{ 'word-highlight-applied': word.shouldHighlight }">
    13                             {{ word.word }}
    14                         </span>
    15                 </li>
    16             </ul>
    17 
    18             <ul class="list-view" v-if="enableEditing">
    19                 <li v-for="(word, index) in words" :key="word.id" class="word-container">
    20                     <input :size="word.word.length <= 1 ? 1 : word.word.length - 1" :ref="word.id"
    21                         class="editor-word" v-model="word.word" type="text"
    22                         @input="onEditorInput($event, index)" @focusout="onEditorFocusOut(index)" @keyup="onEditorKeyUp($event, index)" />
    23                     <span>&nbsp;</span>
    24                 </li>
    25             </ul>
    26         </div>
     2<div>
     3    <div class="editor-controls">
     4        <input type="range" class="slider-continuous" />
     5
     6        <toggle-button v-model="enableEditing">
     7            <span class="material-icons .mdi-m">edit</span>
     8        </toggle-button>
    279    </div>
     10
     11    <div class="text-container words-container" :hidden="enableEditing">
     12        <ul class="list-view" v-if="!enableEditing">
     13            <li v-for="word in words" :key="word.id" class="word-container" @click="playAudio(word.startTime)">
     14                    <span class="word-highlight word" :class="{ 'word-highlight-applied': word.shouldHighlight }">
     15                        {{ word.word }}
     16                    </span>
     17            </li>
     18        </ul>
     19
     20        <ul class="list-view" v-if="enableEditing">
     21            <li v-for="(word, index) in words" :key="word.id" class="word-container">
     22                <input :size="word.word.length <= 1 ? 1 : word.word.length - 1" :ref="word.id"
     23                    class="editor-word" v-model="word.word" type="text"
     24                    @input="onEditorInput($event, index)" @focusout="onEditorFocusOut(index)" @keyup="onEditorKeyUp($event, index)" />
     25                <span>&nbsp;</span>
     26            </li>
     27        </ul>
     28    </div>
     29</div>
    2830</template>
    2931
     
    3436
    3537.editor-controls {
    36     display: flex;
     38    display: grid;
    3739    align-items: center;
    38     justify-content: flex-end;
     40    grid-template-columns: 1fr auto;
    3941    margin: 0.5em 0 0.3em 0;
    40     gap: 0.3em;
     42    gap: 1em;
    4143}
    4244
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/main.js

    r35409 r35412  
    22import { createStore } from "vuex"
    33import App from "./App.vue";
     4import ToggleButton from "./components/ToggleButton.vue"
    45import Util from "./js/Util"
    56
     
    102103createApp(App)
    103104    .use(store)
     105    .component("ToggleButton", ToggleButton)
    104106    .mount("#app");
    105107
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/styles/_material.scss

    r35405 r35412  
    9999        filter: grayscale(100%);
    100100    }
    101 
    102     .material-icons {
    103         margin-right: 0.3em;
    104     }
    105101}
    106102
     
    110106    border-radius: 50%;
    111107    padding: 0.2em;
    112 
    113     .material-icons {
    114         margin-right: 0em;
    115     }
    116 }
    117 
    118 .btn-toggle {
    119     @extend .btn-fab;
    120     color: var(--primary-bg-color);
    121     background-color: var(--paper-color);
    122     border: 2px solid var(--primary-bg-color);
    123     box-shadow: var(--primary-box-shadow-thin);
    124 
    125     &[toggled] {
    126         color: var(--primary-fg-color);
    127         background-color: var(--primary-bg-color);
    128     }
    129108}
    130109
     
    246225}
    247226
     227/* Sliders */
     228
     229@mixin slider-clear {
     230    appearance: none;
     231    width: 100%; // Required for firefox
     232
     233    &:focus {
     234        outline: none;
     235    }
     236
     237    &::-webkit-slider-thumb {
     238        -webkit-appearance: none;
     239    }
     240
     241    &::-moz-range-track {
     242        outline: none;
     243    }
     244
     245    &::-ms-track {
     246        width: 100%;
     247        background: transparent;
     248        border-color: transparent;
     249        color: transparent;
     250    }
     251}
     252
     253@mixin slider-thumb {
     254    height: 24px;
     255    width: 24px;
     256    border-radius: 50%;
     257    cursor: pointer;
     258
     259    background: var(--primary-bg-color);
     260    box-shadow: var(--primary-box-shadow-thin);
     261
     262    &:hover {
     263        filter: brightness(var(--hover-brightness));
     264        }
     265}
     266
     267.slider-continuous {
     268    @include slider-clear();
     269
     270    margin: 0;
     271    padding: 0;
     272    height: 8px;
     273    border-radius: 4px;
     274    background: scale-color($primary-bg-color-l1, $alpha: -70%);
     275
     276    transition-duration: var(--transition-duration);
     277
     278    &::-webkit-slider-thumb {
     279        @include slider-thumb()
     280    }
     281
     282    &::-moz-range-thumb {
     283        @include slider-thumb()
     284    }
     285
     286    &::-ms-thumb {
     287        @include slider-thumb()
     288    }
     289
     290    &:hover {
     291        background: scale-color($primary-bg-color-l1, $alpha: -60%);
     292    }
     293}
     294
    248295/* List Views */
    249296
     
    265312/* === End component definitions === */
    266313
    267 /* Material Design Icon sizes */
    268 
    269 .mdi-s {
    270     font-size: 18px;
    271 }
    272 
    273 .mdi-m {
    274     font-size: 24px;
    275 }
    276 
    277 .mdi-l {
    278     font-size: 36px;
    279 }
    280 
    281 .mdi-xl {
    282     font-size: 48px;
    283 }
    284 
    285314/* Font sizes */
    286315
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/styles/theme.scss

    r35399 r35412  
    3737    @extend .switch;
    3838}
     39
     40.button-primary .material-icons {
     41    margin-right: 0.3em;
     42}
     43
     44.btn-fab .material-icons {
     45    margin-right: 0em;
     46}
     47
     48/* Material Design Icon sizes */
     49
     50.mdi-s {
     51    font-size: 18px;
     52}
     53
     54.mdi-m {
     55    font-size: 24px;
     56}
     57
     58.mdi-l {
     59    font-size: 36px;
     60}
     61
     62.mdi-xl {
     63    font-size: 48px;
     64}
Note: See TracChangeset for help on using the changeset viewer.