ライブデモ Live Demo
データがない場合に表示するエンプティステートです。
An empty state display for when no data is found.
データが見つかりません No data found
まだプロジェクトが作成されていません。新しいプロジェクトを作成して始めましょう。 You haven't created any projects yet. Create a new project to get started.
新規作成 Create NewAI向け説明 AI Description
`S-008` は検索結果やリストが0件の場合に表示する「エンプティステート」です。単に「データなし」と伝えるだけでなく、イラスト(アイコン)、説明文、そして次の行動を促すCTAボタンをセットにして配置します。
`S-008` is an Empty State UI displayed when no data exists (e.g., zero search results). It combines an illustration (icon), descriptive text, and a Call-to-Action (CTA) button to guide usage.
調整可能パラメータ Adjustable Parameters
- --icon-size — アイコンの大きさIcon size
- --icon-color — アイコンの色Icon color
実装 Implementation
HTML + CSS
<div class="empty-state">
<div class="icon">📂</div>
<h3>No Data</h3>
<p>Description...</p>
<button>Create</button>
</div>
<style>
:root { --icon-size: 120px; --icon-color: #9ca3af; }
.empty-state { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 40px; }
.icon { width: var(--icon-size); height: var(--icon-size); color: var(--icon-color); font-size: calc(var(--icon-size) * 0.4); margin-bottom: 24px; animation: float 3s infinite ease-in-out; }
@keyframes float { 50% { transform: translateY(-10px); } }
</style>
React (JSX + CSS)
// react/S-008.jsx
import './S-008.css';
export default function EmptyState({ icon = '📂', title, description, actionText, onAction }) {
return (
<div className="empty-container">
<div className="empty-icon">{icon}</div>
<h3 className="empty-title">{title}</h3>
<p className="empty-description">{description}</p>
{actionText && (
<button className="empty-action" onClick={onAction}>{actionText}</button>
)}
</div>
);
}
/* react/S-008.css */
/* S-008: React styles */
.empty-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 60px 20px;
text-align: center;
border: 1px solid #e0e4f0;
border-radius: 16px;
}
.empty-icon {
width: 120px;
height: 120px;
background: #f5f7ff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 24px;
font-size: 48px;
color: #5c6184;
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
100% {
transform: translateY(0);
}
}
.empty-title {
font-size: 20px;
font-weight: 600;
margin: 0 0 12px;
color: #1d2242;
}
.empty-description {
color: #5c6184;
max-width: 300px;
margin: 0 0 24px;
line-height: 1.6;
}
.empty-action {
background: #5c6ac4;
color: #fff;
border: none;
padding: 12px 24px;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: 0.2s;
}
.empty-action:hover {
background: #4f5cb3;
transform: translateY(-2px);
}
AIへの指示テンプレート AI Prompt Template
以下のテンプレートをコピーしてAIアシスタントに貼り付けると、このパターンの実装を依頼できます。 Copy the template below and paste it into your AI assistant to request an implementation of this pattern.