🔗About Bowdy
Bowdy (code name bro) is a fast CSS preprocessor written in the Nim programming language. It transpiles BASS files (.bass extension) to standard CSS, and is designed for fast compilation, a typed system that catches errors early, and syntax that stays close to CSS while adding variables, nesting, mixins, control flow, and modules.
Plain CSS is valid BASS, so you can adopt it incrementally. BASS files compile to .css, minified by default.
Bowdy is usable, but still alpha quality. If you encounter any issues or have feature requests, please visit the GitHub page to report them.
var primary = #0d6efd
var radius = 4px
.card
color: $primary
border-radius: $radius.card{color:#0d6efd;border-radius:4px}🔗Key Features
Here are some of the key features that make Bowdy stand out
- Fast stack-based VM with an opt-in JIT compiler
- Typed system for CSS values (
color,length,number, and more) with compile-time checks - Familiar CSS syntax with indentation or brace blocks, freely mixed
- Variables (
var,const) with optional type annotations and module exports - Nesting with parent selector
&, combinators, and comma-separated selectors - Reusable mixins with typed parameters and named arguments
- Control flow (
if/elif/else,for,while,case/of) and functions (fn/func) - Module imports for relative files and packages
- Modern CSS passthrough: custom properties,
var(),calc(),color-mix(), gradients, and at-rules - Source maps, bundling, and pretty-printed output
- Embeddable in Nim applications via
import bowdy - Open Source | LGPL-3.0-or-later License
- Written in Nim language | Made by Humans from OpenPeeps
🔗Getting Started
To install Bowdy, continue with the Installation page, then read the Syntax guide.
🔗Contributions & Support
- Found a bug? Create a new Issue
- Wanna help? Fork it!
🔗License
Bowdy is released under the LGPL-3.0-or-later license. Made by Humans from OpenPeeps.