diff --git a/package.json b/package.json
index 40aef7cd..07a095d7 100644
--- a/package.json
+++ b/package.json
@@ -52,6 +52,7 @@
"dependencies": {
"global": "^4.3.2",
"polished": "^3.3.0",
+ "prismjs": "1.13.0",
"react-helmet": "^5.2.1",
"react-lazyload": "^2.5.0",
"react-modal": "^3.8.1",
diff --git a/src/components/Highlight.js b/src/components/Highlight.js
new file mode 100644
index 00000000..9ead2d9a
--- /dev/null
+++ b/src/components/Highlight.js
@@ -0,0 +1,65 @@
+/* eslint-disable react/no-danger */
+import React from 'react';
+import ReactDOM from 'react-dom';
+import styled from 'styled-components';
+import Prism from 'prismjs';
+import loadLanguages from 'prismjs/components/index';
+import PropTypes from 'prop-types';
+
+import { color, typography } from './shared/styles';
+
+import 'prismjs/themes/prism.css';
+
+loadLanguages(['bash', 'typescript', 'json']);
+
+// Tweak Prism styling
+const HighlightBlock = styled.div`
+ *:not(pre) > code[class*='language-'],
+ pre[class*='language-'] {
+ background: ${color.lighter};
+ margin: 2em 0;
+ }
+
+ code[class*='language-'],
+ pre[class*='language-'] {
+ font-size: ${typography.size.s3}px;
+ }
+
+ code {
+ font-size: 17px;
+ }
+
+ .aside code {
+ font-size: 15px;
+ }
+`;
+
+class Highlight extends React.Component {
+ componentDidMount() {
+ this.highlightCode();
+ }
+
+ componentDidUpdate() {
+ this.highlightCode();
+ }
+
+ highlightCode() {
+ const domNode = ReactDOM.findDOMNode(this); // eslint-disable-line
+ Prism.highlightAllUnder(domNode);
+ }
+
+ render() {
+ const { children } = this.props;
+ return (
+
# Highlight bash:
+npx install some-package-name
+cd some-package-name
+
+`;
+
+const javascript = `
+// Highlight JavaScript:
+import React from 'react'
+
+const MyComponent = () => (
+ <div>My component renders all the things</div>
+)
+
+export default MyComponent
+
+`;
+
+const typescript = `
+// Highlight Typescript:
+import React from 'react'
+
+interface InterfaceMyComponentProps {
+ isCool: boolean;
+}
+
+const MyComponent: React.SFC<InterfaceMyComponentProps> = ({ isCool }) => (
+ <div>My component isCool: {isCool}</div>
+)
+
+export default MyComponent
+
+`;
+
+const css = `
+/* Highlight CSS: */
+.someClass {
+ position: relative;
+}
+
+`;
+
+const json = `
+
+{
+ "name": "@yourorg/package",
+ "version": "0.0.1",
+ "description": "A sweet package",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/yourorg/package.git"
+ }
+}
+
+`;
+
+storiesOf('Design System|Highlight', module)
+ .addParameters({ component: Highlight })
+ .add('all languages', () => (
+