diff --git a/parks/static/parks/css/search.css b/parks/static/parks/css/search.css index 250a8745..15cfba9a 100644 --- a/parks/static/parks/css/search.css +++ b/parks/static/parks/css/search.css @@ -1,21 +1,47 @@ /* Loading indicator */ .htmx-indicator { opacity: 0; + transition: opacity 200ms ease-in-out; } .htmx-request .htmx-indicator { opacity: 1; } -/* Search results spacing */ +/* Search results container */ #search-results { margin-top: 0.5rem; + border: 1px solid #e5e7eb; + border-radius: 0.5rem; + background-color: white; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + max-height: 400px; + overflow-y: auto; +} + +#search-results:empty { + display: none; +} + +/* Search result items */ +#search-results .border-b { + border-color: #e5e7eb; +} + +#search-results a { + display: block; + transition: background-color 150ms ease-in-out; +} + +#search-results a:hover { + background-color: #f3f4f6; } /* Dark mode adjustments */ @media (prefers-color-scheme: dark) { - #search-results .bg-white { + #search-results { background-color: #1f2937; + border-color: #374151; } #search-results .text-gray-900 { @@ -26,7 +52,11 @@ color: #9ca3af; } - #search-results .hover\:bg-gray-50:hover { + #search-results .border-b { + border-color: #374151; + } + + #search-results a:hover { background-color: #374151; } } \ No newline at end of file diff --git a/parks/static/parks/js/search.js b/parks/static/parks/js/search.js deleted file mode 100644 index f022966e..00000000 --- a/parks/static/parks/js/search.js +++ /dev/null @@ -1,28 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - const searchInput = document.getElementById('search'); - const searchResults = document.getElementById('search-results'); - - if (!searchInput || !searchResults) return; - - // Clear search results when clicking outside - document.addEventListener('click', function(e) { - if (!searchResults.contains(e.target) && e.target !== searchInput) { - searchResults.innerHTML = ''; - } - }); - - // Clear results on escape key - searchInput.addEventListener('keydown', function(e) { - if (e.key === 'Escape') { - searchResults.innerHTML = ''; - searchInput.value = ''; - searchInput.blur(); - } - }); - - // Handle back button - window.addEventListener('popstate', function() { - searchResults.innerHTML = ''; - searchInput.value = ''; - }); -}); \ No newline at end of file diff --git a/parks/templates/parks/park_list.html b/parks/templates/parks/park_list.html index 1606969a..05be74c4 100644 --- a/parks/templates/parks/park_list.html +++ b/parks/templates/parks/park_list.html @@ -38,19 +38,54 @@ Browse and filter amusement parks, theme parks, and water parks from around the
No parks found matching your search.
-