Last updated

🔗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.

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

🔗License

Bowdy is released under the LGPL-3.0-or-later license. Made by Humans from OpenPeeps.