Communitygithub.com

cskwork/landing-page-skill

用于构建落地页、营销站点、产品展示或文档站点的技能,使用纯 HTML/CSS/JS 设计系统,不适用于任意前端开发或现有框架迁移。

landing-page-skill 是什么?

该技能提供了一个完整的设计系统和组件库,用于在纯 HTML/CSS/JS 中构建美观且交互丰富的落地页。它基于无框架、无构建步骤的原则,通过复用 CSS 设计令牌、JS 交互模式和 HTML 组件模板来实现。技能支持深色/浅色主题切换、滚动动画、工具提示、标签页、多语言(i18n)等特性,并且所有内容都可在 GitHub Pages 或 Netlify 等静态托管平台上部署。它非常适合用于产品落地页、营销站点、文档站点或在线展示,但不适用于需要状态管理的复杂 Web 应用或服务端渲染页面。该技能提供了详细的设计系统文件(`design-system.css`、`app-template.js`、`components-reference.html`)和完整模板(`templates/landing-template.html`),开发者只需复制文件、组合组件并自定义令牌即可快速启动项目。它还内置了无障碍支持,包括 `:focus-visible` 轮廓、`prefers-reduced-motion` 媒体查询和 `.no-js` 回退,确保键盘导航和辅助技术用户也能正常使用。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add cskwork/landing-page-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Landing Page Builder

概述

一个完整的设计系统 + 组件库,用于用纯 HTML/CSS/JS 构建美观且交互丰富的落地页——无需框架,无需构建步骤。以可复用的 CSS 设计令牌、JS 交互模式和 HTML 组件模板的形式提供。

核心原则: 复制设计系统文件,从组件模板组合各部分,自定义令牌。一切无需依赖(可选:Google Fonts CDN)。

何时使用

  • 构建产品落地页、营销站点或作品展示
  • 创建带交互元素的文档站点
  • 部署到 GitHub Pages、Netlify 或任何静态托管平台
  • 需要深色/浅色主题切换、滚动动画、工具提示
  • 希望拥有精致设计,但无需 React/Vue/构建工具

何时不使用:

  • 复杂 Web 应用(涉及状态管理)——请使用框架
  • 服务端渲染的页面(此工具仅用于静态内容)
  • 内部管理仪表盘(过于复杂)

快速参考

组件文件关键类
设计令牌design-system/design-system.css:root 变量、--accent-*、--gradient-*
导航栏components-reference.html.navbar、.nav-links、.lang-toggle
主视觉区components-reference.html.hero、.hero-title、.gradient-text、.hero-stats
功能卡片components-reference.html.feature-grid、.feature-card、.reveal
代码块components-reference.html.code-block、.code-header、.code-copy
工具提示components-reference.html.tooltip-trigger、[data-tooltip]
标签页components-reference.html.tab-list、.tab-btn、.tab-panel
主题切换design-system.css + app-template.js[data-theme]、.icon-btn[data-toggle="theme"]
语言按钮design-system.css.lang-toggle、.lang-btn[data-lang]
滚动揭示app-template.js.reveal → .visible(通过 IntersectionObserver)
国际化app-template.js[data-i18n] + 翻译字典

设计系统

design-system.css 提供了两套主题的完整令牌集。根据你的品牌调整这些值;更多细节请阅读文件。

阅读 design-system/design-system.css 以获取维护的深色/浅色令牌;根据要求的品牌进行调整,而不是在此维护第二份令牌列表。

文件

文件用途
design-system/design-system.css完整 CSS:令牌、导航栏、主视觉区、卡片、代码块、工具提示、标签页、页脚、响应式
design-system/app-template.jsJS:滚动揭示、导航栏滚动、代码复制、标签页、主题切换、移动端菜单、国际化
design-system/components-reference.html每个组件的可复制 HTML 片段
templates/landing-template.html完整起始模板——包含所有部分的线框图

工具提示模式

工具提示在桌面端(悬停)和移动端/触屏(点击切换)上均可工作。需要 app-template.js 提供触屏支持。

<!-- 向上打开(默认) -->
<span class="tooltip-trigger" data-tooltip="这里有帮助性解释">
    悬停我
</span>

<!-- 向下打开(用于靠近页面顶部的触发元素) -->
<span class="tooltip-trigger tooltip-bottom" data-tooltip="解释">
    悬停我
</span>

<!-- 宽变体(用于较长文本,移动端自动换行) -->
<span class="tooltip-trigger tooltip-wide" data-tooltip="较长的多行解释...">
    悬停我
</span>

桌面端: CSS :hover 显示工具提示。移动端/平板: JS 添加点击切换,点击外部关闭。键盘: Tab 聚焦,Enter/Space 切换,Escape 关闭。

触屏和键盘路径通过切换触发元素上的 .tooltip-active 类实现。手写的工具提示 CSS 必须同时为 .tooltip-trigger:hover::after 和 .tooltip-trigger.tooltip-active::after 设置样式,否则点击无效——请阅读 design-system/design-system.css 第 10 部分(工具提示)后再自行编写。

层叠: 工具提示通过 z-index:10(应用在 .feature-card:hover、.code-block:hover 和 .callout:hover 上)脱离其容器。保留这些规则,并在子元素上使用 border-radius 来裁剪圆角(如 .feature-card::before 所做)——容器上的 overflow:hidden 会裁剪工具提示,且任何 z-index 都无法挽救。

构建工作流

  1. 复制 design-system.css、app-template.js 和 templates/landing-template.html(重命名为 index.html)到你的 项目中——三个文件放在一起,因为模板通过裸文件名引用它们
  2. 添加部分 从 components-reference.html(功能、代码块、标签页、标注、页脚)到线框架中
  3. 自定义令牌 在 :root 中(颜色、字体、渐变)
  4. 添加内容 到 HTML,如果需要多语言,则配置 data-i18n 键
  5. 在本地测试 ——在浏览器中打开 index.html,检查下方“常见错误”表格的每一行;每项都正确后才算完成
  6. 交付 已验证的文件。仅在被要求时进行部署,使用约定的托管平台和仓库工作流。

部署到 GitHub Pages

当要求发布时,检查现有仓库和 Pages 配置,准备好经过审查的文件,并遵循其部署工作流。仅在获得授权时创建公共仓库或更改可见性。暂存命名的输出文件,保留不相关的工作。在报告公共 URL 之前,验证部署的修订版和实时内容;仅 HTTP 200 不能作为视觉证据。

常见错误

错误修复
缺少 meta viewport添加 <meta name="viewport" content="width=device-width, initial-scale=1.0">
<html> 上缺少 [data-theme]设置 <html data-theme="dark"> 作为默认主题
揭示元素不可见确保已加载 app-template.js,并且 .reveal 有匹配的 .visible 逻辑
隐藏标签面板中的揭示元素标签切换会自动重新揭示;或者从标签内容中移除 .reveal
工具提示在顶部被截断对靠近视口顶部的触发元素使用 .tooltip-bottom 变体
加载时主题闪烁在 <head> 中内联 <script>,在渲染前读取 localStorage.getItem('lp-theme') 并设置到 data-theme——templates/landing-template.html 中已有此脚本
无 JS 时内容不可见在 <html> 上添加 class="no-js" + .no-js .reveal { opacity:1 } 回退
代码复制不工作检查 .code-copy 按钮是否存在,并且 JS 已加载
未样式化内容闪烁在样式表之前的 <head> 中放置字体 <link>
缺少焦点样式所有交互元素都内置了 :focus-visible 轮廓

无障碍

该设计系统包含:

  • 所有交互元素上的 :focus-visible 轮廓(键盘导航)
  • prefers-reduced-motion 媒体查询(禁用动画)
  • .no-js 回退(无 JavaScript 时内容可见)
  • 仅图标按钮的 ARIA 标签
  • 语义化 HTML 结构(正确的标题层级)
  • 主题对比度令牌;在自定义后验证对比度,然后再声明符合 WCAG 标准

相关技能