Add basic footer
parent
e5fc8994c1
commit
9a5e796bb4
|
@ -26,6 +26,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/parser": "^5.59.8",
|
||||
"astro-icon": "^0.8.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"cssnano": "^6.0.1",
|
||||
"eslint": "^8.42.0",
|
||||
|
|
138
pnpm-lock.yaml
138
pnpm-lock.yaml
|
@ -49,6 +49,9 @@ devDependencies:
|
|||
'@typescript-eslint/parser':
|
||||
specifier: ^5.59.8
|
||||
version: 5.59.8(eslint@8.42.0)(typescript@5.1.3)
|
||||
astro-icon:
|
||||
specifier: ^0.8.0
|
||||
version: 0.8.0
|
||||
autoprefixer:
|
||||
specifier: ^10.4.14
|
||||
version: 10.4.14(postcss@8.4.24)
|
||||
|
@ -1599,6 +1602,14 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/astro-icon@0.8.0:
|
||||
resolution: {integrity: sha512-sCzhZcl46BIyLJVg89hq5J4uQABn2psmGvK4cUaxib+M/kBI3TrPy1w3g2O5h/WcrTHLVN9LyxjgkD4lEJJFpw==}
|
||||
dependencies:
|
||||
node-fetch: 3.3.1
|
||||
resolve-pkg: 2.0.0
|
||||
svgo: 2.8.0
|
||||
dev: true
|
||||
|
||||
/astro-imagetools@0.8.1(astro@2.5.7):
|
||||
resolution: {integrity: sha512-2E737IBqzuwkuK4FMYB9UmE1xmQWghn1HOHNMERrzZmGsKpGSAdQGo7nSnYwpy8amF+Do8sUx9wtCe2+6T4k+A==}
|
||||
engines: {node: ^14.15.0 || >=16.0.0}
|
||||
|
@ -2099,6 +2110,16 @@ packages:
|
|||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
/css-select@4.3.0:
|
||||
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
css-what: 6.1.0
|
||||
domhandler: 4.3.1
|
||||
domutils: 2.8.0
|
||||
nth-check: 2.1.1
|
||||
dev: true
|
||||
|
||||
/css-select@5.1.0:
|
||||
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
|
||||
dependencies:
|
||||
|
@ -2109,6 +2130,14 @@ packages:
|
|||
nth-check: 2.1.1
|
||||
dev: true
|
||||
|
||||
/css-tree@1.1.3:
|
||||
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dependencies:
|
||||
mdn-data: 2.0.14
|
||||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/css-tree@2.2.1:
|
||||
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
|
||||
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
|
||||
|
@ -2197,6 +2226,13 @@ packages:
|
|||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
/csso@4.2.0:
|
||||
resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dependencies:
|
||||
css-tree: 1.1.3
|
||||
dev: true
|
||||
|
||||
/csso@5.0.5:
|
||||
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
|
||||
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
|
||||
|
@ -2208,6 +2244,11 @@ packages:
|
|||
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
|
||||
dev: true
|
||||
|
||||
/data-uri-to-buffer@4.0.1:
|
||||
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
|
||||
engines: {node: '>= 12'}
|
||||
dev: true
|
||||
|
||||
/debug@4.3.4:
|
||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||
engines: {node: '>=6.0'}
|
||||
|
@ -2368,6 +2409,14 @@ packages:
|
|||
esutils: 2.0.3
|
||||
dev: true
|
||||
|
||||
/dom-serializer@1.4.1:
|
||||
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 4.3.1
|
||||
entities: 2.2.0
|
||||
dev: true
|
||||
|
||||
/dom-serializer@2.0.0:
|
||||
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
|
||||
dependencies:
|
||||
|
@ -2384,6 +2433,13 @@ packages:
|
|||
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
|
||||
dev: true
|
||||
|
||||
/domhandler@4.3.1:
|
||||
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
|
||||
engines: {node: '>= 4'}
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
dev: true
|
||||
|
||||
/domhandler@5.0.3:
|
||||
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
|
||||
engines: {node: '>= 4'}
|
||||
|
@ -2391,6 +2447,14 @@ packages:
|
|||
domelementtype: 2.3.0
|
||||
dev: true
|
||||
|
||||
/domutils@2.8.0:
|
||||
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
|
||||
dependencies:
|
||||
dom-serializer: 1.4.1
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 4.3.1
|
||||
dev: true
|
||||
|
||||
/domutils@3.1.0:
|
||||
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
|
||||
dependencies:
|
||||
|
@ -2431,6 +2495,10 @@ packages:
|
|||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/entities@2.2.0:
|
||||
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
|
||||
dev: true
|
||||
|
||||
/entities@4.5.0:
|
||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
@ -2873,6 +2941,14 @@ packages:
|
|||
format: 0.2.2
|
||||
dev: false
|
||||
|
||||
/fetch-blob@3.2.0:
|
||||
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
||||
engines: {node: ^12.20 || >= 14.13}
|
||||
dependencies:
|
||||
node-domexception: 1.0.0
|
||||
web-streams-polyfill: 3.2.1
|
||||
dev: true
|
||||
|
||||
/file-entry-cache@6.0.1:
|
||||
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
|
@ -2966,6 +3042,13 @@ packages:
|
|||
engines: {node: '>=0.4.x'}
|
||||
dev: false
|
||||
|
||||
/formdata-polyfill@4.0.10:
|
||||
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
dependencies:
|
||||
fetch-blob: 3.2.0
|
||||
dev: true
|
||||
|
||||
/fraction.js@4.2.0:
|
||||
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
|
||||
|
||||
|
@ -4052,6 +4135,10 @@ packages:
|
|||
'@types/mdast': 3.0.11
|
||||
dev: false
|
||||
|
||||
/mdn-data@2.0.14:
|
||||
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
|
||||
dev: true
|
||||
|
||||
/mdn-data@2.0.28:
|
||||
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
|
||||
dev: true
|
||||
|
@ -4523,12 +4610,26 @@ packages:
|
|||
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
|
||||
dev: false
|
||||
|
||||
/node-domexception@1.0.0:
|
||||
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
||||
engines: {node: '>=10.5.0'}
|
||||
dev: true
|
||||
|
||||
/node-emoji@1.11.0:
|
||||
resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==}
|
||||
dependencies:
|
||||
lodash: 4.17.21
|
||||
dev: false
|
||||
|
||||
/node-fetch@3.3.1:
|
||||
resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dependencies:
|
||||
data-uri-to-buffer: 4.0.1
|
||||
fetch-blob: 3.2.0
|
||||
formdata-polyfill: 4.0.10
|
||||
dev: true
|
||||
|
||||
/node-releases@2.0.12:
|
||||
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
|
||||
|
||||
|
@ -5592,6 +5693,18 @@ packages:
|
|||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/resolve-from@5.0.0:
|
||||
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/resolve-pkg@2.0.0:
|
||||
resolution: {integrity: sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
resolve-from: 5.0.0
|
||||
dev: true
|
||||
|
||||
/resolve@1.22.2:
|
||||
resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
|
||||
hasBin: true
|
||||
|
@ -5838,7 +5951,6 @@ packages:
|
|||
/source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/source-map@0.7.4:
|
||||
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
|
||||
|
@ -5853,6 +5965,11 @@ packages:
|
|||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||
dev: false
|
||||
|
||||
/stable@0.1.8:
|
||||
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
|
||||
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
|
||||
dev: true
|
||||
|
||||
/stdin-discarder@0.1.0:
|
||||
resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
@ -6047,6 +6164,20 @@ packages:
|
|||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/svgo@2.8.0:
|
||||
resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@trysound/sax': 0.2.0
|
||||
commander: 7.2.0
|
||||
css-select: 4.3.0
|
||||
css-tree: 1.1.3
|
||||
csso: 4.2.0
|
||||
picocolors: 1.0.0
|
||||
stable: 0.1.8
|
||||
dev: true
|
||||
|
||||
/svgo@3.0.2:
|
||||
resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
@ -6569,6 +6700,11 @@ packages:
|
|||
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
|
||||
dev: false
|
||||
|
||||
/web-streams-polyfill@3.2.1:
|
||||
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
|
||||
engines: {node: '>= 8'}
|
||||
dev: true
|
||||
|
||||
/which-boxed-primitive@1.0.2:
|
||||
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
|
||||
dependencies:
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
---
|
||||
import { Icon } from 'astro-icon'
|
||||
export interface Props {
|
||||
link: string
|
||||
icon?: string
|
||||
external?: boolean
|
||||
}
|
||||
const { link, external } = Astro.props
|
||||
const { link, icon, external } = Astro.props
|
||||
|
||||
const buttonPaddingX = 'px-[.75rem]'
|
||||
const buttonPaddingY = 'py-[.5rem]'
|
||||
|
@ -15,5 +17,6 @@ const buttonPaddingY = 'py-[.5rem]'
|
|||
rel={external ? 'noopener noreferrer' : ''}
|
||||
class={`rounded hover:bg-background-hover hover:text-font-hover focus-visible:bg-background-hover focus-visible:text-font-hover focus-visible:outline-none ${buttonPaddingX} ${buttonPaddingY}`}
|
||||
>
|
||||
{icon && <Icon name={icon} />}
|
||||
<slot />
|
||||
</a>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
const paddingX = 'px-[.75rem]'
|
||||
const paddingY = 'py-[.5rem]'
|
||||
---
|
||||
|
||||
<footer class={`flex ${paddingX} ${paddingY}`}>
|
||||
<span class="mr-auto">Copyright Ethan Reece</span>
|
||||
<nav>
|
||||
<a>site credits</a>
|
||||
</nav>
|
||||
</footer>
|
|
@ -16,19 +16,24 @@ const links: NavItem[] = [
|
|||
]
|
||||
|
||||
const paddingX = 'px-[.75rem]'
|
||||
const paddingY = 'py-[.5rem]'
|
||||
const paddingY = 'py-[.25rem]'
|
||||
const spacing = 'space-x-[.25rem]'
|
||||
|
||||
const mainButtonPaddingX = 'px-[.75rem]'
|
||||
const mainButtonPaddingY = 'py-[.5rem]'
|
||||
---
|
||||
|
||||
<div class="fixed z-navbar w-full backdrop-blur-sm">
|
||||
<div
|
||||
class={`max-h-navbar-h bg-background-light ${paddingX} ${paddingY} opacity-80`}
|
||||
>
|
||||
<ul
|
||||
role="list"
|
||||
<nav
|
||||
class={`flex w-full items-center whitespace-nowrap font-normal ${spacing}`}
|
||||
>
|
||||
<a href="/" rel="prefetch" class="mr-auto text-[1.25rem] font-bold"
|
||||
<a
|
||||
href="/"
|
||||
rel="prefetch"
|
||||
class=`mr-auto text-[1.25rem] font-bold hover:underline focus-visible:underline focus-visible:outline-none ${mainButtonPaddingX} ${mainButtonPaddingY}`
|
||||
>{homeText}</a
|
||||
>
|
||||
{
|
||||
|
@ -38,6 +43,6 @@ const spacing = 'space-x-[.25rem]'
|
|||
</ButtonSecondary>
|
||||
))
|
||||
}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -15,7 +15,7 @@ const imageAlt = 'black and white portrait of myself'
|
|||
---
|
||||
|
||||
<section class={`w-full ${viewHeight} ${padding}`}>
|
||||
<div class="mx-auto flex h-full max-w-page-w items-center">
|
||||
<header class="mx-auto flex h-full max-w-page-w items-center">
|
||||
<h1 class={`font-medium ${textMainSize}`}>
|
||||
<i
|
||||
><b><u>{text[0]}</u></b><span class="text-font-light"
|
||||
|
@ -42,5 +42,5 @@ const imageAlt = 'black and white portrait of myself'
|
|||
placeholder="none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</section>
|
||||
|
|
|
@ -43,4 +43,4 @@ I also have other projects viewable on multiple git platforms, most of which cam
|
|||
from scratch.
|
||||
</Subsection>
|
||||
|
||||
Some other projects and activities I have worked on include Med Check [MetroHacks 2022], zzz [UTD SGDA 2023 Spring Jam], zzz [UTD SGDA 2022 Thanksgiving Jam], ZipVersionControl [FLL #1790, yrs 2017-2019], FIRST Tech Challenge roboics [2021-2022], and FIRST Lego League robotics [2013-2019, #1790].
|
||||
Some other projects and activities I have worked on include Med Check [MetroHacks 2022], zzz [UTD SGDA 2023 Spring Jam], zzz [UTD SGDA 2022 Thanksgiving Jam], ZipVersionControl [FLL #1790, yrs 2017-2019], FIRST Tech Challenge robotics [2021-2022], and FIRST Lego League robotics [2013-2019, #1790].
|
||||
|
|
|
@ -18,6 +18,7 @@ const socials: Social[] = [
|
|||
name: 'Email',
|
||||
profile: 'contact@ethanreece.com',
|
||||
url: 'mailto:contact@ethanreece.com',
|
||||
icon: 'heroicons:envelope-solid',
|
||||
extra: [
|
||||
{
|
||||
name: 'PGP key',
|
||||
|
@ -40,6 +41,11 @@ const socials: Social[] = [
|
|||
profile: 'sudoer777',
|
||||
url: 'https://devpost.com/sudoer777',
|
||||
},
|
||||
{
|
||||
name: 'GivePulse (UTD)',
|
||||
profile: '',
|
||||
url: '',
|
||||
},
|
||||
{
|
||||
name: 'LinkedIn',
|
||||
profile: '-ethanreece-',
|
||||
|
@ -52,7 +58,7 @@ const socials: Social[] = [
|
|||
{
|
||||
socials.map((s) => (
|
||||
<div class="flex">
|
||||
<ButtonSecondary link={s.url} external={true}>
|
||||
<ButtonSecondary link={s.url} external={true} icon={s.icon}>
|
||||
<b class="font-extrabold">{s.name}:</b>
|
||||
{s.profile}
|
||||
</ButtonSecondary>
|
||||
|
|
|
@ -13,10 +13,12 @@ const description = ''
|
|||
---
|
||||
|
||||
<Base title={title} description={description}>
|
||||
<Hero />
|
||||
<About />
|
||||
<Projects />
|
||||
<Experience />
|
||||
<Hobbies />
|
||||
<Contact />
|
||||
<article>
|
||||
<Hero />
|
||||
<About />
|
||||
<Projects />
|
||||
<Experience />
|
||||
<Hobbies />
|
||||
<Contact />
|
||||
</article>
|
||||
</Base>
|
||||
|
|
Reference in New Issue