An open API service indexing awesome lists of open source software.

https://github.com/robinweser/elodin-old

Quality and Optimisation tools for CSS in JavaScript
https://github.com/robinweser/elodin-old

code-quality css css-in-js developer-experience developer-tools dx linter optimization quality-assurance style-linter

Last synced: 7 months ago
JSON representation

Quality and Optimisation tools for CSS in JavaScript

Awesome Lists containing this project

README

          

> **Deprecated**: This repository has been renamed and deprecated. There's something new coming soon that'll be named Elodin instead, but it provides similar benefits & ideas, just in a complete different way.

# Elodin

Elodin is a plugin-based quality and optimization tool for CSS in JavaScript libraries.

It helps to write bulletproof and valid styles and pushes developer experience to a next level.

Elodin is built on top of [Bredon](https://github.com/rofrischmann/bredon) which is a modern CSS value compiler.

TravisCI Test Coverage npm downloads npm version Gitter

## Support Us
Support Robin Frischmann's work on [Fela](https://github.com/rofrischmann/fela) and its ecosystem (Elodin) directly via [**Patreon**](https://www.patreon.com/rofrischmann).

Or support us on [**Open Collective**](https://opencollective.com/fela) to fund community work. This also includes Elodin as well.

Thank you to all our backers!










## Installation
```sh
yarn add elodin
```
You may alternatively use `npm i --save elodin`.

## Features
* Validation using [bredon-validate](https://github.com/rofrischmann/bredon/blob/master/docs/api/bredon-validate/validate.md)
* Most Plugins are fixable
* Detailed Warnings

## The gist
```javascript
import elodin from 'elodin'
import validation from 'elodin-plugin-validation'
import longhand from 'elodin-plugin-longhand'

// create a preconfigured linter
const process = elodin({
plugins: [
longhand(),
validation({
removeInvalid: true
})
],
fix: true
})

const style = {
padding: '20px 0 10px 5em',
fontSize: '15pt',
lineHeight: '1.2em',
width: 'solid'
}

const warnings = process(style)

// using the fix option will automatically fix warnings
style === {
paddingTop: '20px',
paddingBottom: '10px',
paddingLeft: '5em',
fontSize: '15pt',
lineHeight: '1.2em'
}
```

#### Catching Warnings
If the `fix` option is disabled, Elodin will return a list of warning for every style object.

Taken the above example:

```javascript
warnings.forEach(warning => console.log(warning.description))
// => The value "solid" is not valid in combination with "width".
```

## Documentation
> Coming soon.

## Support
Got a question? Come and join us on [Gitter](https://gitter.im/rofrischmann/elodin)!

We'd love to help out. We also highly appreciate any feedback.

## Contributing

This project exists thanks to all the people who contribute.

We highly appreciate any contribution.

For more information follow the [contribution guide](.github/CONTRIBUTING.md).

Also, please read our [code of conduct](.github/CODE_OF_CONDUCT.md).

## License
Elodin is licensed under the [MIT License](http://opensource.org/licenses/MIT).

Documentation is licensed under [Creative Common License](http://creativecommons.org/licenses/by/4.0/).

Created with ♥ by [@rofrischmann](http://rofrischmann.de).