Compare commits

...

6 Commits

Author SHA1 Message Date
ddcfc8d8d2 Pop semvar up
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
2026-03-12 19:54:49 -03:00
dac44e1b12 Update Trusted Type loading
Some checks failed
ci/woodpecker/push/deploy unknown status
ci/woodpecker/push/ci Pipeline failed
2026-03-12 19:54:15 -03:00
5eb34a0c59 Trusted Types for Clarity
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
2026-03-12 18:13:55 -03:00
ef40d25e6a Use consentv2 API
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
2026-03-12 18:01:59 -03:00
718165aa23 Updates e2e tests
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/deploy Pipeline was successful
2026-03-12 17:36:18 -03:00
c15adf8e3c More font fixes... Kill the flash. 2026-03-12 17:32:12 -03:00
28 changed files with 154 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "mifi-ventures-landing",
"version": "4.0.2",
"version": "4.0.3",
"private": true,
"repository": "https://git.mifi.dev/mifi-ventures/landing.git",
"packageManager": "pnpm@10.31.0+sha512.e3927388bfaa8078ceb79b748ffc1e8274e84d75163e67bc22e06c0d3aed43dd153151cbf11d7f8301ff4acb98c68bdc5cadf6989532801ffafe3b3e4a63c268",

View File

@@ -167,6 +167,14 @@
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
======================================== */

View File

@@ -61,6 +61,13 @@
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"

View File

@@ -3,6 +3,48 @@
<head>
<meta charset="utf-8" />
<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>
<meta
name="theme-color"
@@ -16,7 +58,7 @@
<body class="error-page">
<main>
<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. Were not sure its coming back.</p>
<p><a href="/">Back to mifi Ventures →</a></p>
</main>

View File

@@ -3,6 +3,48 @@
<head>
<meta charset="utf-8" />
<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>
<meta
name="theme-color"
@@ -16,7 +58,7 @@
<body class="error-page">
<main>
<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. Weve moved on—and so should you.</p>
<p><a href="/">Back to mifi Ventures →</a></p>
</main>

View File

@@ -65,6 +65,14 @@
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 {
margin: 0;

View File

@@ -12,6 +12,8 @@
var hasLoadedThirdParty = false;
// 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;
try {
if (
@@ -23,6 +25,14 @@
return url;
},
});
if (ttPolicy && !window.trustedTypePolicies) {
window.trustedTypePolicies = {};
}
if (ttPolicy) {
window.trustedTypePolicies['mifi-ventures-policy'] = ttPolicy;
}
}
} catch (_) {
ttPolicy = null;
@@ -65,12 +75,29 @@
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 {
var clarityScript = document.createElement('script');
clarityScript.defer = true;
setScriptSrc(clarityScript, 'https://www.clarity.ms/tag/vuo5q3yf79?ref=bwt');
document.head.appendChild(clarityScript);
(function (c, l, a, r, i, t, y) {
c[a] =
c[a] ||
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) {
console.error('Failed to load Microsoft Clarity', e2);
}

View File

@@ -140,4 +140,16 @@ test.describe('visual regression', () => {
await expect(page.locator('#cookie-banner')).not.toBeVisible();
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 });
});
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 KiB

After

Width:  |  Height:  |  Size: 419 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 KiB

After

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 KiB

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 KiB

After

Width:  |  Height:  |  Size: 845 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

After

Width:  |  Height:  |  Size: 430 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 KiB

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 KiB

After

Width:  |  Height:  |  Size: 872 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 KiB

After

Width:  |  Height:  |  Size: 683 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 KiB

After

Width:  |  Height:  |  Size: 1011 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 KiB

After

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 KiB

After

Width:  |  Height:  |  Size: 748 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 KiB

After

Width:  |  Height:  |  Size: 635 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 KiB

After

Width:  |  Height:  |  Size: 961 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 KiB

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 KiB

After

Width:  |  Height:  |  Size: 532 KiB