native/ holds a written specification of DSSL (12 chapters, two generated appendices), the shared
vocabulary data, and a Rust crate stub. No browser implements DSSL natively; this is the spec a
browser team would implement from, checked against the engine by scripts/test-native-spec.mjs.
Writing it showed where the engine and the language disagreed. Fixed:
- an unquoted url(http://...) lost the rest of the line to the comment stripper
- a typo at the end of a token path silently resolved to its parent token
- nesting under a selector list joined the wrong way (.a, .b { .c {} } and hover {})
- a backslash did not escape a quote in a value
- a nested li (or any HTML element name) got a "did you mean link" warning
New warnings, both compile fine: an unknown @layer name, and radius: xl with no token.
Every .dssl file in the repo and every doc example resolve to identical output before and after.
Open: D-6 (registry rule across files) needs a browser test. Binaries follow in a separate co…
yield: hands properties back to plain CSS (and DSSL.lint reports css-loses). The compiler's CSS words and
properties are generated from the MDN data, so env(), tabular-nums and friends are accepted; a token pair on
one line is two tokens and token errors point at their line. Aura follows the element's real shape
(clip-path, border-radius, rotate/scale/transform, or around ...), plus inner glow, rays, ripples, nine new
particle shapes, palette, spin, wind and orbit. 33 new texture presets from nine new generators.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
17 days ago
v0.12.0: symmetrical tiling, fonts block, richer gradients, in-page inspector, hot reload and dssl dev
Live webview designers that read and write DSSL, backed by pure modules and
tests against a fake vscode API and a real Chrome.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
v0.8.1: fluid math, raw blocks, packaged CLI, build --strict
A re-test of 0.8.0 found two bugs; writing the tests found more.
- fluid: the clamp() left out the intercept of its line, so fluid 16 24 was
19.6px on a 375px phone (should be 16.1px) and hit 24px near 840px instead
of 1200px. Same fix repairs shrinking sizes (fluid 24 16 made a backwards
clamp) and rem sizes (slope was 16x too small). Percentages and mixed
units are refused with a clear message.
- raw { }: a multi-line block started with the text "undefined", anything on
the same line as "raw {" was dropped, and the guide example had no
semicolons (invalid CSS). Fixed; a missing semicolon inside raw is now a
warning with the right line number.
- the dssl CLI inside dssl-engine.zip / .tar.gz crashed on start (looked for
public/dssl, the package keeps the engine in dssl/). Finds either layout now.
- dssl build takes --strict, like dssl check.
- tests: new scripts/test-v081.mjs (37 assertions) evaluates the emitted
clamp() at real window widths instead of comparing str…