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 select +
+ +
+ + + + + + + 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;