Apply glassmorphism to BottomSheet and RSVP bar status

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 18:57:30 +01:00
parent 5dd7cb3fb8
commit 831ffc071a
4 changed files with 54 additions and 11 deletions

View File

@@ -308,7 +308,7 @@ textarea.form-field {
.sheet-title { .sheet-title {
font-size: 1.2rem; font-size: 1.2rem;
font-weight: 700; font-weight: 700;
color: var(--color-text); color: var(--color-text-on-gradient);
} }
.rsvp-form { .rsvp-form {
@@ -320,7 +320,7 @@ textarea.form-field {
.rsvp-form__label { .rsvp-form__label {
font-size: 0.85rem; font-size: 0.85rem;
font-weight: 700; font-weight: 700;
color: var(--color-text); color: var(--color-text-on-gradient);
padding-left: 0.25rem; padding-left: 0.25rem;
} }

View File

@@ -45,7 +45,7 @@ watch(
.sheet-backdrop { .sheet-backdrop {
position: fixed; position: fixed;
inset: 0; inset: 0;
background: rgba(0, 0, 0, 0.4); background: var(--color-glass-overlay);
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
justify-content: center; justify-content: center;
@@ -53,7 +53,11 @@ watch(
} }
.sheet { .sheet {
background: var(--color-card); background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
border: 1px solid var(--color-glass-border);
border-bottom: none;
backdrop-filter: blur(24px);
-webkit-backdrop-filter: blur(24px);
border-radius: 20px 20px 0 0; border-radius: 20px 20px 0 0;
padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl); padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl);
width: 100%; width: 100%;
@@ -67,7 +71,7 @@ watch(
.sheet__handle { .sheet__handle {
width: 36px; width: 36px;
height: 4px; height: 4px;
background: #ccc; background: var(--color-glass-border-hover);
border-radius: 2px; border-radius: 2px;
align-self: center; align-self: center;
flex-shrink: 0; flex-shrink: 0;

View File

@@ -78,13 +78,16 @@ defineEmits<{
align-items: center; align-items: center;
justify-content: center; justify-content: center;
gap: var(--spacing-xs); gap: var(--spacing-xs);
background: var(--color-card); background: linear-gradient(135deg, var(--color-glass-strong) 0%, var(--color-glass-subtle) 100%);
border: 1px solid var(--color-glass-border);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-radius: var(--radius-card); border-radius: var(--radius-card);
padding: var(--spacing-md) var(--spacing-lg); padding: var(--spacing-md) var(--spacing-lg);
box-shadow: var(--shadow-card); box-shadow: var(--shadow-card);
font-weight: 600; font-weight: 600;
font-size: 0.95rem; font-size: 0.95rem;
color: var(--color-text); color: var(--color-text-on-gradient);
} }
.rsvp-bar__check { .rsvp-bar__check {

View File

@@ -90,7 +90,7 @@
<input <input
id="rsvp-name" id="rsvp-name"
v-model.trim="nameInput" v-model.trim="nameInput"
class="form-field" class="form-field glass"
type="text" type="text"
placeholder="e.g. Max Mustermann" placeholder="e.g. Max Mustermann"
maxlength="100" maxlength="100"
@@ -99,9 +99,11 @@
/> />
<span v-if="nameError" class="rsvp-form__field-error" role="alert">{{ nameError }}</span> <span v-if="nameError" class="rsvp-form__field-error" role="alert">{{ nameError }}</span>
</div> </div>
<button class="btn-primary" type="submit" :disabled="submitting"> <div class="rsvp-form__submit glow-border glow-border--animated">
{{ submitting ? 'Sending…' : "Count me in" }} <button class="rsvp-form__submit-inner glass-inner" type="submit" :disabled="submitting">
</button> {{ submitting ? 'Sending…' : "Count me in" }}
</button>
</div>
<p v-if="submitError" class="rsvp-form__field-error rsvp-form__error" role="alert">{{ submitError }}</p> <p v-if="submitError" class="rsvp-form__field-error rsvp-form__error" role="alert">{{ submitError }}</p>
</form> </form>
</BottomSheet> </BottomSheet>
@@ -444,4 +446,38 @@ onMounted(fetchEvent)
.skeleton--short { .skeleton--short {
width: 45%; width: 45%;
} }
/* RSVP submit button (glow border wrapper) */
.rsvp-form__submit {
width: 100%;
border-radius: var(--radius-button);
transition: transform 0.1s ease;
}
.rsvp-form__submit:hover {
transform: scale(1.02);
}
.rsvp-form__submit:active {
transform: scale(0.98);
}
.rsvp-form__submit-inner {
display: block;
width: 100%;
padding: var(--spacing-md) var(--spacing-lg);
border-radius: calc(var(--radius-button) - 2px);
font-family: inherit;
font-size: 1rem;
font-weight: 700;
color: #fff;
text-align: center;
border: none;
cursor: pointer;
}
.rsvp-form__submit-inner:disabled {
opacity: 0.6;
cursor: not-allowed;
}
</style> </style>