modern-web-design
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseModern Web Design
现代网页设计
Overview
概述
Modern web design in 2024-2025 emphasizes performance, accessibility, and meaningful interactions. This skill provides comprehensive guidance on current design trends, implementation patterns, and best practices for creating engaging, accessible, and performant web experiences.
This meta-skill synthesizes knowledge from all animation, interaction, and 3D skills in this repository to provide holistic design guidance.
2024-2025年的现代网页设计强调性能、可访问性和有意义的交互。本技能提供关于当前设计趋势、实现模式及最佳实践的全面指导,助力打造引人入胜、易于访问且性能出色的网页体验。
这一元技能整合了本仓库中所有动画、交互和3D技能的知识,提供全方位的设计指导。
Core Design Principles (2024-2025)
核心设计原则(2024-2025)
1. Performance-First Design
1. 性能优先设计
Philosophy: Design decisions should prioritize Core Web Vitals and user experience on all devices.
Key Metrics:
- Largest Contentful Paint (LCP): < 2.5s
- First Input Delay (FID): < 100ms
- Cumulative Layout Shift (CLS): < 0.1
- Interaction to Next Paint (INP): < 200ms
Implementation Guidelines:
- Defer non-critical animations until after page load
- Use CSS transforms/opacity for animations (GPU-accelerated)
- Implement lazy loading for images, videos, and 3D content
- Progressive enhancement: core content without JavaScript
Related Skills: , , for optimized animations
gsap-scrolltriggermotion-framerlottie-animations理念:设计决策应优先考虑Core Web Vitals和全设备的用户体验。
关键指标:
- Largest Contentful Paint (LCP): < 2.5秒
- First Input Delay (FID): < 100毫秒
- Cumulative Layout Shift (CLS): < 0.1
- Interaction to Next Paint (INP): < 200毫秒
实施指南:
- 将非关键动画延迟到页面加载完成后执行
- 使用CSS transforms/opacity实现动画(GPU加速)
- 为图片、视频和3D内容实现懒加载
- 渐进式增强:无JavaScript时仍可展示核心内容
相关技能: , , 用于优化动画
gsap-scrolltriggermotion-framerlottie-animations2. Bold Minimalism
2. 大胆极简主义
Characteristics:
- Large, impactful typography (clamp() for fluid sizing)
- Ample white space (negative space as design element)
- Limited color palettes (3-5 primary colors)
- Intentional use of bold accent colors
- Geometric shapes and clean lines
Typography Scale (Modern fluid system):
css
/* Fluid typography using clamp() */
--font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
--font-size-sm: clamp(0.875rem, 0.8rem + 0.375vw, 1rem);
--font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
--font-size-lg: clamp(1.25rem, 1.1rem + 0.75vw, 1.75rem);
--font-size-xl: clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);
--font-size-2xl: clamp(2.5rem, 2rem + 2.5vw, 4rem);
--font-size-3xl: clamp(3.5rem, 2.5rem + 5vw, 6rem);Color System (Accessibility-first):
css
/* WCAG AAA compliant color system */
--color-primary: oklch(50% 0.2 250); /* Blue */
--color-accent: oklch(65% 0.25 30); /* Coral */
--color-neutral-50: oklch(98% 0 0);
--color-neutral-900: oklch(20% 0 0);
/* Contrast ratio: minimum 7:1 for text */Related Skills: for UI components
animated-component-libraries特点:
- 醒目、有冲击力的排版(使用clamp()实现流体字号)
- 充足的留白(将负空间作为设计元素)
- 有限的调色板(3-5种主色调)
- 刻意使用大胆的强调色
- 几何形状与简洁线条
排版比例(现代流体系统):
css
/* Fluid typography using clamp() */
--font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
--font-size-sm: clamp(0.875rem, 0.8rem + 0.375vw, 1rem);
--font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
--font-size-lg: clamp(1.25rem, 1.1rem + 0.75vw, 1.75rem);
--font-size-xl: clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);
--font-size-2xl: clamp(2.5rem, 2rem + 2.5vw, 4rem);
--font-size-3xl: clamp(3.5rem, 2.5rem + 5vw, 6rem);配色系统(优先考虑可访问性):
css
/* WCAG AAA compliant color system */
--color-primary: oklch(50% 0.2 250); /* Blue */
--color-accent: oklch(65% 0.25 30); /* Coral */
--color-neutral-50: oklch(98% 0 0);
--color-neutral-900: oklch(20% 0 0);
/* Contrast ratio: minimum 7:1 for text */相关技能: 用于UI组件
animated-component-libraries3. Micro-Interactions
3. 微交互
Definition: Small, purposeful animations that provide feedback, guide users, and enhance perceived performance.
Categories:
a) Hover States (Desktop):
- Scale transformations (1.05-1.1x)
- Color transitions (200-300ms)
- Shadow depth changes
- Cursor transformations
b) Loading States:
- Skeleton screens (better than spinners)
- Progressive image loading (blur-up technique)
- Optimistic UI updates
- Staggered content reveals
c) Interactive Feedback:
- Button press states (scale down 0.95x)
- Toggle switches with spring physics
- Form field validation (immediate, kind feedback)
- Success/error states with motion
Implementation Example (Framer Motion):
jsx
// Button with micro-interaction
<motion.button
whileHover={{ scale: 1.05, y: -2 }}
whileTap={{ scale: 0.95 }}
transition={{ type: "spring", stiffness: 400, damping: 17 }}
>
Click me
</motion.button>Related Skills: , , for micro-interactions
motion-framerreact-spring-physicsanimejs定义:小型、有明确目的的动画,用于提供反馈、引导用户并提升感知性能。
分类:
a) 悬停状态(桌面端):
- 缩放变换(1.05-1.1倍)
- 颜色过渡(200-300毫秒)
- 阴影深度变化
- 光标变换
b) 加载状态:
- 骨架屏(优于加载 spinner)
- 渐进式图片加载(模糊加载技术)
- 乐观UI更新
- 交错内容展示
c) 交互反馈:
- 按钮按压状态(缩小至0.95倍)
- 带弹簧物理效果的切换开关
- 表单字段验证(即时、友好的反馈)
- 带动效的成功/错误状态
实现示例(Framer Motion):
jsx
// Button with micro-interaction
<motion.button
whileHover={{ scale: 1.05, y: -2 }}
whileTap={{ scale: 0.95 }}
transition={{ type: "spring", stiffness: 400, damping: 17 }}
>
Click me
</motion.button>相关技能: , , 用于微交互
motion-framerreact-spring-physicsanimejs4. Scrollytelling
4. 滚动叙事
Definition: Narrative-driven experiences where content reveals and transforms as the user scrolls.
Patterns:
a) Scroll-Triggered Reveals:
- Fade-in on scroll entry (with offset)
- Slide-in from sides with stagger
- Scale + opacity transitions
- Clip-path reveals
b) Scroll-Linked Animations:
- Parallax layers (different scroll speeds)
- Horizontal scrolling sections
- Pinned sections with scrubbing animations
- 3D object rotation tied to scroll
c) Progress Indicators:
- Reading progress bars
- Step-by-step visual guides
- Animated SVG paths following scroll
Implementation Example (GSAP ScrollTrigger):
javascript
// Scroll-linked 3D rotation
gsap.to(".cube", {
scrollTrigger: {
trigger: ".section",
start: "top top",
end: "bottom top",
scrub: 1, // Smooth scrubbing
},
rotationY: 360,
ease: "none"
});Related Skills: , , , for 3D scrollytelling
gsap-scrolltriggerlocomotive-scrollscroll-reveal-librariesreact-three-fiber定义:以叙事为驱动的体验,用户滚动时内容逐步展示并变换。
模式:
a) 滚动触发展示:
- 进入视口时淡入(带偏移量)
- 从侧边滑入并交错展示
- 缩放+透明度过渡
- 裁剪路径展示
b) 滚动关联动画:
- 视差图层(不同滚动速度)
- 水平滚动区域
- 固定区域与 scrubbing 动画
- 与滚动绑定的3D对象旋转
c) 进度指示器:
- 阅读进度条
- 分步视觉引导
- 跟随滚动的动画SVG路径
实现示例(GSAP ScrollTrigger):
javascript
// Scroll-linked 3D rotation
gsap.to(".cube", {
scrollTrigger: {
trigger: ".section",
start: "top top",
end: "bottom top",
scrub: 1, // Smooth scrubbing
},
rotationY: 360,
ease: "none"
});相关技能: , , , 用于3D滚动叙事
gsap-scrolltriggerlocomotive-scrollscroll-reveal-librariesreact-three-fiber5. Cursor UX
5. 光标UX
Evolution: Custom cursors that enhance interaction and provide contextual feedback.
Patterns:
a) Custom Cursor Shapes:
- Circle/dot followers (delayed with easing)
- Text-based cursors ("View", "Drag", "Click")
- Blend modes for visual interest
- Scale/morph on hover
b) Contextual Transformations:
- Expand on links/buttons
- Magnetic attraction to interactive elements
- Color inversion over images
- Custom icons for actions (play, zoom, expand)
c) Performance Considerations:
- Use CSS transforms only (no top/left)
- RequestAnimationFrame for JS cursors
- Disable on mobile/touch devices
- Respect
prefers-reduced-motion
Implementation Example:
javascript
// Simple smooth cursor follower
const cursor = document.querySelector('.cursor');
let mouseX = 0, mouseY = 0;
let cursorX = 0, cursorY = 0;
document.addEventListener('mousemove', (e) => {
mouseX = e.clientX;
mouseY = e.clientY;
});
function updateCursor() {
// Smooth easing
cursorX += (mouseX - cursorX) * 0.1;
cursorY += (mouseY - cursorY) * 0.1;
cursor.style.transform = `translate(${cursorX}px, ${cursorY}px)`;
requestAnimationFrame(updateCursor);
}
updateCursor();Related Skills: (for easing), (for React cursor components)
gsap-scrolltriggermotion-framer演进:自定义光标可增强交互并提供上下文反馈。
模式:
a) 自定义光标形状:
- 圆形/点状跟随光标(带延迟缓动)
- 文本型光标(如“查看”、“拖拽”、“点击”)
- 混合模式提升视觉趣味
- 悬停时缩放/变形
b) 上下文变换:
- 链接/按钮上放大
- 被交互元素磁吸
- 图片上颜色反转
- 针对操作的自定义图标(播放、缩放、展开)
c) 性能考量:
- 仅使用CSS transforms(避免top/left)
- 为JS光标使用RequestAnimationFrame
- 在移动/触摸设备上禁用
- 尊重设置
prefers-reduced-motion
实现示例:
javascript
// Simple smooth cursor follower
const cursor = document.querySelector('.cursor');
let mouseX = 0, mouseY = 0;
let cursorX = 0, cursorY = 0;
document.addEventListener('mousemove', (e) => {
mouseX = e.clientX;
mouseY = e.clientY;
});
function updateCursor() {
// Smooth easing
cursorX += (mouseX - cursorX) * 0.1;
cursorY += (mouseY - cursorY) * 0.1;
cursor.style.transform = `translate(${cursorX}px, ${cursorY}px)`;
requestAnimationFrame(updateCursor);
}
updateCursor();相关技能: (用于缓动), (用于React光标组件)
gsap-scrolltriggermotion-framer6. Glassmorphism & Depth
6. 玻璃态设计与层次感
Characteristics:
- Frosted glass effect (backdrop-filter)
- Layered UI with depth hierarchy
- Subtle shadows and borders
- Translucent backgrounds
Modern Glassmorphism (2024):
css
.glass-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
border-radius: 16px;
}Depth System (Layering):
css
/* Elevation scale */
--elevation-1: 0 1px 3px rgba(0,0,0,0.12);
--elevation-2: 0 4px 8px rgba(0,0,0,0.15);
--elevation-3: 0 8px 16px rgba(0,0,0,0.18);
--elevation-4: 0 16px 32px rgba(0,0,0,0.2);Related Skills: for glassmorphic components
animated-component-libraries特点:
- 毛玻璃效果(backdrop-filter)
- 带层次结构的分层UI
- 柔和阴影与边框
- 半透明背景
现代玻璃态设计(2024版):
css
.glass-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
border-radius: 16px;
}层次系统(分层):
css
/* Elevation scale */
--elevation-1: 0 1px 3px rgba(0,0,0,0.12);
--elevation-2: 0 4px 8px rgba(0,0,0,0.15);
--elevation-3: 0 8px 16px rgba(0,0,0,0.18);
--elevation-4: 0 16px 32px rgba(0,0,0,0.2);相关技能: 用于玻璃态组件
animated-component-libraries7. AI-Enhanced Personalization
7. AI增强个性化
Patterns:
a) Adaptive Content:
- Dynamic layout based on user behavior
- Personalized content recommendations
- Adaptive color schemes (system preference + user history)
- Smart defaults based on context
b) Intelligent Interactions:
- Predictive search with instant results
- Smart form completion
- Context-aware suggestions
- Progressive disclosure based on usage
c) Performance + Privacy:
- Client-side personalization (localStorage, IndexedDB)
- Edge computing for fast personalization
- Privacy-preserving analytics
- Transparent data usage
Implementation Considerations:
- Fallback to default experience
- No layout shift from personalization
- Respect "Do Not Track"
- GDPR/CCPA compliance
模式:
a) 自适应内容:
- 根据用户行为动态调整布局
- 个性化内容推荐
- 自适应配色方案(系统偏好+用户历史)
- 基于上下文的智能默认设置
b) 智能交互:
- 带即时结果的预测搜索
- 智能表单填充
- 上下文感知建议
- 基于使用情况的渐进式披露
c) 性能+隐私:
- 客户端个性化(localStorage、IndexedDB)
- 边缘计算实现快速个性化
- 隐私保护型分析
- 透明的数据使用
实施考量:
- 提供默认体验作为降级方案
- 个性化内容不会导致布局偏移
- 尊重“禁止跟踪”设置
- 符合GDPR/CCPA合规要求
Common Design Patterns
常见设计模式
Pattern 1: Immersive Hero Section
模式1:沉浸式首屏区域
Use Case: Landing pages, product launches, portfolio sites
Characteristics:
- Full viewport height
- Subtle 3D background or animated gradient
- Large headline with fluid typography
- Smooth scroll indicator
- Parallax on scroll exit
Implementation (Combined approach):
HTML Structure:
html
<section class="hero">
<div id="bg-canvas"></div>
<div class="hero__content">
<h1 class="hero__title">Modern Design</h1>
<p class="hero__subtitle">Performance meets beauty</p>
<button class="hero__cta">Explore</button>
</div>
<div class="scroll-indicator">
<span>Scroll</span>
</div>
</section>Technologies:
- Background: Vanta.js WAVES effect ()
lightweight-3d-effects - Text animation: GSAP SplitText with stagger ()
gsap-scrolltrigger - Button: Framer Motion hover states ()
motion-framer - Scroll indicator: CSS animation + GSAP fade out on scroll
Related Skills: , ,
lightweight-3d-effectsgsap-scrolltriggermotion-framer适用场景:着陆页、产品发布、作品集网站
特点:
- 全屏视口高度
- 柔和3D背景或动画渐变
- 大标题搭配流体排版
- 平滑滚动指示器
- 退出滚动时的视差效果
实现(组合方案):
HTML结构:
html
<section class="hero">
<div id="bg-canvas"></div>
<div class="hero__content">
<h1 class="hero__title">Modern Design</h1>
<p class="hero__subtitle">Performance meets beauty</p>
<button class="hero__cta">Explore</button>
</div>
<div class="scroll-indicator">
<span>Scroll</span>
</div>
</section>技术栈:
- 背景:Vanta.js WAVES效果 ()
lightweight-3d-effects - 文本动画:GSAP SplitText搭配交错效果 ()
gsap-scrolltrigger - 按钮:Framer Motion悬停状态 ()
motion-framer - 滚动指示器:CSS动画+GSAP滚动时淡出
相关技能: , ,
lightweight-3d-effectsgsap-scrolltriggermotion-framerPattern 2: Horizontal Scroll Gallery
模式2:水平滚动画廊
Use Case: Portfolio work, product showcases, case studies
Implementation (GSAP ScrollTrigger):
javascript
gsap.to(".gallery__track", {
x: () => -(document.querySelector(".gallery__track").scrollWidth - window.innerWidth),
ease: "none",
scrollTrigger: {
trigger: ".gallery",
pin: true,
scrub: 1,
end: () => "+=" + document.querySelector(".gallery__track").scrollWidth
}
});Enhancements:
- Lazy load images as they scroll into view
- Parallax within cards
- Scale transformation on active card
- Smooth momentum scrolling with Locomotive
Related Skills: ,
gsap-scrolltriggerlocomotive-scroll适用场景:作品集展示、产品陈列、案例研究
实现(GSAP ScrollTrigger):
javascript
gsap.to(".gallery__track", {
x: () => -(document.querySelector(".gallery__track").scrollWidth - window.innerWidth),
ease: "none",
scrollTrigger: {
trigger: ".gallery",
pin: true,
scrub: 1,
end: () => "+=" + document.querySelector(".gallery__track").scrollWidth
}
});增强功能:
- 图片进入视口时懒加载
- 卡片内视差效果
- 激活卡片时的缩放变换
- 使用Locomotive实现平滑动量滚动
相关技能: ,
gsap-scrolltriggerlocomotive-scrollPattern 3: 3D Product Viewer
模式3:3D产品查看器
Use Case: E-commerce, product marketing, showcases
Implementation (React Three Fiber):
jsx
import { Canvas } from '@react-three/fiber'
import { OrbitControls, useGLTF } from '@react-three/drei'
function ProductViewer() {
return (
<Canvas camera={{ position: [0, 0, 5], fov: 50 }}>
<ambientLight intensity={0.5} />
<spotLight position={[10, 10, 10]} angle={0.15} />
<Product />
<OrbitControls
enableZoom={false}
autoRotate
autoRotateSpeed={2}
/>
</Canvas>
)
}Enhancements:
- Material variants (color picker)
- Hotspots with annotations
- AR mode on mobile
- Screenshot/share functionality
Related Skills: , ,
react-three-fiberthreejs-webglmodel-viewer-component适用场景:电商、产品营销、展示
实现(React Three Fiber):
jsx
import { Canvas } from '@react-three/fiber'
import { OrbitControls, useGLTF } from '@react-three/drei'
function ProductViewer() {
return (
<Canvas camera={{ position: [0, 0, 5], fov: 50 }}>
<ambientLight intensity={0.5} />
<spotLight position={[10, 10, 10]} angle={0.15} />
<Product />
<OrbitControls
enableZoom={false}
autoRotate
autoRotateSpeed={2}
/>
</Canvas>
)
}增强功能:
- 材质变体(颜色选择器)
- 带注释的热点
- 移动端AR模式
- 截图/分享功能
相关技能: , ,
react-three-fiberthreejs-webglmodel-viewer-componentPattern 4: Animated Data Visualization
模式4:动画数据可视化
Use Case: Dashboards, analytics, infographics
Patterns:
- Count-up animations on scroll into view
- Animated chart reveals (progress bars, pie charts)
- Staggered grid animations
- Particle backgrounds representing data
Implementation (Framer Motion + IntersectionObserver):
jsx
function AnimatedStat({ end, label }) {
const [count, setCount] = useState(0);
const ref = useRef();
const isInView = useInView(ref, { once: true });
useEffect(() => {
if (isInView) {
// Count up animation
const duration = 2000;
const steps = 60;
const increment = end / steps;
let current = 0;
const timer = setInterval(() => {
current += increment;
if (current >= end) {
setCount(end);
clearInterval(timer);
} else {
setCount(Math.floor(current));
}
}, duration / steps);
}
}, [isInView, end]);
return (
<motion.div
ref={ref}
initial={{ opacity: 0, y: 20 }}
animate={isInView ? { opacity: 1, y: 0 } : {}}
transition={{ duration: 0.6 }}
>
<h2>{count}+</h2>
<p>{label}</p>
</motion.div>
);
}Related Skills: , for canvas-based visualizations
motion-framerpixijs-2d适用场景:仪表盘、分析、信息图
模式:
- 进入视口时的数字滚动动画
- 动画图表展示(进度条、饼图)
- 交错网格动画
- 代表数据的粒子背景
实现(Framer Motion + IntersectionObserver):
jsx
function AnimatedStat({ end, label }) {
const [count, setCount] = useState(0);
const ref = useRef();
const isInView = useInView(ref, { once: true });
useEffect(() => {
if (isInView) {
// Count up animation
const duration = 2000;
const steps = 60;
const increment = end / steps;
let current = 0;
const timer = setInterval(() => {
current += increment;
if (current >= end) {
setCount(end);
clearInterval(timer);
} else {
setCount(Math.floor(current));
}
}, duration / steps);
}
}, [isInView, end]);
return (
<motion.div
ref={ref}
initial={{ opacity: 0, y: 20 }}
animate={isInView ? { opacity: 1, y: 0 } : {}}
transition={{ duration: 0.6 }}
>
<h2>{count}+</h2>
<p>{label}</p>
</motion.div>
);
}相关技能: , 用于基于画布的可视化
motion-framerpixijs-2dPattern 5: Page Transitions
模式5:页面过渡
Use Case: Multi-page apps, portfolio sites, storytelling experiences
Implementation (Barba.js + GSAP):
javascript
barba.init({
transitions: [{
name: 'slide',
leave(data) {
return gsap.to(data.current.container, {
xPercent: -100,
duration: 0.5
});
},
enter(data) {
return gsap.from(data.next.container, {
xPercent: 100,
duration: 0.5
});
}
}]
});Modern Alternatives:
- View Transitions API (Chrome 111+, progressive enhancement)
- Framer Motion's AnimatePresence for React SPAs
- Shared element transitions
Related Skills: , ,
barba-jsgsap-scrolltriggermotion-framer适用场景:多页面应用、作品集网站、叙事体验
实现(Barba.js + GSAP):
javascript
barba.init({
transitions: [{
name: 'slide',
leave(data) {
return gsap.to(data.current.container, {
xPercent: -100,
duration: 0.5
});
},
enter(data) {
return gsap.from(data.next.container, {
xPercent: 100,
duration: 0.5
});
}
}]
});现代替代方案:
- View Transitions API(Chrome 111+,渐进式增强)
- Framer Motion的AnimatePresence用于React SPA
- 共享元素过渡
相关技能: , ,
barba-jsgsap-scrolltriggermotion-framerPattern 6: Interactive Cursor Effects
模式6:交互式光标效果
Use Case: Creative agencies, portfolios, interactive experiences
Patterns:
- Text cursor that follows with delay
- Magnetic buttons (cursor attracted to elements)
- Blend mode cursor (inverts colors)
- Cursor that reveals content
Implementation (Vanilla JS + GSAP):
javascript
const links = document.querySelectorAll('a');
const cursor = document.querySelector('.cursor');
links.forEach(link => {
link.addEventListener('mouseenter', () => {
gsap.to(cursor, {
scale: 2,
duration: 0.3,
ease: "power2.out"
});
});
link.addEventListener('mouseleave', () => {
gsap.to(cursor, {
scale: 1,
duration: 0.3,
ease: "power2.out"
});
});
});Related Skills: ,
gsap-scrolltriggermotion-framer适用场景:创意机构、作品集、交互体验
模式:
- 带延迟跟随的文本光标
- 磁吸按钮(光标被元素吸引)
- 混合模式光标(颜色反转)
- 可揭示内容的光标
实现(Vanilla JS + GSAP):
javascript
const links = document.querySelectorAll('a');
const cursor = document.querySelector('.cursor');
links.forEach(link => {
link.addEventListener('mouseenter', () => {
gsap.to(cursor, {
scale: 2,
duration: 0.3,
ease: "power2.out"
});
});
link.addEventListener('mouseleave', () => {
gsap.to(cursor, {
scale: 1,
duration: 0.3,
ease: "power2.out"
});
});
});相关技能: ,
gsap-scrolltriggermotion-framerPattern 7: Staggered Content Reveals
模式7:交错内容展示
Use Case: Feature sections, testimonials, team grids
Implementation (Framer Motion variants):
jsx
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: {
staggerChildren: 0.1
}
}
};
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
};
function FeatureGrid() {
return (
<motion.div
variants={container}
initial="hidden"
whileInView="show"
viewport={{ once: true, amount: 0.3 }}
className="grid"
>
{features.map((feature, i) => (
<motion.div key={i} variants={item}>
{feature}
</motion.div>
))}
</motion.div>
);
}Related Skills: , ,
motion-framergsap-scrolltriggerscroll-reveal-libraries适用场景:功能区域、客户评价、团队网格
实现(Framer Motion变体):
jsx
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: {
staggerChildren: 0.1
}
}
};
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0 }
};
function FeatureGrid() {
return (
<motion.div
variants={container}
initial="hidden"
whileInView="show"
viewport={{ once: true, amount: 0.3 }}
className="grid"
>
{features.map((feature, i) => (
<motion.div key={i} variants={item}>
{feature}
</motion.div>
))}
</motion.div>
);
}相关技能: , ,
motion-framergsap-scrolltriggerscroll-reveal-librariesIntegration with Other Skills
与其他技能的集成
Animation Skills Integration
动画技能集成
GSAP ScrollTrigger ():
gsap-scrolltrigger- Use for scroll-driven storytelling
- Pin sections for multi-step reveals
- Scrub animations tied to scroll position
- Batch animations for performance
Framer Motion ():
motion-framer- React component animations
- Page transitions with AnimatePresence
- Gesture-based interactions (drag, hover, tap)
- Layout animations (shared element transitions)
React Spring ():
react-spring-physics- Physics-based animations (more natural feel)
- Interactive springs (drag, pull)
- Trail animations (sequential reveals)
- Use for UI feedback that feels "real"
Anime.js ():
animejs- SVG path animations (line drawing)
- SVG morphing transitions
- Stagger grid animations
- Timeline-based sequences
Lottie ():
lottie-animations- Complex designer-created animations
- Icon animations and micro-interactions
- Loading states
- Scroll-driven playback
GSAP ScrollTrigger ():
gsap-scrolltrigger- 用于滚动驱动的叙事
- 固定区域实现多步骤展示
- 与滚动位置绑定的scrub动画
- 批量动画提升性能
Framer Motion ():
motion-framer- React组件动画
- 使用AnimatePresence实现页面过渡
- 基于手势的交互(拖拽、悬停、点击)
- 布局动画(共享元素过渡)
React Spring ():
react-spring-physics- 基于物理的动画(更自然的感受)
- 交互式弹簧(拖拽、拉动)
- 轨迹动画(顺序展示)
- 用于打造“真实”感的UI反馈
Anime.js ():
animejs- SVG路径动画(线条绘制)
- SVG变形过渡
- 交错网格动画
- 基于时间轴的序列动画
Lottie ():
lottie-animations- 设计师创建的复杂动画
- 图标动画与微交互
- 加载状态
- 滚动驱动的播放
3D Skills Integration
3D技能集成
Three.js ():
threejs-webgl- Custom 3D scenes and experiences
- Shader effects and post-processing
- WebGL-based particle systems
- Advanced lighting and materials
React Three Fiber ():
react-three-fiber- 3D in React applications
- Product viewers and configurators
- Interactive 3D UI components
- Scroll-driven 3D animations
Babylon.js ():
babylonjs-engine- Physics-based 3D experiences
- VR/XR applications
- Game-like interactions
- PBR materials for realism
Lightweight 3D ():
lightweight-3d-effects- Background effects (Vanta.js)
- Subtle 3D illustrations (Zdog)
- Tilt effects (Vanilla-Tilt)
- Performance-friendly 3D accents
Three.js ():
threejs-webgl- 自定义3D场景与体验
- 着色器效果与后处理
- 基于WebGL的粒子系统
- 高级光照与材质
React Three Fiber ():
react-three-fiber- React应用中的3D内容
- 产品查看器与配置器
- 交互式3D UI组件
- 滚动驱动的3D动画
Babylon.js ():
babylonjs-engine- 基于物理的3D体验
- VR/XR应用
- 类游戏交互
- PBR材质实现真实感
轻量3D ():
lightweight-3d-effects- 背景效果(Vanta.js)
- 柔和3D插画(Zdog)
- 倾斜效果(Vanilla-Tilt)
- 性能友好的3D装饰
Component Libraries
组件库
Animated Components ():
animated-component-libraries- Magic UI components (backgrounds, text effects)
- Pre-built interactive components
- Design system foundations
- Rapid prototyping
Scroll Reveals ():
scroll-reveal-libraries- Simple fade/slide on scroll
- AOS library integration
- Lightweight alternative to ScrollTrigger
- Quick implementation for basic reveals
动画组件 ():
animated-component-libraries- Magic UI组件(背景、文本效果)
- 预构建的交互式组件
- 设计系统基础
- 快速原型开发
滚动展示 ():
scroll-reveal-libraries- 简单的滚动淡入/滑入
- AOS库集成
- ScrollTrigger的轻量替代方案
- 快速实现基础展示效果
Accessibility Best Practices
可访问性最佳实践
1. Motion & Animation
1. 动画与动效
Respect User Preferences:
css
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}JavaScript Detection:
javascript
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (prefersReducedMotion) {
// Disable or simplify animations
gsap.config({ nullTargetWarn: false });
// Skip scroll animations, use instant reveals
}尊重用户偏好:
css
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}JavaScript检测:
javascript
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (prefersReducedMotion) {
// Disable or simplify animations
gsap.config({ nullTargetWarn: false });
// Skip scroll animations, use instant reveals
}2. Color Contrast
2. 颜色对比度
WCAG AAA Standards:
- Normal text: 7:1 contrast ratio
- Large text (18pt+): 4.5:1 contrast ratio
- Use OKLCH color space for perceptual uniformity
Testing:
javascript
// Check contrast ratio
function getContrastRatio(color1, color2) {
const l1 = getLuminance(color1);
const l2 = getLuminance(color2);
const lighter = Math.max(l1, l2);
const darker = Math.min(l1, l2);
return (lighter + 0.05) / (darker + 0.05);
}WCAG AAA标准:
- 普通文本:7:1对比度
- 大文本(18pt+):4.5:1对比度
- 使用OKLCH色彩空间实现感知均匀性
测试:
javascript
// Check contrast ratio
function getContrastRatio(color1, color2) {
const l1 = getLuminance(color1);
const l2 = getLuminance(color2);
const lighter = Math.max(l1, l2);
const darker = Math.min(l1, l2);
return (lighter + 0.05) / (darker + 0.05);
}3. Keyboard Navigation
3. 键盘导航
Requirements:
- All interactive elements focusable
- Visible focus indicators (not outline: none)
- Logical tab order
- Skip links for long navigation
- Escape key closes modals/overlays
Focus Styles (Modern):
css
:focus-visible {
outline: 3px solid var(--color-accent);
outline-offset: 2px;
border-radius: 4px;
}
/* Remove focus ring for mouse users */
:focus:not(:focus-visible) {
outline: none;
}要求:
- 所有交互元素可获取焦点
- 可见的焦点指示器(不要使用outline: none)
- 合理的Tab键顺序
- 长导航的跳过链接
- Escape键关闭模态框/浮层
焦点样式(现代风格):
css
:focus-visible {
outline: 3px solid var(--color-accent);
outline-offset: 2px;
border-radius: 4px;
}
/* Remove focus ring for mouse users */
:focus:not(:focus-visible) {
outline: none;
}4. Screen Reader Support
4. 屏幕阅读器支持
Semantic HTML:
- Use proper heading hierarchy (h1-h6)
- Landmark regions (header, nav, main, footer)
- aria-labels for icon buttons
- aria-live regions for dynamic content
Animation Announcements:
html
<!-- Announce when content loads -->
<div role="status" aria-live="polite" aria-atomic="true">
Loading complete. 12 items displayed.
</div>语义化HTML:
- 使用正确的标题层级(h1-h6)
- 地标区域(header、nav、main、footer)
- 图标按钮的aria-labels
- 动态内容的aria-live区域
动画通知:
html
<!-- Announce when content loads -->
<div role="status" aria-live="polite" aria-atomic="true">
Loading complete. 12 items displayed.
</div>5. Touch Targets
5. 触摸目标
Minimum Size: 44x44px (iOS), 48x48px (Android)
Spacing: Minimum 8px between touch targets
Implementation:
css
.button {
min-height: 44px;
min-width: 44px;
padding: 12px 24px;
/* Tap target includes padding */
}最小尺寸: 44x44px(iOS),48x48px(Android)
间距: 触摸目标之间最小8px间距
实现:
css
.button {
min-height: 44px;
min-width: 44px;
padding: 12px 24px;
/* Tap target includes padding */
}Performance Optimization
性能优化
1. Animation Performance
1. 动画性能
60 FPS Checklist:
- Use CSS transforms (translateX/Y/Z, scale, rotate) - GPU accelerated
- Use opacity for fades - GPU accelerated
- Avoid: top/left, width/height, margin, padding animations
- Use sparingly (memory cost)
will-change - RequestAnimationFrame for JS animations
GSAP Performance:
javascript
// Force GPU acceleration
gsap.set(element, { force3D: true });
// Use will-change during animation only
gsap.to(element, {
x: 100,
onStart: () => element.style.willChange = 'transform',
onComplete: () => element.style.willChange = 'auto'
});60 FPS检查清单:
- 使用CSS transforms(translateX/Y/Z、scale、rotate)- GPU加速
- 使用opacity实现淡入淡出 - GPU加速
- 避免:top/left、width/height、margin、padding动画
- 谨慎使用(内存消耗)
will-change - JS动画使用RequestAnimationFrame
GSAP性能优化:
javascript
// Force GPU acceleration
gsap.set(element, { force3D: true });
// Use will-change during animation only
gsap.to(element, {
x: 100,
onStart: () => element.style.willChange = 'transform',
onComplete: () => element.style.willChange = 'auto'
});2. Loading Strategies
2. 加载策略
Critical Path:
- Inline critical CSS (above-the-fold)
- Defer non-critical CSS
- Async JavaScript loading
- Preload fonts and hero images
Progressive Enhancement:
html
<!-- Load essential styles first -->
<style>
/* Critical CSS inlined */
</style>
<!-- Defer non-critical styles -->
<link rel="preload" href="animations.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="animations.css"></noscript>关键路径:
- 内联关键CSS(首屏内容)
- 延迟非关键CSS
- 异步加载JavaScript
- 预加载字体和首屏图片
渐进式增强:
html
<!-- Load essential styles first -->
<style>
/* Critical CSS inlined */
</style>
<!-- Defer non-critical styles -->
<link rel="preload" href="animations.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="animations.css"></noscript>3. Image Optimization
3. 图片优化
Modern Formats:
html
<picture>
<source srcset="image.avif" type="image/avif">
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Description" loading="lazy">
</picture>Responsive Images:
html
<img
srcset="image-400.jpg 400w,
image-800.jpg 800w,
image-1200.jpg 1200w"
sizes="(max-width: 640px) 100vw,
(max-width: 1024px) 50vw,
33vw"
src="image-800.jpg"
alt="Description"
loading="lazy"
>现代格式:
html
<picture>
<source srcset="image.avif" type="image/avif">
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Description" loading="lazy">
</picture>响应式图片:
html
<img
srcset="image-400.jpg 400w,
image-800.jpg 800w,
image-1200.jpg 1200w"
sizes="(max-width: 640px) 100vw,
(max-width: 1024px) 50vw,
33vw"
src="image-800.jpg"
alt="Description"
loading="lazy"
>4. 3D Content Optimization
4. 3D内容优化
Loading Strategy:
- Show placeholder while loading
- Load low-poly model first
- Progressive enhancement with high-poly
- Lazy load 3D scenes below fold
Runtime Performance:
- Use object pooling
- Implement LOD (Level of Detail)
- Frustum culling
- Texture compression (Basis Universal)
Related Skills: , ,
threejs-webglreact-three-fiberbabylonjs-engine加载策略:
- 加载时显示占位符
- 先加载低多边形模型
- 渐进式增强至高多边形模型
- 懒加载视口下方的3D场景
运行时性能:
- 使用对象池
- 实现LOD(细节层次)
- 视锥体剔除
- 纹理压缩(Basis Universal)
相关技能: , ,
threejs-webglreact-three-fiberbabylonjs-engine5. JavaScript Bundle Size
5. JavaScript包体积
Code Splitting:
javascript
// Dynamic imports
const AnimationModule = lazy(() => import('./animations'));
// Route-based splitting
const Gallery = lazy(() => import('./pages/Gallery'));Tree Shaking:
- Use ES6 imports
- Import only what you need
- Use modern build tools (Vite, esbuild)
代码分割:
javascript
// Dynamic imports
const AnimationModule = lazy(() => import('./animations'));
// Route-based splitting
const Gallery = lazy(() => import('./pages/Gallery'));Tree Shaking:
- 使用ES6导入
- 仅导入所需内容
- 使用现代构建工具(Vite、esbuild)
Common Pitfalls
常见陷阱
Pitfall 1: Over-Animation
陷阱1:过度动画
Problem: Too many animations distract from content and hurt performance.
Solution:
- Limit animations to meaningful interactions
- Use animation to guide attention, not demand it
- Follow the principle: "Animation with purpose"
- Measure performance impact (Chrome DevTools Performance tab)
Rule of Thumb: If you can't explain why an animation exists, remove it.
问题:过多动画分散用户注意力并影响性能。
解决方案:
- 将动画限制在有意义的交互中
- 使用动画引导注意力,而非吸引注意力
- 遵循“有目的的动画”原则
- 测量性能影响(Chrome DevTools性能面板)
经验法则:如果你无法解释某个动画的存在意义,就删除它。
Pitfall 2: Ignoring Mobile Performance
陷阱2:忽略移动端性能
Problem: Animations work on desktop but lag on mobile devices.
Solution:
- Test on real devices (not just simulators)
- Reduce animation complexity on mobile
- Disable expensive effects (parallax, 3D) on low-end devices
- Use for device-specific experiences
matchMedia
javascript
const isLowEndDevice = () => {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) &&
navigator.hardwareConcurrency < 4;
};
if (isLowEndDevice()) {
// Simplify or disable animations
}问题:动画在桌面端正常,但在移动端卡顿。
解决方案:
- 在真实设备上测试(而非仅模拟器)
- 降低移动端的动画复杂度
- 在低端设备上禁用昂贵效果(视差、3D)
- 使用实现设备专属体验
matchMedia
javascript
const isLowEndDevice = () => {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) &&
navigator.hardwareConcurrency < 4;
};
if (isLowEndDevice()) {
// Simplify or disable animations
}Pitfall 3: Missing Fallbacks
陷阱3:缺少降级方案
Problem: Experience breaks without JavaScript or on older browsers.
Solution:
- Progressive enhancement mindset
- Core content accessible without JS
- Feature detection before using modern APIs
- Polyfills for critical features
javascript
// Feature detection
if ('IntersectionObserver' in window) {
// Use scroll-triggered animations
} else {
// Show content immediately
}问题:无JavaScript或在旧浏览器上体验崩溃。
解决方案:
- 秉持渐进式增强理念
- 无JS时仍可访问核心内容
- 使用现代API前先进行特性检测
- 为关键功能提供Polyfill
javascript
// Feature detection
if ('IntersectionObserver' in window) {
// Use scroll-triggered animations
} else {
// Show content immediately
}Pitfall 4: Accessibility Oversight
陷阱4:可访问性疏漏
Problem: Forgetting keyboard users, screen readers, or motion-sensitive users.
Solution:
- Test with keyboard only
- Test with screen reader (NVDA, VoiceOver)
- Always check
prefers-reduced-motion - Use semantic HTML
- Maintain proper focus management
Checklist:
- All interactive elements keyboard accessible
- Focus indicators visible
- Color contrast meets WCAG AAA
- Motion can be disabled
- Screen reader announcements make sense
问题:忽略键盘用户、屏幕阅读器用户或对动效敏感的用户。
解决方案:
- 仅使用键盘进行测试
- 使用屏幕阅读器测试(NVDA、VoiceOver)
- 始终检查设置
prefers-reduced-motion - 使用语义化HTML
- 保持合理的焦点管理
检查清单:
- 所有交互元素可通过键盘访问
- 焦点指示器可见
- 颜色对比度符合WCAG AAA标准
- 可禁用动效
- 屏幕阅读器通知内容合理
Pitfall 5: Ignoring Loading States
陷阱5:忽略加载状态
Problem: Blank screen or layout shifts during content load.
Solution:
- Skeleton screens for predictable layouts
- Smooth loading transitions
- Reserve space for dynamic content
- Show meaningful loading indicators
jsx
// Skeleton screen pattern
function ProductCard({ loading, data }) {
if (loading) {
return (
<div className="skeleton">
<div className="skeleton__image" />
<div className="skeleton__title" />
<div className="skeleton__price" />
</div>
);
}
return <ProductCardContent data={data} />;
}问题:内容加载时显示空白屏幕或布局偏移。
解决方案:
- 使用骨架屏实现可预测的布局
- 平滑的加载过渡
- 为动态内容预留空间
- 显示有意义的加载指示器
jsx
// Skeleton screen pattern
function ProductCard({ loading, data }) {
if (loading) {
return (
<div className="skeleton">
<div className="skeleton__image" />
<div className="skeleton__title" />
<div className="skeleton__price" />
</div>
);
}
return <ProductCardContent data={data} />;
}Pitfall 6: Scroll Hijacking
陷阱6:滚动劫持
Problem: Overriding native scroll behavior frustrates users.
Solution:
- Preserve browser's native scroll (momentum, keyboard)
- Use ScrollTrigger/Locomotive without changing scroll physics
- Allow users to scroll at their own pace
- Never disable scroll entirely
- Avoid scroll-jacking for full-page sections
Good Practice: Enhance scroll, don't replace it.
问题:覆盖原生滚动行为使用户感到沮丧。
解决方案:
- 保留浏览器的原生滚动(动量、键盘)
- 使用ScrollTrigger/Locomotive时不改变滚动物理特性
- 允许用户按自己的节奏滚动
- 永远不要完全禁用滚动
- 避免对全屏区域进行滚动劫持
良好实践:增强滚动体验,而非替代原生滚动。
Design System Architecture
设计系统架构
Token Structure
令牌结构
Modern Design Tokens (CSS Custom Properties):
css
:root {
/* Colors - OKLCH for perceptual uniformity */
--color-primary: oklch(50% 0.2 250);
--color-accent: oklch(65% 0.25 30);
/* Spacing - Consistent scale */
--space-2xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.375rem);
--space-xs: clamp(0.5rem, 0.4rem + 0.5vw, 0.75rem);
--space-sm: clamp(0.75rem, 0.6rem + 0.75vw, 1.125rem);
--space-md: clamp(1rem, 0.8rem + 1vw, 1.5rem);
--space-lg: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
--space-xl: clamp(2rem, 1.6rem + 2vw, 3rem);
--space-2xl: clamp(3rem, 2.4rem + 3vw, 4.5rem);
/* Typography - Fluid scale */
--font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
/* Animation - Consistent timing */
--duration-fast: 150ms;
--duration-normal: 250ms;
--duration-slow: 400ms;
/* Easing - Natural motion */
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}现代设计令牌(CSS自定义属性):
css
:root {
/* Colors - OKLCH for perceptual uniformity */
--color-primary: oklch(50% 0.2 250);
--color-accent: oklch(65% 0.25 30);
/* Spacing - Consistent scale */
--space-2xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.375rem);
--space-xs: clamp(0.5rem, 0.4rem + 0.5vw, 0.75rem);
--space-sm: clamp(0.75rem, 0.6rem + 0.75vw, 1.125rem);
--space-md: clamp(1rem, 0.8rem + 1vw, 1.5rem);
--space-lg: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
--space-xl: clamp(2rem, 1.6rem + 2vw, 3rem);
--space-2xl: clamp(3rem, 2.4rem + 3vw, 4.5rem);
/* Typography - Fluid scale */
--font-size-base: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
/* Animation - Consistent timing */
--duration-fast: 150ms;
--duration-normal: 250ms;
--duration-slow: 400ms;
/* Easing - Natural motion */
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}Component Architecture
组件架构
Atomic Design (Brad Frost):
- Atoms: Buttons, inputs, labels
- Molecules: Form fields, cards
- Organisms: Navigation, hero sections
- Templates: Page layouts
- Pages: Specific instances
Related Skills: for component patterns
animated-component-libraries原子设计(Brad Frost):
- 原子:按钮、输入框、标签
- 分子:表单字段、卡片
- 有机体:导航、首屏区域
- 模板:页面布局
- 页面:具体实例
相关技能: 用于组件模式
animated-component-librariesResources
资源
This skill references the following skills for implementation:
本技能参考以下技能以获取实现指导:
Animation & Interaction
动画与交互
- - Scroll-driven animations, pinning, scrubbing
gsap-scrolltrigger - - React animations, gestures, layout animations
motion-framer - - Physics-based animations
react-spring-physics - - SVG animations, stagger effects
animejs - - Designer-created animations
lottie-animations - - Simple scroll reveals (AOS)
scroll-reveal-libraries
- - 滚动驱动动画、固定、scrubbing
gsap-scrolltrigger - - React动画、手势、布局动画
motion-framer - - 基于物理的动画
react-spring-physics - - SVG动画、交错效果
animejs - - 设计师创建的动画
lottie-animations - - 简单滚动展示(AOS)
scroll-reveal-libraries
3D & WebGL
3D与WebGL
- - Custom 3D scenes and effects
threejs-webgl - - 3D in React applications
react-three-fiber - - Physics-based 3D, VR/XR
babylonjs-engine - - Vanta.js backgrounds, Zdog illustrations
lightweight-3d-effects
- - 自定义3D场景与效果
threejs-webgl - - React应用中的3D内容
react-three-fiber - - 基于物理的3D、VR/XR
babylonjs-engine - - Vanta.js背景、Zdog插画
lightweight-3d-effects
Page Transitions & Scroll
页面过渡与滚动
- - Page transitions
barba-js - - Smooth scrolling
locomotive-scroll
- - 页面过渡
barba-js - - 平滑滚动
locomotive-scroll
Component Libraries
组件库
- - Magic UI, React Bits
animated-component-libraries - - Canvas-based 2D graphics
pixijs-2d
- - Magic UI、React Bits
animated-component-libraries - - 基于画布的2D图形
pixijs-2d
Detailed References
详细参考
See the directory for in-depth documentation:
references/- - Current web design trends and forecasts
design_trends_2024.md - - Comprehensive micro-interaction catalog
interaction_patterns.md - - WCAG compliance patterns and testing
accessibility_guide.md - - Optimization strategies and metrics
performance_checklist.md
查看目录获取深入文档:
references/- - 当前网页设计趋势与预测
design_trends_2024.md - - 全面的微交互目录
interaction_patterns.md - - WCAG合规模式与测试
accessibility_guide.md - - 优化策略与指标
performance_checklist.md
Scripts
脚本
The directory includes tools for implementing design patterns:
scripts/- - Generate design pattern boilerplate
pattern_generator.py - - Audit existing designs for compliance
design_audit.py
scripts/- - 生成设计模式样板代码
pattern_generator.py - - 审核现有设计的合规性
design_audit.py
Assets
资源文件
The directory contains design system templates and starter files. See for details.
assets/assets/README.mdassets/assets/README.md