| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <!doctype html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>VOC HTML v2 Demo Report</title>
- <style>
- :root{--brand:#2D9C5D;--accent:#D4A574;--blue:#0085CA;--rose:#FF4D8D;--purple:#8B5CF6;--orange:#FF8C42;--bg:#07130F;--panel:rgba(255,255,255,0.075);--line:rgba(255,255,255,0.14);--text:#F5F7F2;--muted:#AEB8B0;font-family:Inter,"Microsoft YaHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
- *{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 10%,rgba(45,156,93,.24),transparent 28%),radial-gradient(circle at 80% 0,rgba(212,165,116,.2),transparent 24%),linear-gradient(135deg,#06100d,#0b1712 50%,#10120f);line-height:1.6}a{color:inherit;text-decoration:none}.top-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:12px 28px;border-bottom:1px solid var(--line);background:rgba(7,19,15,.76);backdrop-filter:blur(18px)}.top-nav div{display:flex;gap:12px;flex-wrap:wrap}.top-nav a{font-size:12px;color:var(--muted)}main{width:min(1180px,calc(100% - 36px));margin:0 auto}.slide{min-height:100vh;padding:96px 0 72px;display:flex;flex-direction:column;justify-content:center}.cover{align-items:center;text-align:center}.cover-inner{width:min(920px,100%);padding:64px;border:1px solid var(--line);border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));box-shadow:0 24px 90px rgba(0,0,0,.32)}.cover h1{font-size:clamp(42px,8vw,92px);line-height:1.02;margin:22px 0;background:linear-gradient(90deg,#fff,var(--accent));-webkit-background-clip:text;color:transparent}.cover-subtitle{font-size:clamp(18px,2.2vw,28px);color:var(--muted);margin:0}.cover-meta,.cover-stats{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:28px}.cover-meta span,.cover-stat{border:1px solid var(--line);background:rgba(255,255,255,.06);border-radius:999px;padding:8px 14px}.cover-stat{min-width:150px;border-radius:18px}.cover-stat strong{display:block;font-size:24px;color:var(--accent)}.cover-stat span{font-size:12px;color:var(--muted)}.section-head{max-width:880px;margin-bottom:28px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--tone);font-weight:800;letter-spacing:.18em;text-transform:uppercase;font-size:12px}.section-head h2{font-size:clamp(34px,5vw,62px);line-height:1.08;margin:10px 0}.section-head p{font-size:18px;color:var(--muted);margin:0}.slide-body{width:100%}.badge{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--tone) 62%,transparent);background:color-mix(in srgb,var(--tone) 18%,transparent);color:#fff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.tag-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.metric-grid,.card-grid,.voc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.voc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.glass-card,.voc-card,.matrix-cell,.decision-item{border:1px solid var(--line);background:var(--panel);border-radius:24px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.18);backdrop-filter:blur(18px)}.metric-value{font-size:36px;font-weight:900;color:var(--accent);line-height:1}.metric-label{font-weight:800;margin-top:10px}.metric-card p,.glass-card p,.matrix-cell p,.decision-item p{color:var(--muted);margin:.5em 0 0}.glass-card h3,.matrix-cell h3,.decision-item h3{margin:14px 0 0;font-size:20px}.voc-card blockquote{margin:0;font-size:18px;color:#fff}.voc-card footer{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:12px}.bar-chart{display:grid;gap:16px}.bar-label{display:flex;justify-content:space-between;gap:20px;font-weight:700}.bar-track{height:13px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:8px}.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--tone),color-mix(in srgb,var(--tone) 45%,#fff));box-shadow:0 0 22px color-mix(in srgb,var(--tone) 50%,transparent)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--panel)}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--accent);font-size:13px}tr:last-child td{border-bottom:0}.matrix-wrap{position:relative;padding:28px 34px 34px}.matrix-2x2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.matrix-cell{min-height:180px;border-color:color-mix(in srgb,var(--tone) 38%,var(--line))}.axis{color:var(--muted);font-size:12px;text-align:center}.axis-y{position:absolute;left:0;top:50%;transform:translateY(-50%) rotate(-90deg)}.axis-x{margin-top:12px}.decision-list{display:grid;gap:14px}.decision-item{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:flex-start}.decision-rank{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--accent));font-weight:900}.decision-item small{display:block;margin-top:8px;color:var(--accent)}@media (max-width:900px){.metric-grid,.card-grid,.voc-grid,.matrix-2x2{grid-template-columns:1fr}.top-nav{position:static;align-items:flex-start;flex-direction:column}.cover-inner{padding:36px}.slide{padding:64px 0}}
- </style>
- </head>
- <body>
- <nav class="top-nav"><strong>voc-report-factory-demo</strong><div><a href="#summary">摘要</a><a href="#evidence">证据</a><a href="#opportunity">机会</a><a href="#action">行动</a></div></nav>
- <main>
- <section class="slide cover" id="cover">
- <div class="cover-inner">
- <span class="badge" style="--tone:var(--accent)">HTML v2</span>
- <h1>VOC HTML v2 Demo Report</h1>
- <p class="cover-subtitle">模板化组件库生成示例</p>
- <div class="cover-meta">
- <span>voc-report-factory-demo</span>
- <span>2026-04</span>
- <span>VOC Report Factory</span>
- </div>
- <div class="cover-stats">
- <div class="cover-stat">
- <strong>180</strong>
- <span>目标 VOC 样本</span>
- </div>
-
- <div class="cover-stat">
- <strong>8/8</strong>
- <span>H1-H8 覆盖</span>
- </div>
-
- <div class="cover-stat">
- <strong>3</strong>
- <span>平台关键词</span>
- </div>
-
- <div class="cover-stat">
- <strong>0</strong>
- <span>审计警告</span>
- </div>
- </div>
- </div>
- </section>
-
- <section class="slide" id="summary" data-tone="green">
-
- <header class="section-head" style="--tone:var(--brand)">
- <div class="eyebrow">Chapter 01</div>
- <h2>执行摘要</h2>
- <p>用统一组件表达关键数字、核心洞察和报告结论。</p>
- </header>
-
- <div class="slide-body"><div class="metric-grid">
- <article class="metric-card">
- <div class="metric-value">180</div>
- <div class="metric-label">目标 VOC 样本</div>
- <p>来自采集矩阵 targetCount</p>
- </article>
-
- <article class="metric-card">
- <div class="metric-value">8/8</div>
- <div class="metric-label">H1-H8 覆盖</div>
- <p>每条假设至少 3 个关键词</p>
- </article>
-
- <article class="metric-card">
- <div class="metric-value">3</div>
- <div class="metric-label">平台关键词</div>
- <p>小红书课程 demo</p>
- </article>
-
- <article class="metric-card">
- <div class="metric-value">0</div>
- <div class="metric-label">审计警告</div>
- <p>可进入采集执行</p>
- </article>
- </div><div class="card-grid">
- <article class="glass-card">
- <span class="badge" style="--tone:var(--brand)">H1</span>
- <h3>品类机会明确</h3>
- <p>用户搜索和讨论集中在怎么选、是否有效和安全边界。</p>
- </article>
-
- <article class="glass-card">
- <span class="badge" style="--tone:var(--blue)">H2</span>
- <h3>场景触发强</h3>
- <p>腹胀、便秘、儿童肠胃和日常调理是主要触发场景。</p>
- </article>
-
- <article class="glass-card">
- <span class="badge" style="--tone:var(--purple)">H7</span>
- <h3>话术需要降噪</h3>
- <p>用户更接受具体场景解释,而不是泛泛功效承诺。</p>
- </article>
- </div></div>
- </section>
-
- <section class="slide" id="evidence" data-tone="blue">
-
- <header class="section-head" style="--tone:var(--blue)">
- <div class="eyebrow">Chapter 02</div>
- <h2>VOC 证据</h2>
- <p>每个关键判断都应该能回到用户原声、平台、关键词和批次。</p>
- </header>
-
- <div class="slide-body"><div class="voc-grid">
- <article class="voc-card">
- <blockquote>给孩子吃之前最怕配方看不懂,想知道到底适不适合。</blockquote>
- <footer>
- <span>课程样例用户 A</span>
- <span>小红书</span>
- <span>18 赞</span>
- </footer>
- <div class="tag-list"><span class="badge" style="--tone:var(--blue)">安全</span><span class="badge" style="--tone:var(--blue)">配方</span></div>
- </article>
-
- <article class="voc-card">
- <blockquote>腹胀的时候才想起来买,最好能说清楚多久有感觉。</blockquote>
- <footer>
- <span>课程样例用户 B</span>
- <span>小红书</span>
- <span>12 赞</span>
- </footer>
- <div class="tag-list"><span class="badge" style="--tone:var(--blue)">场景</span><span class="badge" style="--tone:var(--blue)">见效</span></div>
- </article>
-
- <article class="voc-card">
- <blockquote>测评太多了,看来看去还是不知道哪个适合自己。</blockquote>
- <footer>
- <span>课程样例用户 C</span>
- <span>小红书</span>
- <span>25 赞</span>
- </footer>
- <div class="tag-list"><span class="badge" style="--tone:var(--blue)">测评</span><span class="badge" style="--tone:var(--blue)">选择困难</span></div>
- </article>
- </div>
- <div class="table-wrap">
- <table>
- <thead><tr><th>结论</th><th>证据</th><th>来源</th><th>置信度</th></tr></thead>
- <tbody><tr><td>用户需要明确选择标准</td><td>怎么选、测评、配方类词反复出现</td><td>关键词矩阵</td><td>中</td></tr><tr><td>安全与体感边界要写清楚</td><td>评论会追问适合人群和见效周期</td><td>VOC 原声</td><td>中</td></tr><tr><td>内容应从场景切入</td><td>痛点场景词比纯品类词更利于收集原声</td><td>采集计划</td><td>高</td></tr></tbody>
- </table>
- </div>
- </div>
- </section>
-
- <section class="slide" id="opportunity" data-tone="gold">
-
- <header class="section-head" style="--tone:var(--accent)">
- <div class="eyebrow">Chapter 03</div>
- <h2>机会判断</h2>
- <p>用矩阵、表格和条形图表达机会优先级。</p>
- </header>
-
- <div class="slide-body"><div class="bar-chart">
- <div class="bar-row">
- <div class="bar-label"><span>使用场景</span><strong>42%</strong></div>
- <div class="bar-track"><div class="bar-fill" style="width:100%;--tone:var(--brand)"></div></div>
- </div>
-
- <div class="bar-row">
- <div class="bar-label"><span>购买决策</span><strong>31%</strong></div>
- <div class="bar-track"><div class="bar-fill" style="width:73.80952380952381%;--tone:var(--blue)"></div></div>
- </div>
-
- <div class="bar-row">
- <div class="bar-label"><span>竞品参照</span><strong>18%</strong></div>
- <div class="bar-track"><div class="bar-fill" style="width:42.857142857142854%;--tone:var(--accent)"></div></div>
- </div>
-
- <div class="bar-row">
- <div class="bar-label"><span>价格规格</span><strong>9%</strong></div>
- <div class="bar-track"><div class="bar-fill" style="width:21.428571428571427%;--tone:var(--rose)"></div></div>
- </div>
- </div>
- <div class="matrix-wrap">
- <div class="axis axis-y">执行难度</div>
- <div class="matrix-2x2">
-
- <article class="matrix-cell" style="--tone:var(--brand)">
- <span class="badge" style="--tone:var(--brand)">P0</span>
- <h3>优先采集</h3>
- <p>怎么选、腹胀便秘、测评类关键词。</p>
- </article>
-
- <article class="matrix-cell" style="--tone:var(--accent)">
- <span class="badge" style="--tone:var(--accent)">P1</span>
- <h3>放大验证</h3>
- <p>价格、规格、达人推荐和竞品对比。</p>
- </article>
-
- <article class="matrix-cell" style="--tone:var(--blue)">
- <span class="badge" style="--tone:var(--blue)">P2</span>
- <h3>观察补采</h3>
- <p>复购、推荐、转化等后链路信号。</p>
- </article>
-
- <article class="matrix-cell" style="--tone:var(--rose)">
- <span class="badge" style="--tone:var(--rose)">暂缓</span>
- <h3>低信号区域</h3>
- <p>广告噪声高且用户原声不足的关键词。</p>
- </article>
-
- </div>
- <div class="axis axis-x">机会确定性</div>
- </div>
-
- <div class="table-wrap">
- <table>
- <thead><tr><th>假设</th><th>关键词数</th><th>状态</th><th>备注</th></tr></thead>
- <tbody><tr><td>H1</td><td>3</td><td>通过</td><td>品类机会</td></tr><tr><td>H2</td><td>3</td><td>通过</td><td>用户需求</td></tr><tr><td>H3</td><td>3</td><td>通过</td><td>产品缺口</td></tr><tr><td>H8</td><td>3</td><td>通过</td><td>增长行动</td></tr></tbody>
- </table>
- </div>
- </div>
- </section>
-
- <section class="slide" id="action" data-tone="orange">
-
- <header class="section-head" style="--tone:var(--orange)">
- <div class="eyebrow">Chapter 04</div>
- <h2>行动计划</h2>
- <p>把 VOC 发现转成 P0/P1/P2 的下一步验证动作。</p>
- </header>
-
- <div class="slide-body"><div class="decision-list">
- <article class="decision-item">
- <div class="decision-rank">P0</div>
- <div>
- <h3>先跑 3 个核心关键词</h3>
- <p>儿童益生菌怎么选、益生菌腹胀便秘、冻干益生菌测评。</p>
- <small>采集负责人 · 每词 10 条有效评论</small>
- </div>
- </article>
-
- <article class="decision-item">
- <div class="decision-rank">P1</div>
- <div>
- <h3>扩展 H1-H8 覆盖词</h3>
- <p>使用 collection-matrix-builder 的 expand 模式补齐覆盖。</p>
- <small>分析负责人 · warnings = 0</small>
- </div>
- </article>
-
- <article class="decision-item">
- <div class="decision-rank">P2</div>
- <div>
- <h3>生成 mini report 并审计</h3>
- <p>用 voc-report-auditor 检查样本量、假设覆盖和证据回溯。</p>
- <small>交付负责人 · 严重问题 = 0</small>
- </div>
- </article>
- </div></div>
- </section>
-
- </main>
- <script>
- document.querySelectorAll('a[href^="#"]').forEach(function(anchor){anchor.addEventListener('click',function(event){var target=document.querySelector(anchor.getAttribute('href'));if(target){event.preventDefault();target.scrollIntoView({behavior:'smooth'});}});});
- </script>
- </body>
- </html>
|