|
18 | 18 | // ------------------------------------------------------------ |
19 | 19 |
|
20 | 20 | .bd-search { |
21 | | - position: absolute; |
22 | | - top: .875rem; |
23 | | - left: 50%; |
24 | 21 | display: flex; |
25 | 22 | flex-shrink: 0; |
26 | 23 | 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 | + } |
29 | 35 |
|
30 | 36 | @include media-breakpoint-up(xl) { |
31 | 37 | width: 280px; |
|
34 | 40 | } |
35 | 41 |
|
36 | 42 | // ------------------------------------------------------------ |
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. |
38 | 47 | // ------------------------------------------------------------ |
39 | 48 |
|
40 | 49 | .bd-search-trigger { |
41 | 50 | display: inline-flex; |
42 | 51 | gap: .5rem; |
43 | 52 | align-items: center; |
44 | | - width: 100%; |
45 | | - padding: .375rem .5rem .375rem .75rem; |
| 53 | + padding: .375rem; |
46 | 54 | font-size: var(--bs-font-size-sm); |
47 | 55 | color: var(--bs-fg-3, var(--bs-secondary-color)); |
48 | 56 | text-align: start; |
49 | 57 | 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; |
52 | 60 | @include border-radius(var(--bs-border-radius)); |
53 | 61 | @include transition(color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out); |
54 | 62 |
|
55 | 63 | &:hover { |
56 | 64 | 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); |
59 | 65 | } |
60 | 66 |
|
61 | 67 | &:focus-visible { |
62 | 68 | @include focus-ring(true); |
63 | 69 | } |
| 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 | + } |
64 | 82 | } |
65 | 83 |
|
66 | 84 | .bd-search-trigger-icon { |
67 | 85 | flex-shrink: 0; |
68 | 86 | color: var(--bs-fg-3, var(--bs-secondary-color)); |
69 | 87 | } |
70 | 88 |
|
| 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 | + |
71 | 98 | .bd-search-trigger-label { |
72 | 99 | flex: 1; |
73 | 100 | overflow: hidden; |
|
76 | 103 | } |
77 | 104 |
|
78 | 105 | .bd-search-trigger-shortcut { |
79 | | - display: inline-flex; |
80 | 106 | flex-shrink: 0; |
81 | 107 | gap: .125rem; |
82 | 108 | } |
|
104 | 130 | // ------------------------------------------------------------ |
105 | 131 |
|
106 | 132 | .dialog-search { |
| 133 | + --dialog-margin: 1.5rem; |
107 | 134 | --dialog-padding: 0; |
108 | 135 | --dialog-header-padding: .75rem; |
109 | 136 | --dialog-footer-padding: .5rem .75rem; |
110 | 137 |
|
111 | 138 | align-self: flex-start; |
112 | | - width: min(640px, calc(100% - 2 * var(--dialog-margin))); |
| 139 | + width: 640px; |
113 | 140 | max-height: min(80dvh, 720px); |
114 | | - margin-block-start: 4rem; |
| 141 | + margin-block-start: 3rem; |
115 | 142 |
|
116 | 143 | @include media-breakpoint-down(sm) { |
117 | | - max-height: calc(100dvh - 2rem); |
118 | | - margin-block-start: 1rem; |
| 144 | + max-height: calc(100dvh - 4rem); |
119 | 145 | } |
120 | 146 | } |
121 | 147 |
|
|
126 | 152 | .bd-search-form { |
127 | 153 | display: flex; |
128 | 154 | flex-wrap: nowrap; |
129 | | - gap: .5rem; |
| 155 | + gap: .75rem; |
130 | 156 | align-items: center; |
131 | 157 | padding: var(--dialog-header-padding); |
132 | 158 | } |
@@ -280,12 +306,12 @@ bd-search-results:not(:focus-within) .bd-search-result:first-child > .bd-search- |
280 | 306 | .bd-search-error { |
281 | 307 | padding: 2rem 1rem; |
282 | 308 | font-size: var(--bs-font-size-sm); |
283 | | - color: var(--bs-fg-2, var(--bs-secondary-color)); |
| 309 | + color: var(--bs-fg-3); |
284 | 310 | text-align: center; |
285 | 311 | } |
286 | 312 |
|
287 | 313 | .bd-search-error { |
288 | | - color: var(--bs-danger-text-emphasis, var(--bs-danger)); |
| 314 | + color: var(--bs-danger-text-emphasis); |
289 | 315 | } |
290 | 316 |
|
291 | 317 | .bd-search-loading { |
@@ -315,45 +341,3 @@ bd-search-results:not(:focus-within) .bd-search-result:first-child > .bd-search- |
315 | 341 | height: .85rem; |
316 | 342 | } |
317 | 343 | } |
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