SLASHED Full API Demo
-v0.7.0 · optimal-components bundle from jsDelivr CDN · 308 classes · 711 tokens (225 configurable)
+v0.7.0 · optimal-components bundle from jsDelivr CDN · 320 classes · 720 tokens (229 configurable)
Shadow
Interactive functions motion · transitions · gradients
Animations
-animation-blinkanimation-color-pulseanimation-fade-inanimation-fade-outanimation-floatanimation-pinganimation-scale-downanimation-scale-upanimation-shimmeranimation-slide-in-downanimation-slide-in-leftanimation-slide-in-rightanimation-slide-in-upanimation-spinanimation-blinkanimation-color-pulseanimation-fade-inanimation-fade-outanimation-floatanimation-pinganimation-scale-downanimation-scale-upanimation-shimmeranimation-slide-in-downanimation-slide-in-leftanimation-slide-in-rightanimation-slide-in-upanimation-slide-out-downanimation-slide-out-leftanimation-slide-out-rightanimation-slide-out-upanimation-spinEasing curves
ease-bounceease-elasticease-inease-in-outease-linearease-outease-overshootease-springDrop shadows (filter)
Layout primitives 136
+Layout primitives 143
.sf-alternateLayout primitives 136
.sf-cq.sf-divide.sf-divide--vertical.sf-dividerabove
below
Layout primitives 136
.sf-grid-flex--xs.sf-header--l.sf-header--m.sf-header--s.sf-header--xl.sf-header--xs.sf-iconMacro classes 57
State classes 40
+State classes 29
.is-activeState classes 40
.is-busy.is-clickable.is-clipped.is-collapsedState classes 40
.is-expanded.is-fixed.is-focused.is-fullscreen.is-hiddenState classes 40
.is-pending.is-pinned.is-pressedState classes 40
.is-readonly.is-resizable.is-scrollable.is-selectedState classes 40
.is-skeleton.is-sticky.is-success.is-truncated.is-unselectable.is-validState classes 40
Motion / animation 15
+Motion / animation 21
.sf-color-pulseMotion / animation 15
.sf-entrance--scale-up.sf-exit--fade.sf-exit--fade-down.sf-exit--fade-left.sf-exit--fade-right.sf-exit--fade-up.sf-exit--scale-down.sf-fade-inTheme 1
Part 2 — Complete token reference 711 tokens · live values
+Part 2 — Complete token reference 720 tokens · live values
--sf-* token — knob and consumption, all tiers — with its live computed value (filled by JS). Toggle the theme or the override in the toolbar and watch every value recompute. Tokens that resolve to a colour, length, shadow, gradient, type or motion value also show a visual.color 249
---sf-color-action--sf-color-action--active--sf-color-action--hover--sf-color-action-100--sf-color-action-200--sf-color-action-300--sf-color-action-400--sf-color-action-50--sf-color-action-500--sf-color-action-600--sf-color-action-700--sf-color-action-800--sf-color-action-900--sf-color-action-950--sf-color-action-a10--sf-color-action-a30--sf-color-action-a5--sf-color-action-a50--sf-color-action-a80--sf-color-action-darker--sf-color-action-ghost--sf-color-action-lighter--sf-color-action-muted--sf-color-action-source-dark--sf-color-action-source-light--sf-color-action-subtle--sf-color-action-superdark--sf-color-action-superlight--sf-color-action-xdark--sf-color-action-xlight--sf-color-base--sf-color-base--active--sf-color-base--hover--sf-color-base-100--sf-color-base-200--sf-color-base-300--sf-color-base-400--sf-color-base-50--sf-color-base-500--sf-color-base-600--sf-color-base-700--sf-color-base-800--sf-color-base-900--sf-color-base-950--sf-color-base-a10--sf-color-base-a30--sf-color-base-a5--sf-color-base-a50--sf-color-base-a80--sf-color-base-ghost--sf-color-base-muted--sf-color-base-source-dark--sf-color-base-source-light--sf-color-base-subtle--sf-color-bg--sf-color-bg--active--sf-color-bg--disabled--sf-color-bg--focus--sf-color-bg--hover--sf-color-bg--selected--sf-color-black--sf-color-border--sf-color-border--disabled--sf-color-border--focus--sf-color-border--strong--sf-color-border--subtle--sf-color-border--translucent--sf-color-code-bg--sf-color-code-text--sf-color-danger--sf-color-danger-muted--sf-color-danger-source-dark--sf-color-danger-source-light--sf-color-danger-strong--sf-color-danger-subtle--sf-color-dim--sf-color-heading--sf-color-info--sf-color-info-muted--sf-color-info-source-dark--sf-color-info-source-light--sf-color-info-strong--sf-color-info-subtle--sf-color-inset--sf-color-inverse--sf-color-link--sf-color-link--active--sf-color-link--disabled--sf-color-link--hover--sf-color-link--underline--sf-color-link--visited--sf-color-mark-bg--sf-color-mark-text--sf-color-neutral--sf-color-neutral--active--sf-color-neutral--hover--sf-color-neutral-100--sf-color-neutral-200--sf-color-neutral-300--sf-color-neutral-400--sf-color-neutral-50--sf-color-neutral-500--sf-color-neutral-600--sf-color-neutral-700--sf-color-neutral-800--sf-color-neutral-900--sf-color-neutral-950--sf-color-neutral-a10--sf-color-neutral-a30--sf-color-neutral-a5--sf-color-neutral-a50--sf-color-neutral-a80--sf-color-neutral-darker--sf-color-neutral-ghost--sf-color-neutral-lighter--sf-color-neutral-muted--sf-color-neutral-source-dark--sf-color-neutral-source-light--sf-color-neutral-subtle--sf-color-neutral-superdark--sf-color-neutral-superlight--sf-color-neutral-xdark--sf-color-neutral-xlight--sf-color-overlay--sf-color-primary--sf-color-primary--active--sf-color-primary--hover--sf-color-primary-100--sf-color-primary-200--sf-color-primary-300--sf-color-primary-400--sf-color-primary-50--sf-color-primary-500--sf-color-primary-600--sf-color-primary-700--sf-color-primary-800--sf-color-primary-900--sf-color-primary-950--sf-color-primary-a10--sf-color-primary-a30--sf-color-primary-a5--sf-color-primary-a50--sf-color-primary-a80--sf-color-primary-darker--sf-color-primary-ghost--sf-color-primary-lighter--sf-color-primary-muted--sf-color-primary-source-dark--sf-color-primary-source-light--sf-color-primary-subtle--sf-color-primary-superdark--sf-color-primary-superlight--sf-color-primary-xdark--sf-color-primary-xlight--sf-color-raised--sf-color-scheme--sf-color-secondary--sf-color-secondary--active--sf-color-secondary--hover--sf-color-secondary-100--sf-color-secondary-200--sf-color-secondary-300--sf-color-secondary-400--sf-color-secondary-50--sf-color-secondary-500--sf-color-secondary-600--sf-color-secondary-700--sf-color-secondary-800--sf-color-secondary-900--sf-color-secondary-950--sf-color-secondary-a10--sf-color-secondary-a30--sf-color-secondary-a5--sf-color-secondary-a50--sf-color-secondary-a80--sf-color-secondary-darker--sf-color-secondary-ghost--sf-color-secondary-lighter--sf-color-secondary-muted--sf-color-secondary-source-dark--sf-color-secondary-source-light--sf-color-secondary-subtle--sf-color-secondary-superdark--sf-color-secondary-superlight--sf-color-secondary-xdark--sf-color-secondary-xlight--sf-color-selection-bg--sf-color-selection-text--sf-color-success--sf-color-success-muted--sf-color-success-source-dark--sf-color-success-source-light--sf-color-success-strong--sf-color-success-subtle--sf-color-surface--sf-color-tertiary--sf-color-tertiary--active--sf-color-tertiary--hover--sf-color-tertiary-100--sf-color-tertiary-200--sf-color-tertiary-300--sf-color-tertiary-400--sf-color-tertiary-50--sf-color-tertiary-500--sf-color-tertiary-600--sf-color-tertiary-700--sf-color-tertiary-800--sf-color-tertiary-900--sf-color-tertiary-950--sf-color-tertiary-a10--sf-color-tertiary-a30--sf-color-tertiary-a5--sf-color-tertiary-a50--sf-color-tertiary-a80--sf-color-tertiary-darker--sf-color-tertiary-ghost--sf-color-tertiary-lighter--sf-color-tertiary-muted--sf-color-tertiary-source-dark--sf-color-tertiary-source-light--sf-color-tertiary-subtle--sf-color-tertiary-superdark--sf-color-tertiary-superlight--sf-color-tertiary-xdark--sf-color-tertiary-xlight--sf-color-text--sf-color-text--disabled--sf-color-text--inverse--sf-color-text--muted--sf-color-text--on-action--sf-color-text--on-base--sf-color-text--on-danger--sf-color-text--on-info--sf-color-text--on-inverse--sf-color-text--on-neutral--sf-color-text--on-primary--sf-color-text--on-secondary--sf-color-text--on-success--sf-color-text--on-tertiary--sf-color-text--on-warning--sf-color-text--placeholder--sf-color-text--secondary--sf-color-warning--sf-color-warning-muted--sf-color-warning-source-dark--sf-color-warning-source-light--sf-color-warning-strong--sf-color-warning-subtle--sf-color-whitecolor 251
+--sf-color-action--sf-color-action--active--sf-color-action--hover--sf-color-action-100--sf-color-action-200--sf-color-action-300--sf-color-action-400--sf-color-action-50--sf-color-action-500--sf-color-action-600--sf-color-action-700--sf-color-action-800--sf-color-action-900--sf-color-action-950--sf-color-action-a10--sf-color-action-a30--sf-color-action-a5--sf-color-action-a50--sf-color-action-a80--sf-color-action-darker--sf-color-action-ghost--sf-color-action-lighter--sf-color-action-muted--sf-color-action-source-dark--sf-color-action-source-light--sf-color-action-subtle--sf-color-action-superdark--sf-color-action-superlight--sf-color-action-xdark--sf-color-action-xlight--sf-color-base--sf-color-base--active--sf-color-base--hover--sf-color-base-100--sf-color-base-200--sf-color-base-300--sf-color-base-400--sf-color-base-50--sf-color-base-500--sf-color-base-600--sf-color-base-700--sf-color-base-800--sf-color-base-900--sf-color-base-950--sf-color-base-a10--sf-color-base-a30--sf-color-base-a5--sf-color-base-a50--sf-color-base-a80--sf-color-base-ghost--sf-color-base-muted--sf-color-base-source-dark--sf-color-base-source-light--sf-color-base-subtle--sf-color-bg--sf-color-bg--active--sf-color-bg--disabled--sf-color-bg--focus--sf-color-bg--hover--sf-color-bg--selected--sf-color-black--sf-color-border--sf-color-border--disabled--sf-color-border--focus--sf-color-border--strong--sf-color-border--subtle--sf-color-border--translucent--sf-color-code-bg--sf-color-code-text--sf-color-danger--sf-color-danger-muted--sf-color-danger-source-dark--sf-color-danger-source-light--sf-color-danger-strong--sf-color-danger-subtle--sf-color-dim--sf-color-heading--sf-color-info--sf-color-info-muted--sf-color-info-source-dark--sf-color-info-source-light--sf-color-info-strong--sf-color-info-subtle--sf-color-inset--sf-color-inverse--sf-color-link--sf-color-link--active--sf-color-link--disabled--sf-color-link--hover--sf-color-link--underline--sf-color-link--visited--sf-color-mark-bg--sf-color-mark-text--sf-color-neutral--sf-color-neutral--active--sf-color-neutral--hover--sf-color-neutral-100--sf-color-neutral-200--sf-color-neutral-300--sf-color-neutral-400--sf-color-neutral-50--sf-color-neutral-500--sf-color-neutral-600--sf-color-neutral-700--sf-color-neutral-800--sf-color-neutral-900--sf-color-neutral-950--sf-color-neutral-a10--sf-color-neutral-a30--sf-color-neutral-a5--sf-color-neutral-a50--sf-color-neutral-a80--sf-color-neutral-darker--sf-color-neutral-ghost--sf-color-neutral-lighter--sf-color-neutral-muted--sf-color-neutral-source-dark--sf-color-neutral-source-light--sf-color-neutral-subtle--sf-color-neutral-superdark--sf-color-neutral-superlight--sf-color-neutral-xdark--sf-color-neutral-xlight--sf-color-overlay--sf-color-primary--sf-color-primary--active--sf-color-primary--hover--sf-color-primary-100--sf-color-primary-200--sf-color-primary-300--sf-color-primary-400--sf-color-primary-50--sf-color-primary-500--sf-color-primary-600--sf-color-primary-700--sf-color-primary-800--sf-color-primary-900--sf-color-primary-950--sf-color-primary-a10--sf-color-primary-a30--sf-color-primary-a5--sf-color-primary-a50--sf-color-primary-a80--sf-color-primary-darker--sf-color-primary-ghost--sf-color-primary-lighter--sf-color-primary-muted--sf-color-primary-source-dark--sf-color-primary-source-light--sf-color-primary-subtle--sf-color-primary-superdark--sf-color-primary-superlight--sf-color-primary-xdark--sf-color-primary-xlight--sf-color-raised--sf-color-scheme--sf-color-secondary--sf-color-secondary--active--sf-color-secondary--hover--sf-color-secondary-100--sf-color-secondary-200--sf-color-secondary-300--sf-color-secondary-400--sf-color-secondary-50--sf-color-secondary-500--sf-color-secondary-600--sf-color-secondary-700--sf-color-secondary-800--sf-color-secondary-900--sf-color-secondary-950--sf-color-secondary-a10--sf-color-secondary-a30--sf-color-secondary-a5--sf-color-secondary-a50--sf-color-secondary-a80--sf-color-secondary-darker--sf-color-secondary-ghost--sf-color-secondary-lighter--sf-color-secondary-muted--sf-color-secondary-source-dark--sf-color-secondary-source-light--sf-color-secondary-subtle--sf-color-secondary-superdark--sf-color-secondary-superlight--sf-color-secondary-xdark--sf-color-secondary-xlight--sf-color-selection-bg--sf-color-selection-bg--alt--sf-color-selection-text--sf-color-selection-text--alt--sf-color-success--sf-color-success-muted--sf-color-success-source-dark--sf-color-success-source-light--sf-color-success-strong--sf-color-success-subtle--sf-color-surface--sf-color-tertiary--sf-color-tertiary--active--sf-color-tertiary--hover--sf-color-tertiary-100--sf-color-tertiary-200--sf-color-tertiary-300--sf-color-tertiary-400--sf-color-tertiary-50--sf-color-tertiary-500--sf-color-tertiary-600--sf-color-tertiary-700--sf-color-tertiary-800--sf-color-tertiary-900--sf-color-tertiary-950--sf-color-tertiary-a10--sf-color-tertiary-a30--sf-color-tertiary-a5--sf-color-tertiary-a50--sf-color-tertiary-a80--sf-color-tertiary-darker--sf-color-tertiary-ghost--sf-color-tertiary-lighter--sf-color-tertiary-muted--sf-color-tertiary-source-dark--sf-color-tertiary-source-light--sf-color-tertiary-subtle--sf-color-tertiary-superdark--sf-color-tertiary-superlight--sf-color-tertiary-xdark--sf-color-tertiary-xlight--sf-color-text--sf-color-text--disabled--sf-color-text--inverse--sf-color-text--muted--sf-color-text--on-action--sf-color-text--on-base--sf-color-text--on-danger--sf-color-text--on-info--sf-color-text--on-inverse--sf-color-text--on-neutral--sf-color-text--on-primary--sf-color-text--on-secondary--sf-color-text--on-success--sf-color-text--on-tertiary--sf-color-text--on-warning--sf-color-text--placeholder--sf-color-text--secondary--sf-color-warning--sf-color-warning-muted--sf-color-warning-source-dark--sf-color-warning-source-light--sf-color-warning-strong--sf-color-warning-subtle--sf-color-whitegradient 9
--sf-gradient-brand--sf-gradient-fade--b--sf-gradient-fade--l--sf-gradient-fade--r--sf-gradient-fade--t--sf-gradient-primary--sf-gradient-secondary--sf-gradient-surface--sf-gradient-tertiaryshadow 13
@@ -1279,8 +1287,8 @@ease 8
--sf-ease-bounce--sf-ease-elastic--sf-ease-in--sf-ease-in-out--sf-ease-linear--sf-ease-out--sf-ease-overshoot--sf-ease-springtransition 10
--sf-transition-colors--sf-transition-enter--sf-transition-exit--sf-transition-fast--sf-transition-form-field--sf-transition-opacity--sf-transition-overlay--sf-transition-shadow--sf-transition-slow--sf-transition-transformanimation 19
---sf-animation-blink--sf-animation-color-pulse--sf-animation-delay-1--sf-animation-delay-2--sf-animation-delay-3--sf-animation-delay-4--sf-animation-delay-5--sf-animation-fade-in--sf-animation-fade-out--sf-animation-float--sf-animation-ping--sf-animation-scale-down--sf-animation-scale-up--sf-animation-shimmer--sf-animation-slide-in-down--sf-animation-slide-in-left--sf-animation-slide-in-right--sf-animation-slide-in-up--sf-animation-spinanimation 23
+--sf-animation-blink--sf-animation-color-pulse--sf-animation-delay-1--sf-animation-delay-2--sf-animation-delay-3--sf-animation-delay-4--sf-animation-delay-5--sf-animation-fade-in--sf-animation-fade-out--sf-animation-float--sf-animation-ping--sf-animation-scale-down--sf-animation-scale-up--sf-animation-shimmer--sf-animation-slide-in-down--sf-animation-slide-in-left--sf-animation-slide-in-right--sf-animation-slide-in-up--sf-animation-slide-out-down--sf-animation-slide-out-left--sf-animation-slide-out-right--sf-animation-slide-out-up--sf-animation-spinborder 10
--sf-border--sf-border-scale--sf-border-strong--sf-border-style--sf-border-subtle--sf-border-width-1--sf-border-width-2--sf-border-width-3--sf-border-width-4--sf-border-width-hairlinefocus 5
@@ -1381,6 +1389,8 @@lumlocker 1
--sf-lumlocker advmask 2
--sf-mask-scrim-end adv--sf-mask-scrim-start advmedia 1
+--sf-media-radiusmotion 1
--sf-motion-scale advobject 2
@@ -1403,8 +1413,8 @@safe 4
--sf-safe-bottom adv--sf-safe-left adv--sf-safe-right adv--sf-safe-top advscrim 4
--sf-scrim-color--sf-scrim-direction--sf-scrim-gradient--sf-scrim-text-shadowscroll 3
---sf-scroll-shadow-size--sf-scroll-timeline-range-end adv--sf-scroll-timeline-range-start advscroll 5
+--sf-scroll-shadow-size--sf-scroll-timeline-range-end adv--sf-scroll-timeline-range-exit-end--sf-scroll-timeline-range-exit-start--sf-scroll-timeline-range-start advscrollbar 2
--sf-scrollbar-thumb--sf-scrollbar-tracksection 8
diff --git a/demos/full-api-demo.html b/demos/full-api-demo.html index 8e27bf7c..28eb5123 100644 --- a/demos/full-api-demo.html +++ b/demos/full-api-demo.html @@ -121,7 +121,7 @@SLASHED Full API Demo
-v0.7.0 · optimal-components bundle from jsDelivr CDN · 308 classes · 711 tokens (225 configurable)
+v0.7.0 · optimal-components bundle from jsDelivr CDN · 320 classes · 720 tokens (229 configurable)
Shadow
Interactive functions motion · transitions · gradients
Animations
-animation-blinkanimation-color-pulseanimation-fade-inanimation-fade-outanimation-floatanimation-pinganimation-scale-downanimation-scale-upanimation-shimmeranimation-slide-in-downanimation-slide-in-leftanimation-slide-in-rightanimation-slide-in-upanimation-spinanimation-blinkanimation-color-pulseanimation-fade-inanimation-fade-outanimation-floatanimation-pinganimation-scale-downanimation-scale-upanimation-shimmeranimation-slide-in-downanimation-slide-in-leftanimation-slide-in-rightanimation-slide-in-upanimation-slide-out-downanimation-slide-out-leftanimation-slide-out-rightanimation-slide-out-upanimation-spinEasing curves
ease-bounceease-elasticease-inease-in-outease-linearease-outease-overshootease-springDrop shadows (filter)
Layout primitives 136
+Layout primitives 143
.sf-alternateLayout primitives 136
.sf-cq.sf-divide.sf-divide--vertical.sf-dividerabove
below
Layout primitives 136
.sf-grid-flex--xs.sf-header--l.sf-header--m.sf-header--s.sf-header--xl.sf-header--xs.sf-iconMacro classes 57
State classes 40
+State classes 29
.is-activeState classes 40
.is-busy.is-clickable.is-clipped.is-collapsedState classes 40
.is-expanded.is-fixed.is-focused.is-fullscreen.is-hiddenState classes 40
.is-pending.is-pinned.is-pressedState classes 40
.is-readonly.is-resizable.is-scrollable.is-selectedState classes 40
.is-skeleton.is-sticky.is-success.is-truncated.is-unselectable.is-validState classes 40
Motion / animation 15
+Motion / animation 21
.sf-color-pulseMotion / animation 15
.sf-entrance--scale-up.sf-exit--fade.sf-exit--fade-down.sf-exit--fade-left.sf-exit--fade-right.sf-exit--fade-up.sf-exit--scale-down.sf-fade-inTheme 1
Part 2 — Complete token reference 711 tokens · live values
+Part 2 — Complete token reference 720 tokens · live values
--sf-* token — knob and consumption, all tiers — with its live computed value (filled by JS). Toggle the theme or the override in the toolbar and watch every value recompute. Tokens that resolve to a colour, length, shadow, gradient, type or motion value also show a visual.color 249
---sf-color-action--sf-color-action--active--sf-color-action--hover--sf-color-action-100--sf-color-action-200--sf-color-action-300--sf-color-action-400--sf-color-action-50--sf-color-action-500--sf-color-action-600--sf-color-action-700--sf-color-action-800--sf-color-action-900--sf-color-action-950--sf-color-action-a10--sf-color-action-a30--sf-color-action-a5--sf-color-action-a50--sf-color-action-a80--sf-color-action-darker--sf-color-action-ghost--sf-color-action-lighter--sf-color-action-muted--sf-color-action-source-dark--sf-color-action-source-light--sf-color-action-subtle--sf-color-action-superdark--sf-color-action-superlight--sf-color-action-xdark--sf-color-action-xlight--sf-color-base--sf-color-base--active--sf-color-base--hover--sf-color-base-100--sf-color-base-200--sf-color-base-300--sf-color-base-400--sf-color-base-50--sf-color-base-500--sf-color-base-600--sf-color-base-700--sf-color-base-800--sf-color-base-900--sf-color-base-950--sf-color-base-a10--sf-color-base-a30--sf-color-base-a5--sf-color-base-a50--sf-color-base-a80--sf-color-base-ghost--sf-color-base-muted--sf-color-base-source-dark--sf-color-base-source-light--sf-color-base-subtle--sf-color-bg--sf-color-bg--active--sf-color-bg--disabled--sf-color-bg--focus--sf-color-bg--hover--sf-color-bg--selected--sf-color-black--sf-color-border--sf-color-border--disabled--sf-color-border--focus--sf-color-border--strong--sf-color-border--subtle--sf-color-border--translucent--sf-color-code-bg--sf-color-code-text--sf-color-danger--sf-color-danger-muted--sf-color-danger-source-dark--sf-color-danger-source-light--sf-color-danger-strong--sf-color-danger-subtle--sf-color-dim--sf-color-heading--sf-color-info--sf-color-info-muted--sf-color-info-source-dark--sf-color-info-source-light--sf-color-info-strong--sf-color-info-subtle--sf-color-inset--sf-color-inverse--sf-color-link--sf-color-link--active--sf-color-link--disabled--sf-color-link--hover--sf-color-link--underline--sf-color-link--visited--sf-color-mark-bg--sf-color-mark-text--sf-color-neutral--sf-color-neutral--active--sf-color-neutral--hover--sf-color-neutral-100--sf-color-neutral-200--sf-color-neutral-300--sf-color-neutral-400--sf-color-neutral-50--sf-color-neutral-500--sf-color-neutral-600--sf-color-neutral-700--sf-color-neutral-800--sf-color-neutral-900--sf-color-neutral-950--sf-color-neutral-a10--sf-color-neutral-a30--sf-color-neutral-a5--sf-color-neutral-a50--sf-color-neutral-a80--sf-color-neutral-darker--sf-color-neutral-ghost--sf-color-neutral-lighter--sf-color-neutral-muted--sf-color-neutral-source-dark--sf-color-neutral-source-light--sf-color-neutral-subtle--sf-color-neutral-superdark--sf-color-neutral-superlight--sf-color-neutral-xdark--sf-color-neutral-xlight--sf-color-overlay--sf-color-primary--sf-color-primary--active--sf-color-primary--hover--sf-color-primary-100--sf-color-primary-200--sf-color-primary-300--sf-color-primary-400--sf-color-primary-50--sf-color-primary-500--sf-color-primary-600--sf-color-primary-700--sf-color-primary-800--sf-color-primary-900--sf-color-primary-950--sf-color-primary-a10--sf-color-primary-a30--sf-color-primary-a5--sf-color-primary-a50--sf-color-primary-a80--sf-color-primary-darker--sf-color-primary-ghost--sf-color-primary-lighter--sf-color-primary-muted--sf-color-primary-source-dark--sf-color-primary-source-light--sf-color-primary-subtle--sf-color-primary-superdark--sf-color-primary-superlight--sf-color-primary-xdark--sf-color-primary-xlight--sf-color-raised--sf-color-scheme--sf-color-secondary--sf-color-secondary--active--sf-color-secondary--hover--sf-color-secondary-100--sf-color-secondary-200--sf-color-secondary-300--sf-color-secondary-400--sf-color-secondary-50--sf-color-secondary-500--sf-color-secondary-600--sf-color-secondary-700--sf-color-secondary-800--sf-color-secondary-900--sf-color-secondary-950--sf-color-secondary-a10--sf-color-secondary-a30--sf-color-secondary-a5--sf-color-secondary-a50--sf-color-secondary-a80--sf-color-secondary-darker--sf-color-secondary-ghost--sf-color-secondary-lighter--sf-color-secondary-muted--sf-color-secondary-source-dark--sf-color-secondary-source-light--sf-color-secondary-subtle--sf-color-secondary-superdark--sf-color-secondary-superlight--sf-color-secondary-xdark--sf-color-secondary-xlight--sf-color-selection-bg--sf-color-selection-bg--alt--sf-color-selection-text--sf-color-selection-text--alt--sf-color-success--sf-color-success-muted--sf-color-success-source-dark--sf-color-success-source-light--sf-color-success-strong--sf-color-success-subtle--sf-color-surface--sf-color-tertiary--sf-color-tertiary--active--sf-color-tertiary--hover--sf-color-tertiary-100--sf-color-tertiary-200--sf-color-tertiary-300--sf-color-tertiary-400--sf-color-tertiary-50--sf-color-tertiary-500--sf-color-tertiary-600--sf-color-tertiary-700--sf-color-tertiary-800--sf-color-tertiary-900--sf-color-tertiary-950--sf-color-tertiary-a10--sf-color-tertiary-a30--sf-color-tertiary-a5--sf-color-tertiary-a50--sf-color-tertiary-a80--sf-color-tertiary-darker--sf-color-tertiary-ghost--sf-color-tertiary-lighter--sf-color-tertiary-muted--sf-color-tertiary-source-dark--sf-color-tertiary-source-light--sf-color-tertiary-subtle--sf-color-tertiary-superdark--sf-color-tertiary-superlight--sf-color-tertiary-xdark--sf-color-tertiary-xlight--sf-color-text--sf-color-text--disabled--sf-color-text--inverse--sf-color-text--muted--sf-color-text--on-action--sf-color-text--on-base--sf-color-text--on-danger--sf-color-text--on-info--sf-color-text--on-inverse--sf-color-text--on-neutral--sf-color-text--on-primary--sf-color-text--on-secondary--sf-color-text--on-success--sf-color-text--on-tertiary--sf-color-text--on-warning--sf-color-text--placeholder--sf-color-text--secondary--sf-color-warning--sf-color-warning-muted--sf-color-warning-source-dark--sf-color-warning-source-light--sf-color-warning-strong--sf-color-warning-subtle--sf-color-whitecolor 251
+--sf-color-action--sf-color-action--active--sf-color-action--hover--sf-color-action-100--sf-color-action-200--sf-color-action-300--sf-color-action-400--sf-color-action-50--sf-color-action-500--sf-color-action-600--sf-color-action-700--sf-color-action-800--sf-color-action-900--sf-color-action-950--sf-color-action-a10--sf-color-action-a30--sf-color-action-a5--sf-color-action-a50--sf-color-action-a80--sf-color-action-darker--sf-color-action-ghost--sf-color-action-lighter--sf-color-action-muted--sf-color-action-source-dark--sf-color-action-source-light--sf-color-action-subtle--sf-color-action-superdark--sf-color-action-superlight--sf-color-action-xdark--sf-color-action-xlight--sf-color-base--sf-color-base--active--sf-color-base--hover--sf-color-base-100--sf-color-base-200--sf-color-base-300--sf-color-base-400--sf-color-base-50--sf-color-base-500--sf-color-base-600--sf-color-base-700--sf-color-base-800--sf-color-base-900--sf-color-base-950--sf-color-base-a10--sf-color-base-a30--sf-color-base-a5--sf-color-base-a50--sf-color-base-a80--sf-color-base-ghost--sf-color-base-muted--sf-color-base-source-dark--sf-color-base-source-light--sf-color-base-subtle--sf-color-bg--sf-color-bg--active--sf-color-bg--disabled--sf-color-bg--focus--sf-color-bg--hover--sf-color-bg--selected--sf-color-black--sf-color-border--sf-color-border--disabled--sf-color-border--focus--sf-color-border--strong--sf-color-border--subtle--sf-color-border--translucent--sf-color-code-bg--sf-color-code-text--sf-color-danger--sf-color-danger-muted--sf-color-danger-source-dark--sf-color-danger-source-light--sf-color-danger-strong--sf-color-danger-subtle--sf-color-dim--sf-color-heading--sf-color-info--sf-color-info-muted--sf-color-info-source-dark--sf-color-info-source-light--sf-color-info-strong--sf-color-info-subtle--sf-color-inset--sf-color-inverse--sf-color-link--sf-color-link--active--sf-color-link--disabled--sf-color-link--hover--sf-color-link--underline--sf-color-link--visited--sf-color-mark-bg--sf-color-mark-text--sf-color-neutral--sf-color-neutral--active--sf-color-neutral--hover--sf-color-neutral-100--sf-color-neutral-200--sf-color-neutral-300--sf-color-neutral-400--sf-color-neutral-50--sf-color-neutral-500--sf-color-neutral-600--sf-color-neutral-700--sf-color-neutral-800--sf-color-neutral-900--sf-color-neutral-950--sf-color-neutral-a10--sf-color-neutral-a30--sf-color-neutral-a5--sf-color-neutral-a50--sf-color-neutral-a80--sf-color-neutral-darker--sf-color-neutral-ghost--sf-color-neutral-lighter--sf-color-neutral-muted--sf-color-neutral-source-dark--sf-color-neutral-source-light--sf-color-neutral-subtle--sf-color-neutral-superdark--sf-color-neutral-superlight--sf-color-neutral-xdark--sf-color-neutral-xlight--sf-color-overlay--sf-color-primary--sf-color-primary--active--sf-color-primary--hover--sf-color-primary-100--sf-color-primary-200--sf-color-primary-300--sf-color-primary-400--sf-color-primary-50--sf-color-primary-500--sf-color-primary-600--sf-color-primary-700--sf-color-primary-800--sf-color-primary-900--sf-color-primary-950--sf-color-primary-a10--sf-color-primary-a30--sf-color-primary-a5--sf-color-primary-a50--sf-color-primary-a80--sf-color-primary-darker--sf-color-primary-ghost--sf-color-primary-lighter--sf-color-primary-muted--sf-color-primary-source-dark--sf-color-primary-source-light--sf-color-primary-subtle--sf-color-primary-superdark--sf-color-primary-superlight--sf-color-primary-xdark--sf-color-primary-xlight--sf-color-raised--sf-color-scheme--sf-color-secondary--sf-color-secondary--active--sf-color-secondary--hover--sf-color-secondary-100--sf-color-secondary-200--sf-color-secondary-300--sf-color-secondary-400--sf-color-secondary-50--sf-color-secondary-500--sf-color-secondary-600--sf-color-secondary-700--sf-color-secondary-800--sf-color-secondary-900--sf-color-secondary-950--sf-color-secondary-a10--sf-color-secondary-a30--sf-color-secondary-a5--sf-color-secondary-a50--sf-color-secondary-a80--sf-color-secondary-darker--sf-color-secondary-ghost--sf-color-secondary-lighter--sf-color-secondary-muted--sf-color-secondary-source-dark--sf-color-secondary-source-light--sf-color-secondary-subtle--sf-color-secondary-superdark--sf-color-secondary-superlight--sf-color-secondary-xdark--sf-color-secondary-xlight--sf-color-selection-bg--sf-color-selection-bg--alt--sf-color-selection-text--sf-color-selection-text--alt--sf-color-success--sf-color-success-muted--sf-color-success-source-dark--sf-color-success-source-light--sf-color-success-strong--sf-color-success-subtle--sf-color-surface--sf-color-tertiary--sf-color-tertiary--active--sf-color-tertiary--hover--sf-color-tertiary-100--sf-color-tertiary-200--sf-color-tertiary-300--sf-color-tertiary-400--sf-color-tertiary-50--sf-color-tertiary-500--sf-color-tertiary-600--sf-color-tertiary-700--sf-color-tertiary-800--sf-color-tertiary-900--sf-color-tertiary-950--sf-color-tertiary-a10--sf-color-tertiary-a30--sf-color-tertiary-a5--sf-color-tertiary-a50--sf-color-tertiary-a80--sf-color-tertiary-darker--sf-color-tertiary-ghost--sf-color-tertiary-lighter--sf-color-tertiary-muted--sf-color-tertiary-source-dark--sf-color-tertiary-source-light--sf-color-tertiary-subtle--sf-color-tertiary-superdark--sf-color-tertiary-superlight--sf-color-tertiary-xdark--sf-color-tertiary-xlight--sf-color-text--sf-color-text--disabled--sf-color-text--inverse--sf-color-text--muted--sf-color-text--on-action--sf-color-text--on-base--sf-color-text--on-danger--sf-color-text--on-info--sf-color-text--on-inverse--sf-color-text--on-neutral--sf-color-text--on-primary--sf-color-text--on-secondary--sf-color-text--on-success--sf-color-text--on-tertiary--sf-color-text--on-warning--sf-color-text--placeholder--sf-color-text--secondary--sf-color-warning--sf-color-warning-muted--sf-color-warning-source-dark--sf-color-warning-source-light--sf-color-warning-strong--sf-color-warning-subtle--sf-color-whitegradient 9
--sf-gradient-brand--sf-gradient-fade--b--sf-gradient-fade--l--sf-gradient-fade--r--sf-gradient-fade--t--sf-gradient-primary--sf-gradient-secondary--sf-gradient-surface--sf-gradient-tertiaryshadow 13
@@ -1259,7 +1267,7 @@shadow 13
drop 5
--sf-drop-shadow-l--sf-drop-shadow-m--sf-drop-shadow-s--sf-drop-shadow-xl--sf-drop-shadow-xsradius 14
---sf-radius-2xl--sf-radius-2xs--sf-radius-3xl--sf-radius-4xl--sf-radius-full--sf-radius-l--sf-radius-m--sf-radius-none--sf-radius-outer adv--sf-media-radius--sf-radius-pill--sf-radius-s--sf-radius-scale adv--sf-radius-xl--sf-radius-xs--sf-radius-2xl--sf-radius-2xs--sf-radius-3xl--sf-radius-4xl--sf-radius-full--sf-radius-l--sf-radius-m--sf-radius-none--sf-radius-outer adv--sf-radius-pill--sf-radius-s--sf-radius-scale adv--sf-radius-xl--sf-radius-xsspace 16
--sf-space-2xl--sf-space-2xs--sf-space-3xl--sf-space-4xl--sf-space-base-max adv--sf-space-base-min adv--sf-space-l--sf-space-m--sf-space-none--sf-space-px--sf-space-ratio-max adv--sf-space-ratio-min adv--sf-space-s--sf-space-scale adv--sf-space-xl--sf-space-xssize 5
@@ -1278,8 +1286,8 @@ease 8
--sf-ease-bounce--sf-ease-elastic--sf-ease-in--sf-ease-in-out--sf-ease-linear--sf-ease-out--sf-ease-overshoot--sf-ease-springtransition 10
--sf-transition-colors--sf-transition-enter--sf-transition-exit--sf-transition-fast--sf-transition-form-field--sf-transition-opacity--sf-transition-overlay--sf-transition-shadow--sf-transition-slow--sf-transition-transformanimation 19
---sf-animation-blink--sf-animation-color-pulse--sf-animation-delay-1--sf-animation-delay-2--sf-animation-delay-3--sf-animation-delay-4--sf-animation-delay-5--sf-animation-fade-in--sf-animation-fade-out--sf-animation-float--sf-animation-ping--sf-animation-scale-down--sf-animation-scale-up--sf-animation-shimmer--sf-animation-slide-in-down--sf-animation-slide-in-left--sf-animation-slide-in-right--sf-animation-slide-out-up--sf-animation-slide-out-down--sf-animation-slide-out-left--sf-animation-slide-out-right--sf-animation-slide-in-up--sf-animation-spinanimation 23
+--sf-animation-blink--sf-animation-color-pulse--sf-animation-delay-1--sf-animation-delay-2--sf-animation-delay-3--sf-animation-delay-4--sf-animation-delay-5--sf-animation-fade-in--sf-animation-fade-out--sf-animation-float--sf-animation-ping--sf-animation-scale-down--sf-animation-scale-up--sf-animation-shimmer--sf-animation-slide-in-down--sf-animation-slide-in-left--sf-animation-slide-in-right--sf-animation-slide-in-up--sf-animation-slide-out-down--sf-animation-slide-out-left--sf-animation-slide-out-right--sf-animation-slide-out-up--sf-animation-spinborder 10
--sf-border--sf-border-scale--sf-border-strong--sf-border-style--sf-border-subtle--sf-border-width-1--sf-border-width-2--sf-border-width-3--sf-border-width-4--sf-border-width-hairlinefocus 5
@@ -1380,6 +1388,8 @@lumlocker 1
--sf-lumlocker advmask 2
--sf-mask-scrim-end adv--sf-mask-scrim-start advmedia 1
+--sf-media-radiusmotion 1
--sf-motion-scale advobject 2
@@ -1402,8 +1412,8 @@safe 4
--sf-safe-bottom adv--sf-safe-left adv--sf-safe-right adv--sf-safe-top advscrim 4
--sf-scrim-color--sf-scrim-direction--sf-scrim-gradient--sf-scrim-text-shadowscroll 3
---sf-scroll-shadow-size--sf-scroll-timeline-range-end adv--sf-scroll-timeline-range-exit-start--sf-scroll-timeline-range-exit-end--sf-scroll-timeline-range-start advscroll 5
+--sf-scroll-shadow-size--sf-scroll-timeline-range-end adv--sf-scroll-timeline-range-exit-end--sf-scroll-timeline-range-exit-start--sf-scroll-timeline-range-start advscrollbar 2
--sf-scrollbar-thumb--sf-scrollbar-tracksection 8
diff --git a/demos/generate.mjs b/demos/generate.mjs index b870b59f..1a936e40 100644 --- a/demos/generate.mjs +++ b/demos/generate.mjs @@ -61,6 +61,7 @@ const CURATED = { // zero-valued lengths → small but visible '--sf-bg-inset': '0.75rem', '--sf-bg-radius': '0.75rem', + '--sf-media-radius': '0.75rem', '--sf-box-border-width': '3px', '--sf-equal-rule-width': '2px', '--sf-radius-none': '0.4rem', @@ -97,10 +98,13 @@ const CURATED = { '--sf-field-required-marker': '" \\2737"', '--sf-color-mark-text': 'oklch(0.45 0.27 320)', '--sf-color-selection-text': 'oklch(0.98 0 0)', + '--sf-color-selection-text--alt': 'oklch(0.9 0.06 300)', '--sf-print-page-size': 'letter', '--sf-shadow-strength': '0.45', '--sf-scroll-timeline-range-start': 'entry 20%', '--sf-scroll-timeline-range-end': 'cover 60%', + '--sf-scroll-timeline-range-exit-start': 'exit 20%', + '--sf-scroll-timeline-range-exit-end': 'exit 80%', // 'none' max-widths → a concrete cap so the constraint is visible '--sf-h1-max-width': '40ch', '--sf-h2-max-width': '40ch', diff --git a/demos/ultimate-override.css b/demos/ultimate-override.css index cc2384c8..45cc9ce3 100644 --- a/demos/ultimate-override.css +++ b/demos/ultimate-override.css @@ -5,7 +5,7 @@ Perturbs every CONFIGURABLE (role: "knob") token to a valid, visibly-distinct value so full-api-demo.html can prove each one is wired end to end. - Coverage: 202 of 225 knob tokens overridden. + Coverage: 206 of 229 knob tokens overridden. 23 knobs are intentionally NOT perturbed (structural / meta / sentinel) — listed with reasons at the bottom of this file. ============================================================================ */ @@ -68,6 +68,7 @@ --sf-color-secondary-source-dark: oklch(from oklch(0.84 0.036 264) calc(l + 0.12) calc(c + 0.12) calc(h + 150) / alpha); /* was: oklch(0.84 0.036 264) */ --sf-color-secondary-source-light: oklch(from oklch(0.22 0.04 264) calc(l + 0.12) calc(c + 0.12) calc(h + 150) / alpha); /* was: oklch(0.22 0.04 264) */ --sf-color-selection-text: oklch(0.98 0 0); /* was: inherit */ + --sf-color-selection-text--alt: oklch(0.9 0.06 300); /* was: inherit */ --sf-color-success-source-dark: oklch(from oklch(0.70 0.144 145) calc(l + 0.12) calc(c + 0.12) calc(h + 150) / alpha); /* was: oklch(0.70 0.144 145) */ --sf-color-success-source-light: oklch(from oklch(0.50 0.16 145) calc(l + 0.12) calc(c + 0.12) calc(h + 150) / alpha); /* was: oklch(0.50 0.16 145) */ --sf-color-tertiary-source-dark: oklch(from oklch(0.74 0.198 295) calc(l + 0.12) calc(c + 0.12) calc(h + 150) / alpha); /* was: oklch(0.74 0.198 295) */ @@ -213,6 +214,9 @@ /* lumlocker */ --sf-lumlocker: 0.5; /* was: 0.65 */ + /* media */ + --sf-media-radius: 0.75rem; /* was: 0 */ + /* motion */ --sf-motion-scale: 1.6; /* was: 1 */ @@ -270,6 +274,8 @@ /* scroll */ --sf-scroll-shadow-size: 3.2rem; /* was: 2rem */ --sf-scroll-timeline-range-end: cover 60%; /* was: cover 30% */ + --sf-scroll-timeline-range-exit-end: exit 80%; /* was: exit 100% */ + --sf-scroll-timeline-range-exit-start: exit 20%; /* was: cover 70% */ --sf-scroll-timeline-range-start: entry 20%; /* was: entry 0% */ /* scrollbar */ diff --git a/docs/architecture.md b/docs/architecture.md index 7abcf34a..9c9ead41 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -47,23 +47,25 @@ core/ accessibility.css slashed.accessibility print.css slashed.print optional/ - tokens.components.css slashed.tokens (component tokens — incomplete, all commented out) + tokens.components.css slashed.tokens (component tokens for btn + card) theme-example.css slashed.themes (copy-and-customise rebrand example; not bundled) forms.css slashed.forms (classless native form-control styling) - components.css slashed.components (8 components — incomplete, all commented out) - utilities.css slashed.utilities (empty stub) + components.css slashed.components (btn + card — the only two components) + utilities.css slashed.utilities (curated subset active — heading/text-size/hover; rest commented) legacy.css slashed.legacy ``` -`optional/components.css` and `optional/tokens.components.css` are -**not yet complete** (pre-v1.0): their `@layer` declarations are real, but -every class definition and component token is commented out. They will -land incrementally in upcoming minor releases (additive, no breaking -changes). See [`docs/components.md`](components.md) for the eight -taken component names and the roadmap. +`optional/components.css` and `optional/tokens.components.css` ship exactly two +components — `.sf-btn` and `.sf-card`, live since v0.7.0. These are the only +components SLASHED carries: the framework stays BEM-first and token-first and +does not maintain a broad component library. See [`docs/components.md`](components.md) +for the component reference. -`optional/utilities.css` remains an empty stub — SLASHED is BEM-first by -design and ships no utility classes in 0.x. +`optional/utilities.css` ships a curated subset — the heading (`.sf-h1`–`.sf-h6`), +text-size (`.sf-text-*`), hover-transform (`.sf-hover-*`), list-reset, +marker-colour, alternate-selection, and sticky helpers are active; the rest stay +commented out. SLASHED is BEM-first by design, so it ships only this curated +subset of utility classes in 0.x. --- @@ -167,10 +169,9 @@ BEM control. **slashed.layout** — layout primitives: `.sf-stack`, `.sf-cluster`, `.sf-sidebar`, `.sf-cover`, `.sf-grid`, `.sf-container`, `.sf-content-grid`, `.sf-icon`, etc. Layout tokens declared in `tokens.layout.css`, overridable per-instance via `style="--sf-stack-gap: …"`. -**slashed.components** — UI blocks. Not yet complete (pre-v1.0): 8 component -names are taken (`button`, `card`, `badge`, `tag`, `alert`, `avatar`, -`modal`, `skeleton`) but all class definitions are commented out. When -the classes ship, every value goes through `var()`. Requires +**slashed.components** — UI blocks: `.sf-btn` and `.sf-card`, live since v0.7.0. +These are the only two components SLASHED ships — it stays BEM-first and does +not carry a broad component library. Every value goes through `var()`. Requires `tokens.components.css`. **slashed.macros** — recipes / patterns: `.sf-prose`, @@ -375,18 +376,19 @@ so `bundle.config.json` lists eight outputs in total — are built by | Bundle | Contents | |---|---| | `slashed.optimal.css` | all `core/` + `forms` | -| `slashed.optimal-components.css` | optimal + `tokens.components` *(incomplete)* + `components` *(incomplete)* | -| `slashed.optimal-utilities.css` | optimal + `utilities` *(empty)* | -| `slashed.full.css` | optimal + `tokens.components` *(incomplete)* + `components` *(incomplete)* + `utilities` *(empty)* | +| `slashed.optimal-components.css` | optimal + `tokens.components` + `components` *(btn + card — the only two)* | +| `slashed.optimal-utilities.css` | optimal + `utilities` *(curated subset active, rest staged)* | +| `slashed.full.css` | optimal + `tokens.components` + `components` *(btn + card)* + `utilities` *(curated subset active, rest staged)* | `optional/legacy.css` is **not bundled by default** — add it explicitly when you need back-compat shims. Because every rule sits in an `@layer`, concatenation order within a bundle does not affect the cascade. The bundler strips local `@import` statements (the explicit file list resolves them), so the `tokens.components` import inside `components.css` is inlined by listing -the token file first. `components.css` and `tokens.components.css` are -incomplete (every selector/token commented out, no CSS emitted); -`utilities.css` is an empty stub. Consumers can also build à la carte: raw +the token file first. `components.css` and `tokens.components.css` ship +`.sf-btn` / `.sf-card` and their tokens — the only two components; `utilities.css` +ships a curated subset (heading, text-size, hover, list-reset, marker, selection, +and sticky helpers active, rest commented). Consumers can also build à la carte: raw `core/` plus hand-picked optional files. Each bundle also has a layer-flattened `.flat` variant. @@ -445,12 +447,11 @@ Deliberate behaviours, documented so they aren't mistaken for bugs. --- -## Deferred (until the components ship) +## Deferred `@starting-style` and CSS anchor positioning are only meaningful attached to -a specific element/component transition (dialog, popover, tooltip). They -are out of scope while `optional/components.css` is incomplete (every class -commented out) and will be added with the components when they ship in -upcoming 0.x minors. The component-free part — scroll-driven animation -range tokens (`--sf-scroll-timeline-range-*`) — already ships in -`core/tokens.css`. +a specific element/component transition (dialog, popover, tooltip). SLASHED +ships only `.sf-btn` and `.sf-card` and stays BEM-first, so these belong to +consumer components rather than the framework and are out of scope here. The +component-free part — scroll-driven animation range tokens +(`--sf-scroll-timeline-range-*`) — already ships in `core/tokens.css`. diff --git a/copy-wip/github-pages-index.html b/index.html similarity index 98% rename from copy-wip/github-pages-index.html rename to index.html index 6a087c27..d9971142 100644 --- a/copy-wip/github-pages-index.html +++ b/index.html @@ -8,7 +8,7 @@The name is the manifesto. Seven promises, one stylesheet. -
A cascade-layer CSS framework: 685 design tokens, automatic dark mode, fluid type & spacing — zero JavaScript, zero build step. Override six tokens and the whole site rebrands.
+A cascade-layer CSS framework: 720 design tokens, automatic dark mode, fluid type & spacing — zero JavaScript, zero build step. Override six tokens and the whole site rebrands.
- - 685
- design tokens
+ - 720
- design tokens
- 15
- cascade layers
- 0
- lines of frontend JS
- 0
- build steps
@@ -572,13 +572,13 @@ One link tag. That's the toolchain.
One link tag. That's the toolchain.
/* jsDelivr CDN — drop into your CSS */
-@import "https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/slashed.optimal.min.css";
-
-<!-- or a <link> tag -->
+<!-- jsDelivr CDN — recommended -->
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/slashed.optimal.min.css">
+/* or @import — render-blocking & serialized, prefer <link> */
+@import "https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/slashed.optimal.min.css";
+
@@ -586,9 +586,9 @@ One link tag. That's the toolchain.
slashed.optimal.cssEverything live today: core + classless forms — recommended
- slashed.optimal-components.cssOptimal + the staged component layer (inert until v0.8)
- slashed.optimal-utilities.cssOptimal + the staged utility layer (inert in 0.x)
- slashed.full.cssOptimal + both staged layers
+ slashed.optimal-components.cssOptimal + the component layer — .sf-btn and .sf-card (the only two components)
+ slashed.optimal-utilities.cssOptimal + the utility layer — curated helpers active (heading, text-size, hover, list-reset, marker, selection, sticky), rest staged
+ slashed.full.cssOptimal + the component and utility layers
SLASHED relies on 2024 CSS — light-dark(), OKLCH relative colors, @property, pow() — so the browser floor is Chrome 125+, Safari 18+, Firefox 129+.
diff --git a/index.md b/index.md
deleted file mode 100644
index 37572f26..00000000
--- a/index.md
+++ /dev/null
@@ -1,244 +0,0 @@
----
-layout: default
-title: Home
----
-
-
-
-
- v0.6.19 — see what's new →
- CSS that gets out
of your way
- A cascade-layer framework with 840 design tokens, automatic dark mode, fluid type & spacing — and zero JavaScript, zero build step.
-
-
-
-
-
- 🎨
- OKLCH Color Engine
- 840+ tokens derived from a handful of source colors. Full palette, dark mode, and semantic roles — all automatic.
-
-
- 📐
- Fluid Type & Space
- Type and spacing scales that flow smoothly from mobile to 4K using CSS clamp() — no breakpoints needed.
-
-
- 🌗
- Automatic Dark Mode
- Light and dark palettes are derived from a single source color. Section-level theming with [data-theme].
-
-
- ⚡
- Zero Build Step
- Pure CSS custom properties. Drop in one <link> tag and customise with :root overrides. No Node, no bundler.
-
-
- 🔩
- @layer Architecture
- Sixteen explicit cascade layers keep specificity predictable and your overrides always on top.
-
-
- 🛠️
- Visual Configurator
- Live-preview every token, export override CSS, or share a config URL — all from the browser with no install.
-
-
-
----
-
-## Install
-
-
-/* jsDelivr CDN — drop into your CSS */
-@import "https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/slashed.optimal.min.css";
-
-
-
-<!-- or a <link> tag -->
-<link rel="stylesheet"
- href="https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/slashed.optimal.min.css">
-
-
-
-
-| Bundle | Includes |
-|--------|----------|
-| `slashed.optimal.css` | Core + classless forms — **recommended** |
-| `slashed.optimal-components.css` | Optimal + component stubs |
-| `slashed.optimal-utilities.css` | Optimal + utility classes |
-| `slashed.full.css` | Everything |
-
-[All CDN bundles →](https://cdn.jsdelivr.net/gh/codeslash-dev/SLASHED@dist/) · [GitHub Releases](https://github.com/codeslash-dev/SLASHED/releases) · [npm](https://www.npmjs.com/package/slashed)
-
-
-
----
-
-## Documentation
-
-
-
- Guides
-
-
-
- Reference
-
-
-
- Developer
-
- - LLM Guide AI-assisted development reference
- - API Index machine-readable catalogue
- - Comment Policy contributor conventions
- - Demo full component showcase
- - Full API Demo every class & token, live · dark mode
- - Full API Demo — overridden ultimate-override.css applied
- - Test Coverage visual regression suite
-
-
-
-
----
-
-