1dbcc39bc7
Major UI/UX overhaul for SearchMovies.razor and SearchShows.razor, including new navigation toggles, animated search forms, improved results display, and enhanced styling. Moved layout and header styles from MainLayout.razor to CSS, unified button styles on Home.razor, and added interactive elements and animations for a more engaging user experience.
231 lines
5.6 KiB
Plaintext
231 lines
5.6 KiB
Plaintext
@page "/"
|
|
<PageTitle>I Know Them!</PageTitle>
|
|
|
|
<div class="landing-page">
|
|
<div class="hero">
|
|
<h1>Welcome to <span class="highlight">I Know Them!</span></h1>
|
|
<p class="subtitle">Ever watched a movie or show and thought, "I know that actor from somewhere..."?</p>
|
|
<p class="description">This app helps you quickly identify actors, find out what else they've been in, and explore cast details for your favorite <strong>movies</strong> and <strong>TV shows</strong>.</p>
|
|
<div class="cta-buttons">
|
|
<NavLink class="cta-button primary" href="/searchmovies">🎬 Search Movies</NavLink>
|
|
<NavLink class="cta-button primary" href="/searchshows">📺 Search TV Shows</NavLink>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.landing-page {
|
|
position: relative;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 25%, #f093fb 50%, #f5576c 75%, #4facfe 100%);
|
|
background-size: 400% 400%;
|
|
animation: gradientFlow 15s ease infinite;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.hero {
|
|
max-width: 800px;
|
|
text-align: center;
|
|
padding: 2rem;
|
|
position: relative;
|
|
z-index: 10;
|
|
backdrop-filter: blur(10px);
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: 30px;
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
box-shadow: 0 25px 45px rgba(0, 0, 0, 0.1);
|
|
animation: heroEntrance 1.2s ease-out;
|
|
}
|
|
|
|
@@keyframes heroEntrance {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(50px) scale(0.9);
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
h1 {
|
|
font-size: clamp(2.5rem, 6vw, 4rem);
|
|
font-weight: 800;
|
|
margin-bottom: 1rem;
|
|
color: white;
|
|
text-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
|
|
animation: titleGlow 2s ease-in-out infinite alternate;
|
|
}
|
|
|
|
@@keyframes titleGlow {
|
|
0% {
|
|
text-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
100% {
|
|
text-shadow: 0 5px 25px rgba(255, 255, 255, 0.3);
|
|
}
|
|
}
|
|
|
|
@@keyframes shimmer {
|
|
0%, 100% {
|
|
filter: brightness(1);
|
|
}
|
|
|
|
50% {
|
|
filter: brightness(1.3);
|
|
}
|
|
}
|
|
|
|
.subtitle {
|
|
font-size: clamp(1.1rem, 3vw, 1.4rem);
|
|
color: rgba(255, 255, 255, 0.9);
|
|
margin-bottom: 1.5rem;
|
|
font-weight: 400;
|
|
animation: slideInLeft 1s ease-out 0.3s both;
|
|
}
|
|
|
|
.description {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
font-size: clamp(1rem, 2.5vw, 1.1rem);
|
|
line-height: 1.7;
|
|
margin-bottom: 2.5rem;
|
|
animation: slideInRight 1s ease-out 0.6s both;
|
|
}
|
|
|
|
@@keyframes slideInLeft {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(-50px);
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
@@keyframes slideInRight {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(50px);
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
}
|
|
|
|
.cta-buttons {
|
|
display: flex;
|
|
gap: 1rem;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
animation: buttonsEntrance 1s ease-out 0.9s both;
|
|
}
|
|
|
|
@@keyframes buttonsEntrance {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(30px);
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.cta-button {
|
|
position: relative;
|
|
padding: 1rem 2rem;
|
|
font-size: 1.1rem;
|
|
font-weight: 600;
|
|
border-radius: 50px;
|
|
text-decoration: none;
|
|
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
overflow: hidden;
|
|
min-width: 200px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.5rem;
|
|
border: 2px solid transparent;
|
|
}
|
|
|
|
.cta-button::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: -100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
|
transition: left 0.5s;
|
|
}
|
|
|
|
.cta-button:hover::before {
|
|
left: 100%;
|
|
}
|
|
|
|
.cta-button.primary {
|
|
background: rgba(255, 255, 255, 0.15);
|
|
color: white;
|
|
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.cta-button.primary:hover {
|
|
transform: translateY(-3px) scale(1.05);
|
|
background: rgba(255, 255, 255, 0.25);
|
|
border-color: rgba(255, 255, 255, 0.5);
|
|
box-shadow: 0 20px 40px rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
@@media (max-width: 768px) {
|
|
.hero {
|
|
margin: 1rem;
|
|
padding: 1.5rem;
|
|
border-radius: 20px;
|
|
}
|
|
|
|
.cta-buttons {
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.cta-button {
|
|
width: 100%;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.floating-icon {
|
|
font-size: 1.5rem;
|
|
}
|
|
}
|
|
|
|
@@media (max-width: 480px) {
|
|
h1 {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.subtitle {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.description {
|
|
font-size: 0.9rem;
|
|
}
|
|
}
|
|
</style> |