design-taste-frontend by bnd-1/taste-skill
npx skills add https://github.com/bnd-1/taste-skill --skill design-taste-frontendAI 指令: 所有生成的基线标准严格设定为这些值 (8, 6, 4)。不要要求用户编辑此文件。否则,始终听从用户:根据他们在聊天提示中明确请求的内容动态调整这些值。使用这些基线(或用户覆盖的)值作为你的全局变量,来驱动第 3 到第 7 节中的特定逻辑。
语言保留 [关键]: 你必须保留用户项目的原始语言。如果现有代码库使用中文(中文)作为 UI 文本、标签、标题、描述或任何面向用户的内容,你必须保持所有内容为中文。绝不替换或将现有中文文本翻译成英文。此规则适用于所有生成的代码,包括新组件、页面以及对现有文件的修改。
除非用户明确指定不同的技术栈,否则请遵守以下结构约束以保持一致性:
framer-motion、lucide-react、zustand)之前,你必须检查 package.json。如果缺少该包,你必须在提供代码之前输出安装命令(例如 )。假设库已存在。广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
npm install package-nameRSC)。
"use client" 组件中。'use client'。服务器组件必须仅渲染静态布局。useState/useReducer。全局状态严格用于避免深层属性传递。package.json。不要在 v3 项目中使用 v4 语法。postcss.config.js 中使用 tailwindcss 插件。使用 @tailwindcss/postcss 或 Vite 插件。sm, md, lg, xl)。max-w-[1400px] mx-auto 或 max-w-7xl 来约束页面布局。h-screen。始终使用 min-h-[100dvh] 以防止移动浏览器(iOS Safari)上灾难性的布局跳动。w-[calc(33%-1rem)])。始终使用 CSS 网格 (grid grid-cols-1 md:grid-cols-3 gap-6) 以获得可靠的结构。@phosphor-icons/react 或 @radix-ui/react-icons 作为导入路径(检查已安装版本)。全局标准化 strokeWidth(例如,统一使用 1.5 或 2.0)。LLM 对特定的 UI 陈词滥调模式存在统计偏差。请主动使用这些工程化规则构建优质界面:
规则 1:确定性排版
text-4xl md:text-6xl tracking-tighter leading-none。
Inter。强制使用 Geist、Outfit、Cabinet Grotesk 或 Satoshi 来体现独特个性。Geist + Geist Mono 或 Satoshi + JetBrains Mono)。text-base text-gray-600 leading-relaxed max-w-[65ch]。规则 2:色彩校准
规则 3:布局多样化
LAYOUT_VARIANCE > 4 时,居中的 Hero/H1 区域严格禁止。强制使用"分屏"(50/50)、"左对齐内容/右对齐资源"或"不对称留白"结构。规则 4:材质、阴影与"反卡片滥用"
VISUAL_DENSITY > 7,通用卡片容器严格禁止。通过 border-t、divide-y 或纯粹的负空间进行逻辑分组。数据指标应能自由呼吸,除非功能上需要层级(z-index),否则不应被框住。规则 5:交互式 UI 状态
:active 时,使用 -translate-y-[1px] 或 scale-[0.98] 来模拟物理按压,指示成功/动作。规则 6:数据与表单模式
gap-2。为了积极对抗通用的 AI 设计,请系统地将这些高端编码概念作为你的基线来实现:
backdrop-blur。添加 1px 内边框 (border-white/10) 和微妙的内阴影 (shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]) 来模拟物理边缘折射。useState 进行磁性悬停或连续动画。仅使用 Framer Motion 的 useMotionValue 和 useTransform,在 React 渲染循环之外,以防止移动设备上的性能崩溃。MOTION_INTENSITY > 5 时,在标准组件(头像、状态点、背景)中嵌入连续、无限的微动画(脉冲、打字机、浮动、微光、轮播)。对所有交互元素应用高级弹簧物理 (type: "spring", stiffness: 100, damping: 20)——不使用线性缓动。layout 和 layoutId 属性,实现状态变化时平滑的重新排序、调整大小和共享元素过渡。staggerChildren (Framer) 或 CSS 级联 (animation-delay: calc(var(--index) * 100ms)) 来创建顺序瀑布式显示。关键: 对于 staggerChildren,父组件 (variants) 和子组件必须位于相同的客户端组件树中。如果数据是异步获取的,请将数据作为属性传递给集中式的父级 Motion 包装器。fixed inset-0 z-50 pointer-events-none),绝不应用于滚动容器,以防止持续的 GPU 重绘和移动端性能下降。top、left、width 或 height。仅通过 transform 和 opacity 进行动画处理。z-50 或 z-10。严格为系统性层级上下文(粘性导航栏、模态框、覆盖层)使用 z-index。justify-center,严格的 12 列对称网格,相等的内边距。margin-top: -2rem 重叠,变化的图像宽高比(例如,4:3 与 16:9 相邻),居中对齐数据上方的左对齐标题。grid-template-columns: 2fr 1fr 1fr),巨大的空白区域 (padding-left: 20vw)。md: 的不对称布局必须在视口 < 768px 时强制回退到严格的单列布局 (w-full, px-4, py-8),以防止水平滚动和布局破坏。:hover 和 :active 状态。transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1)。使用 animation-delay 级联进行加载进入。严格关注 transform 和 opacity。谨慎使用 will-change: transform。window.addEventListener('scroll')。font-mono)。为了保证优质、非通用的输出,你必须严格避免这些常见的 AI 设计特征,除非用户明确要求:
box-shadow 发光或自动发光。使用内边框或微妙的色调阴影。#000000。使用 Off-Black、Zinc-950 或 Charcoal。Geist、Outfit、Cabinet Grotesk 或 Satoshi。99.99%、50% 或基本电话号码 (1234567)。使用有机的、杂乱的数据 (47.2%、+1 (312) 847-1928)。https://picsum.photos/seed/{random_string}/800/600 或 SVG UI 头像。shadcn/ui,但绝不以其通用的默认状态使用。你必须定制圆角、颜色和阴影以匹配高端项目的美学。不要默认使用通用 UI。从此高级概念库中汲取灵感,以确保输出在视觉上引人注目且令人难忘。在适当的时候,利用 GSAP (ScrollTrigger/Parallax) 进行复杂的滚动叙事或 ThreeJS/WebGL 进行 3D/Canvas 动画,而不是基本的 CSS 运动。关键: 绝不在同一组件树中混合使用 GSAP/ThreeJS 和 Framer Motion。对于 UI/Bento 交互,默认使用 Framer Motion。仅将 GSAP/ThreeJS 用于隔离的全页滚动叙事或 Canvas 背景,并包装在严格的 useEffect 清理块中。
在生成现代 SaaS 仪表板或功能区域时,你必须利用以下"Bento 2.0"架构和运动哲学。这超越了静态卡片,并强制执行一种严重依赖持续物理学的"Vercel 核心与 Dribbble 简洁"美学。
#f9fafb。卡片为纯白色 (#ffffff),带有 1px 的 border-slate-200/50 边框。rounded-[2.5rem]。应用"漫射阴影"(一种非常轻、广泛扩散的阴影,例如,shadow-[0_20px_40px_-15px_rgba(0,0,0,0.05)])以在不造成混乱的情况下创造深度。Geist、Satoshi 或 Cabinet Grotesk 字体栈。对标题使用微妙的字距 (tracking-tight)。p-8 或 p-10 内边距。所有卡片必须包含**"持续微交互"**。使用以下 Framer Motion 原则:
type: "spring", stiffness: 100, damping: 20 以获得高级、有分量的感觉。layout 和 layoutId 属性,以确保平滑的重新排序、调整大小和共享元素状态过渡。<AnimatePresence> 中,并针对 60fps 进行优化。性能关键: 任何持续运动或无限循环必须被记忆化 (React.memo) 并完全隔离在其自身的微型客户端组件中。绝不在父级布局中触发重新渲染。在构建 Bento 网格时实现这些特定的微动画(例如,第 1 行:3 列 | 第 2 行:2 列 70/30 分割):
layoutId 交换位置,模拟 AI 实时优先处理任务。x: ["0%", "-100%"]),速度感觉轻松。在输出之前,根据此矩阵评估你的代码。这是你应用于逻辑的最后一道过滤器。
w-full, px-4, max-w-7xl mx-auto)?min-h-[100dvh] 而不是有缺陷的 h-screen?useEffect 动画是否包含严格的清理函数?每周安装量
94
仓库
GitHub 星标
12
首次出现
14 天前
安全审计
安装于
cursor94
codex94
gemini-cli94
amp94
kimi-cli94
github-copilot94
前端设计技能指南:避免AI垃圾美学,打造独特生产级界面
49,900 周安装
Xcode MCP 设置指南:连接 Claude、Cursor、VS Code 等 AI 助手到 Xcode 开发环境
101 周安装
Kotlin Multiplatform AGP 9.0 迁移指南:解决插件兼容性与项目重构
71 周安装
Vercel安全与访问控制:RBAC、SSO、部署保护、防火墙、审计日志配置指南
98 周安装
Better Auth Core - TypeScript身份验证库,支持无状态会话和社交登录
104 周安装
Medusa 开源无头电商系统 - 基于 Node.js 和 TypeScript 的完全可定制电商平台
95 周安装
Rust嵌入式开发:no_std、中断安全与硬件所有权领域约束实践指南
182 周安装