Browse Source

Merge pull request #299 from Automattic/affinity-add-gutenberg-support

Affinity: Add Gutenberg styles and support
Laurel 6 năm trước cách đây
mục cha
commit
11c2b1ffcd

+ 20 - 2
affinity/assets/js/functions.js

@@ -69,7 +69,7 @@
 				sidebarPosBottom = 0;
 			}
 
-			// Add 'below-entry-meta' to elements below the entry meta.
+			// Add 'below-sidebar' to elements below the sidebar.
 			if ( elementPosTop > sidebarPosBottom ) {
 				element.addClass( 'below-sidebar' );
 			} else {
@@ -132,7 +132,7 @@
 		} );
 	}
 
-	//Apply classes to aligned left and right elements (blockquotes, captions, images)
+	//Apply classes to aligned left, right, wide, and full elements (blockquotes, captions, images)
 	function moveAlignedElements() {
 
 		var ltr = true;
@@ -145,6 +145,15 @@
 				clearTimeout( resizeTimer );
 				resizeTimer = setTimeout( function() {
 
+					belowEntryMetaClass( 'figure.wp-block-image.alignwide' );
+					belowSidebarClass( 'figure.wp-block-image.alignfull, figure.wp-block-image.alignwide' );
+
+					belowEntryMetaClass( '.wp-block-cover.alignwide, .wp-block-gallery.alignwide' );
+					belowSidebarClass( '.wp-block-cover.alignfull, .wp-block-cover.alignwide, .wp-block-gallery.alignfull, .wp-block-gallery.alignwide' );
+
+					belowEntryMetaClass( '.wp-block-embed.is-type-video.alignwide' );
+					belowSidebarClass( '.wp-block-embed.is-type-video.alignfull, .wp-block-embed.is-type-video.alignwide' );
+
 					if ( true == ltr ) {
 						belowEntryMetaClass( 'img.alignleft:not( figure > img.alignleft ), figure.alignleft' );
 						belowEntryMetaClass( 'blockquote.alignleft' );
@@ -166,6 +175,15 @@
 				}, 300 );
 			} );
 
+		belowEntryMetaClass( 'figure.wp-block-image.alignwide' );
+		belowSidebarClass( 'figure.wp-block-image.alignfull, figure.wp-block-image.alignwide' );
+
+		belowEntryMetaClass( '.wp-block-cover.alignwide, .wp-block-gallery.alignwide' );
+		belowSidebarClass( '.wp-block-cover.alignfull, .wp-block-cover.alignwide, .wp-block-gallery.alignfull, .wp-block-gallery.alignwide' );
+
+		belowEntryMetaClass( '.wp-block-embed.is-type-video.alignwide' );
+		belowSidebarClass( '.wp-block-embed.is-type-video.alignfull, .wp-block-embed.is-type-video.alignwide' );
+
 		if ( true == ltr ) {
 			belowEntryMetaClass( 'img.alignleft:not( figure > img.alignleft ), figure.alignleft' );
 			belowEntryMetaClass( 'blockquote.alignleft' );

+ 258 - 0
affinity/blocks.css

@@ -0,0 +1,258 @@
+/*
+Theme Name: Affinity
+Description: Used to style Gutenberg Blocks.
+*/
+
+/*--------------------------------------------------------------
+>>> TABLE OF CONTENTS:
+----------------------------------------------------------------
+1.0 General Block Styles
+2.0 Blocks - Common Blocks
+3.0 Blocks - Formatting
+4.0 Blocks - Layout Elements
+5.0 Blocks - Widgets
+6.0 Blocks - Colors
+--------------------------------------------------------------*/
+
+/*--------------------------------------------------------------
+1.0 General Block Styles
+--------------------------------------------------------------*/
+
+/* Captions */
+
+[class^="wp-block-"] figcaption {
+	font-size: 13.2px;
+	font-style: italic;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+}
+
+/*--------------------------------------------------------------
+2.0 Blocks - Common Blocks
+--------------------------------------------------------------*/
+
+/* Paragraph */
+
+p.has-drop-cap:not(:focus)::first-letter {
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-size: 64px;
+}
+
+/* Images */
+
+.wp-block-cover {
+	display: flex;
+}
+
+/* Gallery */
+
+.wp-block-gallery {
+	margin-bottom: 1.6em;
+	margin-left: auto;
+}
+
+/* Quote */
+
+.wp-block-quote cite {
+	display: block;
+	text-align: right;
+	font-style: normal;
+	font-size: 16px;
+}
+
+.wp-block-quote cite:before {
+}
+
+.wp-block-quote.is-large,
+.wp-block-quote.is-style-large {
+	padding: .4em 0 .8em;
+}
+
+.wp-block-quote.is-large p,
+.wp-block-quote.is-style-large p {
+	font-size: 26px;
+}
+
+/* Audio */
+
+.wp-block-audio audio {
+	display: block;
+	width: 100%;
+}
+
+/* File */
+
+.wp-block-file .wp-block-file__button {
+	background: #1a1a1a;
+	border: 0;
+	border-radius: 2px;
+	color: #fff;
+	font-family: Montserrat, "Helvetica Neue", sans-serif;
+	font-weight: 700;
+	letter-spacing: 0.046875em;
+	line-height: 1;
+	padding: 0.84375em 0.875em 0.78125em;
+	text-transform: uppercase;
+}
+
+.wp-block-file .wp-block-file__button:hover,
+.wp-block-file .wp-block-file__button:focus {
+	background: #007acc;
+}
+
+.wp-block-file .wp-block-file__button:focus {
+	outline: thin dotted;
+	outline-offset: -4px;
+}
+
+.rtl .wp-block-file * + .wp-block-file__button {
+	margin-left: 0.75em;
+	margin-right: 0;
+}
+
+/*--------------------------------------------------------------
+3.0 Blocks - Formatting Blocks
+--------------------------------------------------------------*/
+
+/* Verse */
+
+.wp-block-verse {
+	background-color: transparent;
+	padding: 0;
+	font-family: inherit;
+	color: inherit;
+	font-size: inherit;
+}
+
+/* Code */
+
+.wp-block-code {
+	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+	font-size: 13.2px;
+}
+
+/* Pullquote */
+
+.wp-block-pullquote {
+	padding: 0;
+}
+
+.wp-block-pullquote blockquote {
+	color: #99908a;
+	font-size: 18px;
+	font-style: italic;
+	margin: 0;
+	border-top: 3px solid #e8e9ea;
+	padding-top: .8em;
+	border-bottom: 1px solid #e8e9ea;
+	margin-bottom: .8em;
+	padding-bottom: .8em;
+}
+
+.wp-block-pullquote.alignleft p,
+.wp-block-pullquote.alignright p {
+	font-size: 18px;
+}
+
+.wp-block-pullquote cite {
+	color: #99908a;
+	display: block;
+	text-transform: uppercase;
+	text-align: center;
+	font-size: 14px;
+}
+
+/*--------------------------------------------------------------
+4.0 Blocks - Layout Elements
+--------------------------------------------------------------*/
+
+/* Buttons */
+
+.wp-block-button .wp-block-button__link {
+	border-radius: 0;
+	display: inline-block;
+	font-size: 13.2px;
+	font-family: Raleway, "Helvetica Neue", sans-serif;
+	text-transform: uppercase;
+	letter-spacing: 1px;
+	font-weight: bold;
+	line-height: 1;
+	transition: 0.3s;
+	text-decoration: none;
+}
+
+.wp-block-button__link:not(.has-text-color),
+.wp-block-button__link:not(.has-text-color):hover,
+.wp-block-button__link:not(.has-text-color):focus,
+.wp-block-button__link:not(.has-text-color):active {
+	color: white;
+}
+
+.wp-block-button__link:not(.has-background) {
+	background-color: #99908a;
+	outline: 4px solid #99908a;
+	border: 2px solid white;
+	position: relative;
+	left: 4px;
+}
+
+.wp-block-button__link:not(.has-background):active,
+.wp-block-button__link:not(.has-background):focus,
+.wp-block-button__link:not(.has-background):hover {
+	outline-color: #5e5853;
+	background-color: #5e5853;
+}
+
+/* Seperator */
+
+hr.wp-block-separator {
+	border: 0;
+}
+
+.wp-block-separator {
+	margin-left: auto;
+	margin-right: auto;
+	max-width: 66%;
+}
+
+.wp-block-separator.is-style-wide {
+	max-width: 100%;
+}
+
+/*--------------------------------------------------------------
+5.0 Blocks - Widget Blocks
+--------------------------------------------------------------*/
+
+/* Latest Comments */
+
+.wp-block-latest-comments__comment-meta a {
+	box-shadow: none;
+	font-weight: 700;
+}
+
+.wp-block-latest-comments__comment-date {
+	font-size: 13px;
+}
+
+.wp-block-latest-comments .wp-block-latest-comments__comment {
+	margin-bottom: 0;
+	padding: 1.6em 0;
+}
+
+.wp-block-latest-comments__comment-excerpt p:last-child {
+	margin-bottom: 0;
+}
+
+/* Media queries */
+
+@media screen and ( min-width: 68em ) {
+	.wp-block-quote,
+	.wp-block-pullquote blockquote {
+		font-size: 26px;
+	}
+
+	.wp-block-quote.is-large p,
+	.wp-block-quote.is-style-large p {
+		font-size: 36px;
+	}
+}

+ 739 - 0
affinity/editor-blocks.css

@@ -0,0 +1,739 @@
+
+/*
+ * Theme Name: Affinity
+ * Description: Gutenberg Block Editor Styles
+ */
+
+/*--------------------------------------------------------------
+>>> TABLE OF CONTENTS:
+----------------------------------------------------------------
+1.0 General Typography
+2.0 General Block Styles
+3.0 Blocks - Common Blocks
+4.0 Blocks - Formatting
+5.0 Blocks - Layout Elements
+6.0 Blocks - Widgets
+--------------------------------------------------------------*/
+
+/*--------------------------------------------------------------
+1.0 General Typography
+--------------------------------------------------------------*/
+
+.edit-post-visual-editor .editor-block-list__block,
+.edit-post-visual-editor .editor-block-list__block p:not(.wp-block-cover-text),
+.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
+	color: #5e5853;
+	font-size: 18px;
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	line-height: 1.6;
+}
+
+.alignleft {
+	margin: .8em 1.6em .8em 0;
+}
+
+.alignright {
+	margin: .8em 0 .8em 1.6em;
+}
+
+/* Title */
+
+.editor-post-title__block .editor-post-title__input {
+	color: #5e5853;
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-size: 28px;
+	font-style: italic;
+	font-weight: normal;
+	margin-top: 0.2em;
+	margin-bottom: 0.2em;
+}
+
+/* Headings */
+
+.edit-post-visual-editor h1,
+.edit-post-visual-editor h2,
+.edit-post-visual-editor h3,
+.edit-post-visual-editor h4,
+.edit-post-visual-editor h5,
+.edit-post-visual-editor h6 {
+	color: #5e5853;
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-style: italic;
+	font-weight: normal;
+	margin-top: 0.2em;
+	margin-bottom: 0.2em;
+}
+
+.edit-post-visual-editor h1 {
+	font-size: 34px;
+}
+
+.edit-post-visual-editor h2 {
+	font-size: 29.2px;
+}
+
+.edit-post-visual-editor h3 {
+	font-size: 26px;
+}
+
+.edit-post-visual-editor h4 {
+	font-size: 18px;
+}
+
+.edit-post-visual-editor h5 {
+	font-size: 16px;
+}
+
+.edit-post-visual-editor h6 {
+	font-size: 14px;
+}
+
+@media screen and (min-width: 46em) {
+	.edit-post-visual-editor h1,
+	.editor-post-title__block .editor-post-title__input {
+		font-size: 47.12px;
+	}
+
+	.edit-post-visual-editor h2 {
+		font-size: 42px;
+	}
+
+	.edit-post-visual-editor h3 {
+		font-size: 29.2px;
+	}
+
+	.edit-post-visual-editor h4 {
+		font-size: 26px;
+	}
+
+	.edit-post-visual-editor h5 {
+		font-size: 18px;
+	}
+
+	.edit-post-visual-editor h6 {
+		font-size: 16px;
+	}
+}
+
+/* Paragraphs */
+
+.edit-post-visual-editor p {
+	margin: 0 0 1.6em;
+}
+
+.edit-post-visual-editor blockquote p {
+	margin-bottom: 1.6em;
+}
+
+/* Images */
+
+.wp-block-image figcaption {
+	font-size: 13.2px;
+	font-style: italic;
+}
+
+@media screen and ( min-width: 48em ) {
+	.edit-post-visual-editor .editor-block-list__block[data-align=wide] {
+		max-width: 860px;
+	}
+}
+
+/*--------------------------------------------------------------
+2.0 General Block Styles
+--------------------------------------------------------------*/
+
+/* Main column width */
+
+.wp-block {
+	max-width: 746px; /* 716px + 30px padding */
+}
+
+/* Link styles */
+
+.edit-post-visual-editor a,
+.editor-block-list__block a,
+.wp-block-freeform.block-library-rich-text__tinymce a {
+	color: #99908a;
+	transition: 0.3s;
+}
+
+.edit-post-visual-editor a:hover,
+.edit-post-visual-editor a:focus,
+.edit-post-visual-editor a:active,
+.editor-block-list__block a:hover,
+.editor-block-list__block a:focus,
+.editor-block-list__block a:active,
+.wp-block-freeform.block-library-rich-text__tinymce a:hover,
+.wp-block-freeform.block-library-rich-text__tinymce a:focus,
+.wp-block-freeform.block-library-rich-text__tinymce a:active {
+	color: #383e44;
+	text-decoration: underline !important;
+}
+
+/* List styles */
+
+.edit-post-visual-editor ul:not(.wp-block-gallery),
+.editor-block-list__block ul:not(.wp-block-gallery),
+.block-library-list ul,
+.edit-post-visual-editor ol,
+.editor-block-list__block ol,
+.block-library-list ol {
+	margin: 0 0 1.6em 3.2em;
+	padding-left: 0;
+}
+
+.edit-post-visual-editor ul:not(.wp-block-gallery),
+.editor-block-list__block ul:not(.wp-block-gallery),
+.block-library-list ul {
+	list-style: disc;
+}
+
+.edit-post-visual-editor ol,
+.editor-block-list__block ol,
+.block-library-list ol {
+	list-style: decimal;
+}
+
+.edit-post-visual-editor ul:not(.wp-block-gallery) li,
+.editor-block-list__block ul:not(.wp-block-gallery) li,
+.edit-post-visual-editor ol li,
+.editor-block-list__block ol li,
+.block-library-list li {
+	margin-bottom: 0;
+}
+
+.edit-post-visual-editor ul:not(.wp-block-gallery) li > ul,
+.editor-block-list__block ul:not(.wp-block-gallery) li > ul,
+.block-library-list li > ul,
+.edit-post-visual-editor li > ol,
+.editor-block-list__block li > ol,
+.block-library-list li > ol {
+	margin-bottom: 0;
+}
+
+.rtl .edit-post-visual-editor ul:not(.wp-block-gallery),
+.rtl .editor-block-list__block ul:not(.wp-block-gallery),
+.rtl .block-library-list ul,
+.rtl .edit-post-visual-editor ol,
+.rtl .editor-block-list__block ol,
+.rtl .block-library-list ol {
+	margin-left: 0;
+	margin-right: 1.6em;
+	padding: 0;
+}
+
+.rtl .edit-post-visual-editor ol,
+.rtl .editor-block-list__block ol,
+.rtl .block-library-list ol {
+	margin-left: 1.6em;
+	margin-right: 1.6em;
+}
+
+/* Quotes */
+
+.rtl .editor-block-list__block blockquote {
+	border-left: 0;
+	padding-left: 0;
+}
+
+/* Captions */
+
+[class^="wp-block-"] figcaption {
+	color: #686868;
+	font-style: italic;
+	line-height: 1.6153846154;
+	padding-top: 0.5384615385em;
+}
+
+/*--------------------------------------------------------------
+3.0 Blocks - Common Blocks
+--------------------------------------------------------------*/
+
+/* Paragraph */
+
+.wp-block-paragraph.has-drop-cap:not(:focus)::first-letter {
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-size: 64px;
+}
+
+.rtl .wp-block-paragraph.has-drop-cap:not(:focus)::first-letter {
+}
+
+/* Quote */
+
+.wp-block-quote {
+	color: #99908a;
+	font-size: 18px;
+	font-style: italic;
+	margin: 0;
+	margin-bottom: .8em;
+	border-top: 3px solid #e8e9ea;
+	border-bottom: 1px solid #e8e9ea;
+	padding-top: .8em;
+	padding-bottom: .8em;
+}
+
+.wp-block-quote:not(.is-large):not(.is-style-large),
+.wp-block-quote:not(.is-large):not(.is-style-large).alignleft,
+.wp-block-quote:not(.is-large):not(.is-style-large).alignright {
+	border-left: 0;
+	padding-left: 0;
+}
+
+.edit-post-visual-editor .editor-block-list__block .wp-block-quote p:not(.wp-block-cover-text) {
+	color: #99908a;
+	font-size: 18px;
+}
+
+.edit-post-visual-editor .editor-block-list__block .wp-block-quote p:not(.wp-block-cover-text):last-child {
+	margin-bottom: 0;
+}
+
+.wp-block-quote__citation {
+	color: #99908a;
+	display: block;
+	text-align: right;
+	font-style: normal;
+	font-size: 16px;
+}
+
+.wp-block-quote__citation:before {
+}
+
+.wp-block-quote em,
+.wp-block-quote i,
+.wp-block-quote__citation:before {
+	font-style: normal;
+}
+
+.wp-block-quote > :last-child {
+	margin-bottom: 0;
+}
+
+.wp-block-quote.alignleft {
+	margin: .8em 1.6em .8em 0;
+}
+
+.wp-block-quote.alignright {
+	margin: .8em 0 .8em 1.6em;
+}
+
+.wp-block-quote.aligncenter {
+	margin-bottom: 1.6em;
+}
+
+.rtl .wp-block-quote:not(.is-large):not(.is-style-large).alignleft,
+.rtl .wp-block-quote:not(.is-large):not(.is-style-large).alignright  {
+}
+
+.wp-block-quote.is-large,
+.wp-block-quote.is-style-large {
+	padding: .4em 0 .8em;
+}
+
+.edit-post-visual-editor .editor-block-list__block .wp-block-quote.is-large p:not(.wp-block-cover-text),
+.edit-post-visual-editor .editor-block-list__block .wp-block-quote.is-style-large p:not(.wp-block-cover-text) {
+	font-size: 26px;
+}
+
+@media screen and ( min-width: 68em ) {
+	.edit-post-visual-editor .editor-block-list__block .wp-block-quote p:not(.wp-block-cover-text) {
+		font-size: 26px;
+	}
+
+	.edit-post-visual-editor .editor-block-list__block .wp-block-quote.is-large p:not(.wp-block-cover-text),
+	.edit-post-visual-editor .editor-block-list__block .wp-block-quote.is-style-large p:not(.wp-block-cover-text) {
+		font-size: 36px;
+	}
+}
+
+/* Audio */
+
+/* Cover Images */
+
+/* File */
+
+.wp-block-file__textlink {
+	box-shadow: 0 1px 0 0 currentColor;
+	color: #007acc;
+}
+
+.wp-block-file .wp-block-file__button {
+	background: #1a1a1a;
+	border: 0;
+	border-radius: 2px;
+	color: #fff;
+	font-family: Montserrat, "Helvetica Neue", sans-serif;
+	font-weight: 700;
+	letter-spacing: 0.046875em;
+	line-height: 1;
+	padding: 0.84375em 0.875em 0.78125em;
+	text-transform: uppercase;
+}
+
+/*--------------------------------------------------------------
+4.0 Blocks - Formatting
+--------------------------------------------------------------*/
+
+/* Verse */
+
+.wp-block-verse pre {
+	color: #5e5853;
+	background: transparent;
+	font-family: inherit;
+	font-size: 18px;
+	line-height: inherit;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 0;
+}
+
+/* Code */
+
+.wp-block-code {
+	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+	font-size: 13.2px;
+}
+
+/* Classic */
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote {
+	color: #99908a;
+	font-size: 18px;
+	font-style: italic;
+	margin: 0;
+	padding: .8em 0;
+	border-top: 3px solid #e8e9ea;
+	border-bottom: 1px solid #e8e9ea;
+	border-left: 0;
+	margin-bottom: .8em;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote p {
+	font-size: 18px;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote > :last-child {
+	margin-bottom: 0;
+}
+
+@media screen and ( min-width: 68em ) {
+	.wp-block-freeform.block-library-rich-text__tinymce blockquote,
+	.wp-block-freeform.block-library-rich-text__tinymce blockquote p {
+		font-size: 26px;
+	}
+}
+
+.editor-block-list__block .wp-block-freeform.block-library-rich-text__tinymce blockquote:not(.alignleft):not(.alignright) {
+	margin-left: 0;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote cite {
+	display: block;
+	text-align: right;
+	font-style: normal;
+	font-size: 16px;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote cite:before {
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote.alignleft {
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote.alignright {
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce blockquote.aligncenter {
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce blockquote {
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce .alignleft {
+	float: left;
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce .alignright {
+	float: right;
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce blockquote.alignleft {
+	margin: .8em 1.6em .8em 0;
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce blockquote.alignright {
+	margin: .8em 0 .8em 1.6em;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h1 {
+	font-size: 34px;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h2 {
+	font-size: 29.2px;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h3 {
+	font-size: 26px;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h4 {
+	font-size: 18px;
+	margin-top: 0.4em;
+	margin-bottom: 0.4em;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h5 {
+	font-size: 16px;
+	margin-top: 0.8em;
+	margin-bottom: 0.8em;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce h6 {
+	font-size: 14px;
+	margin-top: 0.8em;
+	margin-bottom: 0.8em;
+}
+
+@media screen and ( min-width: 48em ) {
+	.wp-block-freeform.block-library-rich-text__tinymce h1 {
+		font-size: 47.12px;
+	}
+
+	.wp-block-freeform.block-library-rich-text__tinymce h2 {
+		font-size: 42px;
+	}
+
+	.wp-block-freeform.block-library-rich-text__tinymce h3 {
+		font-size: 29.2px;
+	}
+
+	.wp-block-freeform.block-library-rich-text__tinymce h4 {
+		font-size: 26px;
+	}
+
+	.wp-block-freeform.block-library-rich-text__tinymce h5 {
+		font-size: 18px;
+	}
+
+	.wp-block-freeform.block-library-rich-text__tinymce h6 {
+		font-size: 16px;
+	}
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce pre {
+	background: #e8e9ea;
+	font-family: "Courier 10 Pitch", Courier, monospace;
+	font-size: 13.2px;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 1.6em;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce table {
+	display: table;
+	margin: 0 0 1.6em;
+	width: 100%;
+	border-collapse: collapse;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce .alternate {
+	background: transparent;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce table td,
+.wp-block-freeform.block-library-rich-text__tinymce table th {
+	padding: 0.4em 0.2em;
+	border: 0;
+	border-bottom: 1px solid #e8e9ea;
+}
+
+.wp-block-freeform.block-library-rich-text__tinymce table th {
+	font-weight: bold;
+	border-bottom-width: 3px;
+	text-align: left;
+}
+
+.rtl .wp-block-freeform.block-library-rich-text__tinymce th,
+.rtl .wp-block-freeform.block-library-rich-text__tinymce td {
+	text-align: right;
+}
+
+/* Preformatted */
+
+.editor-block-list__block .wp-block-preformatted pre {
+	background: #e8e9ea;
+	font-family: "Courier 10 Pitch", Courier, monospace;
+	font-size: 13.2px;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 1.6em;
+}
+
+/* Pullquote */
+
+.editor-block-list__block .wp-block-pullquote blockquote {
+	margin: 0;
+	padding: 0;
+	border: 0;
+}
+
+.wp-block-pullquote {
+	border-color: #e8e9ea;
+	padding: 1.6em 0;
+}
+
+.wp-block-pullquote blockquote {
+	font-size: 18px;
+	font-style: italic;
+}
+
+.edit-post-visual-editor .editor-block-list__block .wp-block-pullquote p:not(.wp-block-cover-text) {
+	color: #99908a;
+	font-size: 18px;
+}
+
+.edit-post-visual-editor .editor-block-list__block .wp-block-pullquote p:not(.wp-block-cover-text):last-child {
+	margin-bottom: 0;
+}
+
+.wp-block-pullquote .wp-block-pullquote__citation {
+	color: #99908a;
+	display: block;
+	text-transform: uppercase;
+	font-size: 14px;
+}
+
+.wp-block-pullquote .wp-block-pullquote__citation:before {
+}
+
+@media screen and ( min-width: 68em ) {
+	.edit-post-visual-editor .editor-block-list__block .wp-block-pullquote p:not(.wp-block-cover-text) {
+		font-size: 26px;
+	}
+}
+
+/* Table */
+
+.editor-block-list__block table.wp-block-table {
+	display: table;
+	margin: 0 0 1.6em;
+	width: 100%;
+}
+
+.editor-block-list__block table.wp-block-table td,
+.editor-block-list__block table.wp-block-table th {
+	padding: 0.4em 0.2em;
+	border: 0;
+	border-bottom: 1px solid #e8e9ea;
+}
+
+.editor-block-list__block table.wp-block-table th {
+	font-weight: bold;
+	border-bottom-width: 3px;
+	text-align: left;
+}
+
+.rtl .wp-block-table th,
+.rtl .wp-block-table td {
+	text-align: right;
+}
+
+/*--------------------------------------------------------------
+5.0 Blocks - Layout Elements
+--------------------------------------------------------------*/
+
+/* Buttons */
+.wp-block-button .wp-block-button__link {
+	border-radius: 0;
+	display: inline-block;
+	font-size: 13.2px;
+	font-family: Raleway, "Helvetica Neue", sans-serif;
+	text-transform: uppercase;
+	letter-spacing: 1px;
+	font-weight: bold;
+	line-height: 1 !important;
+	transition: 0.3s;
+	text-decoration: none;
+}
+
+.wp-block-button .wp-block-button__link:hover,
+.wp-block-button .wp-block-button__link:focus,
+.wp-block-button .wp-block-button__link:active {
+}
+
+.wp-block-button__link:not(.has-text-color),
+.wp-block-button__link:not(.has-text-color):active,
+.wp-block-button__link:not(.has-text-color):focus,
+.wp-block-button__link:not(.has-text-color):hover {
+	color: white;
+}
+
+.wp-block-button__link:not(.has-background) {
+	background-color: #99908a;
+	outline: 4px solid #99908a;
+	border: 2px solid white;
+	position: relative;
+	left: 4px;
+}
+
+.wp-block-button__link:not(.has-background):active,
+.wp-block-button__link:not(.has-background):focus,
+.wp-block-button__link:not(.has-background):hover {
+	outline-color: #5e5853;
+	background-color: #5e5853;
+}
+
+/* Separator */
+.wp-block-separator {
+	background-color: #e8e9ea;
+	border: 0;
+	height: 1px;
+	margin: 0.8em auto;
+	max-width: 66%;
+}
+
+.wp-block-separator.is-wide {
+	max-width: 100%;
+}
+
+/*--------------------------------------------------------------
+6.0 Blocks - Widgets
+--------------------------------------------------------------*/
+
+/* Latest Comments */
+
+.editor-block-list__block .wp-block-latest-comments__comment-meta a {
+	box-shadow: none;
+	font-weight: 700;
+	text-decoration: none;
+}
+
+.wp-block-latest-comments__comment-date {
+}
+
+.wp-block-latest-comments .wp-block-latest-comments__comment {
+	border-top: 1px solid #d1d1d1;
+	margin-bottom: 0;
+	padding: 1.75em 0;
+}
+
+.wp-block-latest-comments__comment-excerpt p:last-child {
+	margin-bottom: 0;
+}
+
+/* Latest Posts */
+
+.edit-post-visual-editor .wp-block-latest-posts.is-grid {
+	list-style: none;
+	margin-left: 0;
+	margin-right: 0;
+}
+
+.edit-post-visual-editor .wp-block-latest-posts.is-grid li {
+	margin-bottom: 1em;
+}

+ 503 - 0
affinity/editor-style.css

@@ -0,0 +1,503 @@
+/*
+Theme Name: Affinity
+Description: Used to style the TinyMCE editor.
+*/
+
+/**
+ * Table of Contents:
+ *
+ * 1.0 - Body
+ * 2.0 - Typography
+ * 3.0 - Elements
+ * 4.0 - Alignment
+ * 5.0 - Caption
+ * 6.0 - Galleries
+ * 7.0 - Audio / Video
+ * 8.0 - RTL
+ */
+
+
+/**
+ * 1.0 - Body
+ */
+
+body {
+	color: #1e1c1b;
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-size: 16px;
+	font-size: 1rem;
+	line-height: 1.6;
+}
+
+body.post-type-page {
+	max-width: 716px;
+}
+
+
+/**
+ * 2.0 - Typography
+ */
+
+h1, h2, h3, h4, h5, h6 {
+	clear: both;
+	font-family: Lora, Baskerville, Georgia, Times, serif;
+	font-style: italic;
+	font-weight: normal;
+	margin-top: 0.2em;
+	margin-bottom: 0.2em;
+}
+
+h1 {
+	font-size: 34px;
+	font-size: 2.125rem;
+}
+
+h2 {
+	font-size: 29.2px;
+	font-size: 1.825rem;
+}
+
+h3 {
+	font-size: 26px;
+	font-size: 1.625rem;
+}
+
+h4 {
+	font-size: 18px;
+	font-size: 1.125rem;
+	margin-top: 0.4em;
+	margin-bottom: 0.4em;
+}
+
+h5 {
+	font-size: 16px;
+	font-size: 1rem;
+	margin-top: 0.8em;
+	margin-bottom: 0.8em;
+}
+
+h6 {
+	font-size: 14px;
+	font-size: 0.875rem;
+	margin-top: 0.8em;
+	margin-bottom: 0.8em;
+}
+
+@media screen and (min-width: 46em) {
+	h1 {
+		font-size: 47.12px;
+	}
+
+	h2 {
+		font-size: 42px;
+	}
+
+	h3 {
+		font-size: 29.2px;
+	}
+
+	h4 {
+		font-size: 26px;
+	}
+
+	h5 {
+		font-size: 18px;
+	}
+
+	h6 {
+		font-size: 16px;
+	}
+}
+
+p {
+	margin-top: 0;
+	margin-bottom: 1.6em;
+}
+
+b,
+strong {
+	font-weight: 700;
+}
+
+dfn, cite, em, i {
+	font-style: italic;
+}
+
+blockquote {
+	border-left: 4px solid #1a1a1a;
+	color: #686868;
+	font-size: 19px;
+	font-style: italic;
+	line-height: 1.4736842105;
+	margin-bottom: 28px;
+	overflow: hidden;
+	padding: 0 0 0 24px;
+}
+
+blockquote {
+	color: #99908a;
+	font-size: 18px;
+	font-style: italic;
+	margin: 0;
+	border-top: 3px solid #e8e9ea;
+	padding-top: .8em;
+	border-bottom: 1px solid #e8e9ea;
+	margin-bottom: .8em;
+	padding-bottom: .8em;
+}
+blockquote.aligncenter {
+	text-align: center;
+}
+blockquote p:last-of-type {
+	margin-bottom: 0;
+}
+blockquote blockquote {
+	border-top: 0;
+	border-bottom: 0;
+	padding-left: .8em;
+	padding-bottom: 0;
+}
+blockquote cite {
+	display: block;
+	text-align: right;
+	font-style: normal;
+	font-size: 16px;
+	font-size: 1rem;
+}
+blockquote, q {
+	quotes: "" "";
+}
+blockquote:before, blockquote:after, q:before, q:after {
+	content: "";
+}
+
+address {
+	margin: 0 0 1.6em;
+}
+
+pre {
+	background: #e8e9ea;
+	font-family: "Courier 10 Pitch", Courier, monospace;
+	font-size: 13.2px;
+	font-size: 0.825rem;
+	line-height: 1.6;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 1.6em;
+}
+
+code, kbd, tt, var {
+	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+	font-size: 13.2px;
+	font-size: 0.825rem;
+}
+
+abbr, acronym {
+	border-bottom: 1px dotted #666666;
+	cursor: help;
+}
+
+mark, ins {
+	background: #fff9c0;
+	text-decoration: none;
+}
+
+big {
+	font-size: 125%;
+}
+
+abbr[title] {
+	border-bottom: 1px dotted #d1d1d1;
+	cursor: help;
+}
+
+mark {
+	background: #ff0;
+	color: #000;
+}
+
+small {
+	font-size: 80%;
+}
+
+sub,
+sup {
+	font-size: 75%;
+	line-height: 0;
+	position: relative;
+	vertical-align: baseline;
+}
+
+sup {
+	top: -0.5em;
+}
+
+sub {
+	bottom: -0.25em;
+}
+
+
+/**
+ * 3.0 - Elements
+ */
+
+hr {
+	background-color: #e8e9ea;
+	border: 0;
+	height: 1px;
+	margin: 0.8em auto;
+	max-width: 66%;
+}
+
+ul, ol {
+	margin: 0 0 1.6em 3.2em;
+	padding-left: 0;
+}
+
+ul {
+	list-style: disc;
+}
+
+ol {
+	list-style: decimal;
+}
+
+li > ul,
+li > ol {
+	margin-bottom: 0;
+	margin-left: 1.6em;
+	padding-left: 0;
+}
+
+dt {
+	font-weight: bold;
+}
+
+dd {
+	margin: 0 1.6em 1.6em;
+}
+
+.mce-item-table,
+table {
+	margin: 0 0 1.6em;
+	width: 100%;
+}
+
+td,
+th
+.mce-item-table th,
+.mce-item-table td {
+	padding: 0.4em 0.2em;
+	border-bottom: 1px solid #e8e9ea;
+}
+
+th {
+	font-weight: bold;
+	border-bottom-width: 3px;
+	text-align: left;
+}
+
+caption {
+	font-style: italic;
+	font-weight: bold;
+}
+
+img {
+	border: 0;
+	height: auto;
+	max-width: 100%;
+	vertical-align: middle;
+}
+
+a img {
+	display: block;
+}
+
+figure {
+	margin: 0;
+}
+
+del {
+	opacity: 0.8;
+}
+
+a {
+	color: #99908a;
+	transition: 0.3s;
+}
+a:visited {
+	color: #99908a;
+}
+a:hover, a:focus, a:active {
+	color: #383e44;
+}
+a:focus {
+	outline: thin dotted;
+}
+a:hover, a:active {
+	outline: 0;
+}
+
+fieldset {
+	border: 1px solid silver;
+	margin: 0 2px;
+	padding: 0.35em 0.625em 0.75em;
+}
+
+
+/**
+ * 4.0 - Alignment
+ */
+
+.alignleft {
+	display: inline;
+	float: left;
+	margin: 0.4em 1.6em 0.4em 0;
+}
+
+.alignright {
+	display: inline;
+	float: right;
+	margin: 0.4em 0 0.4em 1.6em;
+}
+
+.aligncenter {
+	clear: both;
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+
+/**
+ * 5.0 - Caption
+ */
+
+.wp-caption {
+	font-size: 13.2px;
+	font-style: italic;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+}
+.wp-caption img[class*="wp-image-"] {
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+.wp-caption-text,
+.wp-caption-dd {
+	margin: 0.8em 0;
+	text-align: center;
+}
+
+
+/**
+ * 6.0 - Galleries
+ */
+
+.mce-content-body .wpview-wrap {
+	margin-bottom: 1.6em;
+}
+
+.gallery .gallery-item {
+	display: inline-block;
+	text-align: center;
+	vertical-align: top;
+	padding: .4em;
+	width: 100%;
+}
+
+.gallery-columns-1 .gallery-item {
+	max-width: 100%;
+}
+
+.gallery-columns-2 .gallery-item {
+	max-width: 50%;
+}
+.gallery-columns-3 .gallery-item {
+	max-width: 33.33%;
+}
+.gallery-columns-4 .gallery-item {
+	max-width: 25%;
+}
+.gallery-columns-5 .gallery-item {
+	max-width: 20%;
+}
+.gallery-columns-6 .gallery-item {
+	max-width: 16.66%;
+}
+.gallery-columns-7 .gallery-item {
+	max-width: 14.28%;
+}
+.gallery-columns-8 .gallery-item {
+	max-width: 12.5%;
+}
+.gallery-columns-9 .gallery-item {
+	max-width: 11.11%;
+}
+
+.gallery .gallery-caption {
+	display: block;
+	font-size: 13.2px;
+	font-size: 0.825rem;
+}
+
+
+/**
+ * 7.0 - Audio / Video
+ */
+
+.wp-audio-shortcode a,
+.wp-playlist a {
+	box-shadow: none;
+}
+
+.mce-content-body .wp-audio-playlist {
+	margin: 0;
+	padding-bottom: 0;
+}
+
+.mce-content-body .wp-playlist-tracks {
+	margin-top: 0;
+}
+
+.mce-content-body  .wp-playlist-item {
+	padding: .8em 0;
+}
+
+.mce-content-body .wp-playlist-item-length {
+	top: .8em;
+}
+
+
+/**
+ * 8.0 - RTL
+ */
+
+.rtl blockquote:not(.alignleft):not(.alignright) {
+	padding: 0 1.6em 0 0;
+}
+
+.rtl blockquote blockquote:not(.alignleft):not(.alignright) {
+	margin-right: 0;
+	margin-left: auto;
+}
+
+.rtl li > ul,
+.rtl blockquote > ul {
+	margin-right: 1.6em;
+	margin-left: auto;
+}
+
+.rtl li > ol,
+.rtl blockquote > ol {
+	margin-right: 1.6em;
+	margin-left: auto;
+}
+
+.rtl table th,
+.rtl .mce-item-table th,
+.rtl table caption {
+	text-align: right;
+}

+ 23 - 1
affinity/functions.php

@@ -35,6 +35,16 @@ function affinity_setup() {
 	 */
 	add_theme_support( 'title-tag' );
 
+	/*
+	 * Add editor styles
+	 */
+	add_editor_style();
+
+	/*
+	 * Add support for responsive embeds.
+	 */
+	add_theme_support( 'responsive-embeds' );
+
 	/**
 	 * Add support for core custom logo
 	 * - also see fallback in inc/jetpack.php
@@ -109,7 +119,7 @@ function affinity_content_width() {
 	// Largest width at mobile breakpoint 46em is 820px
 	// Actual width at largest possible screen size is 540px
 
-	$GLOBALS['content_width'] = apply_filters( 'affinity_content_width', 820 ); 
+	$GLOBALS['content_width'] = apply_filters( 'affinity_content_width', 820 );
 }
 add_action( 'after_setup_theme', 'affinity_content_width', 0 );
 
@@ -233,6 +243,9 @@ function affinity_fonts_url() {
 function affinity_scripts() {
 	wp_enqueue_style( 'affinity-style', get_stylesheet_uri() );
 
+	// Gutenberg styles
+	wp_enqueue_style( 'affinity-blocks', get_template_directory_uri() . '/blocks.css' );
+
 	wp_enqueue_style( 'affinity-fonts', affinity_fonts_url(), array(), null );
 
 	wp_enqueue_style( 'genericons', get_template_directory_uri() . '/fonts/genericons/genericons.css', array(), '3.4.1' );
@@ -253,6 +266,15 @@ function affinity_scripts() {
 }
 add_action( 'wp_enqueue_scripts', 'affinity_scripts' );
 
+/**
+ * Gutenberg Editor Styles
+ */
+function affinity_editor_styles() {
+	wp_enqueue_style( 'affinity-blocks-editor-style', get_template_directory_uri() . '/editor-blocks.css');
+	wp_enqueue_style( 'affinity-fonts', affinity_fonts_url(), array(), null );
+}
+add_action( 'enqueue_block_editor_assets', 'affinity_editor_styles' );
+
 
 /* Allow user to adjust opacity of overlay to work with lighter/darker photos */
 function affinity_style_options() {