diff options
| author | Henry Jameson <me@hjkos.com> | 2024-06-26 14:17:22 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2024-06-26 14:17:22 +0300 |
| commit | eba3a43805b5777aebb677df88bf5c8533743ead (patch) | |
| tree | ba42d51db134e9b721014914156b4aa3fa0681d9 /src/components/font_control/font_control.vue | |
| parent | a664cf352d78caefb5be7b82d8bf6b282702d9a3 (diff) | |
better font control custom input
Diffstat (limited to 'src/components/font_control/font_control.vue')
| -rw-r--r-- | src/components/font_control/font_control.vue | 101 |
1 files changed, 55 insertions, 46 deletions
diff --git a/src/components/font_control/font_control.vue b/src/components/font_control/font_control.vue index d2d1b388..e73862a0 100644 --- a/src/components/font_control/font_control.vue +++ b/src/components/font_control/font_control.vue @@ -1,6 +1,6 @@ <template> <div - class="font-control style-control" + class="font-control" :class="{ custom: isCustom }" > <label @@ -10,43 +10,59 @@ > {{ label }} </label> - <input + {{ ' ' }} + <Checkbox v-if="typeof fallback !== 'undefined'" :id="name + '-o'" - :aria-labelledby="name + '-label'" - class="input -checkbox opt exlcude-disabled visible-for-screenreader-only" - type="checkbox" - :checked="present" + :modelValue="present" @change="$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)" > - <label - v-if="typeof fallback !== 'undefined'" - class="opt-l" - :for="name + '-o'" - :aria-hidden="true" - /> - {{ ' ' }} - <Select - :id="name + '-font-switcher'" - v-model="preset" - :disabled="!present" - class="font-switcher" - > - <option - v-for="option in availableOptions" - :key="option" - :value="option" + {{ $t('settings.style.themes3.define') }} + </Checkbox> + <p> + <Select + :id="name + '-font-switcher'" + v-model="preset" + :disabled="!present" + class="font-switcher" > - {{ option === 'custom' ? $t('settings.style.fonts.custom') : option }} - </option> - </Select> - <input - v-if="isCustom" - :id="name" - v-model="family" - class="input custom-font" - type="text" - > + <option + v-for="option in availableOptions" + :key="option" + :value="option" + > + {{ $t('settings.style.themes3.font.' + option) }} + </option> + </Select> + </p> + <p> + <input + v-if="isCustom" + :id="name" + v-model="familyCustom" + class="input custom-font" + type="text" + > + <span + v-if="invalidCustom" + class="InvalidIndicator" + > + <Popover + trigger="hover" + :trigger-attrs="{ 'aria-label': $t('settings.style.themes3.font.invalid_custom_reserved') }" + > + <template #trigger> + + <FAIcon icon="exclamation-triangle" /> + </template> + <template #content> + <div class="invalid-tooltip"> + {{ $t('settings.style.themes3.font.invalid_custom_reserved') }} + </div> + </template> + </Popover> + </span> + </p> </div> </template> @@ -55,20 +71,13 @@ <style lang="scss"> .font-control { input.custom-font { - min-width: 10em; + min-width: 12em; } +} - &.custom { - /* TODO Should make proper joiners... */ - .font-switcher { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .custom-font { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - } +.invalid-tooltip { + margin: 0.5em 1em; + min-width: 10em; + text-align: center; } </style> |
