diff --git a/src/generators/web/template.html b/src/generators/web/template.html
index fa59fb8e..ae85915d 100644
--- a/src/generators/web/template.html
+++ b/src/generators/web/template.html
@@ -19,7 +19,7 @@
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&family=Open+Sans:ital,wght@0,300..800;1,300..800" />
-
+
diff --git a/src/generators/web/ui/components/SearchBox/index.jsx b/src/generators/web/ui/components/SearchBox/index.jsx
index 451d3831..9724b8b8 100644
--- a/src/generators/web/ui/components/SearchBox/index.jsx
+++ b/src/generators/web/ui/components/SearchBox/index.jsx
@@ -1,18 +1,52 @@
+import {
+ ArrowDownIcon,
+ ArrowTurnDownLeftIcon,
+ ArrowUpIcon,
+} from '@heroicons/react/24/solid';
import SearchModal from '@node-core/ui-components/Common/Search/Modal';
import SearchResults from '@node-core/ui-components/Common/Search/Results';
import SearchHit from '@node-core/ui-components/Common/Search/Results/Hit';
+import styles from './index.module.css';
import useOrama from '../../hooks/useOrama.mjs';
const SearchBox = () => {
const client = useOrama();
return (
-
- }
- />
+
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
to navigate
+
+
+
+ esc
+ to close
+
+
+
);
};
diff --git a/src/generators/web/ui/components/SearchBox/index.module.css b/src/generators/web/ui/components/SearchBox/index.module.css
new file mode 100644
index 00000000..639e714b
--- /dev/null
+++ b/src/generators/web/ui/components/SearchBox/index.module.css
@@ -0,0 +1,76 @@
+.searchResultsContainer {
+ display: flex;
+ flex-grow: 1;
+ flex-direction: column;
+ overflow-y: auto;
+}
+
+.footer {
+ display: flex;
+ justify-content: center;
+ align-items: baseline;
+ padding: 1rem;
+ border-top: 1px solid var(--color-neutral-200);
+ background-color: var(--color-neutral-100);
+}
+
+:where([data-theme='dark'], [data-theme='dark'] *) .footer {
+ border-top-color: var(--color-neutral-900);
+ background-color: var(--color-neutral-950);
+}
+
+@media (min-width: 1024px) {
+ .footer {
+ justify-content: space-between;
+ border-radius: 0 0 0.75rem 0.75rem;
+ }
+}
+
+.shortcutWrapper {
+ display: none;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+@media (min-width: 1024px) {
+ .shortcutWrapper {
+ display: flex;
+ }
+}
+
+.shortcutItem {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-size: 0.75rem;
+ color: var(--color-neutral-800);
+}
+
+:where([data-theme='dark'], [data-theme='dark'] *) .shortcutItem {
+ color: var(--color-neutral-600);
+}
+
+.shortcutKey {
+ font-family: var(--font-ibm-plex-mono);
+ border-radius: 0.375rem;
+ background-color: var(--color-neutral-200);
+ padding: 0.25rem;
+ font-size: 0.75rem;
+}
+
+:where([data-theme='dark'], [data-theme='dark'] *) .shortcutKey {
+ background-color: var(--color-neutral-900);
+}
+
+.shortcutKey svg {
+ width: 1rem;
+ height: 1rem;
+}
+
+.shortcutLabel {
+ color: var(--color-neutral-800);
+}
+
+:where([data-theme='dark'], [data-theme='dark'] *) .shortcutLabel {
+ color: var(--color-neutral-600);
+}
diff --git a/src/generators/web/ui/components/SideBar/index.module.css b/src/generators/web/ui/components/SideBar/index.module.css
index 1b8cea77..00b5c343 100644
--- a/src/generators/web/ui/components/SideBar/index.module.css
+++ b/src/generators/web/ui/components/SideBar/index.module.css
@@ -1,3 +1,4 @@
.select {
width: 100%;
+ margin-bottom: -1rem;
}
diff --git a/src/generators/web/ui/hooks/useTheme.mjs b/src/generators/web/ui/hooks/useTheme.mjs
index e77b6659..0469ef33 100644
--- a/src/generators/web/ui/hooks/useTheme.mjs
+++ b/src/generators/web/ui/hooks/useTheme.mjs
@@ -8,6 +8,7 @@ import { useState, useEffect, useCallback } from 'react';
*/
const applyTheme = theme => {
document.documentElement.setAttribute('data-theme', theme);
+ document.documentElement.style.colorScheme = theme;
localStorage.setItem('theme', theme);
};
diff --git a/src/generators/web/ui/index.css b/src/generators/web/ui/index.css
index 92855072..530d6ff5 100644
--- a/src/generators/web/ui/index.css
+++ b/src/generators/web/ui/index.css
@@ -8,8 +8,6 @@
}
main {
- overflow-x: scroll;
-
/* Code should inherit its font size */
code {
font-size: inherit;