From 667586e84c5f9e1926fbfe14019c005becd887f2 Mon Sep 17 00:00:00 2001 From: Lauren Barker Date: Mon, 2 Jun 2025 09:25:45 -0700 Subject: [PATCH 1/6] Feat: add language selector for multi-language support - Display language selector when 2+ translations are available - Add conditional check using .AllTranslations length - Pass language data to Vue component via data attributes - Uses GlCollapsibleListbox component --- themes/gitlab-docs/assets/css/main.css | 24 ++++++ themes/gitlab-docs/assets/css/variables.css | 2 +- .../gitlab-docs/layouts/partials/header.html | 13 +++ .../src/components/language_selector.vue | 84 +++++++++++++++++++ .../src/components/versions_menu.vue | 2 +- themes/gitlab-docs/src/main.js | 12 +++ 6 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 themes/gitlab-docs/src/components/language_selector.vue diff --git a/themes/gitlab-docs/assets/css/main.css b/themes/gitlab-docs/assets/css/main.css index f998c001a4..7b5c2c1332 100644 --- a/themes/gitlab-docs/assets/css/main.css +++ b/themes/gitlab-docs/assets/css/main.css @@ -50,6 +50,30 @@ a.header-logo:hover { z-index: 500; } } +/* Language Selector */ +.language-selector.gl-new-dropdown { + .gl-button.gl-button.btn-confirm { + background-color: transparent; + box-shadow:none; + width: 100%; + justify-content: left; + .gl-button-text { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + .gl-button-icon { + margin-left: 0 + } + } + &[aria-expanded="true"] { + background-color: var(--t-indigo-700); + } + } + .gl-new-dropdown-item.gl-new-dropdown-item-highlighted .gl-new-dropdown-item-content { + box-shadow:none; + } +} /* Versions menu */ .navbar-toggle { width: 16px; diff --git a/themes/gitlab-docs/assets/css/variables.css b/themes/gitlab-docs/assets/css/variables.css index 3c61a691d7..d05d37063e 100644 --- a/themes/gitlab-docs/assets/css/variables.css +++ b/themes/gitlab-docs/assets/css/variables.css @@ -65,7 +65,7 @@ */ :root { --header-height: 3rem; - --header-mobile-open-height: 15rem; + --header-mobile-open-height: 18rem; --footer-height: 9rem; --header-offset: calc(var(--header-height) + 1rem); diff --git a/themes/gitlab-docs/layouts/partials/header.html b/themes/gitlab-docs/layouts/partials/header.html index 5f7a84df48..6c31baabb2 100644 --- a/themes/gitlab-docs/layouts/partials/header.html +++ b/themes/gitlab-docs/layouts/partials/header.html @@ -38,6 +38,19 @@
{{ T "header.whatsNew" }} + + {{ if gt (len .AllTranslations) 1 }} +
+ {{ range .AllTranslations }} +
+ {{ end }} +
+ {{ end }} {{ if (eq $isArchivesPath "false") }}
diff --git a/themes/gitlab-docs/src/components/language_selector.vue b/themes/gitlab-docs/src/components/language_selector.vue new file mode 100644 index 0000000000..6492842dc6 --- /dev/null +++ b/themes/gitlab-docs/src/components/language_selector.vue @@ -0,0 +1,84 @@ + + + diff --git a/themes/gitlab-docs/src/components/versions_menu.vue b/themes/gitlab-docs/src/components/versions_menu.vue index f347d1ad4d..7fb7624f54 100644 --- a/themes/gitlab-docs/src/components/versions_menu.vue +++ b/themes/gitlab-docs/src/components/versions_menu.vue @@ -165,7 +165,7 @@ export default {