diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7de0cd5..483bf64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,12 @@ Plain text now comes last in the snippet format order, so pasted DAX, SQL, or KQ
as code. A bare word or a number still pastes as a note. An order you chose in
Preferences is kept; a language added by an update joins it in front of Plain text.
+### A snippet's width is its line width
+Drag a text container's right edge, or hold **Shift** on its corner handle, to change its
+width in columns; the handle shows the count, and a plain drag of the corner still scales.
+**F6** wraps DAX to that width. A new container is 65 columns wide, where the DAX
+formatter wraps.
+
## 1.3.0 - 3 September 2026
### Export a board to PowerPoint
diff --git a/README.md b/README.md
index 702570f..a0c4a47 100644
--- a/README.md
+++ b/README.md
@@ -199,7 +199,8 @@ Use **Copy settings** after finding a useful combination so the exact values can
| F2 | Edit the selected text container, or rename the selected frame |
| View > Frame | Add a frame the size of the screen: a slide drawn on the board, selected by its edge or its tab, which Export takes as it is |
| Language chip | Choose Plain text, DAX, or SQL Server on a selected text container |
-| F6 | Format DAX, SQL, or KQL on the selected text container. In F2, formats in place |
+| F6 | Format DAX, SQL, or KQL on the selected text container; DAX wraps to the container's columns. In F2, formats in place |
+| Drag right edge, or Shift + drag handle | Change a text container's width in columns and reflow it; the handle shows the count. A plain drag of the corner scales it |
| Ctrl+Enter | Commit the F2 edit, including an F6 format done in that session, and return to display mode |
| Escape | Cancel the active text edit, close the command strip, or leave full screen or canvas only |
| Ctrl+S / Ctrl+O | Save / open a board |
diff --git a/docs/decisions.md b/docs/decisions.md
index 819448d..9a55e3f 100644
--- a/docs/decisions.md
+++ b/docs/decisions.md
@@ -684,6 +684,37 @@ Two things were changed together, and the second is what makes the first safe:
---
+## 29. A text container's width in columns is the line width of its snippet
+
+**Implemented.**
+
+The DAX formatter wraps to a maximum line length; the SQL and KQL formatters break by
+structure and have no width at all. A "line width" setting shared by the three languages
+was therefore not added: it would be honoured by one of them. What every snippet already
+has is a width, and a text container wraps its lines at that width on screen, so the
+container's width in columns is the line width the reader sees. Two things were changed
+to make it the line width the formatter uses too:
+
+- **F6 formats DAX to the columns the container shows.** Columns are invariant under the
+ display-mode scaling, so this works whether or not the container has been enlarged for
+ the room. A new container is 65 columns wide, which is also the formatter's default, so
+ a pasted and formatted snippet has no visual wraps; before, the default width showed
+ about 58 columns and formatted DAX wrapped on screen at once.
+- **Shift while dragging the handle changes the width in columns** and reflows the text,
+ keeping the font size; the handle shows the count while dragging. A plain drag keeps
+ scaling the container like a picture. Replacing scaling with reflow was considered and
+ rejected: making a snippet bigger for the room is the resize a presenter needs, it is
+ what every other container does with the same gesture, and reflowing on a drag would
+ change line breaks while someone is only making space. Shift already means "constrain"
+ for strokes, so it reads as the narrower version of the gesture. The right edge of a text
+ container is the same width handle without the modifier: the cursor says so on hover,
+ which is what makes it discoverable, and the corner stays the scale handle.
+
+Structural switches for SQL and KQL, one column per line or one pipe per line, are the
+levers those languages have, and can come as yes-or-no settings when someone asks.
+
+---
+
## Open questions
- arm64 is not built; add it if Surface devices matter for a pen application.
diff --git a/site/guide.html b/site/guide.html
index 8820225..ef52d74 100644
--- a/site/guide.html
+++ b/site/guide.html
@@ -697,7 +697,8 @@
Text, DAX, SQL, and KQL
Paste prefers an image when the clipboard has one, including a file SnagIt or another capture tool left on the clipboard. Paste plain text to create a selected text container.
SVG counts as an image, whether the source application published it as SVG or the markup was simply copied as text — the output of a DAX SVG measure pastes as a picture, not as a snippet. Copying an SVG container puts the markup and a bitmap on the clipboard together, so an editor receives the source and a slide receives the picture.
Help → Preferences sets Snippet format order: paste tries those languages from top to bottom, and Plain text comes last, so DAX, SQL, and KQL are recognized while a bare word stays a note. Put Plain text first to keep every paste plain. Use the title-bar chip to change the language afterward.
-
F6 formats DAX, SQL, or KQL on the selected container, without entering edit mode. F2 edits the container, and double-click still centers it and fits it to the canvas; inside an edit F6 formats in place and Ctrl+Enter commits that format with the rest of the edit. SQL Server mode targets SQL Server 2025 T-SQL, keeps GO batch separators, and leaves an invalid script unchanged; KQL reads Kusto through Microsoft's own parser and likewise leaves an invalid query alone. Escape restores the previous text, language, and size.
+
A text container's width is its line width. Drag its right edge to change the width in columns and reflow the text; the handle shows the count. Shift on the corner handle does the same, and a plain drag of the corner scales the container like a picture. A new container is 65 columns wide, which is where the DAX formatter wraps.
+
F6 formats DAX, SQL, or KQL on the selected container, without entering edit mode, and wraps DAX to the container's columns. F2 edits the container, and double-click still centers it and fits it to the canvas; inside an edit F6 formats in place and Ctrl+Enter commits that format with the rest of the edit. SQL Server mode targets SQL Server 2025 T-SQL, keeps GO batch separators, and leaves an invalid script unchanged; KQL reads Kusto through Microsoft's own parser and likewise leaves an invalid query alone. Escape restores the previous text, language, and size.
LiveView
View → LiveView captures a window or a display. The container behaves like an image: move, resize, frame, delete, undo.