home: new, mobile-first header + slick nav; misc updates

This commit is contained in:
Christopher Van Wiemeersch 2017-01-03 22:55:42 -08:00
Родитель 71b693b4c8
Коммит 682f5c894e
24 изменённых файлов: 491 добавлений и 133 удалений

14
.sublime-project поставляемый Normal file
Просмотреть файл

@ -0,0 +1,14 @@
{
"folders": [
{
"path": ".",
"folder_exclude_patterns": [
"_prod"
],
"follow_symlinks": true
}
],
"settings": {
"tab_size": 2
}
}

Просмотреть файл

@ -2,5 +2,8 @@
<p id="license" class="license">
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png"></a><br><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">WebVR Rocks</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/webvrrocks" property="cc:attributionName" rel="cc:attributionURL">WebVR Rocks authors</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.<br>Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://github.com/webvrrocks/webvrrocks" rel="dct:source">https://github.com/webvrrocks/webvrrocks</a>.
</p>
<p id="edit-page" class="edit-page">
<a href="https://github.com/webvrrocks/webvrrocks" title="Edit on GitHub" class="button button-primary pull-right">Edit on GitHub</a>
</p>
</footer>
<script src="/media/js/main.js"></script>

Просмотреть файл

@ -26,13 +26,29 @@
"href": "/manifest.json"
},
{
"rel": "favicon",
"href": "/media/img/webvr-favicon-small.png"
"rel": "icon",
"sizes": "256x256",
"href": "/rocks/favicon.svg"
},
{
"rel": "icon",
"sizes": "256x256",
"href": "/rocks/favicon.png"
},
{
"rel": "icon",
"sizes": "64x64",
"href": "/media/img/webvr-favicon-small.svg"
"href": "/rocks/favicon-small.svg"
},
{
"rel": "icon",
"sizes": "64x64",
"href": "/rocks/favicon-small.png"
},
{
"rel": "mask-icon",
"href": "/rocks/favicon-small-mask.svg",
"color": "#3a46ff"
}
],
"script": [

Двоичные данные
public/favicon.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Просмотреть файл

@ -1,5 +1,5 @@
<!doctype html>
<html lang="en" data-headset="htc_vive">
<html lang="en" data-layout="headset htc_vive">
<head>
<posthtml-head-elements></posthtml-head-elements>
<meta charset="utf-8">

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 7.2 KiB

Просмотреть файл

@ -1,37 +1,39 @@
<!doctype html>
<html lang="en" data-page="index">
<html lang="en" data-layout="home">
<head>
<posthtml-head-elements></posthtml-head-elements>
<meta charset="utf-8">
<title>Chromium • WebVR Rocks</title>
<title>WebVR Rocks</title>
</head>
<body>
<header id="header" class="header section" role="banner">
<div class="container">
<p class="hidden-text"><a href="/" aria-controls="main" tabindex="0">&#xAB; Back to WebVR Rocks home</a></p>
<!--<div class="cf"><a href="https://github.com/webvrrocks/webvrrocks" title="Edit on GitHub" class="button button-primary pull-right">Edit on Github</a></div>-->
<header class="page-header headset-header">
<div class="grid-flex-container">
<div class="grid-flex-cell">
<h1 class="page-title">WebVR Rocks</h1>
</div>
<div class="grid-flex-cell-1of3">
</div>
</div>
</header>
</div>
<body class="">
<header id="header" class="site-header">
<h1 class="site-title">
<a class="site-logo" href="/">
<include src="rocks/logo.svg"></include>
<span class="rocks-wordmark">
<span class="rocks-wordmark-webvr">WebVR</span> <span class="rocks-wordmark-rocks">Rocks</span>
</span>
</a>
</h1>
<nav class="site-nav" role="navigation">
<ul class="site-nav-list">
<li><a href="">Headsets</a></li>
<li><a href="">Browsers</a></li>
<li><a href="">Experiences</a></li>
<li><a href="">Info</a></li>
</ul>
</nav>
</header>
<main id="main" class="main" role="main">
<div class="container">
<section id="browsers" class="section browsers" data-section="browsers">
<h3><a href="#browsers">Browsers</a></h3>
<h4>Chromium</h4>
<h2><a href="#browsers">Browsers</a></h2>
<h3>Chromium</h3>
<p><a class="button button-outlined-approve button-download" href="/chromium" itemprop="downloadUrl">Install Chromium</a></p>
<h4>Firefox</h4>
<h3>Firefox</h3>
<p><a class="button button-outlined-approve button-download" href="/firefox" itemprop="downloadUrl">Install Firefox</a></p>
</section>
</div>

13
public/linux/logo.svg Normal file
Просмотреть файл

@ -0,0 +1,13 @@
<!--
Source:
* URL: https://commons.wikimedia.org/wiki/File%3ATux_Mono.svg
* By gg3po, Iwan Gabovitch [GPL (http://www.gnu.org/licenses/gpl.html)], via Wikimedia Commons
-->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 712 860">
<path fill="#111" d="M683.91 677.74c-.01-.01-.02-.02-.02-.03-6.07-6.85-8.96-19.55-12.07-33.08-3.1-13.52-6.57-28.1-17.67-37.55-.02-.02-.05-.04-.07-.06-2.2-1.92-4.46-3.54-6.73-4.89-2.28-1.35-4.59-2.45-6.9-3.32 15.43-45.76 9.38-91.33-6.2-132.5-19.11-50.54-52.48-94.57-77.97-124.69-28.53-35.99-56.43-70.15-55.88-120.61C501.25 144 508.87 1.19 373.35 1c-5.51-.01-11.26.22-17.25.7-151.44 12.19-111.27 172.19-113.52 225.76-2.77 39.18-10.71 70.06-37.66 108.36-31.65 37.64-76.23 98.57-97.34 162-9.96 29.93-14.7 60.44-10.33 89.32-1.37 1.23-2.67 2.52-3.92 3.84-9.29 9.93-16.16 21.95-23.81 30.04-7.15 7.14-17.33 9.85-28.53 13.86-11.2 4.02-23.49 9.94-30.95 24.26 0 0 0 .01-.01.01-.01.02-.02.05-.04.07-3.51 6.55-4.65 13.62-4.65 20.79 0 6.63.98 13.35 1.97 19.82 2.06 13.46 4.15 26.188 1.38 34.81-8.86 24.23-10 40.98-3.76 53.14 6.26 12.18 19.11 17.55 33.64 20.59 29.06 6.06 68.41 4.56 99.42 21l2.67-5.03-2.64 5.04c33.2 17.36 66.86 23.52 93.71 17.39 19.48-4.44 35.28-16.04 43.4-33.88 21-.1 44.05-9 80.97-11.03 25.05-2.02 56.34 8.9 92.33 6.9.94 3.9 2.3 7.66 4.16 11.23.02.03.04.07.06.1 13.95 27.9 39.87 40.66 67.5 38.48 27.66-2.18 57.07-18.49 80.85-46.78l-4.36-3.66 4.392 3.62c22.66-27.48 60.27-38.87 85.22-53.91 12.47-7.52 22.58-16.94 23.37-30.62.778-13.67-7.252-28.99-25.712-49.48z"/>
<path fill="#fff" d="M698.24 726.57c-.48 8.44-6.59 14.71-17.88 21.51-22.56 13.61-62.55 25.45-88.08 56.38-22.18 26.39-49.22 40.88-73.03 42.76s-44.35-8-56.47-32.31l-.02-.05-.03-.06c-7.52-14.3-4.39-36.85 1.94-60.65 6.33-23.79 15.43-48.23 16.65-68.08v-.06c1.278-25.44 2.71-47.66 6.978-64.81 4.28-17.15 11.01-28.75 22.93-35.28.56-.3 1.11-.59 1.66-.86 1.35 22.03 12.26 44.51 31.54 49.37 21.1 5.56 51.51-12.54 64.35-27.31 2.57-.102 5.07-.23 7.5-.29 11.27-.272 20.71.38 30.37 8.82l.03.028.03.02c7.42 6.29 10.95 18.17 14.01 31.47 3.06 13.312 5.5 27.8 14.68 38.13l.01.01.01.022c17.642 19.57 23.312 32.79 22.822 41.24zm-428.75 62.38l-.01.06v.07c-2.04 26.74-17.12 41.3-40.28 46.59-23.14 5.29-54.53.02-85.87-16.37-.01 0-.02-.01-.03-.01-34.68-18.37-75.93-16.54-102.4-22.07-13.23-2.76-21.87-6.92-25.83-14.64-3.96-7.73-4.05-21.2 4.37-44.17l.04-.1.03-.1c4.17-12.85 1.08-26.91-.94-40.11-2.02-13.19-3.01-25.2 1.5-33.56l.04-.08c5.77-11.12 14.23-15.1 24.73-18.86 10.51-3.77 22.96-6.73 32.79-16.59l.06-.05.05-.05c9.09-9.59 15.92-21.62 23.91-30.15 6.74-7.2 13.49-11.97 23.66-12.04.12.01.23.01.35 0 1.78.01 3.67.16 5.67.47 13.5 2.04 25.27 11.48 36.61 26.86l32.74 59.67.01.03.02.02c8.71 18.19 27.11 38.2 42.7 58.61 15.59 20.4 27.65 40.89 26.08 56.57zm163.28-556.26c-2.63-5.15-8-10.05-17.14-13.8l-.02-.01-.03-.01c-19.01-8.14-27.26-8.72-37.87-15.62-17.27-11.1-31.54-14.99-43.4-14.94-6.21.02-11.76 1.12-16.73 2.84-14.45 4.97-24.04 15.34-30.05 21.03l-.01.01c0 .01-.01.01-.01.02-1.18 1.12-2.7 2.14-6.38 4.84-3.71 2.71-9.27 6.79-17.27 12.79-7.11 5.33-9.42 12.27-6.96 20.4 2.45 8.13 10.29 17.51 24.63 25.62l.02.02.03.01c8.9 5.23 14.98 12.28 21.96 17.89 3.49 2.8 7.16 5.3 11.58 7.19 4.42 1.89 9.58 3.17 16.04 3.55 15.16.88 26.32-3.67 36.17-9.31 9.87-5.63 18.23-12.52 27.82-15.63l.02-.01.02-.01c19.66-6.14 33.68-18.51 38.07-30.26 2.2-5.88 2.13-11.46-.49-16.61z"/>
<path fill="#111" d="M382.89 261.71c-15.64 8.153-33.91 18.04-53.35 18.04-19.43 0-34.78-8.98-45.82-17.73-5.52-4.37-10-8.72-13.38-11.88-5.864-4.63-5.162-11.122-2.752-10.93 4.038.504 4.65 5.822 7.192 8.2 3.44 3.22 7.75 7.39 12.97 11.53 10.44 8.27 24.36 16.32 41.79 16.32 17.4 0 37.712-10.215 50.11-17.17 7.024-3.94 15.962-11.003 23.257-16.357 5.58-4.097 5.377-9.03 9.985-8.493 4.608.537 1.2 5.46-5.254 11.092-6.453 5.632-16.548 13.104-24.748 17.378z"/>
<path fill="#FFF" d="M622.39 595.47c-2.17-.08-4.31-.07-6.39-.02-.19.01-.38.01-.58.01 5.37-16.96-6.51-29.47-38.17-43.79-32.83-14.44-58.99-13.01-63.41 16.29-.28 1.53-.51 3.1-.68 4.68-2.46.86-4.92 1.94-7.4 3.29-15.41 8.44-23.83 23.74-28.51 42.52-4.67 18.76-6.02 41.43-7.3 66.92v.02c-.79 12.812-6.07 30.15-11.41 48.512-53.78 38.37-128.42 54.99-191.8 11.73-4.29-6.79-9.22-13.52-14.29-20.16-3.24-4.24-6.57-8.45-9.87-12.61 6.5.01 12.03-1.06 16.5-3.08 5.56-2.53 9.46-6.57 11.4-11.77 3.86-10.39-.02-25.05-12.39-41.8-12.37-16.74-33.32-35.63-64.1-54.51v-.01c-22.62-14.07-35.26-31.312-41.18-50.03-5.93-18.73-5.1-38.98-.53-58.97 8.76-38.37 31.26-75.69 45.62-99.11 3.86-2.84 1.38 5.28-14.54 34.84-14.26 27.02-40.93 89.38-4.42 138.06.98-34.64 9.25-69.97 23.14-103.02 20.23-45.85 62.54-125.38 65.9-188.76 1.74 1.26 7.69 5.28 10.34 6.79.01.01.01.01.02.01 7.76 4.57 13.59 11.25 21.14 17.32 7.57 6.08 17.02 11.33 31.3 12.16 1.37.08 2.71.12 4.02.12 14.72 0 26.2-4.8 35.76-10.27 10.39-5.94 18.69-12.52 26.56-15.08.01-.01.02-.01.03-.01 16.63-5.2 29.84-14.4 37.36-25.12 12.92 50.92 42.96 124.47 62.27 160.36 10.27 19.04 30.69 59.5 39.51 108.25 5.59-.172 11.75.64 18.34 2.328 23.07-59.81-19.56-124.22-39.06-142.16-7.87-7.64-8.25-11.06-4.34-10.9 21.14 18.71 48.91 56.32 59.01 98.78 4.61 19.36 5.59 39.72.65 59.81 2.41 1 4.87 2.09 7.36 3.27 37.03 18.03 50.72 33.71 44.14 55.11z"/>
<path fill="#fff" d="M434.51 174.03c.08 10.09-1.66 18.68-5.49 27.45-2.18 5-4.69 9.2-7.7 12.84-1.02-.49-2.08-.96-3.18-1.41-3.81-1.63-7.18-2.97-10.2-4.11-3.02-1.14-5.377-1.92-7.808-2.76 1.76-2.13 5.23-4.64 6.52-7.79 1.96-4.75 2.92-9.39 3.1-14.92 0-.22.07-.41.07-.67.11-5.3-.59-9.83-2.14-14.47-1.62-4.87-3.68-8.37-6.66-11.28-2.99-2.91-5.97-4.23-9.55-4.35-.17-.01-.33-.01-.5-.01-3.36.01-6.28 1.17-9.3 3.69-3.17 2.65-5.52 6.04-7.48 10.76-1.95 4.72-2.91 9.4-3.1 14.96-.03.22-.03.41-.03.63-.07 3.06.13 5.86.6 8.58-6.88-3.43-15.68-5.93-21.76-7.38-.35-2.63-.55-5.34-.61-8.18v-.77c-.11-10.06 1.54-18.69 5.41-27.45 3.87-8.77 8.66-15.07 15.398-20.2 6.75-5.12 13.38-7.47 21.23-7.55h.37c7.68 0 14.25 2.26 21 7.15 6.85 4.98 11.79 11.2 15.77 19.9 3.9 8.48 5.78 16.77 5.97 26.6 0 .26 0 .48.07.74zm-116.08 10.05c-1.01.29-1.99.6-2.96.93-5.5 1.9-9.867 3.997-14.087 6.787.41-2.92.47-5.88.15-9.19-.03-.18-.03-.33-.03-.51-.44-4.39-1.37-8.07-2.92-11.79-1.65-3.87-3.5-6.6-5.93-8.7-2.2-1.9-4.28-2.78-6.58-2.76-.23 0-.47.01-.71.03-2.58.22-4.72 1.48-6.75 3.95-2.02 2.46-3.35 5.52-4.31 9.58-.96 4.05-1.21 8.03-.81 12.6 0 .18.04.33.04.51.44 4.43 1.33 8.11 2.91 11.83 1.62 3.83 3.5 6.56 5.93 8.66.41.35.81.67 1.21.95-2.52 1.95-4.213 3.333-6.293 4.853-1.33.97-2.91 2.13-4.75 3.49-4.01-3.76-7.14-8.48-9.88-14.71-3.24-7.36-4.97-14.73-5.49-23.43v-.07c-.48-8.7.37-16.18 2.76-23.92 2.4-7.74 5.6-13.34 10.25-17.94 4.64-4.61 9.32-6.93 14.96-7.22.44-.02.87-.03 1.3-.03 5.11.01 9.67 1.71 14.39 5.48 5.12 4.09 8.99 9.32 12.23 16.69 3.25 7.37 4.98 14.74 5.46 23.44v.07c.23 3.65.2 7.09-.09 10.42z"/>
<path fill="#111" d="M344.087 204.89c.646 2.076 3.993 1.732 5.926 2.728 1.696.873 3.06 2.79 4.968 2.844 1.825.052 4.658-.63 4.895-2.437.312-2.385-3.17-3.9-5.413-4.775-2.885-1.125-6.58-1.696-9.287-.19-.62.344-1.296 1.152-1.085 1.83zm-19.765 0c-.647 2.076-3.993 1.732-5.926 2.728-1.696.873-3.06 2.79-4.968 2.844-1.82.052-4.654-.63-4.89-2.437-.314-2.385 3.17-3.9 5.412-4.775 2.885-1.125 6.58-1.696 9.286-.19.62.344 1.297 1.152 1.086 1.83z"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 7.0 KiB

9
public/mac/logo.svg Normal file
Просмотреть файл

@ -0,0 +1,9 @@
<!--
Source:
* URL: https://commons.wikimedia.org/wiki/File%3AWindows_logo_-_2012.svg
* By Original: Rob Janoff [Public domain], via Wikimedia Commons
https://commons.wikimedia.org/wiki/File%3AApple_logo_black.svg
-->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 170 170">
<path fill="#111" d="M150.37 130.25c-2.45 5.66-5.35 10.87-8.71 15.66-4.58 6.53-8.33 11.05-11.22 13.56-4.48 4.12-9.28 6.23-14.42 6.35-3.69 0-8.14-1.05-13.32-3.18-5.197-2.12-9.973-3.17-14.34-3.17-4.58 0-9.492 1.05-14.746 3.17-5.262 2.13-9.5 3.24-12.742 3.35-4.93.21-9.842-1.96-14.746-6.52-3.13-2.73-7.045-7.41-11.735-14.04-5.03-7.08-9.168-15.29-12.41-24.65-3.47-10.11-5.21-19.9-5.21-29.378 0-10.857 2.346-20.22 7.045-28.068C27.508 57.03 32.42 52.06 38.57 48.41s12.793-5.51 19.948-5.63c3.915 0 9.05 1.21 15.43 3.59 6.36 2.39 10.446 3.6 12.237 3.6 1.34 0 5.877-1.416 13.57-4.24 7.275-2.617 13.415-3.7 18.445-3.274 13.63 1.1 23.87 6.473 30.68 16.153-12.19 7.385-18.22 17.73-18.1 31 .11 10.338 3.86 18.94 11.23 25.77 3.34 3.17 7.07 5.62 11.22 7.36-.9 2.61-1.85 5.11-2.86 7.51zM119.11 7.24c0 8.102-2.96 15.667-8.86 22.67-7.12 8.323-15.732 13.133-25.07 12.374-.12-.972-.19-1.995-.19-3.07 0-7.778 3.387-16.102 9.4-22.908 3.002-3.446 6.82-6.31 11.45-8.597 4.62-2.253 8.99-3.498 13.1-3.71.12 1.082.17 2.165.17 3.24z"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

@ -1,28 +1,37 @@
{
"lang": "en",
"dir": "ltr",
"name": "WebVR Rocks",
"short_name": "WebVR",
"description": "Community of experimentation & showcase of techniques of VR content creation on the Web.",
"start_url": "./?src=manifest",
"theme_color": "#3a46ff",
"background_color": "#fff",
"icons": [
{
"src": "/media/img/webvr-favicon.svg",
"sizes": "200x200",
"src": "rocks/favicon.svg",
"sizes": "256x256",
"type": "image/svg"
},
{
"src": "/media/img/webvr-favicon.png",
"sizes": "200x200",
"src": "rocks/favicon.png",
"sizes": "256x256",
"type": "image/png"
},
{
"src": "/media/img/webvr-favicon-small.svg",
"src": "rocks/favicon-small.svg",
"sizes": "64x64",
"type": "image/svg"
},
{
"src": "/media/img/webvr-favicon-small.png",
"src": "rocks/favicon-small.png",
"sizes": "64x64",
"type": "image/png"
},
{
"src": "rocks/favicon.ico",
"sizes": "16x16 32x32 48x48 64x64 256x256",
"type": "image/x-icon"
}
]
}

Просмотреть файл

@ -1,27 +1,30 @@
{
"lang": "en",
"dir": "ltr",
"name": "WebVR Rocks",
"short_name": "WebVR",
"description": "Community-driven site for sharing how to create and experience WebVR.",
"description": "Community of experimentation & showcase of techniques of VR content creation on the Web.",
"start_url": "./?src=manifest",
"theme_color": "#3a46ff",
"background_color": "#fff",
"icons": [
{
"src": "/media/img/webvr-favicon.svg",
"src": "rocks/favicon.svg",
"sizes": "200x200",
"type": "image/svg"
},
{
"src": "/media/img/webvr-favicon.png",
"src": "rocks/favicon.png",
"sizes": "200x200",
"type": "image/png"
},
{
"src": "/media/img/webvr-favicon-small.svg",
"src": "rocks/favicon-small.svg",
"sizes": "64x64",
"type": "image/svg"
},
{
"src": "/media/img/webvr-favicon-small.png",
"src": "rocks/favicon-small.png",
"sizes": "64x64",
"type": "image/png"
}

Просмотреть файл

@ -6,6 +6,7 @@
body {
font-family: Libre Franklin, Helvetica Neue, Helvetica, sans-serif;
min-width: 10rem;
}
.hidden-text {
@ -29,32 +30,23 @@ header {
padding-bottom: 0;
}
.page-header {
.header {
background: #fff;
position: relative;
z-index: 1;
}
.page-header .grid-flex-container {
align-items: center;
[data-layout~="home"] .header,
[data-layout~="home"] .header h1 {
color: #3a46ff;
}
[data-headset="htc_vive"] .headset-header {
background: #00b5e2;
h1.page-title {
margin: 0;
}
[data-page="index"] .page-header,
[data-page="index"] .page-header h1 {
background: #3a46ff;
color: #fff;
}
[data-headset="htc_vive"] .headset-header,
[data-headset="htc_vive"] .headset-header h1 {
color: #fff;
}
html[data-browser] body > .header {
border-bottom-width: 1px;
padding: 30px;
.rocks-wordmark {
display: none;
}
.header *:last-child {
@ -85,39 +77,6 @@ html[data-browser] body > .header {
max-width: 100px;
}
.page-title {
padding: 15px 30px;
}
.headset-icon-wrap {
padding: 15px 30px;
}
.headset-icon {
display: inline-block;
max-height: 100px;
}
.headset-logo-wrap {
background: #111;
display: block;
padding: 30px;
}
.headset-logo {
display: block;
max-width: 200px;
}
[data-headset="htc_vive"] .headset-icon-wrap {
padding-bottom: 0;
padding-top: 15px;
}
.main {
/*padding: 30px;*/
}
section {
padding: 0;
}
@ -186,50 +145,164 @@ li .button:first-child {
margin-left: 0;
}
dd code,
p code,
li code {
background: #eee;
border-radius: 1px;
box-shadow: 1px 1px 0 #ccc;
color: #666;
margin: 0 3px;
padding: 3px 6px;
}
ul.site-nav-list {
margin: 0;
padding-left: 0;
}
ul.site-nav-list li {
list-style-type: none;
}
.site-nav a {
padding: 5px 30px;
}
.site-nav li:first-child a {
padding-top: 30px;
}
.site-nav li:last-child a {
padding-bottom: 30px;
}
.site-nav a {
display: block;
}
.site-logo {
display: block;
padding: 30px 30px 0;
width: 100%;
}
.site-logo svg {
height: 100%;
width: 100%;
}
.edit-page {
display: none;
}
/**
* Breakpoints
*
* breakpoint-smartphone: 480px
* breakpoint-mid-mobile: 600px
* breakpoint-tablet: 768px
* breakpoint-desktop: 900px
* breakpoint-desktop-wide: 1200px
*/
/**
* Resets
*/
/* tablet */
@media screen and (max-width: 768px) {
@media all and (max-width: 768px) {
body {
border-width: 0;
}
}
@media screen and (min-width: 769px) {
@media all and (min-width: 769px) {
body {
border-width: 0;
}
.headset-icon-wrap {
text-align: right;
}
.headset-icon {
max-height: 200px;
}
}
/* mid-sized mobile */
@media screen and (max-width: 600px) {
@media all and (max-width: 600px) {
.container {
width: 100%;
}
}
@media screen and (min-width: 599px) {
.header .button + .button {
margin-left: 15px;
}
}
/* larger than tablet but smaller than desktop */
@media screen and (min-width: 481px) and (max-width: 900px) {
@media all and (min-width: 481px) and (max-width: 900px) {
.container {
width: 100%;
}
}
/* desktop */
@media screen and (min-width: 901px) {
@media all and (min-width: 901px) {
.container {
width: 100%;
}
}
/**
* Mobile-first media queries
*/
.site-logo svg {
max-width: 10rem;
}
@media all and (min-width: 20rem) {
.site-title {
width: calc(7rem + 8vw);
}
}
@media all and (min-width: 25rem) {
.site-header {
display: flex;
flex-direction: row-reverse;
flex-wrap: wrap;
justify-content: space-between;
align-content: stretch;
align-items: stretch;
}
.site-nav {
flex-grow: 1;
flex-shrink: 0;
}
}
@media all and (min-width: 45rem) {
.site-header {
flex-direction: row;
}
.site-logo {
padding-bottom: 30px;
}
ul.site-nav-list {
align-items: stretch;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
padding: 0;
}
.site-nav-list a {
display: block;
padding: 30px;
height: 100%;
}
.site-nav li:first-child a {
padding-top: 30px;
}
.site-nav li:last-child a {
padding-bottom: 30px;
}
}

Двоичные данные
public/media/img/webvr-favicon-small.ico

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.2 KiB

Двоичные данные
public/media/img/webvr-favicon.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.2 KiB

Просмотреть файл

@ -1,14 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>webvr-favicon</title>
<defs>
<path id="a" d="M0 0h200v200H0z"/>
</defs>
<g fill="none" fill-rule="evenodd">
<mask id="b" fill="#fff">
<use xlink:href="#a"/>
</mask>
<path fill="#ff" stroke="#3a46ff" stroke-width="40" d="M0 0h200v200H0z" mask="url(#b)"/>
<circle cx="57.5" cy="100.5" r="17.5" fill="#3a46ff"/>
<circle cx="142.5" cy="100.5" r="17.5" fill="#3a46ff"/>
</g>
</svg>

До

Ширина:  |  Высота:  |  Размер: 530 B

Просмотреть файл

@ -1,24 +1,224 @@
/* global ga, performance */
(function () {
// Toggle this variable to output to the console debug GA messages.
var gaDebug = false;
function initGA (id, opts) {
(function (c, v, a, n) {
c.GoogleAnalyticsObject = n;
c[n] = c[n] || function () {
(c[n].q = c[n].q || []).push(arguments);
};
c[n].l = 1 * new Date();
var s = v.createElement('script');
s.async = true;
s.src = a;
s.addEventListener('load', enableDebug);
var m = v.getElementsByTagName('script')[0];
m.parentNode.insertBefore(s, m);
})(window, document, 'https://www.google-analytics.com/analytics.js', 'ga');
function enableDebug () {
if (!gaDebug) {
return;
}
window.ga = console.info.bind(console);
}
enableDebug();
ga('create', id, opts);
ga('set', 'forceSSL', true);
ga('send', 'pageview');
}
function initGAEvents () {
window.addEventListener('load', function () {
setTimeout(function () {
var t = performance.timing;
// Credit to https://github.com/addyosmani/timing.js/blob/c58c164/timing.js#L67-L88:
// Total time from start to load.
gaSendPageTiming('loadTime', t.loadEventEnd - t.fetchStart);
// Time spent constructing the DOM tree.
gaSendPageTiming('domReadyTime', t.domComplete - t.domInteractive);
// Time consumed preparing the new page.
gaSendPageTiming('readyStart', t.fetchStart - t.navigationStart);
// Time spent during redirection.
gaSendPageTiming('redirectTime', t.redirectEnd - t.redirectStart);
// AppCache.
gaSendPageTiming('appcacheTime', t.domainLookupStart - t.fetchStart);
// Time spent unloading documents.
gaSendPageTiming('unloadEventTime', t.unloadEventEnd - t.unloadEventStart);
// DNS query time.
gaSendPageTiming('lookupDomainTime', t.domainLookupEnd - t.domainLookupStart);
// TCP connection time.
gaSendPageTiming('connectTime', t.connectEnd - t.connectStart);
// Time spent during the request.
gaSendPageTiming('requestTime', t.responseEnd - t.requestStart);
// Request to completion of the DOM loading.
gaSendPageTiming('initDomTreeTime', t.domInteractive - t.responseEnd);
// Load event time.
gaSendPageTiming('loadEventTime', t.loadEventEnd - t.loadEventStart);
});
});
var gaSendTiming = function (timingCategory, timingLabel) {
return function (timingVar, timeEnd) {
if (typeof timeEnd === 'undefined') {
timeEnd = performance.now();
}
ga('send', {
hitType: 'timing',
timingCategory: timingCategory,
timingVar: timingVar,
timingValue: timeEnd,
timingLabel: timingLabel
});
};
};
var gaSendPageTiming = gaSendTiming('page');
ga('send', 'event', 'pageload.title', document.title);
ga('send', 'event', 'pageload.location', window.location.href);
ga('send', 'event', 'pageload.pathname', window.location.pathname);
ga('send', 'event', 'pageload.querystring', window.location.search);
ga('send', 'event', 'pageload.hash', window.location.hash);
ga('send', 'event', 'supports.getVRDisplays', 'getVRDisplays' in navigator);
ga('send', 'event', 'supports.getVRDevices', 'getVRDevices' in navigator);
ga('send', 'event', 'libs.aframe', 'AFRAME' in window ? (window.AFRAME.version || '<unknown>') : 'null');
ga('send', 'event', 'libs.three', 'THREE' in window ? (window.THREE.REVISION || '<unknown>') : 'null');
ga('send', 'event', 'libs.webvrpolyfill', 'WebVRConfig' in window || 'WebVRPolyfill' in window ? (window.WebVRPolyfill && window.WebVRPolyfill.version || '<unknown>') : 'null');
ga('send', 'event', 'libs.webvrplus', 'WEBVRPLUS' in window ? (window.WEBVRPLUS.version || '<unknown>') : 'null');
var getDeviceNames = function (devices) {
var names = (devices || []).map(function (device) {
return device ? (device.displayName || device.deviceName || '<unknown>') : '<unknown>';
});
return JSON.stringify(names);
};
var getPresentationStates = function (devices) {
var states = (devices || []).map(function (device) {
return device.isPresenting;
});
return JSON.stringify(states);
};
var fsElement;
var fsEvent;
if (document.body.requestFullscreen) {
fsElement = 'fullscreenElement';
fsEvent = 'fullscreenchange';
} else if (document.body.mozRequestFullScreen) {
fsElement = 'mozFullScreenElement';
fsEvent = 'mozfullscreenchange';
} else if (document.body.webkitRequestFullscreen) {
fsElement = 'webkitFullscreenElement';
fsEvent = 'webkitfullscreenchange';
} else if (document.body.msRequestFullscreen) {
fsElement = 'msFullscreenElement';
fsEvent = 'MSFullscreenChange';
}
document.addEventListener(fsEvent, function () {
var isFs = document[fsElement] instanceof HTMLElement;
ga('send', 'event', 'modechange.fullscreen', isFs);
if (navigator.getVRDevices) {
// NOTE: With the old API, we unfortunately cannot discern between
// entering/exiting fullscreen or VR mode - that is, whether
// `requestFullscreen({vrDisplay: display})` or
// `requestFullscreen(canvas)` was called.
var devices = [{isPresenting: isFs}];
ga('send', 'event', 'modechange.vr', getPresentationStates(devices));
}
});
if (navigator.getVRDisplays) {
navigator.getVRDisplays().then(function (devices) {
ga('send', 'event', 'pageload.getVRDisplays', getDeviceNames(devices));
window.addEventListener('vrdisplaypresentchange', function () {
ga('send', 'event', 'modechange.vr', getPresentationStates(devices));
});
});
} else if (navigator.getVRDevices) {
navigator.getVRDevices().then(function (devices) {
ga('send', 'event', 'pageload.getVRDevices', getDeviceNames(devices));
});
}
document.documentElement.addEventListener('click', function (e) {
var el = e.target.closest && e.target.closest('a, button') || e.target;
if (!el) { return; }
if (el.href) {
ga('send', 'event', 'click.link', el.href);
} else {
ga('send', 'event', 'click.button', el.id ? '#' + el.id : el.textContent);
}
});
window.addEventListener('appinstalled', function () {
var numVisits = storage.get('visits');
ga('send', 'event', 'app.installed.href', window.location.href);
ga('send', 'event', 'app.installed.visits', typeof numVisits === 'undefined' ? '<unknown>' : numVisits);
});
}
initGA('UA-86987247-1', {alwaysSendReferrer: true});
initGAEvents();
var html = document.documentElement;
var hash = window.location.hash.substr(1);
var onhashchange = function () {
var storage = {
has: function (key) {
try {
return key in localStorage;
} catch (e) {}
},
get: function (key) {
try {
return JSON.parse(localStorage[key]);
} catch (e) {}
},
remove: function (key) {
try {
delete localStorage[key];
} catch (e) {}
},
set: function (key, value) {
try {
localStorage[key] = JSON.stringify(value);
} catch (e) {}
}
};
var handleHashchange = function () {
hash = window.location.hash.substr(1);
if (hash) {
html.setAttribute('data-hash', hash);
}
};
var onclick = function (e) {
var handleLoad = function () {
handleHashchange();
var numVisits = 0;
if (storage.has('visits')) {
numVisits = parseInt(storage.get('visits'), 10) || 0;
}
storage.set('visits', ++numVisits);
};
var handleClick = function (e) {
// if (e.target.matches && e.target.matches('a[href="#' + hash + '"]')) {
// e.preventDefault();
// window.history.replaceState({}, document.title, window.location.pathname + window.location.search);
// }
};
onhashchange();
window.addEventListener('hashchange', onhashchange);
document.body.addEventListener('click', onclick);
window.addEventListener('hashchange', handleHashchange);
window.addEventListener('load', handleLoad);
document.body.addEventListener('click', handleClick);
})();

Просмотреть файл

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-10 -10 84 84">
<path fill="none" stroke="#000" stroke-width="20" d="M0 0h64v64H0z"/>
<circle cx="21" cy="32" r="7" fill-rule="evenodd"/>
<circle cx="43" cy="32" r="7" fill-rule="evenodd"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 252 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 644 B

После

Ширина:  |  Высота:  |  Размер: 644 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 546 B

После

Ширина:  |  Высота:  |  Размер: 546 B

Двоичные данные
public/rocks/favicon.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Двоичные данные
public/rocks/favicon.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.8 KiB

15
public/rocks/favicon.svg Normal file
Просмотреть файл

@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="a" d="M0 0h256v256H0z"/>
</defs>
<g fill="none" fill-rule="evenodd">
<mask id="b" fill="#fff">
<use xlink:href="#a"/>
</mask>
<path fill="#FFF" stroke="#3A46FF" stroke-width="40" d="M0 0h256v256H0z" mask="url(#b)"/>
<g fill="#3A46FF" transform="translate(51.2 106.24)">
<ellipse cx="22.4" cy="22.4" rx="22.4" ry="22.4"/>
<ellipse cx="131.2" cy="22.4" rx="22.4" ry="22.4"/>
</g>
</g>
</svg>

После

Ширина:  |  Высота:  |  Размер: 563 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 600 B

После

Ширина:  |  Высота:  |  Размер: 601 B

1
public/windows/logo.svg Normal file
Просмотреть файл

@ -0,0 +1 @@
<!-- Source: * URL: https://commons.wikimedia.org/wiki/File%3AWindows_logo_-_2012.svg * By Original work: Microsoft File:Windows 8 logo and wordmark.svg: Multiple editors; see image description page This work: Fry1989 [Public domain], via Wikimedia Commons --> <svg xmlns="http://www.w3.org/2000/svg" width="88" height="88"> <path fill="#111" d="M0 12.402l35.687-4.86.016 34.423-35.67.203zm35.67 33.53l.028 34.452L.028 75.48.026 45.7zm4.326-39.026L87.314 0v41.527l-47.318.376zm47.33 39.35l-.012 41.34-47.318-6.68-.066-34.738z"/> </svg>

После

Ширина:  |  Высота:  |  Размер: 538 B