Shadows 1.2.2
Box-shadow utilities map to --velin-shadow-*. Dark surfaces use stronger shadows via system preference or data-velin-theme="dark" (ADR 0011). Deutsch: Schatten
Maturity: Documented as stable in VelinStyle 1.2.0.
Studio and the complete Utility Engine remain planned — shipping utilities are hand-authored under
@layer utilities, not a full variant generator.
When to use
- Raise cards, menus, and floating surfaces with
.velin-shadow-sm→.velin-shadow-lg. - Reset inherited elevation with
.velin-shadow-none. - Use ring utilities (
.velin-ring-*inposition.css) for decorative focus-like outlines — not a substitute for:focus-visiblefocus rings.
When not
- Do not invent hex shadows; override
--velin-shadow-*tokens instead. - Do not expect responsive
.velin-md-shadow-*variants until the Utility Engine ships them.
Shadow tokens
| Token | Utility |
|---|---|
--velin-shadow-none | .velin-shadow-none |
--velin-shadow-xs | .velin-shadow-xs |
--velin-shadow-sm | .velin-shadow-sm |
--velin-shadow-md | .velin-shadow (default → md) |
--velin-shadow-lg | .velin-shadow-lg |
--velin-shadow-xl | .velin-shadow-xl |
--velin-shadow-2xl | .velin-shadow-2xl |
--velin-shadow-inner | .velin-shadow-inner |
Box shadow
<div class="velin-shadow-none">No shadow</div>
<div class="velin-shadow-sm">Small</div>
<div class="velin-shadow">Default (md)</div>
<div class="velin-shadow-lg">Large</div>
<div class="velin-shadow-inner">Inset</div>No shadow
Small
Default (md)
Large
Inset
Dark mode
src/tokens/shadow.css deepens shadows under
@media (prefers-color-scheme: dark) when not forced light, and under
[data-velin-theme="dark"] — same contract as color tokens.
Ring utilities
Rings use box-shadow outlines colored with semantic color tokens:
<div class="velin-ring-1">1px primary ring</div>
<div class="velin-ring-2 velin-ring-success">2px success</div>
<div class="velin-ring-4 velin-ring-danger">4px danger</div>1px primary ring
2px success
4px danger