home: new, mobile-first header + slick nav; misc updates
|
@ -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": [
|
||||
|
|
После Ширина: | Высота: | Размер: 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">« 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>
|
||||
|
|
|
@ -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 |
|
@ -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 |
После Ширина: | Высота: | Размер: 33 KiB |
После Ширина: | Высота: | Размер: 3.8 KiB |
|
@ -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 |
|
@ -1,4 +1,4 @@
|
|||
<svg class="rocks-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 160" xmlns:xlink="http://www.w3.org/1999/xlink" height="40">
|
||||
<title>WebVR.Rocks logo</title>
|
||||
<path fill="#3a46ff" fill-rule="evenodd" d="M0 0v160h250V0H0zm55.82 108.095c-15.917 0-28.82-12.78-28.82-28.547C27 63.78 39.903 51 55.82 51s28.82 12.78 28.82 28.548c0 7.57-3.036 14.832-8.44 20.186-5.405 5.354-12.736 8.36-20.38 8.36zm74.207-10.502h-10.054V62.407h10.054v35.186zm64.793 10.502c-15.917 0-28.82-12.78-28.82-28.547C166 63.78 178.903 51 194.82 51s28.82 12.78 28.82 28.548c0 15.766-12.903 28.547-28.82 28.547z"/>
|
||||
</svg>
|
||||
</svg>
|
До Ширина: | Высота: | Размер: 600 B После Ширина: | Высота: | Размер: 601 B |
|
@ -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 |