{
  "title": "Dự án 4: Máy Tính Đổi Màu Nền",
  "subtitle": "Học và rèn luyện kỹ năng Bài 15 môn Web",
  "description": [
    {
      "text": "Chào mừng các em học sinh lớp 4! Trong dự án 4 này, chúng ta sẽ lập trình ứng dụng 'Máy Tính Đổi Màu Nền'.",
      "bold": false
    },
    {
      "text": " Em sẽ thực hành và sử dụng các kiến thức đã học ở Bài 15 kết hợp với các kiến thức từ các bài trước để xây dựng giao diện tương tác sinh động.",
      "bold": false
    }
  ],
  "knowledge_title": "Kiến thức trọng tâm",
  "knowledge_tags": [
    "Bài học chính: Bài 15",
    "Ngôn ngữ: HTML, CSS, JavaScript",
    "Hàm số: function",
    "Thẻ chứa script",
    "CSS: Box Model nâng cao"
  ],
  "steps_title": "Các bước thực hiện chi tiết",
  "steps": [
    {
      "title": "Bước 1: Khởi tạo thư mục dự án",
      "body": "- Trên ổ đĩa Z, tạo thư mục dự án của em: hocsinh01/{tên của em}/bai15-4.\n- Tạo file: index.html, style.css, và tạo một thư mục con tên là assets để chứa các tệp tài nguyên hình ảnh, âm thanh."
    },
    {
      "title": "Bước 2: Xây dựng khung HTML chính",
      "body": "- Trong thẻ <head>, khai báo thẻ đường dẫn cơ sở: <base href=\"./assets/\"> và kết nối file CSS ngoài bằng đường dẫn tương đối lùi cấp: <link rel=\"stylesheet\" href=\"../style.css\">.\n- Tạo một thẻ div lớp 'container' bao bọc toàn bộ nội dung.\n- Thêm thẻ tiêu đề chính <h1> với nội dung 'MÁY TÍNH ĐỔI MÀU NỀN 🎵'.\n- Tạo nút bấm <button class=\"btn-nhac\"> với nội dung 'Màu Cam 🍊' và sự kiện click chuột onclick gọi tương tác.\n- Tạo nút bấm <button class=\"btn-nhac\"> với nội dung 'Màu Hồng 🌸' và sự kiện click chuột onclick gọi tương tác.\n- Tạo nút bấm <button class=\"btn-nhac\"> với nội dung 'Màu Xanh 🍀' và sự kiện click chuột onclick gọi tương tác."
    },
    {
      "title": "Bước 3: Lập trình tương tác JavaScript",
      "body": "- Tự viết mã JavaScript trong thẻ <script> đặt ở cuối body (học sinh tự xây dựng, không có code mẫu):\n  + Tự định nghĩa các hàm xử lý tương ứng cho từng nút bấm (ví dụ: hàm cho nút Màu Cam, Màu Hồng, Màu Xanh).\n  + Bên trong mỗi hàm: Tìm thẻ thông báo bằng document.getElementById('loa-phat') để cập nhật câu chào thích hợp bằng thuộc tính .innerHTML.\n  + Đổi màu nền trang web tương ứng theo chủ đề màu sắc bằng câu lệnh document.body.style.backgroundColor (ví dụ: '#ffeaa7', '#fab1a0'...). Thêm thẻ <div id=\"loa-phat\"> trong HTML để hiển thị lời chào.\n  + Gắn tên các hàm vừa tạo vào thuộc tính onclick của từng nút bấm trong HTML."
    },
    {
      "title": "Bước 4: Định dạng CSS cho đẹp mắt",
      "body": "- Mở file style.css để thiết lập màu nền cho body là '#718093'.\n- Định dạng lớp '.container': chiều rộng tối đa '600px', viền '3px solid #2f3542' và đổ bóng đẹp mắt.\n- Thiết lập cursor: pointer cho tất cả phần tử tương tác click chuột được."
    },
    {
      "title": "Bước 5: Sáng tạo thêm",
      "body": "- Hãy thêm ít nhất 5 nút bấm nhạc cụ hoặc tiếng kêu con vật khác trong assets và định nghĩa 5 hàm JS tương ứng để phát nhạc/tiếng kêu hoặc thay đổi giao diện.\n- Định dạng màu sắc và hình nền mang đậm phong cách cá nhân độc đáo của riêng em để hoàn thành bài tập."
    }
  ],
  "code_samples_title": "Gợi ý Code mẫu",
  "code_samples_desc": "Đây là bài tập nâng cao thử thách tư duy, học sinh hãy tự suy nghĩ và tự viết toàn bộ code HTML/CSS/JavaScript (không có code mẫu có sẵn).",
  "code_samples": [
    {
      "title": "HTML Gợi ý",
      "type": "html",
      "code": "<!-- Giao diện dự án Máy Tính Đổi Màu Nền -->\n<base href=\"/* base href assets */\">\n<link rel=\"stylesheet\" href=\"/* đường dẫn lùi cấp ra style.css */\">\n<div class=\"container\">\n  <h1>MÁY TÍNH ĐỔI MÀU NỀN 🎵</h1>\n  <button class=\"btn-nhac\" onclick=\"/* JS code của em */\">Màu Cam 🍊</button>\n  <button class=\"btn-nhac\" onclick=\"/* JS code của em */\">Màu Hồng 🌸</button>\n</div>"
    },
    {
      "title": "CSS Gợi ý",
      "type": "css",
      "code": "/* CSS Cơ bản cho dự án */\nbody {\n  background-color: /* màu nền: #718093 */;\n}\n.container {\n  max-width: /* độ rộng container: 600px */;\n  border: /* viền: 3px solid #2f3542 */;\n  /* bo góc, đổ bóng container */\n}\n.nut-bam, .btn, .btn-nhac, .btn-mo, .btn-dong, .btn-tinh, .btn-them, .btn-play, .btn-pause, .btn-check, .btn-kick, .btn-go {\n  /* màu nền nút bấm */\n  /* con trỏ chuột: bàn tay chỉ */\n}"
    }
  ],
  "tip": {
    "title": "💡 Mẹo nhỏ:",
    "desc": "Gom nhóm các câu lệnh JS vào hàm (function) giúp code HTML của em gọn gàng hơn vì không cần viết các câu lệnh dài trực tiếp vào thuộc tính onclick nữa."
  }
}