Compare commits
6 Commits
72f0eab718
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
ddcfc8d8d2
|
|||
|
dac44e1b12
|
|||
|
5eb34a0c59
|
|||
|
ef40d25e6a
|
|||
|
718165aa23
|
|||
|
c15adf8e3c
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mifi-ventures-landing",
|
"name": "mifi-ventures-landing",
|
||||||
"version": "4.0.2",
|
"version": "4.0.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": "https://git.mifi.dev/mifi-ventures/landing.git",
|
"repository": "https://git.mifi.dev/mifi-ventures/landing.git",
|
||||||
"packageManager": "pnpm@10.31.0+sha512.e3927388bfaa8078ceb79b748ffc1e8274e84d75163e67bc22e06c0d3aed43dd153151cbf11d7f8301ff4acb98c68bdc5cadf6989532801ffafe3b3e4a63c268",
|
"packageManager": "pnpm@10.31.0+sha512.e3927388bfaa8078ceb79b748ffc1e8274e84d75163e67bc22e06c0d3aed43dd153151cbf11d7f8301ff4acb98c68bdc5cadf6989532801ffafe3b3e4a63c268",
|
||||||
|
|||||||
@@ -167,6 +167,14 @@
|
|||||||
src: url('/assets/fonts/fraunces-v38-latin-600.woff2') format('woff2');
|
src: url('/assets/fonts/fraunces-v38-latin-600.woff2') format('woff2');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Fraunces;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/assets/fonts/fraunces-v38-latin-700.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
/* ========================================
|
/* ========================================
|
||||||
Base Styles
|
Base Styles
|
||||||
======================================== */
|
======================================== */
|
||||||
|
|||||||
@@ -61,6 +61,13 @@
|
|||||||
type="font/woff2"
|
type="font/woff2"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-600.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
<link
|
<link
|
||||||
rel="preload"
|
rel="preload"
|
||||||
href="/assets/fonts/inter-v20-latin-700.woff2"
|
href="/assets/fonts/inter-v20-latin-700.woff2"
|
||||||
|
|||||||
@@ -3,6 +3,48 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/fraunces-v38-latin-600.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-regular.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-500.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-600.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-700.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/fraunces-v38-latin-700.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
<title>404 Not Found — mifi Ventures</title>
|
<title>404 Not Found — mifi Ventures</title>
|
||||||
<meta
|
<meta
|
||||||
name="theme-color"
|
name="theme-color"
|
||||||
@@ -16,7 +58,7 @@
|
|||||||
<body class="error-page">
|
<body class="error-page">
|
||||||
<main>
|
<main>
|
||||||
<div class="emoji" aria-hidden="true">🔍</div>
|
<div class="emoji" aria-hidden="true">🔍</div>
|
||||||
<h1>404 Not Found</h1>
|
<h1 data-testid="404-title">404 Not Found</h1>
|
||||||
<p>This page went off to find itself. We’re not sure it’s coming back.</p>
|
<p>This page went off to find itself. We’re not sure it’s coming back.</p>
|
||||||
<p><a href="/">Back to mifi Ventures →</a></p>
|
<p><a href="/">Back to mifi Ventures →</a></p>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -3,6 +3,48 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/fraunces-v38-latin-600.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-regular.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-500.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-600.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/inter-v20-latin-700.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/assets/fonts/fraunces-v38-latin-700.woff2"
|
||||||
|
as="font"
|
||||||
|
type="font/woff2"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
<title>410 Gone — mifi Ventures</title>
|
<title>410 Gone — mifi Ventures</title>
|
||||||
<meta
|
<meta
|
||||||
name="theme-color"
|
name="theme-color"
|
||||||
@@ -16,7 +58,7 @@
|
|||||||
<body class="error-page">
|
<body class="error-page">
|
||||||
<main>
|
<main>
|
||||||
<div class="emoji" aria-hidden="true">👋</div>
|
<div class="emoji" aria-hidden="true">👋</div>
|
||||||
<h1>410 Gone</h1>
|
<h1 data-testid="410-title">410 Gone</h1>
|
||||||
<p>This page has left the building. We’ve moved on—and so should you.</p>
|
<p>This page has left the building. We’ve moved on—and so should you.</p>
|
||||||
<p><a href="/">Back to mifi Ventures →</a></p>
|
<p><a href="/">Back to mifi Ventures →</a></p>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -65,6 +65,14 @@
|
|||||||
src: url('/assets/fonts/fraunces-v38-latin-600.woff2') format('woff2');
|
src: url('/assets/fonts/fraunces-v38-latin-600.woff2') format('woff2');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Fraunces;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('/assets/fonts/fraunces-v38-latin-700.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
/* Error page layout */
|
/* Error page layout */
|
||||||
.error-page {
|
.error-page {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
var hasLoadedThirdParty = false;
|
var hasLoadedThirdParty = false;
|
||||||
|
|
||||||
// Trusted Types support (for CSP `require-trusted-types-for 'script'`)
|
// Trusted Types support (for CSP `require-trusted-types-for 'script'`)
|
||||||
|
// Clarity's tag script looks up window.trustedTypePolicies[policyName] to load its inner script;
|
||||||
|
// we must expose the policy there for Safari (and other browsers) to avoid TT violations.
|
||||||
var ttPolicy = null;
|
var ttPolicy = null;
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
@@ -23,6 +25,14 @@
|
|||||||
return url;
|
return url;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (ttPolicy && !window.trustedTypePolicies) {
|
||||||
|
window.trustedTypePolicies = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ttPolicy) {
|
||||||
|
window.trustedTypePolicies['mifi-ventures-policy'] = ttPolicy;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
ttPolicy = null;
|
ttPolicy = null;
|
||||||
@@ -65,12 +75,29 @@
|
|||||||
console.error('Failed to load Google Analytics', e);
|
console.error('Failed to load Google Analytics', e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Microsoft Clarity
|
// Microsoft Clarity – use the official loader snippet so that
|
||||||
|
// window.clarity is defined before the tag script runs.
|
||||||
try {
|
try {
|
||||||
var clarityScript = document.createElement('script');
|
(function (c, l, a, r, i, t, y) {
|
||||||
clarityScript.defer = true;
|
c[a] =
|
||||||
setScriptSrc(clarityScript, 'https://www.clarity.ms/tag/vuo5q3yf79?ref=bwt');
|
c[a] ||
|
||||||
document.head.appendChild(clarityScript);
|
function () {
|
||||||
|
(c[a].q = c[a].q || []).push(arguments);
|
||||||
|
};
|
||||||
|
t = l.createElement(r);
|
||||||
|
t.async = 1;
|
||||||
|
setScriptSrc(
|
||||||
|
t,
|
||||||
|
`https://www.clarity.ms/tag/${i}?trustedTypes=mifi-ventures-policy`,
|
||||||
|
);
|
||||||
|
y = l.getElementsByTagName(r)[0];
|
||||||
|
y.parentNode.insertBefore(t, y);
|
||||||
|
})(window, document, 'clarity', 'script', 'vuo5q3yf79');
|
||||||
|
|
||||||
|
window.clarity('consentv2', {
|
||||||
|
ad_Storage: 'granted',
|
||||||
|
analytics_Storage: 'granted',
|
||||||
|
});
|
||||||
} catch (e2) {
|
} catch (e2) {
|
||||||
console.error('Failed to load Microsoft Clarity', e2);
|
console.error('Failed to load Microsoft Clarity', e2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -140,4 +140,16 @@ test.describe('visual regression', () => {
|
|||||||
await expect(page.locator('#cookie-banner')).not.toBeVisible();
|
await expect(page.locator('#cookie-banner')).not.toBeVisible();
|
||||||
await expect(page).toHaveScreenshot('terms-of-service.png', { fullPage: true });
|
await expect(page).toHaveScreenshot('terms-of-service.png', { fullPage: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('404 page matches snapshot', async ({ page }) => {
|
||||||
|
await page.goto('/404');
|
||||||
|
await expect(page).toHaveTitle(/404 | mifi Ventures/);
|
||||||
|
await expect(page).toHaveScreenshot('404.png', { fullPage: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
test('410 page matches snapshot', async ({ page }) => {
|
||||||
|
await page.goto('/410');
|
||||||
|
await expect(page).toHaveTitle(/410 | mifi Ventures/);
|
||||||
|
await expect(page).toHaveScreenshot('410.png', { fullPage: true });
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
BIN
tests/visual.spec.ts-snapshots/404-chromium-desktop-linux.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
tests/visual.spec.ts-snapshots/404-chromium-mobile-linux.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
tests/visual.spec.ts-snapshots/410-chromium-desktop-linux.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
tests/visual.spec.ts-snapshots/410-chromium-mobile-linux.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 419 KiB |
|
Before Width: | Height: | Size: 609 KiB After Width: | Height: | Size: 611 KiB |
|
Before Width: | Height: | Size: 565 KiB After Width: | Height: | Size: 566 KiB |
|
Before Width: | Height: | Size: 844 KiB After Width: | Height: | Size: 845 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 297 KiB |
|
Before Width: | Height: | Size: 429 KiB After Width: | Height: | Size: 430 KiB |
|
Before Width: | Height: | Size: 582 KiB After Width: | Height: | Size: 583 KiB |
|
Before Width: | Height: | Size: 871 KiB After Width: | Height: | Size: 872 KiB |
|
Before Width: | Height: | Size: 680 KiB After Width: | Height: | Size: 683 KiB |
|
Before Width: | Height: | Size: 1009 KiB After Width: | Height: | Size: 1011 KiB |
|
Before Width: | Height: | Size: 543 KiB After Width: | Height: | Size: 544 KiB |
|
Before Width: | Height: | Size: 746 KiB After Width: | Height: | Size: 748 KiB |
|
Before Width: | Height: | Size: 632 KiB After Width: | Height: | Size: 635 KiB |
|
Before Width: | Height: | Size: 960 KiB After Width: | Height: | Size: 961 KiB |
|
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 356 KiB |
|
Before Width: | Height: | Size: 532 KiB After Width: | Height: | Size: 532 KiB |