Initial stun navigation app
This commit is contained in:
75
public/index.html
Normal file
75
public/index.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user