HTML Basics Skill
Core HTML5 elements and document structure patterns for production web development.
π― Purpose
Provide atomic, single-responsibility operations for:
- Document structure creation (
<!DOCTYPE>,<html>,<head>,<body>) - Text content elements (
<p>,<h1>-<h6>,<blockquote>) - Grouping content (
<div>,<main>,<section>) - Embedded content (
<img>,<iframe>,<video>) - Metadata elements (
<meta>,<link>,<title>)
π₯ Input Schema
interface HtmlBasicsInput {
operation: 'create' | 'validate' | 'convert' | 'explain';
element_type: ElementCategory;
content?: string;
attributes?: Record<string, string>;
options?: {
doctype?: 'html5' | 'xhtml';
lang?: string; // Default: 'en'
charset?: string; // Default: 'UTF-8'
};
}
type ElementCategory =
| 'document' // html, head, body, doctype
| 'text' // p, h1-h6, span, strong, em
| 'grouping' // div, main, section, article
| 'embedded' // img, video, audio, iframe
| 'interactive' // a, button, details
| 'metadata'; // meta, link, title, base
π€ Output Schema
interface HtmlBasicsOutput {
success: boolean;
markup: string;
validation: {
valid: boolean;
errors: string[];
warnings: string[];
};
metadata?: {
element_count: number;
nesting_depth: number;
has_required_attrs: boolean;
};
}
π οΈ Core Operations
1. Document Structure
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page Title</title>
</head>
<body>
<!-- Content here -->
</body>
</html>
Required Elements Checklist:
- [ ]
<!DOCTYPE html>declaration - [ ]
<html lang="...">with language attribute - [ ]
<meta charset="UTF-8"> - [ ]
<meta name="viewport">for responsive design - [ ]
<title>element (60 chars max for SEO)
2. Text Content Elements
| Element | Purpose | Example |
|---------|---------|---------|
| <h1>-<h6> | Headings (one h1 per page) | <h1>Main Title</h1> |
| <p> | Paragraph text | <p>Content...</p> |
| <strong> | Strong importance | <strong>Important</strong> |
| <em> | Stress emphasis | <em>emphasized</em> |
| <mark> | Highlighted text | <mark>highlighted</mark> |
| <blockquote> | Extended quotation | <blockquote cite="..."> |
| <code> | Code snippet | <code>console.log()</code> |
| <pre> | Preformatted text | <pre> formatted </pre> |
3. Grouping Elements
| Element | Purpose | When to Use |
|---------|---------|-------------|
| <div> | Generic container | No semantic meaning needed |
| <main> | Primary content | Once per page, unique content |
| <section> | Thematic grouping | With heading, related content |
| <article> | Self-contained | Blog post, news article |
| <aside> | Tangential content | Sidebars, callouts |
4. Embedded Content
<!-- Image with required attributes -->
<img src="photo.jpg" alt="Description" width="800" height="600" loading="lazy">
<!-- Responsive image -->
<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="Description">
</picture>
<!-- Video with fallback -->
<video controls width="640" height="360">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
<p>Your browser doesn't support video.</p>
</video>
β οΈ Error Handling
Validation Errors
| Error Code | Description | Auto-Fix |
|------------|-------------|----------|
| HB001 | Missing DOCTYPE | Add <!DOCTYPE html> |
| HB002 | Missing lang attribute | Add lang="en" |
| HB003 | Missing charset | Add <meta charset="UTF-8"> |
| HB004 | Missing alt on img | Prompt for alt text |
| HB005 | Empty heading | Flag for content |
| HB006 | Invalid nesting | Restructure elements |
Recovery Procedures
Error Detected β Log Issue β Attempt Auto-Fix β Validate β Report
β
[If unfixable]
β
Return error with suggestion
π Troubleshooting
Problem: Page not rendering correctly
Debug Checklist:
β‘ DOCTYPE present and first line?
β‘ HTML tag has lang attribute?
β‘ Head contains charset meta?
β‘ All tags properly closed?
β‘ No duplicate IDs?
β‘ Valid nesting structure?
Problem: Images not loading
Debug Checklist:
β‘ File path correct (relative/absolute)?
β‘ File exists at location?
β‘ Correct file extension?
β‘ Server MIME types configured?
β‘ Alt attribute present?
Problem: Content not accessible
Debug Checklist:
β‘ Heading hierarchy correct?
β‘ Landmarks present (main, nav)?
β‘ Images have alt text?
β‘ Links have descriptive text?
β‘ Language attribute set?
π Quality Metrics
| Metric | Target | Tool | |--------|--------|------| | Valid HTML | 0 errors | W3C Validator | | Nesting depth | β€6 levels | html-validate | | Required attrs | 100% | Custom linter | | Semantic ratio | >70% | Manual audit |
π Usage Examples
# Create document structure
skill: html-basics
operation: create
element_type: document
options:
lang: "en"
charset: "UTF-8"
# Validate existing markup
skill: html-basics
operation: validate
content: "<div><p>Test</div></p>" # Will catch nesting error
# Convert to JSX
skill: html-basics
operation: convert
element_type: text
content: "<p class='intro'>Hello</p>"
output_format: jsx # Returns: <p className="intro">Hello</p>