CSS WG Blog front page
CSS Syntax Level 3 Candidate Recommendation
The CSS WG has published a Candidate Recommendation of the CSS Syntax Module Level 3. This module describes, in general terms, the basic structure and syntax of CSS stylesheets. It defines, in detail, the syntax and parsing of CSS – how to turn a stream of bytes into a meaningful stylesheet.
This is a complete rewrite of the obsolete 2003 draft. It describes CSS tokenization and parsing in imperative recursive descent style, and exhaustively covers error handling. Additionally, the An+B syntax used in :nth-child() and related Selectors is now described in terms of the same tokenizer as the rest of CSS.
Changes since the Last Call Working Draft are listed in the Changes section.
As always, please send feedback to the (archived) public mailing list www-style@w3.org with the spec code ([css-syntax]<<
) and your comment topic in the subject line. (Alternatively, you can email one of the editors and ask them to forward your comment.)
Minutes Telecon 2014-02-26
- SimonSapin requested that CSS 2.1 be posted on a publicly available site. Though most of the group agreed with him that it should be public, there was much discussion on how to handle importing the log of previously private comments.
- Resolved: plh will handle the comments log from CSS2.1 over the next two weeks. If no objections are made to it becoming public, SimonSapin will move CVS to mercurial.
- ChrisL will publish the errata document for Media Queries 3.
- TabAtkins requested that Font Loading be brought to LC. The group requested another week in order for TabAtkins to finalize some edits and for everyone to have a chance to review the document further.
- Krit reminded everyone to review CSS Masking and give comments before it goes back to LC.
- TabAtkins reported that he had reviewed the implications of switching Shadow DOM from combinators to pseudo elements that Fantasai suggested. Mostly he found no issue, but was concerned about
shadow-deep
. TabAtkins and Fantasai will meet in person later this week and report their conversation back to the mailing list.
- Resolved: Accept TabAtkins’s proposal for Counter Styles and reject the comment from Xidorn in the disposition of comments.
Full Minutes
Minutes Seattle F2F Part VI: 2014-01-29 PM – Masking, Gradients, SVG Text Filling, Media Query Macros, CSSOM Values, Custom Filters, SVG Hover Effects
Masking
- Discussed mapping of CSS boxes (border/padding/margin/content) to SVG concepts.
- Resolved: Use the keywords fill/stroke/viewbox for
clip-path/mask-origin/mask-clip
.
- Resolved: Use roc’s definition of obb/usou in HTML content – same geometry, coord space is 1 user-space unit wide/tall in obb, user-space unit = CSS px in usou.
- Resolved: New WD for Masking.
Full Minutes || Spec Referenced
Gradients
- Discussion of color functions used for gradient interpolation.
- Resolved: Change CSS Images 4′s specification of colorless color stops to use Rik’s proposal (i.e. use power curves).
Full Minutes || Spec Referenced
SVG Text Filling
- Discussed using multiple fills/strokes in SVG.
- Resolved: Import the background shorthand syntax for multi-fill and multi-stroke into SVG minus the attachment part of the syntax.
Full Minutes
Media Query Macros
- Tab introduced a proposal for aliasing media queries and selectors for easier reuse.
- Resolved: Media Queries part of TabAtkins’s proposal to be added to Media Queries 4, new ED for Custom Selectors granted.
Full Minutes || Specs Referenced: Media Queries 4, Custom Selectors
CSSOM Values API
- Tab presented a proposal for a new CSSOM API that avoids the need for parsing CSS values in JS. Currently taking initial feedback.
Full Minutes
Custom Filters
- Resolved: Take custom shaders out in a week, unless somebody objects before that.
Full Minutes || Spec Referenced
SVG Hover Effects
- CSSWG and SVGWG discussed translating some common hover effects from CSS to SVG, and the problems thereof.
Full Minutes
Minutes Seattle F2F Part V: 2014-01-29 AM – Page Selectors and Page Groups, Seoul F2F, CSS2.1, Region Styling, Scroll Snap Points, will-change, Blending and Compositing
Page Selectors and Page Groups
- Resolved:
page: name
is not inheritable, creates a group, but does not force page breaks between groups of the same name (for compat). First page of the group might be the last of another group. Delete the page-group
property.
- Resolved: Keep
:nth()
as the name, but extend functionality like L4 :nth-child()
to solve the “first of group” problem.
- Resolved: Add
:first(A)
to select first page of an A group. (A:first only selects a first page of the doc that also happens to be named A).
Full Minutes || Spec Referenced
Seoul F2F
- Dates are May 19 to 21 hosted by Samsung. Meetup on May 22.
Full Minutes
CSS2.1
- Resolved: Change to MAY on default object size shrinking from 300×150 for small devices.
Full Minutes
Region Styling
- Resolved: Shift Region Styling out of Regions, merge with page-based and overflow-fragment-based styling (which will all use the same basic syntax and cascade rules), put into CSS4 Cascade for now.
Full Minutes || Specs Referenced: Regions, CSS4 Cascade
Scroll Snap Points
Microsoft presented its proposal for CSS scroll-snapping properties. There was a lot of feedback.
- Some use cases presented:
- Scrolling through a photo album, wanting to snap each photo to the center of the window, or slightly offset from the center of the window.
- Scrolling through photos filmstrip style, wanting to snap to every 5 photographs.
- Scrolling in 2D: snapping to faces in a photo or points on a map.
- Effect of zooming on the use cases; whether properties set for one zoom level will still work in larger/smaller viewports than expected.
- Some structural concerns:
- Removing the ‘elements’ value and just merging lists of snap points.
- Having the elements within a scroller, not the scroller, determine scroll-snapping behaviors.
- Syntactic concerns (consistency with the rest of CSS on capitalization and hyphenation, use of commas).
- Discussion of -x/-y properties and/or use of
position
.
- Multiple snap points per element.
- Interaction with box-sizing vs. using box-sizing keywords.
- Behavioral concerns:
- Distinguishing mandatory vs. proximity behavior. Possibly mixing the two within a scroller.
- Snapping points vs. snapping areas.
- Distinguishing various snapping behaviors, e.g. accelerating towards a snap position vs. resisting leaving a snap position.
Microsoft will draw up a new draft for review by the WG after considering all feedback; currently withholding FWPD until the draft better represents the views of the WG.
Full Minutes
will-change
- Discussed
will-change
proposal, interaction with performance and optimization, and effects on stacking context generation. Tab was tasked with taking the proposal to the Performance WG for feedback. Holding off on FPWD for feedback on general approach.
- Resolved: Publish
will-change
in the CSS WG repo as an Unofficial Draft
Full Minutes
Blending & Compositing CR
- Resolved: Compositing to CR, pending the edit nits brought up today.
Full Minutes || Spec Referenced
Minutes Seattle F2F Part IV: 2014-01-28 PM – Fragmentation, Flexbox, Styling, Serialization of Shapes, Regions
Fragmentation
- Extensively discussed element/box/fragment distinction.
- Resolved: Use the terminology “element”, “box”, and “fragment”
- Resolved: Put fantasai’s explanation (see full minutes for explanation) of element/box/fragment distinction in Display and Fragmentation.
- Resolved: Don’t use “element”, “box”, or “fragment” in new terms that aren’t elements, boxes, or fragments. Where possible, convert old terminology accordingly as well.
- Resolved:
border-radius
should get sliced across fragments, maintaining unfragmented geometry.
- Resolved: Overflow that breaks into a new fragment container does so by forcing its container to generate an additional zero-height fragment (which then contains the transform origin).
Full Minutes || Specs Referenced: Display, Fragmentation
Flexbox
- Tab explained that the flex distribution algorithm is changing for flex totals between zero and one (non-inclusive). Intent is to make this range continuous (rather than discontinuous, as currently). Reviews on recent changes to Flex Distribution Algorithm are welcomed.
- Discussed problem of implied minimum size of flex items (issue listing), which has gone back and forth a couple times as various cases come up for consideration (and was left open since Eliott’s post on it last year).
- Resolved: No change to Flexbox spec for handling
br
(but see below).
Full Minutes || Spec Referenced
Styling br
- Resolved: In Display Module, define
br { display-box: contents; content: '\A'; white-space: pre; }
to work. (This should result in change to handling of display: none
, and change to HTML spec once published.)
Full Minutes || Spec Referenced
Serialization of Shapes
- Resolved: Serialize a computed shape value per the email from astearns.
- Resolved: New Last Call for Shapes with a 3-week period.
Full Minutes || Spec Referenced
Regions
- Long discussion of:
- whether or not elements (as opposed to just pseudo-elements) should be allowed to become regions,
- whether or not / how this question is blocking progress,
- whether we care about flowing through chained boxes (we do),
- various other concerns with regions and handling of issues thereof.
- Resolved: Close issue #1 on Regions. Noted that there was a formal objection from at least one person.
Full Minutes || Spec Referenced
Minutes Seattle F2F Part III: 2014-01-28 AM – Media Queries, Baseline Grids, CSS3 Color, Reversed Lists, Transforms, Display Module
Media Queries
- Discussed process of fixing trivial errors in Media Queries 3.
- Resolved: Update Media Queries 3 wording on never having to evaluate a style sheet unless specified explicitly otherwise.
- Florian and Tab presented an overview of the changes in Media Queries 4, particularly:
- deprecating types in favor of features.
- specific media features being introduced.
- introducing mathematical comparison syntax in addition to min-/max-.
- expanding list of falsy values.
- The CSSWG gave feedback on the Media Queries 4 proposal, including various fixes and ideas to explore. (See full minutes for details.)
- Resolved: Add value ‘<' feature syntax (value op name form), including '='.
- Resolved: Publish First Public Working Draft of Media Queries 4, add Tab as editor.
Full Minutes || Specs Referenced: Media Queries 3, Media Queries 4
Baseline Grids
- Resolved: Add astearns, fantasai as editors to line-grid module.
- Resolved: Publish First Public Working Draft css-line-grid.
Full Minutes || Spec Referenced
CSS3 Color
- Reviewed status of
currentColor
erratum / implementations.
Full Minutes || Spec Referenced
Reversed Lists
- Resolved: Keep
counter-reset
magic for ol reversed
lists in level 3.
Full Minutes || Spec Referenced
Transforms
- Discussed Simon Fraser’s proposal for
transform-style: auto
to make transform flatting make more sense by default. Details will be posted to www-style for discussion.
Full Minutes || Spec Referenced
Display Module
- Resolved: Add fantasai’s run-in model to display model, with clarifications/fixes needed to solve bzbarsky’s issues.
- Discussed various clarifications that are needed in the spec.
- Resolved: Publish First Public Working Draft Display Module.
Full Minutes || Spec Referenced
Minutes Seattle F2F Part II: 2014-01-27 PM – Propdef Tables, Grid Layout, Issue Tracking, CSS3 Backgrounds and Borders, CSS2.2, Counter Styles, Transitions, Animations, Selectors, Display
Propdef Tables
- Discussed the duplication of data (specifically, the form of computed values, which appears both in the Computed Value and Animatable lines) in propdef tables and what to do about it.
Full Minutes
Grid Layout
- Deferring proposal for a joiner pattern in
repeat()
for now.
- Removing
grid-auto-position
property and grid-auto-flow: none
value. Adding new stack
value (stacks items into first empty grid slot) instead. (Initial value is ‘row’; Win8 apps might need ‘stack’ specified in the UA style sheet.)
- Grid Layout is considered design complete at this stage, and anyone planning to send feedback review it at the high level. Next phase will be working out exact details and wording of layout algorithms, etc.
Full Minutes || Spec Referenced
Issue Tracking
- It was agreed that we have too many issue-tracking systems at the moment. However since they all suck (in different ways), there was no consensus on moving to a single tracker.
- Resolved: Be more vigilant about specs actually declaring their issue tracking style.
Full Minutes
CSS3 Backgrounds and Borders
- Resolved: Publish CSS3-Background as LC with missing edit, 3-week LC period.
Full Minutes || Spec Referenced
CSS2.2
- Waiting on either tests or Process change before publication.
Full Minutes || CSS2.2 Wiki
Counter Styles
- Resolved: Drop definition of extended CJK counter styles (i.e. numbering beyond 10K) because people can’t agree on when to drop ones and zeroes.
- Resolved: Counter Styles to CR, once Tab finishes off the Disposition of Comments.
Full Minutes || Spec Referenced
-webkit-color-adjust
- Resolved: Add this property/functionality to Color 4 with names TBD.
Full Minutes || Spec Referenced
Transitions
- Discussed status of Transitions. A bunch of issues need to move to other specs.
- Resolved: Remove the paint server definition from Transitions, deferring to the Images definition for transitioning
values.
- Resolved: Remove the gradient animation text from Transitions.
Full Minutes || Specs Referenced: Transitions, Images
Animations
- Resolved: Remove bit about waiting for document load event before starting animations.
Full Minutes || Spec Referenced
Selectors
- Discussed
:has()
vs. subject indicator. Plan to poll authors.
- Went through Selectors spec to determine what to keep. Plan to
defer:
reference combinator, :local-link()
.
- The following are scheduled for further investigation:
:drop()
:-moz-ui-valid
:read-write
- column combinator
- Resolved: Complex selectors in
:matches/:not
to move to fast profile, assuming bz agrees.
- Resolved: Drop
:nth-match()
, move functionality to :nth-child()
.
- Still need a better name for
:blank
.
Full Minutes || Spec Referenced
Display
- Some properties needed renaming. Current propositions:
box
-> display-box
display-extras
-> display-decoration
Full Minutes || Spec Referenced
Minutes Seattle F2F Part I: 2014-01-27 AM – Variables, Masking, Syntax, Shapes & Serialization, Shadow DOM
Variables
- Resolved: Publish Variables as CR once Tab has completed edits on remaining issue and prepared at Disposition of Comments.
Full Minutes || Spec Referenced
Masking
- Discussed addition of reference-box arguments to shape arguments for clipping.
- Resolved: Defer the
bounding-box
value from clip-path
and mask-origin
to next level.
- Resolved: Clipping/masking properties respond to
box-decoration-break
same as background images.
- Resolved: Keep
mask-box
. No opinion on whether or not to do a slice image function yet; use cases are needed (that wouldn’t be solved by multiple border images).
- Discussed coordinate systems of
when applied to HTML+CSS.
- Plan to republish Masking as WD to work through issues filed since LC publication.
Full Minutes || Spec Referenced
Syntax
- Discussed feedback from i18n, particularly request to change
@charset
parsing; failed to record a resolution, but there seemed to be consensus on not changing from 2.1.
- Discussed limiting
@charset
handling to first 1024 bytes; nobody has a problem with this. Also discussed white space within labels, since that’s the only thing that could result in such a case.
- Discussed shifting environment encoding definitions from Syntax to Cascade.
Full Minutes || Spec Referenced
Shapes and Serialization
- Resolved: Shapes to LC pending fantasai’s review due tomorrow morning.
- Discussed serialization rules for
basic-shape
.
Full Minutes || Spec Referenced
ShadowDOM: Shadow-Piercing Selectors
- Discussed Google proposal for
one-shadow-level
and all-shadow-level
combinators. Proposed syntax was ^ and ^^; WG prefers using pseudo-elements (e.g. ::shadow
and ::darkside
, or fill in your fav name here) because:
- more mnemonic.
- reflects the fact that we’re crossing a tree boundary.
- allows us to use parallel syntax for region- and page-based styling, which is structurally the same problem.
- avoids the need for
:top
— can just use child combinator as needed.
Full Minutes || Spec Referenced
ShadowDOM: Light-Reaching Selectors
- Discussed
:ancestor()
and :host()
selectors. Concerns raised:
- “ancestor” is too general, implies any ancestor, including those still in the shadow.
- problem is structurally the same as
@global
in scoped style; they should share the same syntax (or at least the same syntactic structure).
- Also discussed
::content
, which allows crossing from shadowed selectors to light elements channeled through the shadow via content
.
Full Minutes || Spec Referenced
ShadowDOM: Form Control Styling
- Briefly touched on ability of ShadowDOM to represent form controls for styling. Tab explained that form controls’ internal structure should not be exposed to web pages to avoid dependency on any structure. (This prevents platform differences e.g. between mobile/desktop, or innovation and improvements in UI over time.) Some form of “magic” will therefore be used. Parametrized shadow-element selectors with predefined arguments might end up as the solution, but no concrete proposals yet. Google and MSFT are collaborating on this, however.
- Google has, however, concluded that parametrized shadow selectors are more trouble than they’re worth for general use, and component libraries should simply document their “interface”.
Full Minutes || Spec Referenced
Minutes Telecon 2014-02-19
- Resolved: Change
text-combine-horizontal
to text-combine-upright
and take Writing Modes to CR adding the note about feedback for mixed directions.
- Resolved: Use
:has()
as subject selector in Selectors.
- There was discussion about if Shadow DOM should use pseudo-element or combinator syntax. Ultimately it was decided to defer on a resolution for syntax until next week so that everyone can mull over the implications of the various options. There was also conversation about how to adapt to webapps likely adding a flag for opt-in/opt-out settings, but TabAtkins argued that it will be easy to make the adjustments once webapps finalizes their decision.
- Plh reported that he thinks the charter should be able to go out next week.
- TabAtkins reported that he’s received a lot of feedback on Syntax since the resolution to take it to CR so he’ll edit the disposition of comments and come back to the group for another resolution.
- Resolved: change
fill-available
to fill
.
- Fantasai will add text to namespace to allow the use of wildcard and also investigate getting the TR version updated. She’ll then come back to the group for a resolution.
Full Minutes
Backgrounds and Borders (briefly) back to Working Draft
The CSS Working Group has published a Last Call Working Draft of the CSS Backgrounds and Borders Module Level 3
The 24 July 2012 Candidate Recommendation was returned to Last Call Working Draft, although most of it has been implemented, as implementation feedback suggested that some things could be improved. The changes, even though minor from the point of view of a user, require changes in implementations and thus the draft needs a new review.
The changes are explained in the specification itself. The most important ones are:
- More permissive syntax for the values of the ‘background’ and ‘box-shadow’ properties: The old syntax was unnecessarily restrictive in the order in which certain values had to be written.
- Smooth transitions between the shapes of drop shadows (‘box-shadow’ property) when ‘border-radius’ goes from a small value to 0 (i.e., from a rounded to a sharp corner). Previously, the drop shadow of a box with sharp corners could, under certain circumstances, look very different from the shadow of a box with a small, rounded corner.
- The ‘box-decoration-break’ property has been removed. (It will come back later in a different specification.) This property was already marked as “at risk” in the CR.
The end of the review period is 3 March 2014.
Archives

Browse by date:
Browse by category: