diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d965fe8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM nginx + +COPY nginx/matthewtran.com/html /usr/share/nginx/html diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5aca3de --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +# temporary until I can figure out the rest + +all: + docker build -t matthewtran . + +run: + docker run --name matt -d --rm -p 80:80 matthewtran + +kill: + docker kill matt diff --git a/README.md b/README.md index 05d1967..b16a5b6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,8 @@ # matthewtran.com -Stuff that's deployed on matthewtran.com + +Stuff that's deployed on matthewtran.com. + +``` +make +make run +``` diff --git a/nginx/matthewtran.com/html/bg.js b/nginx/matthewtran.com/html/bg.js new file mode 100644 index 0000000..13bd630 --- /dev/null +++ b/nginx/matthewtran.com/html/bg.js @@ -0,0 +1,33 @@ +function randint(min, max) { + return Math.random(); +} + +NUM_PICS = 14; + +if (typeof(Storage) !== "undefined") { + if (localStorage.bgs) { + console.log("Welcome back!"); + var bgs = JSON.parse(localStorage.bgs); + } else { + console.log("First time here?"); + var bgs = []; + for (var k = 0; k < NUM_PICS; k++) { + bgs.push(k); + } + } + + var j = bgs[Math.floor(Math.random() * bgs.length)]; + bgs.splice(bgs.indexOf(j), 1); + + localStorage.bgs = JSON.stringify(bgs); + if (bgs.length == 0) { + localStorage.removeItem("bgs"); + } + + console.log("Pics left: " + bgs); +} else { + console.log("No localStorage support!"); + var j = Math.floor(Math.random() * NUM_PICS); +} + +$("#bg").css({"background-image": `linear-gradient(rgba(0,0,0,0.56), rgba(0,0,0,0.56)), url('imgs/bg${j}.jpg')`}); diff --git a/nginx/matthewtran.com/html/fade.js b/nginx/matthewtran.com/html/fade.js new file mode 100644 index 0000000..a8b4e1f --- /dev/null +++ b/nginx/matthewtran.com/html/fade.js @@ -0,0 +1,10 @@ +$(window).on("load", function() { + IN_DELAY = 250; + + $('body').animate({"opacity": "1"}, IN_DELAY); + + $(".main").delay(IN_DELAY).animate({"opacity": "1"}, 750); + //for (var i = 7; i >= 1; i--) { + // $(`.main> :nth-child(${i})`).delay(IN_DELAY + 125*i).animate({"opacity": "1"}, 500); + //} +}); diff --git a/nginx/matthewtran.com/html/imgs/bg0.jpg b/nginx/matthewtran.com/html/imgs/bg0.jpg new file mode 100644 index 0000000..3fbe9e6 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg0.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg1.jpg b/nginx/matthewtran.com/html/imgs/bg1.jpg new file mode 100644 index 0000000..c2daa1c Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg1.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg10.jpg b/nginx/matthewtran.com/html/imgs/bg10.jpg new file mode 100644 index 0000000..e8412c4 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg10.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg11.jpg b/nginx/matthewtran.com/html/imgs/bg11.jpg new file mode 100644 index 0000000..e5cadb2 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg11.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg12.jpg b/nginx/matthewtran.com/html/imgs/bg12.jpg new file mode 100644 index 0000000..de8c5f4 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg12.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg13.jpg b/nginx/matthewtran.com/html/imgs/bg13.jpg new file mode 100644 index 0000000..5511345 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg13.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg2.jpg b/nginx/matthewtran.com/html/imgs/bg2.jpg new file mode 100644 index 0000000..3fd3f56 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg2.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg3.jpg b/nginx/matthewtran.com/html/imgs/bg3.jpg new file mode 100644 index 0000000..e350672 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg3.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg4.jpg b/nginx/matthewtran.com/html/imgs/bg4.jpg new file mode 100644 index 0000000..aee7c62 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg4.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg5.jpg b/nginx/matthewtran.com/html/imgs/bg5.jpg new file mode 100644 index 0000000..9c28976 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg5.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg6.jpg b/nginx/matthewtran.com/html/imgs/bg6.jpg new file mode 100644 index 0000000..bf82a06 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg6.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg7.jpg b/nginx/matthewtran.com/html/imgs/bg7.jpg new file mode 100644 index 0000000..0644cc1 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg7.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg8.jpg b/nginx/matthewtran.com/html/imgs/bg8.jpg new file mode 100644 index 0000000..31b253f Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg8.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/bg9.jpg b/nginx/matthewtran.com/html/imgs/bg9.jpg new file mode 100644 index 0000000..5c85703 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/bg9.jpg differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/android-chrome-192x192.png b/nginx/matthewtran.com/html/imgs/favicons/android-chrome-192x192.png new file mode 100644 index 0000000..834098c Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/android-chrome-192x192.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/android-chrome-512x512.png b/nginx/matthewtran.com/html/imgs/favicons/android-chrome-512x512.png new file mode 100644 index 0000000..2900b5c Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/android-chrome-512x512.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/apple-touch-icon.png b/nginx/matthewtran.com/html/imgs/favicons/apple-touch-icon.png new file mode 100644 index 0000000..59ccbc0 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/apple-touch-icon.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/browserconfig.xml b/nginx/matthewtran.com/html/imgs/favicons/browserconfig.xml new file mode 100644 index 0000000..925b512 --- /dev/null +++ b/nginx/matthewtran.com/html/imgs/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #2b5797 + + + diff --git a/nginx/matthewtran.com/html/imgs/favicons/favicon-16x16.png b/nginx/matthewtran.com/html/imgs/favicons/favicon-16x16.png new file mode 100644 index 0000000..d1f3aa4 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/favicon-16x16.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/favicon-32x32.png b/nginx/matthewtran.com/html/imgs/favicons/favicon-32x32.png new file mode 100644 index 0000000..ff59eff Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/favicon-32x32.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/favicon.ico b/nginx/matthewtran.com/html/imgs/favicons/favicon.ico new file mode 100644 index 0000000..9976ddd Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/favicon.ico differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/mstile-150x150.png b/nginx/matthewtran.com/html/imgs/favicons/mstile-150x150.png new file mode 100644 index 0000000..668f868 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/favicons/mstile-150x150.png differ diff --git a/nginx/matthewtran.com/html/imgs/favicons/safari-pinned-tab.svg b/nginx/matthewtran.com/html/imgs/favicons/safari-pinned-tab.svg new file mode 100644 index 0000000..c01085c --- /dev/null +++ b/nginx/matthewtran.com/html/imgs/favicons/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx/matthewtran.com/html/imgs/favicons/site.webmanifest b/nginx/matthewtran.com/html/imgs/favicons/site.webmanifest new file mode 100644 index 0000000..1edcfef --- /dev/null +++ b/nginx/matthewtran.com/html/imgs/favicons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/nginx/matthewtran.com/html/imgs/social.jpg b/nginx/matthewtran.com/html/imgs/social.jpg new file mode 100644 index 0000000..ba3cd77 Binary files /dev/null and b/nginx/matthewtran.com/html/imgs/social.jpg differ diff --git a/nginx/matthewtran.com/html/index.html b/nginx/matthewtran.com/html/index.html new file mode 100644 index 0000000..a2059a3 --- /dev/null +++ b/nginx/matthewtran.com/html/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Matthew Tran's Site! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

Hi, I'm

+

Matthew Tran!

+

EECS, UC Berkeley 2022

+
+

I'm a human being passionate about the intersection of electrical engineering and computer science. I've had a lifelong interest in making things that interact with the world, which so far has led me to focus on embedded systems and digital design. In my free time, I enjoy challenging myself to tackle yet another project on my seemingly endless list of ideas.

+ + +
+ + + + diff --git a/nginx/matthewtran.com/html/sitemap.xml b/nginx/matthewtran.com/html/sitemap.xml new file mode 100644 index 0000000..9c85359 --- /dev/null +++ b/nginx/matthewtran.com/html/sitemap.xml @@ -0,0 +1,22 @@ + + + + + + + https://matthewtran.com/ + 2019-12-16T18:42:28+00:00 + 1.00 + + + https://matthewtran.com/resume.pdf + 2019-12-16T18:42:28+00:00 + 0.80 + + + + diff --git a/nginx/matthewtran.com/html/style.css b/nginx/matthewtran.com/html/style.css new file mode 100644 index 0000000..a4e3abc --- /dev/null +++ b/nginx/matthewtran.com/html/style.css @@ -0,0 +1,249 @@ +*, *:before, *:after { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0; +} + +body { + opacity: 0; + background-color: #000000; +} + +#bg { + content: ''; + position: fixed; + width: 100vw; + height: 100vh; + background-repeat: no-repeat; + background-size: cover; + background-position: center; + background-color: #000000; +} + +body, #bg { + z-index: 0; + min-width: 240px; + width: 100vw; + min-height: 100vh; + + overflow-x: hidden; + + -ms-overflow-style: none; + scrollbar-width: none; +} + +#bg::-webkit-scrollbar { + display: none; +} + +.main { + z-index: 1; + color: #FFFFFF; + + display: flex; + position: relative; + flex-direction: column; + justify-content: center; + text-align: left; + + max-width: 100%; + min-height: 100vh; + padding: 5rem 5rem; + width: 45rem; + + opacity: 0; +} + +.main>* { + opacity: 1; +} + +.tagline { + font-family: "Montserrat", Times; + margin-top: 0; + margin-bottom: 0.75rem; + letter-spacing: 0.3rem; + width: calc(100% + 0.5rem); + font-size: 3.5rem; + line-height: 1.5; + font-weight: 200; +} + +.tl1 { + margin-bottom: -0.2rem; +} + +.major { + font-family: "Montserrat", Times; + margin-top: 0; + margin-bottom: 2rem; + font-size: 1.25rem; + line-height: 1.375; + font-weight: 300; +} + +.divider { + width: 19%; + margin-top: 0; + margin-left: 0; + margin-bottom: 2rem; + border: solid 1px; +} + +.about { + font-family: "Source Code Pro", Times; + margin-top: 0; + margin-bottom: 1.5rem; + font-size: 1rem; + line-height: 1.625; +} + +.buttons { + font-family: "Source Code Pro", Times; + margin-top: 0; + margin-bottom: 1.5rem; + width: calc(100% + 0.75rem); + margin-left: -0.375rem; + margin-right: -0.375rem; + list-style: none; +} + +.buttons li { + display: inline-block; + max-width: calc(100% - 0.75rem); + margin-left: 0.375rem; +} + +.buttons li a { + border: solid 1px; + display: flex; + padding: 0 1.2rem; + border-radius: 0.5rem; + height: 2.5rem; + line-height: 2.5rem; + vertical-align: middle; + font-size: 1rem; + align-items: center; + justify-content: center; +} + +.icons { + margin-top: 0; + margin-bottom: 0; + width: calc(100% + 1rem); + margin-left: -0.5rem; + list-style: none; +} + +.icons li { + display: inline-block; + margin: 0.75rem; + vertical-align: middle; +} + +.icons li a { + border-radius: 100%; + width: 1.6rem; + height: 1.6rem; + display: flex; + align-items: center; + justify-content: center; +} + +a:link, a:visited { + color: #FFFFFF; + border-color: #FFFFFF; + text-decoration: none; + transition: 0.32s; +} + +a:hover, a:active { + color: #5AD1E5 !important; + border-color: #5AD1E5 !important; + text-decoration: none; + transition: 0.32s; +} + +html { + font-size: 18pt; +} + +@media (max-width: 1680px) { + html { + font-size: 13pt; + } +} + +@media (max-width: 980px) { + html { + font-size: 11pt; + } +} + +@media (max-width: 736px) { + .main { + padding: 0.375rem 2rem; + } + + .tagline { + margin-bottom: 0.75rem; + letter-spacing: 0.4375rem; + width: calc(100% + 0.4375rem); + font-size: 2.125rem; + line-height: 1.5; + } +} + +@media (max-width: 480px) { + .main { + text-align: center; + padding: 0.375rem 2rem; + align-items: center; + align-content: center; + } + + .tagline { + margin-left: 0.8rem; + margin-bottom: 0.65625rem; + } + + .major { + margin-bottom: 1.75rem; + } + + .divider { + margin-bottom: 1.75rem; + } + + .about { + text-align: justify; + } + + .buttons li { + display: block; + padding: 0.4rem 0; + } +} + +@media (max-width: 360px) { + .main { + padding: 0.28125rem 1.5rem; + } + + .tagline { + margin-bottom: 0.5625rem; + } + + .major { + margin-bottom: 1.5rem; + } + + .divider { + margin-bottom: 1.5rem; + } + + .buttons li { + padding: 0.27rem 0; + } +}