feat: commit unoptimised assets to cleanup later
Before Width: | Height: | Size: 3.3 MiB |
Before Width: | Height: | Size: 306 KiB |
Before Width: | Height: | Size: 8.9 MiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 879 KiB |
Before Width: | Height: | Size: 20 MiB |
Before Width: | Height: | Size: 374 KiB |
Before Width: | Height: | Size: 805 KiB |
Before Width: | Height: | Size: 494 KiB |
Before Width: | Height: | Size: 2.6 MiB |
Before Width: | Height: | Size: 808 KiB |
Before Width: | Height: | Size: 199 KiB |
Before Width: | Height: | Size: 545 KiB |
Before Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 83 KiB |
|
@ -1,90 +0,0 @@
|
|||
---
|
||||
import Layout from "@layouts/Layout.astro";
|
||||
import { Image } from "astro:assets";
|
||||
import { ARCHIVE } from "@consts";
|
||||
|
||||
import lighting from "./assets/cinematic-lighting-in-blender-night-lighting-03-projection.webm";
|
||||
import pillows from "./assets/houdini-pillows.webm";
|
||||
import interior from "./assets/interior_test.webm";
|
||||
import particles from "./assets/houdini-abstract-particles.webm";
|
||||
|
||||
const images = import.meta.glob<{ default: ImageMetadata }>(
|
||||
`./assets/*.{jpeg,jpg,png}`,
|
||||
);
|
||||
|
||||
const imageList = await Promise.all(
|
||||
Object.entries(images).map(async ([filepath, imageModule]) => {
|
||||
const metadata = await imageModule();
|
||||
return {
|
||||
image: metadata.default,
|
||||
alt: filepath,
|
||||
};
|
||||
}),
|
||||
);
|
||||
---
|
||||
|
||||
<Layout title={ARCHIVE.TITLE} description={ARCHIVE.DESCRIPTION}>
|
||||
<h1
|
||||
class="animate-reveal text-start text-3xl font-semibold break-words opacity-0"
|
||||
>
|
||||
<span class="text-secondary">{ARCHIVE.TITLE}</span><span
|
||||
class="text-tertiary ml-2">{ARCHIVE.DESCRIPTION}</span
|
||||
>
|
||||
</h1>
|
||||
<div
|
||||
class="animate-reveal grid grid-cols-2 gap-2 [animation-delay:0.1s] md:grid-cols-3"
|
||||
>
|
||||
<video
|
||||
preload="metadata"
|
||||
loop
|
||||
muted
|
||||
controls
|
||||
class="aspect-square h-full w-full rounded-sm object-cover"
|
||||
>
|
||||
<source src={lighting} type="video/webm" />
|
||||
</video>
|
||||
<video
|
||||
preload="metadata"
|
||||
loop
|
||||
muted
|
||||
controls
|
||||
class="aspect-square h-full w-full rounded-sm object-cover"
|
||||
>
|
||||
<source src={pillows} type="video/webm" />
|
||||
</video>
|
||||
<video
|
||||
preload="metadata"
|
||||
loop
|
||||
muted
|
||||
controls
|
||||
class="aspect-square h-full w-full rounded-sm object-cover"
|
||||
>
|
||||
<source src={interior} type="video/webm" />
|
||||
</video>
|
||||
<video
|
||||
preload="metadata"
|
||||
loop
|
||||
muted
|
||||
controls
|
||||
class="aspect-square h-full w-full rounded-sm object-cover"
|
||||
>
|
||||
<source src={particles} type="video/webm" />
|
||||
</video>
|
||||
</div>
|
||||
<div
|
||||
class="animate-reveal grid grid-cols-2 gap-2 [animation-delay:0.2s] md:grid-cols-3"
|
||||
>
|
||||
{
|
||||
imageList.map((item) => (
|
||||
<a href={item.image.src} target="_blank">
|
||||
<Image
|
||||
src={item.image}
|
||||
alt={item.alt}
|
||||
loading="eager"
|
||||
class="aspect-square h-full w-full cursor-zoom-in rounded-sm object-cover transition-all duration-300 ease-in-out hover:brightness-50"
|
||||
/>
|
||||
</a>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
</Layout>
|
|
@ -18,11 +18,12 @@ I'm a [Game Arts and Design](#education) degree student with a chosen area of fo
|
|||
|
||||
My role has me in charge of managing an online e-commerce store in addition to creating, editing, and publishing informational YouTube and social media content for a family run outdoors store. This includes the recent branding redesign, migration of content to Shopify, and any maintenance or general upkeep of the site with all its related systems, such as the self-hosted analytics platform.
|
||||
|
||||
### Volunteering
|
||||
### Volunteering and smaller roles
|
||||
|
||||
- **Production Assistant**, SDC Radiant Rumble <small class="font-light font-mono text-xs">(2024)</small>
|
||||
- **Photogrammetrist**, Paignton Picture House <small class="font-light font-mono text-xs">(2023)</small>
|
||||
- **Website mock-up templates**, WebBoss <small class="font-light font-mono text-xs">(2019)</small>
|
||||
- **Promo Graphic Design**, Nisa <small class="font-light font-mono text-xs">(2022)</small>
|
||||
- **Website Mock-up Templates**, WebBoss <small class="font-light font-mono text-xs">(2019)</small>
|
||||
|
||||
---
|
||||
|
||||
|
@ -30,7 +31,7 @@ My role has me in charge of managing an online e-commerce store in addition to c
|
|||
|
||||
### **BA (Hons) Game Arts and Design**, University of Plymouth <small class="font-light font-mono text-xs">(2024 - 2025)</small>
|
||||
|
||||
- 1st year: Estimated completion May 2025
|
||||
- 1st year: Completion May/June 2025
|
||||
|
||||
### **FdA Games and Interactive Design**, University Centre South Devon <small class="font-light font-mono text-xs">(2022 - 2024)</small>
|
||||
|
||||
|
|
|
@ -16,17 +16,4 @@ const projects = allProjects
|
|||
<section class="animate-reveal opacity-0 [animation-delay:0.3s]">
|
||||
<Slideshow images={projects} />
|
||||
</section>
|
||||
<div role="alert">
|
||||
<div class="rounded-t bg-amber-500 px-4 py-2 font-bold text-white">
|
||||
Notice
|
||||
</div>
|
||||
<div
|
||||
class="rounded-b border border-t-0 border-amber-400 bg-amber-100 px-4 py-3 text-amber-700 dark:border-amber-600 dark:bg-amber-900 dark:text-amber-300"
|
||||
>
|
||||
<p>
|
||||
Some content might be missing or un-optimised as I am in the process of
|
||||
reworking what content is displayed.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
---
|
||||
import { getCollection } from "astro:content";
|
||||
import type { CollectionEntry } from "astro:content";
|
||||
import { PROJECTS, SITE } from "@consts";
|
||||
import Layout from "@layouts/Layout.astro";
|
||||
import ShowcaseProject from "@components/ShowcaseProject.astro";
|
||||
|
@ -19,4 +18,17 @@ const projects = (await getCollection("projects"))
|
|||
>
|
||||
{projects.map((article: any) => <ShowcaseProject collection={article} />)}
|
||||
</ol>
|
||||
<div role="alert" class="animate-reveal opacity-0 [animation-delay:0.2s]">
|
||||
<div class="rounded-t bg-amber-500 px-4 py-2 font-bold text-white">
|
||||
Notice
|
||||
</div>
|
||||
<div
|
||||
class="rounded-b border border-t-0 border-amber-400 bg-amber-100 px-4 py-3 text-amber-700 dark:border-amber-600 dark:bg-amber-900 dark:text-amber-300"
|
||||
>
|
||||
<p>
|
||||
Some content may be unoptimised as I am in the process of
|
||||
reworking what is on display.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</Layout>
|
||||
|
|