Lộ trình cá nhânClaude Design & Generative UI: Thiết kế Giao diện Web, App & Prototype Tương tác bằng AI
5/7

Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.

Bài 0535phút ước tínhCơ bản đến Thực chiến

5. Thiết Kế Form, Modal & Micro-Interactions: Trải Nghiệm Người Dùng Tinh Tế

Tạo ra các chi tiết thiết kế gây ấn tượng: Modal Popups có hiệu ứng mờ hậu cảnh (Backdrop Blur), Toast Notification nổi và form xác thực thời gian thực.

✨ 3 Thành Phần Tương Tác Quan Trọng

  1. Modal Dialog: Cửa sổ bật lên với phím tắt ESC để đóng và khóa cuộn trang nền.
  2. Toast Notifications: Hộp thông báo nổi ở góc màn hình tự động biến mất sau 3 giây (Thành công, Lỗi, Đang xử lý).
  3. Form Validation Feedback: Viền đổi màu xanh/đỏ và hiển thị gợi ý lỗi tức thì khi người dùng gõ sai định dạng email hoặc mật khẩu yếu.
example.py
// InteractiveModal.tsx
import { useState } from 'react';
import { X, CheckCircle2 } from 'lucide-react';

export function QuickConfirmModal({ isOpen, onClose, onConfirm }: any) {
  if (!isOpen) return null;

  return (
    <div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-slate-950/60 backdrop-blur-sm animate-fade-in">
      <div className="bg-slate-900 border border-slate-800 rounded-2xl p-6 max-w-md w-full shadow-2xl animate-scale-up">
        <div className="flex justify-between items-center mb-4">
          <div className="flex items-center gap-2 text-indigo-400 font-bold">
            <CheckCircle2 className="w-5 h-5" /> <span>Xác nhận hành động</span>
          </div>
          <button onClick={onClose} className="p-1 text-slate-400 hover:text-white rounded-lg">
            <X className="w-5 h-5" />
          </button>
        </div>
        <p className="text-slate-300 text-sm mb-6">
          Bạn  chắc chắn muốn xuất bản hệ thống này lên môi trường Production không?
        </p>
        <div className="flex justify-end gap-3">
          <button onClick={onClose} className="px-4 py-2 rounded-xl text-slate-300 hover:bg-slate-800 text-sm font-semibold">
            Hủy bỏ
          </button>
          <button onClick={onConfirm} className="px-5 py-2 rounded-xl bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-bold shadow-lg shadow-indigo-600/30">
            Xác nhận ngay
          </button>
        </div>
      </div>
    </div>
  );
}
Thực hành

Thực hành và tự đánh giá

Xây dựng một Form đặt lịch hẹn tư vấn có Modal xác nhận và hiệu ứng Toast thành công trong Claude Artifacts.

⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại. Giáo trình mở →

Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.