├── site ├── .gitignore ├── gatsby-config.js └── package.json ├── .gitignore ├── packages └── gatsby-theme-tabor │ ├── .nvmrc │ ├── index.js │ ├── src │ ├── styles │ │ └── scss │ │ │ ├── coblocks │ │ │ ├── style │ │ │ │ ├── _formatting.scss │ │ │ │ ├── _background-parallax.scss │ │ │ │ ├── _shadow.scss │ │ │ │ ├── _padding.scss │ │ │ │ ├── _background-overlay.scss │ │ │ │ ├── _margin.scss │ │ │ │ ├── _background-classes.scss │ │ │ │ ├── _stacked.scss │ │ │ │ └── _gutter.scss │ │ │ ├── _style.scss │ │ │ ├── _common.scss │ │ │ └── blocks │ │ │ │ └── _media-card.scss │ │ │ ├── blocks │ │ │ ├── _misc.scss │ │ │ ├── _more.scss │ │ │ ├── _blockgallery.scss │ │ │ ├── _verse.scss │ │ │ ├── _audio-video.scss │ │ │ ├── _table.scss │ │ │ ├── _code.scss │ │ │ ├── _embed.scss │ │ │ ├── _font-sizes.scss │ │ │ ├── _list.scss │ │ │ ├── _preformatted.scss │ │ │ ├── _file.scss │ │ │ ├── _paragraph.scss │ │ │ ├── _archives-categories.scss │ │ │ ├── _button.scss │ │ │ ├── _latest-comments.scss │ │ │ ├── _color-palette.scss │ │ │ ├── _separator.scss │ │ │ ├── _captions.scss │ │ │ ├── _image.scss │ │ │ ├── _cover.scss │ │ │ ├── _gallery.scss │ │ │ ├── _quote.scss │ │ │ ├── _latest-posts.scss │ │ │ ├── _columns.scss │ │ │ ├── _pullquote.scss │ │ │ ├── _blocks.scss │ │ │ └── _coblocks.scss │ │ │ ├── modules │ │ │ ├── _gravity.scss │ │ │ ├── _clearings.scss │ │ │ ├── _animated-typography.scss │ │ │ ├── _pricing-tables.scss │ │ │ ├── _cf7.scss │ │ │ ├── _night-mode.scss │ │ │ ├── _pagination.scss │ │ │ ├── _ninja.scss │ │ │ ├── _accessibility.scss │ │ │ ├── _amazon-polly.scss │ │ │ ├── _error404.scss │ │ │ ├── _infinite-scroll.scss │ │ │ ├── _password-protected.scss │ │ │ ├── _revue.scss │ │ │ ├── _gists.scss │ │ │ ├── _print.scss │ │ │ ├── _icons.scss │ │ │ ├── _optinmonster-new.scss │ │ │ ├── _optinmonster.scss │ │ │ ├── _customizer.scss │ │ │ ├── _share-this.scss │ │ │ ├── _drop-in.scss │ │ │ ├── _om-inline.scss │ │ │ └── _accessibility-settings.scss │ │ │ ├── navigation │ │ │ ├── _links.scss │ │ │ ├── _nav-overflow.scss │ │ │ ├── _social.scss │ │ │ └── _dropdown.scss │ │ │ ├── typography │ │ │ ├── _typography.scss │ │ │ ├── _copy.scss │ │ │ └── _headings.scss │ │ │ ├── media │ │ │ ├── _captions.scss │ │ │ ├── _galleries.scss │ │ │ ├── _media.scss │ │ │ ├── _lazyload.scss │ │ │ └── _alignments.scss │ │ │ ├── layout │ │ │ ├── _main.scss │ │ │ ├── _search.scss │ │ │ ├── _layout.scss │ │ │ ├── _hero-block.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _footer.scss │ │ │ ├── _header-search.scss │ │ │ └── _header.scss │ │ │ ├── elements │ │ │ ├── _elements.scss │ │ │ ├── _fields.scss │ │ │ └── _buttons.scss │ │ │ ├── _normalize.scss │ │ │ ├── widgets │ │ │ └── _widgets.scss │ │ │ ├── _variables.scss │ │ │ └── customize-controls.scss │ ├── images │ │ └── wpgraphql-logo.png │ ├── utils │ │ ├── index.js │ │ └── typography.js │ ├── templates │ │ ├── page │ │ │ ├── data.js │ │ │ └── index.js │ │ ├── posts │ │ │ ├── README.md │ │ │ ├── archive.js │ │ │ ├── data.js │ │ │ └── single.js │ │ ├── tags │ │ │ └── archive.js │ │ ├── users │ │ │ └── archive.js │ │ └── categories │ │ │ └── archive.js │ ├── components │ │ ├── Icons │ │ │ ├── index.js │ │ │ ├── IconDown.js │ │ │ ├── IconLeft.js │ │ │ ├── IconRight.js │ │ │ ├── Play.js │ │ │ ├── ArrowDown.js │ │ │ ├── Linkedin.js │ │ │ ├── Search.js │ │ │ ├── Twitter.js │ │ │ ├── Settings.js │ │ │ ├── Settings3.js │ │ │ ├── Medium.js │ │ │ ├── Settings2.js │ │ │ ├── Dribble.js │ │ │ ├── Chain.js │ │ │ └── FacebookShare.js │ │ ├── HeaderArchive.js │ │ ├── MenuToggle.js │ │ ├── PostEntryTitle.js │ │ ├── Layout.js │ │ ├── Logo.js │ │ ├── PostEntryMeta.js │ │ ├── Footer.js │ │ ├── EngagementBar.js │ │ ├── PostEntryMedia.js │ │ ├── Pagination.js │ │ ├── PostEntry.js │ │ ├── Subscribe.js │ │ ├── SocialNav.js │ │ ├── ShareIcons.js │ │ ├── Header.js │ │ ├── NextPost.js │ │ ├── SEO.js │ │ └── Menu.js │ └── pages │ │ └── 404.js │ ├── .prettierrc │ ├── .editoconfig │ ├── config.js │ ├── gatsby-node.js │ ├── .prettierignore │ ├── gatsby-config.js │ ├── package.json │ ├── .gitignore │ ├── create │ ├── createTags.js │ ├── createUsers.js │ ├── createCategories.js │ └── createPages.js │ └── .eslintrc.json ├── package.json └── README.md /site/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public 3 | .cache -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/.nvmrc: -------------------------------------------------------------------------------- 1 | 11.10.1 2 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/index.js: -------------------------------------------------------------------------------- 1 | //no op 2 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/coblocks/style/_formatting.scss: -------------------------------------------------------------------------------- 1 | .uppercase { 2 | text-transform: uppercase; 3 | } 4 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_misc.scss: -------------------------------------------------------------------------------- 1 | .entry-content > iframe[id*="blubrryplayer"] { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_more.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | > [id*="more-"] { 3 | display: none; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "es5" 6 | } 7 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/coblocks/style/_background-parallax.scss: -------------------------------------------------------------------------------- 1 | .has-parallax { 2 | background-attachment: fixed; 3 | } 4 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/coblocks/style/_shadow.scss: -------------------------------------------------------------------------------- 1 | .has-shadow { 2 | box-shadow: 0 1.5vw 3vw -0.7vw rgba(0, 0, 0, 0.125); 3 | } -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/images/wpgraphql-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zgordon/tabor-gatsby-theme/HEAD/packages/gatsby-theme-tabor/src/images/wpgraphql-logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gatsby-themes", 3 | "private": true, 4 | "version": "1.0.0", 5 | "workspaces": [ 6 | "site", 7 | "packages/*" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/modules/_gravity.scss: -------------------------------------------------------------------------------- 1 | .gform_wrapper { 2 | 3 | ul, 4 | .gfield { 5 | list-style: none; 6 | padding: 0; 7 | margin: 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_blockgallery.scss: -------------------------------------------------------------------------------- 1 | .wp-block-blockgallery-stacked { 2 | li:last-child .blockgallery--caption { 3 | margin-bottom: -10px !important; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/modules/_clearings.scss: -------------------------------------------------------------------------------- 1 | .clear, 2 | .clearfix, 3 | .textwidget, 4 | .site-footer, 5 | .entry-content, 6 | .primary-menu, 7 | article[class^="post-"] { 8 | @include clearfix; 9 | } -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/utils/index.js: -------------------------------------------------------------------------------- 1 | import config from "../../config" 2 | 3 | export const createLocalLink = url => { 4 | if (`#` === url) { 5 | return null 6 | } 7 | return url.replace(config.wordPressUrl, ``) 8 | } 9 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/.editoconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/templates/page/data.js: -------------------------------------------------------------------------------- 1 | const PageTemplateFragment = ` 2 | fragment PageTemplateFragment on WPGraphQL_Page { 3 | id 4 | pageId 5 | title 6 | content 7 | } 8 | ` 9 | 10 | module.exports.PageTemplateFragment = PageTemplateFragment 11 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_verse.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-verse { 3 | @include blockMobileDisplay(); 4 | font-size: $font__size-xs; 5 | line-height: 1.8; 6 | padding-top: 0.7em; 7 | padding-bottom: 0.65em; 8 | padding-left: 1em; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_audio-video.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-audio { 3 | audio { 4 | margin-bottom: -10px; 5 | width: 100%; 6 | } 7 | } 8 | 9 | .wp-block-video { 10 | video { 11 | margin-bottom: -10px; 12 | width: 100%; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_table.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-table { 3 | @include blockMobileDisplay(); 4 | padding: 20px 25px; 5 | 6 | @media screen and (max-width: $content__width) { 7 | width: calc(100% - #{$content__padding * 2}); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/utils/typography.js: -------------------------------------------------------------------------------- 1 | import Typography from "typography" 2 | 3 | const typography = new Typography({ 4 | baseFontSize: "16px", 5 | baseLineHeight: 1.666, 6 | headerFontFamily: ["Heebo", "sans-serif"], 7 | bodyFontFamily: ["Lora", "serif"], 8 | }) 9 | 10 | export default typography 11 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Icons/index.js: -------------------------------------------------------------------------------- 1 | export { IconLeft } from "./IconLeft" 2 | export { IconRight } from "./IconRight" 3 | export { Twitter } from "./Twitter" 4 | export { Dribble } from "./Dribble" 5 | export { Medium } from "./Medium" 6 | export { FacebookShare } from "./FacebookShare" 7 | export { Linkedin } from "./Linkedin" 8 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_code.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-code { 3 | @include blockMobileDisplay(); 4 | padding: 0.8em 1.1em; 5 | 6 | &, 7 | code { 8 | background: none; 9 | } 10 | 11 | code { 12 | font-size: 14px; 13 | line-height: 1.8; 14 | padding: 0; 15 | top: 0; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * I'm thinking we'll probably end up 3 | * adding this to the .gitignore and have folks configure this on their own? 4 | * 5 | * ¯\_(ツ)_/¯ 6 | * 7 | * @type {{wordPressUrl: string}} 8 | */ 9 | const config = { 10 | wordPressUrl: `http://alexandraspalato.com/tabor`, 11 | } 12 | 13 | module.exports = config 14 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_embed.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | .wp-block-embed { 3 | .jetpack-video-wrapper, 4 | .fluid-width-video-wrapper { 5 | margin: 0; 6 | } 7 | 8 | &-twitter { 9 | .twitter-tweet { 10 | margin-bottom: 0 !important; 11 | margin-left: auto; 12 | margin-right: auto; 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/HeaderArchive.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const HeaderArchive = ({ name }) => ( 4 |
5 |

6 | {name} 7 |

8 |
9 | ); 10 | 11 | export default HeaderArchive; 12 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_font-sizes.scss: -------------------------------------------------------------------------------- 1 | .has-small-font-size { 2 | font-size: $font__size-editor--small; 3 | } 4 | 5 | .has-medium-font-size { 6 | font-size: $font__size-editor--medium; 7 | } 8 | 9 | .has-large-font-size { 10 | font-size: $font__size-editor--large; 11 | } 12 | 13 | .has-huge-font-size { 14 | font-size: $font__size-editor--huge; 15 | } 16 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/MenuToggle.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const MenuToggle = ({ onClick }) => ( 4 | 12 | ); 13 | 14 | export default MenuToggle; 15 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Icons/IconDown.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default () => ( 4 | 13 | 14 | 15 | ); 16 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/coblocks/style/_padding.scss: -------------------------------------------------------------------------------- 1 | .pb-0 { 2 | padding-bottom: 0 !important; 3 | } 4 | 5 | .pt-0 { 6 | padding-top: 0 !important; 7 | } 8 | 9 | .has-small-padding { 10 | padding: 14px; 11 | } 12 | 13 | .has-medium-padding { 14 | padding: 24px; 15 | } 16 | 17 | .has-large-padding { 18 | padding: 34px; 19 | } 20 | 21 | .has-huge-padding { 22 | padding: 60px; 23 | } -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Icons/IconLeft.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | export const IconLeft = () => ( 4 | 9 | ) 10 | -------------------------------------------------------------------------------- /site/gatsby-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | siteMetadata: { 3 | title: `Gatsby Starter`, 4 | description: `Gatsby starter site `, 5 | author: `@alexadark`, 6 | wordPressUrl: `http://alexandraspalato.com/tabor`, 7 | }, 8 | __experimentalThemes: [ 9 | { 10 | resolve: 'gatsby-theme-tabor', 11 | options: { wordPressUrl: `http://alexandraspalato.com/tabor` }, 12 | }, 13 | ], 14 | }; 15 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/modules/_animated-typography.scss: -------------------------------------------------------------------------------- 1 | .typed-cursor { 2 | opacity: 1; 3 | width: 1px; 4 | display: inline-block; 5 | height: 40px; 6 | position: relative; 7 | top: 2px; 8 | margin-left: 5px; 9 | background: $black; 10 | text-indent: -9999em; 11 | animation: blink 1s infinite; 12 | } 13 | 14 | @keyframes blink{ 15 | 0% { opacity:1; } 16 | 50% { opacity:0; } 17 | 100% { opacity:1; } 18 | } 19 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/modules/_pricing-tables.scss: -------------------------------------------------------------------------------- 1 | .bean-pricing-table { 2 | 3 | @media only screen and (min-width: 600px) { 4 | margin-left: -20px; 5 | width: calc( 100% + 40px ); 6 | } 7 | 8 | @media only screen and (min-width: 768px) { 9 | display: flex; 10 | } 11 | 12 | &.three-column-table { 13 | 14 | .pricing-column { 15 | float: none; 16 | width: 100% !important; 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Icons/IconRight.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | export const IconRight = () => ( 4 | 9 | ) 10 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/pages/404.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | import Layout from "../components/Layout" 4 | import Seo from "../components/Seo" 5 | 6 | const NotFoundPage = ({ location }) => ( 7 | 8 | 9 |

NOT FOUND

10 |

You just hit a route that doesn't exist... the sadness.

11 |
12 | ) 13 | 14 | export default NotFoundPage 15 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "site", 3 | "version": "0.0.1", 4 | "description": "demo site", 5 | "main": "gatsby-config.js", 6 | "license": "MIT", 7 | "private": true, 8 | "scripts": { 9 | "develop": "gatsby develop", 10 | "build": "gatsby build", 11 | "serve": "gatsby serve" 12 | }, 13 | "dependencies": { 14 | "gatsby": "^2.1.27", 15 | "gatsby-theme-tabor": "*", 16 | "react": "^16.8.4", 17 | "react-dom": "^16.8.4" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/PostEntryTitle.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { Link } from "gatsby" 3 | 4 | const PostEntryTitle = ({ post, location, titleClass }) => ( 5 | <> 6 | {location === "single" ? ( 7 |

{post.title}

8 | ) : ( 9 |

10 | {post.title} 11 |

12 | )} 13 | 14 | ) 15 | 16 | export default PostEntryTitle 17 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/styles/scss/blocks/_list.scss: -------------------------------------------------------------------------------- 1 | .entry-content { 2 | ul, 3 | ol { 4 | 5 | li { 6 | margin: 0 0 5px 20px; 7 | } 8 | 9 | ol { 10 | margin-top: 7px; 11 | margin-bottom: 7px; 12 | padding-left: 0; 13 | 14 | li { 15 | list-style: decimal; 16 | } 17 | } 18 | 19 | ul { 20 | margin-top: 7px; 21 | margin-bottom: 7px; 22 | padding-left: 0; 23 | 24 | li { 25 | list-style: circle; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/templates/posts/README.md: -------------------------------------------------------------------------------- 1 | # Posts 2 | 3 | This directory contains the templates and data 4 | dependencies for Posts. 5 | 6 | ## File Structure 7 | 8 | - **data.js**: The data dependencies for the templates 9 | - GraphQL Query fragments are defined here and used 10 | within the `createPosts` portion of the Gatsby Build 11 | step. 12 | - **single.js**: The template for a single post 13 | - **archive.js**: The template for the paginated blogroll 14 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Icons/Play.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | export default () => ( 4 | 5 | 6 | ) 7 | -------------------------------------------------------------------------------- /packages/gatsby-theme-tabor/src/components/Layout.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Header from './Header'; 3 | import Footer from './Footer'; 4 | import PropTypes from 'prop-types'; 5 | import '../styles/scss/style.scss'; 6 | 7 | const Layout = ({ children }) => ( 8 | <> 9 |
10 |
{children}
11 |