-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
200 lines (197 loc) · 13 KB
/
index.html
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>Max Shenfield's Home Page</title>
<link rel="canonical" href="https://mshenfield.dev" />
<link rel="icon" href="assets/favicon.png" sizes="32x32"/>
<link rel="apple-touch-icon" href="assets/favicon.png" sizes="32x32"/>
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link rel="stylesheet" href="reset.css" />
<link rel="stylesheet" href="layout.css" />
<link rel="stylesheet" href="index.css" />
<meta name="description" content="I make useful, fun web apps and the services that power them. Right now I work on Google Domains."/>
<!-- The stars use inline css -->
<meta http-equiv="content-security-policy" content="default-src 'self'; font-src https://fonts.gstatic.com/; style-src 'unsafe-inline';" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- TODO: Grab this and the CSS variable midnight-blue from the same source -->
<meta name="theme-color" content="#00001F" />
<script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "Person",
"name": "Max Shenfield",
"jobTitle": "Software Engineer",
"address": {
"@type": "PostalAddress",
"addressLocality": "Seattle",
"addressRegion": "WA"
},
"image": "https://avatars3.githubusercontent.com/u/4812055?s=400&u=7eea9c0657589e4a12592e29e07dc8c6b9a28697"
"url": "https://mshenfield.dev"
}</script>
<script src="index.js"></script>
<script src="phase-of-moon.js"></script>
</head>
<body>
<!-- Absolutely position and not in the flex flow -->
<div class="star-container">
<!--
Generated with generateStars(logOnly) and copied here.
I manually removed any stars that overlap text.
-->
<div class="star" style="top: 75.8764px; left: 53.4499px"></div>
<div class="star" style="top: 138.916px; left: 308.659px"></div>
<div class="star" style="top: 88.4479px; left: 541.756px"></div>
<div class="star" style="top: 163.804px; left: 987.842px"></div>
<div class="star" style="top: 112.481px; left: 1125.72px"></div>
<div class="star" style="top: 108.857px; left: 1233.92px"></div>
<div class="star" style="top: 56.0729px; left: 1588.71px"></div>
<div class="star" style="top: 123.538px; left: 1680.5px"></div>
<div class="star" style="top: 67.6143px; left: 1967.72px"></div>
<div class="star" style="top: 235.523px; left: 279.788px"></div>
<div class="star" style="top: 257.389px; left: 948.978px"></div>
<div class="star" style="top: 378.17px; left: 1176.57px"></div>
<div class="star" style="top: 357.947px; left: 1283.34px"></div>
<div class="star" style="top: 217.117px; left: 1474.63px"></div>
<div class="star" style="top: 267.093px; left: 1601.38px"></div>
<div class="star" style="top: 332.689px; left: 1940.77px"></div>
<div class="star" style="top: 507.219px; left: 108.073px"></div>
<div class="star" style="top: 446.159px; left: 303.193px"></div>
<div class="star" style="top: 501.024px; left: 401.062px"></div>
<div class="star" style="top: 522.874px; left: 635.011px"></div>
<div class="star" style="top: 488.576px; left: 944.91px"></div>
<div class="star" style="top: 477.262px; left: 1087.19px"></div>
<div class="star" style="top: 494.233px; left: 1289.23px"></div>
<div class="star" style="top: 563.542px; left: 1425.01px"></div>
<div class="star" style="top: 463.525px; left: 1623.51px"></div>
<div class="star" style="top: 587.691px; left: 1852.91px"></div>
<div class="star" style="top: 713.876px; left: 88.3384px"></div>
<div class="star" style="top: 624.766px; left: 254.853px"></div>
<div class="star" style="top: 711.735px; left: 469.994px"></div>
<div class="star" style="top: 687.084px; left: 731.461px"></div>
<div class="star" style="top: 746.149px; left: 840.219px"></div>
<div class="star" style="top: 678.314px; left: 1194.83px"></div>
<div class="star" style="top: 612.77px; left: 1387.11px"></div>
<div class="star" style="top: 605.355px; left: 1413.44px"></div>
<div class="star" style="top: 614.819px; left: 1676.42px"></div>
<div class="star" style="top: 729.609px; left: 1844.23px"></div>
<div class="star" style="top: 858.924px; left: 180.701px"></div>
<div class="star" style="top: 903.204px; left: 304.74px"></div>
<div class="star" style="top: 890.249px; left: 504.413px"></div>
<div class="star" style="top: 993.254px; left: 762.966px"></div>
<div class="star" style="top: 974.37px; left: 894.807px"></div>
<div class="star" style="top: 830.324px; left: 1173.4px"></div>
<div class="star" style="top: 919.66px; left: 1237.12px"></div>
<div class="star" style="top: 862.53px; left: 1427.95px"></div>
<div class="star" style="top: 841.642px; left: 1678.29px"></div>
<div class="star" style="top: 820.589px; left: 1975.54px"></div>
<div class="star" style="top: 1019.4px; left: 154.211px"></div>
<div class="star" style="top: 1112.54px; left: 224.673px"></div>
<div class="star" style="top: 1043.23px; left: 485.411px"></div>
<div class="star" style="top: 1113.61px; left: 650.857px"></div>
<div class="star" style="top: 1169.08px; left: 939.788px"></div>
<div class="star" style="top: 1002.27px; left: 1106.82px"></div>
<div class="star" style="top: 1134.68px; left: 1273.88px"></div>
<div class="star" style="top: 1168.81px; left: 1479.82px"></div>
<div class="star" style="top: 1030.41px; left: 1639.53px"></div>
<div class="star" style="top: 1139.95px; left: 1990.17px"></div>
<div class="star" style="top: 1280.24px; left: 149.647px"></div>
<div class="star" style="top: 1261.45px; left: 391.317px"></div>
<div class="star" style="top: 1214.97px; left: 520.371px"></div>
<div class="star" style="top: 1357.44px; left: 687.68px"></div>
<div class="star" style="top: 1393.08px; left: 957.653px"></div>
<div class="star" style="top: 1261.4px; left: 1028.23px"></div>
<div class="star" style="top: 1354.6px; left: 1298.74px"></div>
<div class="star" style="top: 1325.63px; left: 1493.37px"></div>
<div class="star" style="top: 1212.93px; left: 1707.46px"></div>
<div class="star" style="top: 1371.85px; left: 1807.76px"></div>
<div class="star" style="top: 1518.14px; left: 142.17px"></div>
<div class="star" style="top: 1448.27px; left: 367.459px"></div>
<div class="star" style="top: 1562.87px; left: 475.292px"></div>
<div class="star" style="top: 1581.25px; left: 740.2px"></div>
<div class="star" style="top: 1478.41px; left: 919.429px"></div>
<div class="star" style="top: 1421.05px; left: 1154.61px"></div>
<div class="star" style="top: 1500.66px; left: 1302.97px"></div>
<div class="star" style="top: 1503.39px; left: 1506.87px"></div>
<div class="star" style="top: 1500.03px; left: 1699.76px"></div>
<div class="star" style="top: 1476.94px; left: 1854.02px"></div>
<div class="star" style="top: 1766.56px; left: 95.5978px"></div>
<div class="star" style="top: 1691.4px; left: 302.144px"></div>
<div class="star" style="top: 1611.9px; left: 442.172px"></div>
<div class="star" style="top: 1722.5px; left: 783.089px"></div>
<div class="star" style="top: 1774.17px; left: 833.174px"></div>
<div class="star" style="top: 1666.88px; left: 1052.59px"></div>
<div class="star" style="top: 1784.58px; left: 1292.04px"></div>
<div class="star" style="top: 1788.6px; left: 1495.1px"></div>
<div class="star" style="top: 1655.04px; left: 1730.05px"></div>
<div class="star" style="top: 1678.4px; left: 1956.41px"></div>
<div class="star" style="top: 1886.66px; left: 108.633px"></div>
<div class="star" style="top: 1814.79px; left: 222.197px"></div>
<div class="star" style="top: 1925.62px; left: 445.752px"></div>
<div class="star" style="top: 1822.01px; left: 707.332px"></div>
<div class="star" style="top: 1848.12px; left: 874.014px"></div>
<div class="star" style="top: 1990.75px; left: 1189.65px"></div>
<div class="star" style="top: 1909.61px; left: 1221.11px"></div>
<div class="star" style="top: 1841.83px; left: 1464.02px"></div>
<div class="star" style="top: 1886.72px; left: 1627.34px"></div>
<div class="star" style="top: 1989.94px; left: 1819.77px"></div>
</div>
<header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog.html">Blog</a></li>
</ul>
</nav>
</header>
<main>
<section class="hi">
<!-- Make the hand tabbable so tabbers get the easter egg as well -->
<h1>Hi <span tabindex=0 class="spinny-hand">✋🏻</span>, I'm Max</h1>
<p>
I make useful, fun web apps and the services that power them.
Right now I work on <a href="https://domains.google">Google Domains</a>.
</p>
</section>
<!-- These absolutely positioned elements are not part of the flex flow. -->
<div class="moon-container">
<img class="moon" src="assets/moon.svg" />
<!-- Place the mask last to cover the previous parts -->
<div class="moon-mask"></div>
</div>
<div class="owl-sprite-hider">
<div class="owl-sprite">
<img class="frame" src="assets/owl-up.svg" />
<img class="frame" src="assets/owl-down.svg" />
</div>
</div>
<!-- end of absolutely positioned elements. -->
</main>
<footer>
<div class="left-footer">
<div class="socials">
<!-- Icons by FontAwesome (fontawesome.com) -->
<a href="https://twitter.com/mshenfield">
<svg class="icon" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" class=""></path></svg></a>
<a href="https://github.com/mshenfield">
<svg class="icon" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" class=""></path></svg>
</a>
<a href="https://linkedin.com/in/maxshenfield">
<svg class="icon" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="linkedin" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z" class=""></path></svg>
</a>
</div>
<div class="credits">Art by <a href="https://www.linkedin.com/in/aprilnpetry">April Petry</a></div>
</div>
<div class="sound-toggle">
<div class="credits">Sullivan NFC Station / Macaulay Library at the Cornell Lab (<a href="https://macaulaylibrary.org/asset/254021521">ML254021521</a>)</div>
<label class="sound-toggle-label">
<input id="sound-toggle-button" type="checkbox" checked="true"/>
<span class="sound-toggle-icon"></span>
<!-- Looping is handled in JS to avoid gap between loops -->
<audio id="background-audio" autoplay="true" muted="true">
<source src="assets/night.mp3" type="audio/mpeg" />
</audio>
</label>
</div>
</footer>
</body>
</html>