Merge pull request 'Move language switch button to the footer' (#100) from feature/language-switch-in-footer into main
Deploy on dev / Deploy on dev (push) Successful in 34s

Reviewed-on: #100
Reviewed-by: Johannes D. Vos
This commit was merged in pull request #100.
This commit is contained in:
2026-06-01 18:50:48 +02:00
committed by Gitea
3 changed files with 19 additions and 15 deletions
+6 -7
View File
@@ -15,6 +15,8 @@ limitations under the License.
--> -->
<script setup> <script setup>
import LanguageSwitchButton from '@/features/i18n/components/LanguageSwitchButton.vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
const { t } = useI18n(); const { t } = useI18n();
@@ -36,12 +38,11 @@ const copyrightPeriod =
<RouterLink to="settings" class="link"> <RouterLink to="settings" class="link">
{{ t('preferences.settings') }} {{ t('preferences.settings') }}
</RouterLink> </RouterLink>
<LanguageSwitchButton />
</div> </div>
<div class="footer-segment"> <div class="footer-segment">
<div class="copyright-note">
&copy; {{ copyrightPeriod }} Seekra &copy; {{ copyrightPeriod }} Seekra
</div> </div>
</div>
</footer> </footer>
</template> </template>
@@ -51,6 +52,9 @@ const copyrightPeriod =
} }
.footer-segment { .footer-segment {
display: flex;
justify-content: center;
gap: 32px;
padding: var(--padding-y); padding: var(--padding-y);
background-color: var(--light-bg); background-color: var(--light-bg);
border-top: 1px solid var(--border); border-top: 1px solid var(--border);
@@ -59,9 +63,4 @@ const copyrightPeriod =
.global-footer a { .global-footer a {
color: var(--dark); color: var(--dark);
} }
.copyright-note {
display: flex;
justify-content: center;
}
</style> </style>
@@ -71,7 +71,15 @@ const open = function () {
</span> </span>
</button> </button>
<ul v-if="isOpen" ref="languageDropdown" class="language-dropdown" role="listbox"> <ul
v-if="isOpen"
ref="languageDropdown"
class="language-dropdown"
role="listbox"
:style="{
bottom: 'calc(var(--offset) + 2 * var(--trigger-padding-y) + 1em)' // easier to add auto adaption to the available space
}"
>
<li <li
v-for="lang in SUPPORTED_LANGUAGES" v-for="lang in SUPPORTED_LANGUAGES"
:key="lang" :key="lang"
@@ -88,6 +96,7 @@ const open = function () {
<style scoped> <style scoped>
.language-switch { .language-switch {
--trigger-padding-y: 4px;
position: relative; position: relative;
} }
@@ -98,7 +107,7 @@ const open = function () {
background: none; background: none;
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 6px; border-radius: 6px;
padding: 4px 10px; padding: var(--trigger-padding-y) 10px;
cursor: pointer; cursor: pointer;
color: var(--dark); color: var(--dark);
} }
@@ -118,9 +127,9 @@ const open = function () {
} }
.language-dropdown { .language-dropdown {
--offset: 6px;
position: absolute; position: absolute;
right: 0; right: 0;
top: calc(100% + 6px);
background-color: var(--light-bg); background-color: var(--light-bg);
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 8px; border-radius: 8px;
-4
View File
@@ -16,7 +16,6 @@ limitations under the License.
<script setup> <script setup>
import ColorSchemeButton from '@/features/colorScheme/components/ColorSchemeButton.vue'; import ColorSchemeButton from '@/features/colorScheme/components/ColorSchemeButton.vue';
import LanguageSwitchButton from '@/features/i18n/components/LanguageSwitchButton.vue';
import logo from '@/assets/images/logo.svg'; import logo from '@/assets/images/logo.svg';
import NavbarSearchBarWrapper from './NavbarSearchBarWrapper.vue'; import NavbarSearchBarWrapper from './NavbarSearchBarWrapper.vue';
</script> </script>
@@ -28,9 +27,6 @@ import NavbarSearchBarWrapper from './NavbarSearchBarWrapper.vue';
</RouterLink> </RouterLink>
<NavbarSearchBarWrapper class="navbar-search-bar-wrapper" /> <NavbarSearchBarWrapper class="navbar-search-bar-wrapper" />
<ul class="right-links"> <ul class="right-links">
<li>
<LanguageSwitchButton />
</li>
<li> <li>
<ColorSchemeButton /> <ColorSchemeButton />
</li> </li>