diff --git a/README.md b/README.md index 0840447..1803f53 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,70 @@ -
- easy-vibe -
-
-

Easy-Vibe : Learn Vibe Coding from 0 to 1

- GitHub stars - GitHub forks - Language -
-
-[中文](https://github.com/datawhalechina/easy-vibe/blob/main/README.md) | [English](https://github.com/THU-SIGS-AIID/ai-vibe-coding-101/blob/main/README.md) +
+███████╗ █████╗ ███████╗██╗   ██╗    ██╗   ██╗██╗██████╗ ███████╗
+██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝    ██║   ██║██║██╔══██╗██╔════╝
+█████╗  ███████║███████╗ ╚████╔╝     ██║   ██║██║██████╔╝█████╗  
+██╔══╝  ██╔══██║╚════██║  ╚██╔╝      ╚██╗ ██╔╝██║██╔══██╗██╔══╝  
+███████╗██║  ██║███████║   ██║        ╚████╔╝ ██║██████╔╝███████╗
+╚══════╝╚═╝  ╚═╝╚══════╝   ╚═╝         ╚═══╝  ╚═╝╚═════╝ ╚══════╝
-
+# Easy-Vibe: Learn Vibe Coding from 0 to 1 + +### *零基础、项目制学习、构建第一个 AI 产品* + +

+ + + + +

+ +

+ +

-

零基础、项目制学习、构建第一个 AI 产品

+ + +
-## 项目介绍 +
+ + English + + + 中文 + +
+ + + +## 🚀 项目介绍 当你尝试用AI写代码,出错不断,时常想放弃,不清楚如何将程序真正上线 😢。 本教程专门设计,从0到1,带你逐步掌握 Vibe Coding 技巧: -- 第零阶段:从**小游戏快速入门** 上手 vibe coding 技能 -- 第一阶段:产品经理视角下的 **vibe coding 技能和业务理解**,实现 Web 应用原型 -- 第二阶段:学习**前后端开发与 AI 能力**相关的 vibecoding 技巧,完成完整应用 -- 第三阶段:掌握**多平台复杂应用**的构建方案,走向生产级应用 +- **第零阶段**:从**小游戏快速入门** 上手 vibe coding 技能 +- **第一阶段**:产品经理视角下的 **vibe coding 技能和业务理解**,实现 Web 应用原型 +- **第二阶段**:学习**前后端开发与 AI 能力**相关的 vibecoding 技巧,完成完整应用 +- **第三阶段**:掌握**多平台复杂应用**的构建方案,走向生产级应用 我们相信,掌握Vibe Coding并配合系统化训练,一个人就能成为集前后端开发、AI 能力集成、产品设计于一身的开发者。 -> 本项目主要面向三类学习者: +> **本项目主要面向三类学习者:** > > - **新手(普通人 / 产品与运营侧)**:帮助非技术入门学习者听懂关键概念,完成第一个产品原型。 > - **初中级开发者(有一定基础的学生和开发者)**:掌握前后端 vibe coding 与 AI 能力知识。 > - **高级开发者(公司与初创、开源与独立开发者)**:高级开发技巧、多平台开发。 -## 📖 内容导航 +### 📖 内容导航 -![](assets/readme-image1.png) +
+ Learning Map +
### 总附录 @@ -48,85 +72,85 @@ ### 零、幼儿园 -| 章节 | 关键内容 | 状态 | -| :----------------------------------------------------------------------------------------- | :------------------------------------- | :--- | -| [前言:学习地图](docs/stage-0/0.1-learning-map/index.md) | 整体学习路径导览 | ✅ | -| [初级一:AI 时代,会说话就会编程](docs/stage-0/0.2-ai-capabilities-through-games/index.md) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | ✅ | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [前言:学习地图](docs/stage-0/0.1-learning-map/index.md) | 整体学习路径导览 | ✅ | +| [初级一:AI 时代,会说话就会编程](docs/stage-0/0.2-ai-capabilities-through-games/index.md) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | ✅ | ### 一、AI 产品经理 -| 章节 | 关键内容 | 状态 | -| :---------------------------------------------------------------------------------- | :------------------------------------------------ | :--- | -| [初级二:认识 AI IDE 工具](docs/stage-1/1.1-introduction-to-ai-ide/index.md) | 学会使用 IDE,在本地制作小游戏 | ✅ | -| [初级三:动手做出原型](docs/stage-1/1.2-building-prototype/index.md) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | ✅ | -| [初级四:给原型加上 AI 能力](docs/stage-1/1.3-integrating-ai-capabilities/index.md) | 学会接入常见 AI 能力(文本、图片、视频) | ✅ | -| [初级五:完整项目实战](docs/stage-1/1.4-complete-project-practice/index.md) | 模拟真实场景、接受用户反馈迭代,完整化项目 | ✅ | -| [大作业:做一个完整的 Web 应用原型并展示](docs/stage-1/1.5-final-project/index.md) | 完整实现应用,展示应用效果 | ✅ | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [初级二:认识 AI IDE 工具](docs/stage-1/1.1-introduction-to-ai-ide/index.md) | 学会使用 IDE,在本地制作小游戏 | ✅ | +| [初级三:动手做出原型](docs/stage-1/1.2-building-prototype/index.md) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | ✅ | +| [初级四:给原型加上 AI 能力](docs/stage-1/1.3-integrating-ai-capabilities/index.md) | 学会接入常见 AI 能力(文本、图片、视频) | ✅ | +| [初级五:完整项目实战](docs/stage-1/1.4-complete-project-practice/index.md) | 模拟真实场景、接受用户反馈迭代,完整化项目 | ✅ | +| [大作业:做一个完整的 Web 应用原型并展示](docs/stage-1/1.5-final-project/index.md) | 完整实现应用,展示应用效果 | ✅ | #### 附录 -| 章节 | 关键内容 | 状态 | -| :-------------------------------------------------------------------------- | :--------------------------------- | :--- | -| [附录A:产品思维补充](docs/stage-1/appendix-a-product-thinking/index.md) | 从零到一做产品需要考虑的思维框架 | ✅ | -| [附录B:常见报错及解决方案](docs/stage-1/appendix-b-common-errors/index.md) | vibe coding 中的常见错误及排查方法 | ✅ | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [附录A:产品思维补充](docs/stage-1/appendix-a-product-thinking/index.md) | 从零到一做产品需要考虑的思维框架 | ✅ | +| [附录B:常见报错及解决方案](docs/stage-1/appendix-b-common-errors/index.md) | vibe coding 中的常见错误及排查方法 | ✅ | ### 二、初中级开发工程师 #### 前端部分 -| 章节 | 关键内容 | 状态 | -| :------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | :--- | -| [前端零:使用 lovart 生产素材](docs/stage-2/frontend/2.0-lovart-assets/) | 学会用 lovart 批量生成人物、场景等视觉素材,为 UI 设计和前端开发提供素材基础 | 🚧 | -| [前端一:Figma 与 MasterGo 入门](docs/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | 🚧 | -| [前端二:构建第一个现代应用程序-UI 设计](docs/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | 🚧 | -| [前端三:参考 UI 设计规范与多产品 UI 设计](docs/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | 🚧 | -| [前端四:一起做霍格沃茨画像](docs/stage-2/frontend/2.4-hogwarts-portraits/chapter4-lets-build-hogwarts-portraits.md) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | ✅ | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [前端零:使用 lovart 生产素材](docs/stage-2/frontend/2.0-lovart-assets/) | 学会用 lovart 批量生成人物、场景等视觉素材,为 UI 设计和前端开发提供素材基础 | 🚧 | +| [前端一:Figma 与 MasterGo 入门](docs/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | 🚧 | +| [前端二:构建第一个现代应用程序-UI 设计](docs/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | 🚧 | +| [前端三:参考 UI 设计规范与多产品 UI 设计](docs/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | 🚧 | +| [前端四:一起做霍格沃茨画像](docs/stage-2/frontend/2.4-hogwarts-portraits/chapter4-lets-build-hogwarts-portraits.md) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | ✅ | #### 后端与全栈部分 -| 章节 | 关键内容 | 状态 | -| :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ | :--- | -| [后端一:什么是 API](docs/stage-2/backend/2.1-what-is-api/extra2/extra2-what-is-api.md) | 理解 HTTP 接口与请求响应模型,为后端集成与联调做准备 | ✅ | -| [后端二:从数据库到 Supabase](docs/stage-2/backend/2.2-database-supabase/chapter5/chapter5-from-database-to-supabase.md) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | ✅ | -| [后端三:大模型辅助编写接口代码与接口文档](docs/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | 🚧 | -| [后端四:Git 工作流](docs/stage-2/backend/2.4-git-workflow/extra1/extra1-what-is-git-and-what-is-github.md) | 在 Git 工作流中管理代码,进行版本控制和协作 | ✅ | -| [后端五:Zeabur 部署](docs/stage-2/backend/2.5-zeabur-deployment/extra6/extra6-zeabur-what-is-it-and-how-to-deploy-web-applications.md) | 将应用部署到 Zeabur 上线 | ✅ | -| [后端六:现代 CLI 开发工具](docs/stage-2/backend/2.6-modern-cli/extra7/extra7-cli-ai-coding-tools-and-the-principles-of-test-driven-development.md) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | ✅ | -| [后端七:如何集成 Stripe 等收费系统](docs/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | 🚧 | -| [大作业 1:构建第一个现代应用程序-全栈应用](docs/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | 🚧 | -| [大作业 2:现代前端组件库 + Trae 实战](docs/stage-2/assignments/2.2-modern-frontend-trae/) | 使用现代前端组件库与 Trae,独立完成可登录注册并支持收费的产品 | 🚧 | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [后端一:什么是 API](docs/stage-2/backend/2.1-what-is-api/extra2/extra2-what-is-api.md) | 理解 HTTP 接口与请求响应模型,为后端集成与联调做准备 | ✅ | +| [后端二:从数据库到 Supabase](docs/stage-2/backend/2.2-database-supabase/chapter5/chapter5-from-database-to-supabase.md) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | ✅ | +| [后端三:大模型辅助编写接口代码与接口文档](docs/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | 🚧 | +| [后端四:Git 工作流](docs/stage-2/backend/2.4-git-workflow/extra1/extra1-what-is-git-and-what-is-github.md) | 在 Git 工作流中管理代码,进行版本控制和协作 | ✅ | +| [后端五:Zeabur 部署](docs/stage-2/backend/2.5-zeabur-deployment/extra6/extra6-zeabur-what-is-it-and-how-to-deploy-web-applications.md) | 将应用部署到 Zeabur 上线 | ✅ | +| [后端六:现代 CLI 开发工具](docs/stage-2/backend/2.6-modern-cli/extra7/extra7-cli-ai-coding-tools-and-the-principles-of-test-driven-development.md) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | ✅ | +| [后端七:如何集成 Stripe 等收费系统](docs/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | 🚧 | +| [大作业 1:构建第一个现代应用程序-全栈应用](docs/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | 🚧 | +| [大作业 2:现代前端组件库 + Trae 实战](docs/stage-2/assignments/2.2-modern-frontend-trae/) | 使用现代前端组件库与 Trae,独立完成可登录注册并支持收费的产品 | 🚧 | #### AI 能力附录 -| 章节 | 关键内容 | 状态 | -| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | :--- | -| [AI 一:Dify 入门与知识库集成](docs/stage-2/ai-capabilities/2.1-dify-knowledge-base/chapter3/chapter3-getting-started-with-dify-and-its-knowledge-base-integration.md) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ✅ | -| [AI 二:学会查询 AI 词典与集成多模态 API](docs/stage-2/ai-capabilities/2.2-multimodal-api/extra3/extra3-ai-capability-starter-handbook.md) | 学会查找合适的模型与 API,并把文本、图像等多模态能力接入产品 | 🚧 | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [AI 一:Dify 入门与知识库集成](docs/stage-2/ai-capabilities/2.1-dify-knowledge-base/chapter3/chapter3-getting-started-with-dify-and-its-knowledge-base-integration.md) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ✅ | +| [AI 二:学会查询 AI 词典与集成多模态 API](docs/stage-2/ai-capabilities/2.2-multimodal-api/extra3/extra3-ai-capability-starter-handbook.md) | 学会查找合适的模型与 API,并把文本、图像等多模态能力接入产品 | 🚧 | ### 三、高级开发工程师 -| 章节 | 关键内容 | 状态 | -| :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | :--- | -| [高级一:MCP 与 ClaudeCode Skills](docs/stage-3/core-skills/3.1-mcp-claudecode-skills/) | 通过 MCP 与 Skills 扩展 IDE 能力,把外部服务接成工具 | 🚧 | -| [高级二:如何让 Coding Tools 长时间工作](docs/stage-3/core-skills/3.2-long-running-tasks/) | 设计和配置长时间运行的任务,让 Coding Tools 更稳定可靠 | 🚧 | -| [高级三:多平台开发:如何构建微信小程序](docs/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | ✅ | -| [高级四:多平台开发:如何构建微信小程序-包含后端](docs/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | 🚧 | -| [高级五:多平台开发:如何构建安卓程序](docs/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | 🚧 | -| [高级六:多平台开发:如何构建 iOS 程序](docs/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | 🚧 | -| [高级七:如何构建属于自己的个人网页与学术博客](docs/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的长久在线主页 | 🚧 | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [高级一:MCP 与 ClaudeCode Skills](docs/stage-3/core-skills/3.1-mcp-claudecode-skills/) | 通过 MCP 与 Skills 扩展 IDE 能力,把外部服务接成工具 | 🚧 | +| [高级二:如何让 Coding Tools 长时间工作](docs/stage-3/core-skills/3.2-long-running-tasks/) | 设计和配置长时间运行的任务,让 Coding Tools 更稳定可靠 | 🚧 | +| [高级三:多平台开发:如何构建微信小程序](docs/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | ✅ | +| [高级四:多平台开发:如何构建微信小程序-包含后端](docs/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | 🚧 | +| [高级五:多平台开发:如何构建安卓程序](docs/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | 🚧 | +| [高级六:多平台开发:如何构建 iOS 程序](docs/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | 🚧 | +| [高级七:如何构建属于自己的个人网页与学术博客](docs/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的长久在线主页 | 🚧 | #### AI 能力附录 -| 章节 | 关键内容 | 状态 | -| :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | :--- | -| [高级 AI 一:什么是 RAG 以及它如何工作](docs/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future.md) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | ✅ | -| [高级 AI 二:中高级 RAG 与工作流编排:以 LangGraph 为例](docs/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | 🚧 | +| 章节 | 关键内容 | 状态 | +| :--- | :--- | :--- | +| [高级 AI 一:什么是 RAG 以及它如何工作](docs/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future.md) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | ✅ | +| [高级 AI 二:中高级 RAG 与工作流编排:以 LangGraph 为例](docs/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | 🚧 | -## 如何学习 +## 🛠️ 如何学习 - 根据个人能力,选择性地阅读和实践相关章节,如果有问题欢迎 issue 提问。 -## 本地启动本课件 +## 💻 本地启动本课件 ### 现代方案 @@ -142,7 +166,7 @@ 2. npm run dev 3. 打开浏览器访问 `http://localhost:3000` 即可查看。 -## 参与贡献 +## 🤝 参与贡献 - 如果你发现了一些问题,或者觉得任何可以改进本项目的地方,可以提 Issue 进行反馈。如果提完没有人回复你可以联系[保姆团队](https://github.com/datawhalechina/DOPMC/blob/main/OP.md)的同学进行反馈跟进~ - 如果你想参与贡献本项目,可以提 Pull Request,如果提完没有人回复你可以联系[保姆团队](https://github.com/datawhalechina/DOPMC/blob/main/OP.md)的同学进行反馈跟进~ @@ -168,7 +192,7 @@ -## 联系我们 +## 📧 联系我们

如果有问题提建议吐槽,或者想要一起交流,请扫描下方二维码

@@ -178,8 +202,9 @@
-## LICENSE +## 📄 LICENSE +
知识共享许可协议 进行许可。 +
## Star History diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue index 67a33cb..87feedd 100644 --- a/docs/.vitepress/theme/Layout.vue +++ b/docs/.vitepress/theme/Layout.vue @@ -3,6 +3,7 @@ import DefaultTheme from 'vitepress/theme' import { useData } from 'vitepress' import TextType from './components/TextType.vue' import { onMounted, ref, watch } from 'vue' +import { Setting } from '@element-plus/icons-vue' const { frontmatter } = useData() @@ -21,7 +22,7 @@ const MAX_FONT_SIZE = 18 const DEFAULT_FONT_SIZE = 13 const MIN_LINE_HEIGHT = 1.25 const MAX_LINE_HEIGHT = 1.8 -const DEFAULT_LINE_HEIGHT = 1.5 +const DEFAULT_LINE_HEIGHT = 1.65 const fontSize = ref(DEFAULT_FONT_SIZE) const lineHeight = ref(DEFAULT_LINE_HEIGHT) diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css index ba13033..60ee53f 100644 --- a/docs/.vitepress/theme/style.css +++ b/docs/.vitepress/theme/style.css @@ -3,7 +3,7 @@ /* 通过变量控制分组底部留白(默认 24px) */ --vp-sidebar-nav-section-gap: 8px; --ev-doc-font-size: 13px; - --ev-doc-line-height: 1.5; + --ev-doc-line-height: 1.65; } .vp-doc { @@ -18,10 +18,26 @@ --el-font-line-height-primary: var(--ev-doc-line-height); } +.vp-doc p, +.vp-doc ul, +.vp-doc ol { + line-height: var(--ev-doc-line-height) !important; +} + .vp-doc :where(p, ul, ol, table, blockquote, pre, details, figure) { margin: 10px 0; } +.vp-doc blockquote { + font-size: 0.9em !important; + color: var(--vp-c-text-2); +} + +.vp-doc blockquote p { + font-size: inherit !important; + line-height: 1.4 !important; +} + .vp-doc :where(li) { margin: 4px 0; } diff --git a/docs/appendix/ai-capability-dictionary.md b/docs/appendix/ai-capability-dictionary.md index 6f8ab8c..6d03121 100644 --- a/docs/appendix/ai-capability-dictionary.md +++ b/docs/appendix/ai-capability-dictionary.md @@ -1,4 +1,4 @@ -# AI 词典:主流模型、产品形态与应用场景一览 +# AI 词典:主流模型、产品形态与应用场景一览 随着生成式 AI 技术在各类产品和业务场景中的广泛落地,一个越来越现实的问题摆在每个我们面前: **到底有哪些 AI 能力可以用?** 在具体的需求里,又 **该选择哪一种能力、哪一类模型或哪一个产品来承载?** diff --git a/docs/public/style.css b/docs/public/style.css index f8afc07..193b5c6 100644 --- a/docs/public/style.css +++ b/docs/public/style.css @@ -2,7 +2,7 @@ /* 调整侧边栏分组之间的间距 */ --vp-sidebar-nav-section-gap: 8px; --ev-doc-font-size: 13px; - --ev-doc-line-height: 1.5; + --ev-doc-line-height: 1.65; } .vp-doc { @@ -17,10 +17,26 @@ --el-font-line-height-primary: var(--ev-doc-line-height); } +.vp-doc p, +.vp-doc ul, +.vp-doc ol { + line-height: var(--ev-doc-line-height) !important; +} + .vp-doc :where(p, ul, ol, table, blockquote, pre, details, figure) { margin: 10px 0; } +.vp-doc blockquote { + font-size: 0.9em !important; + color: var(--vp-c-text-2); +} + +.vp-doc blockquote p { + font-size: inherit !important; + line-height: 1.4 !important; +} + .vp-doc :where(li) { margin: 4px 0; }