Get Shadcn UI Kit -
Playground
Run
Auto
HTML
<div class="app"> <div class="card"> <div class="header"> <div class="avatar">TC</div> <div> <div class="name">Taylor Chen</div> <div class="role">Product Designer</div> </div> <button class="follow-btn" id="followBtn">Follow</button> </div> <p class="bio"> Passionate about creating intuitive user experiences. Open to new opportunities. </p> <div class="stats"> <div class="stat"> <span class="count">248</span> <span class="label">Posts</span> </div> <div class="stat"> <span class="count">12.4k</span> <span class="label">Followers</span> </div> <div class="stat"> <span class="count">891</span> <span class="label">Following</span> </div> </div> </div> </div>
CSS
* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: system-ui, -apple-system, sans-serif; min-height: 100vh; display: flex; align-items: center; justify-content: center; background: #f0f2f5; padding: 1rem; } .card { background: white; border-radius: 16px; padding: 24px; width: 320px; box-shadow: 0 1px 3px rgba(0,0,0,.1), 0 8px 24px rgba(0,0,0,.06); } .header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; } .avatar { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, #667eea, #764ba2); color: white; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; flex-shrink: 0; } .name { font-weight: 600; font-size: 15px; color: #111; } .role { font-size: 13px; color: #888; margin-top: 2px; } .follow-btn { margin-left: auto; background: #6366f1; color: white; border: none; padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; flex-shrink: 0; } .follow-btn:hover { background: #4f46e5; transform: translateY(-1px); } .follow-btn.following { background: #f1f5f9; color: #64748b; transform: none; } .bio { font-size: 14px; color: #555; line-height: 1.5; margin-bottom: 20px; } .stats { display: flex; border-top: 1px solid #f1f5f9; padding-top: 16px; } .stat { flex: 1; text-align: center; } .count { display: block; font-size: 18px; font-weight: 700; color: #111; } .label { font-size: 12px; color: #888; margin-top: 2px; }
JavaScript
const btn = document.getElementById('followBtn'); let following = false; btn.addEventListener('click', () => { following = !following; if (following) { btn.textContent = 'Following ✓'; btn.classList.add('following'); } else { btn.textContent = 'Follow'; btn.classList.remove('following'); } });
Result