2026-04-20 09:20:50 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
2026-05-10 15:13:21 +00:00
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content" />
|
2026-04-22 10:26:53 +00:00
|
|
|
<title>Tx OS</title>
|
2026-05-17 16:09:24 +00:00
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico?v=itp1" />
|
|
|
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16.png?v=itp1" />
|
|
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32.png?v=itp1" />
|
|
|
|
|
<link rel="icon" type="image/png" sizes="48x48" href="/icons/favicon-48.png?v=itp1" />
|
2026-05-17 16:08:28 +00:00
|
|
|
<link rel="icon" type="image/png" sizes="192x192" href="/icons/icon-192.png?v=itp1" />
|
|
|
|
|
<link rel="icon" type="image/png" sizes="512x512" href="/icons/icon-512.png?v=itp1" />
|
2026-05-16 08:51:25 +00:00
|
|
|
<!--
|
|
|
|
|
PWA / "Add to Home Screen" — when the user installs Tx OS to the
|
|
|
|
|
iPad/iPhone home screen (Share → Add to Home Screen) the app
|
|
|
|
|
launches full-screen with no Safari URL bar. The same manifest
|
|
|
|
|
also makes the app installable from Chrome (Add to Dock / Install).
|
|
|
|
|
Note: existing home-screen shortcuts created BEFORE these tags
|
|
|
|
|
shipped will keep opening in regular Safari with the URL bar —
|
|
|
|
|
remove and re-add the icon to pick up the manifest.
|
|
|
|
|
-->
|
|
|
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
2026-05-17 16:08:28 +00:00
|
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png?v=itp1" />
|
2026-05-16 08:51:25 +00:00
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
|
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
|
|
|
<meta name="apple-mobile-web-app-title" content="Tx OS" />
|
|
|
|
|
<meta name="theme-color" content="#0B1E3F" />
|
2026-05-01 19:55:39 +00:00
|
|
|
<!--
|
|
|
|
|
Fonts are now bundled locally via `src/custom-fonts.css`
|
|
|
|
|
(DIN Next LT Arabic, Tajawal, Helvetica Neue LT Arabic,
|
|
|
|
|
Helvetica Neue, Majalla). No third-party Google Fonts roundtrip
|
|
|
|
|
is needed at page load, which speeds up first paint and removes
|
|
|
|
|
the external dependency.
|
2026-05-03 16:02:10 +00:00
|
|
|
|
2026-05-03 18:37:48 +00:00
|
|
|
#350 (browser print): preload DIN Next LT Arabic — the app's
|
|
|
|
|
sole Arabic print font — so it's already in the HTTP cache by
|
|
|
|
|
the time `@font-face` (declared with `font-display: block` in
|
|
|
|
|
custom-fonts.css) wants to fetch it. Without this, Chrome's
|
|
|
|
|
print snapshot can be taken before the font is ready and the
|
|
|
|
|
output uses a system fallback that lacks Arabic GSUB shaping
|
|
|
|
|
(isolated, unjoined letters that look reversed).
|
2026-05-01 19:55:39 +00:00
|
|
|
-->
|
2026-05-03 16:02:10 +00:00
|
|
|
<link rel="preload" href="/fonts/DINNextLTArabic-Regular.ttf"
|
|
|
|
|
as="font" type="font/ttf" crossorigin="anonymous" />
|
|
|
|
|
<link rel="preload" href="/fonts/DINNextLTArabic-Bold.ttf"
|
|
|
|
|
as="font" type="font/ttf" crossorigin="anonymous" />
|
2026-04-20 09:20:50 +00:00
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div id="root"></div>
|
|
|
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|