Test
更多語言
更多操作
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
<title>一支煙工作室 · Wiki</title>
<style>
/* 全局重置 & 字體 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', sans-serif;
}
body {
min-height: 100vh;
background: #0b0d10;
color: #f0f3f7;
}
/* ----- 背景圖 + 蒙版漸變 (固定在底層) ----- */
.bg-hero {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
/* ↓↓↓ 請將 background-image 中的 URL 替換為您的背景圖片 ↓↓↓ */
background-image: url('https://images.unsplash.com/photo-1541701494587-cb58502866ab?w=1600&q=80');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
/* 蒙版漸變: 從下到上 (底部更深,頂部透亮) */
mask-image: linear-gradient(to bottom, rgba(0,0,0,0.05) 5%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0.85) 100%);
-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0.05) 5%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0.85) 100%);
/* 疊加一層柔光,增強文字可讀性 */
background-blend-mode: normal;
}
/* 額外疊加一層半透明遮罩 (讓背景更柔和) */
.bg-hero::after {
content: '';
position: absolute;
inset: 0;
background: rgba(10, 12, 18, 0.35);
pointer-events: none;
}
/* 為了讓內容在背景之上 */
.app-wrapper {
position: relative;
z-index: 2;
max-width: 1260px;
margin: 0 auto;
padding: 24px 20px 80px;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
}
/* ----- 工作室 logo (請替換圖片) ----- */
.studio-logo {
margin: 12px 0 20px 0;
display: flex;
justify-content: center;
align-items: center;
filter: drop-shadow(0 8px 24px rgba(0,0,0,0.7));
transition: transform 0.2s ease;
width: 100%;
}
.studio-logo img {
max-width: 340px;
width: 80%;
height: auto;
display: block;
border-radius: 20px;
/* 如果logo有透明背景,可以加一點微光 */
box-shadow: 0 0 40px rgba(180, 140, 100, 0.1);
}
.studio-logo:hover {
transform: scale(1.01);
}
/* ----- 彈窗 (歡迎卡片) ----- */
.welcome-popup {
background: rgba(28, 32, 40, 0.78);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border-radius: 40px;
padding: 30px 34px 26px;
margin: 6px 0 28px 0;
width: 100%;
max-width: 820px;
box-shadow: 0 20px 40px -12px rgba(0,0,0,0.7), 0 0 0 1px rgba(220, 190, 150, 0.15);
border: 1px solid rgba(230, 210, 170, 0.12);
transition: all 0.25s;
}
.welcome-popup h2 {
font-size: 1.9rem;
font-weight: 500;
letter-spacing: 1px;
margin-bottom: 16px;
color: #f5e7d9;
display: flex;
align-items: center;
gap: 10px;
}
.welcome-popup h2 span {
font-size: 2.2rem;
}
.welcome-popup ul {
list-style: none;
margin: 12px 0 18px 0;
padding-left: 8px;
}
.welcome-popup li {
padding: 6px 0 6px 24px;
position: relative;
line-height: 1.6;
font-size: 1.02rem;
color: #d6dce5;
}
.welcome-popup li::before {
content: "•";
position: absolute;
left: 2px;
color: #dbbd94;
font-weight: bold;
font-size: 1.3rem;
}
.welcome-popup a {
color: #e6cbaa;
text-decoration: none;
border-bottom: 1px dashed #a58767;
transition: 0.2s;
}
.welcome-popup a:hover {
color: #f5e2c5;
border-bottom-color: #dfc094;
}
.popup-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
margin-top: 18px;
gap: 16px 10px;
}
.popup-actions .btn-group {
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
}
.btn-primary {
background: #c7a77b;
border: none;
padding: 10px 32px;
border-radius: 60px;
font-weight: 600;
font-size: 1.05rem;
color: #1c1f26;
cursor: pointer;
box-shadow: 0 6px 14px rgba(0,0,0,0.3);
transition: all 0.2s;
letter-spacing: 0.3px;
border: 1px solid #dcbf99;
}
.btn-primary:hover {
background: #dbbc92;
transform: scale(1.01);
box-shadow: 0 8px 18px rgba(0,0,0,0.4);
}
.checkbox-reminder {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.95rem;
color: #bac4d0;
cursor: pointer;
}
.checkbox-reminder input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: #b7976e;
transform: scale(1.0);
filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));
cursor: pointer;
}
/* ----- 神秘語錄 (漸顯+模糊) ----- */
.motto-section {
margin: 48px 0 40px 0;
font-size: 1.8rem;
font-weight: 300;
letter-spacing: 4px;
color: #e2d3be;
text-shadow: 0 2px 12px rgba(0,0,0,0.6);
text-align: center;
opacity: 0.7;
transition: all 0.1s;
backdrop-filter: blur(2px);
padding: 12px 24px;
border-radius: 100px;
background: rgba(0,0,0,0.1);
}
.motto-section span {
display: inline-block;
background: linear-gradient(135deg, #f3e2cb, #cfb697);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
font-weight: 500;
}
/* ----- 模塊網格 (R角矩形) ----- */
.modules-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 22px 22px;
width: 100%;
max-width: 1100px;
margin: 12px 0 30px;
}
/* 通用卡片樣式 — R角 + 毛玻璃 + 動態漸顯模糊 */
.module-card {
background: rgba(30, 34, 42, 0.55);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-radius: 28px;
padding: 26px 18px 24px;
box-shadow: 0 10px 28px -8px rgba(0,0,0,0.6), 0 0 0 1px rgba(210, 180, 140, 0.08);
border: 1px solid rgba(225, 200, 165, 0.06);
transition: all 0.3s cubic-bezier(0.15, 0.75, 0.3, 1.1);
color: #eceff5;
display: flex;
flex-direction: column;
backdrop-filter: blur(8px);
/* 初始透明 + 模糊 (為滾動漸顯準備) */
opacity: 0.4;
transform: translateY(10px);
filter: blur(2px);
transition: opacity 0.7s ease, transform 0.6s ease, filter 0.7s ease, box-shadow 0.3s;
}
/* 當卡片進入可視區 (通過JS添加類 .visible) */
.module-card.visible {
opacity: 1;
transform: translateY(0);
filter: blur(0);
background: rgba(30, 34, 42, 0.65);
box-shadow: 0 16px 36px -10px rgba(0,0,0,0.7), 0 0 0 1px rgba(210, 180, 140, 0.12);
}
/* 特殊:長條 YZY春秋 (占一整行) */
.module-card.long-row {
grid-column: 1 / -1;
padding: 24px 26px;
min-height: 90px;
justify-content: center;
align-items: center;
text-align: center;
background: rgba(40, 36, 30, 0.6);
backdrop-filter: blur(12px);
border: 1px solid rgba(200, 175, 135, 0.1);
}
.module-card.long-row h3 {
font-size: 2.2rem;
letter-spacing: 6px;
font-weight: 400;
color: #eddcc6;
text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.module-card.long-row h3 small {
font-size: 1rem;
font-weight: 300;
opacity: 0.7;
margin-left: 18px;
letter-spacing: 2px;
}
/* 普通卡片標題 + 內容 */
.module-card h3 {
font-weight: 500;
font-size: 1.4rem;
letter-spacing: 1px;
color: #ebddcc;
margin-bottom: 12px;
border-bottom: 1px solid rgba(200, 175, 140, 0.15);
padding-bottom: 8px;
}
.module-card p, .module-card .desc {
font-size: 0.98rem;
line-height: 1.6;
color: #cfd7e2;
opacity: 0.85;
}
.module-card .badge-list {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
margin-top: 8px;
}
.module-card .badge-list span {
background: rgba(220, 195, 160, 0.08);
padding: 3px 12px;
border-radius: 40px;
font-size: 0.85rem;
border: 1px solid rgba(210, 185, 145, 0.1);
}
.module-card .meta-link {
color: #ccb99a;
text-decoration: none;
border-bottom: 1px dotted #7f6e58;
}
.module-card .friend-links {
display: flex;
flex-wrap: wrap;
gap: 4px 16px;
margin-top: 6px;
}
/* 響應式 */
@media (max-width: 820px) {
.modules-grid {
grid-template-columns: repeat(2, 1fr);
gap: 18px;
}
.module-card.long-row {
grid-column: 1 / -1;
}
.welcome-popup {
padding: 24px 20px;
}
.popup-actions {
flex-direction: column;
align-items: flex-start;
}
.motto-section {
font-size: 1.4rem;
}
}
@media (max-width: 520px) {
.modules-grid {
grid-template-columns: 1fr;
gap: 16px;
}
.module-card.long-row h3 {
font-size: 1.8rem;
}
.welcome-popup h2 {
font-size: 1.5rem;
}
}
</style>
</head>
<body>
<div class="bg-hero" style="background-image: url('https://images.unsplash.com/photo-1541701494587-cb58502866ab?w=1600&q=80');">
</div>
<div class="app-wrapper">
<div class="studio-logo">
<img src="https://via.placeholder.com/600x200/2a251e/dbc39e?text=一支烟工作室+LOGO" alt="一支煙工作室 Logo">
</div>
<div class="welcome-popup" id="welcomePopup">
<h2><span>🎉</span> 歡迎來到一支煙工作室 Wiki!</h2>
<ul>
<li>欢迎参与编辑!一支烟工作室 Wiki是一个社区,你需要遵守一些社区规则。</li>
<li>没有编辑的经验?推荐查阅:<a href="#">指导手册</a></li>
<li>加入一支烟工作室官方QQ频道 或 WIKI编辑讨论,以便更流畅地参与编辑和维护。</li>
</ul>
<div class="popup-actions">
<div class="btn-group">
<button class="btn-primary" id="closePopupBtn">好的</button>
<label class="checkbox-reminder">
<input type="checkbox" id="dontShowAgain"> 下次不再提醒
</label>
</div>
<span style="opacity:0.4; font-size:0.85rem; letter-spacing:1px;">✨ 一支烟 · 共创</span>
</div>
</div>
<div class="motto-section">
<span>因为热爱,创造未来</span>
</div>
<div class="modules-grid" id="modulesGrid">
<div class="module-card long-row" data-delay="0">
<h3>🌿 YZY春秋 <small>· 长卷</small></h3>
<p style="font-size:1rem; opacity:0.8; letter-spacing:1px;">春秋笔墨,烟云共赏</p>
</div>
<div class="module-card" data-delay="50">
<h3>📜 守则条目</h3>
<p>社区准则 · 编辑规范 · 行为公约</p>
<div class="badge-list">
<span>尊重</span><span>版权</span><span>协作</span>
</div>
</div>
<div class="module-card" data-delay="100">
<h3>📘 说明文档</h3>
<p>Wiki语法 · 模板使用 · 命名规范</p>
<div class="desc">快速上手,轻松编辑</div>
</div>
<div class="module-card" data-delay="150">
<h3>🤝 常用见面</h3>
<p>会议室 · 编辑沙龙 · 线上茶话</p>
<div class="badge-list"><span>每周二</span><span>周五</span></div>
</div>
<div class="module-card" data-delay="200">
<h3>🧩 模板列表</h3>
<p>信息框 · 导航 · 引用 · 更多</p>
<div class="badge-list"><span>50+</span><span>常用</span></div>
</div>
<div class="module-card" data-delay="250">
<h3>⚡ 特殊页面</h3>
<p>最近更改 · 随机页面 · 统计</p>
<a href="#" class="meta-link">查看全部 →</a>
</div>
<div class="module-card" data-delay="300">
<h3>🔗 友情链接</h3>
<div class="friend-links">
<a href="#" class="meta-link">煙雨社區</a>
<a href="#" class="meta-link">創作工坊</a>
<a href="#" class="meta-link">檔案館</a>
</div>
<p style="margin-top:6px;">交换链接 · 合作</p>
</div>
<div class="module-card" data-delay="350">
<h3>📋 更新记录</h3>
<p>2026.09.05 · 重构首页</p>
<p style="font-size:0.9rem; opacity:0.7;">更多历史 →</p>
</div>
</div>
<div style="margin: 30px 0 10px; opacity:0.3; font-size:0.9rem; letter-spacing:2px;">— 一支烟工作室 · 因热爱而创造 —</div>
</div>
<script>
(function() {
'use strict';
// ---------- 彈窗控制 ----------
const popup = document.getElementById('welcomePopup');
const closeBtn = document.getElementById('closePopupBtn');
const dontShowCheck = document.getElementById('dontShowAgain');
// 檢查 localStorage 是否記錄 「不再提醒」
const noShow = localStorage.getItem('wikiWelcomeNoShow') === 'true';
if (noShow) {
popup.style.display = 'none';
}
// 關閉彈窗
function closePopup() {
popup.style.display = 'none';
if (dontShowCheck.checked) {
localStorage.setItem('wikiWelcomeNoShow', 'true');
}
}
closeBtn.addEventListener('click', closePopup);
// ---------- 滾動漸顯 (Intersection Observer) ----------
const cards = document.querySelectorAll('.module-card');
if ('IntersectionObserver' in window) {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const card = entry.target;
const delay = parseInt(card.getAttribute('data-delay')) || 0;
setTimeout(() => {
card.classList.add('visible');
}, delay);
observer.unobserve(card);
}
});
}, {
threshold: 0.15,
rootMargin: '0px 0px -30px 0px'
});
cards.forEach(card => {
observer.observe(card);
});
} else {
cards.forEach(card => {
card.classList.add('visible');
});
}
})();
</script>
</body>
</html>