Merge pull request #5 from BradNut/bandcamp-image

Bandcamp image
This commit is contained in:
Bradley Shellnut 2023-04-20 23:07:59 +00:00 committed by GitHub
commit fe65d64036
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 291 additions and 251 deletions

View file

@ -14,7 +14,7 @@
"format": "prettier --plugin-search-dir . --write ." "format": "prettier --plugin-search-dir . --write ."
}, },
"devDependencies": { "devDependencies": {
"@iconify-icons/material-symbols": "^1.2.36", "@iconify-icons/material-symbols": "^1.2.37",
"@iconify-icons/mdi": "^1.2.44", "@iconify-icons/mdi": "^1.2.44",
"@iconify-icons/radix-icons": "^1.2.8", "@iconify-icons/radix-icons": "^1.2.8",
"@iconify-icons/simple-icons": "^1.2.48", "@iconify-icons/simple-icons": "^1.2.48",
@ -25,7 +25,7 @@
"@sveltejs/adapter-auto": "^1.0.3", "@sveltejs/adapter-auto": "^1.0.3",
"@sveltejs/adapter-static": "^2.0.2", "@sveltejs/adapter-static": "^2.0.2",
"@sveltejs/adapter-vercel": "^1.0.6", "@sveltejs/adapter-vercel": "^1.0.6",
"@sveltejs/kit": "^1.15.6", "@sveltejs/kit": "^1.15.7",
"@types/postcss-preset-env": "^8.0.0", "@types/postcss-preset-env": "^8.0.0",
"@typescript-eslint/eslint-plugin": "^5.59.0", "@typescript-eslint/eslint-plugin": "^5.59.0",
"@typescript-eslint/parser": "^5.59.0", "@typescript-eslint/parser": "^5.59.0",
@ -38,7 +38,7 @@
"just-intersect": "^4.3.0", "just-intersect": "^4.3.0",
"mdsvex": "^0.10.6", "mdsvex": "^0.10.6",
"mdsvex-relative-images": "^1.0.3", "mdsvex-relative-images": "^1.0.3",
"postcss": "^8.4.22", "postcss": "^8.4.23",
"postcss-import": "^15.1.0", "postcss-import": "^15.1.0",
"postcss-load-config": "^4.0.1", "postcss-load-config": "^4.0.1",
"postcss-nested": "^6.0.1", "postcss-nested": "^6.0.1",
@ -55,8 +55,8 @@
"tslib": "^2.5.0", "tslib": "^2.5.0",
"typescript": "^4.9.5", "typescript": "^4.9.5",
"vanilla-lazyload": "^17.8.3", "vanilla-lazyload": "^17.8.3",
"vite": "^4.2.1", "vite": "^4.3.1",
"vite-imagetools": "^4.0.18", "vite-imagetools": "^4.0.19",
"vitest": "^0.25.3" "vitest": "^0.25.3"
}, },
"type": "module", "type": "module",

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,19 @@
<script lang="ts"> <script lang="ts">
import Img from '@zerodevx/svelte-img';
import type { Album } from "$root/lib/types/album"; import type { Album } from "$root/lib/types/album";
export let albums: Album[]; export let albums: Album[];
const displayAlbums = const displayAlbums =
albums?.length > 6 ? albums.slice(0, 6) : albums; albums?.length > 6 ? albums.slice(0, 6) : albums;
for (let album of displayAlbums) {
album.src = [
{ format: 'avif', src: `${album.artwork}`, width: 230, height: 230 },
{ format: 'webp', src: `${album.artwork}`, width: 230, height: 230},
{ format: 'jpg', src: `${album.artwork}`, width: 230, height: 230}
]
}
</script> </script>
<div> <div>
@ -19,12 +28,7 @@
href={album.url} href={album.url}
rel="noreferrer" rel="noreferrer"
> >
<img <Img src={album.src} alt={`Album art for ${album.title}`} />
src={`https://images.weserv.nl/?url=${encodeURIComponent(
album.artwork
)}&w=230&h=230`}
alt={`Album art for ${album.title}`}
/>
</a> </a>
</figure> </figure>
<a <a
@ -81,6 +85,11 @@
justify-content: center; justify-content: center;
text-align: center; text-align: center;
figure {
margin-left: auto;
margin-right: auto;
}
@media (max-width: 550px) { @media (max-width: 550px) {
grid-template-columns: 0.75fr 0.75fr; grid-template-columns: 0.75fr 0.75fr;
font-size: 1rem; font-size: 1rem;

View file

@ -3,4 +3,12 @@ export type Album = {
artwork: string; artwork: string;
title: string; title: string;
artist: string; artist: string;
src?: ExternalImageSource[];
};
export type ExternalImageSource = {
format: string;
src: string;
width: number;
height: number;
}; };

View file

@ -80,7 +80,7 @@
max-width: 85vw; max-width: 85vw;
@media (min-width: 1600px) { @media (min-width: 1600px) {
max-width: 50vw; max-width: 60vw;
} }
box-sizing: border-box; box-sizing: border-box;

View file

@ -343,12 +343,15 @@
} }
.extracurricular { .extracurricular {
display: grid; display: flex;
grid-template-columns: repeat(3, auto); flex-wrap: wrap;
/* justify-content: center; */ place-content: center;
/* align-items: center; */
gap: 1.5rem; gap: 1.5rem;
.card {
max-width: 30rem;
}
@media (max-width: 1000px) { @media (max-width: 1000px) {
grid-template-columns: repeat(2, auto); grid-template-columns: repeat(2, auto);
--cardHeightMin: 20rem; --cardHeightMin: 20rem;

View file

@ -23,7 +23,7 @@
<SEO title="Portfolio" /> <SEO title="Portfolio" />
<h1>Portfolio!</h1> <h1>Portfolio!</h1>
<TabGroup> <TabGroup class="tab-group">
<TabList aria-label="tabs portfolios" class="tab-list"> <TabList aria-label="tabs portfolios" class="tab-list">
<Tab class={({selected}) => selected ? "tab-selected portfolio-tab" : "tab-unselected portfolio-tab"}> <Tab class={({selected}) => selected ? "tab-selected portfolio-tab" : "tab-unselected portfolio-tab"}>
<h2>Personal Sites</h2> <h2>Personal Sites</h2>
@ -38,13 +38,18 @@
style="max-height: 640px;" style="max-height: 640px;"
src={personalSite} src={personalSite}
loading="eager" loading="eager"
alt="Picture of Bradley Shellnut's Gatsby Personal Website"> alt="Picture of Bradley Shellnut's Personal Website">
<span slot="portfolio-links">
<p>
<ExternalLink ariaLabel="View GitHub repository for my personal website" href="https://github.com/BradNut/personal-website-sveltekit" icon={GitHub} showIcon>GitHub repository</ExternalLink>
</p>
</span>
<PersonalWebsiteSvelteKit slot="portfolio-details" /> <PersonalWebsiteSvelteKit slot="portfolio-details" />
</Portfolio> </Portfolio>
<Portfolio name="Wedding Website" <Portfolio name="Wedding Website"
style="max-height: 640px;" style="max-height: 640px;"
src={weddingWebsite} src={weddingWebsite}
alt="Picture of Bradley Shellnut's Gatsby Personal Website"> alt="Picture of NextJS Wedding Website">
<span slot="portfolio-links"> <span slot="portfolio-links">
<p> <p>
<ExternalLink ariaLabel="View Wedding Website" href="https://weddingsite-six.vercel.app/" showIcon>View Site</ExternalLink> <ExternalLink ariaLabel="View Wedding Website" href="https://weddingsite-six.vercel.app/" showIcon>View Site</ExternalLink>
@ -79,6 +84,12 @@
</TabGroup> </TabGroup>
<style lang="postcss"> <style lang="postcss">
:global(.tab-group) {
@media(min-width: 1000px) {
max-width: 50vw;
}
}
:global(.tab-list) { :global(.tab-list) {
display: grid; display: grid;
gap: 1rem; gap: 1rem;