Files
stun-nav/public/index.html
2026-07-12 16:22:32 +08:00

76 lines
3.1 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>家中服务导航</title>
<link rel="stylesheet" href="/styles.css?v=3" />
</head>
<body>
<main class="shell">
<header class="topbar hero">
<div class="hero-copy">
<p id="appBrand" class="eyebrow">STUN NAV</p>
<h1 id="appTitle">家中服务</h1>
<p id="appSubtitle" class="subtitle">聚合 Lucky STUN 最新入口,一处打开所有家中应用</p>
</div>
<div class="actions">
<a class="text-link" href="/admin">管理</a>
<label class="search">
<span class="search-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" width="18" height="18">
<path d="m21 21-4.35-4.35m2.35-5.65a8 8 0 1 1-16 0 8 8 0 0 1 16 0Z" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
</svg>
</span>
<input id="searchInput" type="search" placeholder="搜索服务" autocomplete="off" />
</label>
<button id="refreshButton" class="icon-button" type="button" title="刷新">
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
<path d="M21 12a9 9 0 0 1-15.18 6.57M3 12A9 9 0 0 1 18.18 5.43M21 5v6h-6M3 19v-6h6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</button>
</div>
</header>
<section id="statusBar" class="status" aria-live="polite">正在读取最新地址...</section>
<section id="services" class="services"></section>
</main>
<template id="groupTemplate">
<section class="group">
<h2></h2>
<div class="grid"></div>
</section>
</template>
<template id="cardTemplate">
<article class="service-card">
<div class="card-main">
<div class="service-mark" aria-hidden="true"></div>
<div class="service-text">
<h3></h3>
<p class="note"></p>
<p class="meta"></p>
</div>
</div>
<div class="card-actions">
<button class="icon-button copy-button" type="button" title="复制地址">
<svg viewBox="0 0 24 24" width="19" height="19" aria-hidden="true">
<rect x="9" y="9" width="11" height="11" rx="2" fill="none" stroke="currentColor" stroke-width="2" />
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
</svg>
</button>
<a class="open-button" target="_blank" rel="noreferrer">
<span>打开</span>
<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
<path d="M7 17 17 7M9 7h8v8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</article>
</template>
<script src="/app.js?v=3" type="module"></script>
</body>
</html>