115 lines
3.3 KiB
Svelte
115 lines
3.3 KiB
Svelte
<script>
|
|
import { signInWithGoogle } from './userStore.svelte.js';
|
|
import logoImg from '../../assets/logo.png';
|
|
</script>
|
|
|
|
<div class="overlay">
|
|
<div class="card">
|
|
<img src={logoImg} alt="Journi" class="logo" />
|
|
<h1 class="title">Journi</h1>
|
|
<p class="subtitle">Collect Colors Along the Way</p>
|
|
<button class="google-btn" onclick={signInWithGoogle}>
|
|
<svg class="google-icon" viewBox="0 0 48 48">
|
|
<path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"/>
|
|
<path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"/>
|
|
<path fill="#FBBC05" d="M10.53 28.59A14.5 14.5 0 0 1 9.5 24c0-1.59.28-3.14.76-4.59l-7.98-6.19A23.99 23.99 0 0 0 0 24c0 3.77.87 7.35 2.56 10.78l7.97-6.19z"/>
|
|
<path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"/>
|
|
<path fill="none" d="M0 0h48v48H0z"/>
|
|
</svg>
|
|
Sign in with Google
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: var(--bg);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding-bottom: 20vh;
|
|
z-index: 100;
|
|
}
|
|
|
|
.card {
|
|
text-align: center;
|
|
max-width: 360px;
|
|
width: 90%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0;
|
|
}
|
|
|
|
.logo {
|
|
width: 216px;
|
|
height: 216px;
|
|
object-fit: contain;
|
|
margin-bottom: 16px;
|
|
animation: jitter 1.4s steps(1, end) 1 forwards;
|
|
}
|
|
|
|
@keyframes jitter {
|
|
0% { transform: scale(0.7) rotate(0deg); opacity: 0.5; }
|
|
8% { transform: scale(0.85) rotate(-16deg); opacity: 1; }
|
|
16% { transform: scale(1.0) rotate(16deg); }
|
|
24% { transform: scale(1.06) rotate(-16deg); }
|
|
32% { transform: scale(1.12) rotate(16deg); }
|
|
40% { transform: scale(1.16) rotate(-16deg); }
|
|
48% { transform: scale(1.2) rotate(16deg); }
|
|
56% { transform: scale(1.2) rotate(-16deg); }
|
|
64% { transform: scale(1.2) rotate(16deg); }
|
|
72% { transform: scale(1.2) rotate(-10deg); }
|
|
80% { transform: scale(1.2) rotate(10deg); }
|
|
88% { transform: scale(1.2) rotate(-4deg); }
|
|
94% { transform: scale(1.2) rotate(4deg); }
|
|
100% { transform: scale(1.2) rotate(0deg); }
|
|
}
|
|
|
|
.title {
|
|
font-family: var(--heading);
|
|
font-size: 28px;
|
|
font-weight: 600;
|
|
color: var(--text-h);
|
|
letter-spacing: -0.5px;
|
|
margin: 0;
|
|
}
|
|
|
|
.subtitle {
|
|
font-family: var(--sans);
|
|
font-size: 14px;
|
|
font-weight: 300;
|
|
color: var(--text);
|
|
margin: 0 0 32px;
|
|
}
|
|
|
|
.google-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 10px 24px;
|
|
border: 1px solid var(--border);
|
|
border-radius: 8px;
|
|
background: var(--bg-subtle);
|
|
color: var(--text-h);
|
|
font-family: var(--sans);
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
cursor: pointer;
|
|
transition: background 0.15s, border-color 0.15s;
|
|
}
|
|
|
|
.google-btn:hover {
|
|
background: var(--bg);
|
|
border-color: var(--accent-border);
|
|
}
|
|
|
|
.google-icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
flex-shrink: 0;
|
|
}
|
|
</style>
|