CSSV · Comma-Separated Styled Values CSSV v1, a format that stores data as RFC 4180 CSV beneath a CSS stylesheet separated by two `---` fences, has been released as a plain-text alternative to binary spreadsheets and markup-heavy HTML tables. The format renders as an ordinary HTML table whose structure the spec fixes, exposing column names in `data-col`, record numbers in `data-row` and key values in `data-key`, so a stylesheet written for one renderer works in all of them. Deleting the lines between the fences leaves a valid CSV file, and the project notes most CSV files are already valid CSSV files. Plain text Data and styles are text you can read, diff, review and merge. A change to one number is a one-line diff. CSSV v1 · Comma-Separated Styled Values CSSV is a CSV file with a CSS stylesheet on top. One file holds the data and how it looks, renders as a real HTML table, and stays plain text you can read, diff and generate. Delete the stylesheet and it's a CSV again. Exported with toMarkdown from computed styles: alignment, bold, italic, strikethrough and monospace carry over. Change a delay: 0 is on time, 25 is delayed, -5 is early. Delete one to cancel the flight. Ask your AI agent to write it Example prompt “Turn these flights into a departures board using CSSV. Show delayed flights in amber and cancelled flights in red.” Examples Each of these is one .cssv file rendered by the same element. The page adds no styles to them: the element tiles, arrows, letterhead and crests all come from the file's own style block. 118 records in atomic-number order. The style block makes tbody an 18-column grid, so tr:nth-child 26 is iron: most elements flow into place, and five rules move the rest. --cssv-key: category names every row by its category, and each category sets one color. Every number cell is tagged .positive , .negative or .zero . That drives the arrows, the colors, the pill tints and the row highlights, and no value is repeated in the CSS. SKUs like 0042 stay text because of the leading zero. Quoted fields span two lines and ::first-line bolds the title. Summary rows have no SKU, so tr:not data-key selects them. Semicolon-delimited, detected from the header. Ranks come from a CSS counter, crests from two colors per club, and zones from :nth-child . The palette follows prefers-color-scheme . Open the full gallery ../examples/ : CSV files people already have, from a Jira export to a WhatsApp chat, more files like these, and every file's source. Why CSSV CSV has the data but nothing about how it looks. Spreadsheets have both, in a binary file you can't diff, review or write as text. HTML tables wrap every value in markup. Markdown tables are text but stop at bold and alignment. CSSV keeps the data as CSV and puts the presentation in CSS, two languages that people, programs and language models already write. Data is RFC 4180 CSV and styles are CSS. CSSV only defines how they connect: two fences and a fixed table structure. The output is an ordinary