Zotero uses Citation Style Language (CSL) styles and the citeproc-js CSL processor for creating citations and bibliographies.
For information on how to use existing CSL styles with Zotero, see Citation Styles.
For basic instructions on how to edit CSL styles for Zotero, see the Step-by-step guide. More documentation can be found at http://citationstyles.org/citation-style-language/documentation/.
Frank Bennett prepared a (currently slightly outdated) mapping of Zotero item types and variables to CSL. Note that creator types are not included in these listings. A Zotero extension to create a mapping from a local Zotero installation can be found here.
Citation styles can be hosted on the Citation Style Language Repository. Follow these instructions to have your style added to the repository.
If you decide to host CSL styles online yourself, serving them with a “text/x-csl” MIME type allows Zotero for Firefox to automatically recognize and install your styles.
citeproc-node is a wrapper for citeproc-js for server-side rendering of citations and bibliographies.