style(coming-soon): align with design system tokens
Some checks failed
Test / vitest (push) Successful in 11m46s
Test / playwright (push) Failing after 9m34s
Test / visual (push) Failing after 9m19s
Test / Notify on failure (push) Successful in 2s

Replace Tailwind utility color classes with CSS custom properties,
remove rounded corners, use dashed borders and parch button style.
This commit is contained in:
Jennie Robinson Faber 2026-04-12 11:16:53 +01:00
parent c6b970a621
commit 7b9448ffd5
2 changed files with 166 additions and 42 deletions

View file

@ -1,5 +1,12 @@
<template> <template>
<div class="min-h-screen bg-guild-900"> <div class="coming-soon-layout">
<slot /> <slot />
</div> </div>
</template> </template>
<style scoped>
.coming-soon-layout {
min-height: 100vh;
background: var(--bg);
}
</style>

View file

@ -1,44 +1,30 @@
<template> <template>
<div class="min-h-screen w-full flex flex-col items-center justify-center px-4"> <div class="coming-soon">
<h1 class="text-display-xl font-bold mb-2 uppercase font-sans!">Ghost Guild</h1> <h1 class="coming-soon-title">Ghost Guild</h1>
<p <p v-if="!isAuthenticated" class="coming-soon-subtitle">Coming Soon</p>
v-if="!isAuthenticated"
class="text-display-sm text-guild-400 mb-10 uppercase py-4 text-center font-sans!">
Coming Soon
</p>
<!-- Logged-in state --> <!-- Logged-in state -->
<div v-if="isAuthenticated" class="w-full max-w-sm flex flex-col items-center space-y-4 text-center mt-8"> <div v-if="isAuthenticated" class="coming-soon-auth">
<p class="text-guild-200 font-sans py-4 text-center"> <p>
Welcome, <strong class="text-guild-100">{{ memberData.name || memberData.email }}</strong> Welcome, <strong>{{ memberData.name || memberData.email }}</strong>
</p> </p>
<a <a href="https://wiki.ghostguild.org" class="coming-soon-btn">
href="https://wiki.ghostguild.org"
class="block w-full py-3 px-6 bg-candlelight-500 hover:bg-candlelight-600 text-guild-900 font-semibold rounded-full uppercase tracking-wide transition-colors font-sans text-center">
Go to Wiki Go to Wiki
</a> </a>
<button <button class="coming-soon-signout" @click="handleLogout">
class="block w-full text-sm text-candlelight-400 hover:text-candlelight-300 font-medium uppercase tracking-wide transition-colors"
@click="handleLogout">
Sign out Sign out
</button> </button>
</div> </div>
<!-- Login form --> <!-- Login form -->
<div v-else class="w-full max-w-sm"> <div v-else class="coming-soon-form">
<!-- Success state --> <!-- Success state -->
<div v-if="loginSuccess" class="text-center py-4"> <div v-if="loginSuccess" class="coming-soon-success">
<div <h3>Check your email</h3>
class="w-16 h-16 bg-candlelight-500/20 rounded-full flex items-center justify-center mx-auto mb-4"> <p>
<UIcon name="i-heroicons-check-circle" class="w-10 h-10 text-candlelight-400" />
</div>
<h3 class="text-lg font-semibold text-guild-100 mb-2">
Check your email
</h3>
<p class="text-guild-300">
We've sent a magic link to We've sent a magic link to
<strong class="text-guild-100">{{ email }}</strong>. <strong>{{ email }}</strong
Click the link to sign in. >. Click the link to sign in.
</p> </p>
</div> </div>
@ -50,32 +36,28 @@
type="email" type="email"
size="lg" size="lg"
class="w-full" class="w-full"
placeholder="your.email@example.com" /> placeholder="your.email@example.com"
/>
</UFormField> </UFormField>
<div v-if="loginError" class="mb-4 p-3 bg-ember-500/10 border border-ember-500/30 rounded-lg"> <div v-if="loginError" class="coming-soon-error">
<p class="text-ember-400 text-sm">{{ loginError }}</p> <p>{{ loginError }}</p>
</div> </div>
<div class="flex justify-center"> <div class="coming-soon-actions">
<UButton <UButton
type="submit" type="submit"
:loading="isLoggingIn" :loading="isLoggingIn"
:disabled="!isFormValid" :disabled="!isFormValid"
size="lg" size="lg"
class="rounded-full uppercase tracking-wide font-semibold whitespace-nowrap"> class="uppercase tracking-wide font-semibold whitespace-nowrap"
>
Send Magic Link Send Magic Link
</UButton> </UButton>
</div> </div>
<div class="text-center pt-6 border-t border-guild-700 mt-6"> <div class="coming-soon-preregister">
<p class="text-guild-400 text-sm"> <a href="https://babyghosts.fund/ghost-guild/">Pre-Register</a>
<a
href="https://babyghosts.fund/ghost-guild/"
class="text-candlelight-400 hover:text-candlelight-300 font-medium uppercase tracking-wide">
Pre-Register
</a>
</p>
</div> </div>
</UForm> </UForm>
</div> </div>
@ -127,3 +109,138 @@ const handleLogout = async () => {
await logout(); await logout();
}; };
</script> </script>
<style scoped>
.coming-soon {
min-height: 100vh;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 16px;
}
.coming-soon-title {
font-family: var(--font-display);
font-size: 3rem;
font-weight: 700;
color: var(--text-bright);
margin-bottom: 8px;
}
.coming-soon-subtitle {
font-size: 10px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--text-faint);
margin-bottom: 40px;
padding: 16px 0;
}
.coming-soon-auth {
width: 100%;
max-width: 24rem;
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
text-align: center;
margin-top: 32px;
color: var(--text-dim);
}
.coming-soon-auth strong {
color: var(--text-bright);
}
.coming-soon-btn {
display: block;
width: 100%;
padding: 12px 24px;
background: var(--parch);
color: var(--parch-text);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
text-align: center;
transition: background 0.15s;
}
.coming-soon-btn:hover {
background: var(--parch-hover);
text-decoration: none;
}
.coming-soon-signout {
font-size: 12px;
color: var(--candle);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
transition: color 0.15s;
cursor: pointer;
}
.coming-soon-signout:hover {
color: var(--candle-dim);
}
.coming-soon-form {
width: 100%;
max-width: 24rem;
}
.coming-soon-success {
text-align: center;
padding: 16px 0;
}
.coming-soon-success h3 {
font-family: var(--font-display);
font-size: 1.125rem;
font-weight: 600;
color: var(--text-bright);
margin-bottom: 8px;
}
.coming-soon-success p {
color: var(--text-dim);
}
.coming-soon-success strong {
color: var(--text-bright);
}
.coming-soon-error {
margin-bottom: 16px;
padding: 12px;
background: var(--ember-bg);
border: 1px dashed var(--ember);
}
.coming-soon-error p {
color: var(--ember);
font-size: 12px;
}
.coming-soon-actions {
display: flex;
justify-content: center;
}
.coming-soon-preregister {
text-align: center;
padding-top: 24px;
border-top: 1px dashed var(--border);
margin-top: 24px;
font-size: 12px;
}
.coming-soon-preregister a {
color: var(--candle);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
}
</style>