Skip to content

Commit 6905dd0

Browse files
committed
improvements
1 parent 098c754 commit 6905dd0

3 files changed

Lines changed: 48 additions & 67 deletions

File tree

site/src/components/header/Navigation.astro

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,11 @@ const activeSection = !layout ? 'Home' : title === 'Examples' ? 'Examples' : 'Do
100100
</ul>
101101
</div>
102102

103-
{layout === 'docs' && (
103+
<ul class="nav navbar-nav flex-row ms-auto">
104104
<div class="bd-search">
105105
<SearchTrigger placeholder="Search docs…" />
106106
</div>
107-
)}
108107

109-
<ul class="nav navbar-nav flex-row ms-auto">
110108
<Versions layout={layout} addedIn={addedIn} />
111109

112110
<LinkItem class="px-1 d-none lg:d-flex" href={getConfig().github_org} target="_blank" rel="noopener">

site/src/components/header/SearchTrigger.astro

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ const {
2626
</svg>
2727
<span class="bd-search-trigger-label">{placeholder}</span>
2828
<span class="bd-search-trigger-shortcut" aria-hidden="true">
29-
<kbd class="bd-search-trigger-key">⌘</kbd>
30-
<kbd class="bd-search-trigger-key">K</kbd>
29+
<kbd class="bd-search-trigger-key">⌘K</kbd>
3130
</span>
3231
</button>

site/src/scss/_search.scss

Lines changed: 46 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,20 @@
1818
// ------------------------------------------------------------
1919

2020
.bd-search {
21-
position: absolute;
22-
top: .875rem;
23-
left: 50%;
2421
display: flex;
2522
flex-shrink: 0;
2623
align-items: center;
27-
width: 240px;
28-
margin-inline-start: -100px;
24+
25+
// Below `md` the trigger is a borderless icon button living inline in the
26+
// navbar. From `md` up it expands to a faux search input centered in the
27+
// navbar with absolute positioning.
28+
@include media-breakpoint-up(md) {
29+
position: absolute;
30+
top: .875rem;
31+
left: 50%;
32+
width: 240px;
33+
margin-inline-start: -100px;
34+
}
2935

3036
@include media-breakpoint-up(xl) {
3137
width: 280px;
@@ -34,40 +40,61 @@
3440
}
3541

3642
// ------------------------------------------------------------
37-
// Trigger button — looks like an input, behaves like a button
43+
// Trigger button
44+
//
45+
// Mobile (< md): icon-only button, no chrome.
46+
// md+: expands to a faux input with label + ⌘K shortcut.
3847
// ------------------------------------------------------------
3948

4049
.bd-search-trigger {
4150
display: inline-flex;
4251
gap: .5rem;
4352
align-items: center;
44-
width: 100%;
45-
padding: .375rem .5rem .375rem .75rem;
53+
padding: .375rem;
4654
font-size: var(--bs-font-size-sm);
4755
color: var(--bs-fg-3, var(--bs-secondary-color));
4856
text-align: start;
4957
cursor: pointer;
50-
background-color: var(--bs-bg-1, var(--bs-tertiary-bg));
51-
border: var(--bs-border-width) solid var(--bs-border-color);
58+
background-color: transparent;
59+
border: 0;
5260
@include border-radius(var(--bs-border-radius));
5361
@include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out);
5462

5563
&:hover {
5664
color: var(--bs-fg-body, var(--bs-body-color));
57-
background-color: var(--bs-bg-2, var(--bs-secondary-bg));
58-
border-color: var(--bs-border-color);
5965
}
6066

6167
&:focus-visible {
6268
@include focus-ring(true);
6369
}
70+
71+
@include media-breakpoint-up(md) {
72+
width: 100%;
73+
padding: .375rem .5rem .375rem .75rem;
74+
background-color: var(--bs-bg-1, var(--bs-tertiary-bg));
75+
border: var(--bs-border-width) solid var(--bs-border-color);
76+
77+
&:hover {
78+
background-color: var(--bs-bg-2, var(--bs-secondary-bg));
79+
border-color: var(--bs-border-color);
80+
}
81+
}
6482
}
6583

6684
.bd-search-trigger-icon {
6785
flex-shrink: 0;
6886
color: var(--bs-fg-3, var(--bs-secondary-color));
6987
}
7088

89+
.bd-search-trigger-label,
90+
.bd-search-trigger-shortcut {
91+
display: none;
92+
93+
@include media-breakpoint-up(md) {
94+
display: inline-flex;
95+
}
96+
}
97+
7198
.bd-search-trigger-label {
7299
flex: 1;
73100
overflow: hidden;
@@ -76,7 +103,6 @@
76103
}
77104

78105
.bd-search-trigger-shortcut {
79-
display: inline-flex;
80106
flex-shrink: 0;
81107
gap: .125rem;
82108
}
@@ -104,18 +130,18 @@
104130
// ------------------------------------------------------------
105131

106132
.dialog-search {
133+
--dialog-margin: 1.5rem;
107134
--dialog-padding: 0;
108135
--dialog-header-padding: .75rem;
109136
--dialog-footer-padding: .5rem .75rem;
110137

111138
align-self: flex-start;
112-
width: min(640px, calc(100% - 2 * var(--dialog-margin)));
139+
width: 640px;
113140
max-height: min(80dvh, 720px);
114-
margin-block-start: 4rem;
141+
margin-block-start: 3rem;
115142

116143
@include media-breakpoint-down(sm) {
117-
max-height: calc(100dvh - 2rem);
118-
margin-block-start: 1rem;
144+
max-height: calc(100dvh - 4rem);
119145
}
120146
}
121147

@@ -126,7 +152,7 @@
126152
.bd-search-form {
127153
display: flex;
128154
flex-wrap: nowrap;
129-
gap: .5rem;
155+
gap: .75rem;
130156
align-items: center;
131157
padding: var(--dialog-header-padding);
132158
}
@@ -280,12 +306,12 @@ bd-search-results:not(:focus-within) .bd-search-result:first-child > .bd-search-
280306
.bd-search-error {
281307
padding: 2rem 1rem;
282308
font-size: var(--bs-font-size-sm);
283-
color: var(--bs-fg-2, var(--bs-secondary-color));
309+
color: var(--bs-fg-3);
284310
text-align: center;
285311
}
286312

287313
.bd-search-error {
288-
color: var(--bs-danger-text-emphasis, var(--bs-danger));
314+
color: var(--bs-danger-text-emphasis);
289315
}
290316

291317
.bd-search-loading {
@@ -315,45 +341,3 @@ bd-search-results:not(:focus-within) .bd-search-result:first-child > .bd-search-
315341
height: .85rem;
316342
}
317343
}
318-
319-
// ------------------------------------------------------------
320-
// Footer hints
321-
// ------------------------------------------------------------
322-
323-
// .bd-search-hints {
324-
// display: none;
325-
// flex-wrap: wrap;
326-
// gap: 1rem;
327-
// align-items: center;
328-
// font-size: .75rem;
329-
// color: var(--bs-fg-3, var(--bs-secondary-color));
330-
331-
// @include media-breakpoint-up(md) {
332-
// display: flex;
333-
// }
334-
// }
335-
336-
// .bd-search-hint {
337-
// display: inline-flex;
338-
// gap: .375rem;
339-
// align-items: center;
340-
// }
341-
342-
// .bd-search-hint-key {
343-
// display: inline-flex;
344-
// align-items: center;
345-
// justify-content: center;
346-
// min-width: 1.25rem;
347-
// height: 1.25rem;
348-
// padding: 0 .25rem;
349-
// font-family: var(--bs-font-monospace);
350-
// font-size: .75rem;
351-
// color: var(--bs-fg-2, var(--bs-secondary-color));
352-
// background-color: var(--bs-bg-1, var(--bs-tertiary-bg));
353-
// border: var(--bs-border-width) solid var(--bs-border-color);
354-
// @include border-radius(var(--bs-border-radius-sm));
355-
// }
356-
357-
// .bd-search-hint-label {
358-
// color: var(--bs-fg-3, var(--bs-secondary-color));
359-
// }

0 commit comments

Comments
 (0)