Monday 16 July 2018

Build system for a user style

Background

I want to transform my GitHub Windows Edition user style, which suddenly received a lot of attention, from one pure CSS file into a more modern project, but I'm new to frontend development, so I'm at a loss about choosing a build system. If it was something standard, I guess any set of tools would have worked, but user styles have very peculiar requirements, and mine especially so.

Question

I need a language which compiles to CSS, a general-purpose language and a build system (likely with plugins) which can perform the following:

  • Merge everything into one big CSS file while preserving header comments (.user.css header)
  • Transform image files into data URIs inside CSS variables
  • Include some files (or parts of files) inside specifically formatted .user.css comments which consist of instructions which can contain CSS parts inside JSON or something weirder
  • Transform RegEdit .reg file with binary data into several sets of CSS variables containing RGB data
  • Produce optimized image files for border-image properties from that RGB data and put them into Data URIs too
  • Having some way to deal with uploading to userstyles.org and updating its style settings would be nice.

And general requirements:

  • Cross-platform
  • Supported in modern IDEs
  • ...you get the idea

Why

As a C# developer, I can hack together a console app that performs all that stuff, but I suspect lots of frontend developers won't appreciate the choice, so it could be a barrier to open-source development. (C# is cross-platform, but it isn't the most commong thing on *nix.) Looks like almost all frontend relies on Node.js nowadays, so I guess I have to learn it, but there're so many build systems to choose from, that when multiplied by CSS-based languages, it would take me ages to choose the correct set.

Overall, if there's a short path, I'd like to know about it before starting to reinvent the wheel.



from Build system for a user style

No comments:

Post a Comment