Skip to content

Latest commit

 

History

History
79 lines (59 loc) · 3.02 KB

README.md

File metadata and controls

79 lines (59 loc) · 3.02 KB

Elodin

Warning: Elodin is still WIP and experimental. It is not recommended to use it in production yet. There might be unknown bugs and the APIs might change rapidly.

Elodin is a small styling language that aims to provide a universal way to author user interface styles.

  • Component-based:
    Elodin styles are authored on component-base and fully encapsulated from other styles accounting for predictable styling without side-effects. It also enables automatic code-splitting where each component is rendered to a new file.
  • Quick learning-curve:
    The syntax is a mix of CSS and JavaScript with some concepts from ReasonML and thus already familiar to many developers. It is declarative and unlike CSS only supports one value per property.
  • Write once, use everywhere:
    Elodin compiles to a variety of different languages, platforms and libraries without having to change a single line. It's truly one file for all targets!
  • Type-safe properties:
    The compiler will validate every property-value pair and throw on invalid rules resulting in solid code and bulletproof output. If it compiles, it works!

License Spectrum npm downloads

The Gist

variant Mode {
  Dark
  Light
}

style Button {
  justifyContent: center
  alignItems: flexEnd
  paddingBottom: 10
  paddingTop: 10
  fontSize: 15
  color: rgb(255 0 255)

  [Mode=Dark] {
    backgroundColor: black
  }

  [Mode=Light] {
    backgroundColor: white
  }
}

style Label {
  fontSize: 10
  color: grey
}

Documentation

Examples

Tooling

Contributing

Feel free to ask questions and give feedback on Spectrum.
For more information follow the contribution guide.
Also, please read our code of conduct.

License

Elodin is licensed under the MIT License.
Documentation is licensed under Creative Commons License.
Created with ♥ by Robin Weser.