Add Filament admin panel and creative public portfolio site
Adds a Filament admin (Profile settings page plus CRUD resources for Education, Experience, Projects, and Posts) backing a public-facing personal site: hero/about/timeline home page, project showcase, and blog, styled with a dark editorial theme (Fraunces + Instrument Sans). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<x-layouts.app title="Projects" description="A collection of things I've built.">
|
||||
<section class="mx-auto max-w-5xl px-6 pt-16 pb-8">
|
||||
<p class="font-mono text-sm tracking-widest text-accent uppercase">Selected work</p>
|
||||
<h1 class="mt-3 font-display text-5xl font-semibold text-paper">Projects</h1>
|
||||
</section>
|
||||
|
||||
<section class="mx-auto max-w-5xl px-6 pb-24">
|
||||
@if ($projects->isEmpty())
|
||||
<p class="text-paper-dim">Nothing here yet — check back soon.</p>
|
||||
@else
|
||||
<div class="grid gap-6 sm:grid-cols-2">
|
||||
@foreach ($projects as $project)
|
||||
<a href="{{ route('projects.show', $project) }}" class="group overflow-hidden rounded-2xl border border-white/10 bg-ink-soft transition hover:border-accent/50">
|
||||
@if ($project->image_url)
|
||||
<div class="aspect-video overflow-hidden">
|
||||
<img src="{{ $project->image_url }}" alt="{{ $project->title }}" class="h-full w-full object-cover transition duration-500 group-hover:scale-105">
|
||||
</div>
|
||||
@endif
|
||||
<div class="p-6">
|
||||
<div class="flex items-center gap-2">
|
||||
<h2 class="font-display text-xl font-medium text-paper">{{ $project->title }}</h2>
|
||||
@if ($project->is_featured)
|
||||
<span class="rounded-full bg-accent-soft px-2 py-0.5 text-xs text-accent">Featured</span>
|
||||
@endif
|
||||
</div>
|
||||
@if ($project->summary)
|
||||
<p class="mt-2 text-sm text-paper-dim">{{ $project->summary }}</p>
|
||||
@endif
|
||||
@if (!empty($project->tech_stack))
|
||||
<div class="mt-4 flex flex-wrap gap-2">
|
||||
@foreach ($project->tech_stack as $tech)
|
||||
<span class="rounded-full bg-white/5 px-3 py-1 text-xs text-paper-dim">{{ $tech }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</section>
|
||||
</x-layouts.app>
|
||||
@@ -0,0 +1,42 @@
|
||||
<x-layouts.app :title="$project->title" :description="$project->summary">
|
||||
<article class="mx-auto max-w-3xl px-6 pt-16 pb-24">
|
||||
<a href="{{ route('projects.index') }}" class="text-sm text-paper-dim transition hover:text-accent">← All projects</a>
|
||||
|
||||
<h1 class="mt-6 font-display text-4xl font-semibold text-paper sm:text-5xl">{{ $project->title }}</h1>
|
||||
|
||||
@if ($project->summary)
|
||||
<p class="mt-4 font-display text-xl text-paper-dim italic">{{ $project->summary }}</p>
|
||||
@endif
|
||||
|
||||
<div class="mt-6 flex flex-wrap items-center gap-4">
|
||||
@if ($project->url)
|
||||
<a href="{{ $project->url }}" target="_blank" rel="noopener noreferrer" class="rounded-full bg-accent px-5 py-2.5 text-sm font-semibold text-ink transition hover:brightness-110">
|
||||
Visit live site
|
||||
</a>
|
||||
@endif
|
||||
@if ($project->repository_url)
|
||||
<a href="{{ $project->repository_url }}" target="_blank" rel="noopener noreferrer" class="rounded-full border border-white/15 px-5 py-2.5 text-sm font-semibold text-paper transition hover:border-white/30">
|
||||
View source
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (!empty($project->tech_stack))
|
||||
<div class="mt-6 flex flex-wrap gap-2">
|
||||
@foreach ($project->tech_stack as $tech)
|
||||
<span class="rounded-full bg-accent-soft px-3 py-1 text-xs text-accent">{{ $tech }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($project->image_url)
|
||||
<img src="{{ $project->image_url }}" alt="{{ $project->title }}" class="mt-10 w-full rounded-2xl border border-white/10">
|
||||
@endif
|
||||
|
||||
@if ($project->description)
|
||||
<div class="prose prose-invert mt-10 max-w-none text-paper-dim prose-headings:font-display prose-headings:text-paper prose-a:text-accent">
|
||||
{!! $project->description !!}
|
||||
</div>
|
||||
@endif
|
||||
</article>
|
||||
</x-layouts.app>
|
||||
Reference in New Issue
Block a user