Context
A systematic comparison of SLASHED against other CSS framework feature sets surfaced a small number of genuine gaps. Many things that appeared missing on first glance are already in the codebase (header height offset, text-wrap balance/pretty, border tokens, icon tokens, clickable parent, logical properties in core layers). The gaps below are what remained after reading the actual source.
Gap 1 — Focus style mode (outline vs. box-shadow)
What exists: :focus-visible uses outline (hardened with !important in accessibility.css). Tokens --sf-focus-ring-width, --sf-focus-ring-offset, --sf-focus-ring-style, --sf-focus-ring-color, and the composite --sf-focus-ring-shadow are all defined.
What's missing: No supported path to switch the focus indicator style from outline to box-shadow without fighting the !important in accessibility.css. Comparable frameworks offer this as a first-class toggle (change one token or add one class).
Options to consider:
- Document the override pattern clearly (consumers write unlayered CSS with
!important)
- Ship a
.sf-focus-shadow modifier that switches :focus-visible to use box-shadow: var(--sf-focus-ring-shadow) at a higher layer or equal specificity
- Or accept the current design as intentional:
outline is the correct a11y default and box-shadow is always opt-in at component level
Gap 2 — .sf-prose missing button and inline link spacing rules
What exists: .sf-prose has context-aware spacing for > * + *, :is(h2,h3,h4) + *, li + li, blockquote, pre, img, video, figure, table.
What's missing: No explicit spacing rules for <a> (inline links) or <button> elements within prose. .sf-flow covers generic elements with the uniform owl, but there's no prose-specific treatment for these inline elements that may appear between paragraphs.
Likely small change — add a rule to sf-prose that handles button-in-prose vertical rhythm.
Already on roadmap (not new, listed for completeness)
- Logical property audit — physical properties remain in some layout/macros rules. Tracked in roadmap under "Before v1.0".
@property for spacing/shadow tokens — only brand colors are currently registered. Tracked in roadmap under "Post-1.0 Enhancements".
- Components layer — stubs exist, implementations deferred post-1.0.
Context
A systematic comparison of SLASHED against other CSS framework feature sets surfaced a small number of genuine gaps. Many things that appeared missing on first glance are already in the codebase (header height offset, text-wrap balance/pretty, border tokens, icon tokens, clickable parent, logical properties in core layers). The gaps below are what remained after reading the actual source.
Gap 1 — Focus style mode (outline vs. box-shadow)
What exists:
:focus-visibleusesoutline(hardened with!importantinaccessibility.css). Tokens--sf-focus-ring-width,--sf-focus-ring-offset,--sf-focus-ring-style,--sf-focus-ring-color, and the composite--sf-focus-ring-shadoware all defined.What's missing: No supported path to switch the focus indicator style from
outlinetobox-shadowwithout fighting the!importantinaccessibility.css. Comparable frameworks offer this as a first-class toggle (change one token or add one class).Options to consider:
!important).sf-focus-shadowmodifier that switches:focus-visibleto usebox-shadow: var(--sf-focus-ring-shadow)at a higher layer or equal specificityoutlineis the correct a11y default and box-shadow is always opt-in at component levelGap 2 —
.sf-prosemissing button and inline link spacing rulesWhat exists:
.sf-prosehas context-aware spacing for> * + *,:is(h2,h3,h4) + *,li + li,blockquote,pre,img,video,figure,table.What's missing: No explicit spacing rules for
<a>(inline links) or<button>elements within prose..sf-flowcovers generic elements with the uniform owl, but there's no prose-specific treatment for these inline elements that may appear between paragraphs.Likely small change — add a rule to
sf-prosethat handles button-in-prose vertical rhythm.Already on roadmap (not new, listed for completeness)
@propertyfor spacing/shadow tokens — only brand colors are currently registered. Tracked in roadmap under "Post-1.0 Enhancements".