Token导航 LogoToken导航

Agent Skill · 前端设计

elite-performance(精英表现)

elite-performance 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

elite-performance 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 7,023。

总安装 428周安装 18GitHub Stars 公开资料未说明下载 150核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:elite-performance(精英表现)
来源仓库:https://github.com/rshvr/elite-web-design
仓库路径:skills/elite-performance
安装命令:
npx skills add https://github.com/rshvr/elite-web-design --skill elite-performance
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/rshvr/elite-web-design --skill elite-performance

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

elite-performance 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理时使用。

可通过 npx skills add 命令从指定 GitHub 仓库安装,建议确认权限和维护状态后再使用。使用前需检查是否会触发联网、命令执行或文件读写操作,确保符合项目安全规范。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/elite-performance

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/rshvr/elite-web-design --skill elite-performan…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

elite-performance 怎么安装?

在终端执行 npx skills add https://github.com/rshvr/elite-web-design --skill elite-performance。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

elite-performance 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

elite-performance 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

elite-performance 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

elite-performance 用的人多吗?

公开数据是累计安装 428 次,近一周安装 18 次,下载 150 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

elite-performance 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
elite-performance

精英表现 · 本页

428—需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Elite Performance

Maintain 60fps animations while hitting Core Web Vitals targets.

Quick Reference

TopicReference File
Vite Setupvite-setup.md
Animation Performanceanimation-performance.md
Asset Optimizationasset-optimization.md
Debuggingdebugging.md

Performance Budget (2026)

Core Web Vitals Targets

MetricGoodNeeds WorkPoor
LCP (Largest Contentful Paint)≤ 2.5s≤ 4.0s> 4.0s
INP (Interaction to Next Paint)≤ 200ms≤ 500ms> 500ms
CLS (Cumulative Layout Shift)≤ 0.1≤ 0.25> 0.25

Animation Targets

MetricTarget
Frame rate60fps (16.67ms/frame)
Frame budget< 10ms for JS/layout
Animation start< 100ms response
Scroll jank0 dropped frames

Bundle Targets

AssetTarget
Initial JS< 100KB (gzipped)
Initial CSS< 50KB (gzipped)
GSAP core~25KB (gzipped)
Total initial< 200KB (gzipped)

GPU-Accelerated Properties

ONLY Animate These

/* GPU composited - FAST */
transform: translateX() translateY() translateZ()
           scale() rotate() skew();
opacity: 0 to 1;
filter: blur() brightness() contrast();

/* Will trigger compositor layer */
will-change: transform, opacity;

NEVER Animate These

/* Triggers layout - SLOW */
width, height
top, right, bottom, left
margin, padding
font-size
border-width

/* Triggers paint - SLOW */
background-color, color
border-color
box-shadow
text-shadow

Transform vs Position

/* BAD - Triggers layout every frame */
.element {
  animation: moveLeft 1s;
}
@keyframes moveLeft {
  to { left: 100px; }
}

/* GOOD - GPU composited */
.element {
  animation: moveLeft 1s;
}
@keyframes moveLeft {
  to { transform: translateX(100px); }
}

Quick Performance Wins

1. Lazy Load Below-Fold Content

<!-- Native lazy loading -->
<img src="hero.jpg" alt="Hero" loading="eager">
<img src="feature.jpg" alt="Feature" loading="lazy">

<!-- Intersection Observer for components -->
<div class="lazy-section" data-component="heavy-animation">
  <!-- Loaded via JS when visible -->
</div>

2. Use content-visibility

/* Skip rendering off-screen sections */
.section {
  content-visibility: auto;
  contain-intrinsic-size: 0 500px;  /* Estimated height */
}

3. Contain Expensive Effects

/* Isolate animated sections */
.animated-section {
  contain: layout style paint;
}

/* Full containment for cards */
.card {
  contain: strict;
}

4. Reduce Motion When Appropriate

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

5. Optimize Scroll Handlers

// BAD - Fires on every scroll event
window.addEventListener('scroll', handleScroll);

// GOOD - Passive listener, no preventDefault
window.addEventListener('scroll', handleScroll, { passive: true });

// BETTER - Use ScrollTrigger (already optimized)
gsap.to('.element', {
  scrollTrigger: { /* ... */ }
});

GSAP Performance

Use gsap.context() for Cleanup

// Prevents memory leaks
const ctx = gsap.context(() => {
  gsap.to('.element', { x: 100 });
  ScrollTrigger.create({ /* ... */ });
});

// On unmount
ctx.revert();

Batch ScrollTrigger Updates

// Process multiple items efficiently
ScrollTrigger.batch('.item', {
  onEnter: batch => gsap.to(batch, {
    opacity: 1,
    y: 0,
    stagger: 0.1
  })
});

Use refreshPriority

// Control refresh order
ScrollTrigger.create({
  trigger: '.section',
  refreshPriority: -1  // Refresh after others
});

Lazy ScrollTriggers

// Don't create all at once
const createTrigger = (element) => {
  ScrollTrigger.create({
    trigger: element,
    start: 'top 80%',
    onEnter: () => {
      // Create animation only when needed
      gsap.from(element, { opacity: 0, y: 50 });
    },
    once: true
  });
};

// Create triggers as needed
gsap.utils.toArray('.section').forEach(createTrigger);

CSS Animation Performance

Efficient Keyframes

/* GOOD - Only compositor properties */
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* BAD - Triggers layout */
@keyframes slideIn {
  from {
    opacity: 0;
    margin-top: 30px;
  }
  to {
    opacity: 1;
    margin-top: 0;
  }
}

will-change Best Practices

/* Apply just before animation */
.card {
  transition: transform 0.3s, opacity 0.3s;
}

.card:hover {
  will-change: transform;
}

/* Remove after animation */
.card.animating {
  will-change: transform, opacity;
}

/* Never do this globally */
/* * { will-change: transform; } NEVER! */

Composite Layers

/* Force new layer when needed */
.animated-element {
  transform: translateZ(0);  /* or translate3d(0,0,0) */
}

/* Better: Use will-change temporarily */
.animating {
  will-change: transform;
}

Loading Strategy

Critical Path

<head>
  <!-- Critical CSS inline -->
  <style>/* Above-fold styles */</style>

  <!-- Preload critical assets -->
  <link rel="preload" href="hero.webp" as="image">
  <link rel="preload" href="font.woff2" as="font" crossorigin>

  <!-- Async non-critical CSS -->
  <link rel="stylesheet" href="full.css" media="print" onload="this.media='all'">
</head>

<body>
  <!-- Above-fold content -->

  <!-- Defer heavy scripts -->
  <script src="gsap.min.js" defer></script>
  <script src="app.js" defer></script>
</body>

Dynamic Imports

// Load GSAP plugins only when needed
const loadScrollTrigger = async () => {
  const { ScrollTrigger } = await import('gsap/ScrollTrigger');
  gsap.registerPlugin(ScrollTrigger);
  return ScrollTrigger;
};

// Load on interaction or visibility
const section = document.querySelector('.scroll-section');
const observer = new IntersectionObserver(async ([entry]) => {
  if (entry.isIntersecting) {
    await loadScrollTrigger();
    initScrollAnimations();
    observer.disconnect();
  }
});
observer.observe(section);

Progressive Enhancement

// Check for animation support
const supportsAnimation = 'animate' in document.documentElement;
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;

if (supportsAnimation && !prefersReducedMotion) {
  // Load animation library
  import('./animations.js');
} else {
  // Show final states immediately
  document.querySelectorAll('.animated').forEach(el => {
    el.classList.add('animation-complete');
  });
}

Memory Management

Clean Up Animations

// Store references for cleanup
const animations = [];
const scrollTriggers = [];

function initAnimations() {
  animations.push(
    gsap.to('.element', { x: 100 })
  );

  scrollTriggers.push(
    ScrollTrigger.create({ trigger: '.section' })
  );
}

function cleanup() {
  animations.forEach(anim => anim.kill());
  scrollTriggers.forEach(st => st.kill());
  animations.length = 0;
  scrollTriggers.length = 0;
}

// Or use gsap.context()
const ctx = gsap.context(() => {
  // All animations here
});

// Cleanup
ctx.revert();

SplitText Cleanup

const splits = [];

function initTextAnimations() {
  document.querySelectorAll('.split-text').forEach(el => {
    const split = new SplitText(el, { type: 'chars' });
    splits.push(split);

    gsap.from(split.chars, {
      opacity: 0,
      y: 20,
      stagger: 0.02
    });
  });
}

function cleanup() {
  splits.forEach(split => split.revert());
  splits.length = 0;
}

Event Listener Cleanup

// Use AbortController for easy cleanup
const controller = new AbortController();

window.addEventListener('resize', handleResize, {
  signal: controller.signal
});

window.addEventListener('scroll', handleScroll, {
  passive: true,
  signal: controller.signal
});

// Cleanup all at once
function cleanup() {
  controller.abort();
}

Debugging Checklist

Performance Issues

  1. Dropped frames?

- Check DevTools Performance panel - Look for long tasks (> 50ms) - Verify only compositor properties animated

  1. Slow initial load?

- Check Network waterfall - Verify critical path optimized - Audit bundle sizes

  1. Memory leaks?

- Check Memory panel over time - Verify cleanup on navigation - Watch for detached DOM nodes

  1. Layout thrashing?

- Look for forced reflows in Performance - Batch DOM reads/writes - Use transform instead of position

Quick Checks

// Log animation frame rate
let lastTime = performance.now();
let frameCount = 0;

function measureFPS() {
  frameCount++;
  const now = performance.now();
  if (now - lastTime >= 1000) {
    console.log('FPS:', frameCount);
    frameCount = 0;
    lastTime = now;
  }
  requestAnimationFrame(measureFPS);
}
measureFPS();
// Detect layout thrashing
const originalGetComputedStyle = window.getComputedStyle;
window.getComputedStyle = function(...args) {
  console.trace('getComputedStyle called');
  return originalGetComputedStyle.apply(this, args);
};

See debugging.md for comprehensive debugging techniques.


Resources

平台分布

Codex

37.06%
按下载量换算56

Claude

33.28%
按下载量换算50

Cursor

17.58%
按下载量换算26

Gemini CLI

9.3%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills