Using Textbox.io - custom styles dropdown using content CSS

by textboxio

HTML

<script src="http://fonts.googleapis.com/css?family=Lato:400,900italic|Arvo:400,700,400italic|Ubuntu|Josefin+Slab"></script>
<script src="http://jsfiddle.net/textboxio/4y98k8ny/"></script>
<script src="https://s3.amazonaws.com/ephox-static-ephox-com/jsfiddle/textboxio/textboxio.js"></script>
<div id="editableDiv">
    <h1 class="title"> Custom styles demo </h1>
<p class="dropcaps">The content created by
users is the lifeblood of any lively community. Yet, without user adoption
there is no content – and thus no community. </p>
<p>Enter Ephox’s Textbox.io,
an Editor built to drive user adoption and remove the barriers to effective collaboration.
It’s a rich text editor that includes all the functionality and none of the
frustration.</p>
<p>Whether you’re creating
content in wikis, blogs, profiles, forums or activities, Ephox’s
Next-Generation Editor provides clean copy and paste including embedded images;
enhances content with easy media embeds; and adds spell checking as you type
even for Internet Explorer users</p>
</div>
<button id="getContent">Get content</button>

CSS

#editableDiv {
    margin:10px 0;
    height:250px;
}

JavaScript

const configCSS = {
    css : {
        showDocumentStyles: false,
        styles : [
            { rule : 'p' }
        ],
        documentStyles: `
@import url(https://fonts.googleapis.com/css?family=Lato:100,400,700,900|Josefin+Slab:100,400,700);
h1.title {
  color: green;
  font-family: 'Josefin Slab';
  font-size:3.5em;
  font-weight:normal;
}

/* This ensures it will be shown even though showDocumentStyles is false */
h1.title[ephox-data] {
  visibility: visible;
  content: 'Fancy Title'
}

/* This rule will not be shown */
.dignified {
  font-family: 'Lato';
  font-size: 2em;
  font-weight: 700;
}
p.dropcaps:first-letter {
  float: left; color: #903; font-size: 75px; line-height: 60px; padding-top: 4px; padding-right: 8px; padding-left: 3px; font-family: Georgia;
}`
    }
};


const ed = textboxio.replace('#editableDiv', configCSS);
$('#getContent').click(() => alert(ed.content.get()));