├── .gitignore ├── dist ├── assets │ ├── bg-multiplayer.30e474b9.jpeg │ ├── bg-videos.8ac5b88c.png │ ├── game.ccbe10fa.png │ ├── halo-infinite-cover-darkmode.ed3f195d.jpg │ ├── halo-infinite-cover.68e1c8bd.jpeg │ ├── index.01d86233.js │ ├── index.4f8983f5.css │ ├── logo.64de5307.png │ ├── master-chief-darkmode.b9352435.jpg │ └── master-chief.0be370c2.jpg └── index.html ├── index.html ├── package-lock.json ├── package.json └── src ├── css ├── main.css └── scheme.css ├── img ├── bg-multiplayer.jpeg ├── bg-videos.png ├── game.png ├── halo-infinite-cover-darkmode.jpg ├── halo-infinite-cover.jpeg ├── logo.png ├── master-chief-darkmode.jpg └── master-chief.jpg └── js └── main.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | .vscode 4 | dist -------------------------------------------------------------------------------- /dist/assets/bg-multiplayer.30e474b9.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/bg-multiplayer.30e474b9.jpeg -------------------------------------------------------------------------------- /dist/assets/bg-videos.8ac5b88c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/bg-videos.8ac5b88c.png -------------------------------------------------------------------------------- /dist/assets/game.ccbe10fa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/game.ccbe10fa.png -------------------------------------------------------------------------------- /dist/assets/halo-infinite-cover-darkmode.ed3f195d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/halo-infinite-cover-darkmode.ed3f195d.jpg -------------------------------------------------------------------------------- /dist/assets/halo-infinite-cover.68e1c8bd.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/halo-infinite-cover.68e1c8bd.jpeg -------------------------------------------------------------------------------- /dist/assets/index.01d86233.js: -------------------------------------------------------------------------------- 1 | const u=function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))d(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&d(s)}).observe(document,{childList:!0,subtree:!0});function c(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerpolicy&&(o.referrerPolicy=t.referrerpolicy),t.crossorigin==="use-credentials"?o.credentials="include":t.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function d(t){if(t.ep)return;t.ep=!0;const o=c(t);fetch(t.href,o)}};u();const a=document.querySelector("#bmore"),m=document.querySelector("#bmenu"),f=document.querySelector(".links"),p=document.querySelector(".more .menu");m.addEventListener("click",n=>{n.preventDefault(),f.classList.toggle("show")});a.addEventListener("click",n=>{n.preventDefault(),p.classList.toggle("show")});const i=[{id:"PyMlV5_HRWk"},{id:"XCbMVbeKlCg"},{id:"Fmdb-KmlzD8"},{id:"lOthvD1rMbQ"},{id:"nXDk86lQhto"}];document.querySelector("#slider");const y=document.querySelector("#current"),h=document.querySelector("#videos-container"),g=document.querySelector("#next"),v=document.querySelector("#prev");let e=0;g.addEventListener("click",n=>{let r=e;e=e+1{let r=e;e=e-1>=0?e-1:e,e!==r&&l(i[e].id)});l(i[e].id);b();function l(n){y.innerHTML=``}function b(){const n=i.map((r,c)=>` 2 |
3 | 4 | 5 | 6 |
`);h.innerHTML=n.join(""),document.querySelectorAll(".item a").forEach(r=>{r.addEventListener("click",c=>{c.preventDefault(),e=+r.getAttribute("data-id"),l(i[e].id)})})} 7 | -------------------------------------------------------------------------------- /dist/assets/index.4f8983f5.css: -------------------------------------------------------------------------------- 1 | *{box-sizing:border-box}body{font-family:Arial,Helvetica,sans-serif;font-size:16px;padding:0;margin:0;line-height:1.5;background-color:#000}.show{display:flex!important}nav{display:flex;align-items:center;justify-content:space-between;padding:0 5%}nav ul{display:flex;list-style:none;padding:0;margin:0}nav ul li>a{display:block;position:relative;padding:20px 15px 10px;text-decoration:none;color:#fff}nav ul li .link:before{content:"";position:absolute;display:block;left:0;bottom:0;width:100%;height:2px;transform:scaleX(0);transition:transform .3s ease;background-color:#fff}nav ul li .link:hover:before{transform:scaleX(1)}nav .more{display:none}nav .menu{position:absolute;display:none;flex-direction:column;min-width:200px;margin-top:48px;background-color:#fff}nav .menu a{padding:10px;color:#000;text-decoration:none}nav .menu a:hover{background-color:#000;color:#fff}nav .mobile{display:none;width:100%}nav .mobile .header{display:flex;text-align:center;justify-content:space-between;flex-direction:row;background-color:#000}nav .mobile .header a{color:#fff;display:inline-flex;text-decoration:none;padding:10px}nav .mobile .header #bmenu{border:none;background-color:transparent;cursor:pointer;color:#fff}nav .mobile .links{display:none;flex-direction:column;position:relative;z-index:200;background-color:#000}nav .mobile .links a{font-size:20px;display:block;padding:10px 20px;text-decoration:none;color:#fff}nav .mobile .links a:hover{font-size:20px;display:block;padding:10px 20px;text-decoration:none;color:#000;background-color:#fff}header{background-image:url(/assets/halo-infinite-cover-darkmode.ed3f195d.jpg);background-size:cover;background-position:center center;height:100vh}h2{font-size:3.3rem;position:relative;display:inline-block;padding:0;margin:0 0 40px}h2:before{content:"";position:absolute;width:100%;height:50px;bottom:-40px;left:0;transform:scale(.4) skewY(-20deg) rotate(20deg);background-color:#adff2f}#banner{font-size:1.8em;text-align:center;padding:40px;width:500px;position:absolute;z-index:100;top:200px;right:100px;color:#fff;background-color:#00000080}.green-button{text-transform:uppercase;border:0;display:inline-flex;align-items:center;font-size:14px;padding:10px 40px;background-color:#adff2f;color:#000;font-weight:bolder;text-decoration:none}.green-button:hover{background-color:#8acf21}.green-link{text-transform:uppercase;border:0;display:inline-flex;position:relative;align-items:center;font-size:16px;padding:10px 15px;color:#adff2f;font-weight:bolder;text-decoration:none}.green-link:before{content:"";position:absolute;display:block;left:0;bottom:0;width:100%;height:2px;transform:scaleX(0);transition:transform .3s ease;background-color:#adff2f}.green-link:hover:before{transform:scaleX(.8)}.w-75{width:75%;margin:0 auto}h3{font-size:1.6em;padding-top:50px;color:#fff}#videos{text-align:center;padding:50px 0;background-image:url(/assets/bg-videos.8ac5b88c.png);background-position:bottom center;background-repeat:no-repeat;background-size:cover;color:#fff}#videos #slider #controls{display:flex;justify-content:center}#videos #slider #controls #prev,#videos #slider #controls #next{border:none;height:50px;width:80px;background-color:#3a3a3a;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}#videos #slider #controls #prev:hover,#videos #slider #controls #next:hover{background-color:#252525}#videos #slider #current{width:1280px;margin:50px auto;border:solid 1px #00c3ff}#videos #slider #videos-container{display:flex;gap:10px;width:100%;justify-content:center;overflow:auto}#videos #slider #videos-container .item{border:solid 1px #00c3ff;cursor:pointer;overflow:hidden;min-width:320px;height:180px}#videos #slider #videos-container .item a{position:relative}#videos #slider #videos-container .item img{object-fit:contain;min-width:320px;height:180px;transition:opacity .3s ease}#videos #slider #videos-container .item:hover img{opacity:.6;object-fit:contain}#videos #slider #videos-container .item a:before{font-family:Material Icons;font-size:24px;content:"play_arrow";color:#fff;position:absolute;display:block;left:135px;top:-95px;width:50px;height:50px;background-color:#000;border-radius:50%;display:flex;justify-content:center;align-items:center;z-index:100}#multi-player{height:100vh;background-image:url(/assets/bg-multiplayer.30e474b9.jpeg);display:flex;align-items:center;justify-content:end}.info{line-height:1.2;padding:40px;width:600px;margin-right:50px;transition:background-color .3s ease}.info p{font-size:20px}#get-the-game{text-align:center;padding:50px 0;color:#fff}#get-the-game h2{color:#fff}#get-the-game h3{font-size:1.8rem;padding:0;margin:0}#get-the-game .item-store{display:flex;width:90%;justify-content:center;align-items:flex-start}#get-the-game .item-store .left{padding:0 20px;width:100%}#get-the-game .item-store .left img{width:500px}#get-the-game .item-store .right{text-align:left;width:80%}footer{height:800px;background-image:url(/assets/master-chief-darkmode.b9352435.jpg);background-repeat:no-repeat;background-size:cover}@media screen and (max-width: 1519px){.info{background-color:#000c;color:#fff}}@media screen and (max-width: 1191px){nav .link-hide{display:none}nav .more{display:flex}header{height:70vh}#banner{position:initial!important;z-index:100;width:100%}#slider #current{width:80%!important}#slider #current iframe{height:500px}#multi-player{background-position:center left}.info{width:600px;margin:0 auto}#get-the-game .item-store{width:100%;padding:20px}#get-the-game .item-store .left img{width:300px}#get-the-game .item-store .right{width:100%}footer{background-position:center center}}@media screen and (max-width: 701px){nav{width:100%;padding:0}nav ul{display:none}nav .mobile{display:block}header{background-position:center 40px;height:30vh}#slider #current{width:90%}#slider #current iframe{height:300px}#slider #videos-container{display:none!important}#multi-player{background-position:-400px 0px}.info{width:90%;margin:0 auto}#get-the-game .item-store{display:flex;flex-direction:column;width:100%;padding:20px}#get-the-game .item-store .left img{width:300px}#get-the-game .item-store .right{text-align:center;width:100%}footer{height:400px;background-position:center center}}@media (prefers-color-scheme: light){body{background-color:#fff}header{background-image:url(/assets/halo-infinite-cover.68e1c8bd.jpeg)}nav{background-color:#fff6}nav ul li a{color:#000}nav ul li .link:before{background-color:#000}nav .mobile .header{background-color:#fff}nav .mobile .header a{color:#000}nav .mobile .header #bmenu{color:#000}nav .mobile .links{background-color:#fff}nav .mobile .links a{color:#000}nav .mobile .links a:hover{color:#fff;background-color:#000}#banner{color:#000;background-color:#fff}h2:before{background-color:#8cd320}.green-button{background-color:#8cd320;color:#000}.green-button:hover{background-color:#adff2f}.green-link{color:#8cd320}.green-link:before{background-color:#8cd320}h3,#videos{color:#000}@media screen and (max-width: 1519px){.info{background-color:#fffc;color:#000}}#get-the-game,#get-the-game h2{color:#000}footer{background-image:url(/assets/master-chief.0be370c2.jpg)}} 2 | -------------------------------------------------------------------------------- /dist/assets/logo.64de5307.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/logo.64de5307.png -------------------------------------------------------------------------------- /dist/assets/master-chief-darkmode.b9352435.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/master-chief-darkmode.b9352435.jpg -------------------------------------------------------------------------------- /dist/assets/master-chief.0be370c2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/dist/assets/master-chief.0be370c2.jpg -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Halo Infinite 8 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | 73 |
74 | 75 | 89 | 90 |
91 |

BECOME

92 | 93 |

94 | The legendary Halo series returns with the most expansive Master Chief 95 | campaign yet and a ground-breaking free to play multiplayer 96 | experience. 97 |

98 | 99 |

Trailers and Gameplay

100 | 101 |
102 |
103 | 106 | 109 |
110 |
111 | 112 |
113 |
114 |
115 | 116 |
117 |
118 |

LEGENDARY MULTIPLAYER, FREED

119 |

120 | The next era of Halo begins! To celebrate the 20th Anniversary of 121 | the franchise, Halo Infinite's multiplayer beta is available now and 122 | free to play on Xbox and PC. Begin your personal Spartan journey 123 | today with Season 1, “Heroes of Reach”, and stay tuned for upcoming, 124 | limited-time in-game events and exclusive rewards. 125 |

126 |
127 |
128 | 129 |
130 |

Get the game.

131 | 132 |
133 |
134 | 135 |
136 | 137 |
138 |
139 |

Halo Infinite (Campaign)

140 |

Included with Xbox Game Pass Play Halo

141 |

142 | Infinite and over 100 more high-quality games for one low 143 | monthly price with Xbox Game Pass. 144 |

145 | 148 | 149 |

Buy Halo Inifnite

150 |

$59.99 USD

151 | 156 |

157 | 160 |

161 |
162 |
163 |
164 |
165 | 166 |
167 |
168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Halo Infinite - Vida MRR 8 | 12 | 13 | 14 |
15 |
16 | 71 |
72 | 73 | 87 | 88 |
89 |

BECOME

90 | 91 |

92 | The legendary Halo series returns with the most expansive Master Chief 93 | campaign yet and a ground-breaking free to play multiplayer 94 | experience. 95 |

96 | 97 |

Trailers and Gameplay

98 | 99 |
100 |
101 | 104 | 107 |
108 |
109 | 110 |
111 |
112 |
113 | 114 |
115 |
116 |

LEGENDARY MULTIPLAYER, FREED

117 |

118 | The next era of Halo begins! To celebrate the 20th Anniversary of 119 | the franchise, Halo Infinite's multiplayer beta is available now and 120 | free to play on Xbox and PC. Begin your personal Spartan journey 121 | today with Season 1, “Heroes of Reach”, and stay tuned for upcoming, 122 | limited-time in-game events and exclusive rewards. 123 |

124 |
125 |
126 | 127 |
128 |

Get the game.

129 | 130 |
131 |
132 | 133 |
134 | 135 |
136 |
137 |

Halo Infinite (Campaign)

138 |

Included with Xbox Game Pass Play Halo

139 |

140 | Infinite and over 100 more high-quality games for one low 141 | monthly price with Xbox Game Pass. 142 |

143 | 146 | 147 |

Buy Halo Inifnite

148 |

$59.99 USD

149 | 154 |

155 | 158 |

159 |
160 |
161 |
162 |
163 | 164 |
165 |
166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "halo-website", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "version": "1.0.0", 9 | "license": "ISC", 10 | "dependencies": { 11 | "vite": "^2.8.4" 12 | } 13 | }, 14 | "node_modules/esbuild": { 15 | "version": "0.14.23", 16 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", 17 | "integrity": "sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==", 18 | "hasInstallScript": true, 19 | "dependencies": { 20 | "esbuild-android-arm64": "0.14.23", 21 | "esbuild-darwin-64": "0.14.23", 22 | "esbuild-darwin-arm64": "0.14.23", 23 | "esbuild-freebsd-64": "0.14.23", 24 | "esbuild-freebsd-arm64": "0.14.23", 25 | "esbuild-linux-32": "0.14.23", 26 | "esbuild-linux-64": "0.14.23", 27 | "esbuild-linux-arm": "0.14.23", 28 | "esbuild-linux-arm64": "0.14.23", 29 | "esbuild-linux-mips64le": "0.14.23", 30 | "esbuild-linux-ppc64le": "0.14.23", 31 | "esbuild-linux-riscv64": "0.14.23", 32 | "esbuild-linux-s390x": "0.14.23", 33 | "esbuild-netbsd-64": "0.14.23", 34 | "esbuild-openbsd-64": "0.14.23", 35 | "esbuild-sunos-64": "0.14.23", 36 | "esbuild-windows-32": "0.14.23", 37 | "esbuild-windows-64": "0.14.23", 38 | "esbuild-windows-arm64": "0.14.23" 39 | }, 40 | "bin": { 41 | "esbuild": "bin/esbuild" 42 | }, 43 | "engines": { 44 | "node": ">=12" 45 | }, 46 | "optionalDependencies": { 47 | "esbuild-android-arm64": "0.14.23", 48 | "esbuild-darwin-64": "0.14.23", 49 | "esbuild-darwin-arm64": "0.14.23", 50 | "esbuild-freebsd-64": "0.14.23", 51 | "esbuild-freebsd-arm64": "0.14.23", 52 | "esbuild-linux-32": "0.14.23", 53 | "esbuild-linux-64": "0.14.23", 54 | "esbuild-linux-arm": "0.14.23", 55 | "esbuild-linux-arm64": "0.14.23", 56 | "esbuild-linux-mips64le": "0.14.23", 57 | "esbuild-linux-ppc64le": "0.14.23", 58 | "esbuild-linux-riscv64": "0.14.23", 59 | "esbuild-linux-s390x": "0.14.23", 60 | "esbuild-netbsd-64": "0.14.23", 61 | "esbuild-openbsd-64": "0.14.23", 62 | "esbuild-sunos-64": "0.14.23", 63 | "esbuild-windows-32": "0.14.23", 64 | "esbuild-windows-64": "0.14.23", 65 | "esbuild-windows-arm64": "0.14.23" 66 | } 67 | }, 68 | "node_modules/esbuild-android-arm64": { 69 | "version": "0.14.23", 70 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz", 71 | "integrity": "sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==", 72 | "cpu": [ 73 | "arm64" 74 | ], 75 | "optional": true, 76 | "os": [ 77 | "android" 78 | ], 79 | "engines": { 80 | "node": ">=12" 81 | } 82 | }, 83 | "node_modules/esbuild-darwin-64": { 84 | "version": "0.14.23", 85 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz", 86 | "integrity": "sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==", 87 | "cpu": [ 88 | "x64" 89 | ], 90 | "optional": true, 91 | "os": [ 92 | "darwin" 93 | ], 94 | "engines": { 95 | "node": ">=12" 96 | } 97 | }, 98 | "node_modules/esbuild-darwin-arm64": { 99 | "version": "0.14.23", 100 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz", 101 | "integrity": "sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==", 102 | "cpu": [ 103 | "arm64" 104 | ], 105 | "optional": true, 106 | "os": [ 107 | "darwin" 108 | ], 109 | "engines": { 110 | "node": ">=12" 111 | } 112 | }, 113 | "node_modules/esbuild-freebsd-64": { 114 | "version": "0.14.23", 115 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz", 116 | "integrity": "sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==", 117 | "cpu": [ 118 | "x64" 119 | ], 120 | "optional": true, 121 | "os": [ 122 | "freebsd" 123 | ], 124 | "engines": { 125 | "node": ">=12" 126 | } 127 | }, 128 | "node_modules/esbuild-freebsd-arm64": { 129 | "version": "0.14.23", 130 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz", 131 | "integrity": "sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==", 132 | "cpu": [ 133 | "arm64" 134 | ], 135 | "optional": true, 136 | "os": [ 137 | "freebsd" 138 | ], 139 | "engines": { 140 | "node": ">=12" 141 | } 142 | }, 143 | "node_modules/esbuild-linux-32": { 144 | "version": "0.14.23", 145 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz", 146 | "integrity": "sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==", 147 | "cpu": [ 148 | "ia32" 149 | ], 150 | "optional": true, 151 | "os": [ 152 | "linux" 153 | ], 154 | "engines": { 155 | "node": ">=12" 156 | } 157 | }, 158 | "node_modules/esbuild-linux-64": { 159 | "version": "0.14.23", 160 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz", 161 | "integrity": "sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==", 162 | "cpu": [ 163 | "x64" 164 | ], 165 | "optional": true, 166 | "os": [ 167 | "linux" 168 | ], 169 | "engines": { 170 | "node": ">=12" 171 | } 172 | }, 173 | "node_modules/esbuild-linux-arm": { 174 | "version": "0.14.23", 175 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz", 176 | "integrity": "sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==", 177 | "cpu": [ 178 | "arm" 179 | ], 180 | "optional": true, 181 | "os": [ 182 | "linux" 183 | ], 184 | "engines": { 185 | "node": ">=12" 186 | } 187 | }, 188 | "node_modules/esbuild-linux-arm64": { 189 | "version": "0.14.23", 190 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz", 191 | "integrity": "sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==", 192 | "cpu": [ 193 | "arm64" 194 | ], 195 | "optional": true, 196 | "os": [ 197 | "linux" 198 | ], 199 | "engines": { 200 | "node": ">=12" 201 | } 202 | }, 203 | "node_modules/esbuild-linux-mips64le": { 204 | "version": "0.14.23", 205 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz", 206 | "integrity": "sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==", 207 | "cpu": [ 208 | "mips64el" 209 | ], 210 | "optional": true, 211 | "os": [ 212 | "linux" 213 | ], 214 | "engines": { 215 | "node": ">=12" 216 | } 217 | }, 218 | "node_modules/esbuild-linux-ppc64le": { 219 | "version": "0.14.23", 220 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz", 221 | "integrity": "sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==", 222 | "cpu": [ 223 | "ppc64" 224 | ], 225 | "optional": true, 226 | "os": [ 227 | "linux" 228 | ], 229 | "engines": { 230 | "node": ">=12" 231 | } 232 | }, 233 | "node_modules/esbuild-linux-riscv64": { 234 | "version": "0.14.23", 235 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz", 236 | "integrity": "sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==", 237 | "cpu": [ 238 | "riscv64" 239 | ], 240 | "optional": true, 241 | "os": [ 242 | "linux" 243 | ], 244 | "engines": { 245 | "node": ">=12" 246 | } 247 | }, 248 | "node_modules/esbuild-linux-s390x": { 249 | "version": "0.14.23", 250 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz", 251 | "integrity": "sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==", 252 | "cpu": [ 253 | "s390x" 254 | ], 255 | "optional": true, 256 | "os": [ 257 | "linux" 258 | ], 259 | "engines": { 260 | "node": ">=12" 261 | } 262 | }, 263 | "node_modules/esbuild-netbsd-64": { 264 | "version": "0.14.23", 265 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz", 266 | "integrity": "sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==", 267 | "cpu": [ 268 | "x64" 269 | ], 270 | "optional": true, 271 | "os": [ 272 | "netbsd" 273 | ], 274 | "engines": { 275 | "node": ">=12" 276 | } 277 | }, 278 | "node_modules/esbuild-openbsd-64": { 279 | "version": "0.14.23", 280 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz", 281 | "integrity": "sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==", 282 | "cpu": [ 283 | "x64" 284 | ], 285 | "optional": true, 286 | "os": [ 287 | "openbsd" 288 | ], 289 | "engines": { 290 | "node": ">=12" 291 | } 292 | }, 293 | "node_modules/esbuild-sunos-64": { 294 | "version": "0.14.23", 295 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz", 296 | "integrity": "sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==", 297 | "cpu": [ 298 | "x64" 299 | ], 300 | "optional": true, 301 | "os": [ 302 | "sunos" 303 | ], 304 | "engines": { 305 | "node": ">=12" 306 | } 307 | }, 308 | "node_modules/esbuild-windows-32": { 309 | "version": "0.14.23", 310 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz", 311 | "integrity": "sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==", 312 | "cpu": [ 313 | "ia32" 314 | ], 315 | "optional": true, 316 | "os": [ 317 | "win32" 318 | ], 319 | "engines": { 320 | "node": ">=12" 321 | } 322 | }, 323 | "node_modules/esbuild-windows-64": { 324 | "version": "0.14.23", 325 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz", 326 | "integrity": "sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==", 327 | "cpu": [ 328 | "x64" 329 | ], 330 | "optional": true, 331 | "os": [ 332 | "win32" 333 | ], 334 | "engines": { 335 | "node": ">=12" 336 | } 337 | }, 338 | "node_modules/esbuild-windows-arm64": { 339 | "version": "0.14.23", 340 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz", 341 | "integrity": "sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==", 342 | "cpu": [ 343 | "arm64" 344 | ], 345 | "optional": true, 346 | "os": [ 347 | "win32" 348 | ], 349 | "engines": { 350 | "node": ">=12" 351 | } 352 | }, 353 | "node_modules/fsevents": { 354 | "version": "2.3.2", 355 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 356 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 357 | "hasInstallScript": true, 358 | "optional": true, 359 | "os": [ 360 | "darwin" 361 | ], 362 | "engines": { 363 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 364 | } 365 | }, 366 | "node_modules/function-bind": { 367 | "version": "1.1.1", 368 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 369 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 370 | }, 371 | "node_modules/has": { 372 | "version": "1.0.3", 373 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 374 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 375 | "dependencies": { 376 | "function-bind": "^1.1.1" 377 | }, 378 | "engines": { 379 | "node": ">= 0.4.0" 380 | } 381 | }, 382 | "node_modules/is-core-module": { 383 | "version": "2.8.1", 384 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 385 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 386 | "dependencies": { 387 | "has": "^1.0.3" 388 | }, 389 | "funding": { 390 | "url": "https://github.com/sponsors/ljharb" 391 | } 392 | }, 393 | "node_modules/nanoid": { 394 | "version": "3.3.1", 395 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", 396 | "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", 397 | "bin": { 398 | "nanoid": "bin/nanoid.cjs" 399 | }, 400 | "engines": { 401 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 402 | } 403 | }, 404 | "node_modules/path-parse": { 405 | "version": "1.0.7", 406 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 407 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 408 | }, 409 | "node_modules/picocolors": { 410 | "version": "1.0.0", 411 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 412 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 413 | }, 414 | "node_modules/postcss": { 415 | "version": "8.4.7", 416 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz", 417 | "integrity": "sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==", 418 | "dependencies": { 419 | "nanoid": "^3.3.1", 420 | "picocolors": "^1.0.0", 421 | "source-map-js": "^1.0.2" 422 | }, 423 | "engines": { 424 | "node": "^10 || ^12 || >=14" 425 | }, 426 | "funding": { 427 | "type": "opencollective", 428 | "url": "https://opencollective.com/postcss/" 429 | } 430 | }, 431 | "node_modules/resolve": { 432 | "version": "1.22.0", 433 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 434 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 435 | "dependencies": { 436 | "is-core-module": "^2.8.1", 437 | "path-parse": "^1.0.7", 438 | "supports-preserve-symlinks-flag": "^1.0.0" 439 | }, 440 | "bin": { 441 | "resolve": "bin/resolve" 442 | }, 443 | "funding": { 444 | "url": "https://github.com/sponsors/ljharb" 445 | } 446 | }, 447 | "node_modules/rollup": { 448 | "version": "2.68.0", 449 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.68.0.tgz", 450 | "integrity": "sha512-XrMKOYK7oQcTio4wyTz466mucnd8LzkiZLozZ4Rz0zQD+HeX4nUK4B8GrTX/2EvN2/vBF/i2WnaXboPxo0JylA==", 451 | "dependencies": { 452 | "fsevents": "~2.3.2" 453 | }, 454 | "bin": { 455 | "rollup": "dist/bin/rollup" 456 | }, 457 | "engines": { 458 | "node": ">=10.0.0" 459 | }, 460 | "optionalDependencies": { 461 | "fsevents": "~2.3.2" 462 | } 463 | }, 464 | "node_modules/source-map-js": { 465 | "version": "1.0.2", 466 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 467 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 468 | "engines": { 469 | "node": ">=0.10.0" 470 | } 471 | }, 472 | "node_modules/supports-preserve-symlinks-flag": { 473 | "version": "1.0.0", 474 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 475 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 476 | "engines": { 477 | "node": ">= 0.4" 478 | }, 479 | "funding": { 480 | "url": "https://github.com/sponsors/ljharb" 481 | } 482 | }, 483 | "node_modules/vite": { 484 | "version": "2.8.4", 485 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.8.4.tgz", 486 | "integrity": "sha512-GwtOkkaT2LDI82uWZKcrpRQxP5tymLnC7hVHHqNkhFNknYr0hJUlDLfhVRgngJvAy3RwypkDCWtTKn1BjO96Dw==", 487 | "dependencies": { 488 | "esbuild": "^0.14.14", 489 | "fsevents": "~2.3.2", 490 | "postcss": "^8.4.6", 491 | "resolve": "^1.22.0", 492 | "rollup": "^2.59.0" 493 | }, 494 | "bin": { 495 | "vite": "bin/vite.js" 496 | }, 497 | "engines": { 498 | "node": ">=12.2.0" 499 | }, 500 | "optionalDependencies": { 501 | "fsevents": "~2.3.2" 502 | }, 503 | "peerDependencies": { 504 | "less": "*", 505 | "sass": "*", 506 | "stylus": "*" 507 | }, 508 | "peerDependenciesMeta": { 509 | "less": { 510 | "optional": true 511 | }, 512 | "sass": { 513 | "optional": true 514 | }, 515 | "stylus": { 516 | "optional": true 517 | } 518 | } 519 | } 520 | }, 521 | "dependencies": { 522 | "esbuild": { 523 | "version": "0.14.23", 524 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", 525 | "integrity": "sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==", 526 | "requires": { 527 | "esbuild-android-arm64": "0.14.23", 528 | "esbuild-darwin-64": "0.14.23", 529 | "esbuild-darwin-arm64": "0.14.23", 530 | "esbuild-freebsd-64": "0.14.23", 531 | "esbuild-freebsd-arm64": "0.14.23", 532 | "esbuild-linux-32": "0.14.23", 533 | "esbuild-linux-64": "0.14.23", 534 | "esbuild-linux-arm": "0.14.23", 535 | "esbuild-linux-arm64": "0.14.23", 536 | "esbuild-linux-mips64le": "0.14.23", 537 | "esbuild-linux-ppc64le": "0.14.23", 538 | "esbuild-linux-riscv64": "0.14.23", 539 | "esbuild-linux-s390x": "0.14.23", 540 | "esbuild-netbsd-64": "0.14.23", 541 | "esbuild-openbsd-64": "0.14.23", 542 | "esbuild-sunos-64": "0.14.23", 543 | "esbuild-windows-32": "0.14.23", 544 | "esbuild-windows-64": "0.14.23", 545 | "esbuild-windows-arm64": "0.14.23" 546 | } 547 | }, 548 | "esbuild-android-arm64": { 549 | "version": "0.14.23", 550 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.23.tgz", 551 | "integrity": "sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==", 552 | "optional": true 553 | }, 554 | "esbuild-darwin-64": { 555 | "version": "0.14.23", 556 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.23.tgz", 557 | "integrity": "sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==", 558 | "optional": true 559 | }, 560 | "esbuild-darwin-arm64": { 561 | "version": "0.14.23", 562 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.23.tgz", 563 | "integrity": "sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==", 564 | "optional": true 565 | }, 566 | "esbuild-freebsd-64": { 567 | "version": "0.14.23", 568 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.23.tgz", 569 | "integrity": "sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==", 570 | "optional": true 571 | }, 572 | "esbuild-freebsd-arm64": { 573 | "version": "0.14.23", 574 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.23.tgz", 575 | "integrity": "sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==", 576 | "optional": true 577 | }, 578 | "esbuild-linux-32": { 579 | "version": "0.14.23", 580 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.23.tgz", 581 | "integrity": "sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==", 582 | "optional": true 583 | }, 584 | "esbuild-linux-64": { 585 | "version": "0.14.23", 586 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.23.tgz", 587 | "integrity": "sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==", 588 | "optional": true 589 | }, 590 | "esbuild-linux-arm": { 591 | "version": "0.14.23", 592 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.23.tgz", 593 | "integrity": "sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==", 594 | "optional": true 595 | }, 596 | "esbuild-linux-arm64": { 597 | "version": "0.14.23", 598 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.23.tgz", 599 | "integrity": "sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==", 600 | "optional": true 601 | }, 602 | "esbuild-linux-mips64le": { 603 | "version": "0.14.23", 604 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.23.tgz", 605 | "integrity": "sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==", 606 | "optional": true 607 | }, 608 | "esbuild-linux-ppc64le": { 609 | "version": "0.14.23", 610 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.23.tgz", 611 | "integrity": "sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==", 612 | "optional": true 613 | }, 614 | "esbuild-linux-riscv64": { 615 | "version": "0.14.23", 616 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.23.tgz", 617 | "integrity": "sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==", 618 | "optional": true 619 | }, 620 | "esbuild-linux-s390x": { 621 | "version": "0.14.23", 622 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.23.tgz", 623 | "integrity": "sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==", 624 | "optional": true 625 | }, 626 | "esbuild-netbsd-64": { 627 | "version": "0.14.23", 628 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.23.tgz", 629 | "integrity": "sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==", 630 | "optional": true 631 | }, 632 | "esbuild-openbsd-64": { 633 | "version": "0.14.23", 634 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.23.tgz", 635 | "integrity": "sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==", 636 | "optional": true 637 | }, 638 | "esbuild-sunos-64": { 639 | "version": "0.14.23", 640 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.23.tgz", 641 | "integrity": "sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==", 642 | "optional": true 643 | }, 644 | "esbuild-windows-32": { 645 | "version": "0.14.23", 646 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.23.tgz", 647 | "integrity": "sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==", 648 | "optional": true 649 | }, 650 | "esbuild-windows-64": { 651 | "version": "0.14.23", 652 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.23.tgz", 653 | "integrity": "sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==", 654 | "optional": true 655 | }, 656 | "esbuild-windows-arm64": { 657 | "version": "0.14.23", 658 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.23.tgz", 659 | "integrity": "sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==", 660 | "optional": true 661 | }, 662 | "fsevents": { 663 | "version": "2.3.2", 664 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 665 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 666 | "optional": true 667 | }, 668 | "function-bind": { 669 | "version": "1.1.1", 670 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 671 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 672 | }, 673 | "has": { 674 | "version": "1.0.3", 675 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 676 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 677 | "requires": { 678 | "function-bind": "^1.1.1" 679 | } 680 | }, 681 | "is-core-module": { 682 | "version": "2.8.1", 683 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 684 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 685 | "requires": { 686 | "has": "^1.0.3" 687 | } 688 | }, 689 | "nanoid": { 690 | "version": "3.3.1", 691 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", 692 | "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" 693 | }, 694 | "path-parse": { 695 | "version": "1.0.7", 696 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 697 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 698 | }, 699 | "picocolors": { 700 | "version": "1.0.0", 701 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 702 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 703 | }, 704 | "postcss": { 705 | "version": "8.4.7", 706 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz", 707 | "integrity": "sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==", 708 | "requires": { 709 | "nanoid": "^3.3.1", 710 | "picocolors": "^1.0.0", 711 | "source-map-js": "^1.0.2" 712 | } 713 | }, 714 | "resolve": { 715 | "version": "1.22.0", 716 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 717 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 718 | "requires": { 719 | "is-core-module": "^2.8.1", 720 | "path-parse": "^1.0.7", 721 | "supports-preserve-symlinks-flag": "^1.0.0" 722 | } 723 | }, 724 | "rollup": { 725 | "version": "2.68.0", 726 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.68.0.tgz", 727 | "integrity": "sha512-XrMKOYK7oQcTio4wyTz466mucnd8LzkiZLozZ4Rz0zQD+HeX4nUK4B8GrTX/2EvN2/vBF/i2WnaXboPxo0JylA==", 728 | "requires": { 729 | "fsevents": "~2.3.2" 730 | } 731 | }, 732 | "source-map-js": { 733 | "version": "1.0.2", 734 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 735 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 736 | }, 737 | "supports-preserve-symlinks-flag": { 738 | "version": "1.0.0", 739 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 740 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" 741 | }, 742 | "vite": { 743 | "version": "2.8.4", 744 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.8.4.tgz", 745 | "integrity": "sha512-GwtOkkaT2LDI82uWZKcrpRQxP5tymLnC7hVHHqNkhFNknYr0hJUlDLfhVRgngJvAy3RwypkDCWtTKn1BjO96Dw==", 746 | "requires": { 747 | "esbuild": "^0.14.14", 748 | "fsevents": "~2.3.2", 749 | "postcss": "^8.4.6", 750 | "resolve": "^1.22.0", 751 | "rollup": "^2.59.0" 752 | } 753 | } 754 | } 755 | } 756 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "halo-website", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "vite": "^2.8.4" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/css/main.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | body { 6 | font-family: Arial, Helvetica, sans-serif; 7 | font-size: 16px; 8 | padding: 0; 9 | margin: 0; 10 | line-height: 1.5; 11 | 12 | background-color: black; 13 | } 14 | 15 | /*---------------- 16 | NAVBAR 17 | -------------------*/ 18 | 19 | .show { 20 | display: flex !important; 21 | } 22 | 23 | nav { 24 | display: flex; 25 | align-items: center; 26 | justify-content: space-between; 27 | padding: 0 5%; 28 | } 29 | 30 | nav ul { 31 | display: flex; 32 | list-style: none; 33 | padding: 0; 34 | margin: 0; 35 | } 36 | 37 | nav ul li > a { 38 | display: block; 39 | position: relative; 40 | padding: 20px 15px 10px 15px; 41 | text-decoration: none; 42 | 43 | color: white; 44 | } 45 | 46 | nav ul li .link::before { 47 | content: ""; 48 | position: absolute; 49 | display: block; 50 | left: 0; 51 | bottom: 0; 52 | width: 100%; 53 | height: 2px; 54 | transform: scaleX(0); 55 | transition: transform 0.3s ease; 56 | 57 | background-color: white; 58 | } 59 | 60 | nav ul li .link:hover::before { 61 | transform: scaleX(1); 62 | } 63 | 64 | nav .more { 65 | display: none; 66 | } 67 | 68 | nav .menu { 69 | position: absolute; 70 | display: none; 71 | flex-direction: column; 72 | min-width: 200px; 73 | margin-top: 48px; 74 | 75 | background-color: white; 76 | } 77 | 78 | nav .menu a { 79 | padding: 10px; 80 | color: black; 81 | text-decoration: none; 82 | } 83 | nav .menu a:hover { 84 | background-color: black; 85 | color: white; 86 | } 87 | 88 | nav .mobile { 89 | display: none; 90 | width: 100%; 91 | } 92 | 93 | nav .mobile .header { 94 | display: flex; 95 | text-align: center; 96 | justify-content: space-between; 97 | flex-direction: row; 98 | 99 | background-color: black; 100 | } 101 | 102 | nav .mobile .header a { 103 | color: white; 104 | display: inline-flex; 105 | text-decoration: none; 106 | padding: 10px; 107 | } 108 | 109 | nav .mobile .header #bmenu { 110 | border: none; 111 | background-color: transparent; 112 | cursor: pointer; 113 | 114 | color: white; 115 | } 116 | 117 | nav .mobile .links { 118 | display: none; 119 | flex-direction: column; 120 | position: relative; 121 | z-index: 200; 122 | 123 | background-color: black; 124 | } 125 | nav .mobile .links a { 126 | font-size: 20px; 127 | display: block; 128 | padding: 10px 20px; 129 | text-decoration: none; 130 | 131 | color: white; 132 | } 133 | 134 | nav .mobile .links a:hover { 135 | font-size: 20px; 136 | display: block; 137 | padding: 10px 20px; 138 | text-decoration: none; 139 | 140 | color: black; 141 | background-color: white; 142 | } 143 | 144 | /*---------------- 145 | HEADER 146 | -------------------*/ 147 | header { 148 | background-image: url(../img/halo-infinite-cover-darkmode.jpg); 149 | background-size: cover; 150 | background-position: center center; 151 | height: 100vh; 152 | } 153 | 154 | /*---------------- 155 | BANNER 156 | -------------------*/ 157 | 158 | h2 { 159 | font-size: 3.3rem; 160 | position: relative; 161 | display: inline-block; 162 | padding: 0; 163 | margin: 0; 164 | margin-bottom: 40px; 165 | } 166 | 167 | h2::before { 168 | content: ""; 169 | position: absolute; 170 | width: 100%; 171 | height: 50px; 172 | bottom: -40px; 173 | left: 0; 174 | 175 | transform: scale(0.4) skewY(-20deg) rotate(20deg); 176 | 177 | background-color: greenyellow; 178 | } 179 | 180 | #banner { 181 | font-size: 1.8em; 182 | text-align: center; 183 | padding: 40px; 184 | width: 500px; 185 | position: absolute; 186 | z-index: 100; 187 | top: 200px; 188 | right: 100px; 189 | 190 | color: white; 191 | background-color: rgba(0, 0, 0, 0.5); 192 | } 193 | 194 | .green-button { 195 | text-transform: uppercase; 196 | border: 0; 197 | display: inline-flex; 198 | align-items: center; 199 | font-size: 14px; 200 | padding: 10px 40px; 201 | background-color: greenyellow; 202 | color: black; 203 | font-weight: bolder; 204 | text-decoration: none; 205 | } 206 | .green-button:hover { 207 | background-color: rgb(138, 207, 33); 208 | } 209 | 210 | .green-link { 211 | text-transform: uppercase; 212 | border: 0; 213 | display: inline-flex; 214 | position: relative; 215 | align-items: center; 216 | font-size: 16px; 217 | padding: 10px 15px; 218 | color: greenyellow; 219 | font-weight: bolder; 220 | text-decoration: none; 221 | } 222 | 223 | .green-link::before { 224 | content: ""; 225 | position: absolute; 226 | display: block; 227 | left: 0; 228 | bottom: 0; 229 | width: 100%; 230 | height: 2px; 231 | transform: scaleX(0); 232 | transition: transform 0.3s ease; 233 | 234 | background-color: greenyellow; 235 | } 236 | 237 | .green-link:hover::before { 238 | transform: scaleX(0.8); 239 | } 240 | 241 | /*---------------- 242 | VIDEOS 243 | -------------------*/ 244 | .w-75 { 245 | width: 75%; 246 | margin: 0 auto; 247 | } 248 | 249 | h3 { 250 | font-size: 1.6em; 251 | padding-top: 50px; 252 | 253 | color: white; 254 | } 255 | 256 | #videos { 257 | text-align: center; 258 | padding: 50px 0; 259 | 260 | background-image: url(../img/bg-videos.png); 261 | background-position: bottom center; 262 | background-repeat: no-repeat; 263 | background-size: cover; 264 | 265 | color: white; 266 | } 267 | 268 | #videos #slider #controls { 269 | display: flex; 270 | justify-content: center; 271 | } 272 | 273 | #videos #slider #controls #prev, 274 | #videos #slider #controls #next { 275 | border: none; 276 | height: 50px; 277 | width: 80px; 278 | background-color: rgb(58, 58, 58); 279 | color: white; 280 | cursor: pointer; 281 | display: flex; 282 | align-items: center; 283 | justify-content: center; 284 | transition: all 0.3s ease; 285 | } 286 | 287 | #videos #slider #controls #prev:hover, 288 | #videos #slider #controls #next:hover { 289 | background-color: rgb(37, 37, 37); 290 | } 291 | 292 | #videos #slider #current { 293 | width: 1280px; 294 | margin: 50px auto; 295 | border: solid 1px #00c3ff; 296 | } 297 | 298 | #videos #slider #videos-container { 299 | display: flex; 300 | gap: 10px; 301 | width: 100%; 302 | justify-content: center; 303 | overflow: auto; 304 | } 305 | 306 | #videos #slider #videos-container .item { 307 | border: solid 1px #00c3ff; 308 | cursor: pointer; 309 | overflow: hidden; 310 | 311 | min-width: 320px; 312 | height: 180px; 313 | } 314 | 315 | #videos #slider #videos-container .item a { 316 | position: relative; 317 | } 318 | 319 | #videos #slider #videos-container .item img { 320 | object-fit: contain; 321 | min-width: 320px; 322 | height: 180px; 323 | transition: opacity 0.3s ease; 324 | } 325 | 326 | #videos #slider #videos-container .item:hover img { 327 | opacity: 0.6; 328 | object-fit: contain; 329 | } 330 | 331 | #videos #slider #videos-container .item a::before { 332 | font-family: "Material Icons"; 333 | font-size: 24px; 334 | content: "play_arrow"; 335 | color: white; 336 | position: absolute; 337 | display: block; 338 | left: 135px; 339 | top: -95px; 340 | width: 50px; 341 | height: 50px; 342 | background-color: black; 343 | border-radius: 50%; 344 | display: flex; 345 | justify-content: center; 346 | align-items: center; 347 | z-index: 100; 348 | } 349 | 350 | /*---------------- 351 | MULTIPLAYER 352 | -------------------*/ 353 | 354 | #multi-player { 355 | height: 100vh; 356 | background-image: url(../img/bg-multiplayer.jpeg); 357 | display: flex; 358 | align-items: center; 359 | justify-content: end; 360 | } 361 | 362 | .info { 363 | line-height: 1.2; 364 | padding: 40px; 365 | width: 600px; 366 | margin-right: 50px; 367 | 368 | transition: background-color 0.3s ease; 369 | } 370 | 371 | .info p { 372 | font-size: 20px; 373 | } 374 | 375 | /*---------------- 376 | GET THE GAME - STORE 377 | -------------------*/ 378 | #get-the-game { 379 | text-align: center; 380 | padding: 50px 0; 381 | 382 | color: white; 383 | } 384 | #get-the-game h2 { 385 | color: white; 386 | } 387 | #get-the-game h3 { 388 | font-size: 1.8rem; 389 | padding: 0; 390 | margin: 0; 391 | } 392 | 393 | #get-the-game .item-store { 394 | display: flex; 395 | width: 90%; 396 | justify-content: center; 397 | align-items: flex-start; 398 | } 399 | 400 | #get-the-game .item-store .left { 401 | padding: 0 20px; 402 | width: 100%; 403 | } 404 | 405 | #get-the-game .item-store .left img { 406 | width: 500px; 407 | } 408 | 409 | #get-the-game .item-store .right { 410 | text-align: left; 411 | width: 80%; 412 | } 413 | 414 | footer { 415 | height: 800px; 416 | 417 | background-image: url(../img/master-chief-darkmode.jpg); 418 | background-repeat: no-repeat; 419 | background-size: cover; 420 | } 421 | 422 | @media screen and (max-width: 1519px) { 423 | .info { 424 | background-color: rgba(0, 0, 0, 0.8); 425 | color: white; 426 | } 427 | } 428 | 429 | @media screen and (max-width: 1191px) { 430 | nav .link-hide { 431 | display: none; 432 | } 433 | 434 | nav .more { 435 | display: flex; 436 | } 437 | 438 | header { 439 | height: 70vh; 440 | } 441 | #banner { 442 | position: initial !important; 443 | z-index: 100; 444 | width: 100%; 445 | } 446 | 447 | #slider #current { 448 | width: 80% !important; 449 | } 450 | #slider #current iframe { 451 | height: 500px; 452 | } 453 | 454 | #multi-player { 455 | background-position: center left; 456 | } 457 | 458 | .info { 459 | width: 600px; 460 | margin: 0 auto; 461 | } 462 | 463 | #get-the-game .item-store { 464 | width: 100%; 465 | padding: 20px; 466 | } 467 | 468 | #get-the-game .item-store .left img { 469 | width: 300px; 470 | } 471 | 472 | #get-the-game .item-store .right { 473 | width: 100%; 474 | } 475 | 476 | footer { 477 | background-position: center center; 478 | } 479 | } 480 | 481 | @media screen and (max-width: 701px) { 482 | nav { 483 | width: 100%; 484 | padding: 0; 485 | } 486 | nav ul { 487 | display: none; 488 | } 489 | 490 | nav .mobile { 491 | display: block; 492 | } 493 | 494 | header { 495 | background-position: center 40px; 496 | height: 30vh; 497 | } 498 | 499 | #slider #current { 500 | width: 90%; 501 | } 502 | 503 | #slider #current iframe { 504 | height: 300px; 505 | } 506 | 507 | #slider #videos-container { 508 | display: none !important; 509 | } 510 | 511 | #multi-player { 512 | background-position: -400px 0px; 513 | } 514 | 515 | .info { 516 | width: 90%; 517 | margin: 0 auto; 518 | } 519 | 520 | #get-the-game .item-store { 521 | display: flex; 522 | flex-direction: column; 523 | width: 100%; 524 | padding: 20px; 525 | } 526 | 527 | #get-the-game .item-store .left img { 528 | width: 300px; 529 | } 530 | 531 | #get-the-game .item-store .right { 532 | text-align: center; 533 | width: 100%; 534 | } 535 | 536 | footer { 537 | height: 400px; 538 | background-position: center center; 539 | } 540 | } 541 | -------------------------------------------------------------------------------- /src/css/scheme.css: -------------------------------------------------------------------------------- 1 | @media (prefers-color-scheme: light) { 2 | body { 3 | background-color: white; 4 | } 5 | 6 | header { 7 | background-image: url(../img/halo-infinite-cover.jpeg); 8 | } 9 | 10 | nav { 11 | background-color: rgba(255, 255, 255, 0.4); 12 | } 13 | 14 | nav ul li a { 15 | color: black; 16 | } 17 | 18 | nav ul li .link::before { 19 | background-color: black; 20 | } 21 | 22 | nav .mobile .header { 23 | background-color: rgba(255, 255, 255, 1); 24 | } 25 | 26 | nav .mobile .header a { 27 | color: black; 28 | } 29 | 30 | nav .mobile .header #bmenu { 31 | color: black; 32 | } 33 | 34 | nav .mobile .links { 35 | background-color: white; 36 | } 37 | 38 | nav .mobile .links a { 39 | color: black; 40 | } 41 | 42 | nav .mobile .links a:hover { 43 | color: white; 44 | background-color: black; 45 | } 46 | 47 | #banner { 48 | color: black; 49 | background-color: white; 50 | } 51 | 52 | h2::before { 53 | background-color: #8cd320; 54 | } 55 | 56 | .green-button { 57 | background-color: #8cd320; 58 | color: black; 59 | } 60 | .green-button:hover { 61 | background-color: greenyellow; 62 | } 63 | 64 | .green-link { 65 | color: #8cd320; 66 | } 67 | 68 | .green-link::before { 69 | background-color: #8cd320; 70 | } 71 | 72 | h3 { 73 | color: black; 74 | } 75 | 76 | #videos { 77 | color: black; 78 | } 79 | 80 | @media screen and (max-width: 1519px) { 81 | .info { 82 | background-color: rgba(255, 255, 255, 0.8); 83 | color: black; 84 | } 85 | } 86 | 87 | #get-the-game { 88 | color: black; 89 | } 90 | #get-the-game h2 { 91 | color: black; 92 | } 93 | 94 | footer { 95 | background-image: url(../img/master-chief.jpg); 96 | } 97 | } 98 | 99 | @media (prefers-color-scheme: dark) { 100 | } 101 | -------------------------------------------------------------------------------- /src/img/bg-multiplayer.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/bg-multiplayer.jpeg -------------------------------------------------------------------------------- /src/img/bg-videos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/bg-videos.png -------------------------------------------------------------------------------- /src/img/game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/game.png -------------------------------------------------------------------------------- /src/img/halo-infinite-cover-darkmode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/halo-infinite-cover-darkmode.jpg -------------------------------------------------------------------------------- /src/img/halo-infinite-cover.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/halo-infinite-cover.jpeg -------------------------------------------------------------------------------- /src/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/logo.png -------------------------------------------------------------------------------- /src/img/master-chief-darkmode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/master-chief-darkmode.jpg -------------------------------------------------------------------------------- /src/img/master-chief.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcosrivasr/demo-sitio-halo/600e2fab7db58b7fc97862fcce07938c7eacfd5c/src/img/master-chief.jpg -------------------------------------------------------------------------------- /src/js/main.js: -------------------------------------------------------------------------------- 1 | import "../css/main.css"; 2 | import "../css/scheme.css"; 3 | 4 | const moreOptions = document.querySelector("#bmore"); 5 | const bShowMobileLinks = document.querySelector("#bmenu"); 6 | const mobileMenu = document.querySelector(".links"); 7 | const moreMenu = document.querySelector(".more .menu"); 8 | 9 | bShowMobileLinks.addEventListener("click", (e) => { 10 | e.preventDefault(); 11 | mobileMenu.classList.toggle("show"); 12 | }); 13 | 14 | moreOptions.addEventListener("click", (e) => { 15 | e.preventDefault(); 16 | moreMenu.classList.toggle("show"); 17 | }); 18 | 19 | const videos = [ 20 | { 21 | id: "PyMlV5_HRWk", 22 | }, 23 | { 24 | id: "XCbMVbeKlCg", 25 | }, 26 | { 27 | id: "Fmdb-KmlzD8", 28 | }, 29 | { 30 | id: "lOthvD1rMbQ", 31 | }, 32 | { 33 | id: "nXDk86lQhto", 34 | }, 35 | ]; 36 | 37 | const sliderContainer = document.querySelector("#slider"); 38 | const currentContainer = document.querySelector("#current"); 39 | const videosContainer = document.querySelector("#videos-container"); 40 | const bNext = document.querySelector("#next"); 41 | const bPrev = document.querySelector("#prev"); 42 | let current = 0; 43 | 44 | bNext.addEventListener("click", (e) => { 45 | let changed = current; 46 | current = current + 1 < videos.length ? current + 1 : current; 47 | if (current !== changed) { 48 | renderCurrentVideo(videos[current].id); 49 | } 50 | }); 51 | 52 | bPrev.addEventListener("click", (e) => { 53 | let changed = current; 54 | current = current - 1 >= 0 ? current - 1 : current; 55 | if (current !== changed) { 56 | renderCurrentVideo(videos[current].id); 57 | } 58 | }); 59 | 60 | renderCurrentVideo(videos[current].id); 61 | renderVideos(); 62 | 63 | function renderCurrentVideo(id) { 64 | currentContainer.innerHTML = ``; 65 | } 66 | 67 | function renderVideos() { 68 | const html = videos.map((video, index) => { 69 | return ` 70 |
71 | 72 | 73 | 74 |
`; 75 | }); 76 | 77 | videosContainer.innerHTML = html.join(""); 78 | 79 | document.querySelectorAll(".item a").forEach((item) => { 80 | item.addEventListener("click", (e) => { 81 | e.preventDefault(); 82 | const id = +item.getAttribute("data-id"); 83 | current = id; 84 | renderCurrentVideo(videos[current].id); 85 | }); 86 | }); 87 | } 88 | --------------------------------------------------------------------------------