The built stylesheet's reset sits under the engine on purpose, so it is not a conflict. The site's docs page
went from 4,314 findings to none from its own CSS.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A page that ships dssl build output and also runs the engine says every rule twice; that is not a conflict.
Found on this site's docs page (4,314 false findings).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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>
Aura follows moving things under reduced motion, skips invisible emitters (always keeps an anchor), z N
layers. dssl check, the console and DSSL.lint name rules a later rule always beats. Typed and scoped
signals that restyle only what their rules select; DSSL.flush/settled/computed; pauseMotion/stepMotion.
animate lists, DSSL.play on pseudo-elements, outline-shape, rotate: 5, states inside ::after, a clear
error for a CSS font shorthand, --engine for the CLI, quieter DSSL.lint.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
v0.14.0: made for games (fixes and features from a game-building agent's review)
Reduced motion is no longer silent (console notice, essential, DSSL.motion). animate: gains delay,
jitter, iterations, essential; motions are shared across files; keyframes accept 0%; every motion is
a real @keyframes; animate: works on pseudo-elements; DSSL.play(). Layered gradient sentences,
text-stroke, bare custom shadow/radius tokens, paint-order and conic-gradient(from ...). Author
inline styles win; static subtrees; aura clip/scale/z; @signal in/not in/!=; DSSL.lint(root);
dssl check/build take an index.html. Docs checked against the real API by test-v0140.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
11 days ago
v0.13.0: the compiled page is the page: no-JS parity, strict CSP, SSR, source maps, benchmark
One-line rule completions, property words sorted first, designer knows the wood and mirror settings; new real-editor test suites.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.2: one cascade across all stylesheets, fluid on the longhands
Found while rebuilding the website on its own engine.
- "Later wins" did not hold between stylesheets. Every sheet numbers its
rules from 0 and the engine sorted by (layer, order) comparing those raw
numbers across sheets, so a later sheet lost to an earlier one whenever
the earlier one had more rules above the rule in question. Reproduced with
a 30 rule sheet followed by a 1 rule sheet: the earlier colour won.
rebuild() now renumbers every rule into one global sequence in load order
(assignGlobalOrder, idempotent via order0). Layers still outrank order.
- Consequence: a tokens { } block in a later sheet now overrides a token an
earlier sheet set inside @media or @signal.
- fluid works on padding-top/right/bottom/left/inline/block, margin-*,
letter-spacing and border-radius, not only the four-sided shorthands.
- scripts/test-v082.mjs (27 assertions) runs the engine's own sort on rules
from real compiled sheets; the first check in each group reproduces the
old bug.
…
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…
v0.7.2 extension repackage: dssl-vscode-0.7.2.vsix actually ships the fixed engine (0.7.1 vsix predated the sync), manifest 0.7.2, guide/README/llms point at the new installer