diff --git a/assets/dark.scss b/assets/dark.scss index e71bc1560..89c166011 100644 --- a/assets/dark.scss +++ b/assets/dark.scss @@ -50,10 +50,12 @@ body[data-theme="dark"] { color: $light; --bs-border-color: rgba(66, 70, 73, 0.5); + --bs-primary-inverted: #{$primary}; a { color: $primary-dark; } a:hover { color: lighten($primary-dark, 10%); } .text-primary { color: $primary-dark !important; } + .text-light { color: $dark !important; } .text-dark { color: $light !important; } .btn-primary { color: $light; } .btn-primary:hover { color: darken($white, 10%); } diff --git a/assets/style.scss b/assets/style.scss index d2b1e258c..d4b1f3bb8 100644 --- a/assets/style.scss +++ b/assets/style.scss @@ -100,6 +100,7 @@ body { rgb(255,255,255) ); min-height: 100vh; + --bs-primary-inverted: #{$primary-dark}; } .container { @@ -199,6 +200,10 @@ strike, .text-strike { text-decoration: line-through; } +.text-primary-inverted { + color: var(--bs-primary-inverted) !important; +} + form[inert] { opacity: .5; } diff --git a/components/nouns/NounsDeclension.vue b/components/nouns/NounsDeclension.vue index a7e096c1f..aa0450f29 100644 --- a/components/nouns/NounsDeclension.vue +++ b/components/nouns/NounsDeclension.vue @@ -2,7 +2,7 @@ import { loadNounsData } from '~/src/data.ts'; import { capitalise } from '~/src/helpers.ts'; import { getFirstDeclension, resolveArticles, resolveDeclensionByCase } from '~/src/nouns.ts'; -import type { NounConvention, Numerus, NounWord } from '~/src/nouns.ts'; +import type { Numerus, NounWord } from '~/src/nouns.ts'; const props = withDefaults(defineProps<{ word: NounWord; @@ -15,12 +15,7 @@ const props = withDefaults(defineProps<{ const nounsData = await loadNounsData(); -const nounConvention = computed((): WithKey | undefined => { - if (props.word.convention === undefined || nounsData.conventions === undefined) { - return undefined; - } - return { ...nounsData.conventions[props.word.convention], key: props.word.convention }; -}); +const nounConvention = computed(() => getWithKey(nounsData.conventions, props.word.convention)); const articles = computed(() => { if (nounConvention.value === undefined) { diff --git a/components/nouns/NounsWordDisplay.vue b/components/nouns/NounsWordDisplay.vue index 7facd1e96..2f9c7a24f 100644 --- a/components/nouns/NounsWordDisplay.vue +++ b/components/nouns/NounsWordDisplay.vue @@ -30,6 +30,8 @@ const abbrs = computed((): Record => dissectedWord.value. const mainWord = computed((): NounWord => dissectedWord.value.mainWord); const declensionByCase = computed(() => resolveDeclensionByCase(mainWord.value, props.numerus, nounsData)); + +const nounConvention = computed(() => getWithKey(nounsData.conventions, mainWord.value.convention));