diff --git a/apps/site/assets/css/_autocomplete-theme.scss b/apps/site/assets/css/_autocomplete-theme.scss index c2e4f3d4e8..1184fc861b 100644 --- a/apps/site/assets/css/_autocomplete-theme.scss +++ b/apps/site/assets/css/_autocomplete-theme.scss @@ -1,137 +1,139 @@ @import '@algolia/autocomplete-theme-classic'; -.aa-Autocomplete { - --aa-icon-color-rgb: 22, 92, 150; // $brand-primary; - --aa-primary-color-rgb: 22, 92, 150; // $brand-primary; - --aa-search-input-height: 2.25rem; -} +// WIP as we upgrade all of the search bars +%shared-autocomplete { + .aa-Autocomplete { + --aa-icon-color-rgb: 22, 92, 150; // $brand-primary; + --aa-primary-color-rgb: 22, 92, 150; // $brand-primary; + } -// right now #header-desktop is the only search using the new library, so it's -// the only one styled here. the #header-desktop can be removed once we migrate -// the rest over -#header-desktop { - .c-search-bar__autocomplete { - .aa-Label { - margin-bottom: unset; - } + .aa-Label { + margin-bottom: unset; + } - .aa-Input { - // stylelint-disable-next-line declaration-no-important - height: var(--aa-search-input-height) !important; - } + .aa-InputWrapperPrefix { + order: 3; // move search icon to end. + } - .aa-InputWrapperPrefix { - order: 3; // move search icon to end. - } + .aa-InputWrapper { + order: 1; + } - .aa-InputWrapper { - order: 1; - padding-left: 1rem; - } + .aa-InputWrapperSuffix { + order: 2; + } + + .aa-Form { + border: 3px solid $brand-primary; - .aa-InputWrapperSuffix { - order: 2; + &:focus-within { + border-color: $brand-primary-light; + box-shadow: unset; } + } - .aa-Form { - border: 3px solid $brand-primary; - border-radius: .5rem; + .aa-LoadingIndicator, + .aa-SubmitButton { + padding-left: var(--aa-spacing-half); + width: calc(var(--aa-spacing) * 1.25 + var(--aa-icon-size) - 1px); + } - &:focus-within { - border-color: $brand-primary-lightest; - box-shadow: unset; - } - } + .aa-ClearButton { + @include fa-icon-solid($fa-var-times-circle); + color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha)); + // hide default icon + .aa-ClearIcon { display: none; } + } - .aa-LoadingIndicator, - .aa-SubmitButton { - padding-left: var(--aa-spacing-half); - width: calc(var(--aa-spacing) * 1.25 + var(--aa-icon-size) - 1px); - } + .aa-SubmitButton { + @include fa-icon-solid($fa-var-search); + color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha)); + // hide default icon + .aa-SubmitIcon { display: none; } + } - .aa-ClearButton { - @include fa-icon-solid($fa-var-times-circle); - color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha)); - padding-right: var(--aa-spacing-half); - // hide default icon - .aa-ClearIcon { display: none; } - } + .aa-GradientBottom, + .aa-GradientTop { all: unset; } - .aa-SubmitButton { - @include fa-icon-solid($fa-var-search); - color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha)); - // hide default icon - .aa-SubmitIcon { display: none; } + .aa-ItemContent { + mark { + padding: 0; } + > * { + margin-right: .25rem; + } + } - .aa-GradientBottom, - .aa-GradientTop { all: unset; } + .aa-ItemContentTitle { + display: unset; + margin: unset; + overflow: visible; + text-overflow: unset; + white-space: normal; } - .c-search-bar__autocomplete-results { - .aa-ItemContent { - mark { - padding: 0; - } - > * { - margin-right: .25rem; - } - } + .aa-PanelLayout { + padding: unset; + } + + .aa-Panel { + margin-top: .25rem; + z-index: var(--aa-base-z-index); + } + + .aa-Item { + border-bottom: $border; + border-radius: 0; + font-weight: normal; - .aa-ItemContentTitle { - display: unset; - margin: unset; - overflow: visible; - text-overflow: unset; - white-space: normal; + &:hover { + background-color: $brand-primary-lightest; } - .aa-PanelLayout { - padding: unset; + em { + font-style: inherit; + font-weight: bold; } - .aa-Panel { - // stylelint-disable-next-line declaration-no-important - top: 3.25rem !important; - z-index: var(--aa-base-z-index); + > a, + > button { + color: currentColor; + display: flex; + font-weight: inherit; + gap: .25rem; + min-width: 0; + padding: calc(#{$base-spacing} / 2) $base-spacing; } - .aa-Item { - border-bottom: $border; - border-radius: 0; - font-weight: normal; - - &:hover { - background-color: $brand-primary-lightest; - } - - em { - font-style: inherit; - font-weight: bold; - } - - > a, - > button { - color: currentColor; - display: flex; - font-weight: inherit; - gap: .25rem; - min-width: 0; - padding: calc(#{$base-spacing} / 2) $base-spacing; - } - - a:hover { - text-decoration: none; - } - - [class*=c-svg__icon] { - width: 1em; - } + a:hover { + text-decoration: none; } - .aa-ItemContent, - .aa-ItemContentBody { - display: unset; + [class*=c-svg__icon] { + width: 1em; } } + + .aa-ItemContent, + .aa-ItemContentBody { + display: unset; + } +} + +#header-desktop { + --aa-search-input-height: 2.25rem; + + @extend %shared-autocomplete; + + .aa-Form { + border-radius: .5rem; + } + + .aa-InputWrapper { + padding-left: 1rem; + } + + .aa-ClearButton { + padding-right: var(--aa-spacing-half); + } } diff --git a/apps/site/assets/css/_header.scss b/apps/site/assets/css/_header.scss index 92bb22dbbb..b6233c0a45 100644 --- a/apps/site/assets/css/_header.scss +++ b/apps/site/assets/css/_header.scss @@ -64,14 +64,15 @@ @include media-breakpoint-up(sm) { .search-wrapper { + align-items: center; + display: flex; flex-grow: 1; height: 100%; - > div { height: 100%; } + justify-content: flex-end; } } } -.header-navbar.new, .m-menu__search { .search { align-items: center; @@ -82,7 +83,6 @@ } .c-form__input-container { border-radius: 8px; - height: 44px; } button.c-form__submit-btn { background-color: unset; @@ -98,10 +98,10 @@ } .header-navbar.new .search { + display: block; padding-left: 24px; - .c-form__input-container { - max-width: 350px; - } + width: 100%; + @include media-breakpoint-only(xs) { display: none; } diff --git a/apps/site/assets/ts/ui/__tests__/__snapshots__/autocomplete-test.ts.snap b/apps/site/assets/ts/ui/__tests__/__snapshots__/autocomplete-test.ts.snap index 10629e0c98..e0bde17eaa 100644 --- a/apps/site/assets/ts/ui/__tests__/__snapshots__/autocomplete-test.ts.snap +++ b/apps/site/assets/ts/ui/__tests__/__snapshots__/autocomplete-test.ts.snap @@ -12,6 +12,7 @@ exports[`Algolia v1 autocomplete matches snapshot 1`] = ` data-algolia="routes,stops,drupal" data-geolocation="" data-locations="" + data-placeholder="Search for routes, info, and more" >