The Citation Style Language (CSL) is an open, XML-based language for describing the formatting of citations, notes, and bibliographies. It provides the engine behind automatic citation formatting in reference managers like Zotero, Mendeley, and Papers, with a community-maintained repository of over 10,000 styles covering journals, publishers, and academic style guides worldwide.
Background
CSL was created in 2004 by Bruce D'Arcus, a geographer at Miami University, who recognized the need for a standardized, open way to express citation formatting rules. At the time, reference managers each used proprietary style definitions, making it difficult to share citation styles or switch between tools. D'Arcus designed CSL as an XML schema that could encode the rules of any citation style in a portable, machine-readable format. Frank Bennett later contributed significant work on CSL processing, developing the citeproc-js processor. CSL 1.0 was released in 2010 as the first stable version, with CSL 1.0.1 (2012) and CSL 1.0.2 (2015) adding incremental improvements.
Purpose & Scope
CSL defines how individual references should be formatted — where to place the author name, how to abbreviate journal titles, whether to use footnotes or in-text parenthetical citations, how to sort bibliography entries, and hundreds of other formatting details that vary across the thousands of citation styles in use. A single CSL style file encodes all these rules for one citation style, while CSL locale files handle language-specific terms and date formats.
Key Concepts
| Concept | Description |
|---|---|
| Style | A CSL XML file defining formatting rules for one citation style |
| Locale | Language-specific terms, date formats, and punctuation conventions |
| Citation | The in-text marker (parenthetical, numeric, or note) |
| Bibliography | The formatted list of references at the end of a document |
| Macro | Reusable formatting blocks within a style definition |
| cs:info | Metadata about the style (title, author, license, parent style) |
Serializations & Technical Formats
CSL styles are XML documents conforming to the CSL schema, with the file extension .csl. Each style file is self-contained and can be validated against the CSL schema (RELAX NG). Styles can be either "independent" (defining all formatting rules directly) or "dependent" (inheriting rules from a parent style with only metadata differences). CSL locale files use a similar XML structure. The processing model is defined informally in the specification, with multiple implementations (citeproc-js, citeproc-py, citeproc-rs) providing the rendering logic.
Governance & Maintenance
CSL is maintained as a community project with development coordinated on GitHub. The CSL schema, specification, and style repository are all openly governed. Style contributions undergo review before acceptance into the official repository. The project has no formal standards body affiliation; governance is informal, with core maintainers guiding development. CSL 1.0.2 is the current stable release. Work on CSL 1.1 has introduced features like custom variable types and improved name handling, though it has not yet reached final release.
Notable Implementations
Zotero, the open-source reference manager, was an early and influential adopter of CSL, and its style repository serves as the canonical collection of CSL styles. Mendeley (Elsevier) and Papers (ReadCube) also use CSL for citation formatting. Pandoc, the universal document converter, uses citeproc for processing citations in Markdown. Many academic publishers accept or recommend CSL-formatted bibliographies. The CSL style repository on GitHub contains styles for over 10,000 journals and style guides, making it one of the largest open collections of bibliographic formatting rules.
Related Standards
No directly related standards are currently indexed.