UNPKG

10 kBHTMLView Raw
1<!doctype html>
2<html>
3<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800" rel="stylesheet">
4<script src="https://www.gstatic.com/firebasejs/4.5.1/firebase.js"></script>
5<script src="https://js.stripe.com/v3/"></script>
6<script src="https://cdn.rawgit.com/mrdoob/three.js/fd5145944f051586a1cf9bb18d7221ba4f92f796/build/three.min.js"></script>
7<script>
8window.module = {exports: {}};
9</script>
10<script src="https://cdn.rawgit.com/modulesio/strg/8357f3144f67fca6d1d10f3a2a2f057666bc7815/api.js"></script>
11<script>
12window.apiLib = window.module.exports;
13window.module = null;
14</script>
15<script src="https://wzrd.in/standalone/skin-js@latest"></script>
16<script>
17window.skin = skinJs(THREE);
18</script>
19<style>
20body {
21 margin: 0;
22 min-width: 100vw;
23 min-height: 100vh;
24 font-family: 'Open Sans', sans-serif;
25 font-size: 12px;
26 font-weight: 600;
27}
28.login, .create-account {
29 display: flex;
30 min-width: inherit;
31 min-height: inherit;
32 align-items: center;
33 background-color: #EEE;
34 flex-direction: column;
35}
36.login-wrap, .create-account-wrap {
37 display: flex;
38 margin-top: 100px;
39 padding: 30px;
40 background-color: #FFF;
41 flex-direction: column;
42 box-sizing: border-box;
43}
44.login-wrap, .login-wrap-2, .create-account-wrap {
45 display: flex;
46 width: 400px;
47}
48.login-wrap .img-wrap {
49 display: flex;
50 margin-bottom: 10px;
51 justify-content: center;
52 align-items: center;
53}
54.form input {
55 margin: 10px 0;
56 padding: 10px;
57 font-family: inherit;
58}
59.form input[type=email], .form input[type=password] {
60 border: 0;
61 border-bottom: 3px solid #CCC;
62 background-color: #EEE;
63}
64.form input[type=email]:focus, .form input[type=password]:focus {
65 background-color: #FFF;
66 border-bottom-color: #2196F3;
67}
68.form input[type=submit], .form input[type=button] {
69 padding: 10px 30px;
70 border: 0;
71 color: #FFF;
72}
73.form input[type=submit] {
74 background: #2196F3;
75}
76.form input[type=submit]:hover, .form input[type=submit]:focus, .form input[type=submit]:disabled {
77 background: #1976D2;
78 cursor: pointer;
79}
80.form input[type=button] {
81 margin: auto;
82 margin-top: 20px;
83 background: #DDD;
84 border-bottom: 2px solid rgba(0, 0, 0, 0.2);
85 border-radius: 5px;
86 color: #E91E63;
87 font-weight: 600;
88}
89.form input[type=button]:hover, .form input[type=button]:focus {
90 background: #E91E63;
91 color: #FFF;
92 cursor: pointer;
93}
94.form.create-account input[type=submit] {
95 margin: auto;
96 margin-top: 20px;
97 background: #E91E63;
98}
99.form.create-account input[type=submit]:hover, .form.create-account input[type=submit]:focus, .form.create-account input[type=submit]:disabled {
100 background: #C2185B;
101 cursor: pointer;
102}
103.form h1 {
104 margin: 0;
105 margin-top: -80px;
106 margin-bottom: 40px;
107 margin-left: -30px;
108 font-size: 26px;
109 font-weight: 500;
110}
111.form .buttons {
112 display: flex;
113}
114.form input[type=radio] {
115 display: none;
116}
117.form input[type=radio] + .button {
118 display: flex;
119 padding: 10px 30px;
120 background: transparent;
121 border: 2px solid #3F51B5;
122 border-radius: 5px;
123 color: #3F51B5;
124 justify-content: center;
125 align-items: center;
126 flex-grow: 1;
127 cursor: pointer;
128}
129.form input[type=radio]:checked + .button {
130 background: #3F51B5;
131 color: #FFF;
132}
133.form input[type=radio] + .button.first {
134 border-top-right-radius: 0;
135 border-bottom-right-radius: 0;
136}
137.form input[type=radio] + .button:last-child {
138 border-top-left-radius: 0;
139 border-bottom-left-radius: 0;
140}
141.form .spacer {
142 width: 100%;
143 height: 30px;
144}
145.form hr {
146 width: 100%;
147 margin: 15px 0;
148 margin-bottom: 30px;
149 border: 0;
150 border-bottom: 2px solid #DDD;
151}
152.form .total {
153 display: flex;
154 margin-top: 10px;
155 font-size: 16px;
156}
157.form .total .label {
158 display: flex;
159 font-size: 16px;
160}
161.form .total .value {
162 margin-left: auto;
163}
164.form .error-message {
165 margin: -30px;
166 margin-top: 0;
167 padding: 15px 30px;
168 background-color: #F44336;
169 color: #FFF;
170 font-weight: 400;
171}
172.form .error-message:empty {
173 display: none;
174}
175body:not(.loaded) .login, body.logged-in .login, body.creating-account .login {
176 display: none;
177}
178body.logging-in .login-button {
179 display: none;
180}
181body:not(.logging-in) .logging-in-button {
182 display: none;
183}
184body:not(.creating-account) .create-account {
185 display: none;
186}
187body.paying .pay-button {
188 display: none;
189}
190body:not(.paying) .paying-button {
191 display: none;
192}
193body:not(.logged-in) .ui {
194 display: none;
195}
196asset {
197 background-color: #EEE;
198}
199asset.file {
200 background-color: #B3E5FC;
201}
202asset.authorized {
203 background-color: #C8E6C9;
204}
205asset.certificate {
206 background-color: #FFECB3;
207}
208asset.selected {
209 background-color: #000;
210 color: #FFF;
211}
212asset.selected.file {
213 background-color: #2196F3;
214}
215asset.selected.authorized {
216 background-color: #4CAF50;
217}
218asset.selected.certificate {
219 background-color: #FFC107;
220}
221asset .header-link {
222 display: none;
223}
224asset:hover .header-link {
225 display: flex;
226 color: inherit;
227 text-decoration: none;
228}
229asset .header-link.blue:hover {
230 color: #2196F3;
231}
232.button {
233 background-color: #EEE;
234}
235.button:hover {
236 background-color: #000;
237 color: #FFF;
238}
239.button.blue {
240 background-color: #2196F3;
241 color: #FFF;
242}
243.button.blue:hover {
244 background-color: #1976D2;
245}
246</style>
247<body>
248<form class="login form" id=login-form>
249 <div class=login-wrap>
250 <div class=img-wrap>
251 <img src="https://cdn.rawgit.com/modulesio/vrid/15be81de414c181d56a192aa4f73a3243a6acde1/public/img/logo.svg" width=80 height=80>
252 </div>
253 <input type=email placeholder="your@email.com" id=email autofocus required>
254 <input type=password placeholder="p@ssw0r4" id=password pattern=".{6,}" title="6 characters minimum" required>
255 <div>
256 <input class=login-button type=submit value="Log in">
257 <input class=logging-in-button type=submit value="Logging in..." disabled>
258 </div>
259 <div class=error-message id=error-message></div>
260 </div>
261 <div class=login-wrap-2>
262 <input type=button value="Create account" id=create-account-button>
263 </div>
264</form>
265<form class="create-account form" id=create-account-form>
266 <div class=create-account-wrap>
267 <h1>Create a Zeo VR Avatar</h1>
268 <input type=email placeholder="your@email.com" id=create-account-email autofocus required>
269 <input type=password placeholder="p@ssw0r4" id=create-account-password pattern=".{6,}" title="6 characters minimum" required>
270 <div class=spacer></div>
271 <div class=buttons>
272 <input type="radio" id="subscription-type-1" name="subscription-type" value="basic" checked>
273 <label class="button first" for="subscription-type-1">Basic $5/mo</label>
274 <input type="radio" id="subscription-type-2" name="subscription-type" value="gold">
275 <label class="button last" for="subscription-type-2">Gold $15/mo</label>
276 </div>
277 <div class=total>
278 <div class=label>Total:</div>
279 <div class=value id=create-account-total-value>$5/mo</div>
280 </div>
281 <hr/>
282 <div id=card-element></div>
283 <div id=card-errors role=alert></div>
284 <input class=pay-button type=submit value="Pay now">
285 <input class=paying-button type=submit value="Paying..." disabled>
286 </div>
287</form>
288<div style="min-width: inherit; min-height: inherit; flex-direction: column;" class=ui id=ui>
289 <div style="display: flex; height: calc((100px + 36px) * 4); width: inherit; margin-bottom: 5px;">
290 <div style="display: flex; flex-grow: 1; flex-direction: column; align-items: flex-start;">
291 <div style="display: flex; margin-bottom: auto; align-items: flex-start; flex-wrap: wrap;" id=assets></div>
292 </div>
293 <div style="display: flex; width: 250px; flex-direction: column;">
294 <div>
295 <canvas width=100 height=100 id=infobox-canvas></canvas>
296 </div>
297 <h1 style="margin: 0; line-height: 1.4;" id=infobox-asset></h1>
298 <p style="margin: 10px 0;" id=infobox-description></p>
299 </div>
300 <div style="display: flex; flex-direction: column;" id=equipments></div>
301 </div>
302 <div style="display: flex; margin-bottom: 5px; flex-direction: column; align-items: flex-start;">
303 <div style="display: flex; width: 100%; margin-bottom: 5px;">
304 <div style="display: flex; background-color: #673AB7; padding: 10px; color: #FFF; justify-content: center; align-items: center;">Username</div>
305 <input type=text style="background-color: #EEE; margin-right: auto; padding: 10px; border: 0; font-family: monospace; font-size: 14px; font-weight: 400; outline: none;" placeholder="Enter username" value="my-avatar" id=username-input>
306 <div style="display: flex;">
307 <a class=button style="display: flex; margin-right: 5px; padding: 10px 20px; border: 0; font-family: monospace; font-size: 16px; font-weight: 400; justify-content: center; align-items: center; cursor: pointer; user-select: none;" id=new-button>New</a>
308 <a class=button style="position: relative; display: flex; margin-right: 5px; padding: 10px 20px; border: 0; font-family: monospace; font-size: 16px; font-weight: 400; justify-content: center; align-items: center; overflow: hidden; cursor: pointer; user-select: none;" id=load-button>
309 <input type=file style="position: absolute; right: 0px; top: 0px; font-family: Arial; font-size: 118px; margin: 0px; padding: 0px; cursor: pointer; opacity: 0; height: 100%;" id=load-input>
310 Load
311 </a>
312 <a class=button style="display: flex; margin-right: 5px; padding: 10px 20px; border: 0; font-family: monospace; font-size: 16px; font-weight: 400; justify-content: center; align-items: center; cursor: pointer; user-select: none;" id=save-button>Save</a>
313 <a class=button style="display: flex; margin-right: 5px; padding: 10px 20px; border: 0; font-family: monospace; font-size: 16px; font-weight: 400; justify-content: center; align-items: center; cursor: pointer; user-select: none;" id=logout-button>Logout</a>
314 </div>
315 </div>
316 <canvas width=200 height=200 id=skin-canvas></canvas>
317 </div>
318</div>
319<script src="lib/sprite.js"></script>
320<script src="lib/index.js"></script>
321</body>
322</html>