JSFiddle - React, Tailwind, and code Playground
by GioLogist
HTML
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
<div class="kss-embed">
<ul>
<li><a href="#tabs-1">Result</a></li>
<li><a href="#tabs-2">HTML</a></li>
<li><a href="#tabs-3">CSS</a></li>
<li><a href="#tabs-4">JS</a></li>
</ul>
<div id="tabs-1" class="kss-embed__html">
<iframe class="kss-embed__html-iframe"></iframe>
<div class="kss-embed__html-code">
<a href="#" class="btn class_name">Link Buttons</a>
</div>
</div>
<div id="tabs-2" class="kss-embed__prettyprint">
<pre class="prettyprint linenums lang-html"><code data-language="html"><a href="#" class="btn">
Link Button
</a></code></pre>
</div>
<div id="tabs-3" class="kss-embed__prettyprint">
<pre class="prettyprint linenums lang-css"><code data-language="css">// CSS here
</code></pre>
</div>
<div id="tabs-4" class="kss-embed__prettyprint">
<pre class="prettyprint linenums lang-css"><code data-language="css">// JS Here</code></pre>
</div>
</div>
SCSS
.kss-embed.ui-tabs {
font-family: "Courier New", Courier, monospace;
padding: 0;
border: 1px solid #ddd;
.ui-tabs-panel,
.ui-tabs-nav,
.ui-tabs-nav li,
.ui-tabs-nav li.ui-tabs-active{
margin: 0;
padding: 0;
}
.ui-widget-header {
border: 0;
border-bottom: 1px solid #ddd;
background: #f5f5f5;
font-size: 13px;
text-transform: uppercase;
}
.ui-tabs-nav {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.ui-tabs-nav li {
border: 0;
border-radius: 0;
}
.ui-tabs-nav li a {
outline: 0;
}
}
.kss-embed {
pre {
margin: 0;
padding: 0;
border: 0;
border-radius: 4px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.kss-embed__html-code {
display: none;
}
iframe {
width: 100%;
border: 1px solid #eee;
border-radius: 4px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
}
.kss-embed__prettyprint ol {
margin: 0;
padding: 0;
list-style-type: none;
list-style: none;
counter-increment: custom;
li:before {
font-size: 13px;
font-family: "Courier New", Courier, monospace;
width: 35px;
text-align: center;
display: inline-block;
line-height: 24px;
margin: 0 10px 0 -10px;
padding: 0 0 0 5px;
background: #f5f5f5;
content: counter(custom) " ";
color: #999;
border-right: 1px solid #DDD;
}
li:first-child {
counter-reset: custom;
}
li {
counter-increment: custom;
border-bottom: 1px solid #eee;
padding: 0 10px;
background: #fff;
}
li:last-child {
border-bottom: 0;
}
}
JavaScript
$(function() {
// activate tabs
$(".kss-embed").tabs({
active: 1
});
// render html inside iframe
$(".kss-embed__html").each(function(i) {
var iframe = $(this).find('.kss-embed__html-iframe');
var html_code = $(this).find('.kss-embed__html-code').html();
$(iframe).attr('srcdoc', html_code);
});
});