Spaces:
Running
Running
Publish MASSFRONT web v1.32.2 branding hotfix (part 2)
Browse files- assets/icons/splash-2732.png +2 -2
- boot.js +1 -1
- index.html +14 -14
- src/intro.js +2 -5
- src/styles/intro.css +6 -19
- src/updater.js +1 -1
assets/icons/splash-2732.png
CHANGED
|
|
Git LFS Details
|
|
|
Git LFS Details
|
boot.js
CHANGED
|
@@ -35,7 +35,7 @@
|
|
| 35 |
otherwise reuse a stale source even after the installer or local preview
|
| 36 |
has changed, which made new settings appear to be missing until cache was
|
| 37 |
cleared manually. Patch bundles keep their content-addressed Blob URLs. */
|
| 38 |
-
var PACKAGED_REV='1.32.
|
| 39 |
var DB='massfront-updates', STORE='bundles';
|
| 40 |
var bootShield=null, bootShieldTimer=0;
|
| 41 |
var bootShieldEvents=['pointerdown','pointerup','touchstart','touchend','click'];
|
|
|
|
| 35 |
otherwise reuse a stale source even after the installer or local preview
|
| 36 |
has changed, which made new settings appear to be missing until cache was
|
| 37 |
cleared manually. Patch bundles keep their content-addressed Blob URLs. */
|
| 38 |
+
var PACKAGED_REV='1.32.2';
|
| 39 |
var DB='massfront-updates', STORE='bundles';
|
| 40 |
var bootShield=null, bootShieldTimer=0;
|
| 41 |
var bootShieldEvents=['pointerdown','pointerup','touchstart','touchend','click'];
|
index.html
CHANGED
|
@@ -9,20 +9,20 @@
|
|
| 9 |
<meta name="mobile-web-app-capable" content="yes">
|
| 10 |
<meta name="theme-color" content="#060c16">
|
| 11 |
<meta name="format-detection" content="telephone=no">
|
| 12 |
-
<link rel="apple-touch-icon" href="./assets/icons/icon-180.png">
|
| 13 |
-
<link rel="apple-touch-icon" sizes="152x152" href="./assets/icons/icon-152.png">
|
| 14 |
-
<link rel="apple-touch-icon" sizes="167x167" href="./assets/icons/icon-167.png">
|
| 15 |
-
<link rel="apple-touch-startup-image" href="./assets/icons/splash-2732.png">
|
| 16 |
-
<link rel="icon" href="./assets/icons/icon-192.png">
|
| 17 |
-
<link rel="manifest" href="./assets/app.webmanifest">
|
| 18 |
<title>MASSFRONT — Mobile RTS</title>
|
| 19 |
-
<link rel="stylesheet" href="./src/styles/ui.css?v=1.32.
|
| 20 |
-
<link rel="stylesheet" href="./src/styles/auth.css?v=1.32.
|
| 21 |
-
<link rel="stylesheet" href="./src/styles/tutorial.css?v=1.32.
|
| 22 |
-
<link rel="stylesheet" href="./src/styles/ads.css?v=1.32.
|
| 23 |
-
<link rel="stylesheet" href="./src/styles/store.css?v=1.32.
|
| 24 |
-
<link rel="stylesheet" href="./src/styles/restree.css?v=1.32.
|
| 25 |
-
<link rel="stylesheet" href="./src/styles/intro.css?v=1.32.
|
| 26 |
</head>
|
| 27 |
<body>
|
| 28 |
<canvas id="gl"></canvas>
|
|
@@ -187,7 +187,7 @@
|
|
| 187 |
<div class="updHead">
|
| 188 |
<div>
|
| 189 |
<div id="updTxt">GAME VERSION</div>
|
| 190 |
-
<div id="updSub">v1.32.
|
| 191 |
</div>
|
| 192 |
<div class="updBtns">
|
| 193 |
<button id="updCancel" style="display:none">✕</button>
|
|
|
|
| 9 |
<meta name="mobile-web-app-capable" content="yes">
|
| 10 |
<meta name="theme-color" content="#060c16">
|
| 11 |
<meta name="format-detection" content="telephone=no">
|
| 12 |
+
<link rel="apple-touch-icon" href="./assets/icons/icon-180.png?v=1.32.2">
|
| 13 |
+
<link rel="apple-touch-icon" sizes="152x152" href="./assets/icons/icon-152.png?v=1.32.2">
|
| 14 |
+
<link rel="apple-touch-icon" sizes="167x167" href="./assets/icons/icon-167.png?v=1.32.2">
|
| 15 |
+
<link rel="apple-touch-startup-image" href="./assets/icons/splash-2732.png?v=1.32.2">
|
| 16 |
+
<link rel="icon" href="./assets/icons/icon-192.png?v=1.32.2">
|
| 17 |
+
<link rel="manifest" href="./assets/app.webmanifest?v=1.32.2">
|
| 18 |
<title>MASSFRONT — Mobile RTS</title>
|
| 19 |
+
<link rel="stylesheet" href="./src/styles/ui.css?v=1.32.2">
|
| 20 |
+
<link rel="stylesheet" href="./src/styles/auth.css?v=1.32.2">
|
| 21 |
+
<link rel="stylesheet" href="./src/styles/tutorial.css?v=1.32.2">
|
| 22 |
+
<link rel="stylesheet" href="./src/styles/ads.css?v=1.32.2">
|
| 23 |
+
<link rel="stylesheet" href="./src/styles/store.css?v=1.32.2">
|
| 24 |
+
<link rel="stylesheet" href="./src/styles/restree.css?v=1.32.2">
|
| 25 |
+
<link rel="stylesheet" href="./src/styles/intro.css?v=1.32.2">
|
| 26 |
</head>
|
| 27 |
<body>
|
| 28 |
<canvas id="gl"></canvas>
|
|
|
|
| 187 |
<div class="updHead">
|
| 188 |
<div>
|
| 189 |
<div id="updTxt">GAME VERSION</div>
|
| 190 |
+
<div id="updSub">v1.32.2</div>
|
| 191 |
</div>
|
| 192 |
<div class="updBtns">
|
| 193 |
<button id="updCancel" style="display:none">✕</button>
|
src/intro.js
CHANGED
|
@@ -25,17 +25,14 @@
|
|
| 25 |
}
|
| 26 |
function markup(){
|
| 27 |
return '<section id="mfPreAlphaIntro" class="mfTitleReveal" role="dialog" aria-modal="true" '+
|
| 28 |
-
'aria-
|
| 29 |
'<div class="mfTitleBackdrop" aria-hidden="true"><div class="mfTitleGrid"></div><div class="mfTitleSweep"></div></div>'+
|
| 30 |
'<div class="mfTitleTop">'+
|
| 31 |
'<div class="mfTitleBuild"><span>v'+escapeHtml(version())+' · PRE-ALPHA</span></div>'+
|
| 32 |
'<button id="mfIntroSkip" class="mfTitleSkip" type="button">SKIP <span aria-hidden="true">✕</span></button>'+
|
| 33 |
'</div>'+
|
| 34 |
'<main class="mfTitleCenter">'+
|
| 35 |
-
'<
|
| 36 |
-
'<div class="mfTitleEyebrow">COMMAND UPLINK ESTABLISHED</div>'+
|
| 37 |
-
'<h1 id="mfTitleWordmark">MASSFRONT</h1>'+
|
| 38 |
-
'<div id="mfTitleSubtitle" class="mfTitleSubtitle"><i></i><span>SUPREME MOBILE WARFARE</span><i></i></div>'+
|
| 39 |
'<div class="mfTitleStatus"><span></span> THE FRONT AWAITS YOUR ORDERS</div>'+
|
| 40 |
'</main>'+
|
| 41 |
'<div class="mfTitleBottom">'+
|
|
|
|
| 25 |
}
|
| 26 |
function markup(){
|
| 27 |
return '<section id="mfPreAlphaIntro" class="mfTitleReveal" role="dialog" aria-modal="true" '+
|
| 28 |
+
'aria-label="MASSFRONT launch screen" hidden>'+
|
| 29 |
'<div class="mfTitleBackdrop" aria-hidden="true"><div class="mfTitleGrid"></div><div class="mfTitleSweep"></div></div>'+
|
| 30 |
'<div class="mfTitleTop">'+
|
| 31 |
'<div class="mfTitleBuild"><span>v'+escapeHtml(version())+' · PRE-ALPHA</span></div>'+
|
| 32 |
'<button id="mfIntroSkip" class="mfTitleSkip" type="button">SKIP <span aria-hidden="true">✕</span></button>'+
|
| 33 |
'</div>'+
|
| 34 |
'<main class="mfTitleCenter">'+
|
| 35 |
+
'<img id="mfTitleWordmark" class="mfTitleArt" src="./assets/brand/massfront-title-command-conquer-overwhelm-v1.png" alt="MASSFRONT — Command. Conquer. Overwhelm.">'+
|
|
|
|
|
|
|
|
|
|
| 36 |
'<div class="mfTitleStatus"><span></span> THE FRONT AWAITS YOUR ORDERS</div>'+
|
| 37 |
'</main>'+
|
| 38 |
'<div class="mfTitleBottom">'+
|
src/styles/intro.css
CHANGED
|
@@ -19,29 +19,16 @@
|
|
| 19 |
.mfTitleBuild span{padding:8px 10px;border:1px solid rgba(116,181,220,.28);border-radius:7px;background:rgba(8,20,34,.62)}
|
| 20 |
.mfTitleSkip{min-width:54px;min-height:48px;padding:0 12px;border:1px solid rgba(158,200,226,.34);border-radius:11px;color:#dcedf8;background:rgba(5,13,23,.78);font:800 10px/1 var(--fT);letter-spacing:.12em}
|
| 21 |
.mfTitleSkip span{color:#ffd46e;margin-left:4px}.mfTitleSkip:active{transform:scale(.96)}
|
| 22 |
-
.mfTitleCenter{align-self:center;justify-self:center;width:min(
|
| 23 |
@keyframes mfTitleCenterIn{from{opacity:0;transform:translateY(18px) scale(.96);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
|
| 24 |
-
.
|
| 25 |
-
|
| 26 |
-
.mfTitleInsignia i{position:absolute;inset:8%;border:1px solid rgba(100,203,255,.35);transform:rotate(45deg);box-shadow:0 0 30px rgba(75,181,240,.15);animation:mfTitleInsignia 2.8s linear infinite}
|
| 27 |
-
@keyframes mfTitleInsignia{to{transform:rotate(405deg)}}
|
| 28 |
-
.mfTitleEyebrow{margin-bottom:10px;color:#ffd46e;font:800 clamp(8px,1.8vw,12px)/1 var(--fU);letter-spacing:.26em;text-shadow:0 0 14px rgba(255,205,92,.32)}
|
| 29 |
-
.mfTitleCenter h1{margin:0;max-width:100%;white-space:nowrap;font:900 clamp(52px,13vw,118px)/.9 var(--fT);letter-spacing:.09em;background:linear-gradient(180deg,#fff 2%,#dbe6ed 36%,#6e8191 51%,#edf7fb 66%,#536b7d 100%);
|
| 30 |
-
-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 13px 24px rgba(0,0,0,.85));animation:mfTitleWordmark 1.4s ease both}
|
| 31 |
-
@keyframes mfTitleWordmark{0%{opacity:0;letter-spacing:.19em;filter:blur(7px)}55%{opacity:1}100%{letter-spacing:.09em;filter:drop-shadow(0 13px 24px rgba(0,0,0,.85))}}
|
| 32 |
-
.mfTitleSubtitle{display:flex;align-items:center;justify-content:center;gap:13px;margin:18px auto 0;color:#f1c969;font:900 clamp(10px,2.6vw,17px)/1 var(--fT);letter-spacing:.25em}
|
| 33 |
-
.mfTitleSubtitle i{width:min(16vw,130px);height:1px;background:linear-gradient(90deg,transparent,#d9ae50)}.mfTitleSubtitle i:last-child{transform:scaleX(-1)}
|
| 34 |
.mfTitleStatus{display:inline-flex;align-items:center;gap:8px;margin-top:25px;color:#91aabd;font:700 9px/1 var(--fU);letter-spacing:.19em}
|
| 35 |
.mfTitleStatus span{width:7px;height:7px;border-radius:50%;background:#6ed6ff;box-shadow:0 0 12px #6ed6ff;animation:mfTitlePulse 1.25s ease-in-out infinite}
|
| 36 |
@keyframes mfTitlePulse{50%{opacity:.3;transform:scale(.72)}}
|
| 37 |
.mfTitleBottom{width:min(100%,460px);margin:0 auto}.mfTitleStart{width:100%;min-height:56px;border:1px solid #fff1bb;border-radius:12px;color:#1b1101;background:linear-gradient(180deg,#fff0af,#e9bb52 47%,#bd8730 53%,#f2cd70);box-shadow:0 10px 34px rgba(0,0,0,.55),0 0 22px rgba(255,212,110,.2);font:900 14px/1 var(--fT);letter-spacing:.14em}
|
| 38 |
.mfTitleStart span{font-size:12px;margin-right:8px}.mfTitleStart:active{transform:scale(.98);filter:brightness(1.08)}
|
| 39 |
body.mfIntroOpen{overflow:hidden}
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
the logo past the viewport. */
|
| 44 |
-
@media(max-width:640px){.mfTitleCenter h1{font-size:clamp(38px,11.5vw,60px);letter-spacing:.05em;animation-name:mfTitleWordmarkMobile}.mfTitleSubtitle{letter-spacing:.14em}.mfTitleSubtitle i{width:9vw}.mfTitleEyebrow{letter-spacing:.18em}.mfTitleStatus{font-size:8px;letter-spacing:.12em}.mfTitleInsignia{margin-bottom:13px}}
|
| 45 |
-
@keyframes mfTitleWordmarkMobile{0%{opacity:0;letter-spacing:.12em;filter:blur(7px)}55%{opacity:1}100%{letter-spacing:.05em;filter:drop-shadow(0 13px 24px rgba(0,0,0,.85))}}
|
| 46 |
-
@media(max-height:520px){.mfTitleInsignia{width:66px;height:66px;margin-bottom:7px}.mfTitleCenter h1{font-size:48px}.mfTitleSubtitle{margin-top:9px}.mfTitleStatus{margin-top:12px}.mfTitleStart{min-height:48px}}
|
| 47 |
-
@media(prefers-reduced-motion:reduce){.mfTitleReveal,.mfTitleCenter,.mfTitleInsignia i,.mfTitleCenter h1,.mfTitleSweep,.mfTitleStatus span{animation:none!important;transition:none!important;transform:none!important;filter:none!important}.mfTitleReveal.open{opacity:1}}
|
|
|
|
| 19 |
.mfTitleBuild span{padding:8px 10px;border:1px solid rgba(116,181,220,.28);border-radius:7px;background:rgba(8,20,34,.62)}
|
| 20 |
.mfTitleSkip{min-width:54px;min-height:48px;padding:0 12px;border:1px solid rgba(158,200,226,.34);border-radius:11px;color:#dcedf8;background:rgba(5,13,23,.78);font:800 10px/1 var(--fT);letter-spacing:.12em}
|
| 21 |
.mfTitleSkip span{color:#ffd46e;margin-left:4px}.mfTitleSkip:active{transform:scale(.96)}
|
| 22 |
+
.mfTitleCenter{align-self:center;justify-self:center;width:min(100%,900px);text-align:center;animation:mfTitleCenterIn .9s cubic-bezier(.16,.8,.2,1) both}
|
| 23 |
@keyframes mfTitleCenterIn{from{opacity:0;transform:translateY(18px) scale(.96);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
|
| 24 |
+
.mfTitleArt{display:block;width:min(100%,860px);height:auto;margin:0 auto;filter:drop-shadow(0 16px 30px rgba(0,0,0,.88));animation:mfTitleArtIn 1.15s cubic-bezier(.16,.8,.2,1) both}
|
| 25 |
+
@keyframes mfTitleArtIn{0%{opacity:0;transform:translateY(10px) scale(.96);filter:blur(7px)}58%{opacity:1}100%{transform:none;filter:drop-shadow(0 16px 30px rgba(0,0,0,.88))}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
.mfTitleStatus{display:inline-flex;align-items:center;gap:8px;margin-top:25px;color:#91aabd;font:700 9px/1 var(--fU);letter-spacing:.19em}
|
| 27 |
.mfTitleStatus span{width:7px;height:7px;border-radius:50%;background:#6ed6ff;box-shadow:0 0 12px #6ed6ff;animation:mfTitlePulse 1.25s ease-in-out infinite}
|
| 28 |
@keyframes mfTitlePulse{50%{opacity:.3;transform:scale(.72)}}
|
| 29 |
.mfTitleBottom{width:min(100%,460px);margin:0 auto}.mfTitleStart{width:100%;min-height:56px;border:1px solid #fff1bb;border-radius:12px;color:#1b1101;background:linear-gradient(180deg,#fff0af,#e9bb52 47%,#bd8730 53%,#f2cd70);box-shadow:0 10px 34px rgba(0,0,0,.55),0 0 22px rgba(255,212,110,.2);font:900 14px/1 var(--fT);letter-spacing:.14em}
|
| 30 |
.mfTitleStart span{font-size:12px;margin-right:8px}.mfTitleStart:active{transform:scale(.98);filter:brightness(1.08)}
|
| 31 |
body.mfIntroOpen{overflow:hidden}
|
| 32 |
+
@media(max-width:640px){.mfTitleCenter{width:100%}.mfTitleArt{width:100%}.mfTitleStatus{margin-top:19px;font-size:8px;letter-spacing:.12em}}
|
| 33 |
+
@media(max-height:520px){.mfTitleCenter{width:min(78vw,620px)}.mfTitleStatus{margin-top:12px}.mfTitleStart{min-height:48px}}
|
| 34 |
+
@media(prefers-reduced-motion:reduce){.mfTitleReveal,.mfTitleCenter,.mfTitleArt,.mfTitleSweep,.mfTitleStatus span{animation:none!important;transition:none!important;transform:none!important;filter:none!important}.mfTitleReveal.open{opacity:1}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/updater.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
| 29 |
============================================================================ */
|
| 30 |
|
| 31 |
/* Bumped by the release script. Compared against the manifest's `version`. */
|
| 32 |
-
const APP_VERSION = '1.32.
|
| 33 |
|
| 34 |
/* The channel URL in update-config.json remains publisher-configurable, but a
|
| 35 |
production checker also needs one known-good recovery path. More importantly,
|
|
|
|
| 29 |
============================================================================ */
|
| 30 |
|
| 31 |
/* Bumped by the release script. Compared against the manifest's `version`. */
|
| 32 |
+
const APP_VERSION = '1.32.2';
|
| 33 |
|
| 34 |
/* The channel URL in update-config.json remains publisher-configurable, but a
|
| 35 |
production checker also needs one known-good recovery path. More importantly,
|