๐ŸŒณ The Ultimate Web Tech Tree (HTML โ†’ CSS + JS)

๐ŸŒณ 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:

โšก Comma (U+002C) lives here
๐Ÿ“„ HTML Document (Root) Parent
  • <!DOCTYPE html> Declaration
  • <html> Root Element
      <head> Metadata
      • <title> Document title
      • <meta> charset, viewport, description
      • <link> CSS, preload, icon
      • <style> Embedded CSS
      • <script> (blocking JS)
      <body> Content
      • 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
๐ŸŽจ CSS (Cascading Style Sheets) Child 1: Presentation
    ๐Ÿ“ฆ Stylesheet Collection of rules
      @-rules (At-rules) Conditional / Directive
      • @media Responsive breakpoints
      • @keyframes Animation sequences
      • @import External stylesheets
      • @font-face Custom web fonts
      • @supports Feature detection
      • @layer Cascade layers
      ๐Ÿ“Œ Ruleset Selector + Declaration Block
        ๐ŸŽฏ Selector Targets HTML
        • 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)
        { ... } Declaration Block Property: Value;
          ๐Ÿ“‹ Declarations Property โ†’ Value
          • Property color, margin, font-family, display, position, flex, grid
          • Value The assigned data
            • 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;
            • ๐ŸงŠ Box Model Content โ†’ Padding โ†’ Border โ†’ Margin
              • Content width / height
              • Padding inner space
              • Border style, width, color, radius
              • Margin outer space, collapsing
              ๐Ÿ“ Layout Modes Positioning
              • Flexbox row/column, wrap, justify, align
              • Grid rows/columns, areas, gaps
              • Position static, relative, absolute, fixed, sticky
              • Float & Clear legacy
โšก JavaScript (ECMAScript) Child 2: Behavior / Logic
    ๐Ÿ“œ Script / Program Sequence of instructions
      ๐Ÿง  Execution Context Global / Function / Eval
      • Variable Environment var / let / const
      • Lexical Environment scope chain + this
      • Closure function + outer lexical env
      ๐Ÿ“‹ Statements Executable instructions
      • 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;
      ๐Ÿงฎ Expressions Produce values
      • Primary this, literals, ( )
      • Arithmetic + - * / % **
      • Logical && || ! ?? (nullish)
      • Relational < > <= >= instanceof in
      • Equality == === != !==
      • Assignment = += -= *= /=
      • Ternary condition ? expr1 : expr2
      ๐Ÿ—๏ธ Objects & Functions Core building blocks
        ๐Ÿ“ฆ Objects Key-value pairs
        • 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
        โš™๏ธ Functions Callable objects
        • Declaration function foo() { }
        • Arrow () => { }
        • Method object.method() { }
        • Generator function* () { yield }
        • Async / Await async function() { await }
        • ๐Ÿ“ฅ Parameters Function inputs
          • Default (x = 10)
          • Rest (...args)
          • Destructuring ({ a, b }) or ([x, y])
        ๐Ÿ›๏ธ Classes Syntactic sugar over prototypes
        • Constructor constructor() { }
        • Methods instance methods, static methods
        • Private fields #privateField
        • Inheritance extends + super()
      ๐Ÿ”„ Event Loop & Concurrency Non-blocking I/O
      • 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
      ๐Ÿ”ค Lexical Tokens (Scanner/Parser) The absolute bottom
      • 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`, [ ], { }
      • ๐Ÿ”— Punctuators (Operators & Delimiters) Syntax structure
        • Operators = + - * / && || ! === ?. ...
        • Delimiters ( ) { } [ ] ; : . ?
        • โบ๏ธ , (Comma) โ€” U+002C The Ultimate Leaf
          • 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
๐Ÿงฌ 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.
HTML + CSS + JavaScript โ†’ all parsed down to , (comma)