w3c / w3c/csswg-drafts

Define guidelines for preprocessors, libraries, frameworks

Open
#7,150 8 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Bikeshed
Stars
4.9k
Forks
816
PR merge metrics
PR metrics pending

Description

Guidelines already exist for polyfills : https://www.w3.org/2001/tag/doc/polyfills/
A similar document with considerations and suggestions could be created for CSS preprocessors, libraries, frameworks.
(Any tool can choose to adopt these or not)

The goal of this document would be to prevent conflicts between future CSS features and non-standard things in developer tools.

if this already exists please let me know, I couldn't find it

"preprocessors, libraries, frameworks" will be referred to as "tools".


  1. In tools it is preferable not to invent new syntax as they are not used in a vacuum.
    Developers also use linters, static analysis and need IDE features (syntax highlighting, auto complete, ...).
    Using existing syntax/grammar with custom keywords makes it much easier to roll out a new feature in one tool, without requiring the whole ecosystem to adapt.

  2. tools can move at a much faster pace than the CSS spec and browsers.

  3. The most obvious name for a feature is often the best name. (and multiple distinct features can all have the same best name)

  4. there is no working group for tooling (that I know of)

These factors make it absolutely certain that conflicts will keep on happening without proper guidelines.


Conflicts are not only a burden on the creators and users of preprocessors when tools and source code need to be updated.
Users might have years of experience and knowledge associated with how a certain keyword works.

This is an issue today with PostCSS plugins transforming nested CSS.
Users expect & to behave in a certain way based on experience with Sass and see the specced feature as bugged.

Whereas avoiding conflicts will allow developers to freely mix tooling features and native features.


Note :

It is not my intention to have a document that defines how tools must work or what they can or can not implement.

Only to have a safe framework to let tools grow together with native CSS features.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the linked W3C polyfills guidance and the issue's proposed considerations for CSS preprocessors, libraries, and frameworks. The work is done when a comparable guidance document is developed and published with suggestions for avoiding conflicts between tooling behavior and future CSS features.

Written by the indexing model from the issue text.

Assessment

Tech stack
css
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.