***QML*** is a **declarative UI language** - describe what the UI should look like and how pieces relate, not *how* to draw it step by step.
# Core Building Blocks
1. **Items** - every visual thing on the screen is an **Item**. Items nest inside each other like HTML elements, i.e. `Rectable`, `Text`, `Image`, `MouseAre`
2. **Properties** - *BINDINGS*, not assigments, i.e. `width: parent.width / 2` = with stays half of the parent's width forever, automatically recalculating. This is like a reactive spreadsheet, not imperative assignment
3. **Signals & Handlers** - things like `onClicked: { ... }` - QML's version of event listeners
4. **JavaScript Glue** - you can drop actual JS inline for logic, so it's not pure declarative-only; it's declarative UI + imperative logic when needed (`function`, `var`, loops, etc.).
5. **Components** - Reusable custom "widgets" you define once, instantiated many times