Files
isal.in/index.html
T

222 lines
10 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=6" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Isal.in Multi-Converter — Isalin ang lahat. Convert anything.</title>
<meta name="description" content="Isalin ang lahat. Convert anything. Fast, 100% private in-browser conversions for Images (WebP/PNG/JPG/AVIF/BMP/ICO/GIF), Audio, Video, PDFs, CSV ⇄ JSON, Unit measurements, and Philippine calculators (Tax, Mortgage, Electricity, GPA)." />
<meta name="keywords" content="isalin, isal in, converter, image converter, audio converter, video converter, units converter, philippine tax calculator, train law salary calculator, private converter, client side" />
<meta name="author" content="Isal.in Multi-Converter" />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://isalin.us.ci" />
<!-- Modern Typography: Plus Jakarta Sans & JetBrains Mono -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
<!-- Open Graph / Facebook / Discord -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://isalin.us.ci" />
<meta property="og:title" content="Isal.in Multi-Converter — Isalin ang lahat. Convert anything." />
<meta property="og:description" content="Isalin ang lahat. Convert anything. 100% private in-browser conversions for Images, Audio, Video, PDFs, CSV, JSON, Units, and Philippine calculators with zero server uploads." />
<meta property="og:site_name" content="Isal.in Multi-Converter" />
<meta property="og:locale" content="en_PH" />
<!-- Twitter / X Cards -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Isal.in Multi-Converter — Isalin ang lahat. Convert anything." />
<meta name="twitter:description" content="Isalin ang lahat. Convert anything. 100% private client-side conversions with zero server uploads." />
<!-- PWA & Mobile Web App Meta Tags -->
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0a0a0a" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Isal.in" />
<link rel="apple-touch-icon" href="/favicon.svg?v=6" />
<!-- Structured Data for Search Engines (JSON-LD) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "Isal.in Multi-Converter",
"alternateName": "Isalin",
"url": "https://isalin.us.ci",
"slogan": "Isalin ang lahat. Convert anything.",
"description": "Fast, private in-browser conversions for Images (WebP/PNG/JPG/AVIF/BMP/ICO/GIF), Audio, Video, PDF bundling, CSV/TSV table grids, JSON/YAML transformers, Unit measurements, and Philippine everyday calculators.",
"applicationCategory": "UtilitiesApplication",
"operatingSystem": "All",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"Image Conversion (WebP, PNG, JPEG, AVIF, BMP, ICO, GIF)",
"Audio Converter & Trimmer (MP3, WAV, WebM)",
"Video Converter & Snapshot Extractor (MP4, WebM)",
"PDF Document Creation",
"CSV ⇄ JSON Data Table",
"JSON ⇄ YAML Serialization",
"Base64 & URL Encoding",
"UUID v4 Generator",
"Color Converter & Hex/HSL/RGB/CMYK Palette",
"Markdown ⇄ HTML Live Preview",
"Cryptographic Hashes & Checksums (MD5, SHA-1, SHA-256, SHA-512)",
"CSS Units & Data Storage Units",
"Length, Mass, Area, Volume, Temperature, Speed, and Time Converters",
"Numerical System Radix Converter (Binary, Decimal, Hex, Octal, Roman)",
"Philippine TRAIN Law Income Tax & Salary Calculator",
"Mortgage & Housing Loan Calculator",
"Electricity Sub-meter Splitter & Appliance Cost",
"BMI & Body Health Calculator",
"Philippine GPA / GWA College Grade Calculator"
]
}
</script>
<!-- EthicalAds Privacy-Preserving Ad Network Script -->
<!-- Early Theme Detection to prevent theme flash on load -->
<script>
(function () {
try {
var saved = localStorage.getItem('mc_theme');
var isDark = saved ? saved === 'dark' : window.matchMedia('(prefers-color-scheme: dark)').matches;
if (isDark) {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
} catch (e) {}
})();
</script>
<style>
/* App-Shell Layout Skeleton (Zero-latency pre-hydration UI matching actual workspace) */
.app-shell-skeleton {
min-height: 100vh;
background-color: #fafafa;
color: #171717;
font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
display: flex;
flex-direction: column;
}
html.dark .app-shell-skeleton {
background-color: #0c0e14;
color: #f5f5f5;
}
@keyframes isal-shimmer {
0% { opacity: 0.5; }
50% { opacity: 0.85; }
100% { opacity: 0.5; }
}
.sk-pulse {
animation: isal-shimmer 1.8s ease-in-out infinite;
}
.sk-header {
height: 64px;
border-bottom: 1px solid rgba(0,0,0,0.08);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 1.5rem;
backdrop-filter: blur(12px);
}
html.dark .sk-header {
border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sk-brand {
display: flex;
align-items: center;
gap: 8px;
font-size: 20px;
font-weight: 800;
letter-spacing: -0.02em;
}
.sk-tagline {
font-size: 11px;
font-style: italic;
color: #d97706;
padding-left: 12px;
border-left: 1px solid rgba(0,0,0,0.1);
display: none;
}
@media (min-width: 640px) {
.sk-tagline { display: block; }
}
html.dark .sk-tagline {
border-left: 1px solid rgba(255,255,255,0.1);
color: #fbbf24;
}
.sk-box {
border-radius: 12px;
background: rgba(0,0,0,0.06);
}
html.dark .sk-box {
background: rgba(255,255,255,0.06);
}
.sk-main {
max-width: 1024px;
width: 100%;
margin: 0 auto;
padding: 2rem 1rem;
flex: 1;
display: flex;
flex-direction: column;
gap: 1.5rem;
}
</style>
</head>
<body>
<div id="root">
<!-- Pre-hydration Zero-Latency App-Shell Skeleton -->
<div class="app-shell-skeleton" aria-label="Loading Isal.in Multi-Converter">
<header class="sk-header">
<div style="display: flex; align-items: center; gap: 12px;">
<div class="sk-brand">
<span style="color: #0038A8;">isal</span><span style="width: 8px; height: 8px; border-radius: 50%; background-color: #F5B800; display: inline-block;"></span><span style="color: #CE1126;">in</span>
</div>
<div class="sk-tagline font-medium">"Isalin ang lahat. Convert anything."</div>
</div>
<div style="display: flex; align-items: center; gap: 12px;">
<div class="sk-box sk-pulse" style="width: 160px; height: 36px; border-radius: 12px;"></div>
<div class="sk-box sk-pulse" style="width: 36px; height: 36px; border-radius: 12px;"></div>
</div>
</header>
<main class="sk-main">
<!-- Category Tabs Skeleton -->
<div style="display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px;">
<div class="sk-box sk-pulse" style="width: 100px; height: 36px; border-radius: 12px; background: rgba(245, 184, 0, 0.2);"></div>
<div class="sk-box sk-pulse" style="width: 120px; height: 36px; border-radius: 12px;"></div>
<div class="sk-box sk-pulse" style="width: 130px; height: 36px; border-radius: 12px;"></div>
<div class="sk-box sk-pulse" style="width: 140px; height: 36px; border-radius: 12px;"></div>
<div class="sk-box sk-pulse" style="width: 130px; height: 36px; border-radius: 12px;"></div>
</div>
<!-- Hero / Search Skeleton -->
<div style="text-align: center; margin: 1.5rem 0 0.5rem; display: flex; flex-direction: column; align-items: center; gap: 12px;">
<div class="sk-box sk-pulse" style="width: 240px; height: 24px; border-radius: 9999px;"></div>
<div class="sk-box sk-pulse" style="width: min(540px, 90vw); height: 48px; border-radius: 16px;"></div>
<div class="sk-box sk-pulse" style="width: min(420px, 80vw); height: 20px; border-radius: 8px;"></div>
</div>
<!-- Dual Panel Converter Workspace Skeleton -->
<div class="sk-box" style="padding: 24px; border-radius: 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px;">
<div style="display: flex; flex-direction: column; gap: 12px;">
<div class="sk-box sk-pulse" style="width: 120px; height: 16px; border-radius: 6px;"></div>
<div class="sk-box sk-pulse" style="width: 100%; height: 56px; border-radius: 16px;"></div>
<div class="sk-box sk-pulse" style="width: 180px; height: 24px; border-radius: 8px;"></div>
</div>
<div style="display: flex; flex-direction: column; gap: 12px;">
<div class="sk-box sk-pulse" style="width: 120px; height: 16px; border-radius: 6px;"></div>
<div class="sk-box sk-pulse" style="width: 100%; height: 56px; border-radius: 16px; background: rgba(14, 165, 233, 0.15);"></div>
<div class="sk-box sk-pulse" style="width: 140px; height: 24px; border-radius: 8px;"></div>
</div>
</div>
</main>
</div>
</div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>