Shape() Documentation: Syntax In Examples Do Not Match Spec
Introduction
The shape()
function is a powerful tool in CSS that allows developers to create complex shapes using a simple syntax. However, as with any complex feature, there can be discrepancies between the specification and the implementation. In this article, we will explore the issue of the shape()
function's syntax in examples not matching the specification.
The Problem
The issue lies in the code examples under the "Syntax" and "Examples" sections of the MDN documentation for the shape()
function. The syntax for the "curve" shape-command, and possibly the other ones as well, does not follow the spec. This means that the examples do not actually work in browsers that have recently implemented the shape()
function.
The Spec
To understand the issue, we need to look at the specification for the shape()
function. The spec is available on the W3C website and is also reproduced on the same page under the heading "Formal syntax". According to the spec, the syntax for the shape()
function is as follows:
shape: <basic-shape> | <shape-circle> | <shape-ellipse> | <shape-inset> | <shape-rect> | <shape-conic> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shapeellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-<br/>
**shape() documentation: Syntax in examples do not match spec**
===========================================================
**Q&A**
------
**Q: What is the issue with the `shape()` function's syntax in examples?**
A: The issue lies in the code examples under the "Syntax" and "Examples" sections of the MDN documentation for the `shape()` function. The syntax for the "curve" shape-command, and possibly the other ones as well, does not follow the spec.
**Q: What is the spec for the `shape()` function?**
A: The spec for the `shape()` function is available on the W3C website and is also reproduced on the same page under the heading "Formal syntax". According to the spec, the syntax for the `shape()` function is as follows:
```css
shape: <basic-shape> | <shape-circle> | <shape-ellipse> | <shape-inset> | <shape-rect> | <shape-conic> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse> | <shape-ellipse>