-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
136 lines (119 loc) · 5.8 KB
/
index.html
File metadata and controls
136 lines (119 loc) · 5.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html lang="en">
<head>
<title>Ed's Portfolio</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<style>
.hero {
padding-bottom: 1.5rem;
}
.cycle-wrap {
min-height: 2rem;
}
.blinking-cursor {
animation: blink 1s step-end infinite;
}
@keyframes blink {
50% {
opacity: 0;
}
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary border-bottom sticky-top">
<div class="container">
<a class="navbar-brand fw-semibold" href="#">Ed's Portfolio</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="mainNavbar">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="https://github.com/" target="_blank" rel="noopener noreferrer">
<i class="bi bi-github me-1"></i>GitHub
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://www.linkedin.com/" target="_blank" rel="noopener noreferrer">
<i class="bi bi-linkedin me-1"></i>LinkedIn
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="mailto:your-email@example.com">
<i class="bi bi-envelope-fill me-1"></i>Email
</a>
</li>
</ul>
</div>
</div>
</nav>
<main class="hero pt-4">
<div class="container">
<div class="row">
<div class="col-12 col-lg-8">
<h1 class="display-2 fw-bold mb-3">Hi, I'm Ed</h1>
<p class="lead mb-1 cycle-wrap">
<span class="CycleText fw-normal"></span>
<span class="blinking-cursor">|</span>
</p>
<p class="text-body-secondary fs-5 mb-0">
I build stuff, something something LinkedIn, something please hire me.
</p>
</div>
</div>
</div>
</main>
<section id="projects" class="py-5 border-top">
<div class="container">
<h2 class="display-5 fw-bold mb-3">Projects</h2>
<p class="text-body-secondary mb-4">A selection of things I've built.</p>
<div class="row g-4">
<div class="col-12 col-md-6 col-lg-5">
<article class="card h-100 shadow-sm">
<img src="/PortfolioExample/wildfire.jpg" class="card-img-top" alt="Forest landscape representing wildfire simulation project">
<div class="card-body d-flex flex-column">
<h3 class="h4 card-title">Wildfire Modeller and Predictor</h3>
<p class="card-text text-body-secondary">
Worked in a team to produce a stochastic percolation-based simulation of wildfires in California.
</p>
<a href="/PortfolioExample/wildfire-modeller.html" class="btn btn-primary mt-auto">View Project</a>
</div>
</article>
</div>
</div>
</div>
</section>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(document).ready(function () {
var titleText = $(".CycleText");
var titles = ["SWE", "UWCS Academic", "3rd Year CS", "ICHack Winner", "Ex-Arm Intern"];
var cyclesBeforeReset = 10;
var titleI = 0;
var letterI = 1;
var cooldownI = cyclesBeforeReset;
setInterval(function () {
if (cooldownI < cyclesBeforeReset) {
cooldownI += 1;
return;
}
titleText.html(titles[titleI].substring(0, letterI));
letterI += 1;
if (titles[titleI][letterI] == " ") {
letterI += 1;
}
if (letterI > titles[titleI].length) {
titleI = (titleI + 1) % titles.length;
letterI = 1;
cooldownI = 0;
}
}, 100);
});
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
</body>
</html>