A lightweight, modular SCSS utility library built to plug into your workflow without dictating it.
npm install sass-hole
@use "sass-hole" as *; // or use an alias: @use "sass-hole" as sh;
This loads all variables, mixins, and utilities. Use an alias to avoid polluting global scope.
import "sass-hole";
This will work if your bundler (e.g., Vite, Webpack) supports importing SCSS or CSS files directly.
All available utility classes are documented in CLASSES.md
.
- ✨ SCSS-first, zero JavaScript
- 💡 Modular structure (
buttons
,forms
,grid
,typography
, etc.) - 🧩 Customizable via SCSS variables and mixins
- 🎯 Easy to extend and override
- 🔥 Built-in reset and theming potential
sass-hole/
├── scss/
│ ├── _reset.scss
│ ├── _variables.scss
│ ├── index.scss
│ ├── components/
│ ├── layout/
│ └── utilities/
└── package.json
If you want to generate a compiled CSS version:
sass src/index.scss dist/styles.css
Or add it to package.json
scripts:
"scripts": {
"build": "sass src/index.scss dist/styles.css",
},
Pull requests and feature ideas are welcome! Please:
- Fork the repo
- Create a new branch
- Make changes with clear commits
- Open a PR
MIT © Jordan Gerber
You can add these via shields.io:



sass-hole: for when your styles need a light touch... and a dorky name.