2023-01-30 00:04:05 +00:00
< script lang = "ts" >
2023-09-28 09:02:11 +00:00
import { createTabs , melt } from '@melt-ui/svelte';
2023-02-28 23:42:00 +00:00
import GitHub from '@iconify-icons/simple-icons/github';
import Portfolio from '$lib/components/Portfolio.svelte';
2023-09-27 04:40:49 +00:00
import personalSite from "$lib/assets/images/Bradley_Shellnut_New_Site.png?as=run";
import weddingWebsite from "$lib/assets/images/Wedding_Website.png?as=run";
import oldSite from '$lib/assets/images/Old_Website_Bradley_Shellnut.png?as=run';
import shellnutArchitectWebsite from "$lib/assets/images/Mark_Shellnut_Architect.png?as=run";
2023-04-20 18:14:52 +00:00
import PersonalWebsiteSvelteKit from "$lib/content/portfolio/personal/personal-website-sveltekit.md";
2023-02-28 23:42:00 +00:00
import WeddingWebsite from '$lib/content/portfolio/personal/wedding-website.md';
2023-09-27 04:40:49 +00:00
import MarkShellnutArchitect from '$lib/content/portfolio/professional/mark-shellnut-architect.md?as=run';
2023-02-28 23:42:00 +00:00
import OldWebsite from '$lib/content/portfolio/personal/old-website.md';
import ExternalLink from '$lib/components/ExternalLink.svelte';
2023-07-13 05:53:25 +00:00
2023-09-28 09:02:11 +00:00
const {
elements: { root , list , content , trigger }
} = createTabs({
defaultValue: 'personal'
});
const triggers = [
{ id : 'personal' , title : 'Personal Sites' } ,
{ id : 'professional' , title : 'Professional Sites' }
];
2023-01-30 00:04:05 +00:00
< / script >
2023-01-31 07:10:17 +00:00
< h1 > Portfolio!< / h1 >
2023-09-28 09:02:11 +00:00
< div use:melt = { $root } class="root tab-group " >
< div use:melt = { $list } aria-label="tabs portfolios " class = "list tab-list" >
{ #each triggers as triggerItem }
< button use:melt = { $trigger ( triggerItem . id )} class="trigger" type = "button" >
< h2 > { triggerItem . title } </ h2 >
< / button >
{ /each }
2023-07-13 05:53:25 +00:00
< / div >
2023-09-28 09:02:11 +00:00
< div use:melt = { $content ( 'personal' )} class="content" >
2023-07-13 05:53:25 +00:00
< Portfolio name = "Personal Website"
style="max-height: 640px;"
src={ personalSite }
loading="eager"
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" / >
< / Portfolio >
< Portfolio name = "Wedding Website"
style="max-height: 640px;"
src={ weddingWebsite }
alt="Picture of NextJS Wedding Website">
< span slot = "portfolio-links" >
< p >
< ExternalLink ariaLabel = "View Wedding Website" href = "https://weddingsite-six.vercel.app/" showIcon > View Site< / ExternalLink >
< / p >
< p >
< ExternalLink ariaLabel = "View GitHub repository for the wedding site" href = "https://github.com/BradNut/weddingsite" icon = { GitHub } showIcon > GitHub repository</ ExternalLink >
< / p >
< / span >
< WeddingWebsite slot = "portfolio-details" / >
< / Portfolio >
< Portfolio name = "Old Personal Website"
style="max-height: 320px;"
src={ oldSite }
alt="Home Page of the old bradleyshellnut.com website">
< span slot = "portfolio-links" >
< p >
< ExternalLink ariaLabel = "Archive of bradleyshellnut.com" href = "https://web.archive.org/web/20201205233507/https://bradleyshellnut.com/about" showIcon > Link to an archive snapshot< / ExternalLink >
< / p >
< / span >
< OldWebsite slot = "portfolio-details" / >
< / Portfolio >
< / div >
2023-09-28 09:02:11 +00:00
< div use:melt = { $content ( 'professional' )} class="content" >
2023-07-13 05:53:25 +00:00
< Portfolio name = "Mark Shellnut Architect"
style="max-height: 640px;"
src={ shellnutArchitectWebsite }
alt="Picture of Mark Shellnut Architect's Website">
2023-08-10 05:52:14 +00:00
< span slot = "portfolio-links" >
< p >
< ExternalLink ariaLabel = "View markshellnutarchitect.com" href = "https://markshellnutarchitect.com" showIcon > Link to Mark Shellnut's Website< / ExternalLink >
< / p >
< / span >
2023-07-13 05:53:25 +00:00
< MarkShellnutArchitect slot = "portfolio-details" / >
< / Portfolio >
< / div >
< / div >
2023-01-31 07:10:17 +00:00
< style lang = "postcss" >
2023-07-13 05:53:25 +00:00
.root {
display: flex;
flex-direction: column;
/* overflow: hidden; */
/* border-radius: var(--border-radius); */
2023-09-28 09:02:11 +00:00
& [data-orientation="vertical"] {
2023-07-13 05:53:25 +00:00
flex-direction: row;
}
2023-04-20 22:18:23 +00:00
@media(min-width: 1000px) {
max-width: 50vw;
}
}
2023-07-13 05:53:25 +00:00
.list {
2023-02-28 23:42:00 +00:00
display: grid;
gap: 1rem;
grid-template-columns: auto auto;
place-content: start;
place-items: center;
margin-bottom: 1.5rem;
2023-07-13 05:53:25 +00:00
cursor: default;
user-select: none;
2023-02-28 23:42:00 +00:00
}
2023-09-28 09:02:11 +00:00
.trigger {
& [data-state='active'] {
h2 {
border-bottom: 2px solid var(--shellYellow);
}
2023-07-13 05:53:25 +00:00
}
2023-02-02 20:03:53 +00:00
2023-09-28 09:02:11 +00:00
& [data-state='inactive'] {
h2 {
border-bottom: 2px solid var(--white);
}
2023-01-31 07:10:17 +00:00
}
}
2023-07-13 05:53:25 +00:00
:global(img) {
border-radius: 3px;
2023-01-31 07:10:17 +00:00
}
< / style >