This is the first in a series of posts where we will take a look at the CSS Grid Layout specification. We’ll start right at the beginning, with all the stuff that appears at the top of a CSS specification.
While this all seems like a lot of boring legal sounding material, the beginning of the specification gives you useful information if you are about to start diving into a new spec. Importantly, it informs you of the status of this spec so you can tell how stable it is likely to be. It gives links to draft versions and previous versions. It also lets you know how to get involved with commenting on or raising specification issues. Let’s take a look at some key parts of this initial section.
Where is the spec?
Here is the latest version of the CSS Grid Level 1 specification. At the time of writing this is the Candidate Recommendation published on the 9th of February 2017. You can find links to previous versions of the spec under the heading Previous Versions.
You can also refer to the work-in-progress version of any specification. This will be linked from the spec and is referred to as an Editor’s Draft, as it is the place where the specification editors make changes. Depending on how mature the specification is the differences between the published version and the Editor’s draft could range from small editorial tweaks to major rewrites.
If you are thinking about raising an issue against the spec itself, then it would be a good idea to go look at the latest Editor’s Draft first to see if it has already been addressed.
Who makes changes to a specification?
Each CSS specification has editors. For the Grid specification you can see that we have Tab Atkins from Google, Elika J. Etemad / fantasai - an Invited Expert, and Rossen Atanassov from Microsoft.
While minor edits to a published specification will be made without constant referral to the CSS Working Group, significant changes and additions will be discussed at a face to face meeting or in the weekly telephone conference. This ensures that a wide range of opinions are heard. Once consensus has been reached one of the editors will make the change to the specification. People other than specification editors do also make changes to a specification. Most of the time people will raise an issue and the editors will make the change. However the specs are all on GitHub so a pull request can be made against the spec to add an example, or fix an error. The editors would then review that pull request, ask for changes or merge it perhaps with some edits of their own. You will find an acknowledgements section later on in the spec to detail non-editor involvement.
The work of the CSS Working Group happens in the open. If you wonder why a certain decision was made you can search the archives of www-style, which is where the transcript of every working group meeting or weekly call is posted. If you want to comment on a specification then you can do so by commenting on, or raising a new Issue on GitHub. You don’t need to be a CSS Working Group member to do that - input from people outside of the group is very much welcomed.
Here you will find a brief description of what this specification is, and also what CSS is. It’s a very brief overview for something the size of grid!
What is the current status of the grid spec?
The Status section of the document links to a lot of material about patents and W3C process, that are probably less of interest to web developers. It does however, also include information about where this document is in the W3C process.
CSS Grid Layout Level 1 is now a Candidate Recommendation, I explained this status in a previous blog post. It’s useful to understand the status of a specification because that gives you understanding as to whether the things you are reading about are likely to change or not.
In the case of Grid Level 1, only minor changes are likely to be made at this point. Not only is the specification at CR status, but we have interoperable implementations of much of the specification at this point. Gaining those implementations is important for any specification, it shows that the specification makes sense and can be implemented in more than one browser.
‘at risk’ items
This requirement for interoperable implementations is why there is an ‘at-risk’ section in the specification. Things may be moved out of a spec to allow it to have these two implementations for all features. It doesn’t mean that feature is being dropped forever, or even that discussion about it has stopped. If you compare the 9th February version with the current Editor’s Draft you will see that subgrid, one of the at-risk items, has now been moved out of the Level 1 specification, however the feature was discussed at the face to face meeting last week, pending publication of a level two version of the Grid spec.
Now you know!
So you now know what all that stuff at the top of CSS specifications is, and some key bits to pick out. In the next post we’ll take a look at the Introduction to the specification.