Files
chakmate/scene_ai_classification.html
yenru0 3735240eed refactor: apply Tailwind CSS and Heroicons to all HTML files
- Replace custom CSS with Tailwind utility classes
- Convert all inline SVGs to Heroicons sprite system
- Add consistent Tailwind config with design tokens
- Improve responsive layout for onboarding screen
2026-05-18 18:04:47 +09:00

552 lines
32 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI 분류 - Chakmate</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&family=Outfit:wght@400;500;600;700&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<!-- Heroicons SVG Sprite -->
<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
<symbol id="icon-arrow-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M19 12H5M12 19l-7-7 7-7"/>
</symbol>
<symbol id="icon-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14M12 5l7 7-7 7"/>
</symbol>
<symbol id="icon-sparkles" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 3v18M5.5 9.5L7.5 12M5.5 14.5L7.5 12M16.5 9.5L14.5 12M16.5 14.5L14.5 12M9 3l1.5 4.5L15 3M9 21l1.5-4.5L15 21"/>
<path d="M9 3l1.5 4.5M14.5 7.5L15 3l-4.5 1.5M9 21l1.5-4.5M14.5 16.5L15 21l-4.5-1.5"/>
</symbol>
<symbol id="icon-shield-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
<path d="M9 12l2 2 4-4"/>
</symbol>
<symbol id="icon-chart-bar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="3"/>
<circle cx="19" cy="5" r="2"/>
<circle cx="5" cy="19" r="2"/>
<path d="M10.4 10.6l5.2 5.2M13.6 13.6l5.2 5.2"/>
</symbol>
<symbol id="icon-document" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
<polyline points="14 2 14 8 20 8"/>
</symbol>
<symbol id="icon-tag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"/>
<line x1="7" y1="7" x2="7.01" y2="7"/>
</symbol>
<symbol id="icon-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/>
<polyline points="12 6 12 12 16 14"/>
</symbol>
<symbol id="icon-photo" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="3" width="18" height="18" rx="2"/>
<circle cx="8.5" cy="8.5" r="1.5"/>
<polyline points="21 15 16 10 5 21"/>
</symbol>
<symbol id="icon-arrow-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 19V5M5 12l7-7 7 7"/>
</symbol>
<symbol id="icon-magnifying-glass" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"/>
<line x1="21" y1="21" x2="16.65" y2="16.65"/>
</symbol>
<symbol id="icon-sparkles-alt" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
</symbol>
<symbol id="icon-cpu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="8" y="8" width="12" height="12" rx="2"/>
<path d="M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"/>
</symbol>
</svg>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: { DEFAULT: '#3b82f6', light: '#60a5fa', dark: '#1d4ed8' },
secondary: { DEFAULT: '#06b6d4', light: '#22d3ee' },
accent: { DEFAULT: '#0ea5e9', warn: '#38bdf8', danger: '#f472b6' },
surface: { primary: '#f8fafc', secondary: '#e2e8f0', card: '#ffffff' },
text: { primary: '#0f172a', secondary: '#475569', muted: '#94a3b8' },
},
fontFamily: {
sans: ['Noto Sans KR', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'],
display: ['Outfit', 'sans-serif'],
},
boxShadow: {
'sm': '0 2px 8px rgba(14, 165, 233, 0.06)',
'md': '0 4px 20px rgba(14, 165, 233, 0.08)',
'lg': '0 8px 40px rgba(14, 165, 233, 0.12)',
'glow': '0 0 30px rgba(14, 165, 233, 0.25)',
'blue': '0 4px 20px rgba(59, 130, 246, 0.3)',
},
animation: {
'float': 'float 3s ease-in-out infinite',
'fade-slide-up': 'fadeSlideUp 0.5s ease forwards',
'slide-in': 'slideIn 0.5s ease forwards',
'bounce-in': 'bounceIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards',
'pulse-slow': 'pulse 2s ease-in-out infinite',
'pulse-glow': 'pulseGlow 4s ease-in-out infinite',
'spin': 'spin 2s linear infinite',
'node-pulse': 'nodePulse 1.5s ease-in-out infinite',
},
keyframes: {
float: {
'0%, 100%': { transform: 'translateY(0)' },
'50%': { transform: 'translateY(-10px)' },
},
fadeSlideUp: {
from: { opacity: '0', transform: 'translateY(20px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
slideIn: {
from: { opacity: '0', transform: 'translateY(30px)' },
to: { opacity: '1', transform: 'translateY(0)' },
},
bounceIn: {
'0%': { transform: 'scale(0)' },
'50%': { transform: 'scale(1.1)' },
'100%': { transform: 'scale(1)' },
},
pulse: {
'0%, 100%': { opacity: '0.5', transform: 'scale(1)' },
'50%': { opacity: '1', transform: 'scale(1.1)' },
},
pulseGlow: {
'0%, 100%': { transform: 'scale(1)', opacity: '0.5' },
'50%': { transform: 'scale(1.1)', opacity: '0.8' },
},
nodePulse: {
'0%, 100%': { transform: 'scale(1)', opacity: '0.6' },
'50%': { transform: 'scale(1.5)', opacity: '1' },
},
},
},
},
}
</script>
<style>
[data-theme="dark"] {
--bg-primary: #0a0e1a;
--bg-secondary: #111827;
--bg-card: #1e293b;
--bg-overlay: rgba(14, 165, 233, 0.12);
--text-primary: #f1f5f9;
--text-secondary: #94a3b8;
--text-muted: #64748b;
--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.4);
--shadow-md: 0 4px 20px rgba(0, 0, 0, 0.5);
--shadow-lg: 0 8px 40px rgba(0, 0, 0, 0.6);
--shadow-glow: 0 0 30px rgba(14, 165, 233, 0.3);
}
[data-theme="dark"] body { background: var(--bg-primary); color: var(--text-primary); }
[data-theme="dark"] .bg-primary { background: var(--bg-primary); }
[data-theme="dark"] .bg-secondary { background: var(--bg-secondary); }
[data-theme="dark"] .bg-card { background: var(--bg-card); }
[data-theme="dark"] .bg-overlay { background: var(--bg-overlay); }
[data-theme="dark"] .text-primary { color: var(--text-primary); }
[data-theme="dark"] .text-secondary { color: var(--text-secondary); }
[data-theme="dark"] .text-muted { color: var(--text-muted); }
[data-theme="dark"] .shadow-sm { box-shadow: var(--shadow-sm); }
[data-theme="dark"] .shadow-md { box-shadow: var(--shadow-md); }
[data-theme="dark"] .shadow-lg { box-shadow: var(--shadow-lg); }
[data-theme="dark"] .shadow-glow { box-shadow: var(--shadow-glow); }
[data-theme="dark"] .border-secondary { border-color: var(--bg-secondary); }
/* Neural network nodes animation delays */
.neural-node:nth-child(1) { animation-delay: 0s; }
.neural-node:nth-child(2) { animation-delay: 0.3s; }
.neural-node:nth-child(3) { animation-delay: 0.6s; }
.neural-node:nth-child(4) { animation-delay: 0.9s; }
.neural-node:nth-child(5) { animation-delay: 1.2s; }
/* Discovery card stagger animation */
.discovery-card:nth-child(1) { transition-delay: 0ms; }
.discovery-card:nth-child(2) { transition-delay: 100ms; }
.discovery-card:nth-child(3) { transition-delay: 200ms; }
.discovery-card:nth-child(4) { transition-delay: 300ms; }
/* Tag pill click feedback */
.tag-pill-feedback { transform: scale(0.95); }
/* Hint chip click feedback */
.hint-chip-feedback { background: var(--primary-dark); }
</style>
</head>
<body class="font-sans bg-surface-primary text-text-primary min-h-screen antialiased overflow-x-hidden">
<div class="max-w-[1200px] w-full mx-auto p-6">
<!-- Back Header -->
<div class="flex items-center gap-4 mb-8">
<a href="index.html" class="inline-flex items-center gap-2 text-text-secondary font-medium transition-colors duration-150 hover:text-primary hover:bg-accent/10 rounded-xl px-3 py-2">
<svg class="w-5 h-5"><use href="#icon-arrow-left"></use></svg>
<span>대시보드로</span>
</a>
</div>
<!-- Privacy Hero Banner -->
<div class="bg-gradient-to-br from-primary via-secondary to-primary-light rounded-[28px] p-12 mb-8 relative overflow-hidden shadow-lg">
<div class="absolute top-[-50%] right-[-20%] w-[400px] h-[400px] bg-[radial-gradient(circle,rgba(255,255,255,0.15),transparent_70%)] animate-pulse-glow"></div>
<div class="relative z-10 flex items-center gap-6">
<div class="w-20 h-20 bg-white/20 rounded-xl flex items-center justify-center backdrop-blur-sm">
<svg class="w-12 h-12 text-white"><use href="#icon-shield-check"></use></svg>
</div>
</div>
<div class="bg-surface-card rounded-xl p-6 mb-8 shadow-md flex items-center gap-6">
<div class="w-16 h-16 relative">
<div class="w-full h-full rounded-full border-4 border-surface-secondary relative">
<div class="absolute inset-[-4px] rounded-full border-4 border-transparent border-t-primary animate-spin"></div>
</div>
<div class="absolute inset-0 flex items-center justify-center">
<div class="w-3 h-3 bg-primary rounded-full absolute top-[10%] left-[50%] -translate-x-1/2 animate-node-pulse"></div>
<div class="w-3 h-3 bg-primary rounded-full absolute top-[50%] right-[10%] animate-node-pulse"></div>
<div class="w-3 h-3 bg-primary rounded-full absolute bottom-[10%] left-[50%] -translate-x-1/2 animate-node-pulse"></div>
<div class="w-3 h-3 bg-primary rounded-full absolute top-[50%] left-[10%] animate-node-pulse"></div>
<div class="w-3 h-3 bg-primary rounded-full absolute top-[50%] left-[50%] -translate-x-1/2 -translate-y-1/2 animate-node-pulse"></div>
</div>
</div>
<div class="flex-1">
<h3 class="text-[1.1rem] font-display font-semibold mb-1">신경망 분석 활성화</h3>
<p class="text-text-secondary text-[0.9rem]">12개 디렉토리에서 847개 파일 스캔 중</p>
</div>
<div class="relative w-[60px] h-[60px]">
<svg class="w-full h-full -rotate-[90deg]" viewBox="0 0 60 60">
<circle class="fill-none stroke-surface-secondary" cx="30" cy="30" r="25" stroke-width="6"/>
<circle class="progress-ring-fill fill-none stroke-accent rounded-full transition-all duration-[1.5s]" cx="30" cy="30" r="25" stroke-width="6" stroke-linecap="round" stroke-dasharray="157" stroke-dashoffset="157"/>
</svg>
<span class="absolute inset-0 flex items-center justify-center font-display font-bold text-accent text-[0.9rem]">87%</span>
</div>
</div>
<!-- AI Discoveries Section -->
<div class="mb-8">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<h2 class="text-[1.5rem] font-display font-semibold">AI 발견</h2>
<span class="bg-primary text-white text-xs font-semibold px-3 py-1 rounded-full">4개 신규</span>
</div>
</div>
<div class="grid grid-cols-2 gap-6">
<!-- Smart Clusters Card -->
<div class="discovery-card bg-surface-card rounded-xl p-6 shadow-md opacity-0 translate-y-5 transition-all duration-400">
<div class="flex items-center gap-4 mb-5">
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-primary to-primary-dark flex items-center justify-center">
<svg class="w-6 h-6 text-white"><use href="#icon-chart-bar"></use></svg>
</div>
<div>
<h3 class="text-[1.1rem] font-semibold mb-1">스마트 클러스터</h3>
<span class="text-text-muted text-[0.85rem]">3개 그룹 발견</span>
</div>
</div>
<div class="flex flex-col gap-3">
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl transition-transform duration-150 hover:translate-x-1">
<div class="w-3 h-10 rounded-sm bg-gradient-to-b from-primary to-primary-light"></div>
<div class="flex-1">
<h4 class="text-[0.95rem] font-semibold mb-1">금융 보고서</h4>
<p class="text-text-muted text-[0.8rem]">5개 파일 - 2024년 4분기 분석 문서</p>
</div>
<span class="bg-surface-card text-text-secondary text-xs font-semibold px-3 py-2 rounded-full">5 files</span>
</div>
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl transition-transform duration-150 hover:translate-x-1">
<div class="w-3 h-10 rounded-sm bg-gradient-to-b from-secondary to-secondary-light"></div>
<div class="flex-1">
<h4 class="text-[0.95rem] font-semibold mb-1">휴가 사진</h4>
<p class="text-text-muted text-[0.8rem]">12개 파일 - 2024년 여름 여행</p>
</div>
<span class="bg-surface-card text-text-secondary text-xs font-semibold px-3 py-2 rounded-full">12 files</span>
</div>
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl transition-transform duration-150 hover:translate-x-1">
<div class="w-3 h-10 rounded-sm bg-gradient-to-b from-accent to-[#6ee7b7]"></div>
<div class="flex-1">
<h4 class="text-[0.95rem] font-semibold mb-1">프로젝트 자산</h4>
<p class="text-text-muted text-[0.8rem]">8개 파일 - 디자인 리소스</p>
</div>
<span class="bg-surface-card text-text-secondary text-xs font-semibold px-3 py-2 rounded-full">8 files</span>
</div>
</div>
</div>
<!-- Duplicate Detection Card -->
<div class="discovery-card bg-surface-card rounded-xl p-6 shadow-md opacity-0 translate-y-5 transition-all duration-400">
<div class="flex items-center gap-4 mb-5">
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-secondary to-[#ec4899] flex items-center justify-center">
<svg class="w-6 h-6 text-white"><use href="#icon-cpu"></use></svg>
</div>
<div>
<h3 class="text-[1.1rem] font-semibold mb-1">중복 후보</h3>
<span class="text-text-muted text-[0.85rem]">2개 중복 가능성</span>
</div>
</div>
<div class="flex flex-col gap-4">
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl">
<div class="w-10 h-10 rounded-sm bg-gradient-to-br from-secondary-light to-secondary flex items-center justify-center">
<svg class="w-5 h-5 text-white"><use href="#icon-document"></use></svg>
</div>
<div class="flex-1">
<p class="font-medium text-[0.9rem] mb-1">report_final.pdf</p>
<span class="text-text-muted text-[0.8rem]">report_v2.pdf와 일치</span>
</div>
<span class="bg-gradient-to-r from-accent-warn to-[#f59e0b] text-white text-[0.8rem] font-bold px-3 py-2 rounded-full">94%</span>
</div>
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl">
<div class="w-10 h-10 rounded-sm bg-gradient-to-br from-secondary-light to-secondary flex items-center justify-center">
<svg class="w-5 h-5 text-white"><use href="#icon-document"></use></svg>
</div>
<div class="flex-1">
<p class="font-medium text-[0.9rem] mb-1">presentation.pptx</p>
<span class="text-text-muted text-[0.8rem]">presentation_backup.pptx와 일치</span>
</div>
<span class="bg-gradient-to-r from-accent-warn to-[#f59e0b] text-white text-[0.8rem] font-bold px-3 py-2 rounded-full">78%</span>
</div>
</div>
</div>
<!-- Auto Tags Card -->
<div class="discovery-card bg-surface-card rounded-xl p-6 shadow-md opacity-0 translate-y-5 transition-all duration-400">
<div class="flex items-center gap-4 mb-5">
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-accent to-[#059669] flex items-center justify-center">
<svg class="w-6 h-6 text-white"><use href="#icon-tag"></use></svg>
</div>
<div>
<h3 class="text-[1.1rem] font-semibold mb-1">자동 태그</h3>
<span class="text-text-muted text-[0.85rem]">15개 태그 생성됨</span>
</div>
</div>
<div class="flex flex-wrap gap-3">
<span class="tag-pill inline-flex items-center gap-2 px-4 py-3 bg-surface-secondary rounded-full text-[0.85rem] font-medium cursor-pointer transition-all duration-150 hover:scale-105 hover:shadow-sm">
<span class="w-2 h-2 rounded-full bg-accent-danger"></span>
높은 우선순위
</span>
<span class="tag-pill inline-flex items-center gap-2 px-4 py-3 bg-surface-secondary rounded-full text-[0.85rem] font-medium cursor-pointer transition-all duration-150 hover:scale-105 hover:shadow-sm">
<span class="w-2 h-2 rounded-full bg-primary"></span>
작업 관련
</span>
<span class="tag-pill inline-flex items-center gap-2 px-4 py-3 bg-surface-secondary rounded-full text-[0.85rem] font-medium cursor-pointer transition-all duration-150 hover:scale-105 hover:shadow-sm">
<span class="w-2 h-2 rounded-full bg-secondary"></span>
개인
</span>
<span class="tag-pill inline-flex items-center gap-2 px-4 py-3 bg-surface-secondary rounded-full text-[0.85rem] font-medium cursor-pointer transition-all duration-150 hover:scale-105 hover:shadow-sm">
<span class="w-2 h-2 rounded-full bg-text-muted"></span>
아카이브 대상
</span>
<span class="tag-pill inline-flex items-center gap-2 px-4 py-3 bg-surface-secondary rounded-full text-[0.85rem] font-medium cursor-pointer transition-all duration-150 hover:scale-105 hover:shadow-sm">
<span class="w-2 h-2 rounded-full bg-accent"></span>
빠른 접근
</span>
</div>
</div>
<!-- Predictive Actions Card -->
<div class="discovery-card bg-surface-card rounded-xl p-6 shadow-md opacity-0 translate-y-5 transition-all duration-400">
<div class="flex items-center gap-4 mb-5">
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-accent-warn to-[#f59e0b] flex items-center justify-center">
<svg class="w-6 h-6 text-white"><use href="#icon-clock"></use></svg>
</div>
<div>
<h3 class="text-[1.1rem] font-semibold mb-1">예측 작업</h3>
<span class="text-text-muted text-[0.85rem]">3개 예측</span>
</div>
</div>
<div class="flex flex-col gap-4">
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl">
<div class="w-11 h-11 rounded-xl bg-gradient-to-br from-primary to-primary-dark flex items-center justify-center">
<svg class="w-[22px] h-[22px] text-white"><use href="#icon-document"></use></svg>
</div>
<div class="flex-1">
<p class="font-medium text-[0.9rem] mb-1">곧 4분기 보고서가 필요할 것입니다</p>
<span class="text-text-muted text-[0.8rem]">월별 접근 패턴 기반</span>
</div>
<div class="flex items-center gap-2 px-3 py-2 bg-surface-card rounded-full text-[0.75rem] font-semibold">
<div class="w-10 h-1.5 bg-surface-secondary rounded-full overflow-hidden">
<div class="confidence-fill h-full rounded-full transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 92%; background: var(--accent);"></div>
</div>
92%
</div>
</div>
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl">
<div class="w-11 h-11 rounded-xl bg-gradient-to-br from-secondary to-[#ec4899] flex items-center justify-center">
<svg class="w-[22px] h-[22px] text-white"><use href="#icon-photo"></use></svg>
</div>
<div class="flex-1">
<p class="font-medium text-[0.9rem] mb-1">휴가 사진 아카이브</p>
<span class="text-text-muted text-[0.8rem]">28일 동안 접근 없음</span>
</div>
<div class="flex items-center gap-2 px-3 py-2 bg-surface-card rounded-full text-[0.75rem] font-semibold">
<div class="w-10 h-1.5 bg-surface-secondary rounded-full overflow-hidden">
<div class="confidence-fill h-full rounded-full transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 78%; background: var(--accent-warn);"></div>
</div>
78%
</div>
</div>
<div class="flex items-center gap-4 p-4 bg-surface-secondary rounded-xl">
<div class="w-11 h-11 rounded-xl bg-gradient-to-br from-accent to-[#059669] flex items-center justify-center">
<svg class="w-[22px] h-[22px] text-white"><use href="#icon-arrow-up"></use></svg>
</div>
<div class="flex-1">
<p class="font-medium text-[0.9rem] mb-1">프로젝트 자산 백업</p>
<span class="text-text-muted text-[0.8rem]">3일 전 수정됨</span>
</div>
<div class="flex items-center gap-2 px-3 py-2 bg-surface-card rounded-full text-[0.75rem] font-semibold">
<div class="w-10 h-1.5 bg-surface-secondary rounded-full overflow-hidden">
<div class="confidence-fill h-full rounded-full transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 85%; background: var(--accent);"></div>
</div>
85%
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Distribution Chart -->
<div class="mb-8">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<h2 class="text-[1.5rem] font-display font-semibold">파일 분포</h2>
</div>
</div>
<div class="bg-surface-card rounded-xl p-8 shadow-md">
<div class="grid grid-cols-[300px_1fr] gap-8 items-center max-lg:grid-cols-1">
<div class="relative w-[220px] h-[220px] mx-auto">
<svg class="w-full h-full -rotate-[90deg]" viewBox="0 0 100 100">
<circle class="pie-segment fill-none stroke-primary transition-all duration-1000" cx="50" cy="50" r="25" stroke-width="40" stroke-dasharray="0 314" style="--segment-dash: 98;"/>
<circle class="pie-segment fill-none stroke-secondary transition-all duration-1000" cx="50" cy="50" r="25" stroke-width="40" stroke-dasharray="0 314" style="--segment-dash: 78;"/>
<circle class="pie-segment fill-none stroke-accent transition-all duration-1000" cx="50" cy="50" r="25" stroke-width="40" stroke-dasharray="0 314" style="--segment-dash: 47;"/>
<circle class="pie-segment fill-none stroke-accent-warn transition-all duration-1000" cx="50" cy="50" r="25" stroke-width="40" stroke-dasharray="0 314" style="--segment-dash: 47;"/>
</svg>
<div class="absolute inset-10 bg-surface-card rounded-full flex flex-col items-center justify-center">
<span class="font-display text-2xl font-bold text-text-primary">847</span>
<small class="text-text-muted text-[0.8rem]">전체 파일</small>
</div>
</div>
<div class="flex flex-col gap-4">
<div class="flex items-center gap-4">
<span class="w-[100px] text-[0.9rem] font-medium">문서</span>
<div class="flex-1 h-8 bg-surface-secondary rounded-xl overflow-hidden relative">
<div class="pattern-bar-fill h-full rounded-xl transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 45%; background: linear-gradient(90deg, var(--primary), var(--primary-light));"></div>
</div>
<span class="w-[50px] text-right font-semibold text-[0.9rem] text-text-secondary">382</span>
</div>
<div class="flex items-center gap-4">
<span class="w-[100px] text-[0.9rem] font-medium">이미지</span>
<div class="flex-1 h-8 bg-surface-secondary rounded-xl overflow-hidden relative">
<div class="pattern-bar-fill h-full rounded-xl transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 35%; background: linear-gradient(90deg, var(--secondary), var(--secondary-light));"></div>
</div>
<span class="w-[50px] text-right font-semibold text-[0.9rem] text-text-secondary">296</span>
</div>
<div class="flex items-center gap-4">
<span class="w-[100px] text-[0.9rem] font-medium">동영상</span>
<div class="flex-1 h-8 bg-surface-secondary rounded-xl overflow-hidden relative">
<div class="pattern-bar-fill h-full rounded-xl transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 12%; background: linear-gradient(90deg, var(--accent), #6ee7b7);"></div>
</div>
<span class="w-[50px] text-right font-semibold text-[0.9rem] text-text-secondary">102</span>
</div>
<div class="flex items-center gap-4">
<span class="w-[100px] text-[0.9rem] font-medium">기타</span>
<div class="flex-1 h-8 bg-surface-secondary rounded-xl overflow-hidden relative">
<div class="pattern-bar-fill h-full rounded-xl transition-all duration-1000 animate-[width_1s_ease-out]" style="width: 8%; background: linear-gradient(90deg, var(--accent-warn), #fcd34d);"></div>
</div>
<span class="w-[50px] text-right font-semibold text-[0.9rem] text-text-secondary">67</span>
</div>
</div>
</div>
</div>
</div>
<!-- Semantic Search Hints -->
<div class="bg-surface-card rounded-xl p-6 shadow-md mb-8">
<h3 class="text-base font-display font-semibold mb-4 flex items-center gap-2">
<svg class="w-5 h-5 text-primary"><use href="#icon-magnifying-glass"></use></svg>
관련 검색
</h3>
<div class="flex flex-wrap gap-3">
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">2024년 4분기 금융 보고서</span>
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">프로젝트 타임라인</span>
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">2024년 휴가</span>
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">디자인 자산</span>
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">세금 문서</span>
<span class="hint-chip px-5 py-3 bg-surface-secondary rounded-full text-[0.85rem] text-text-secondary cursor-pointer transition-all duration-150 hover:bg-primary hover:text-white hover:scale-105">고객 프레젠테이션</span>
</div>
</div>
<!-- Generate Button -->
<div class="flex justify-center gap-4">
<button class="inline-flex items-center justify-center gap-2 px-8 py-4 bg-gradient-to-br from-primary to-primary-dark text-white rounded-full font-display font-semibold text-base shadow-blue hover:shadow-[0_6px_25px_rgba(59,130,246,0.4)] hover:-translate-y-0.5 active:translate-y-0 transition-all duration-250 min-h-[56px] min-w-[160px]">
<svg class="w-5 h-5"><use href="#icon-sparkles-alt"></use></svg>
새 인사이트 생성
</button>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
// Stagger reveal discovery cards
setTimeout(() => {
document.querySelectorAll('.discovery-card').forEach(card => {
card.classList.remove('opacity-0', 'translate-y-5');
card.classList.add('opacity-100', 'translate-y-0');
});
}, 300);
// Animate progress ring
setTimeout(() => {
document.querySelector('.progress-ring-fill').style.strokeDashoffset = '20';
}, 500);
// Animate confidence bars
setTimeout(() => {
document.querySelectorAll('.confidence-fill').forEach(bar => {
const width = bar.style.width;
bar.style.width = '0';
setTimeout(() => {
bar.style.width = width;
}, 50);
});
}, 800);
// Animate pie segments
setTimeout(() => {
document.querySelectorAll('.pie-segment').forEach(segment => {
const dash = getComputedStyle(segment).getPropertyValue('--segment-dash');
segment.style.strokeDasharray = dash + ' 314';
});
}, 600);
// Animate pattern bars
setTimeout(() => {
document.querySelectorAll('.pattern-bar-fill').forEach(bar => {
const width = bar.style.width;
bar.style.width = '0';
setTimeout(() => {
bar.style.width = width;
}, 50);
});
}, 700);
// Tag pill interaction
document.querySelectorAll('.tag-pill').forEach(tag => {
tag.addEventListener('click', () => {
tag.classList.add('tag-pill-feedback');
setTimeout(() => {
tag.classList.remove('tag-pill-feedback');
}, 150);
});
});
// Hint chip interaction
document.querySelectorAll('.hint-chip').forEach(chip => {
chip.addEventListener('click', () => {
chip.classList.add('hint-chip-feedback');
setTimeout(() => {
chip.classList.remove('hint-chip-feedback');
}, 300);
});
});
});
</script>
</body>
</html>