diff --git a/.astro/types.d.ts b/.astro/types.d.ts index f964fe0..03d7cc4 100644 --- a/.astro/types.d.ts +++ b/.astro/types.d.ts @@ -1 +1,2 @@ /// +/// \ No newline at end of file diff --git a/cspell.json b/cspell.json index a216b16..c6bda54 100644 --- a/cspell.json +++ b/cspell.json @@ -34,6 +34,7 @@ "Logomark", "mariah", "MBTA", + "Merch", "mitropoulos", "mulroy", "Murg", diff --git a/package.json b/package.json index fb8cde7..3ed6e49 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,9 @@ "konami-emoji-blast": "^0.5.9", "lodash": "^4.17.21", "sharp": "^0.34.1", - "temporal-polyfill": "^0.3.0" + "temporal-polyfill": "^0.3.0", + "uqr": "^0.1.2", + "wifi-share-link": "^0.1.1" }, "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d70e47..a7809fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,6 +44,12 @@ importers: temporal-polyfill: specifier: ^0.3.0 version: 0.3.0 + uqr: + specifier: ^0.1.2 + version: 0.1.2 + wifi-share-link: + specifier: ^0.1.1 + version: 0.1.1 devDependencies: '@eslint-community/eslint-plugin-eslint-comments': specifier: ^4.5.0 @@ -3567,6 +3573,9 @@ packages: uploadthing: optional: true + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3772,6 +3781,10 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} + wifi-share-link@0.1.1: + resolution: {integrity: sha512-olagxtSm5jvkW1GAaLGtc2h41uzB85FTrL+NJ6DB2dFKsk45eUYVaUaQovk+LN6RnWuNBXlV5WNDKw1EeqgKXA==} + engines: {node: '>=20.19.0'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -7840,6 +7853,8 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -8020,6 +8035,8 @@ snapshots: dependencies: string-width: 7.2.0 + wifi-share-link@0.1.1: {} + word-wrap@1.2.5: {} wrap-ansi@7.0.0: diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 3fe9b64..aaeafd3 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -38,7 +38,7 @@ const yearPairs = )) } - + @@ -82,6 +82,18 @@ const yearPairs = text-decoration: none; } + .footer-socials { + margin-top: 2rem; + max-width: 15rem; + } + + @media (width >= 490px) { + .footer-socials { + margin-top: 0; + max-width: none; + } + } + @media (width >= 819px) { .footer-content-area { flex-direction: row; diff --git a/src/components/Logo.astro b/src/components/Logo.astro index 714404f..2b5c0d7 100644 --- a/src/components/Logo.astro +++ b/src/components/Logo.astro @@ -1,5 +1,4 @@ --- -import { ClassificationTypeNames } from "typescript"; import TextSquiggly from "./TextSquiggly.astro"; interface Props { @@ -38,6 +37,7 @@ const { class: className, invert, year, ...props } = Astro.props; .logo.regular { --colorLogoText: var(--colorWhiteIsh); --colorLogoYear: var(--colorBlue2); + text-shadow: 0px 1.5px 1.5px rgba(0, 0, 0, 0.25); } .year { diff --git a/src/components/LogoBold.astro b/src/components/LogoBold.astro new file mode 100644 index 0000000..b2d6bd1 --- /dev/null +++ b/src/components/LogoBold.astro @@ -0,0 +1,35 @@ +--- +import TextSquiggly from "./TextSquiggly.astro"; + +interface Props { + class?: string; + year: number; +} + +const { class: className, ...props } = Astro.props; +--- + +
+ + Squiggle + Conf + + {Astro.props.year && {Astro.props.year}} +
+ + diff --git a/src/components/SocialLink.astro b/src/components/SocialLink.astro index 4ba28e8..37bb4c8 100644 --- a/src/components/SocialLink.astro +++ b/src/components/SocialLink.astro @@ -2,23 +2,33 @@ import { ImageMetadata } from "astro"; import { Image } from "astro:assets"; +export type SocialLinkSize = "small" | "normal" | "large"; + interface Props { alt: string; class?: string; href: string; inverted?: boolean; + size?: SocialLinkSize; src: ImageMetadata; } -const { alt, class: className, inverted, href, src } = Astro.props; +const { + alt, + class: className, + inverted, + href, + size = "normal", + src, +} = Astro.props; --- - + {alt} diff --git a/src/components/Socials.astro b/src/components/Socials.astro index 2734084..a011ef9 100644 --- a/src/components/Socials.astro +++ b/src/components/Socials.astro @@ -1,27 +1,63 @@ --- import { socials } from "~/data/socials"; -import SocialLink from "./SocialLink.astro"; +import SocialLink, { SocialLinkSize } from "./SocialLink.astro"; + +export type SocialsPadding = "dense" | "normal"; + +interface Props { + class?: string; + inverted?: boolean; + padding?: SocialsPadding; + size?: SocialLinkSize; +} + +const { + class: className, + inverted, + padding = "normal", + size, + ...props +} = Astro.props; --- -
- {socials.map((social) =>