技能标识:loading-state-patterns
Patterns for skeleton loaders, shimmer effects, and loading states that match design system aesthetics. Covers skeleton components, shimmer animations, and progressive loading. Use when building polished loading experiences. Triggers on skeleton, loading state, shimmer, placeholder, loading animation.
构建有意图的加载状态,使其与你的设计系统美学相匹配。
tsx
import { cn } from @/lib/utils;
interface SkeletonProps extends React.HTMLAttributes
shimmer?: boolean;
}
export function Skeleton({ className, shimmer = true, ...props }: SkeletonProps) {
return (
css
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.animate-shimmer {
animation: shimmer 1.5s ease-in-out infinite;
}
tsx
export function CardSkeleton() {
return (
tsx
export function TableRowSkeleton({ columns = 4 }: { columns?: number }) {
return (
tsx
export function MetricSkeleton() {
return (
使骨架与你的美学风格相匹配:
tsx
// 适用于复古未来主义主题
export function CyberSkeleton({ className, ...props }: SkeletonProps) {
return (
// CSS
@keyframes pulse-glow {
0%, 100% { opacity: 0.4; box-shadow: 0 0 0 0 rgba(var(--tone-cyan), 0); }
50% { opacity: 0.6; box-shadow: 0 0 8px 0 rgba(var(--tone-cyan), 0.1); }
}
在内容加载时逐步显示:
tsx
interface ProgressiveLoadProps {
isLoading: boolean;
skeleton: React.ReactNode;
children: React.ReactNode;
}
export function ProgressiveLoad({
isLoading,
skeleton,
children,
}: ProgressiveLoadProps) {
return (
适用于AI/LLM流式内容:
tsx
export function StreamingIndicator() {
return (
tsx
interface LoadingProgressProps {
progress?: number; // 0-100, undefined = 不确定状态
}
export function LoadingProgress({ progress }: LoadingProgressProps) {
const isIndeterminate = progress === undefined;
return (
// CSS
@keyframes indeterminate {
0% { transform: translateX(-100%); width: 50%; }
100% { transform: translateX(200%); width: 50%; }
}
.animate-indeterminate {
animation: indeterminate 1.5s ease-in-out infinite;
}
tsx
export function GridSkeleton({
count = 6,
columns = 3
}: {
count?: number;
columns?: number;
}) {
return (
tsx
// 基础骨架
// 头像骨架
// 文本行
// 卡片骨架
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 loading-state-patterns-1776420065 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 loading-state-patterns-1776420065 技能
skillhub install loading-state-patterns-1776420065
文件大小: 3.65 KB | 发布时间: 2026-4-17 19:16