diff --git a/static/img/tutorials/html/browser-developer-tools.png b/static/img/tutorials/html/browser-developer-tools.png
new file mode 100644
index 000000000..033988b46
Binary files /dev/null and b/static/img/tutorials/html/browser-developer-tools.png differ
diff --git a/static/img/tutorials/html/create-your-first-html-page.png b/static/img/tutorials/html/create-your-first-html-page.png
new file mode 100644
index 000000000..1cac1539d
Binary files /dev/null and b/static/img/tutorials/html/create-your-first-html-page.png differ
diff --git a/static/img/tutorials/html/elements.png b/static/img/tutorials/html/elements.png
new file mode 100644
index 000000000..bd4002d49
Binary files /dev/null and b/static/img/tutorials/html/elements.png differ
diff --git a/static/img/tutorials/html/getting-started.png b/static/img/tutorials/html/getting-started.png
new file mode 100644
index 000000000..077733174
Binary files /dev/null and b/static/img/tutorials/html/getting-started.png differ
diff --git a/static/img/tutorials/html/how-the-web-works.png b/static/img/tutorials/html/how-the-web-works.png
new file mode 100644
index 000000000..33b27b81a
Binary files /dev/null and b/static/img/tutorials/html/how-the-web-works.png differ
diff --git a/static/img/tutorials/html/html-document-structure.png b/static/img/tutorials/html/html-document-structure.png
new file mode 100644
index 000000000..91f67fbd1
Binary files /dev/null and b/static/img/tutorials/html/html-document-structure.png differ
diff --git a/static/img/tutorials/html/html-syntax.png b/static/img/tutorials/html/html-syntax.png
new file mode 100644
index 000000000..f8d0a9360
Binary files /dev/null and b/static/img/tutorials/html/html-syntax.png differ
diff --git a/static/img/tutorials/html/html-vs-html5.png b/static/img/tutorials/html/html-vs-html5.png
new file mode 100644
index 000000000..673db17f1
Binary files /dev/null and b/static/img/tutorials/html/html-vs-html5.png differ
diff --git a/static/img/tutorials/html/tags.png b/static/img/tutorials/html/tags.png
new file mode 100644
index 000000000..8615dbb91
Binary files /dev/null and b/static/img/tutorials/html/tags.png differ
diff --git a/tutorials/html/02-html-syntax/attributes.mdx b/tutorials/html/02-html-syntax/attributes.mdx
index 7ccb507b8..32ff9dd3a 100644
--- a/tutorials/html/02-html-syntax/attributes.mdx
+++ b/tutorials/html/02-html-syntax/attributes.mdx
@@ -1,15 +1,423 @@
---
id: attributes
-title: "HTML Attributes: Name-Value Pairs and Boolean Attributes"
+title: "HTML Attributes"
sidebar_label: "Attributes"
sidebar_position: 4
slug: /html/html-syntax/attributes
-description: "Master HTML attributes, syntax conventions, quoted vs unquoted values, boolean flags, and custom data attributes."
+description: "Learn how HTML attributes work: syntax and quoting rules, required vs optional attributes, boolean attributes, data-* attributes, and common mistakes. A clear, example-driven guide for beginners."
keywords:
- HTML attributes
- - boolean attributes
- - data attributes
- - attribute value syntax
+ - what are HTML attributes
+ - HTML attribute syntax
+ - boolean attributes HTML
+ - data attributes HTML
+ - HTML href src alt
+ - HTML quoting rules
+ - required HTML attributes
+ - custom data attributes
+ - learn HTML attributes
- CodeHarborHub HTML
-tags: [html, attributes, syntax, frontend]
----
\ No newline at end of file
+tags: [html, web-development, beginner, syntax, attributes]
+image: /img/tutorials/html/attributes.png
+last_update:
+ author: CodeHarborHub
+---
+
+Tags tell the browser *what* something is. **Attributes** tell the browser *more details* about it. An `` tag says "there's an image here," but it's the attributes that say *which* image file, *how big*, and *what to describe it as* if it fails to load.
+
+If elements are the nouns of HTML, **attributes are the adjectives**. They add detail, behavior, and meaning to the tags you already know.
+
+:::info Quick definition
+An **attribute** is extra information added inside an element's **start tag**, always written as a **name**, usually followed by an **equals sign** and a **value** in quotes.
+:::
+
+
+
+## Anatomy of an Attribute
+
+```html
+Visit CodeHarborHub
+```
+
+```mermaid
+flowchart LR
+ A["href"] --> B["="]
+ B --> C["https#58;//codeharborhub.github.io"]
+ A -.- D(["Attribute name"])
+ C -.- E(["Attribute value, in quotes"])
+```
+
+| Part | Example | Meaning |
+|------|---------|---------|
+| **Name** | `href` | What kind of information this is. |
+| **Equals sign** | `=` | Connects the name to its value. |
+| **Value** | `"https://codeharborhub.github.io"` | The actual information, wrapped in quotes. |
+
+An element's start tag can carry **as many attributes as it needs**, separated by spaces:
+
+```html
+
+```
+
+:::tip Where do attributes go?
+Attributes only ever appear in the **start tag**. A closing tag, like `` or `
+Click here
+```
+
+Without `src`, an `
+```
+
+Here, `width` and `loading` are helpful, but the image would still display without them.
+
+### 3. Boolean attributes
+
+These are special: their **mere presence** turns a feature on. They don't need a value at all, and writing them any of these ways means the same thing:
+
++ Welcome! +
+ +``` + +
+
+```
+
+