diff --git a/assets/css/theme.css b/assets/css/theme.css
index e6a1603b2239..4d6ecf1c5dfa 100644
--- a/assets/css/theme.css
+++ b/assets/css/theme.css
@@ -201,6 +201,7 @@
--color-yellow-outlinedborder: rgba(235, 156, 0, 0.56);
--color-yellow-selected: rgba(235, 156, 0, 0.16);
+ --topnav-button-bg: #4878f3;
--tw-prose-code-bg: var(--color-gray-100);
--tw-prose-code-bg-dark: var(--color-gray-800);
}
diff --git a/assets/css/utilities.css b/assets/css/utilities.css
index 1923df36b4e8..d98821a4055e 100644
--- a/assets/css/utilities.css
+++ b/assets/css/utilities.css
@@ -249,10 +249,17 @@
@utility breadcrumbs {
font-size: 90%;
}
+
@utility topbar-button {
- @apply text-white font-semibold min-h-10 px-2 bg-blue-300/50 rounded-md border-1 border-blue-300 inline-flex justify-center items-center gap-1.5 hover:bg-blue-400/70 hover:border-blue-200 transition-colors;
+ @apply text-center max-w-40 text-white font-semibold min-h-10 px-2 bg-(--topnav-button-bg) rounded-md border-1 border-blue-300;
+ @apply inline-flex justify-center items-center gap-1.5 hover:bg-blue-400 hover:border-blue-300 transition-colors;
+ svg {
+ font-size: 19px;
+ }
+}
+@utility topbar-button-clear {
+ @apply text-center text-white/95 font-semibold min-h-9 px-0 hover:text-white/85 transition-colors;
svg {
font-size: 19px;
}
}
-
diff --git a/assets/icons/headset.svg b/assets/icons/headset.svg
new file mode 100644
index 000000000000..700d4c546086
--- /dev/null
+++ b/assets/icons/headset.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/icons/moon.svg b/assets/icons/moon.svg
new file mode 100644
index 000000000000..0bc248ff5148
--- /dev/null
+++ b/assets/icons/moon.svg
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/assets/icons/search.svg b/assets/icons/search.svg
index 8d3e225aa694..4f8a0b6c0178 100644
--- a/assets/icons/search.svg
+++ b/assets/icons/search.svg
@@ -1,8 +1,8 @@
diff --git a/assets/icons/sparkle.svg b/assets/icons/sparkle.svg
index aa93b15221b5..97ce7a10cbf9 100644
--- a/assets/icons/sparkle.svg
+++ b/assets/icons/sparkle.svg
@@ -1,8 +1,8 @@
diff --git a/assets/icons/sun.svg b/assets/icons/sun.svg
new file mode 100644
index 000000000000..5eb18a1d1d7b
--- /dev/null
+++ b/assets/icons/sun.svg
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/hugo_stats.json b/hugo_stats.json
index a87826249e0d..a8bfbf7398f7 100644
--- a/hugo_stats.json
+++ b/hugo_stats.json
@@ -330,7 +330,6 @@
"hidden",
"hidden'",
"highlight",
- "hover:bg-blue",
"hover:bg-blue-400",
"hover:bg-blue-400/90",
"hover:bg-blue-500",
@@ -338,7 +337,6 @@
"hover:bg-gray-200",
"hover:bg-gray-50",
"hover:border-white/20",
- "hover:dark:bg-blue-500",
"hover:dark:bg-gray-800",
"hover:dark:text-blue-400",
"hover:dark:text-blue-700",
@@ -375,6 +373,7 @@
"lg:grid-cols-3",
"lg:grid-cols-4",
"lg:hidden",
+ "lg:inline",
"lg:no-underline",
"lg:pb-2",
"lg:scale-100",
@@ -446,8 +445,6 @@
"object-cover",
"open-kapa-widget",
"openSUSE-and-SLES",
- "order-1",
- "order-2",
"origin-bottom-right",
"origin-top-right",
"ot-sdk-show-settings",
@@ -563,14 +560,13 @@
"top-16",
"top-6",
"topbar-button",
+ "topbar-button-clear",
"transition",
"transition-colors",
"transition-transform",
"truncate",
"underline-offset-2",
- "w-0",
"w-2",
- "w-32",
"w-5",
"w-65",
"w-8",
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 7b06c790c819..66cdeeff550b 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -49,6 +49,40 @@
>
Back
+
+
+
+
+ {{ partialCached "search-bar.html" "-" }}
+
+ {{ partial "contact-support-button.html" .}}
+
+
{{ block "left" . }}
{{ partial "sidebar/mainnav.html" . }}
diff --git a/layouts/_default/search.html b/layouts/_default/search.html
index 5d170983660d..7df360e5781c 100644
--- a/layouts/_default/search.html
+++ b/layouts/_default/search.html
@@ -11,7 +11,7 @@ {{ .Title }}
-
+
Not finding what you're looking for? Try
-
diff --git a/layouts/partials/components/support-button.html b/layouts/partials/components/support-button.html
deleted file mode 100644
index cd6faacdbeab..000000000000
--- a/layouts/partials/components/support-button.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
- Contact support
-
diff --git a/layouts/partials/contact-support-button.html b/layouts/partials/contact-support-button.html
new file mode 100644
index 000000000000..ff430c25fc1b
--- /dev/null
+++ b/layouts/partials/contact-support-button.html
@@ -0,0 +1,12 @@
+{{ $class := "" }}
+{{ if eq . "notext" }}
+ {{ $class = "hidden lg:inline" }}
+{{ end }}
+
+ Contact support
+
+ {{ partial "utils/svg.html" "/icons/headset.svg" }}
+
+
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 39aec22fd1fe..825af7a8035d 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -1,8 +1,4 @@
-
- {{ partialCached "components/support-button.html" . }}
-
+
@@ -95,27 +91,6 @@
-
- Theme:
-
-
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
index 7f4636eef7a1..0a8bc3904532 100644
--- a/layouts/partials/header.html
+++ b/layouts/partials/header.html
@@ -45,19 +45,51 @@
-
+
diff --git a/layouts/partials/search-bar.html b/layouts/partials/search-bar.html
index 7dd5a5c6b6d5..01e9a15baf21 100644
--- a/layouts/partials/search-bar.html
+++ b/layouts/partials/search-bar.html
@@ -1,129 +1,132 @@
-
{
- switch(e.key) {
- case 'k':
- if (e.metaKey || e.ctrlKey) {
- e.preventDefault();
- $el.focus();
+ x-ref="searchBarRef"
+ x-data="{ open: false }"
+ @click.outside="open = false;"
+ @keyup.escape.window="open = false"
+ id="search-bar"
+ class="relative items-center flex w-full max-w-full overflow-x-auto"
+ >
+
{
+ switch(e.key) {
+ case 'k':
+ if (e.metaKey || e.ctrlKey) {
+ e.preventDefault();
+ $el.focus();
+ }
+ break;
}
- break;
- }
- }"
- class="flex-grow order-1 min-w-0 border-none outline-none focus:outline-none"
- tabindex="0"
- />
-
-
- {{ partial "utils/svg.html" "/icons/search.svg" }}
-
-
-
-
- {{- $emptyState := `
Start typing to search or try .
` }}
- {{- $emptyState | safe.HTML }}
-
+ }"
+ tabindex="0"
+ />
+
+
+ {{ partial "utils/svg.html" "/icons/search.svg" }}
+
-
-
+ // Event delegation for tracking link clicks
+ if (window.heap !== undefined) {
+ searchBarResults.addEventListener('click', function (event) {
+ if (event.target.tagName === 'A' && event.target.closest('.link')) {
+ const searchQuery = event.target.getAttribute('data-query');
+ const resultIndex = event.target.getAttribute('data-index');
+ const url = new URL(event.target.href);
+ const properties = {
+ docs_search_target_path: url.pathname,
+ docs_search_target_title: event.target.textContent,
+ docs_search_query_text: searchQuery,
+ docs_search_target_index: resultIndex,
+ docs_search_source_path: window.location.pathname,
+ docs_search_source_title: document.title,
+ };
+ heap.track("Docs - Search - Click - Result Link", properties);
+ }
+ });
+ }
+ });
+