diff --git a/README.md b/README.md index c015e9f..1639f21 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ This project uses `devenv.nix` to manage the development environment, which will ### Installation 1. Clone the repository: + ```bash git clone https://github.com/Cian-H/am-d-model.eu.git cd am-d-model.eu @@ -54,4 +55,3 @@ implemented in future but for now, simplicity is a virtue. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. - diff --git a/bun.lockb b/bun.lockb index cd0ca02..285cb86 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/devenv.yaml b/devenv.yaml index 68616a4..c535723 100644 --- a/devenv.yaml +++ b/devenv.yaml @@ -1,4 +1,4 @@ # yaml-language-server: $schema=https://devenv.sh/devenv.schema.json inputs: - nixpkgs: - url: github:cachix/devenv-nixpkgs/rolling + nixpkgs: + url: github:cachix/devenv-nixpkgs/rolling diff --git a/docker-compose.yaml b/docker-compose.yaml index 9fde117..453e21f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,44 +1,43 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json services: - site: - build: . - networks: - - am-d-model-network - expose: - - "3000" - restart: unless-stopped - labels: - - "io.containers.autoupdate=local" + site: + build: . + networks: + - am-d-model-network + expose: + - "3000" + restart: unless-stopped + labels: + - "io.containers.autoupdate=local" - caddy: - image: docker.io/library/caddy:latest - depends_on: - - site - networks: - - am-d-model-network - ports: - - "80:80" - - "443:443" - volumes: - - caddy_data:/data - - ./caddy:/etc/caddy - restart: unless-stopped - labels: - - "io.containers.autoupdate=registry" + caddy: + image: docker.io/library/caddy:latest + depends_on: + - site + networks: + - am-d-model-network + ports: + - "80:80" + - "443:443" + volumes: + - caddy_data:/data + - ./caddy:/etc/caddy + restart: unless-stopped + labels: + - "io.containers.autoupdate=registry" - repo-placeholder: - image: docker.io/nginx:alpine - networks: - - am-d-model-network - expose: - - "80" - volumes: - - ./repo:/usr/share/nginx/html + repo-placeholder: + image: docker.io/nginx:alpine + networks: + - am-d-model-network + expose: + - "80" + volumes: + - ./repo:/usr/share/nginx/html networks: - am-d-model-network: - name: am-d-model-network - + am-d-model-network: + name: am-d-model-network volumes: - caddy_data: + caddy_data: diff --git a/jsconfig.json b/jsconfig.json index 1394d6c..e05ccee 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,12 +1,12 @@ { - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "module": "NodeNext", - "moduleResolution": "NodeNext" - } + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "module": "NodeNext", + "moduleResolution": "NodeNext" + } } diff --git a/package.json b/package.json index fdc4cae..a57fb52 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "autoprefixer": "^10.4.20", "globals": "^15.14.0", "publint": "^0.2.12", + "prettier": "^3.4.2", "sass": "^1.83.1", "svelte": "^5.17.3", "svelte-preprocess": "^5.1.4", diff --git a/postcss.config.js b/postcss.config.js index ba80730..49c0612 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,6 @@ export default { - plugins: { - tailwindcss: {}, - autoprefixer: {} - } + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, }; diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..e18157b --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,8 @@ +const config = { + singleQuote: false, + tabWidth: 4, + trailingComma: "all", + printWidth: 100, +}; + +export default config; diff --git a/repo/index.html b/repo/index.html index f731cb0..928146d 100644 --- a/repo/index.html +++ b/repo/index.html @@ -1,6 +1,6 @@

This is a placeholder page

Please wait patiently while I set up the data repository

- The data repository will be deployed as soon as possible, we just - need to figure out some details first before deployment happens. + The data repository will be deployed as soon as possible, we just need to figure out some + details first before deployment happens.

diff --git a/src/app.css b/src/app.css index 6c8f99f..76fcadc 100644 --- a/src/app.css +++ b/src/app.css @@ -1,3 +1,3 @@ -@import 'tailwindcss/base'; -@import 'tailwindcss/components'; -@import 'tailwindcss/utilities' +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; diff --git a/src/app.html b/src/app.html index 17df014..ad4a082 100644 --- a/src/app.html +++ b/src/app.html @@ -1,15 +1,13 @@ + + + + + %sveltekit.head% + - - - - - %sveltekit.head% - - - -
%sveltekit.body%
- - + +
%sveltekit.body%
+ diff --git a/src/lib/navigation.js b/src/lib/navigation.js index 09e6804..fbdde4d 100644 --- a/src/lib/navigation.js +++ b/src/lib/navigation.js @@ -1,10 +1,12 @@ import { goto } from "$app/navigation"; -import { error } from '@sveltejs/kit'; +import { error } from "@sveltejs/kit"; export const navigation = { toHome: () => goto("/"), toAbout: () => goto("/about"), toContact: () => goto("/contact"), toRepository: () => goto("/repo"), - to404: () => { throw error(404, 'Page not found') }, + to404: () => { + throw error(404, "Page not found"); + }, }; diff --git a/src/lib/styles/ContactForm.scss b/src/lib/styles/ContactForm.scss index 88ab0b2..4b3bd79 100644 --- a/src/lib/styles/ContactForm.scss +++ b/src/lib/styles/ContactForm.scss @@ -1,64 +1,65 @@ .form-container { + input, + textarea { + transition: + border-color 0.2s ease, + box-shadow 0.2s ease; - input, - textarea { - transition: border-color 0.2s ease, box-shadow 0.2s ease; + &:focus { + outline: none; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); + } - &:focus { - outline: none; - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); + &.error { + border-color: #ef4444; + + &:focus { + box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2); + } + } } - &.error { - border-color: #ef4444; + .submit-button { + width: auto; + padding: 0.5rem 1rem; + background-color: var(--background); + color: white; + border-radius: 0.375rem; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + transition: background-color 0.2s ease; - &:focus { - box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2); - } - } - } + &:hover:not(:disabled) { + background-color: var(--cpalettemedium); + } - .submit-button { - width: auto; - padding: 0.5rem 1rem; - background-color: var(--background); - color: white; - border-radius: 0.375rem; - display: flex; - align-items: center; - justify-content: center; - gap: 0.5rem; - transition: background-color 0.2s ease; + &:focus { + outline: none; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); + } - &:hover:not(:disabled) { - background-color: var(--cpalettemedium); + &:disabled { + background-color: #93c5fd; + cursor: not-allowed; + } } - &:focus { - outline: none; - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); + // Add subtle animation for success message + .success-message { + animation: fadeIn 0.3s ease-in-out; } - &:disabled { - background-color: #93c5fd; - cursor: not-allowed; - } - } + @keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-10px); + } - // Add subtle animation for success message - .success-message { - animation: fadeIn 0.3s ease-in-out; - } - - @keyframes fadeIn { - from { - opacity: 0; - transform: translateY(-10px); + to { + opacity: 1; + transform: translateY(0); + } } - - to { - opacity: 1; - transform: translateY(0); - } - } } diff --git a/src/lib/styles/NavigationFooter.scss b/src/lib/styles/NavigationFooter.scss index 3b3594e..edfa13a 100644 --- a/src/lib/styles/NavigationFooter.scss +++ b/src/lib/styles/NavigationFooter.scss @@ -1,142 +1,142 @@ .navigation-footer { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; - background: #ffffff; - width: 100%; - height: 240px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + background: #ffffff; + width: 100%; + height: 240px; } .navigation-footer-column { - display: flex; - flex-direction: column; - flex-wrap: wrap; - position: relative; - height: 100%; - width: 33%; - padding: 32px; - justify-content: center; + display: flex; + flex-direction: column; + flex-wrap: wrap; + position: relative; + height: 100%; + width: 33%; + padding: 32px; + justify-content: center; } .navigation-footer-column-left { - @extend .navigation-footer-column; - justify-content: space-between; + @extend .navigation-footer-column; + justify-content: space-between; } .navigation-footer-column-mid { - @extend .navigation-footer-column; - align-items: center; + @extend .navigation-footer-column; + align-items: center; } .navigation-footer-column-right { - @extend .navigation-footer-column; - align-items: center; + @extend .navigation-footer-column; + align-items: center; } .navigation-footer-site-name { - color: #000000; - text-align: left; - font-family: "Assistant", sans-serif; - font-size: 24px; - position: relative; - padding: 8px; + color: #000000; + text-align: left; + font-family: "Assistant", sans-serif; + font-size: 24px; + position: relative; + padding: 8px; } .navigation-footer-topic-column { - display: flex; - flex-direction: column; - flex-wrap: wrap; - position: relative; + display: flex; + flex-direction: column; + flex-wrap: wrap; + position: relative; } .navigation-footer-topic { - color: #000000; - font-family: "Assistant", sans-serif; - font-size: 28px; - font-weight: 600; - position: relative; + color: #000000; + font-family: "Assistant", sans-serif; + font-size: 28px; + font-weight: 600; + position: relative; } .navigation-footer-link { - color: #454545; - font-family: "Assistant", sans-serif; - font-size: 24px; - text-decoration: underline; - position: relative; + color: #454545; + font-family: "Assistant", sans-serif; + font-size: 24px; + text-decoration: underline; + position: relative; } .navigation-footer-social-icon { - width: 24px; - height: 24px; - position: relative; + width: 24px; + height: 24px; + position: relative; } .navigation-footer-social-media { - // display: flex; # temporarily disable - display: none; - flex-direction: row; - gap: var(--spacing-xs, 8px); - align-items: flex-start; - justify-content: flex-start; - position: relative; + // display: flex; # temporarily disable + display: none; + flex-direction: row; + gap: var(--spacing-xs, 8px); + align-items: flex-start; + justify-content: flex-start; + position: relative; } .navigation-footer-buttons-icon { - border-radius: 4px; - padding: 8px; - width: 42px; - height: 42px; - position: relative; + border-radius: 4px; + padding: 8px; + width: 42px; + height: 42px; + position: relative; } .navigation-footer-return { - color: rgba(70, 70, 70, 0.5); - font-family: "Assistant", sans-serif; - font-size: 16px; - position: relative; + color: rgba(70, 70, 70, 0.5); + font-family: "Assistant", sans-serif; + font-size: 16px; + position: relative; } @media (max-width: 820px) { - .navigation-footer { - height: 100%; - flex-direction: column-reverse; - } + .navigation-footer { + height: 100%; + flex-direction: column-reverse; + } - .navigation-footer-column { - width: 100%; - } + .navigation-footer-column { + width: 100%; + } - .navigation-footer-column-left { - flex-direction: row; - justify-content: space-between; - } + .navigation-footer-column-left { + flex-direction: row; + justify-content: space-between; + } - .navigation-footer-column-mid { - align-items: center; - } + .navigation-footer-column-mid { + align-items: center; + } - .navigation-footer-column-right { - align-items: center; - } + .navigation-footer-column-right { + align-items: center; + } - .navigation-footer-topic-column { - flex-direction: row; - width: 100%; - justify-content: space-between; - } + .navigation-footer-topic-column { + flex-direction: row; + width: 100%; + justify-content: space-between; + } } @media (max-width: 620px) { - .navigation-footer-column-left { - flex-direction: column; - align-items: center; - justify-content: center; - } + .navigation-footer-column-left { + flex-direction: column; + align-items: center; + justify-content: center; + } - .navigation-footer-topic-column { - flex-direction: column; - align-items: center; - justify-content: center; - } + .navigation-footer-topic-column { + flex-direction: column; + align-items: center; + justify-content: center; + } } diff --git a/src/lib/styles/NavigationHeader.scss b/src/lib/styles/NavigationHeader.scss index b36dc7f..071fb85 100644 --- a/src/lib/styles/NavigationHeader.scss +++ b/src/lib/styles/NavigationHeader.scss @@ -1,81 +1,80 @@ .navigation-header { - display: flex; - flex-direction: row-reverse; - width: 100%; - justify-content: space-between; + display: flex; + flex-direction: row-reverse; + width: 100%; + justify-content: space-between; } .navigation-header { - position: relative; - height: 128px; - width: 100%; - padding-bottom: 120px; + position: relative; + height: 128px; + width: 100%; + padding-bottom: 120px; } .navigation-header-items { - gap: 48px; - align-items: center; - position: relative; - padding-top: 28px; - padding-right: 96px; - padding-left: 32px; + gap: 48px; + align-items: center; + position: relative; + padding-top: 28px; + padding-right: 96px; + padding-left: 32px; } .navigation-header-link { - color: #000000; - font-family: var(--navigation-header-font-family); - text-align: left; - font-size: var(--navigation-header-font-size); - position: relative; - display: flex; - align-items: center; - justify-content: flex-start; + color: #000000; + font-family: var(--navigation-header-font-family); + text-align: left; + font-size: var(--navigation-header-font-size); + position: relative; + display: flex; + align-items: center; + justify-content: flex-start; } .navigation-header-button { - background: #000000; - border-radius: 8px; - padding: 14px 24px 14px 24px; - display: flex; - flex-direction: row; - gap: 8px; - align-items: center; - justify-content: center; - flex-shrink: 0; - position: relative; - box-shadow: var(--button-shadow-box-shadow, - 0px 1px 2px 0px rgba(0, 0, 0, 0.05)); + background: #000000; + border-radius: 8px; + padding: 14px 24px 14px 24px; + display: flex; + flex-direction: row; + gap: 8px; + align-items: center; + justify-content: center; + flex-shrink: 0; + position: relative; + box-shadow: var(--button-shadow-box-shadow, 0px 1px 2px 0px rgba(0, 0, 0, 0.05)); } .navigation-header-button-text { - @extend .navigation-header-link; - color: var(--cpalettecomplimentary); - text-decoration: none; + @extend .navigation-header-link; + color: var(--cpalettecomplimentary); + text-decoration: none; } .navigation-header-site-name { - color: #000000; - text-align: left; - font-family: "Assistant", sans-serif; - font-size: 24px; - position: relative; - padding: 8px; + color: #000000; + text-align: left; + font-family: "Assistant", sans-serif; + font-size: 24px; + position: relative; + padding: 8px; } .flexrow-right { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-end; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-end; } .flexrow-left { - @extend .flexrow-right; - justify-content: flex-start; + @extend .flexrow-right; + justify-content: flex-start; } @media (max-width: 750px) { - .navigation-header-items { - display: none; - } + .navigation-header-items { + display: none; + } } diff --git a/src/lib/styles/vars.css b/src/lib/styles/vars.css index d5b91a5..84dc054 100644 --- a/src/lib/styles/vars.css +++ b/src/lib/styles/vars.css @@ -45,5 +45,4 @@ --contact-corner-round: 28px; /* Effects */ - } diff --git a/src/routes/BottomCall.scss b/src/routes/BottomCall.scss index 51d645a..a845396 100644 --- a/src/routes/BottomCall.scss +++ b/src/routes/BottomCall.scss @@ -1,96 +1,96 @@ .btmcall { - display: flex; - flex-direction: row; - align-items: center; - align-content: left; - background: #f7f7f7; - width: 100%; - position: relative; - padding: 86px 0 86px 32px; + display: flex; + flex-direction: row; + align-items: center; + align-content: left; + background: #f7f7f7; + width: 100%; + position: relative; + padding: 86px 0 86px 32px; } .btmcall-buttons { - display: flex; - flex-direction: row; - flex-wrap: wrap; - height: 100%; - max-width: 50%; - gap: 24px; - align-items: center; - justify-content: center; - position: relative; - padding: 0 32px 0 32px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + height: 100%; + max-width: 50%; + gap: 24px; + align-items: center; + justify-content: center; + position: relative; + padding: 0 32px 0 32px; } @media (max-width: 640px) { - .btmcall { - flex-direction: column; - } + .btmcall { + flex-direction: column; + } - .btmcall-buttons { - max-width: 100%; - padding-top: 32px - } + .btmcall-buttons { + max-width: 100%; + padding-top: 32px; + } } .btmcall-text { - color: var(--background); - text-align: left; - font-family: var(--bottom-call-font-family); - font-size: var(--bottom-call-font-size-large); - line-height: 72px; - padding-right: 32px; - position: relative; + color: var(--background); + text-align: left; + font-family: var(--bottom-call-font-family); + font-size: var(--bottom-call-font-size-large); + line-height: 72px; + padding-right: 32px; + position: relative; } .btmcall-button1 { - background: var(--background); - border-radius: 8px; - padding: 20px 32px 20px 32px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-start; - flex-shrink: 0; - position: relative; + background: var(--background); + border-radius: 8px; + padding: 20px 32px 20px 32px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex-shrink: 0; + position: relative; } .btmcall-button2 { - background: var(--cpalettecomplimentary, #ffffff); - border-radius: 8px; - padding: 20px 32px 20px 32px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-start; - flex-shrink: 0; - position: relative; + background: var(--cpalettecomplimentary, #ffffff); + border-radius: 8px; + padding: 20px 32px 20px 32px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex-shrink: 0; + position: relative; } .btmcall-get-involved { - color: var(--cpalettecomplimentary, #ffffff); - text-align: left; - font-family: "Assistant", sans-serif; - font-size: 24px; - position: relative; - display: flex; - align-items: center; - justify-content: flex-start; + color: var(--cpalettecomplimentary, #ffffff); + text-align: left; + font-family: "Assistant", sans-serif; + font-size: 24px; + position: relative; + display: flex; + align-items: center; + justify-content: flex-start; } .btmcall-contact-us { - color: var(--background); - text-align: left; - font-family: "Assistant", sans-serif; - font-size: 24px; - position: relative; - display: flex; - align-items: center; - justify-content: flex-start; + color: var(--background); + text-align: left; + font-family: "Assistant", sans-serif; + font-size: 24px; + position: relative; + display: flex; + align-items: center; + justify-content: flex-start; } @media (max-width: 380px) { - .btmcall-text { - font-size: var(--bottom-call-font-size-small); - } + .btmcall-text { + font-size: var(--bottom-call-font-size-small); + } } diff --git a/src/routes/InfoScroll.scss b/src/routes/InfoScroll.scss index f5df4ce..0d9b40b 100644 --- a/src/routes/InfoScroll.scss +++ b/src/routes/InfoScroll.scss @@ -1,90 +1,90 @@ .infscr { - width: 100%; - position: relative; - padding-top: var(--infscr-vpad); - padding-bottom: var(--infscr-vpad); - padding-left: var(--infscr-hpad); - padding-right: var(--infscr-hpad); - display: flex; - flex-direction: column; - gap: var(--infscr-cardgap-size); + width: 100%; + position: relative; + padding-top: var(--infscr-vpad); + padding-bottom: var(--infscr-vpad); + padding-left: var(--infscr-hpad); + padding-right: var(--infscr-hpad); + display: flex; + flex-direction: column; + gap: var(--infscr-cardgap-size); } .infscr-title { - color: var(--cpalettelight); - width: 100%; - text-align: left; - font-family: var(--infscr-title-font-family); - font-size: var(--infscr-title-font-size); - font-weight: var(--infscr-title-font-weight); - position: relative; + color: var(--cpalettelight); + width: 100%; + text-align: left; + font-family: var(--infscr-title-font-family); + font-size: var(--infscr-title-font-size); + font-weight: var(--infscr-title-font-weight); + position: relative; } .infscr-subtitle { - color: var(--cpalettelight); - text-align: left; - font-family: var(--infscr-subtitle-font-family); - font-size: var(--infscr-subtitle-font-size); - font-weight: var(--infscr-subtitle-font-weight); - position: relative; - padding-top: 8px; + color: var(--cpalettelight); + text-align: left; + font-family: var(--infscr-subtitle-font-family); + font-size: var(--infscr-subtitle-font-size); + font-weight: var(--infscr-subtitle-font-weight); + position: relative; + padding-top: 8px; } .infscr-body { - color: var(--cpalettecomplimentary); - text-align: left; - font-family: var(--infscr-body-font-family); - font-size: var(--infscr-body-font-size); - font-weight: var(--infscr-body-font-weight); - position: relative; - display: flex; - align-items: center; - justify-content: flex-start; + color: var(--cpalettecomplimentary); + text-align: left; + font-family: var(--infscr-body-font-family); + font-size: var(--infscr-body-font-size); + font-weight: var(--infscr-body-font-weight); + position: relative; + display: flex; + align-items: center; + justify-content: flex-start; } .infscr-image-div { - display: flex; - min-width: 50%; - justify-content: center; + display: flex; + min-width: 50%; + justify-content: center; } .infscr-image { - border-radius: var(--infscr-corner-round); - width: 100%; - max-width: var(--infscr-img-size); - max-height: var(--infscr-img-size); - position: relative; + border-radius: var(--infscr-corner-round); + width: 100%; + max-width: var(--infscr-img-size); + max-height: var(--infscr-img-size); + position: relative; } .infscr-row, .infscr-row-reverse { - display: flex; - flex-direction: column; - width: 100%; - justify-content: space-evenly; - align-items: center; - gap: var(--infscr-cardgap-size); + display: flex; + flex-direction: column; + width: 100%; + justify-content: space-evenly; + align-items: center; + gap: var(--infscr-cardgap-size); } @media (orientation: landscape) and (min-width: 1200px) { - .infscr-row { - flex-direction: row; - } + .infscr-row { + flex-direction: row; + } - .infscr-row-reverse { - flex-direction: row-reverse; - } + .infscr-row-reverse { + flex-direction: row-reverse; + } } .infscr-textcol { - display: flex; - flex-direction: column; - justify-content: space-evenly; - gap: var(--infscr-titlegap-size); + display: flex; + flex-direction: column; + justify-content: space-evenly; + gap: var(--infscr-titlegap-size); } .infscr-subcol { - display: flex; - flex-direction: column; - gap: var(--infscr-textgap-size); + display: flex; + flex-direction: column; + gap: var(--infscr-textgap-size); } diff --git a/src/routes/LandingPage.scss b/src/routes/LandingPage.scss index 52b7ecc..2b0b6ce 100644 --- a/src/routes/LandingPage.scss +++ b/src/routes/LandingPage.scss @@ -1,54 +1,52 @@ .landing-page, .landing-page * { - box-sizing: border-box; + box-sizing: border-box; } .landing-page { - background: var(--background); - width: 100vw; - min-width: 250px; - position: absolute; - display: flex; - flex-direction: column; + background: var(--background); + width: 100vw; + min-width: 250px; + position: absolute; + display: flex; + flex-direction: column; } .landing-zone-outer { - position: relative; - min-height: 100vh; - height: fit-content; - width: 100%; - - // Blend out the background image into the plain bg color - &::after { - content: ''; - position: absolute; - bottom: 0; - left: 0; + position: relative; + min-height: 100vh; + height: fit-content; width: 100%; - height: 128px; - background: linear-gradient(to bottom, - #00000000 0%, - var(--background) 100%); - z-index: 1; - } + + // Blend out the background image into the plain bg color + &::after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 128px; + background: linear-gradient(to bottom, #00000000 0%, var(--background) 100%); + z-index: 1; + } } .landing-zone { - position: relative; - top: 0; - left: 0; - width: 100%; - min-height: 100vh; - height: fit-content; - z-index: 2; + position: relative; + top: 0; + left: 0; + width: 100%; + min-height: 100vh; + height: fit-content; + z-index: 2; } .background { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - z-index: 0; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: 0; } diff --git a/src/routes/NavigationHeader.scss b/src/routes/NavigationHeader.scss index caf9153..f8b0746 100644 --- a/src/routes/NavigationHeader.scss +++ b/src/routes/NavigationHeader.scss @@ -1,48 +1,47 @@ .splash-navigation-header { - position: relative; - height: 128px; - width: 100%; - padding-bottom: 120px; - - .navigation-header-items { - gap: 48px; - align-items: center; position: relative; - padding-top: 28px; - padding-right: 96px; - } + height: 128px; + width: 100%; + padding-bottom: 120px; - .navigation-header-link { - color: var(--cpalettelight); - font-family: var(--navigation-header-font-family); - text-align: left; - font-size: var(--navigation-header-font-size); - font-weight: var(--navigation-header-font-weight); - text-decoration: underline; - position: relative; - display: flex; - align-items: center; - justify-content: flex-start; - } + .navigation-header-items { + gap: 48px; + align-items: center; + position: relative; + padding-top: 28px; + padding-right: 96px; + } - .navigation-header-button { - background: var(--cpalettelight); - border-radius: 8px; - padding: 14px 24px 14px 24px; - display: flex; - flex-direction: row; - gap: 8px; - align-items: center; - justify-content: center; - flex-shrink: 0; - position: relative; - box-shadow: var(--button-shadow-box-shadow, - 0px 1px 2px 0px rgba(0, 0, 0, 0.05)); - } + .navigation-header-link { + color: var(--cpalettelight); + font-family: var(--navigation-header-font-family); + text-align: left; + font-size: var(--navigation-header-font-size); + font-weight: var(--navigation-header-font-weight); + text-decoration: underline; + position: relative; + display: flex; + align-items: center; + justify-content: flex-start; + } - .navigation-header-button-text { - @extend .navigation-header-link; - color: var(--background); - text-decoration: none; - } + .navigation-header-button { + background: var(--cpalettelight); + border-radius: 8px; + padding: 14px 24px 14px 24px; + display: flex; + flex-direction: row; + gap: 8px; + align-items: center; + justify-content: center; + flex-shrink: 0; + position: relative; + box-shadow: var(--button-shadow-box-shadow, 0px 1px 2px 0px rgba(0, 0, 0, 0.05)); + } + + .navigation-header-button-text { + @extend .navigation-header-link; + color: var(--background); + text-decoration: none; + } } diff --git a/src/routes/Splash.scss b/src/routes/Splash.scss index ec40892..c417898 100644 --- a/src/routes/Splash.scss +++ b/src/routes/Splash.scss @@ -1,80 +1,79 @@ .splash { - position: relative; - max-width: 95%; - bottom: 0; - padding-top: 128px; - padding-bottom: 128px; - padding-right: 32px; - z-index: 3; + position: relative; + max-width: 95%; + bottom: 0; + padding-top: 128px; + padding-bottom: 128px; + padding-right: 32px; + z-index: 3; } .splash-copy { - display: flex; - flex-direction: column; - align-items: flex-start; - max-width: 920px; - position: relative; - left: 5%; + display: flex; + flex-direction: column; + align-items: flex-start; + max-width: 920px; + position: relative; + left: 5%; } .splash-title { - color: var(--cpalettecomplimentary); - max-width: 100%; - text-align: left; - font-family: var(--splash-title-font-family); - font-size: var(--splash-title-font-size-large); - line-height: 125%; - font-weight: var(--splash-title-font-weight); - position: relative; - padding-bottom: 16px; + color: var(--cpalettecomplimentary); + max-width: 100%; + text-align: left; + font-family: var(--splash-title-font-family); + font-size: var(--splash-title-font-size-large); + line-height: 125%; + font-weight: var(--splash-title-font-weight); + position: relative; + padding-bottom: 16px; } .splash-body { - color: var(--cpalettecomplimentary); - max-width: 100%; - word-wrap: break-word; - word-break: break-word; - overflow-wrap: break-word; - hyphens: auto; - text-align: left; - font-family: var(--splash-body-font-family); - font-size: var(--splash-body-font-size); - font-weight: var(--splash-body-font-weight); - padding-bottom: 32px; - position: relative; + color: var(--cpalettecomplimentary); + max-width: 100%; + word-wrap: break-word; + word-break: break-word; + overflow-wrap: break-word; + hyphens: auto; + text-align: left; + font-family: var(--splash-body-font-family); + font-size: var(--splash-body-font-size); + font-weight: var(--splash-body-font-weight); + padding-bottom: 32px; + position: relative; } .splash-button { - background: var(--background); - outline-style: solid; - outline-width: 2px; - outline-color: var(--cpalettemedium); - border-radius: 8px; - padding: 18px 32px 18px 32px; - position: relative; + background: var(--background); + outline-style: solid; + outline-width: 2px; + outline-color: var(--cpalettemedium); + border-radius: 8px; + padding: 18px 32px 18px 32px; + position: relative; } .splash-get-involved { - color: var(--cpalettelight); - font-family: "Assistant"; - font-size: 32px; - font-weight: 700; - position: relative; + color: var(--cpalettelight); + font-family: "Assistant"; + font-size: 32px; + font-weight: 700; + position: relative; } @media (max-width: 720px) { - .splash { - padding-top: 120px; - } + .splash { + padding-top: 120px; + } - .splash-title { - font-size: var(--splash-title-font-size-small); - } + .splash-title { + font-size: var(--splash-title-font-size-small); + } } - @media (max-width: 380px) { - .splash-title { - font-size: var(--splash-title-font-size-tiny); - } + .splash-title { + font-size: var(--splash-title-font-size-tiny); + } } diff --git a/src/routes/about/AboutPage.scss b/src/routes/about/AboutPage.scss index 5961807..cbeeae3 100644 --- a/src/routes/about/AboutPage.scss +++ b/src/routes/about/AboutPage.scss @@ -1,17 +1,17 @@ .about-page, .about-page * { - box-sizing: border-box; + box-sizing: border-box; } .about-page { - background: var(--cpalettecomplimentary); - width: 100vw; - min-width: 250px; - position: absolute; - display: flex; - flex-direction: column; + background: var(--cpalettecomplimentary); + width: 100vw; + min-width: 250px; + position: absolute; + display: flex; + flex-direction: column; } .copy { - padding: 5% 5% 5% 5%; + padding: 5% 5% 5% 5%; } diff --git a/src/routes/contact/ContactPage.scss b/src/routes/contact/ContactPage.scss index 62b8c83..040077d 100644 --- a/src/routes/contact/ContactPage.scss +++ b/src/routes/contact/ContactPage.scss @@ -1,83 +1,83 @@ .contact-page, .contact-page * { - box-sizing: border-box; + box-sizing: border-box; } .contact-page { - background: var(--cpalettecomplimentary); - width: 100vw; - min-width: 250px; - position: absolute; - display: flex; - flex-direction: column; + background: var(--cpalettecomplimentary); + width: 100vw; + min-width: 250px; + position: absolute; + display: flex; + flex-direction: column; } .contact-content { - display: flex; - flex-direction: row; - width: 100%; - padding: 5% 5% 5% 5%; + display: flex; + flex-direction: row; + width: 100%; + padding: 5% 5% 5% 5%; } .contact-form-column { - display: flex; - flex-direction: column; - width: 50%; + display: flex; + flex-direction: column; + width: 50%; } .contact-form { - position: relative; - padding-top: 32px; + position: relative; + padding-top: 32px; } .contact-image-column { - position: relative; - width: 50%; - top: 0; - bottom: 0; - padding: 32px 0 32px 48px; + position: relative; + width: 50%; + top: 0; + bottom: 0; + padding: 32px 0 32px 48px; } .contact-image-pane { - position: sticky; - border-radius: var(--contact-corner-round); - width: 100%; - top: 64px; - max-width: var(--contact-img-size); - justify-items: center; + position: sticky; + border-radius: var(--contact-corner-round); + width: 100%; + top: 64px; + max-width: var(--contact-img-size); + justify-items: center; } .contact-image { - border-radius: var(--contact-corner-round); - width: 100%; - max-width: var(--contact-img-size); - max-height: var(--contact-img-size); + border-radius: var(--contact-corner-round); + width: 100%; + max-width: var(--contact-img-size); + max-height: var(--contact-img-size); } .contact-image-subtitle { - font: "Assistant"; - font-size: 24px; - color: #d9d9d9; - text-align: center; + font: "Assistant"; + font-size: 24px; + color: #d9d9d9; + text-align: center; } @media (orientation: landscape) and (min-width: 1200px) { - .contact-form-column { - width: 67%; - } + .contact-form-column { + width: 67%; + } } @media (orientation: portrait) and (max-width: 1080px) { - .contact-content { - flex-direction: column-reverse; - } + .contact-content { + flex-direction: column-reverse; + } - .contact-form-column { - width: 100%; - } + .contact-form-column { + width: 100%; + } - .contact-image-column { - width: 100%; - justify-content: center; - } + .contact-image-column { + width: 100%; + justify-content: center; + } } diff --git a/src/routes/health/+server.js b/src/routes/health/+server.js index 74759c1..e6b9b2e 100644 --- a/src/routes/health/+server.js +++ b/src/routes/health/+server.js @@ -1,3 +1,3 @@ export function GET() { - return new Response('OK', { status: 200 }); + return new Response("OK", { status: 200 }); } diff --git a/svelte.config.js b/svelte.config.js index 0248230..1421d2a 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,5 +1,5 @@ import preprocess from "svelte-preprocess"; -import adapter from '@sveltejs/adapter-node'; +import adapter from "@sveltejs/adapter-node"; /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -8,28 +8,28 @@ const config = { }), kit: { paths: { - base: '', + base: "", }, adapter: adapter({ - out: 'build', + out: "build", precompress: true, // Pre-compresses files - polyfill: true + polyfill: true, }), csrf: { checkOrigin: false }, prerender: { - entries: ['*'], - handleMissingId: 'warn' + entries: ["*"], + handleMissingId: "warn", }, csp: { - mode: 'auto', + mode: "auto", directives: { - 'script-src': ['self'] - } + "script-src": ["self"], + }, }, version: { - name: Date.now().toString() - } - } + name: Date.now().toString(), + }, + }, }; export default config; diff --git a/tailwind.config.js b/tailwind.config.js index de6a268..1515084 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,11 +1,11 @@ -import forms from '@tailwindcss/forms'; +import forms from "@tailwindcss/forms"; /** @type {import('tailwindcss').Config} */ export default { - content: ['./src/**/*.{html,js,svelte,ts}'], + content: ["./src/**/*.{html,js,svelte,ts}"], theme: { - extend: {} + extend: {}, }, plugins: [forms], diff --git a/vite.config.js b/vite.config.js index b55c11b..e1613cc 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,36 +1,36 @@ -import { defineConfig } from 'vite'; -import { sveltekit } from '@sveltejs/kit/vite' -import viteCompression from 'vite-plugin-compression' +import { defineConfig } from "vite"; +import { sveltekit } from "@sveltejs/kit/vite"; +import viteCompression from "vite-plugin-compression"; export default defineConfig({ plugins: [ sveltekit(), viteCompression({ - algorithm: 'brotli', + algorithm: "brotli", threshold: 1024, compressionOptions: { level: 11 }, exclude: [/\.(br|gz)$/, /\.(jpe?g|png|gif|webp|zip)$/i], - filter: /\.(js|css|html|svg)$/i + filter: /\.(js|css|html|svg)$/i, }), viteCompression({ - algorithm: 'gzip', + algorithm: "gzip", threshold: 1024, compressionOptions: { level: 9 }, exclude: [/\.(br|gz)$/, /\.(jpe?g|png|gif|webp|zip)$/i], - filter: /\.(js|css|html|svg)$/i - }) + filter: /\.(js|css|html|svg)$/i, + }), ], build: { - minify: 'terser', + minify: "terser", terserOptions: { compress: { drop_console: true, - drop_debugger: true - } + drop_debugger: true, + }, }, reportCompressedSize: true, cssMinify: true, - cssCodeSplit: true + cssCodeSplit: true, }, server: { host: "0.0.0.0",