Beautiful API documentation powered by OpenAPI and Markdown. Use these UI components to create API reference documentation, or more complete documentation with Markdown articles covering tutorials, how-to guides, etc.
Available as React Components, or Web Components, you can use Elements all together to build beautiful three-column "Stripe-esque" documentation, or stacked documentation thats easier for integrating into existing Content Management Systems with their own navigation.
Let's chat about features, ideas, what you're doing with Elements, on GitHub Discussions.
Stoplight Elements comes with a few example integration projects, showing you how to utilize Elements with different frameworks.
- react-cra - An example app built Create React App utilizing Stoplight Elements.
- react-gatsby - An example Gatsby site utilizing Stoplight Elements.
- angular - An angular app utilizing the Web Components distribution of Elements.
- bootstrap - A single HTML page utilizing the Web Components distribution via a global script tag.
To run these examples yourself:
- Clone this repo.
- Go to
examples
folder and open an example, e.g.:examples/angular
. - Run
yarn
to install all dependencies. - Run
yarn start
to run the example.
Note: for bootstrap example just go straight to its directory and open the HTML file.
The examples will hopefully help show Elements working in close to real world situations, but the most bare bones examples of Elements can be found below.
$ npm install @stoplight/elements
import { API } from "@stoplight/elements";
<API
apiDescriptionUrl="https://api.apis.guru/v2/specs/github.com/1.1.4/openapi.yaml"
router="history"
/>
For more information on using Elements as a React component, head over to our React documentation.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Elements in HTML</title>
<!-- Embed elements Elements via Web Component -->
<script src="https://unpkg.com/@stoplight/elements/web-components.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/@stoplight/elements/styles.min.css">
</head>
<body>
<elements-api
apiDescriptionUrl="https://api.apis.guru/v2/specs/github.com/1.1.4/openapi.yaml"
router="hash"
layout="sidebar"
/>
</body>
</html>
Load this page up in your browser and you should see the GitHub REST API documented in Stoplight Elements.
For more information on using Elements as a Web Component, head over to our Web Component documentation.
- API Console (a.k.a "Try it!")
- Automatic Code Samples
- Automatic Examples
- React & Web Component Support
- OpenAPI Support
- OpenAPI v3.1
- OpenAPI v3.0
- OpenAPI v2.0
- Callbacks
- Webhooks
- Multiple APIs (a.k.a "Dev Portal")
Submit your ideas for new functionality on the Stoplight Roadmap.
- Stoplight Studio - Free visual OpenAPI designer that uses Elements to preview your API descriptions on the fly.
- Stoplight Platform - Collaborative API Design Platform for designing, developing and documenting APIs with hosted documentation powered by Elements.
- LaravelPHP Elements - A simple API documentation package for Laravel using OpenAPI and Stoplight Elements.
If you're using Elements for an interesting use case, contact us for a case study. We'll add it to a list here. Spread the goodness 🎉
If you are interested in contributing to Elements itself, check out our contributing docs ⇗ and code of conduct ⇗ to get started.
Elements is built on top of lots of excellent packages, and here are a few we'd like to say a special thanks to.
- httpsnippet by Kong.
- openapi-sampler by ReDocly.
Check these projects out!
If you would like to thank us for creating Elements, we ask that you buy the world a tree.