I’ve been working on FSCSS (Figured Shorthand CSS) — an experimental FSCSS preprocessor.
FSCSS tries to reduce boilerplate with compact syntax and helper functions.
I already introduced FSCSS before, but this time I wanted to share a clear list of some core features.
✨ Core Features
Variables (
$var
,str()
) → reusable valuesStyle Replacement (
%n()
) → shorthand for repeated propertiesRepeat Function (
rpt()
) → quick repetitionCopy Function (
copy()
) → copy part of a valueString Extractor (
@ext()
) → extract substringsDrops / Shared Properties → reuse style groups
Attribute Selectors → extended selector logic
Keyframes (
$(@keyframes …)
) → shorthand animation blocksVendor Prefixing (
-*
) → automatic prefixesFunction-based (
@fun
) → reusable function-like blocksArray Methods (
@arr
) → define and loop arrays🎲 Random Function (
@random()
) → runtime randomness➕ Number Calculation (
num()
) → math in styles🔗 Import (
@import
) → include external FSCSS files@event
→ event-based styling logicexec()
→ debugging and runtime helpers
⚡ Example
/* CSS */
.box, .card {
animation: trans 3s ease-in infinite;
}
@keyframes trans {
from {
width: 0;
height: 0;
background: red;
}
to {
width: 200px;
height: 200px;
background: blue;
}
}
/* FSCSS */
$(@keyframes trans, .box .card &[3s ease-in infinite]) {
from {
%2(width, height [: 0;])
background: red;
}
to {
%2(width, height [: 200px;])
background: blue;
}
}
🔗 Try It
👉 Features
👉 CodePen Demo
👉 GitHub Repo
💬 Feedback
This is still experimental — I’d love to hear your thoughts:
Does FSCSS make sense, or is it harder to read?
Which of the features above feels most useful to you?
Would you try this for prototyping or animation-heavy projects?
Thanks for reading 🙏
Top comments (0)