# CSS Working Group Wiki
Community-editable documentation for the [CSS Working Group](https://www.w3.org/Style/CSS/). **Live site:** https://wiki.csswg.org/
This repo replaces the legacy wiki.csswg.org wiki. Pages are now Markdown files you can edit directly on GitHub.
## Contents
This repo was initially populated with 294 pages converted from wiki.csswg.org, covering:
- **[Meeting Planning](/planning/)** — Face-to-face meeting plans and schedules
- **[Ideas and Resolutions](/ideas/)** — Ideas not yet in a spec
- **[CSSWG Tools](/tools/)** — Documentation about working group tools
- **[Specification Issues and Planning](/spec/)** — Wiki pages for tracking spec-related thoughts
- **[Testing](/test/)** — CSS testing documentation
## Search
The site includes client-side full-text search powered by [Lunr.js](https://lunrjs.com/):
- **Build-time indexing** — `search.json` generates a JSON index of all pages at build time
- **Client-side search** — No server required; search runs entirely in the browser
- **Highlighted excerpts** — Search results show matching terms highlighted in context
- **Keyboard accessible** — Header search form submits to dedicated results page
Search is available via the search box in the site header, or directly at `/search/`.
## Editing
Each page has _“edit this page”_ links that take you to the GitHub web editing UI. Changes are deployed automatically when merged or committed to `main`.
## Local development
The site uses Jekyll. To preview locally:
```bash
gem install jekyll
jekyll serve
```
Then open http://localhost:4000/
## Frontend design
The site uses a modern, accessible frontend built with vanilla HTML, CSS, and JavaScript.
### Responsive design
- **Mobile-first layout** with hamburger menu on screens under 640px
- **Fluid typography** using CSS `clamp()` for readable text at any viewport
- **Sticky header** for persistent navigation access
- **Responsive tables** wrapped for horizontal scrolling on small screens
### Accessibility
The site follows WCAG 2.1 AA guidelines:
- **Skip link** — "Skip to main content" link for keyboard users
- **ARIA landmarks** — `banner`, `navigation`, `main`, `complementary` roles
- **Focus indicators** — Visible 2px outline on all interactive elements
- **Keyboard navigation** — Escape closes mobile menu, focus is managed
- **Reduced motion** — Respects `prefers-reduced-motion` preference
- **High contrast** — Supports Windows High Contrast Mode (`forced-colors`)
- **Touch targets** — Minimum 44×44px tap targets on interactive elements
- **Current page indication** — `aria-current` on navigation and breadcrumbs
### Browser support
- All modern browsers (Chrome, Firefox, Safari, Edge)
- Graceful degradation for older browsers
- Print stylesheet with expanded URLs
## Conversion from wiki.csswg.org
The sources here were converted from the DokuWiki installation at wiki.csswg.org in February 2026.
### Conversion process
1. **Scrape** — A Python scraper (`bin/scrape.py`) crawled the DokuWiki site and extracted all 294 pages as static HTML files with clean styling.
2. **Convert to Markdown** — A conversion script (`bin/convert-to-markdown.py`) processed the HTML using pandoc to generate Markdown source files, with special handling for DokuWiki plugins:
**Definition lists** — DokuWiki’s `plugin_definitionlist` used `
/- /
- ` markup. Since pandoc doesn’t output [kramdown’s definition list syntax](https://kramdown.gettalong.org/syntax.html#definition-lists), the script extracts these before pandoc runs and restores them afterward as proper kramdown:
```
Term
: Definition
```
**GFM-style alerts** — DokuWiki’s `plugin_note` divs (with classes like `noteimportant`, `notewarning`, `notetip`) are converted to GitHub-flavored Markdown alert syntax, rendered at runtime by `assets/alerts.js`:
```
> [!IMPORTANT]
> Alert content here
```
**Topic metadata** — The `dataplugin_entry` structured data (used on `/topics/` pages for tracking spec issues) is converted to inline metadata:
```
**Spec:** css3-flexbox | **Owner:** tabatkins | **Status:** Closed | **Added:** 2012-05-16
```
**Emoji conversion** — DokuWiki smiley images (`/lib/images/smileys/*.svg`) are replaced with Unicode emoji: `:!:` → ⚠️, `:?:` → ❓, `FIXME` → 🚧, etc.
**Broken media cleanup** — References to missing wiki images (`/_media/`) and DokuWiki proxy URLs (`/lib/exe/fetch.php`) are removed or replaced with placeholder text.
**General cleanup** — Stripped `rel`, `class`, and `id` attributes from links; removed redundant `title` attributes; converted `` to plain text (handled by JavaScript at runtime).
3. **Jekyll setup** — Added Jekyll configuration, layout template with “edit this page” links, and automatic breadcrumb generation.
4. **Abbreviation handling** — Added `assets/abbr.js` to wrap known abbreviations (CSS, HTML, W3C, IRC, URL, GUI) in `` tags with tooltips at runtime.
### Requirements for re-conversion
- Python 3.8+
- pandoc
- Network access to wiki.csswg.org
## Chronicle of historical wiki.csswg.org page activity
Generated: 2026-02-14
This listing excludes 166 pages that were bulk-imported on 2014/12/09.
| Year | Count | Path | Pages |
| ------ | ------- | ------ | ------- |
| 2026 | 9 | planning/ | [cupertino-2026](https://wiki.csswg.org/planning/cupertino-2026), [berlin-2026](https://wiki.csswg.org/planning/berlin-2026), [cupertino-2023](https://wiki.csswg.org/planning/cupertino-2023), [redmond-2026](https://wiki.csswg.org/planning/redmond-2026), [scribing](https://wiki.csswg.org/planning/scribing), [cupertino-2025](https://wiki.csswg.org/planning/cupertino-2025) |
| | | (root) | [main](https://wiki.csswg.org/main), [tools](https://wiki.csswg.org/tools), [planning](https://wiki.csswg.org/planning) |
| 2025 | 3 | planning/ | [tpac-2025](https://wiki.csswg.org/planning/tpac-2025), [paris-2025](https://wiki.csswg.org/planning/paris-2025), [newyork-2025](https://wiki.csswg.org/planning/newyork-2025) |
| 2024 | 6 | ideas/ | [principles](https://wiki.csswg.org/ideas/principles), [timelines](https://wiki.csswg.org/ideas/timelines) |
| | | planning/ | [hosting](https://wiki.csswg.org/planning/hosting), [tpac-2024](https://wiki.csswg.org/planning/tpac-2024), [galicia-2024](https://wiki.csswg.org/planning/galicia-2024), [mountain-view-2024](https://wiki.csswg.org/planning/mountain-view-2024) |
| 2023 | 13 | ideas/ | [mistakes](https://wiki.csswg.org/ideas/mistakes) |
| | | planning/ | [tpac-2023](https://wiki.csswg.org/planning/tpac-2023), [f2f-2023](https://wiki.csswg.org/planning/f2f-2023), [march-2023](https://wiki.csswg.org/planning/march-2023) |
| | | spec/ | [css-text](https://wiki.csswg.org/spec/css-text), [format-update](https://wiki.csswg.org/spec/format-update), [publish](https://wiki.csswg.org/spec/publish), [css4-ui](https://wiki.csswg.org/spec/css4-ui) |
| | | tools/ | [scribing-conventions](https://wiki.csswg.org/tools/scribing-conventions), [bikeshed](https://wiki.csswg.org/tools/bikeshed), [spec-processor](https://wiki.csswg.org/tools/spec-processor) |
| | | (root) | [faq](https://wiki.csswg.org/faq), [test](https://wiki.csswg.org/test) |
| 2022 | 8 | ideas/ | [nesting-12-22](https://wiki.csswg.org/ideas/nesting-12-22), [value-list-components](https://wiki.csswg.org/ideas/value-list-components) |
| | | planning/ | [tpac-2022](https://wiki.csswg.org/planning/tpac-2022), [nyc-2022](https://wiki.csswg.org/planning/nyc-2022), [nyc-2022-logistics](https://wiki.csswg.org/planning/nyc-2022-logistics) |
| | | spec/ | [fantasai](https://wiki.csswg.org/spec/fantasai) |
| | | tools/ | [irc](https://wiki.csswg.org/tools/irc) |
| | | (root) | [ideas](https://wiki.csswg.org/ideas) |
| 2021 | 17 | ideas/ | [gutter-styling](https://wiki.csswg.org/ideas/gutter-styling), [naming](https://wiki.csswg.org/ideas/naming), [color-object](https://wiki.csswg.org/ideas/color-object), [print-backgrounds](https://wiki.csswg.org/ideas/print-backgrounds), [box-model-extensions](https://wiki.csswg.org/ideas/box-model-extensions), [centering](https://wiki.csswg.org/ideas/centering), [current-url-selector](https://wiki.csswg.org/ideas/current-url-selector), [logical-syntax](https://wiki.csswg.org/ideas/logical-syntax), [margin-collapsing](https://wiki.csswg.org/ideas/margin-collapsing) |
| | | planning/ | [tpac-2021](https://wiki.csswg.org/planning/tpac-2021), [virtual-july-2021](https://wiki.csswg.org/planning/virtual-july-2021), [virtual-april-2021](https://wiki.csswg.org/planning/virtual-april-2021), [virtual-winter-2021](https://wiki.csswg.org/planning/virtual-winter-2021) |
| | | spec/ | [cssom-constants](https://wiki.csswg.org/spec/cssom-constants), [css-scoping](https://wiki.csswg.org/spec/css-scoping) |
| | | test/ | [implementation-report](https://wiki.csswg.org/test/implementation-report) |
| | | (root) | [spec](https://wiki.csswg.org/spec) |
| 2020 | 10 | ideas/ | [unbreaking-lines](https://wiki.csswg.org/ideas/unbreaking-lines) |
| | | planning/ | [tpac-2020](https://wiki.csswg.org/planning/tpac-2020), [virtual-summer-2020](https://wiki.csswg.org/planning/virtual-summer-2020), [virtual-spring-2020](https://wiki.csswg.org/planning/virtual-spring-2020), [cork-2020](https://wiki.csswg.org/planning/cork-2020), [print-workshop-2020](https://wiki.csswg.org/planning/print-workshop-2020), [galicia-2020](https://wiki.csswg.org/planning/galicia-2020), [status](https://wiki.csswg.org/planning/status) |
| | | spec/ | [css-fonts](https://wiki.csswg.org/spec/css-fonts) |
| | | (root) | [wiki](https://wiki.csswg.org/wiki) |
| 2019 | 6 | planning/ | [tpac-2019](https://wiki.csswg.org/planning/tpac-2019), [toronto-2019](https://wiki.csswg.org/planning/toronto-2019), [tpac-2016](https://wiki.csswg.org/planning/tpac-2016), [sf-2019](https://wiki.csswg.org/planning/sf-2019) |
| | | spec/ | [property-dependencies](https://wiki.csswg.org/spec/property-dependencies) |
| | | (root) | [communications](https://wiki.csswg.org/communications) |
| 2018 | 11 | ideas/ | [hyphenation](https://wiki.csswg.org/ideas/hyphenation), [image-replacement](https://wiki.csswg.org/ideas/image-replacement), [at-text-transform](https://wiki.csswg.org/ideas/at-text-transform) |
| | | planning/ | [tpac-2018](https://wiki.csswg.org/planning/tpac-2018), [sydney-2018](https://wiki.csswg.org/planning/sydney-2018), [berlin-2018](https://wiki.csswg.org/planning/berlin-2018), [tpac-2017](https://wiki.csswg.org/planning/tpac-2017), [paris-2017](https://wiki.csswg.org/planning/paris-2017) |
| | | spec/ | [check](https://wiki.csswg.org/spec/check), [issue-tracking](https://wiki.csswg.org/spec/issue-tracking) |
| | | tools/ | [doc](https://wiki.csswg.org/tools/doc) |
| 2017 | 9 | ideas/ | [pseudo-elements](https://wiki.csswg.org/ideas/pseudo-elements) |
| | | planning/ | [tokyo-2017](https://wiki.csswg.org/planning/tokyo-2017), [sydney-2016](https://wiki.csswg.org/planning/sydney-2016), [san-francisco-2016](https://wiki.csswg.org/planning/san-francisco-2016), [seattle-2017](https://wiki.csswg.org/planning/seattle-2017) |
| | | spec/ | [widereview](https://wiki.csswg.org/spec/widereview), [rec-maintenance](https://wiki.csswg.org/spec/rec-maintenance) |
| | | tools/ | [git](https://wiki.csswg.org/tools/git), [hg](https://wiki.csswg.org/tools/hg) |
| 2016 | 5 | ideas/ | [dollar-variables](https://wiki.csswg.org/ideas/dollar-variables), [round-display](https://wiki.csswg.org/ideas/round-display) |
| | | planning/ | [sydney-2015](https://wiki.csswg.org/planning/sydney-2015) |
| | | spec/ | [incubation](https://wiki.csswg.org/spec/incubation), [css-round-display](https://wiki.csswg.org/spec/css-round-display) |
| 2015 | 28 | planning/ | [tpac-2015](https://wiki.csswg.org/planning/tpac-2015), [jp-css-indus-meetup](https://wiki.csswg.org/planning/jp-css-indus-meetup), [paris-2015](https://wiki.csswg.org/planning/paris-2015), [agenda](https://wiki.csswg.org/planning/agenda), [new-york-2015](https://wiki.csswg.org/planning/new-york-2015), [tpac-2010](https://wiki.csswg.org/planning/tpac-2010), [oslo-2010](https://wiki.csswg.org/planning/oslo-2010), [cupertino-2010](https://wiki.csswg.org/planning/cupertino-2010), [tpac-2011](https://wiki.csswg.org/planning/tpac-2011), [seattle-2011](https://wiki.csswg.org/planning/seattle-2011), [mountain-view-2011](https://wiki.csswg.org/planning/mountain-view-2011), [japan-2011](https://wiki.csswg.org/planning/japan-2011), [tokyo-workshop-2011](https://wiki.csswg.org/planning/tokyo-workshop-2011), [tpac-2012](https://wiki.csswg.org/planning/tpac-2012), [sandiego-2012](https://wiki.csswg.org/planning/sandiego-2012), [hamburg-2012](https://wiki.csswg.org/planning/hamburg-2012), [paris-2012](https://wiki.csswg.org/planning/paris-2012), [tpac-2014](https://wiki.csswg.org/planning/tpac-2014) |
| | | spec/ | [css-flexbox-2](https://wiki.csswg.org/spec/css-flexbox-2), [vendor-prefixes](https://wiki.csswg.org/spec/vendor-prefixes), [css-grid-2](https://wiki.csswg.org/spec/css-grid-2), [css3-ui](https://wiki.csswg.org/spec/css3-ui), [css-backgrounds-4](https://wiki.csswg.org/spec/css-backgrounds-4), [css-ruby-2](https://wiki.csswg.org/spec/css-ruby-2), [css-multicol](https://wiki.csswg.org/spec/css-multicol), [css3-flexbox](https://wiki.csswg.org/spec/css3-flexbox) |
| | | test/ | [to-do](https://wiki.csswg.org/test/to-do), [css-writing-modes-3](https://wiki.csswg.org/test/css-writing-modes-3) |
| 2014 | 3 | planning/ | [sophia-2014](https://wiki.csswg.org/planning/sophia-2014), [seoul-2014](https://wiki.csswg.org/planning/seoul-2014), [seattle-2014](https://wiki.csswg.org/planning/seattle-2014) |
## License
The wiki content is governed by the [W3C Document License](https://www.w3.org/Consortium/Legal/2015/doc-license).