๐ณ Web Tech Tree HTML โ CSS / JavaScript (down to the comma)
HTML (Structure)
CSS (Style)
JavaScript (Behavior)
โถ Click triangles to expand branches
๐งฉ <foreignObject> in SVG can embed HTML directly inside vector graphics โ hereโs a live node:
๐ HTML Document (Root) Parent
- <!DOCTYPE html> Declaration
- <title> Document title
- <meta> charset, viewport, description
- <link> CSS, preload, icon
- <style> Embedded CSS
- <script> (blocking JS)
- Block elements div, p, h1, section, article, nav
- Inline elements span, a, em, strong, img, input
- Void elements img, input, br, hr, meta
- Global Attributes id, class, style, data-*, role, aria-*
- Event Handlers (inline) onclick, onload, onchange
<html> Root Element
<head> Metadata
<body> Content
๐จ CSS (Cascading Style Sheets) Child 1: Presentation
- @media Responsive breakpoints
- @keyframes Animation sequences
- @import External stylesheets
- @font-face Custom web fonts
- @supports Feature detection
- @layer Cascade layers
- Simple type, class, id, attribute
- Compound e.g. div.class#id
- Complex combinators: > + ~ (space)
- Relative :has()
- Pseudo-classes :hover, :focus, :nth-child(), :first-of-type, :not()
- Pseudo-elements ::before, ::after, ::first-line, ::first-letter, ::selection
- Specificity (0,0,1) vs (0,1,0) vs (1,0,0)
- Property color, margin, font-family, display, position, flex, grid
- Keywords auto, inherit, initial, unset, revert
- Lengths px, em, rem, vh, vw, ch
- Percentages 50%, 100%
- Colors hex, rgb(), hsl(), named
- Functions calc(), clamp(), min(), max(), var(--custom)
- Shorthands margin: 1px 2px 3px 4px; background: url() no-repeat center;
- Content width / height
- Padding inner space
- Border style, width, color, radius
- Margin outer space, collapsing
- Flexbox row/column, wrap, justify, align
- Grid rows/columns, areas, gaps
- Position static, relative, absolute, fixed, sticky
- Float & Clear legacy
๐ฆ Stylesheet Collection of rules
@-rules (At-rules) Conditional / Directive
๐ Ruleset Selector + Declaration Block
๐ฏ Selector Targets HTML
{ ... } Declaration Block Property: Value;
๐ Declarations Property โ Value
Value The assigned data
๐ง Box Model Content โ Padding โ Border โ Margin
๐ Layout Modes Positioning
โก JavaScript (ECMAScript) Child 2: Behavior / Logic
- Variable Environment var / let / const
- Lexical Environment scope chain + this
- Closure function + outer lexical env
- Declaration var, let, const, function, class, import
- Assignment x = 5; obj.key = value;
- Conditional if, else if, else, switch
- Loops for, while, do...while, for...in, for...of
- Return return value;
- Try / Catch / Finally error handling
- Debugger debugger;
- Primary this, literals, ( )
- Arithmetic + - * / % **
- Logical && || ! ?? (nullish)
- Relational < > <= >= instanceof in
- Equality == === != !==
- Assignment = += -= *= /=
- Ternary condition ? expr1 : expr2
- Built-in Array, Date, Math, RegExp, Map, Set, Promise
- User-defined literal { }, new Object(), Object.create()
- Prototype Chain __proto__, Object.getPrototypeOf()
- Property descriptors writable, enumerable, configurable, get/set
- Declaration function foo() { }
- Arrow () => { }
- Method object.method() { }
- Generator function* () { yield }
- Async / Await async function() { await }
- Default (x = 10)
- Rest (...args)
- Destructuring ({ a, b }) or ([x, y])
- Constructor constructor() { }
- Methods instance methods, static methods
- Private fields #privateField
- Inheritance extends + super()
- Call Stack LIFO execution
- Web APIs DOM, setTimeout, fetch, events
- Task Queue (Macrotasks) setTimeout, setInterval, I/O
- Microtask Queue Promise.then, queueMicrotask, MutationObserver
- Rendering steps requestAnimationFrame, layout, paint
- Whitespace spaces, tabs, line terminators
- Comments // or /* */
- Identifiers variable / function / class names
- Keywords if, for, return, function, class, async, await, let, const
- Literals null, undefined, true, false, 123, "string", `template`, [ ], { }
- Operators = + - * / && || ! === ?. ...
- Delimiters ( ) { } [ ] ; : . ?
- Parameter / Argument lists function(a, b, c) { }
- Array elements [1, 2, 3]
- Object properties {x: 1, y: 2}
- Variable declarations let a = 1, b = 2;
- Comma Operator (1, 2, 3) โ returns 3
- Import / Export lists import { foo, bar } from 'mod';
- โ Also in CSS: grouped selectors, font stacks, shorthand values
- ; Statement terminator (ASI)
- : Ternary, property labels, switch case
- { } Blocks, object literals, class bodies
๐ Script / Program Sequence of instructions
๐ง Execution Context Global / Function / Eval
๐ Statements Executable instructions
๐งฎ Expressions Produce values
๐๏ธ Objects & Functions Core building blocks
๐ฆ Objects Key-value pairs
โ๏ธ Functions Callable objects
๐ฅ Parameters Function inputs
๐๏ธ Classes Syntactic sugar over prototypes
๐ Event Loop & Concurrency Non-blocking I/O
๐ค Lexical Tokens (Scanner/Parser) The absolute bottom
๐ Punctuators (Operators & Delimiters) Syntax structure
โบ๏ธ , (Comma) โ U+002C The Ultimate Leaf
๐งฌ How they connect: The HTML <style> tag imports CSS, and the <script> tag imports JavaScript.
The CSS Cascade and JavaScript DOM API (e.g.,
document.querySelector()) bridge the children back to the parent.
At the very bottom of both languages, the , (comma)
acts as the fundamental "separator" token that enables lists, arguments, and sequences.