Controlled box-shadow generator (incl. inset)
Build box-shadow from validated integer px values, an inset enum and a colour; inset and outset both preview, and copied text has snapshot plus parse verification.
Inputs and parameters
inset— Inset / outsetoffsetX— Offset X px (-100–100, slider or keyboard)offsetY— Offset Y px (-100–100)blur— Blur radius px (0–100)spread— Spread radius px (-100–100)color— Shadow colour
Real example
inset=inset, offsetX=2, offsetY=4, blur=8, spread=0, color=#17211c
→ box-shadow: inset 2px 4px 8px 0px #17211c;
Limits and failure handling
Single-layer box-shadow only, integer px, bounded ranges and controlled colours; no multi-layer shadows, calc()/var(), arbitrary CSS or text-shadow. Colour alpha is supported via 8-digit HEX and rgba()/hsla().
FAQ
How is inset expressed?
Choosing inset prefixes the serialization with the inset keyword; outset omits it. Boolean true/false is also accepted; other strings raise INVALID_INSET.
Can I stack multiple shadows?
This release generates a single shadow only; comma-separated multi-layer values are not supported, keeping the grammar controlled and testable.
What about ranges and decimals?
Offsets/spread are -100..100 integers and blur 0..100 integers; out-of-range raises OUT_OF_RANGE and decimals raise INVALID_NUMBER instead of being silently rounded.