nexora / frontend /src /app /search /searchPage.css
ChandimaPrabath's picture
patch #css
22e848c
raw
history blame
4.81 kB
.search-page {
background-color: #121212;
color: #ffffff;
height: 100%;
min-height: 89dvh;
transition: background-color 0.3s ease;
font-family: "Signika", sans-serif;
font-optical-sizing: auto;
font-style: normal;
font-variation-settings: "GRAD" 0;
animation: pageLoad 1s ease;
}
.search-container {
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
transition: transform 0.3s ease;
}
/* Input field styling with animation */
.search-input {
width: 100%;
max-width: 600px;
padding: 10px;
font-size: 16px;
border: 1px solid #4339ff;
border-radius: 5px;
background-color: #1c2354;
color: #ffffff;
transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.5s ease;
}
.search-input:focus {
outline: none;
box-shadow: 0 0 15px rgba(17, 0, 255, 0.6);
transform: scale(1.02);
}
/* Loading indicator animation */
.loading-indicator {
margin-top: 10px;
font-size: 18px;
color: #4339ff;
opacity: 0;
animation: fadeIn 0.3s forwards;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* Error message styling */
.error-message {
color: #ff3300;
text-align: center;
margin-top: 20px;
animation: bounce 1s infinite;
}
@keyframes bounce {
0%,
20%,
50%,
80%,
100% {
transform: translateY(0);
}
40% {
transform: translateY(-10px);
}
60% {
transform: translateY(-5px);
}
}
.results-container {
padding-left: 20px;
padding-right: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
.results-section {
width: 100%;
max-width: 100%;
display: flex;
flex-direction: column;
white-space: nowrap;
}
.results-section h2 {
font-size: 24px;
color: #99999b;
animation: fadeIn 1s ease;
}
.result-scroll {
display: flex;
justify-content: space-between;
margin-bottom: 15px;
border-bottom: 1px solid #4a41ef;
padding-bottom: 5px;
}
.scroll-controls button {
margin-left: 10px;
margin-right: 10px;
color: #9b9a9f;
}
.results-list {
list-style-type: none;
padding: 0;
display: flex;
flex-direction: row;
margin: 0;
scroll-behavior: smooth;
overflow-x: scroll;
overflow-y: hidden;
}
.results-list::-webkit-scrollbar {
height: 8px;
}
.results-list::-webkit-scrollbar-thumb {
background-color: #3c23cf;
border-radius: 4px;
}
.result-item {
background-color: #1e1e1e;
border: 1px solid #585858;
border-radius: 5px;
margin-right: 10px;
transition: background-color 0.3s ease, transform 0.3s ease;
animation: slideIn 0.5s ease;
display: inline-block;
flex: 0 0 auto;
}
@keyframes slideIn {
from {
transform: translateY(20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.result-item:hover {
background-color: #333;
transform: scale(1.02);
}
/* Link styling */
.result-link {
text-decoration: none;
color: #ffffff;
font-size: 18px;
transition: color 0.3s ease;
}
.result-link:hover {
text-decoration: underline;
color: #ff6f00;
}
/* Loading indicator styles */
.loading-indicator {
display: flex;
align-items: center;
margin-top: 20px;
font-size: 18px;
position: fixed;
}
.search-icon {
position: fixed;
z-index: 100;
color: #b3b7e4;
animation: search 1s infinite linear;
}
@keyframes search {
0% {
transform: translate(10px, -15px);
}
5% {
transform: translate(14.5px, -14.5px);
}
10% {
transform: translate(18.3px, -12.7px);
}
15% {
transform: translate(21.2px, -9.2px);
}
20% {
transform: translate(23px, -5px);
}
25% {
transform: translate(25px, 0px);
}
30% {
transform: translate(23px, 5px);
}
35% {
transform: translate(21.2px, 9.2px);
}
40% {
transform: translate(18.3px, 12.7px);
}
45% {
transform: translate(14.5px, 14.5px);
}
50% {
transform: translate(10px, 15px);
}
55% {
transform: translate(5.5px, 14.5px);
}
60% {
transform: translate(1.7px, 12.7px);
}
65% {
transform: translate(-2.2px, 9.2px);
}
70% {
transform: translate(-5px, 5px);
}
75% {
transform: translate(-5px, 0px);
}
80% {
transform: translate(-5px, -5px);
}
85% {
transform: translate(-2.2px, -9.2px);
}
90% {
transform: translate(1.7px, -12.7px);
}
95% {
transform: translate(5.5px, -14.5px);
}
100% {
transform: translate(10px, -15px);
}
}
.loading-indicator .spinner {
width: 40px;
height: 40px;
background-image: linear-gradient(#146c98, #7139ff);
border: 3px solid #3939ff;
border-top: 4px solid transparent;
border-radius: 50%;
margin-right: 10px;
animation: spin 1s linear infinite;
}
/* Spinner animation */
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}