Creative Tim UI Blocks
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
AnyRobot 前端开发核心指南:提供 JavaScript + React + shadcn/ui 开发的精简实用规范和最佳实践。
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-js --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .claude/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .claude/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-jsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-js --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .agents/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .agents/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-js --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .cursor/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .cursor/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/opsrobot-ai/opsrobot.git --path .trae/skills/anyrobot-shadcn-frontend-js--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-js --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .gemini/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .gemini/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-jsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .github/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .github/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install opsrobot-ai/opsrobot anyrobot-shadcn-frontend-js --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsrobot-ai/opsrobot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.trae/skills/anyrobot-shadcn-frontend-js .opencode/skills/anyrobot-shadcn-frontend-js && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "anyrobot-shadcn-frontend-js" agent skill from https://github.com/opsrobot-ai/opsrobot/tree/main/.trae/skills/anyrobot-shadcn-frontend-js into .opencode/skills/anyrobot-shadcn-frontend-js/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "anyrobot-shadcn-frontend-js", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
anyrobot-shadcn-frontend-jsAnyRobot 前端开发核心指南:提供 JavaScript + React + shadcn/ui 开发的精简实用规范和最佳实践。
Anyrobot Shadcn Frontend JS is an agent skill from opsrobot-ai/opsrobot. AnyRobot 前端开发核心指南:提供 JavaScript + React + shadcn/ui 开发的精简实用规范和最佳实践。 当用户需要前端开发指导、组件开发或项目结构建议时触发。 本技能提供实际可用于项目开发的核心代码示例和开发指南。
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design systems and Observability. It works with shadcn/ui, React, JavaScript and Tailwind CSS. The repository describes itself as: Observability platform for Digital Employee, providing real-time tracing, session insights, and cost analysis for multi-agent workflows. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2e5e8b0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
API_KEYNEXT_PUBLIC_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Anyrobot Shadcn Frontend JS loads about 3.3k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 134 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
// .env.localAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from opsrobot-ai/opsrobot at commit 2e5e8b0, republished under its Apache-2.0 licence (© opsrobot-ai). 134 words, ~3,309 tokens.
.claude/skills/anyrobot-shadcn-frontend-js/SKILL.md (or your agent's skills folder).本技能提供了一套现代化的前端开发核心规范和最佳实践,涵盖 JavaScript、React、Tailwind CSS 和 shadcn/ui 等技术栈。
适用场景:新项目初始化、现有项目优化、代码审查参考、团队开发规范制定。
✅ 推荐的最佳实践:
- 使用 const/let 而非 var
- 遵循组件化开发原则,合理拆分组件
- 采用 Tailwind CSS 进行样式管理
- 集成 shadcn/ui 构建一致的 UI 组件库
- 注重性能优化和安全实践
- 保持代码风格一致,添加必要注释
- 建立清晰的项目文件结构
- 完善错误处理和边界情况/src
/components
/ui # shadcn/ui 组件
button.jsx
input.jsx
card.jsx
/layout # 布局组件
Header.jsx
Sidebar.jsx
Footer.jsx
/feature # 功能组件
UserList.jsx
UserForm.jsx
/hooks # 自定义 Hooks
useAuth.js
useApi.js
/utils # 工具函数
formatters.js
api.js
/pages # 页面组件
/home # 首页模块
index.jsx
components/ # 首页子组件
Hero.jsx
Features.jsx
/auth # 认证模块
index.jsx
components/ # 认证子组件
LoginForm.jsx
/dashboard # 仪表盘模块
index.jsx
components/ # 仪表盘子组件
StatsCard.jsx
/context # React 上下文
AuthContext.jsx
/locales # 国际化资源
/en-US # 英语(美国)
index.js
common.js
dashboard.js
/zh-CN # 中文(简体)
index.js
common.js
dashboard.js
/styles # 全局样式
globals.css
App.jsx # 应用根组件
main.jsx # 应用入口
i18n.js # 国际化配置UserList.jsxformatDate.jsfeature-componentsen-US、zh-CNcommon.js、dashboard.jscommon.hello、dashboard.title// ✅ 推荐:使用函数组件和 Hooks
import { useState, useEffect } from "react";
function UserProfile({ userId }) {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
const fetchUser = async () => {
setLoading(true);
try {
const data = await getUserById(userId);
setUser(data);
} catch (err) {
setError("Failed to fetch user");
} finally {
setLoading(false);
}
};
fetchUser();
}, [userId]);
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error}</div>;
if (!user) return <div>User not found</div>;
return (
<div className="user-profile">
<h2>{user.name}</h2>
<p>{user.email}</p>
</div>
);
}// ✅ 推荐:封装重复逻辑到自定义 Hooks
import { useState, useEffect } from "react";
function useApi(url, dependencies = []) {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
const fetchData = async () => {
setLoading(true);
try {
const response = await fetch(url);
if (!response.ok) throw new Error("Network response was not ok");
const result = await response.json();
setData(result);
} catch (err) {
setError(err instanceof Error ? err.message : "An error occurred");
} finally {
setLoading(false);
}
};
fetchData();
}, [url, ...dependencies]);
return { data, loading, error };
}
// 使用
function UserList() {
const { data: users, loading, error } = useApi("/api/users");
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error}</div>;
return (
<ul>
{users?.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}// ✅ 推荐:使用 React Context 进行轻量级状态管理
import { createContext, useContext, useState } from "react";
const AuthContext = createContext(undefined);
export function useAuth() {
const context = useContext(AuthContext);
if (!context) {
throw new Error("useAuth must be used within an AuthProvider");
}
return context;
}
export function AuthProvider({ children }) {
const [user, setUser] = useState(null);
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(null);
const login = async (email, password) => {
setIsLoading(true);
setError(null);
try {
const response = await fetch("/api/auth/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email, password }),
});
if (!response.ok) throw new Error("Login failed");
const data = await response.json();
setUser(data.user);
localStorage.setItem("token", data.token);
} catch (err) {
setError(err instanceof Error ? err.message : "Login failed");
} finally {
setIsLoading(false);
}
};
const logout = () => {
setUser(null);
localStorage.removeItem("token");
};
return (
<AuthContext.Provider value={{ user, login, logout, isLoading, error }}>
{children}
</AuthContext.Provider>
);
}# 安装 shadcn/ui
npx shadcn-ui@latest init
# 添加组件
npx shadcn-ui@latest add button input card// ✅ 推荐:使用 shadcn/ui 组件
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
function LoginForm() {
return (
<Card className="w-full max-w-md">
<CardHeader>
<CardTitle>Sign in to your account</CardTitle>
<CardDescription>
Enter your email and password to access your account
</CardDescription>
</CardHeader>
<CardContent>
<div className="space-y-4">
<div className="space-y-2">
<label htmlFor="email">Email</label>
<Input id="email" type="email" placeholder="name@example.com" />
</div>
<div className="space-y-2">
<label htmlFor="password">Password</label>
<Input id="password" type="password" placeholder="••••••••" />
</div>
</div>
</CardContent>
<CardFooter>
<Button className="w-full">Sign in</Button>
</CardFooter>
</Card>
);
}// ✅ 推荐:定制 shadcn/ui 组件
import { Button } from "@/components/ui/button";
// 主按钮
const PrimaryButton = ({ children, ...props }) => (
<Button className="bg-primary hover:bg-primary/90 text-white" {...props}>
{children}
</Button>
);
// 次要按钮
const SecondaryButton = ({ children, ...props }) => (
<Button
className="bg-secondary hover:bg-secondary/90 text-secondary-foreground"
{...props}
>
{children}
</Button>
);
// 使用
function ActionButtons() {
return (
<div className="flex space-x-2">
<PrimaryButton>Save</PrimaryButton>
<SecondaryButton>Cancel</SecondaryButton>
</div>
);
}// ✅ 推荐:按逻辑顺序组织类名
<div
className="
relative {/* 1. 定位 */}
w-full max-w-4xl {/* 2. 尺寸 */}
mx-auto p-6 {/* 3. 布局 */}
bg-white dark:bg-gray-900 {/* 4. 背景 */}
text-gray-900 dark:text-gray-100 {/* 5. 文字 */}
rounded-lg shadow-md {/* 6. 效果 */}
transition-all duration-300 {/* 7. 过渡 */}
hover:shadow-lg {/* 8. 交互 */}
"
>
Content here
</div>// ✅ 推荐:使用响应式断点
<div
className="
grid
grid-cols-1 /* 移动端 */
md:grid-cols-2 /* 平板 */
lg:grid-cols-4 /* 桌面 */
gap-4 md:gap-6
p-4 md:p-6
"
>
{items.map((item) => (
<Card key={item.id}>{/* 卡片内容 */}</Card>
))}
</div>// ✅ 推荐:支持暗色模式
<div
className="
bg-white dark:bg-gray-900
text-gray-900 dark:text-gray-100
border border-gray-200 dark:border-gray-700
rounded-md
p-4
"
>
<h3 className="font-medium mb-2">Card Title</h3>
<p className="text-sm text-gray-600 dark:text-gray-400">
Card description goes here
</p>
</div>// ✅ 推荐:使用 React.memo 避免不必要的重渲染
import { memo } from "react";
const UserCard = memo(({ user, onEdit }) => {
return (
<div className="user-card">
<h3>{user.name}</h3>
<p>{user.email}</p>
<button onClick={() => onEdit(user.id)}>Edit</button>
</div>
);
});
// ✅ 推荐:使用 useCallback 缓存函数
import { useCallback } from "react";
function UserList({ users }) {
const handleEdit = useCallback((id) => {
console.log("Edit user:", id);
}, []);
return (
<div className="user-list">
{users.map((user) => (
<UserCard key={user.id} user={user} onEdit={handleEdit} />
))}
</div>
);
}// ✅ 推荐:使用 useMemo 缓存计算结果
import { useMemo } from "react";
function ExpensiveComponent({ items }) {
const sortedItems = useMemo(() => {
return [...items].sort((a, b) => a.name.localeCompare(b.name));
}, [items]);
const totalPrice = useMemo(() => {
return items.reduce((sum, item) => sum + item.price, 0);
}, [items]);
return (
<div>
<h2>Total: ${totalPrice.toFixed(2)}</h2>
<ul>
{sortedItems.map((item) => (
<li key={item.id}>
{item.name} - ${item.price}
</li>
))}
</ul>
</div>
);
}// ✅ 推荐:使用 React 自动转义
function UserComment({ comment }) {
// React 会自动转义 HTML 内容
return <div className="comment">{comment}</div>;
}
// ✅ 推荐:使用 DOMPurify 处理富文本
import DOMPurify from "dompurify";
function RichTextContent({ html }) {
const sanitizedHtml = DOMPurify.sanitize(html);
return (
<div
className="rich-text"
dangerouslySetInnerHTML={{ __html: sanitizedHtml }}
/>
);
}// ✅ 推荐:使用环境变量存储敏感信息
// .env.local
// API_KEY=your_api_key
// 使用
const API_KEY = process.env.NEXT_PUBLIC_API_KEY;
// ✅ 推荐:使用 httpOnly Cookie 存储认证信息
// 登录时
fetch("/api/auth/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email, password }),
credentials: "include", // 包含 cookies
});
// 验证时
fetch("/api/protected", {
credentials: "include", // 包含 cookies
});// ✅ 推荐:使用 Zod 进行表单验证
import { z } from "zod";
const userSchema = z.object({
name: z.string().min(2, "Name must be at least 2 characters"),
email: z.string().email("Invalid email address"),
password: z.string().min(8, "Password must be at least 8 characters"),
});
function RegisterForm() {
const [formData, setFormData] = useState({
name: "",
email: "",
password: "",
});
const [errors, setErrors] = useState(null);
const handleSubmit = (e) => {
e.preventDefault();
const result = userSchema.safeParse(formData);
if (!result.success) {
setErrors(result.error);
return;
}
// 提交表单
console.log("Valid form data:", result.data);
};
// 表单 JSX
}// ✅ 推荐:封装常用工具函数
// 日期格式化
export function formatDate(date) {
return new Intl.DateTimeFormat("zh-CN", {
year: "numeric",
month: "long",
day: "numeric",
}).format(new Date(date));
}
// 数字格式化
export function formatNumber(num) {
return new Intl.NumberFormat("zh-CN").format(num);
}
// 错误处理
export function handleError(error) {
if (error instanceof Error) {
return error.message;
}
return String(error);
}// ✅ 推荐:使用 React DevTools 进行调试
// 安装:Chrome 扩展商店搜索 "React DevTools"
// ✅ 推荐:使用 console.group 组织日志
function complexFunction() {
console.group("Complex Function");
console.log("Step 1: Initializing");
// 代码逻辑
console.log("Step 2: Processing");
// 代码逻辑
console.log("Step 3: Completed");
console.groupEnd();
}
// ✅ 推荐:使用断点调试
function buggyFunction() {
// 在 VS Code 中点击行号设置断点
const result = someCalculation();
return result;
}| 最佳实践 | 说明 |
|---|---|
| 组件化开发 | 合理拆分组件,保持单一职责 |
| shadcn/ui | 构建一致的 UI 组件库 |
| Tailwind CSS | 高效的样式管理 |
| 性能优化 | 使用 memo、useCallback、useMemo 等 |
| 安全实践 | 防止 XSS、保护敏感信息 |
| 代码规范 | 统一的命名和文件组织 |
| 工具链 | 使用现代开发工具提升效率 |
记住:好的代码是可维护、可扩展、可测试的。遵循这些最佳实践,让你的前端项目更加专业和可靠!
© opsrobot-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .trae/skills/anyrobot-shadcn-frontend-js of opsrobot-ai/opsrobot.
Open the folder on GitHubat commit 2e5e8b0
Anyrobot Shadcn Frontend JS next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Anyrobot Shadcn Frontend JS this skillopsrobot-ai/opsrobot | 135 | — | ~3.3k | Automated safety check: Notes | Apache-2.0 | |
| Creative Tim UI Blockscreativetimofficial/ui | 12k | — | ~2.1k | Automated safety check: Notes | MIT | |
| Cosscrafter-station/petdex | 4.2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Ss Learnbitjaru/styleseed | 973 | — | ~1.3k | Automated safety check: Pass | MIT | |
| UithingBayBreezy/ui-thing | 729 | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Avoid AI Designsunkaifei/FlyCms | 656 | — | ~3.5k | Automated safety check: Pass | MIT |
creativetimofficial/ui
Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.
crafter-station/petdex
Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.
bitjaru/styleseed
Capture a human-approved UI design lesson as a privacy-minimized local StyleSeed candidate, review it, and prepare an opt-in share package without transmitting project code, prompts, screenshots, or…
BayBreezy/ui-thing
Manages UI Thing components, prose, blocks, themes, shortcuts, docs, and MCP-driven workflows in Nuxt projects and in the UI Thing source repo.
sunkaifei/FlyCms
Audit and rewrite frontend UI to remove generic AI design patterns ("AI slop"), both the first-order defaults (purple gradients, Inter, a centered hero over three cards, untouched shadcn) and the…
Hainrixz/editor-pro-max
Helps choose and drop in animated React components from Magic UI and React Bits for landing pages, marketing sites and dashboards, instead of hand-coding animations.
Works with
Categories
AnyRobot 前端开发核心指南:提供 JavaScript + React + shadcn/ui 开发的精简实用规范和最佳实践。. Anyrobot Shadcn Frontend JS is an agent skill from opsrobot-ai/opsrobot.
Anyrobot Shadcn Frontend JS fits situations like: tasks that involve Design systems; tasks that involve Observability.
Run `npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a claude-code`. Or copy the skill folder (.trae/skills/anyrobot-shadcn-frontend-js in opsrobot-ai/opsrobot) into .claude/skills/anyrobot-shadcn-frontend-js in your project. Claude Code loads it when a task matches its description.
Run `npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a codex`. Or copy the skill folder (.trae/skills/anyrobot-shadcn-frontend-js in opsrobot-ai/opsrobot) into .agents/skills/anyrobot-shadcn-frontend-js in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add opsrobot-ai/opsrobot --skill anyrobot-shadcn-frontend-js -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/anyrobot-shadcn-frontend-js, .gemini/skills/anyrobot-shadcn-frontend-js, .github/skills/anyrobot-shadcn-frontend-js and .opencode/skills/anyrobot-shadcn-frontend-js in your project.
Going by SKILL.md and its folder, Anyrobot Shadcn Frontend JS needs the command-line tools its instructions call (npx) and credentials named API_KEY and NEXT_PUBLIC_API_KEY. Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Anyrobot Shadcn Frontend JS is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Anyrobot Shadcn Frontend JS: Creative Tim UI Blocks (creativetimofficial/ui, 12k stars), Coss (crafter-station/petdex, 4.2k stars), Ss Learn (bitjaru/styleseed, 973 stars) and Uithing (BayBreezy/ui-thing, 729 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
opsrobot-ai (a GitHub organization) maintains it in opsrobot-ai/opsrobot, which has 135 GitHub stars. The repository was last updated on May 20, 2026.
Source: opsrobot-ai/opsrobot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.