Uniformcss
A fully configurable utility class generator and CSS framework built for Sass projects.
A fully configurable utility class generator and CSS framework built for Sass projects. The project is written primarily in CSS, distributed under the MIT License license, first published in 2020. Key topics include: atomic-css, css, css-framework, sass, uniformcss.
<br /> <details open="open"> <summary>Table of Contents</summary> <ol> <li> <a href="#introduction">Introduction</a> </li> <li> <a href="#getting-started">Getting Started</a> <ul> <li><a href="#prerequisites">Prerequisites</a></li> <li><a href="#install-dart-sass-on-mac-os-x-or-linux">Install Dart Sass on Mac OS X or Linux</a></li> <li><a href="#install-dart-sass-on-windows">Install Dart Sass on Windows</a></li> <li><a href="#load-and-compile-uniform">Load and Compile Uniform</a></li> </ul> </li> <li><a href="#community">Community</a></li> <li><a href="#contributing">Contributing</a></li> <li><a href="#license">License</a></li> <li><a href="#contact">Contact</a></li> </ol> </details> <br />
Introduction
UniformCSS is a fully configurable utility generator and CSS framework built entirely in Sass. Get the power of a utility-first workflow without losing the productiveness of Sass. To see documentation, visit uniformcss.com
- Load and configure Uniform directly in Sass
- Build complex UI without ever touching your CSS
- Customizable CSS variable support
- Strict and consistent naming convention
- Collapse pseudo variants with comma compression
- Change utility shorthands, delimiters, and more
- Extract reusable components with
apply()mixin - Access theme settings with API functions
- Enjoy a wide range of colors, tints, shades, and opacities
- Built-in custom keyframe and animation support
Getting Started
Here are the instructions to build your first uniform.css. Please make sure you have the prerequisites installed before continuing on with the installation steps.
Prerequisites
Before you get started, ensure you have the following installed.
Install Dart Sass on Mac OS X or Linux
Install Dart Sass with Homebrew on Mac OS X or Linux by running the following command.
shbrew install sass/sass/sass
Install Dart Sass on Windows
Install Dart Sass with Chocolatey on Windows by running the following command.
shchoco install sass
Load and Compile Uniform
Add Uniform as a Sass module to your main.scss project. Follow these steps to load UniformCSS, compile, and watch for changes.
- Clone the repository
sh
# Change directory to where your main sass file lives cd my-project/sass/ # Clone project git clone https://github.com/ThinkUniform/uniformcss - Include the Uniform module in your
main.scssscss// main.scss @use "uniform" as *; - Compile your
uniform.cssshyarn uniform - Alternatively, you can compile and watch for changes
sh
yarn uniform:watch - Configure Uniform (optional)
scss
// main.scss @use "uniform" as * with ( $config: ( important: true, comma-compression: true, prefix: myProject, colors: ( custom-color-1: red, custom-color-2: blue ), ... ) );
Development & Testing
Uniform compiles a config map into an intermediate representation and then emits
CSS, JSON, or headless output. To guard that pipeline, the repo ships a snapshot
test harness that compiles a set of fixtures and diffs them against committed
baselines.
sh# Compile fixtures and diff against test/__snapshots__/ npm test # Refresh baselines after an intentional output change npm run test:update
Fixtures live in test/fixtures/ and cover the default build, the
non-compressed path, JSON output, a heavily customized config, and the
apply() mixin. Because comma-compressed output can change selector order
without changing meaning, test/normalize.js expands comma groups and compares
selector → declaration sets so you can confirm two stylesheets are
functionally equivalent before updating a snapshot:
shnode test/normalize.js test/__snapshots__/default.css test/__out__/default.css
Community
If you're ever stuck, need help, or wish to have a general discussion about this project, please get involved with the following community channels.
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Thanks to all the people that have contributed in making this project great!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
The source code is licensed under the MIT agreement. You are more than welcome to clone and customize this repo to suit your needs.
Contact
Jin Su Park – Creator and Author<br>
@jinsu • jinsupark.com
Contributors
Showing top 1 contributor by commit count.
