cleanup
Some checks failed
ci / deploy (push) Blocked by required conditions
ci / docker_image (push) Has been cancelled

This commit is contained in:
Drake Marino 2026-02-07 01:03:12 -06:00
parent 60b5705107
commit 3955f95830
2 changed files with 76 additions and 33 deletions

View File

@ -11,10 +11,9 @@
} }
</script> </script>
<section class="relative overflow-hidden"> <section class="relative overflow-hidden" aria-labelledby="hero-heading">
<!-- Hero -->
<div class="mx-auto max-w-6xl px-6 py-24 text-center"> <div class="mx-auto max-w-6xl px-6 py-24 text-center">
<h1 class="text-4xl font-bold tracking-tight sm:text-5xl"> <h1 id="hero-heading" class="text-4xl font-bold tracking-tight sm:text-5xl">
Westuffinder Westuffinder
</h1> </h1>
<p class="mx-auto mt-6 max-w-2xl text-lg text-muted-foreground"> <p class="mx-auto mt-6 max-w-2xl text-lg text-muted-foreground">
@ -23,16 +22,24 @@
</p> </p>
<div class="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row"> <div class="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row">
<Button size="lg" class="px-8" onclick={openCreateDialog}> <Button
size="lg"
class="px-8"
onclick={openCreateDialog}
aria-label="Submit a found item"
>
Submit a Found Item Submit a Found Item
</Button> </Button>
<a href="/items" class={cn(buttonVariants({ variant: 'outline', size: 'lg' }), 'px-8')}> <a
href="/items"
class={cn(buttonVariants({ variant: 'outline', size: 'lg' }), 'px-8')}
aria-label="Browse lost items"
>
Browse Lost Items Browse Lost Items
</a> </a>
</div> </div>
</div> </div>
<!-- Subtle background accent -->
<div <div
aria-hidden="true" aria-hidden="true"
class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl" class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl"
@ -43,37 +50,59 @@
</div> </div>
</section> </section>
<section class="mx-auto max-w-6xl px-6 py-20"> <section class="mx-auto max-w-6xl px-6 py-20" aria-labelledby="info-cards-heading">
<h2 id="info-cards-heading" class="sr-only">Information</h2>
<div class="grid gap-8 md:grid-cols-3"> <div class="grid gap-8 md:grid-cols-3">
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Found an Item?</CardTitle> <CardTitle id="found-item-heading">Found an Item?</CardTitle>
</CardHeader> </CardHeader>
<CardContent class="space-y-3 text-sm text-muted-foreground"> <CardContent
class="space-y-3 text-sm text-muted-foreground"
aria-labelledby="found-item-heading"
>
<p> <p>
Turn it in digitally in less than a minute. Add a description and where you found it. Turn it in digitally in less than a minute. Add a description and where you found it.
</p> </p>
<Button class="mt-2 w-full" onclick={openCreateDialog}>Submit Item</Button> <Button
class="mt-2 w-full"
onclick={openCreateDialog}
aria-label="Submit a found item"
>
Submit Item
</Button>
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Lost Something?</CardTitle> <CardTitle id="lost-item-heading">Lost Something?</CardTitle>
</CardHeader> </CardHeader>
<CardContent class="space-y-3 text-sm text-muted-foreground"> <CardContent
class="space-y-3 text-sm text-muted-foreground"
aria-labelledby="lost-item-heading"
>
<p> <p>
Browse items that have been turned in by students and staff. Browse items that have been turned in by students and staff.
</p> </p>
<a href="/items" class={cn(buttonVariants({ variant: 'outline', size: 'lg' }), 'mt-2 w-full')}>Browse Items</a> <a
href="/items"
class={cn(buttonVariants({ variant: 'outline', size: 'lg' }), 'mt-2 w-full')}
aria-label="Browse found items"
>
Browse Items
</a>
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card>
<CardHeader> <CardHeader>
<CardTitle>Safe &amp; School-Run</CardTitle> <CardTitle id="safe-heading">Safe &amp; School-Run</CardTitle>
</CardHeader> </CardHeader>
<CardContent class="space-y-3 text-sm text-muted-foreground"> <CardContent
class="space-y-3 text-sm text-muted-foreground"
aria-labelledby="safe-heading"
>
<p> <p>
Managed by Waukesha West staff. Items are reviewed before being listed. Managed by Waukesha West staff. Items are reviewed before being listed.
</p> </p>
@ -82,11 +111,16 @@
</div> </div>
</section> </section>
<section class="mx-auto max-w-6xl px-6 pb-24"> <section class="mx-auto max-w-6xl px-6 pb-24" aria-labelledby="staff-heading">
<h2 id="staff-heading" class="sr-only">Staff Access</h2>
<div class="flex items-center justify-center"> <div class="flex items-center justify-center">
<p class="text-xs text-muted-foreground"> <p class="text-xs text-muted-foreground">
Staff only: Staff only:
<a href="/login" class="ml-1 underline underline-offset-4 hover:text-foreground"> <a
href="/login"
class="ml-1 underline underline-offset-4 hover:text-foreground"
aria-label="Admin sign in"
>
Admin sign in Admin sign in
</a> </a>
</p> </p>

View File

@ -16,39 +16,47 @@
<div class="flex-1"></div> <div class="flex-1"></div>
<div class="justify-center flex"> <div class="justify-center flex">
<div class="w-full max-w-xs"> <div class="w-full max-w-xs">
<form class="flex flex-col gap-6" method="post"> <form class="flex flex-col gap-6" method="post" aria-labelledby="login-heading">
<FieldGroup> <FieldGroup>
<div class="flex flex-col items-center gap-1 text-center"> <div class="flex flex-col items-center gap-1 text-center">
<h1 class="text-2xl font-bold">Login to your account</h1> <h1 id="login-heading" class="text-2xl font-bold">Login to your account</h1>
<p class="text-muted-foreground text-sm text-balance"> <p id="login-description" class="text-muted-foreground text-sm text-balance">
Only admins need to log in.<br>Lost something? Go <a href="/" class="underline text-primary">home</a>. Only admins need to log in.<br>Lost something? Go <a href="/" class="underline text-primary">home</a>.
</p> </p>
</div> </div>
<Field> <Field>
<FieldLabel for="email">Email</FieldLabel> <FieldLabel for="email">Email</FieldLabel>
<Input id="email" type="email" name="email" placeholder="m@example.com" required /> <Input
id="email"
type="email"
name="email"
placeholder="m@example.com"
required
aria-required="true"
/>
</Field> </Field>
<Field> <Field>
<div class="flex items-center"> <div class="flex items-center">
<FieldLabel for="password">Password</FieldLabel> <FieldLabel for="password">Password</FieldLabel>
<!-- <a href="##" class="ms-auto text-sm underline-offset-4 hover:underline">-->
<!-- Forgot your password?-->
<!-- </a>-->
</div> </div>
<Input id="password" name="password" type="password" required /> <Input
id="password"
name="password"
type="password"
required
aria-required="true"
aria-describedby={form?.message ? "password-error" : undefined}
aria-invalid={form?.message ? "true" : "false"}
/>
{#if form?.message} {#if form?.message}
<p class="text-error">{form.message}</p> <p id="password-error" class="text-error" role="alert" aria-live="assertive">
{form.message}
</p>
{/if} {/if}
</Field> </Field>
<Field> <Field>
<Button type="submit">Login</Button> <Button type="submit" aria-label="Login to your account">Login</Button>
</Field> </Field>
<!-- <Field>-->
<!-- <FieldDescription class="text-center">-->
<!-- Don't have an account?-->
<!-- <a href="/signup" class="underline underline-offset-4">Sign up</a>-->
<!-- </FieldDescription>-->
<!-- </Field>-->
</FieldGroup> </FieldGroup>
</form> </form>
</div> </div>
@ -59,6 +67,7 @@
<img <img
src="login-hero.png" src="login-hero.png"
alt="" alt=""
aria-hidden="true"
class="absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale" class="absolute inset-0 h-full w-full object-cover dark:brightness-[0.2] dark:grayscale"
/> />
</div> </div>