UI组件开发
开发可复用UI组件
提示词
帮我实现一个[组件名称]组件:
核心功能:[描述组件功能]
视觉细节:
- 风格:[现代/拟物/扁平化/玻璃态]
- 颜色:[主色/配色]
- 动画:[过渡/hover/点击效果]
- 响应式:[如何适配不同屏幕]
交互细节:
- 有哪些状态(default/hover/active/disabled/loading)
- 触发什么事件
- 键盘 accessibility
技术栈:[React/Vue/原生JS + Tailwind/CSS]
要求:
1. 可复用,props可配置
2. 支持主题定制
3. 包含使用示例
4. 无障碍支持示例输出
实现一个Modal对话框组件(React + Tailwind):
功能:点击遮罩关闭、ESC关闭、居中显示、动画过渡
interface ModalProps {
isOpen: boolean;
onClose: () => void;
title: string;
children: React.ReactNode;
size?: 'sm' | 'md' | 'lg';
}
export function Modal({ isOpen, onClose, title, children, size = 'md' }: ModalProps) {
useEffect(() => {
const handleEsc = (e: KeyboardEvent) => e.key === 'Escape' && onClose();
if (isOpen) document.addEventListener('keydown', handleEsc);
return () => document.removeEventListener('keydown', handleEsc);
}, [isOpen, onClose]);
if (!isOpen) return null;
return (
<div className="fixed inset-0 z-50 flex items-center justify-center">
<div className="absolute inset-0 bg-black/50" onClick={onClose} />
<div className={`relative bg-white rounded-lg shadow-xl p-6 ${sizeClasses[size]}`}>
<h2 className="text-lg font-semibold mb-4">{title}</h2>
{children}
</div>
</div>
);
}评论 0
更多
登录后可点赞、收藏、评论和举报。
还没有评论,先发起一个具体问题。