├── views
├── headers
│ ├── _header-page.twig
│ ├── _header-single.twig
│ ├── _header-section.twig
│ ├── _header-archive.twig
│ ├── _header-collection.twig
│ ├── header.twig
│ └── _header-site.twig
├── teases
│ ├── _tease-page.twig
│ ├── tease.twig
│ ├── _tease-post.twig
│ ├── _tease-piece.twig
│ └── _tease-project.twig
├── sidebars
│ ├── sidebar.twig
│ ├── sidebar-footer_left.twig
│ └── sidebar-footer_right.twig
├── pages
│ ├── page-plugin.twig
│ ├── page.twig
│ ├── page-long_form.twig
│ └── page-collections.twig
├── archives
│ ├── taxonomy.twig
│ ├── archive-project.twig
│ ├── archive.twig
│ └── taxonomy-collection.twig
├── site-options
│ ├── site-callout_bar.twig
│ └── site-colophon.twig
├── blocks
│ ├── _block-html.twig
│ ├── _block-gallery.twig
│ ├── _block-text.twig
│ ├── block.twig
│ ├── _block-quote.twig
│ ├── _block-cta.twig
│ ├── _block-textimage.twig
│ ├── _block-related.twig
│ ├── block-logic.twig
│ └── _block-list.twig
├── footers
│ ├── _footer-section.twig
│ ├── _footer-single.twig
│ ├── _footer-page.twig
│ ├── _footer-collection.twig
│ ├── footer.twig
│ ├── _footer-site.twig
│ └── _footer-piece.twig
├── utility
│ ├── edit-link.twig
│ ├── svg.twig
│ ├── section-nav.twig
│ ├── flexcontent-logic.twig
│ └── svg-defs.svg
├── author.twig
├── comment.twig
├── partials
│ ├── _large-feat-img.twig
│ ├── _gallery.twig
│ ├── _gallery-slider.twig
│ ├── search-form.twig
│ └── _share.twig
├── index.twig
├── navs
│ ├── nav.twig
│ └── _nav-prevnext.twig
├── 404.twig
├── singles
│ ├── single-password.twig
│ ├── single.twig
│ ├── single-project.twig
│ └── single-piece.twig
├── blog.twig
├── search.twig
├── html-header.twig
└── base.twig
├── screenshot.png
├── .gitignore
├── assets
├── Gruntconfig.yml
├── img
│ ├── pngs
│ │ ├── feed.png
│ │ ├── arrow-up.png
│ │ ├── facebook.png
│ │ ├── twitter.png
│ │ ├── arrow-down.png
│ │ ├── arrow-left.png
│ │ ├── arrow-right.png
│ │ └── quotes-left.png
│ ├── util
│ │ └── loader.gif
│ ├── svg-min
│ │ ├── arrow-up.min.svg
│ │ ├── facebook.min.svg
│ │ ├── arrow-right.min.svg
│ │ ├── arrow-left.min.svg
│ │ ├── arrow-down.min.svg
│ │ ├── search.min.svg
│ │ ├── instagram.min.svg
│ │ ├── quotes-left.min.svg
│ │ ├── pinterest.min.svg
│ │ ├── twitter.min.svg
│ │ └── text-logo.min.svg
│ └── svg-raw
│ │ ├── facebook.svg
│ │ ├── arrow-right.svg
│ │ ├── arrow-down.svg
│ │ ├── arrow-left.svg
│ │ ├── arrow-up.svg
│ │ ├── search.svg
│ │ ├── quotes-left.svg
│ │ ├── pinterest.svg
│ │ ├── instagram.svg
│ │ ├── twitter.svg
│ │ └── text-logo.svg
├── scss
│ ├── base
│ │ ├── _all.scss
│ │ ├── _icons.scss
│ │ ├── _tables.scss
│ │ ├── _buttons.scss
│ │ ├── _typography.scss
│ │ └── _forms.scss
│ ├── main.scss
│ ├── modules
│ │ ├── _blocks.scss
│ │ ├── _all.scss
│ │ ├── _titles.scss
│ │ ├── _site.scss
│ │ ├── _banner.scss
│ │ ├── _gallery.scss
│ │ ├── _headers.scss
│ │ ├── _social.scss
│ │ ├── _teases.scss
│ │ ├── _single.scss
│ │ ├── _alerts.scss
│ │ ├── _slider.scss
│ │ ├── _footers.scss
│ │ ├── _archives.scss
│ │ └── _navs.scss
│ ├── utils
│ │ ├── _all.scss
│ │ ├── _accordion.scss
│ │ ├── _animations.scss
│ │ ├── _helpers.scss
│ │ ├── _mixins.scss
│ │ ├── _variables.scss
│ │ ├── _layout.scss
│ │ ├── _vendor.scss
│ │ └── _normalize.scss
│ └── _holding.scss
├── css
│ └── acf.css
├── Gruntfile.js
├── tasks
│ ├── svgs.js
│ ├── javascript.js
│ ├── scss.js
│ └── utils.js
├── package.json
└── js
│ ├── src
│ └── _main.js
│ ├── vendor
│ └── lazysizes.min.js
│ └── build
│ └── modernizr-custom.js
├── .gitmodules
├── sidebar.php
├── style.css
├── lib
├── menus.php
├── widgets.php
├── acf-utils.php
├── taxonomies.php
└── custom-types.php
├── header.php
├── sidebar-footer_left.php
├── page-long_form.php
├── .jshintrc
├── 404.php
├── page-collections.php
├── _notes
├── 3_blocks.md
├── 4_templates.md
├── 2_urls.md
└── 1_content-list.md
├── README.md
├── search.php
├── footer.php
├── sidebar-footer_right.php
├── author.php
├── page.php
├── index.php
├── single.php
├── archive.php
└── acf-json
├── group_561469bad23e2.json
├── group_558c4cf19012d.json
├── group_56153f1cce040.json
├── group_545d1302ae129.json
├── group_54b843e095d4c.json
├── group_552c0be42be91.json
└── group_561462a992927.json
/views/headers/_header-page.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
--------------------------------------------------------------------------------
/views/headers/_header-single.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
--------------------------------------------------------------------------------
/views/teases/_tease-page.twig:
--------------------------------------------------------------------------------
1 | {% extends "teases/_tease-piece.twig" %}
--------------------------------------------------------------------------------
/views/sidebars/sidebar.twig:
--------------------------------------------------------------------------------
1 | Sidebar in Timber. Add HTML to your hearts content.
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/screenshot.png
--------------------------------------------------------------------------------
/views/sidebars/sidebar-footer_left.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .sass-cache/
3 | .DS_Store
4 | assets/css/build
5 | assets/js/build
--------------------------------------------------------------------------------
/assets/Gruntconfig.yml:
--------------------------------------------------------------------------------
1 | scssDir: scss/
2 | jsSrcDir: js/src/
3 | jsConcatDir: js/build/
4 | cssDir: css/
--------------------------------------------------------------------------------
/assets/img/pngs/feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/feed.png
--------------------------------------------------------------------------------
/views/pages/page-plugin.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% endblock %}
--------------------------------------------------------------------------------
/assets/img/pngs/arrow-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/arrow-up.png
--------------------------------------------------------------------------------
/assets/img/pngs/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/facebook.png
--------------------------------------------------------------------------------
/assets/img/pngs/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/twitter.png
--------------------------------------------------------------------------------
/assets/img/util/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/util/loader.gif
--------------------------------------------------------------------------------
/views/archives/taxonomy.twig:
--------------------------------------------------------------------------------
1 | {% set term = TimberTerm(term) %}
2 | {% extends 'archives/archive.twig' %}
3 |
4 |
--------------------------------------------------------------------------------
/assets/img/pngs/arrow-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/arrow-down.png
--------------------------------------------------------------------------------
/assets/img/pngs/arrow-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/arrow-left.png
--------------------------------------------------------------------------------
/views/site-options/site-callout_bar.twig:
--------------------------------------------------------------------------------
1 | {% if site_callout_bool %}
2 | {{site_callout_text}}
3 | {% endif %}
4 |
--------------------------------------------------------------------------------
/assets/img/pngs/arrow-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/arrow-right.png
--------------------------------------------------------------------------------
/assets/img/pngs/quotes-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/laras126/yuling-theme/HEAD/assets/img/pngs/quotes-left.png
--------------------------------------------------------------------------------
/views/blocks/_block-html.twig:
--------------------------------------------------------------------------------
1 | {% extends "blocks/block.twig" %}
2 |
3 | {% block content %}
4 | {{block.html}}
5 | {% endblock %}
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "simple-sassy-starter"]
2 | path = simple-sassy-starter
3 | url = https://github.com/laras126/simple-sassy-starter
--------------------------------------------------------------------------------
/views/footers/_footer-section.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_content %}
4 | footer on sections
5 | {% endblock %}
--------------------------------------------------------------------------------
/views/footers/_footer-single.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_content %}
4 | footer on single pages
5 | {% endblock %}
--------------------------------------------------------------------------------
/views/utility/edit-link.twig:
--------------------------------------------------------------------------------
1 | {% if post.can_edit %}
2 | {{function('edit_post_link', 'Edit Post', '', ' ', post.ID)}}
3 | {% endif %}
--------------------------------------------------------------------------------
/views/footers/_footer-page.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_class %}page{% endblock %}
4 |
5 | {% block footer_content %}{% endblock %}
--------------------------------------------------------------------------------
/views/archives/archive-project.twig:
--------------------------------------------------------------------------------
1 | {% extends 'archives/archive.twig' %}
2 |
3 | {# TODO: Customize project archive here. #}
4 | {# {% block content %}{% endblock %} #}
--------------------------------------------------------------------------------
/views/footers/_footer-collection.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_content %}
4 | Loop of other collections here.
5 | {% endblock %}
--------------------------------------------------------------------------------
/views/author.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 | {% block content %}
3 |
4 | {% for post in posts %}
5 | {% include ["tease-"~post.post_type~".twig", "tease.twig"] %}
6 | {% endfor %}
7 |
8 | {% endblock %}
--------------------------------------------------------------------------------
/views/blocks/_block-gallery.twig:
--------------------------------------------------------------------------------
1 | {% extends "blocks/block.twig" %}
2 |
3 | {% block content %}
4 | {% include 'partials/_gallery.twig' with { gallery: block.gallery, class: 'block' } %}
5 | {% endblock %}
6 |
--------------------------------------------------------------------------------
/assets/scss/base/_all.scss:
--------------------------------------------------------------------------------
1 |
2 | //----
3 | //---- Base element styles
4 | //----
5 |
6 | @import 'typography';
7 | @import 'buttons';
8 | @import 'forms';
9 | @import 'tables';
10 | @import 'icons';
11 |
12 |
--------------------------------------------------------------------------------
/sidebar.php:
--------------------------------------------------------------------------------
1 | {{block.block_heading}}
6 | {% endif %}
7 | {{block.block_text}}
8 | {% endblock %}
9 |
--------------------------------------------------------------------------------
/views/utility/svg.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/assets/scss/main.scss:
--------------------------------------------------------------------------------
1 |
2 | @import 'utils/all'; // Mixins, variables, and tools that do not output code
3 | @import 'base/all';
4 | @import 'modules/all';
5 | @import 'holding'; // Styles that need to be removed and handled differently
--------------------------------------------------------------------------------
/assets/css/acf.css:
--------------------------------------------------------------------------------
1 |
2 | /* Advanced Custom Fields */
3 |
4 | .wysiwyg-short iframe {
5 | max-height: 100px !important;
6 | min-height: 100px !important;
7 | }
8 |
9 | .code_field textarea {
10 | font-family: monospace;
11 | }
--------------------------------------------------------------------------------
/assets/scss/modules/_blocks.scss:
--------------------------------------------------------------------------------
1 | // Note: using and _ here because it maps to the ACF field name
2 |
3 | .block_list {
4 |
5 | }
6 |
7 | .block_list-list {
8 | @include unstyle-list;
9 | }
10 |
11 | .list-item-title {
12 |
13 | }
--------------------------------------------------------------------------------
/views/comment.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/headers/_header-section.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
3 | {% block header_content %}
4 | {{section.section_title}}
5 | {{section.section_lead}}
6 | {{section.section_summary}}
7 | {% endblock %}
--------------------------------------------------------------------------------
/views/partials/_large-feat-img.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/svg-min/arrow-up.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | /*
2 | Theme Name: Yuling Designs
3 | Description: Build with Timber and ACF with the Content Blocks starter.
4 | Author: Lara Schenck
5 | Author URI: http://notlaura.com
6 | Theme URI: http://github.com/laras126/content-blocks-starter
7 | Version: 0.0.1
8 | */
9 |
--------------------------------------------------------------------------------
/views/footers/footer.twig:
--------------------------------------------------------------------------------
1 |
2 | {# Base footer template #}
3 |
4 | {% set f_class = ' class="footer ' ~ class ~ '"' %}
5 | {% set f_role = ' role="' ~ role ~ '"' %}
6 |
7 |
8 | {% block footer_content %}{% endblock %}
9 |
--------------------------------------------------------------------------------
/lib/menus.php:
--------------------------------------------------------------------------------
1 |
14 |
15 |
--------------------------------------------------------------------------------
/assets/scss/utils/_all.scss:
--------------------------------------------------------------------------------
1 |
2 | // Variables
3 | @import 'variables';
4 | @import 'mixins';
5 |
6 | // Third Party
7 | @import 'normalize';
8 | @import 'vendor';
9 |
10 | // Dynamic
11 | @import 'helpers';
12 | @import 'layout';
13 | @import 'animations';
14 | @import 'accordion';
--------------------------------------------------------------------------------
/views/blocks/block.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% block content %}
4 |
Nothing in this Block
5 | {% endblock %}
6 |
7 |
--------------------------------------------------------------------------------
/assets/img/svg-min/facebook.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/blocks/_block-quote.twig:
--------------------------------------------------------------------------------
1 |
2 | {% block content %}
3 |
4 |
5 | {{block.quote_text}}
6 |
9 |
10 |
11 | {% endblock %}
--------------------------------------------------------------------------------
/header.php:
--------------------------------------------------------------------------------
1 |
5 | {% for post in posts %}
6 | {% set post = TimberPost(post) %}
7 | {% include ['teases/_tease-'~post.post_type~'.twig', 'teases/tease.twig'] %}
8 | {% endfor %}
9 |
10 | {% endblock %}
--------------------------------------------------------------------------------
/views/navs/nav.twig:
--------------------------------------------------------------------------------
1 |
2 | {# Base nav template #}
3 |
4 | {% set n_class = ' class="' ~ class ~ '"' %}
5 | {% set n_role = ' role="' ~ role ~ '"' %}
6 |
7 |
8 |
9 | {% block nav_content %}{% endblock %}
10 |
11 |
--------------------------------------------------------------------------------
/sidebar-footer_left.php:
--------------------------------------------------------------------------------
1 |
5 | Whoops!
6 | We couldn't find what you're looking for. Please try searching, or feel free to get in touch if you think this is a problem with our website.
7 |
8 | {% endblock %}
--------------------------------------------------------------------------------
/page-long_form.php:
--------------------------------------------------------------------------------
1 | #}
6 | {{block.cta_text}}
7 | {{block.cta_btn_text}}
8 | {# #}
9 |
10 | {% endblock %}
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "bitwise": true,
3 | "browser": true,
4 | "curly": true,
5 | "eqeqeq": true,
6 | "eqnull": true,
7 | "esnext": true,
8 | "immed": true,
9 | "jquery": true,
10 | "latedef": true,
11 | "newcap": true,
12 | "noarg": true,
13 | "node": true,
14 | "strict": false,
15 | "trailing": true
16 | }
17 |
--------------------------------------------------------------------------------
/assets/scss/modules/_all.scss:
--------------------------------------------------------------------------------
1 | @import 'site';
2 | @import 'navs';
3 | @import 'headers';
4 | @import 'titles';
5 | @import 'slider';
6 | @import 'banner';
7 | @import 'footers';
8 | @import 'alerts';
9 | @import 'teases';
10 | @import 'archives';
11 | @import 'blocks';
12 | @import 'gallery';
13 | @import 'single';
14 | @import 'social';
--------------------------------------------------------------------------------
/views/site-options/site-colophon.twig:
--------------------------------------------------------------------------------
1 |
2 | {# Note: weird to have a for credits, but necessary because of dumb WYSIWG and needing links, so can't striptags #}
3 |
4 | {{ site_footer_copyright ? '
© ' ~ site_footer_copyright ~ '.
' }} {{ site_footer_credits ? '
' ~ site_footer_credits ~ '
' }}
--------------------------------------------------------------------------------
/404.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/partials/_gallery.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% for image in gallery %}
4 |
5 |
6 |
7 | {% endfor %}
8 |
9 |
--------------------------------------------------------------------------------
/_notes/3_blocks.md:
--------------------------------------------------------------------------------
1 | Abstract what you've written in the content-list to blocks. What type of content fits what?
2 |
3 | As you are writing, I imagine you'll move smoothly into the templates phase. For example, if I were mapping the content for a single page of the custom type Service, and there are multiple services, this would organically translate to a reusable template for all services.
--------------------------------------------------------------------------------
/assets/img/svg-min/arrow-left.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/scss/modules/_site.scss:
--------------------------------------------------------------------------------
1 |
2 | // ----
3 | // Base styles
4 | // ----
5 |
6 | * {
7 | box-sizing: border-box;
8 | }
9 |
10 | body {
11 | word-wrap: break-word;
12 |
13 | @include bp(sm) {
14 | word-wrap: normal;
15 | }
16 | }
17 |
18 | img {
19 | max-width: 100%;
20 | }
21 |
22 | .main {
23 | @include bp(md) {
24 | padding: $size-h1*4 0 $size-h1;
25 | }
26 | }
--------------------------------------------------------------------------------
/assets/img/svg-min/arrow-down.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/svg-min/search.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/scss/modules/_banner.scss:
--------------------------------------------------------------------------------
1 |
2 | .banner {
3 | // overflow: hidden;
4 | // position: absolute;
5 | // position: relative;
6 | // max-height: 80vh;
7 | // justify-content: center;
8 | // align-items: space-between;
9 | // padding-bottom: 75%;
10 | }
11 |
12 | .banner-img {
13 | // position: absolute;
14 | // width: auto;
15 | // flex: 0;
16 | width: 100%;
17 | }
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Yuling Designs Website
3 |
4 | A WordPress theme built with [http://timber.upstatement.com](Timber) and (http://advancedcustomfields.com)[Advanced Custom Fields] using the [Content Blocks](http://github.com/laras126/content-blocks) starter framework.
5 |
6 | This theme is a great reference for anyone building a website with Timber and ACF. It is not intended to be used or contributed to.
--------------------------------------------------------------------------------
/views/utility/section-nav.twig:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
--------------------------------------------------------------------------------
/views/navs/_nav-prevnext.twig:
--------------------------------------------------------------------------------
1 | {% extends 'navs/nav.twig' %}
2 |
3 | {% block nav_content %}
4 |
9 |
14 | {% endblock %}
--------------------------------------------------------------------------------
/views/footers/_footer-site.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_content %}
4 |
5 |
13 | {% include 'site-options/site-colophon.twig' %}
14 |
15 | {% endblock %}
--------------------------------------------------------------------------------
/views/partials/_gallery-slider.twig:
--------------------------------------------------------------------------------
1 |
2 | {% for image in gallery %}
3 |
10 |
11 | {% endfor %}
12 |
13 |
--------------------------------------------------------------------------------
/assets/img/svg-min/instagram.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/singles/single-password.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 | {% block content %}
3 |
8 | {% endblock %}
9 |
--------------------------------------------------------------------------------
/assets/img/svg-min/quotes-left.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/blog.twig:
--------------------------------------------------------------------------------
1 | {% extends 'index.twig' %}
2 |
3 | {% block before_content %}
4 | {% include 'headers/_header-archive.twig' with { class : '-archive' } %}
5 | {% endblock %}
6 |
7 | {% block content %}
8 |
9 |
10 | {% for post in posts %}
11 | {% set post = TimberPost(post) %}
12 | {% include ['teases/_tease-'~post.post_type~'.twig', 'teases/tease.twig'] %}
13 | {% endfor %}
14 |
15 |
16 | {% endblock %}
--------------------------------------------------------------------------------
/views/blocks/_block-textimage.twig:
--------------------------------------------------------------------------------
1 | {% extends "blocks/block.twig" %}
2 |
3 | {% block content %}
4 | {% if block.textimage_format == 'caption'%}
5 |
6 |
{{block.textimage_caption}}
7 | {% elseif block.textimage_format == 'paragraph'%}
8 |
9 | {{block.textimage_paragraph}}
10 | {% endif %}
11 | {% endblock %}
--------------------------------------------------------------------------------
/views/partials/search-form.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/svg-min/pinterest.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/search.php:
--------------------------------------------------------------------------------
1 |
7 |
Explore
8 |
9 |
10 | {{block.description}} Read more
11 | {% endfor %}
12 |
13 | {% endblock %}
--------------------------------------------------------------------------------
/views/search.twig:
--------------------------------------------------------------------------------
1 | {% extends 'index.twig' %}
2 |
3 | {% block before_content %}
4 | {% include 'headers/_header-archive.twig' with { class : '-archive' } %}
5 | {% endblock %}
6 |
7 | {% block content %}
8 |
9 |
10 | {% for post in posts %}
11 | {% set post = TimberPost(post) %}
12 | {% include ['teases/_tease-'~post.post_type~'.twig', 'teases/tease.twig'] with { class: 'teaser lazyload' } %}
13 | {% endfor %}
14 |
15 |
16 | {% endblock %}
--------------------------------------------------------------------------------
/views/archives/archive.twig:
--------------------------------------------------------------------------------
1 | {% extends 'index.twig' %}
2 |
3 | {% block before_content %}
4 | {% include 'headers/_header-archive.twig' with { class : '-archive' } %}
5 | {% endblock %}
6 |
7 | {% block content %}
8 |
9 |
10 | {% for post in posts %}
11 | {% set post = TimberPost(post) %}
12 | {% include ['teases/_tease-'~post.post_type~'.twig', 'teases/tease.twig'] with { class: 'teaser lazyload' } %}
13 | {% endfor %}
14 |
15 |
16 | {% endblock %}
--------------------------------------------------------------------------------
/views/headers/_header-archive.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
3 | {% block before_header_content %}{% endblock %}
4 |
5 | {% block header_content %}
6 |
7 |
{{title}}
8 |
9 | {# {% set display = post.header_display %} #}
10 | {# #}
11 | {# #}
12 |
13 |
14 | {% endblock %}
15 |
16 | {% block after_header_content %}{% endblock %}
17 |
--------------------------------------------------------------------------------
/footer.php:
--------------------------------------------------------------------------------
1 |
7 |
8 | {% block content %}
9 | {# The default markup for a tease. #}
10 |
11 | {{post.header_summary}}
12 | Read more...
13 |
14 | {% if post.thumbnail.src %}
15 |
16 | {% endif %}
17 | {% endblock %}
18 |
19 |
--------------------------------------------------------------------------------
/views/teases/_tease-post.twig:
--------------------------------------------------------------------------------
1 | {% extends "teases/tease.twig" %}
2 |
3 | {# TODO: Customize markup in here #}
4 | {% block content %}
5 |
6 | {% if post.thumbnail.src %}
7 |
8 | {% endif %}
9 |
10 |
{{post.title}}
11 |
{{post.post_excerpt ? post.post_excerpt : post.header_summary}}
12 |
13 |
14 | {% include 'utility/edit-link.twig' %}
15 | {% endblock %}
--------------------------------------------------------------------------------
/assets/img/svg-raw/facebook.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/author.php:
--------------------------------------------------------------------------------
1 | query_vars['author'])){
16 | $author = new TimberUser($wp_query->query_vars['author']);
17 | $data['author'] = $author;
18 | $data['title'] = 'Author Archives: ' . $author->name();
19 | }
20 | Timber::render(array('author.twig', 'archive.twig'), $data);
21 |
--------------------------------------------------------------------------------
/views/singles/single.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 |
3 | {% block before_content %}
4 | {% include 'headers/_header-single.twig' with { class : '-single -' ~ post.post_type } %}
5 | {% endblock %}
6 |
7 | {% block content %}
8 |
11 |
12 | {% for block in post.get_field('blocks') %}
13 | {% include 'blocks/block-logic.twig' %}
14 | {% endfor %}
15 | {% endblock %}
16 |
17 | {% block after_content %}
18 | {% include ['footers/_footer-' ~ post.post_type ~ '.twig', 'footers/footer.twig'] with { class: post.post_type ? '-' ~ post.post_type } %}
19 | {% endblock %}
--------------------------------------------------------------------------------
/assets/img/svg-raw/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/scss/modules/_gallery.scss:
--------------------------------------------------------------------------------
1 | .gallery {
2 | @include grid;
3 |
4 | // Eh, would be better not to override this, but oh well.
5 | &.-inspiration {
6 | margin: 0;
7 | }
8 | }
9 |
10 | .gallery-thumb {
11 |
12 | &.-piece,
13 | &.-collection,
14 | &.-project,
15 | &.-block {
16 | @include cell(half);
17 | }
18 |
19 | &.-inspiration {
20 | @include cell($size: half, $guttered: false);
21 | }
22 |
23 | &.-collection {
24 | @include bp(sm) { @include cell(half); }
25 | @include bp(md) { @include cell(third, $is_first: false); }
26 | @include bp(lg) { @include cell(fourth, $is_first: false); }
27 | }
28 |
29 | img {
30 | width: 100%;
31 | display: block;
32 | }
33 | }
--------------------------------------------------------------------------------
/assets/img/svg-raw/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
8 |
9 |
--------------------------------------------------------------------------------
/_notes/4_templates.md:
--------------------------------------------------------------------------------
1 |
2 | Take the content in pages, and abstract it to templates. Which are long form with sections, and which are simple blocks? Are there any custom templates or fields you need?
3 |
4 | ### Service Template
5 |
6 | Section
7 |
8 | - List block: "Formats/You give us"
9 | - Text block (enhanced): "Results/We give you"
10 | - CTA (small)
11 | - Testimonial block
12 |
13 | Section
14 |
15 | - Text block: "Customization/Service Options"
16 | - Custom block: "Quick Quote"
17 |
18 | Section
19 |
20 | - CTA (prominent, enhanced)
21 | - Image/text block (enhanced): "Process"
22 |
23 |
24 | ### About
25 |
26 | - Text
27 | - Text/Image (paragraph)
28 | - CTA
29 | - Text/Image (caption)
30 | - Testimonial
31 | - CTA
--------------------------------------------------------------------------------
/assets/img/svg-min/twitter.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/search.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/assets/scss/modules/_headers.scss:
--------------------------------------------------------------------------------
1 |
2 | .header {
3 | &.-site {
4 | background-color: rgba($color-rotate-bkgd, 1);
5 | // background: linear-gradient($color-rotate-bkgd, rgba($color-rotate-bkgd, 0));
6 | // padding-bottom: $size-sml;
7 | position: fixed;
8 | width: 100%;
9 | z-index: $z-top;
10 | top: 0;
11 | }
12 | }
13 |
14 | .title {
15 | &.-page {
16 | text-align: center;
17 | }
18 | }
19 |
20 | .logo-text-logo {
21 | padding-top: $size-base;
22 | display: block;
23 | margin: 0 auto;
24 | max-width: 60%;
25 | opacity: 1;
26 | max-height: 6em;
27 | @include header-animate;
28 |
29 | @include bp(sm) {
30 | max-width: $size-h1*6;
31 | }
32 |
33 | .shrunk & {
34 | max-height: 0;
35 | opacity: 0;
36 | padding-top: $size-xsml;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/views/pages/page-long_form.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% include 'headers/_header-page.twig' with { h_class: 'header--page' } %}
6 |
7 |
11 |
12 | {% include 'partials/section-nav.twig'%}
13 |
14 | {% for section in post.get_field('sections') %}
15 |
24 | {% endfor %}
25 |
26 | {% endblock %}
--------------------------------------------------------------------------------
/assets/scss/base/_tables.scss:
--------------------------------------------------------------------------------
1 |
2 | table {
3 | width: 100%;
4 | font-family: $font-form;
5 | margin-bottom: 1.5em;
6 |
7 | caption {
8 | margin: 0 0 7px;
9 | font-size: $size-xsml;
10 | color: $color-text-light;
11 | }
12 | }
13 |
14 | tr {
15 | &:nth-child(even) {
16 | background-color: $color-table-rotate;
17 | }
18 | }
19 |
20 | td {
21 | padding: 7px;
22 | border-right: 1px solid $color-accent-light;
23 |
24 | &:last-child {
25 | border-right: 0;
26 | }
27 | }
28 |
29 | th {
30 | background-color: $color-accent-light;
31 | border-bottom: 1px solid $color-accent-light;
32 | border-right: 1px solid $color-accent-light;
33 |
34 | &:last-child {
35 | border-right: 0;
36 | }
37 | }
--------------------------------------------------------------------------------
/views/blocks/block-logic.twig:
--------------------------------------------------------------------------------
1 |
2 | {% set block_class = block.acf_fc_layout %}
3 |
4 | {% if block.acf_fc_layout == 'block_text' %}
5 | {% include 'blocks/_block-text.twig' %}
6 | {% elseif block.acf_fc_layout == 'block_textimage' %}
7 | {% include 'blocks/_block-textimage.twig' %}
8 | {% elseif block.acf_fc_layout == 'block_gallery' %}
9 | {% include 'blocks/_block-gallery.twig' %}
10 | {% elseif block.acf_fc_layout == 'block_html' %}
11 | {% include 'blocks/_block-html.twig' %}
12 | {% elseif block.acf_fc_layout == 'block_list' %}
13 | {% include 'blocks/_block-list.twig' %}
14 | {% elseif block.acf_fc_layout == 'block_cta' %}
15 | {% include 'blocks/_block-cta.twig' %}
16 | {% elseif block.acf_fc_layout == 'block_quote' %}
17 | {% include 'blocks/_block-quote.twig' %}
18 | {% endif %}
--------------------------------------------------------------------------------
/assets/img/svg-raw/quotes-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/pinterest.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/views/teases/_tease-piece.twig:
--------------------------------------------------------------------------------
1 | {% extends "teases/tease.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% if post.thumbnail %}
6 |
7 | {% else %}
8 | {# TODO: replace this with something we serve. #}
9 |
10 | {% endif %}
11 |
12 |
{{post.post_title}}
13 | {% if post.header_tagline %}
{{post.header_tagline}}
{% endif %}
14 |
15 | {# {% include 'utility/svg.twig' with { prefix: 'icon', file: 'arrow-right' } %} #}
16 |
17 | {% include 'utility/edit-link.twig' %}
18 | {% endblock %}
--------------------------------------------------------------------------------
/views/teases/_tease-project.twig:
--------------------------------------------------------------------------------
1 | {% extends "teases/tease.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% if post.thumbnail.src %}
6 |
7 | {% set img = TimberImage(post.thumbnail.src) %}
8 |
9 |
15 |
16 | {% endif %}
17 |
18 |
19 |
{{post.post_title}}
20 | {% if post.header_tagline %}
{{post.header_summary}}
{% endif %}
21 | {# {% include 'utility/svg.twig' with { prefix: 'icon', file: 'arrow-right' } %} #}
22 |
23 |
24 | {% include 'utility/edit-link.twig' %}
25 |
26 | {% endblock %}
27 |
--------------------------------------------------------------------------------
/views/partials/_share.twig:
--------------------------------------------------------------------------------
1 |
21 |
22 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/instagram.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/widgets.php:
--------------------------------------------------------------------------------
1 | __( 'Footer Left', 'yld' ),
13 | 'id' => 'footer_left',
14 | 'description' => __( 'The left-most footer widget.', 'yld' ),
15 | 'before_widget' => '',
16 | 'after_widget' => ' ',
17 | 'before_title' => '',
19 | ) );
20 |
21 | register_sidebar( array(
22 | 'name' => __( 'Footer Right', 'yld' ),
23 | 'id' => 'footer_right',
24 | 'description' => __( 'The right footer widget.', 'yld' ),
25 | 'before_widget' => '',
26 | 'after_widget' => ' ',
27 | 'before_title' => '',
29 | ) );
30 |
31 |
--------------------------------------------------------------------------------
/_notes/2_urls.md:
--------------------------------------------------------------------------------
1 |
2 | Begin by listing all of your URLs. Examples:
3 |
4 | /
5 | Purchase
6 |
7 | /about/
8 | /login/
9 | /purchase/
10 |
11 | /home/
12 | - upcoming classes
13 | - featured lesson
14 | - featured sources
15 | - buy office
16 |
17 | /classes/
18 | - list of taxonomy terms and descriptions
19 | - link to tax archive
20 |
21 | /classes/class-name/
22 | - taxonomy description
23 | - archive of lessons
24 |
25 | /classes/class-name/lesson-name
26 |
27 | /sources/
28 | - tax archive organized by term
29 | /sources/source-type
30 | - archive filtered by term - possibly with REST
31 |
32 | /shortcuts
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | User can
41 | Sign up to see content
42 | 125/year
43 | Subscribe to content
44 | Once in, they can:
45 | Purchase office hours
46 | Purchase a class
47 |
48 |
49 | Access to all videos
50 |
51 | 4 office hours/month
52 |
53 | Office hours a la carte
54 | 150/hr
55 |
56 |
--------------------------------------------------------------------------------
/views/utility/flexcontent-logic.twig:
--------------------------------------------------------------------------------
1 | {% for block in section.blocks %}
2 |
3 | {% set block_class = block.acf_fc_layout %}
4 |
5 | {% if block.acf_fc_layout == 'block_text' %}
6 | {% include 'blocks/block-text.twig' %}
7 | {% elseif block.acf_fc_layout == 'block_textimage' %}
8 | {% include 'blocks/block-textimage.twig' %}
9 | {% elseif block.acf_fc_layout == 'block_related_page' %}
10 | {% include 'blocks/block-related.twig' %}
11 | {% elseif block.acf_fc_layout == 'block_blank' %}
12 | {% include 'blocks/block-blank.twig' %}
13 | {% elseif block.acf_fc_layout == 'block_list' %}
14 | {% include 'blocks/block-list.twig' %}
15 | {% elseif block.acf_fc_layout == 'block_cta' %}
16 | {% include 'blocks/block-cta.twig' %}
17 | {% elseif block.acf_fc_layout == 'block_testimonial' %}
18 | {% include 'blocks/block-testimonial.twig' %}
19 | {% endif %}
20 |
21 | {% endfor %}
--------------------------------------------------------------------------------
/assets/scss/utils/_animations.scss:
--------------------------------------------------------------------------------
1 | .animated {
2 | -webkit-animation-duration: 1s;
3 | animation-duration: 1s;
4 | -webkit-animation-fill-mode: both;
5 | animation-fill-mode: both;
6 | }
7 |
8 | @-webkit-keyframes fadeInDown {
9 | 0% {
10 | opacity: 0;
11 | -webkit-transform: translateY(-20px);
12 | }
13 | 100% {
14 | opacity: 1;
15 | -webkit-transform: translateY(0);
16 | }
17 | }
18 |
19 | @keyframes fadeInDown {
20 | 0% {
21 | opacity: 0;
22 | transform: translateY(-20px);
23 | }
24 | 100% {
25 | opacity: 1;
26 | transform: translateY(0);
27 | }
28 | }
29 |
30 | .fadeInDown {
31 | -webkit-animation-name: fadeInDown;
32 | animation-name: fadeInDown;
33 | }
34 |
35 | @mixin header-animate {
36 | transition-property: all;
37 | transition-duration: .5s;
38 | transition-timing-function: ease-in-out;
39 | }
--------------------------------------------------------------------------------
/views/headers/_header-collection.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
3 | {% block before_header_content %}{% endblock %}
4 |
5 | {% block header_content %}
6 |
7 |
8 | {% for image in term.collection_gallery %}
9 |
10 | {% endfor %}
11 |
12 |
13 |
14 | {#
15 |
#}
16 |
{{term.name}}
17 |
{{term.description}}
18 |
{{term.long_description}}
19 | {#
20 |
#}
21 | {#
#}
23 | {#
#}
24 |
25 |
26 | {% endblock %}
27 |
28 | {% block after_header_content %}{% endblock %}
29 |
--------------------------------------------------------------------------------
/views/singles/single-project.twig:
--------------------------------------------------------------------------------
1 | {% extends "singles/single.twig" %}
2 |
3 | {% block before_content %}
4 |
5 | {% include 'partials/_gallery-slider.twig' with { gallery: post.get_field('gallery') } %}
6 |
7 |
8 |
{{post.post_title}}
9 | {% if post.header_tagline %}
10 |
{{post.header_tagline}}
11 | {% endif %}
12 | {% if post.header_tagline %}
13 |
{{post.header_summary}}
14 | {% endif %}
15 |
16 | {% endblock %}
17 |
18 | {% block content %}
19 | {% if post.client %}
20 |
21 |
Client: {{post.client_link ? ''}}{{post.client}}{{post.client_link ? ' '}}
22 |
23 | {% endif %}
24 |
25 | {% for block in post.get_field('blocks') %}
26 | {% include 'blocks/block-logic.twig' %}
27 | {% endfor %}
28 | {% endblock %}
--------------------------------------------------------------------------------
/page.php:
--------------------------------------------------------------------------------
1 | post_name . '.twig', 'pages/page.twig'), $context);
--------------------------------------------------------------------------------
/assets/scss/modules/_social.scss:
--------------------------------------------------------------------------------
1 |
2 | // Social media lists
3 |
4 | .social-list {
5 | @include unstyle-list;
6 | @include grid;
7 | align-items: flex-start;
8 | }
9 |
10 | .social-item {
11 | @include cell;
12 | flex: 0;
13 | padding-right: $size-h3;
14 | }
15 |
16 | .footer {
17 | .icon {
18 | fill: $color-accent-light;
19 | }
20 | }
21 |
22 |
23 | // Share on social media
24 |
25 | .share {
26 | .social-list {
27 | float: left;
28 | }
29 | }
30 |
31 | .share-trigger {
32 | float: left;
33 | padding-right: $gutter;
34 | @include detail-text;
35 | font-family: $serif;
36 | font-style: italic;
37 |
38 | &:before {
39 | content: "+";
40 | display: inline-block;
41 | cursor: pointer;
42 | width: $size-base;
43 | height: $size-base;
44 | text-align: center;
45 | line-height: $size-base;
46 | background-color: $color-link;
47 | color: $color-text-light;
48 | margin-right: $gutter/2;
49 | }
50 |
51 | &.active {
52 | &:before {
53 | content: "–";
54 | }
55 | }
56 | }
--------------------------------------------------------------------------------
/assets/scss/modules/_teases.scss:
--------------------------------------------------------------------------------
1 |
2 | // Teases
3 |
4 | .tease {
5 | &.-piece,
6 | &.-project,
7 | &.-post,
8 | &.-page {
9 | @include cell(half);
10 | padding: $size-base;
11 | @include bp(md) {
12 | @include cell(third, $is_first: false);
13 | padding: $gutter;
14 | }
15 | }
16 | }
17 |
18 | .tease-title {
19 | &.-piece,
20 | &.-page,
21 | &.-project,
22 | &.-post,
23 | &.-collection {
24 | font-size: $size-xsml;
25 | color: $color-text-dark;
26 | @include upperspace;
27 | @include border-fancy-top;
28 |
29 | @include bp(sm) {
30 | font-size: $size-sml;
31 | //margin: 0 $size-base;
32 | }
33 | }
34 | }
35 |
36 | .tease-img {
37 |
38 | @include bp(md) {
39 | transform: translateZ(0);
40 | &:hover {
41 | opacity: 0.5;
42 | transition: 0.3s ease all;
43 | }
44 |
45 | &:active {
46 | opacity: 1;
47 | transition: 0.3s ease all;
48 | }
49 | }
50 | }
51 |
52 | .tease-info {
53 | &.-piece,
54 | &.-project,
55 | &.-post {
56 | text-align: center;
57 | }
58 | }
--------------------------------------------------------------------------------
/views/footers/_footer-piece.twig:
--------------------------------------------------------------------------------
1 | {% extends 'footers/footer.twig' %}
2 |
3 | {% block footer_content %}
4 |
5 |
6 |
7 | {% for piece in pieces %}
8 |
22 | {% endfor %}
23 |
24 |
25 | {% endblock %}
--------------------------------------------------------------------------------
/views/sidebars/sidebar-footer_right.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 | /wp-admin/plugins.php';
18 | return;
19 | }
20 | $context = Timber::get_context();
21 | $context['posts'] = Timber::get_posts();
22 | $context['foo'] = 'bar';
23 | $templates = array('index.twig');
24 | $templates = array('blog.twig', 'index.twig');
25 | if (is_home()){
26 | array_unshift($templates, 'home.twig');
27 | }
28 | Timber::render($templates, $context);
29 |
30 |
31 |
--------------------------------------------------------------------------------
/assets/scss/base/_buttons.scss:
--------------------------------------------------------------------------------
1 | // Button
2 | @mixin button( $button-color, $text-color: $white ) {
3 | background: $button-color;
4 | font-weight: 700;
5 | border-radius: 2px;
6 | color: $text-color;
7 |
8 | &:hover,
9 | &:focus {
10 | background: darken( $button-color, 10% );
11 | color: $text-color;
12 | }
13 |
14 | &:active {
15 | background: darken( $button-color, 40% );
16 | }
17 | }
18 |
19 | .btn {
20 | display: inline-block;
21 | padding: $size-xsml $size-base;
22 | margin-top: $size-sml;
23 | margin-bottom: $size-sml;
24 | font-size: $size-sml;
25 | font-family: $font-btn;
26 | @include upperspace;
27 |
28 |
29 | &.-readmore {
30 | @include button($color-accent-med);
31 | }
32 |
33 | &.-danger {
34 | @include button($color-alert-danger);
35 | }
36 |
37 | &.-success {
38 | @include button($color-alert-success);
39 | }
40 |
41 | &.-warning {
42 | @include button($color-alert-warning);
43 | }
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/views/blocks/_block-list.twig:
--------------------------------------------------------------------------------
1 | {% extends "blocks/block.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% set type = block.list_type %}
6 | {% set display = block.list_display %}
7 |
8 | {% if block.list_title %}
9 |
{{block.list_title}}
10 | {% endif %}
11 |
12 | {% if block.list_description %}
13 |
{{block.list_description}}
14 | {% endif %}
15 |
16 |
37 |
38 | {% endblock %}
--------------------------------------------------------------------------------
/assets/Gruntfile.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | module.exports = function(grunt) {
3 |
4 |
5 | // Load config
6 | var config = grunt.file.readYAML("Gruntconfig.yml");
7 |
8 |
9 | // Load all tasks
10 | require('load-grunt-tasks')(grunt);
11 |
12 |
13 | // Show elapsed time
14 | require('time-grunt')(grunt);
15 |
16 |
17 | // Configure tasks
18 | require('./tasks/scss.js')(grunt, config);
19 | require('./tasks/javascript.js')(grunt, config);
20 | require('./tasks/utils.js')(grunt, config);
21 | require('./tasks/svgs.js')(grunt, config);
22 |
23 |
24 | // Register tasks
25 | grunt.registerTask('default', [
26 | 'sass'
27 | ]);
28 |
29 | grunt.registerTask('js', [
30 | // 'jshint',
31 | 'concat',
32 | 'uglify'
33 | ]);
34 |
35 | grunt.registerTask('svgs', [
36 | 'svgmin',
37 | 'svgstore'
38 | ]);
39 |
40 | grunt.registerTask('build', [
41 | 'concat',
42 | 'uglify',
43 | 'sass',
44 | 'autoprefixer',
45 | 'cssmin'
46 | ]);
47 |
48 | };
49 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/scss/modules/_single.scss:
--------------------------------------------------------------------------------
1 |
2 | // Singles
3 |
4 | .single-title {
5 | &.-piece {
6 | @include upperspace;
7 | font-size: $size-h4;
8 | margin-top: 0;
9 | }
10 | }
11 |
12 | .single-title-compliment {
13 | &.-piece {
14 | font-family: $font-heading;
15 | font-style: italic;
16 | margin: 0;
17 | font-size: $size-sml;
18 | }
19 | }
20 |
21 | .single-meta {
22 | text-align: center;
23 |
24 | p {
25 | @extend h4;
26 | font-style: italic;
27 | color: $color-accent-med;
28 | }
29 | }
30 |
31 | .single-sidebar-text {
32 | @include detail-text;
33 | }
34 |
35 | .single-sidebar-list {
36 | @include detail-text;
37 | @include unstyle-list;
38 |
39 | p {
40 | margin: 0;
41 | }
42 | }
43 |
44 | .single-sidebar-sublist {
45 | @include unstyle-list;
46 | }
47 |
48 | .single-sidebar-title {
49 | @include detail-title(top);
50 | }
51 |
52 | .single-sidebar-swatch {
53 |
54 | img {
55 | width: 1.5rem;
56 | margin-right: .5rem;
57 | float: left;
58 | }
59 |
60 | p {
61 | padding-left: 2rem;
62 | }
63 | }
64 |
65 | .single-footer-title {
66 | @include detail-title(bottom);
67 | }
--------------------------------------------------------------------------------
/assets/scss/modules/_alerts.scss:
--------------------------------------------------------------------------------
1 |
2 | /// @group alerts
3 | /// @content [Alerts used for containers around text and buttons.]
4 |
5 | // Used for buttons and alerts
6 |
7 | $alert-colors: (
8 | danger: ($color-alert-danger, $color-text-light),
9 | warning: ($color-alert-warning, $color-text-light),
10 | success: ($color-alert-success, $color-text-light),
11 | cta: ($color-cta-bkgd, $color-cta-text)
12 | );
13 |
14 |
15 | .alert {
16 | padding: $size-base;
17 | @include bleed;
18 | display: flex;
19 |
20 | @each $name, $colors in $alert-colors {
21 | $bgcolor: nth($colors, 1);
22 | $fontcolor: nth($colors, 2);
23 |
24 | &-#{$name} {
25 | // TODO: Need to deal with hover styles.
26 | background-color: lighten($bgcolor, 30%);
27 | color: $fontcolor;
28 | }
29 | }
30 | }
31 |
32 | .alert-img {
33 | flex: 1 0;
34 | }
35 |
36 | .alert-cta .icon {
37 | fill: $color-text-light;
38 | }
39 |
40 | .alert-content {
41 | flex: 2 0;
42 | }
43 |
44 | .alert-title {
45 | margin-top: $size-base;
46 | }
47 |
--------------------------------------------------------------------------------
/assets/scss/modules/_slider.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 | // Slider
4 |
5 | .slider {
6 |
7 | &.-full {
8 | background-color: $color-accent-light;
9 | }
10 | }
11 |
12 | .slider-cell {
13 | width: 85%;
14 | // height: 200px;
15 | margin-right: 10px;
16 | background: #333;
17 | }
18 |
19 | .slider-img {
20 | height: 300px;
21 | margin-right: $size-xsml/2;
22 |
23 | @include bp(sm) {
24 | height: 500px;
25 | }
26 |
27 | @include bp(lg) {
28 | height: 80vh;
29 | }
30 |
31 | // display: block;
32 | // transition: opacity 0.4s;
33 | // opacity: 0;
34 | }
35 |
36 | // .slider-img.flickity-lazyloaded,
37 | // .slider-img.flickity-lazyerror {
38 | // opacity: 1;
39 | // }
40 |
41 | // Related pieces slider thumb cells
42 | .thumb {
43 | padding-top: $size-h3;
44 | width: 75%;
45 |
46 | @include bp(sm) {
47 | width: 40%;
48 | }
49 |
50 | @include bp(lg) {
51 | width: 20%;
52 | }
53 |
54 | img {
55 | width: 100%;
56 | }
57 | }
58 |
59 | // .flickity-prev-next-button.previous {
60 | // @include bp(lg) {
61 | // left: -44px;
62 | // }
63 | // }
64 |
65 | // .flickity-prev-next-button.next {
66 | // @include bp(lg) {
67 | // right: -44px;
68 | // }
69 | // }
--------------------------------------------------------------------------------
/views/archives/taxonomy-collection.twig:
--------------------------------------------------------------------------------
1 | {% extends 'archives/taxonomy.twig' %}
2 |
3 | {% block before_content %}
4 | {% include 'headers/_header-collection.twig' with { h_class: '-collection' } %}
5 | {% endblock %}
6 |
7 | {% block content %}
8 |
9 |
10 | {% for post in posts %}
11 | {% include 'teases/_tease-' ~ post.post_type ~ '.twig' with { class: 'cell--half' } %}
12 | {% endfor %}
13 |
14 |
15 | {% endblock %}
16 |
17 | {% block after_content %}
18 |
19 |
20 |
21 | {% for c in collections %}
22 | {# Exclude the current term #}
23 | {% if c.title != term.title %}
24 |
30 | {% endif %}
31 | {% endfor %}
32 |
33 |
34 | {% endblock %}
35 |
--------------------------------------------------------------------------------
/assets/tasks/svgs.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = function(grunt, config) {
3 |
4 | grunt.config.merge({
5 |
6 | svgmin: {
7 | options: {
8 | plugins: [
9 | {
10 | removeViewBox: false
11 | }, {
12 | removeUselessStrokeAndFill: false
13 | }
14 | ]
15 | },
16 |
17 | dist: {
18 | expand: true,
19 | cwd: 'img/svg-raw',
20 | src: ['*.svg'],
21 | dest: 'img/svg-min',
22 | ext: '.min.svg'
23 | }
24 | },
25 |
26 | svgstore: {
27 | options: {
28 | prefix : 'shape-',
29 | cleanup: ['style'],
30 | svg: {
31 | viewBox : '0 0 100 100',
32 | xmlns: 'http://www.w3.org/2000/svg'
33 | }
34 | },
35 | default : {
36 | files: {
37 | '../views/utility/svg-defs.svg': ['img/svg-min/*.svg'],
38 | }
39 | }
40 | },
41 | });
42 |
43 | }
--------------------------------------------------------------------------------
/assets/tasks/javascript.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt, config) {
2 |
3 | var jsFileList = [
4 | config.jsSrcDir + 'plugins.js',
5 | config.jsSrcDir + '_main.js',
6 | ];
7 |
8 | console.log(jsFileList);
9 |
10 | grunt.config.merge({
11 |
12 | jshint: {
13 | options: {
14 | jshintrc: '.jshintrc'
15 | },
16 |
17 | all: [
18 | 'Gruntfile.js',
19 | config.jsSrcDir + '*.js'
20 | ],
21 | },
22 |
23 | concat: {
24 | options: {
25 | },
26 | dist: {
27 | src: jsFileList,
28 | dest: config.jsConcatDir + 'scripts.js',
29 | },
30 | },
31 |
32 | uglify: {
33 | options: {
34 | },
35 | dist: {
36 | files: {
37 | // For some reason this doesn't accept the config variable for the key. Bleh.
38 | 'js/build/scripts.min.js': ['<%= concat.dist.dest %>']
39 | }
40 | }
41 | },
42 |
43 | watch: {
44 | js: {
45 | files: jsFileList,
46 | tasks: [
47 | 'concat'
48 | ]
49 | }
50 | }
51 |
52 | });
53 |
54 | }
55 |
56 |
--------------------------------------------------------------------------------
/lib/acf-utils.php:
--------------------------------------------------------------------------------
1 |
33 |
34 |
--------------------------------------------------------------------------------
/views/html-header.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{wp_title}}
9 |
10 |
11 |
12 |
13 |
14 |
25 |
26 | {{function('wp_head')}}
--------------------------------------------------------------------------------
/assets/scss/utils/_helpers.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 | // ----
4 | // Typography
5 | // ----
6 |
7 | .special {
8 | color: $color-accent-med;
9 | }
10 |
11 | .meta {
12 | @include meta();
13 | line-height: $line-height-sm;
14 | }
15 |
16 | .meta-light {
17 | line-height: $line-height-sm;
18 | @include meta($color-text-light);
19 | }
20 |
21 | .meta-dark {
22 | line-height: $line-height-sm;
23 | @include meta($color-body-text);
24 | }
25 |
26 | .text-center {
27 | text-align: center;
28 | }
29 |
30 | .text-left {
31 | text-align: left;
32 | }
33 |
34 | .text-right {
35 | text-align: right;
36 | }
37 |
38 |
39 |
40 | // ----
41 | // Elements
42 | // ----
43 |
44 | .edit-link {
45 | font-size: $size-sml;
46 | @include upperspace();
47 | font-weight: $font-weight-strong;
48 | color: $color-alert-danger;
49 | }
50 |
51 | .helper-text {
52 | @include meta($color-body-text);
53 | &.-piece {
54 | display: none;
55 | text-align: center;
56 | @include bp(md) { display: block; }
57 | }
58 |
59 | }
60 |
61 |
62 |
63 | // ----
64 | // Utility
65 | // ----
66 |
67 | .visually-hidden {
68 | position: absolute;
69 | top: -9999999px;
70 | left: -999999px;
71 | }
72 |
73 | .teaser.lazyload {
74 | opacity: 0;
75 | }
76 |
77 | .teaser.lazyloaded {
78 | opacity: 1;
79 | transition: all 700ms;
80 | }
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/assets/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "timber-starter-kit",
3 | "version": "0.1.0",
4 | "author": "Lara Schenck
",
5 | "homepage": "http://notlaura.com",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/laras126/timber-starter-kit.git"
9 | },
10 | "bugs": {
11 | "url": "https://github.com/laras126/timber-starter-kit/issues"
12 | },
13 | "licenses": [
14 | {
15 | "type": "MIT",
16 | "url": "http://opensource.org/licenses/MIT"
17 | }
18 | ],
19 | "scripts": {
20 | },
21 | "engines": {
22 | "node": ">= 0.10.0"
23 | },
24 | "devDependencies": {
25 | "bower": ">=1.3.9",
26 | "grunt": "~0.4.5",
27 | "grunt-autoprefixer": "~1.0.0",
28 | "grunt-contrib-concat": "~0.5.0",
29 | "grunt-contrib-jshint": "~0.10.0",
30 | "grunt-contrib-watch": "~0.6.1",
31 | "grunt-modernizr": "~0.6.0",
32 | "grunt-wp-assets": "~0.2.6",
33 | "load-grunt-tasks": "~0.6.0",
34 | "time-grunt": "~0.4.0",
35 | "grunt-svgstore": "~0.4.1",
36 | "grunt-contrib-cssmin": "~0.10.0",
37 | "grunt-contrib-uglify": "~0.6.0",
38 | "grunt-svgmin": "~2.0.1",
39 | "grunt-sass": "~1.0.0",
40 | "grunt-shell": "~1.1.2",
41 | "grunt-bower-concat": "~0.5.0",
42 | "grunt-criticalcss": "~0.5.0",
43 | "grunt-perfbudget": "~0.1.6"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/views/base.twig:
--------------------------------------------------------------------------------
1 | {% block html_head_container %}
2 | {% include 'html-header.twig' %}
3 | {% block head %}
4 | {% endblock %}
5 |
6 | {% endblock %}
7 |
8 |
9 |
10 | {% include 'views/utility/svg-defs.svg' %}
11 |
12 | {% block header %}
13 | {% include 'headers/_header-site.twig' with { class: '-site', role: 'banner' } %}
14 | {% endblock %}
15 |
16 |
17 |
18 |
19 |
20 | {% block before_content %}{% endblock %}
21 |
22 | {% block content %}
23 | Sorry, no content
24 | {% endblock %}
25 |
26 | {% block after_content %}{% endblock %}
27 |
28 |
29 |
30 | {% if sidebar %}
31 |
34 | {% endif %}
35 |
36 |
37 |
38 | {% block footer %}
39 | {% include 'footers/_footer-site.twig' with { class : '-site' } %}
40 | {{ function('wp_footer') }}
41 | {% endblock %}
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/assets/tasks/scss.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt, config) {
2 |
3 | var sassFileList = [
4 | config.scssDir + '*.scss',
5 | config.scssDir + '**/*.scss'
6 | ];
7 |
8 | grunt.config.merge({
9 |
10 | sass: {
11 |
12 | options: {
13 | },
14 |
15 | dist: {
16 | style: 'expanded',
17 | src: config.scssDir + 'main.scss',
18 | dest: config.cssDir + 'main.css',
19 | // Source maps are available, but require Sass 3.3.0 to be installed
20 | // https://github.com/gruntjs/grunt-contrib-sass#sourcemap
21 | sourcemap: true
22 | }
23 | },
24 |
25 | autoprefixer: {
26 |
27 | options: {
28 | browsers: ['last 2 versions', 'ie 8', 'ie 9', 'android 2.3', 'android 4', 'opera 12']
29 | },
30 |
31 | dist: {
32 | src: config.cssDir + 'main.css'
33 | }
34 | },
35 |
36 | cssmin: {
37 | options: {
38 | keepSpecialComments: 0
39 | },
40 |
41 | css: {
42 | src: config.cssDir + 'main.css',
43 | dest: config.cssDir + 'main.min.css'
44 | },
45 |
46 | critical: {
47 | src: config.cssDir + 'critical.css',
48 | dest: config.cssDir + 'critical.min.css'
49 | }
50 | },
51 |
52 | watch: {
53 | sass: {
54 | files: sassFileList,
55 | tasks: [
56 | 'sass'
57 | ]
58 | }
59 | }
60 | });
61 | }
--------------------------------------------------------------------------------
/views/headers/header.twig:
--------------------------------------------------------------------------------
1 |
2 | {# Base header template #}
3 |
4 | {% set h_class = ' class="header ' ~ class ~ '"' %}
5 | {% set h_role = ' role="' ~ role ~ '"' %}
6 |
7 |
--------------------------------------------------------------------------------
/single.php:
--------------------------------------------------------------------------------
1 | title();
17 | $context['comment_form'] = TimberHelper::get_comment_form();
18 |
19 |
20 | // Adding some logic here - may be better in single-piece.php, but okay for now unless it gets more extensive.
21 | if ( get_post_type() == 'piece') {
22 | $terms = get_the_terms($post->ID, 'collection');
23 | $piece_args = array(
24 | 'post_type' => 'piece',
25 | 'post__not_in' => array( $post->ID ),
26 | 'posts_per_page' => -1,
27 | 'tax_query' => array(
28 | array(
29 | 'taxonomy' => 'collection',
30 | 'terms' => $terms[0],
31 | 'field' => 'id',
32 | 'operator' => 'IN'
33 | )
34 | )
35 | );
36 | $context['pieces'] = Timber::get_posts($piece_args);
37 | $context['concierge_text'] = get_field('concierge_text', 'options');
38 | }
39 |
40 | if (post_password_required($post->ID)){
41 | Timber::render('single-password.twig', $context);
42 | } else {
43 | Timber::render(array('singles/single-' . $post->ID . '.twig', 'singles/single-' . $post->post_type . '.twig', 'singles/single.twig'), $context);
44 | }
45 |
46 |
47 |
--------------------------------------------------------------------------------
/views/pages/page-collections.twig:
--------------------------------------------------------------------------------
1 | {% extends "base.twig" %}
2 |
3 | {% block content %}
4 |
5 | {% include 'headers/_header-page.twig' with { h_class: 'header--page' } %}
6 |
7 |
11 |
12 | {% for c in terms %}
13 | {% set feat = TimberImage(c.featured_image) %}
14 |
15 | {% include 'partials/_large-feat-img.twig' with { img : feat, class : 'archive-details-img' } %}
16 |
17 |
18 |
19 |
{{c.description_title}}
20 |
21 | {{c.long_description}}
22 |
23 |
See {{c.title}}
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | {% include 'partials/_large-feat-img.twig' with { img : feat } %}
33 |
34 |
35 |
36 |
Inspiration on Pinterest
37 | {% include 'partials/_gallery.twig' with { gallery: c.inspiration_gallery, gall_class : 'inspiration', class : 'inspiration' } %}
38 |
39 |
40 |
41 |
42 | {% endfor %}
43 |
44 | {% endblock %}
--------------------------------------------------------------------------------
/_notes/1_content-list.md:
--------------------------------------------------------------------------------
1 |
2 | #Design in text.
3 |
4 | Make a comprehensive list of your content here. Process via Stephen Hay's [Responsive Design Workflow](http://responsivedesignworkflow.com/). I've included an example, but adjust to fit your needs.
5 |
6 | **NOTE:** Throw these guidelines into a Google Doc and have you or your client start writing content immediately. Good stuff [here](http://alistapart.com/blog/post/content-first-design).
7 |
8 | ## Header
9 |
10 | - Logo
11 | - Tagline
12 | - Main navigation
13 | - Photo Transfer
14 | - Video Transfer
15 | - Film Transfer
16 | - Audio Transfer
17 | - Meta Navigation
18 | - About
19 | - Case Studies
20 | - Process
21 | - Phone number
22 | - Address
23 | - Hours
24 | - Order Now button
25 |
26 | ## Page content
27 |
28 | #### Services
29 |
30 | - Single Service
31 | - Formats transferred (list)
32 | - Title
33 | - Image
34 | - Link to further description
35 | - Order Now button
36 | - What you get
37 | - Details on files
38 | - Image example of folder/files
39 | - Before/after
40 | - Link to file type descriptions (archive of types)
41 | - Process
42 | - Few sentence description
43 | - Image of it happening
44 | - Link to process description
45 | - Customization
46 | - Salesy tagline
47 | - List of custmization options/examples
48 | - Personability
49 | - Quick Quote
50 | - Series of questions to recommend package, plain language
51 | - List of packages
52 |
53 | #### About
54 |
55 | - Summary paragraph
56 | - Submenu
57 | - Case Studies
58 | - B2B
59 | - B2C
60 | - Mission/Values
61 | - History
62 | - Team
63 |
--------------------------------------------------------------------------------
/assets/scss/modules/_footers.scss:
--------------------------------------------------------------------------------
1 |
2 | // Footer
3 |
4 | .footer {
5 | &.-site {
6 | background-color: $color-rotate-bkgd;
7 | }
8 | }
9 |
10 | .footer-wrap {
11 | @include bp(md) {
12 | @include grid;
13 | }
14 | }
15 |
16 | .footer-section {
17 | @include bp(md) {
18 | @include cell(half);
19 | }
20 |
21 | margin-top: $size-base;
22 |
23 | &.-left {
24 | }
25 |
26 | &.-right {
27 | border-left: 1px solid lighten($color-text-dark, 40%);
28 | padding-left: $size-base;
29 | }
30 | }
31 |
32 | .widget-list {
33 | @include unstyle-list;
34 | @include grid;
35 |
36 | ul {
37 | @include unstyle-list;
38 | }
39 | }
40 |
41 | .widget {
42 | @include meta(lighten($color-text-dark, 60%));
43 |
44 | &.-right {
45 | @include cell(full);
46 | @include bp(lg) {
47 | @include cell(half, $is_first: false);
48 | }
49 | }
50 |
51 | &.-left {
52 | @include cell(half);
53 | @include bp(lg) {
54 | flex: 1;
55 | }
56 | }
57 |
58 | padding-top: $size-sml;
59 | padding-bottom: $size-base;
60 |
61 | }
62 |
63 | .widget-title {
64 | @include detail-title(none);
65 | color: $color-rotate-text;
66 | margin-top: 0;
67 | margin-bottom: $size-xsml;
68 | }
69 |
70 | .widget a {
71 | color: lighten($color-text-dark, 60%);
72 | &:hover {
73 | color: $color-accent-med;
74 | }
75 | }
76 |
77 | .colophon,
78 | .credits {
79 | display: inline-block;
80 | @include meta($color-rotate-text);
81 |
82 | a {
83 | color: $color-accent-light;
84 | text-decoration: underline;
85 |
86 | &:hover {
87 | color: darken($color-accent-light, 20%);
88 | }
89 | }
90 | }
91 |
92 |
--------------------------------------------------------------------------------
/assets/img/svg-min/text-logo.min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/headers/_header-site.twig:
--------------------------------------------------------------------------------
1 | {% extends 'headers/header.twig' %}
2 |
3 | {% block header_content %}
4 |
5 |
6 |
7 |
8 | {% include 'partials/search-form.twig' %}
9 |
10 |
11 |
12 |
13 | {% include 'utility/svg.twig' with { file: 'text-logo', prefix: 'logo' } %}
14 |
15 |
16 | Menu
17 |
38 |
39 |
40 | {% endblock %}
41 |
--------------------------------------------------------------------------------
/archive.php:
--------------------------------------------------------------------------------
1 | name;
36 | $data['term'] = $term;
37 | array_unshift($templates, 'archives/taxonomy-'.$term->taxonomy.'.twig', 'archives/taxonomy.twig');
38 | } else if (is_post_type_archive()){
39 | $data['title'] = post_type_archive_title('', false);
40 | $data['type'] = get_post_type();
41 | array_unshift($templates, 'archives/archive-'.get_post_type().'.twig');
42 | }
43 |
44 | $data['collections'] = Timber::get_terms('collection');
45 | $data['posts'] = Timber::get_posts();
46 |
47 | Timber::render($templates, $data);
48 |
--------------------------------------------------------------------------------
/lib/taxonomies.php:
--------------------------------------------------------------------------------
1 | _x( 'Collections', 'Taxonomy General Name', 'yld' ),
13 | 'singular_name' => _x( 'Collection', 'Taxonomy Singular Name', 'yld' ),
14 | 'menu_name' => __( 'Collections', 'yld' ),
15 | 'all_items' => __( 'All Collections', 'yld' ),
16 | 'parent_item' => __( 'Parent Collection', 'yld' ),
17 | 'parent_item_colon' => __( 'Parent Collection:', 'yld' ),
18 | 'new_item_name' => __( 'New Collection Name', 'yld' ),
19 | 'add_new_item' => __( 'Add New Collection', 'yld' ),
20 | 'edit_item' => __( 'Edit Collection', 'yld' ),
21 | 'update_item' => __( 'Update Collection', 'yld' ),
22 | 'view_item' => __( 'View Collection', 'yld' ),
23 | 'separate_items_with_commas' => __( 'Separate items with commas', 'yld' ),
24 | 'add_or_remove_items' => __( 'Add or remove items', 'yld' ),
25 | 'choose_from_most_used' => __( 'Choose from the most used', 'yld' ),
26 | 'popular_items' => __( 'Popular Collections', 'yld' ),
27 | 'search_items' => __( 'Search Collections', 'yld' ),
28 | 'not_found' => __( 'Not Found', 'yld' ),
29 | );
30 | $args = array(
31 | 'labels' => $labels,
32 | 'hierarchical' => true,
33 | 'public' => true,
34 | 'show_ui' => true,
35 | 'show_admin_column' => true,
36 | 'show_in_nav_menus' => true,
37 | 'show_tagcloud' => true,
38 | );
39 | register_taxonomy( 'collection', array( 'piece' ), $args );
40 |
41 |
--------------------------------------------------------------------------------
/assets/scss/base/_typography.scss:
--------------------------------------------------------------------------------
1 |
2 | html {
3 | font-size: $size-contain;
4 | line-height: $line-height-base;
5 | font-weight: $font-weight-base;
6 |
7 | @include bp(sm) {
8 | font-size: $size-contain-sm;
9 | }
10 |
11 | @include bp(md) {
12 | font-size: $size-contain-md;
13 | }
14 |
15 | @include bp(lg) {
16 | font-size: $size-contain-lg;
17 | }
18 | }
19 |
20 | body {
21 | font-family: $font-body;
22 | font-size: $size-base;
23 | color: $color-text-dark;
24 | }
25 |
26 | a {
27 | color: $color-link;
28 | text-decoration: none;
29 |
30 | &:hover, &:focus {
31 | color: $color-link-hover;
32 | }
33 |
34 | &:active {
35 | color: $color-link-active;
36 | }
37 |
38 | // mobile tap color
39 | &:link {
40 | -webkit-tap-highlight-color : rgba( 0, 0, 0, 0.3 );
41 | }
42 | }
43 |
44 | h1, h2, h3, h4, h5, h6 {
45 | font-family: $font-heading;
46 | font-weight: $font-weight-heading;
47 | margin-bottom: 0;
48 | line-height: $line-height-sm;
49 | }
50 |
51 | h1 {
52 | font-size: $size-h1;
53 | margin-top: $size-h3;
54 | }
55 |
56 | h2 {
57 | font-size: $size-h2;
58 | // margin-top: $size-h3;
59 | }
60 |
61 | h3 {
62 | font-size: $size-h3;
63 | // margin-top: $size-h3;
64 | }
65 |
66 | h4 {
67 | font-size: $size-h4;
68 | // margin-top: $size-h4;
69 | }
70 |
71 | h5 {
72 | font-size: $size-h5;
73 | font-family: $font-body;
74 | }
75 |
76 | h6 {
77 | font-family: $font-body;
78 | font-size: $size-h6;
79 | @include upperspace();
80 | // margin-top: $size-base;
81 | }
82 |
83 | small {
84 | font-size: $size-sml;
85 | }
86 |
87 | strong {
88 | // TODO: Add real font here instead of faux bold
89 | font-weight: $font-weight-strong;
90 | }
91 |
92 | blockquote {
93 | font-size: $size-h4;
94 | font-style: italic;
95 |
96 | &:before {
97 | // background-image: url(../img/svgs/quotes-left.svg);
98 | // background-repeat: no-repeat;
99 |
100 | // content: " ";
101 |
102 | // width: $size-h3;
103 | // height: $size-h3;
104 |
105 | // position: absolute;
106 | // left: -$size-h4;
107 |
108 | // @include bp(med) {
109 | // left: -$size-h3;
110 | // }
111 | }
112 | }
113 |
114 | p {
115 | margin-top: $size-base;
116 | margin-bottom: $size-base;
117 | }
118 |
119 |
120 | /// @group typography-helpers
121 | /// @content [Semantic classes for typography. These may be extended in their associated partial.]
122 |
123 | .lead {
124 | font-size: $size-h4;
125 | }
126 |
127 | .summary {
128 |
129 | }
130 |
--------------------------------------------------------------------------------
/assets/scss/modules/_archives.scss:
--------------------------------------------------------------------------------
1 |
2 | // Teases
3 |
4 | .archive {
5 | &.-piece,
6 | &.-project,
7 | &.-post,
8 | &.-search {
9 | @include grid;
10 | }
11 | }
12 |
13 | .archive-title {
14 | margin-bottom: $size-sml;
15 | }
16 |
17 | .archive-desc {
18 | font-size: $size-h3;
19 | font-family: $font-heading;
20 | font-style: italic;
21 | color: $color-accent-med;
22 | @include border-fancy-top;
23 | }
24 |
25 | .archive-footer-title {
26 | @include detail-title();
27 | font-size: $size-base;
28 | margin: $size-base*4 0 $size-base;
29 | }
30 |
31 |
32 | // ---
33 | // All Collections archive
34 | // ---
35 |
36 | // Archive Details/Quote Module
37 |
38 | .archive-details {
39 | background-color: $black;
40 | position: relative;
41 | overflow: hidden;
42 | text-align: center;
43 | color: white;
44 | display: flex;
45 | align-items: center;
46 | justify-content: center;
47 | padding: $size-h3;
48 | }
49 |
50 |
51 | .archive-details-img {
52 | position: absolute;
53 | top: 50%;
54 | left: 50%;
55 | transform: translateX(-50%) translateY(-50%);
56 | opacity: 0.25;
57 | //what the heck, let's add a grayscale filter for webkit
58 | -webkit-filter: grayscale(1);
59 | filter: grayscale(1);
60 | }
61 |
62 | .archive-details-block {
63 | position: relative;
64 | @include grid($guttered: false);
65 | border: 1px solid $color-accent-med;
66 | padding: 2.5%;
67 |
68 | @include bp(lg) {
69 | width: 100%;
70 | height: 100%;
71 | }
72 |
73 | &:before {
74 | content: " ";
75 | position: absolute;
76 | top: 5px;
77 | left: 5px;
78 | right: 5px;
79 | bottom: 5px;
80 | border: 1px solid $gold;
81 | }
82 | }
83 |
84 | .archive-details-title {
85 | font-size: $size-sml;
86 | @include upperspace;
87 | }
88 |
89 | .archive-details-quote {
90 | font-style: normal;
91 | font-family: $font-heading;
92 | font-size: $size-h3;
93 | margin: $size-base 0;
94 | @include upperspace;
95 |
96 | &:before {
97 | content: "“";
98 | }
99 |
100 | &:after {
101 | content: "”";
102 | }
103 | }
104 |
105 |
106 | // Archive Inspiration (Collections Page)
107 |
108 | .archive-featured {
109 | // @include cell(half, $guttered: false);
110 |
111 | }
112 |
113 | .archive-inspiration,
114 | .archive-featured {
115 |
116 | img {
117 | width: 100%;
118 | }
119 |
120 | @include cell($size: half, $guttered: false);
121 | }
122 |
123 | .archive-images-wrap {
124 | @include grid($guttered: false);
125 | margin: 0;
126 | }
127 |
128 |
--------------------------------------------------------------------------------
/acf-json/group_561469bad23e2.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "group_561469bad23e2",
3 | "title": "Project Details",
4 | "fields": [
5 | {
6 | "key": "field_561469c3c4add",
7 | "label": "Client",
8 | "name": "client",
9 | "type": "text",
10 | "instructions": "",
11 | "required": 0,
12 | "conditional_logic": 0,
13 | "wrapper": {
14 | "width": 50,
15 | "class": "",
16 | "id": ""
17 | },
18 | "default_value": "",
19 | "placeholder": "",
20 | "prepend": "",
21 | "append": "",
22 | "maxlength": "",
23 | "readonly": 0,
24 | "disabled": 0
25 | },
26 | {
27 | "key": "field_56153b1f22a1b",
28 | "label": "Client Link",
29 | "name": "client_link",
30 | "type": "url",
31 | "instructions": "",
32 | "required": 0,
33 | "conditional_logic": 0,
34 | "wrapper": {
35 | "width": 50,
36 | "class": "",
37 | "id": ""
38 | },
39 | "default_value": "",
40 | "placeholder": ""
41 | },
42 | {
43 | "key": "field_56153adef59af",
44 | "label": "Gallery",
45 | "name": "gallery",
46 | "type": "gallery",
47 | "instructions": "",
48 | "required": 0,
49 | "conditional_logic": 0,
50 | "wrapper": {
51 | "width": "",
52 | "class": "",
53 | "id": ""
54 | },
55 | "min": "",
56 | "max": "",
57 | "preview_size": "thumbnail",
58 | "library": "all",
59 | "min_width": "",
60 | "min_height": "",
61 | "min_size": "",
62 | "max_width": "",
63 | "max_height": "",
64 | "max_size": "",
65 | "mime_types": ""
66 | }
67 | ],
68 | "location": [
69 | [
70 | {
71 | "param": "post_type",
72 | "operator": "==",
73 | "value": "project"
74 | }
75 | ]
76 | ],
77 | "menu_order": 0,
78 | "position": "normal",
79 | "style": "default",
80 | "label_placement": "top",
81 | "instruction_placement": "label",
82 | "hide_on_screen": "",
83 | "active": 1,
84 | "description": "",
85 | "modified": 1444231992
86 | }
--------------------------------------------------------------------------------
/assets/scss/modules/_navs.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 | // Navigation
4 |
5 | .nav {
6 | &.-site {
7 | //@include contain(lg);
8 | }
9 | }
10 |
11 | .nav-list {
12 | @include unstyle-list;
13 | text-align: center;
14 |
15 | // Logic for opening/closing nav
16 | max-height: 0;
17 | overflow: hidden;
18 |
19 | @include bp(md) {
20 | padding-top: 0;
21 | max-height: none;
22 | }
23 |
24 | transition: all 0.5s ease;
25 |
26 | &.open {
27 | padding-top: $size-base;
28 | max-height: $screen-sm;
29 | }
30 |
31 | &.-site {
32 | margin-top: 0;
33 | margin-bottom: 0;
34 | }
35 | }
36 |
37 | #navOpenLink {
38 | text-align: center;
39 | display: block;
40 | padding-top: $size-xsml;
41 | padding-bottom: $size-xsml;
42 |
43 | @include bp(md) {
44 | display: none;
45 | }
46 | }
47 |
48 | .nav-item {
49 | @include header-animate;
50 |
51 | @include bp(md) {
52 | display: inline-block;
53 | text-align: center;
54 | }
55 |
56 | .shrunk & {
57 | padding-top: 0;
58 | }
59 | }
60 |
61 | .nav-item,
62 | .subnav-item {
63 | font-family: $font-nav;
64 | padding: $size-sml $size-base;
65 | }
66 |
67 |
68 | .nav-item-link,
69 | .subnav-item-link {
70 | @include upperspace;
71 | font-size: $size-sml;
72 | color: $color-rotate-text;
73 |
74 | &:hover,
75 | &:focus {
76 | color: $color-accent-light;
77 | }
78 | }
79 |
80 | .has-subnav
81 | .icon-arrow-down {
82 | display: inline-block;
83 | position: relative;
84 | top: $size-xsml/2; // Meh.
85 | fill: $color-accent-med;
86 | }
87 |
88 | .subnav-wrapper {
89 | @include bp(md) {
90 | text-align: left;
91 | position: absolute;
92 | width: 100%;
93 | left: 0;
94 | top: 100%;
95 | background-color: lighten($color-rotate-bkgd, 8%);
96 | }
97 | }
98 |
99 | .subnav-list {
100 | @include unstyle-list;
101 | overflow: hidden;
102 |
103 | @include bp(md) {
104 | margin-top: $size-sml;
105 | }
106 |
107 | &.-site {
108 | max-height: 0;
109 | opacity: 0;
110 | @include grid;
111 | max-width: $screen-xl;
112 | margin: 0 auto;
113 | @include header-animate;
114 | }
115 |
116 | // Show subnav when hovered over
117 | .has-subnav:hover & {
118 | max-height: $screen-sm;
119 | opacity: 1;
120 | overflow: visible;
121 | }
122 | }
123 |
124 | .subnav-item {
125 | @include cell(full);
126 | padding-top: $size-base;
127 |
128 | img {
129 | @include cell(third);
130 | }
131 |
132 | @include bp(md) {
133 | @include cell(half, $is_first: false);
134 | }
135 |
136 | @include bp(lg) {
137 | @include cell(third, $is_first: false);
138 | img {
139 | @include cell(third);
140 | }
141 | }
142 | }
143 |
144 |
145 |
146 | // .subnav-item {
147 | // @include bp(md) {
148 | // padding: $size-sml;
149 | // text-align: left;
150 | // }
151 | // }
152 |
--------------------------------------------------------------------------------
/assets/scss/utils/_mixins.scss:
--------------------------------------------------------------------------------
1 |
2 | // ----
3 | // Visual Design
4 | // ----
5 |
6 |
7 |
8 |
9 | // ----
10 | // Layout
11 | // ----
12 |
13 | // @mixin clearfix() {
14 | // &:before,
15 | // &:after {
16 | // content: " "; // 1
17 | // display: table; // 2
18 | // }
19 | // &:after {
20 | // clear: both;
21 | // }
22 | // }
23 |
24 | @mixin unstyle-list {
25 | list-style-type: none;
26 | padding-left: 0;
27 | }
28 |
29 |
30 |
31 | // ----
32 | // Typography
33 | // ----
34 |
35 | @mixin upperspace() {
36 | text-transform: uppercase;
37 | letter-spacing: 1px;
38 | }
39 |
40 | @mixin meta($color: $color-text-med, $margin: false) {
41 | color: $color;
42 | font-size: $size-sml;
43 |
44 | @if $margin == false {
45 | margin: 0;
46 | }
47 | }
48 |
49 | @mixin detail-text {
50 | font-size: $size-sml;
51 | }
52 |
53 | @mixin detail-title($border-pos: top) {
54 | @include upperspace;
55 | font-size: $size-sml;
56 | border-#{$border-pos}: 1px solid;
57 | padding-#{$border-pos}: $size-sml;
58 | }
59 |
60 |
61 |
62 | // ----
63 | // Fancypants borders
64 | // ----
65 |
66 | %border-fancy {
67 | position: relative;
68 | padding: $size-base 0;
69 |
70 | &:after {
71 | //content: ""; //uncomment this if you want the border to have a diamond, circle, etc in the center
72 | position: absolute;
73 | width: $size-xsml*.5;
74 | height: $size-xsml*.5;
75 | left: 50%;
76 | transform: translateX(-50%) translateY(-50%) rotate(45deg);
77 | background-color: $color-accent-light;
78 | border-radius: 50%; //makes the accent shape into a circle
79 | }
80 |
81 | }
82 |
83 | @mixin border-fancy-top {
84 | @extend %border-fancy;
85 | border-top: $border-accent-light;
86 | &:after {
87 | top: 0;
88 | }
89 | }
90 |
91 | @mixin border-fancy-bottom {
92 | @extend %border-fancy;
93 | border-bottom: $border-accent-light;
94 | &:after {
95 | top: 100%;
96 | }
97 | }
98 |
99 |
100 | // ----
101 | // Media Queries
102 | // ----
103 |
104 |
105 | // http://css-tricks.com/conditional-media-query-mixins/
106 | $MQs: true;
107 |
108 | @mixin bp($point) {
109 | @if ($MQs) {
110 | $bp-sm: "(min-width: #{$screen-sm})";
111 | $bp-md: "(min-width: #{$screen-md})";
112 | $bp-lg: "(min-width: #{$screen-lg})";
113 | $bp-xl: "(min-width: #{$screen-xl})";
114 |
115 | @if $point == sm {
116 | @media #{$bp-sm} { @content; }
117 | }
118 | @else if $point == md {
119 | @media #{$bp-md} { @content; }
120 | }
121 | @else if $point == lg {
122 | @media #{$bp-lg} { @content; }
123 | }
124 | @else if $point == xl {
125 | @media #{$bp-xl} { @content; }
126 | }
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/assets/img/svg-raw/text-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
10 |
11 |
13 |
14 |
16 |
17 |
20 |
21 |
25 |
29 |
31 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/assets/scss/utils/_variables.scss:
--------------------------------------------------------------------------------
1 |
2 | // ----
3 | // ---- Screen sizes
4 | // ----
5 |
6 | $screen-sm: 35em;
7 | $screen-md: 40em;
8 | $screen-lg: 64em;
9 | $screen-xl: 72em;
10 |
11 |
12 | // ----
13 | // ---- Colors
14 | // ----
15 |
16 | $white: #FFFFFF;
17 | $black: #000000;
18 | $grey: #E6E6E3;
19 | $gold: #916300;
20 | $pink: #B83074;
21 |
22 | $blue: #1C7FA6;
23 | $l-teal: desaturate(#BDF2E3, 10%);
24 | $green: #1BBF54;
25 | $l-green: #D9F2A2;
26 |
27 |
28 | // Semantic variable names
29 |
30 | // Color Scheme
31 | $color-accent-dark: $pink;
32 | $color-accent-med: $gold;
33 | $color-accent-light: $grey;
34 | $color-accent-vlight: lighten($color-accent-light, 10%);
35 |
36 | // Alerts
37 | $color-alert-danger: lighten($l-green, 40%);
38 | $color-alert-warning: $color-accent-light;
39 | $color-alert-info: $blue;
40 | $color-alert-success: $green;
41 |
42 | // Text colors
43 | $color-text-dark: $black;
44 | $color-text-med: $grey;
45 | $color-text-light: $white;
46 |
47 | // Links
48 | $color-link: $pink;
49 | $color-link-hover: darken($color-link, 20%);
50 | $color-link-active: darken($color-link, 40%);
51 |
52 | // Body
53 | $color-body-bkgd: $white;
54 | $color-body-text: $color-text-dark;
55 |
56 | // Calls to action - TODO: too much?
57 | $color-cta-bkgd: $gold;
58 | $color-cta-text: $white;
59 | $color-cta-link: $grey;
60 |
61 | $color-table-rotate: lighten($color-accent-light, 50%);
62 |
63 | // Rotate
64 | $color-rotate-bkgd: $color-body-text;
65 | $color-rotate-text: $color-body-bkgd;
66 |
67 |
68 | // ----
69 | // ---- Size Scale
70 | // ----
71 |
72 | // Rem Unit Scale
73 |
74 | $size-contain-lg: 110%;
75 | $size-contain-md: 105%;
76 | $size-contain-sm: 95%;
77 | $size-contain: 90%;
78 |
79 | $size-base: 1.1rem;
80 |
81 | $size-xsml: $size-base*0.6;
82 | $size-sml: $size-base*0.75;
83 |
84 | $size-h1: $size-base*2.5;
85 | $size-h2: $size-base*2.3;
86 | $size-h3: $size-base*1.8;
87 | $size-h4: $size-base*1.3;
88 | $size-h5: $size-base*1.1;
89 | $size-h6: $size-sml;
90 |
91 |
92 |
93 | // ----
94 | // ---- Typography
95 | // ----
96 |
97 | $serif: 'ltc-bodoni-175', 'Georgia', serif;
98 | $sans-serif: 'source-sans-pro', sans-serif;
99 |
100 | $line-height-base: 1.5;
101 | $line-height-sm: 1.3;
102 |
103 | $font-heading: $serif;
104 | $font-body: $sans-serif;
105 | $font-nav: $serif;
106 | $font-form: $sans-serif;
107 | $font-lead: $sans-serif;
108 | $font-btn: $serif;
109 |
110 | $font-weight-heading: 300;
111 | $font-weight-base: 300;
112 | $font-weight-strong: 500;
113 |
114 |
115 |
116 |
117 | // ----
118 | // ---- Utilities
119 | // ----
120 |
121 | $border-accent: 1px solid $color-accent-med;
122 | $border-accent-light: 1px solid $color-accent-light;
123 |
124 | // Z-Index Scale
125 | $z-base: 1;
126 | $z-back: $z-base+1;
127 | $z-mid: $z-base+2;
128 | $z-top: $z-base+3;
129 |
130 |
--------------------------------------------------------------------------------
/assets/scss/base/_forms.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 | // -----
4 | // Form styles
5 | // -----
6 |
7 | // Remove the blue outline from Chrome
8 | *:focus {
9 | outline: 0;
10 | }
11 |
12 | label, select {
13 | // display: block;
14 | }
15 |
16 | label {
17 | // margin-top: $size-h4;
18 | margin-bottom: $size-xsml;
19 | font-family: $font-form;
20 | }
21 |
22 | input[type="search"] {
23 | -webkit-box-sizing: content-box;
24 | -moz-box-sizing: content-box;
25 | -webkit-appearance: textfield;
26 | box-sizing: content-box;
27 | }
28 |
29 | input[type="search"]::-webkit-search-decoration,
30 | input[type="search"]::-webkit-search-cancel-button {
31 | -webkit-appearance: none;
32 | }
33 |
34 | textarea {
35 | overflow: auto;
36 | vertical-align: top;
37 | }
38 |
39 | textarea,
40 | input[type="text"],
41 | input[type="password"],
42 | input[type="datetime"],
43 | input[type="datetime-local"],
44 | input[type="date"],
45 | input[type="month"],
46 | input[type="time"],
47 | input[type="week"],
48 | input[type="number"],
49 | input[type="email"],
50 | input[type="url"],
51 | input[type="tel"] {
52 |
53 | width: 100%;
54 | border: $border-accent;
55 |
56 | &:focus {
57 | // border-color: $color-alert-info;
58 | // background-color: $color-accent-vlight;
59 | }
60 | }
61 |
62 | input[type="radio"],
63 | input[type="checkbox"] {
64 | margin: 4px 0 0;
65 | margin-right: $size-xsml;
66 | margin-top: 1px \9;
67 | *margin-top: 0;
68 | line-height: normal;
69 | cursor: pointer;
70 | }
71 |
72 | input[type="file"],
73 | input[type="image"],
74 | input[type="submit"],
75 | input[type="reset"],
76 | input[type="button"],
77 | input[type="radio"],
78 | input[type="checkbox"] {
79 | }
80 |
81 | input[type="submit"],
82 | button {
83 | }
84 |
85 |
86 | select,
87 | input[type="file"] {
88 | *margin-top: 4px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
89 | }
90 |
91 | select:focus,
92 | input[type="file"]:focus,
93 | input[type="radio"]:focus,
94 | input[type="checkbox"]:focus {
95 | outline: $border-accent;
96 | outline: 5px auto -webkit-focus-ring-color;
97 | outline-offset: -2px;
98 | }
99 |
100 | fieldset {
101 | border: 0;
102 | }
103 |
104 | // Search
105 |
106 | .search-form {
107 | @include grid;
108 | justify-content: center;
109 | position: absolute;
110 | top: 0;
111 | left: 0;
112 | }
113 |
114 | input[type="search"] {
115 | @include cell;
116 | @include meta($color-rotate-text);
117 | background-color: transparent;
118 | border: none;
119 | transition: 0.3s ease all;
120 | padding-top: $size-xsml;
121 |
122 | &:focus,
123 | .search & {
124 | width: auto;
125 | }
126 | }
127 |
128 | .search-label {
129 | margin-top: $size-xsml;
130 | margin-bottom: 0;
131 | border-right: $border-accent-light;
132 | @include cell(sixth, $guttered: false);
133 | }
134 |
135 | .search-icon {
136 | fill: $color-accent-light;
137 | max-width: $size-sml;
138 | }
139 |
140 | .search-submit {
141 | display: none;
142 | }
--------------------------------------------------------------------------------
/assets/scss/utils/_layout.scss:
--------------------------------------------------------------------------------
1 |
2 | $gutter: $size-base;
3 |
4 | $directions: (
5 | top: flex-start,
6 | bottom: flex-end,
7 | center: center
8 | );
9 |
10 | $sizes: (
11 | full: 100%,
12 | half: 50%,
13 | third: 33.333333%,
14 | fourth: 25%,
15 | sixth: 16.66666667%
16 | );
17 |
18 |
19 |
20 | @mixin cell($size: false, $direction: false, $guttered: true, $is_first: true) {
21 |
22 | @if $is_first == true {
23 | position: relative;
24 |
25 | @if $guttered {
26 | padding-left: $gutter/2;
27 | padding-right: $gutter/2;
28 | }
29 |
30 | @if $direction != false {
31 | align-self: map-get($directions, $direction);
32 | }
33 | }
34 |
35 | @if $size != false {
36 | flex: 0 0 map-get($sizes, $size);
37 | max-width: map-get($sizes, $size); // Fix for Firefox
38 | } @else {
39 | flex: 1;
40 | }
41 |
42 | }
43 |
44 | @mixin grid($guttered: true, $align: false, $bp: md, $wrap: row wrap) {
45 |
46 | display: flex;
47 | flex-flow: $wrap;
48 | position: relative;
49 |
50 | @if $align != false {
51 | align-items: map-get($directions, $align);
52 | }
53 |
54 | @if $guttered {
55 | margin-left: -$gutter/2;
56 | margin-right: -$gutter/2;
57 | }
58 | }
59 |
60 |
61 | @mixin contain($size: md) {
62 | margin: 0 auto;
63 | width: 90%;
64 | position: relative;
65 |
66 | @if $size == sm {
67 | max-width: $screen-sm;
68 | } @else if $size == md {
69 | max-width: $screen-md;
70 | } @else if $size == lg {
71 | max-width: $screen-lg;
72 | }
73 | }
74 |
75 |
76 | /// @group containers
77 | // TODO: this could be a map
78 |
79 | .contain {
80 | margin: 0 auto;
81 | width: 90%;
82 | position: relative;
83 | }
84 |
85 | .contain--lg {
86 | @extend .contain;
87 | max-width: $screen-lg;
88 | }
89 |
90 | .contain--md {
91 | @extend .contain;
92 | max-width: $screen-md;
93 | }
94 |
95 | .contain--sm {
96 | @extend .contain;
97 | max-width: $screen-sm;
98 | }
99 |
100 | .contain--xl {
101 | @extend .contain;
102 | max-width: $screen-xl;
103 | }
104 |
105 |
106 |
107 | // Bleeds
108 | @mixin bleed($size: -3%) {
109 | @include bp(md) {
110 | margin-right: $size;
111 | margin-left: $size;
112 | }
113 | }
114 |
115 | .bleed--baby {
116 | @include bleed;
117 | }
118 |
119 | .bleed--big {
120 | @include bleed(-10%);
121 | }
122 |
123 |
124 |
125 | // Prototyping classes
126 |
127 | .grid {
128 | @include bp(sm) {
129 | @include grid;
130 | }
131 | }
132 |
133 | .grid--center {
134 | @include bp(sm) {
135 | align-items: center;
136 | }
137 | }
138 |
139 | .grid--right {
140 | @include bp(sm) {
141 | align-items: right;
142 | }
143 | }
144 |
145 | .cell {
146 | @include cell;
147 | }
148 |
149 | .cell--right {
150 | @include bp(sm) {
151 | align-self: right;
152 | }
153 | }
154 |
155 | .cell--half {
156 | @include bp(sm) {
157 | @include cell($size: half);
158 | }
159 | }
160 |
161 |
--------------------------------------------------------------------------------
/assets/js/src/_main.js:
--------------------------------------------------------------------------------
1 |
2 | $(document).ready(function() {
3 |
4 | console.log('Check it: https://github.com/laras126/yuling-theme');
5 |
6 |
7 |
8 | // ----
9 | // Toggle Menu
10 | // ----
11 |
12 | // TODO: better fallback for non-JS - adding a .js class but it causes the nav to blink
13 | // Look into Modernizr for that
14 |
15 | var $menu = $('#toggleNav'),
16 | $menulink = $('#navOpenLink'),
17 | $menuTrigger = $('.has-subnav > a');
18 |
19 | $menulink.on('click', function(e) {
20 | $menulink.toggleClass('open');
21 | $menu.toggleClass('open');
22 | e.preventDefault();
23 | });
24 |
25 | $menuTrigger.click(function(e) {
26 | e.preventDefault();
27 | var $this = $(this);
28 | $this.toggleClass('open').next('ul').toggleClass('open');
29 | });
30 |
31 |
32 | // Subnav
33 | // $('.has-subnav').each( function() {
34 | // $(this).on('click', function() {
35 | // $(this).toggleClass('open');
36 | // });
37 | // });
38 |
39 |
40 |
41 |
42 | // ----
43 | // Toggle Panels (detailed asides on single-piece)
44 | // ----
45 |
46 | var allTargets = $('.accordion-target');
47 |
48 | $('.accordion-trigger').click(function() {
49 | $this = $(this);
50 | $target = $this.next('.accordion-target');
51 |
52 | $this.toggleClass('active');
53 | $('.accordion-trigger').not($this).removeClass('active');
54 |
55 | if ($target.hasClass('active')) {
56 | $target.removeClass('active').animate({
57 | 'max-height' : '0'
58 | }, 300);
59 | } else {
60 | allTargets.removeClass('active');
61 | $target.addClass('active').animate({
62 | 'max-height' : '100em'
63 | }, 500);
64 | }
65 |
66 | return false;
67 | });
68 |
69 |
70 |
71 |
72 | // ----
73 | // Share Social Links
74 | // ----
75 |
76 | $('.share-trigger').click(function(e) {
77 | e.preventDefault();
78 | $this = $(this);
79 | $target = $this.next('.social-list');
80 |
81 | $this.toggleClass('active');
82 | $target.toggleClass('visually-hidden');
83 |
84 | return false;
85 | });
86 |
87 |
88 |
89 |
90 | // ----
91 | // Shrink nav on scroll
92 | // ----
93 |
94 | var $header = $('.header.-site');
95 | var headerHeight = $header.outerHeight();
96 |
97 | // Do these things when scrolling
98 | $(window).scroll( function() {
99 |
100 | if ( $(this).scrollTop() > headerHeight ) {
101 | $header.addClass('shrunk');
102 | } else {
103 | $header.removeClass('shrunk');
104 | }
105 |
106 | });
107 |
108 |
109 |
110 | // ----
111 | // Plugins
112 | // ----
113 |
114 | $('.main').fitVids();
115 |
116 | // Maybe not ideal
117 | if ($(window).width() > 768) {
118 | $('.magnify').magnify();
119 | }
120 |
121 | $('.slider').flickity({
122 | imagesLoaded: true,
123 | pageDots: false,
124 | wrapAround: true,
125 | // lazyload: true,
126 | percentPosition: false
127 | });
128 |
129 | $('.thumb-slider').flickity({
130 | contain: true,
131 | wrapAround: true,
132 | imagesLoaded: true,
133 | pageDots: false
134 | });
135 |
136 |
137 | });
138 |
139 |
--------------------------------------------------------------------------------
/assets/tasks/utils.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt, config) {
2 |
3 | grunt.config.merge({
4 |
5 | modernizr: {
6 |
7 | dist: {
8 | // [REQUIRED] Path to the build you're using for development.
9 | "devFile" : config.bowerDir + "modernizr/modernizr.js",
10 |
11 | // Path to save out the built file.
12 | "outputFile" : config.jsConcatDir + "modernizr-custom.js",
13 |
14 | // Based on default settings on http://modernizr.com/download/
15 | "extra" : {
16 | "shiv" : true,
17 | "printshiv" : false,
18 | "load" : true,
19 | "mq" : false,
20 | "cssclasses" : true
21 | },
22 |
23 | // Based on default settings on http://modernizr.com/download/
24 | "extensibility" : {
25 | "addtest" : false,
26 | "prefixed" : false,
27 | "teststyles" : false,
28 | "testprops" : false,
29 | "testallprops" : false,
30 | "hasevents" : false,
31 | "prefixes" : false,
32 | "domprefixes" : false,
33 | "cssclassprefix": ""
34 | },
35 |
36 | // By default, source is uglified before saving
37 | "uglify" : true,
38 |
39 | // Define any tests you want to implicitly include.
40 | "tests" : [],
41 |
42 | // By default, this task will crawl your project for references to Modernizr tests.
43 | // Set to false to disable.
44 | "parseFiles" : true,
45 |
46 | // When parseFiles = true, this task will crawl all *.js, *.css, *.scss and *.sass files,
47 | // except files that are in node_modules/.
48 | // You can override this by defining a "files" array below.
49 | // "files" : {
50 | // "src": []
51 | // },
52 |
53 | // This handler will be passed an array of all the test names passed to the Modernizr API, and will run after the API call has returned
54 | // "handler": function (tests) {},
55 |
56 | // When parseFiles = true, matchCommunityTests = true will attempt to
57 | // match user-contributed tests.
58 | "matchCommunityTests" : false,
59 |
60 | // Have custom Modernizr tests? Add paths to their location here.
61 | "customTests" : []
62 | }
63 |
64 | },
65 |
66 | criticalcss: {
67 | custom: {
68 | options: {
69 | url: "http://mtn.local",
70 | width: 1200,
71 | height: 900,
72 | outputfile: config.cssDir + "critical.css",
73 | filename: config.cssDir + "main.css", // Using path.resolve( path.join( ... ) ) is a good idea here
74 | buffer: 800*1024,
75 | ignoreConsole: true
76 | }
77 | }
78 | },
79 |
80 | shell: {
81 | multiple: {
82 | command: [
83 | 'git commit -am \'build\'',
84 | 'git push origin master'
85 | ].join('&&')
86 | }
87 | }
88 | });
89 | }
--------------------------------------------------------------------------------
/views/singles/single-piece.twig:
--------------------------------------------------------------------------------
1 | {% extends "singles/single.twig" %}
2 |
3 | {% block before_content %}
4 |
5 |
6 | {% for t in post.get_terms('collection')|slice(0,1) %}
7 | ← Back to collection
8 | {% endfor %}
9 |
10 |
11 | {% endblock %}
12 |
13 | {% block content %}
14 |
15 |
16 |
17 |
18 |
19 | {% set img = TimberImage(post.thumbnail.src) %}
20 |
26 |
Hover to zoom.
27 |
28 |
29 |
30 |
31 | {% for t in post.get_terms('collection')|slice(0,1) %}
32 |
{{t.name}}
33 | {% endfor %}
34 |
35 |
{{post.title}}
36 |
37 |
40 |
41 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | {% for block in post.get_field('blocks') %}
102 | {% include 'blocks/block-logic.twig' %}
103 | {% endfor %}
104 |
105 | {% endblock %}
--------------------------------------------------------------------------------
/acf-json/group_558c4cf19012d.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "group_558c4cf19012d",
3 | "title": "Sources",
4 | "fields": [
5 | {
6 | "key": "field_558c4cf4649d2",
7 | "label": "URL",
8 | "name": "source_url",
9 | "type": "url",
10 | "instructions": "The link to the source.",
11 | "required": 1,
12 | "conditional_logic": 0,
13 | "wrapper": {
14 | "width": 50,
15 | "class": "",
16 | "id": ""
17 | },
18 | "default_value": "",
19 | "placeholder": ""
20 | },
21 | {
22 | "key": "field_558c4d3a649d3",
23 | "label": "Publication",
24 | "name": "source_publication",
25 | "type": "text",
26 | "instructions": "Can be left blank if n\/a.",
27 | "required": 0,
28 | "conditional_logic": 0,
29 | "wrapper": {
30 | "width": 50,
31 | "class": "",
32 | "id": ""
33 | },
34 | "default_value": "",
35 | "placeholder": "",
36 | "prepend": "",
37 | "append": "",
38 | "maxlength": "",
39 | "readonly": 0,
40 | "disabled": 0
41 | },
42 | {
43 | "key": "field_558d5872c7ee3",
44 | "label": "Author",
45 | "name": "source_author",
46 | "type": "text",
47 | "instructions": "Can also be left blank.",
48 | "required": 0,
49 | "conditional_logic": 0,
50 | "wrapper": {
51 | "width": 50,
52 | "class": "",
53 | "id": ""
54 | },
55 | "default_value": "",
56 | "placeholder": "",
57 | "prepend": "",
58 | "append": "",
59 | "maxlength": "",
60 | "readonly": 0,
61 | "disabled": 0
62 | },
63 | {
64 | "key": "field_55a42d1361531",
65 | "label": "Date",
66 | "name": "source_date",
67 | "type": "date_picker",
68 | "instructions": "Will not display if blank.",
69 | "required": 0,
70 | "conditional_logic": 0,
71 | "wrapper": {
72 | "width": 50,
73 | "class": "",
74 | "id": ""
75 | },
76 | "display_format": "F j, Y",
77 | "return_format": "F j, Y",
78 | "first_day": 0
79 | },
80 | {
81 | "key": "field_558c4d52649d4",
82 | "label": "Blurb",
83 | "name": "source_blurb",
84 | "type": "textarea",
85 | "instructions": "A few sentence description of the source.",
86 | "required": 0,
87 | "conditional_logic": 0,
88 | "wrapper": {
89 | "width": "",
90 | "class": "",
91 | "id": ""
92 | },
93 | "default_value": "",
94 | "placeholder": "",
95 | "maxlength": "",
96 | "rows": 4,
97 | "new_lines": "wpautop",
98 | "readonly": 0,
99 | "disabled": 0
100 | }
101 | ],
102 | "location": [
103 | [
104 | {
105 | "param": "post_type",
106 | "operator": "==",
107 | "value": "source"
108 | }
109 | ]
110 | ],
111 | "menu_order": 0,
112 | "position": "normal",
113 | "style": "default",
114 | "label_placement": "top",
115 | "instruction_placement": "label",
116 | "hide_on_screen": [
117 | "permalink",
118 | "the_content",
119 | "excerpt",
120 | "custom_fields",
121 | "discussion",
122 | "comments",
123 | "revisions",
124 | "slug",
125 | "author",
126 | "format",
127 | "page_attributes",
128 | "send-trackbacks"
129 | ],
130 | "modified": 1436822894
131 | }
--------------------------------------------------------------------------------
/acf-json/group_56153f1cce040.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "group_56153f1cce040",
3 | "title": "Collections",
4 | "fields": [
5 | {
6 | "key": "field_56153f2545f6b",
7 | "label": "Collection Gallery",
8 | "name": "collection_gallery",
9 | "type": "gallery",
10 | "instructions": "Images to display in the header carousel. Dimensions TBD.",
11 | "required": 0,
12 | "conditional_logic": 0,
13 | "wrapper": {
14 | "width": "",
15 | "class": "",
16 | "id": ""
17 | },
18 | "min": "",
19 | "max": "",
20 | "preview_size": "thumbnail",
21 | "library": "all",
22 | "min_width": "",
23 | "min_height": "",
24 | "min_size": "",
25 | "max_width": "",
26 | "max_height": "",
27 | "max_size": "",
28 | "mime_types": ""
29 | },
30 | {
31 | "key": "field_5615443f14ffb",
32 | "label": "Featured Image",
33 | "name": "featured_image",
34 | "type": "image",
35 | "instructions": "This image will display wherever a list of all collections is present e.g. on the \"Collections\" page or in search results.",
36 | "required": 0,
37 | "conditional_logic": 0,
38 | "wrapper": {
39 | "width": "",
40 | "class": "",
41 | "id": ""
42 | },
43 | "return_format": "id",
44 | "preview_size": "thumbnail",
45 | "library": "all",
46 | "min_width": "",
47 | "min_height": "",
48 | "min_size": "",
49 | "max_width": "",
50 | "max_height": "",
51 | "max_size": "",
52 | "mime_types": ""
53 | },
54 | {
55 | "key": "field_564e036509a01",
56 | "label": "Description Title",
57 | "name": "description_title",
58 | "type": "text",
59 | "instructions": "",
60 | "required": 0,
61 | "conditional_logic": 0,
62 | "wrapper": {
63 | "width": "",
64 | "class": "",
65 | "id": ""
66 | },
67 | "default_value": "",
68 | "placeholder": "",
69 | "prepend": "",
70 | "append": "",
71 | "maxlength": "",
72 | "readonly": 0,
73 | "disabled": 0
74 | },
75 | {
76 | "key": "field_5632a185c345e",
77 | "label": "Long Description",
78 | "name": "long_description",
79 | "type": "textarea",
80 | "instructions": "",
81 | "required": 0,
82 | "conditional_logic": 0,
83 | "wrapper": {
84 | "width": "",
85 | "class": "",
86 | "id": ""
87 | },
88 | "default_value": "",
89 | "placeholder": "",
90 | "maxlength": "",
91 | "rows": 4,
92 | "new_lines": "",
93 | "readonly": 0,
94 | "disabled": 0
95 | },
96 | {
97 | "key": "field_564e2c500251d",
98 | "label": "Inspiration Gallery",
99 | "name": "inspiration_gallery",
100 | "type": "gallery",
101 | "instructions": "Add inspirational images from Pinterest.",
102 | "required": 0,
103 | "conditional_logic": 0,
104 | "wrapper": {
105 | "width": "",
106 | "class": "",
107 | "id": ""
108 | },
109 | "min": "",
110 | "max": "",
111 | "preview_size": "thumbnail",
112 | "library": "all",
113 | "min_width": "",
114 | "min_height": "",
115 | "min_size": "",
116 | "max_width": "",
117 | "max_height": "",
118 | "max_size": "",
119 | "mime_types": ""
120 | }
121 | ],
122 | "location": [
123 | [
124 | {
125 | "param": "taxonomy",
126 | "operator": "==",
127 | "value": "collection"
128 | }
129 | ]
130 | ],
131 | "menu_order": 0,
132 | "position": "normal",
133 | "style": "default",
134 | "label_placement": "top",
135 | "instruction_placement": "label",
136 | "hide_on_screen": "",
137 | "active": 1,
138 | "description": "",
139 | "modified": 1447963754
140 | }
--------------------------------------------------------------------------------
/assets/scss/utils/_vendor.scss:
--------------------------------------------------------------------------------
1 | /*! Flickity v1.1.1
2 | http://flickity.metafizzy.co
3 | ---------------------------------------------- */
4 |
5 | .flickity-enabled {
6 | position: relative;
7 | }
8 |
9 | .flickity-enabled:focus { outline: none; }
10 |
11 | .flickity-viewport {
12 | overflow: hidden;
13 | position: relative;
14 | height: 100%;
15 | }
16 |
17 | .flickity-slider {
18 | position: absolute;
19 | width: 100%;
20 | height: 100%;
21 | }
22 |
23 | /* draggable */
24 |
25 | .flickity-enabled.is-draggable {
26 | -webkit-tap-highlight-color: transparent;
27 | tap-highlight-color: transparent;
28 | -webkit-user-select: none;
29 | -moz-user-select: none;
30 | -ms-user-select: none;
31 | user-select: none;
32 | }
33 |
34 | .flickity-enabled.is-draggable .flickity-viewport {
35 | cursor: move;
36 | cursor: -webkit-grab;
37 | cursor: grab;
38 | }
39 |
40 | .flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
41 | cursor: -webkit-grabbing;
42 | cursor: grabbing;
43 | }
44 |
45 | /* ---- previous/next buttons ---- */
46 |
47 | .flickity-prev-next-button {
48 | position: absolute;
49 | top: 50%;
50 | width: 44px;
51 | height: 44px;
52 | border: none;
53 | border-radius: 50%;
54 | background: white;
55 | background: hsla(0, 0%, 100%, 0.75);
56 | cursor: pointer;
57 | /* vertically center */
58 | -webkit-transform: translateY(-50%);
59 | -ms-transform: translateY(-50%);
60 | transform: translateY(-50%);
61 | }
62 |
63 | .flickity-prev-next-button:hover { background: white; }
64 |
65 | .flickity-prev-next-button:focus {
66 | outline: none;
67 | box-shadow: 0 0 0 5px #09F;
68 | }
69 |
70 | .flickity-prev-next-button:active {
71 | filter: alpha(opacity=60); /* IE8 */
72 | opacity: 0.6;
73 | }
74 |
75 | .flickity-prev-next-button.previous { left: 10px; }
76 | .flickity-prev-next-button.next { right: 10px; }
77 | /* right to left */
78 | .flickity-rtl .flickity-prev-next-button.previous {
79 | left: auto;
80 | right: 10px;
81 | }
82 | .flickity-rtl .flickity-prev-next-button.next {
83 | right: auto;
84 | left: 10px;
85 | }
86 |
87 | .flickity-prev-next-button:disabled {
88 | filter: alpha(opacity=30); /* IE8 */
89 | opacity: 0.3;
90 | cursor: auto;
91 | }
92 |
93 | .flickity-prev-next-button svg {
94 | position: absolute;
95 | left: 20%;
96 | top: 20%;
97 | width: 60%;
98 | height: 60%;
99 | }
100 |
101 | .flickity-prev-next-button .arrow {
102 | fill: #333;
103 | }
104 |
105 | /* color & size if no SVG - IE8 and Android 2.3 */
106 | .flickity-prev-next-button.no-svg {
107 | color: #333;
108 | font-size: 26px;
109 | }
110 |
111 | /* ---- page dots ---- */
112 |
113 | .flickity-page-dots {
114 | position: absolute;
115 | width: 100%;
116 | bottom: -25px;
117 | padding: 0;
118 | margin: 0;
119 | list-style: none;
120 | text-align: center;
121 | line-height: 1;
122 | }
123 |
124 | .flickity-rtl .flickity-page-dots { direction: rtl; }
125 |
126 | .flickity-page-dots .dot {
127 | display: inline-block;
128 | width: 10px;
129 | height: 10px;
130 | margin: 0 8px;
131 | background: #333;
132 | border-radius: 50%;
133 | filter: alpha(opacity=25); /* IE8 */
134 | opacity: 0.25;
135 | cursor: pointer;
136 | }
137 |
138 | .flickity-page-dots .dot.is-selected {
139 | filter: alpha(opacity=100); /* IE8 */
140 | opacity: 1;
141 | }
142 |
143 |
144 | @include bp(md) {
145 |
146 | .magnify {
147 | position: relative;
148 | display: inline-block;
149 | }
150 | .magnify .magnify-lens {
151 | /* Create the magnifying lens */
152 | position: absolute;
153 | width: 200px;
154 | height: 200px;
155 | // border-radius: 100%;
156 | /* Multiple box shadows to achieve the glass lens effect */
157 | // -webkit-box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85),
158 | // 0 0 7px 7px rgba(0, 0, 0, 0.25),
159 | // inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
160 | // box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85),
161 | // 0 0 7px 7px rgba(0, 0, 0, 0.25),
162 | // inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
163 | border: 5px solid rgba($color-rotate-bkgd, 0.6);
164 | /* Hide the mouse pointer */
165 | cursor: none;
166 | /* Hide the lens by default */
167 | display: none;
168 | /* Place the lens on top of other elements */
169 | z-index: 100;
170 | }
171 | .magnify .magnify-lens.loading {
172 | background: #333 !important;
173 | opacity: .75;
174 | }
175 | .magnify .magnify-lens.loading:after {
176 | /* Loading text */
177 | position: absolute;
178 | top: 45%;
179 | left: 0;
180 | width: 100%;
181 | color: #fff;
182 | content: 'Loading...';
183 | font: italic normal 16px/1 Calibri, sans-serif;
184 | text-align: center;
185 | text-shadow: 0 0 2px rgba(51, 51, 51, .8);
186 | text-transform: none;
187 | }
188 | }
--------------------------------------------------------------------------------
/views/utility/svg-defs.svg:
--------------------------------------------------------------------------------
1 | arrow-down arrow-left arrow-right arrow-up facebook instagram pinterest quotes-left search text-logo
--------------------------------------------------------------------------------
/assets/js/vendor/lazysizes.min.js:
--------------------------------------------------------------------------------
1 | /*! lazysizes - v1.3.0 */
2 | !function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports?module.exports=c:"function"==typeof define&&define.amd&&define(c)}(window,function(a,b){"use strict";if(b.getElementsByClassName){var c,d=b.documentElement,e=a.HTMLPictureElement&&"sizes"in b.createElement("img"),f="addEventListener",g=a[f],h=a.setTimeout,i=a.requestAnimationFrame||h,j=a.setImmediate||h,k=/^picture$/i,l=["load","error","lazyincluded","_lazyloaded"],m={},n=Array.prototype.forEach,o=function(a,b){return m[b]||(m[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),m[b].test(a.className)&&m[b]},p=function(a,b){o(a,b)||(a.className=a.className.trim()+" "+b)},q=function(a,b){var c;(c=o(a,b))&&(a.className=a.className.replace(c," "))},r=function(a,b,c){var d=c?f:"removeEventListener";c&&r(a,b),l.forEach(function(c){a[d](c,b)})},s=function(a,c,d,e,f){var g=b.createEvent("CustomEvent");return g.initCustomEvent(c,!e,!f,d||{}),a.dispatchEvent(g),g},t=function(b,d){var f;!e&&(f=a.picturefill||c.pf)?f({reevaluate:!0,elements:[b]}):d&&d.src&&(b.src=d.src)},u=function(a,b){return(getComputedStyle(a,null)||{})[b]},v=function(a,b,d){for(d=d||a.offsetWidth;da&&(a=6),h(k,a)}}},x=function(){var e,j,l,m,v,x,z,A,B,C,D,E,F,G,H=/^img$/i,I=/^iframe$/i,J="onscroll"in a&&!/glebot/.test(navigator.userAgent),K=0,L=0,M=0,N=0,O=function(a){M--,a&&a.target&&r(a.target,O),(!a||0>M||!a.target)&&(M=0)},P=function(a,b){var c,d=a,e="hidden"!=u(a,"visibility");for(B-=b,E+=b,C-=b,D+=b;e&&(d=d.offsetParent);)e=(u(d,"opacity")||1)>0,e&&"visible"!=u(d,"overflow")&&(c=d.getBoundingClientRect(),e=D>c.left&&Cc.top-1&&BM&&(a=e.length)){for(b=0,N++,G>L&&1>M&&N>3&&v>2?(L=G,N=0):L=v>1&&N>2&&6>M?F:K;a>b;b++)if(e[b]&&!e[b]._lazyRace)if(J)if((k=e[b].getAttribute("data-expand"))&&(h=1*k)||(h=L),m!==h&&(z=innerWidth+h,A=innerHeight+h,i=-1*h,m=h),d=e[b].getBoundingClientRect(),(E=d.bottom)>=i&&(B=d.top)<=A&&(D=d.right)>=i&&(C=d.left)<=z&&(E||D||C||B)&&(l&&3>M&&!k&&(3>v||4>N)||P(e[b],h))){if(W(e[b]),g=!0,M>9)break;M>6&&(L=K)}else!g&&l&&!f&&4>M&&4>N&&v>2&&(j[0]||c.preloadAfterLoad)&&(j[0]||!k&&(E||D||C||B||"auto"!=e[b].getAttribute(c.sizesAttr)))&&(f=j[0]||e[b]);else W(e[b]);f&&!g&&W(f)}},R=w(Q),S=function(a){p(a.target,c.loadedClass),q(a.target,c.loadingClass),r(a.target,S)},T=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},U=function(a){var b,d,e=a.getAttribute(c.srcsetAttr);(b=c.customMedia[a.getAttribute("data-media")||a.getAttribute("media")])&&a.setAttribute("media",b),e&&a.setAttribute("srcset",e),b&&(d=a.parentNode,d.insertBefore(a.cloneNode(),a),d.removeChild(a))},V=function(){var a,b=[],c=function(){for(;b.length;)b.shift()();a=!1};return function(d){b.push(d),a||(a=!0,i(c))}}(),W=function(a){var b,d,e,f,g,i,j,u=H.test(a.nodeName),v=u&&(a.getAttribute(c.sizesAttr)||a.getAttribute("sizes")),w="auto"==v;(!w&&l||!u||!a.src&&!a.srcset||a.complete||o(a,c.errorClass))&&(w&&(j=a.offsetWidth),a._lazyRace=!0,M++,V(function(){a._lazyRace&&delete a._lazyRace,q(a,c.lazyClass),(g=s(a,"lazybeforeunveil")).defaultPrevented||(v&&(w?(p(a,c.autosizesClass),y.updateElem(a,!0,j)):a.setAttribute("sizes",v)),d=a.getAttribute(c.srcsetAttr),b=a.getAttribute(c.srcAttr),u&&(e=a.parentNode,f=e&&k.test(e.nodeName||"")),i=g.detail.firesLoad||"src"in a&&(d||b||f),g={target:a},i&&(r(a,O,!0),clearTimeout(m),m=h(O,2500),p(a,c.loadingClass),r(a,S,!0)),f&&n.call(e.getElementsByTagName("source"),U),d?a.setAttribute("srcset",d):b&&!f&&(I.test(a.nodeName)?T(a,b):a.src=b),(d||f)&&t(a,{src:b})),(!i||a.complete)&&(i?O(g):M--,S(g))}))},X=function(){if(!l){if(Date.now()-x<999)return void h(X,999);var a,b=function(){c.loadMode=3,R()};l=!0,c.loadMode=3,M||R(),g("scroll",function(){3==c.loadMode&&(c.loadMode=2),clearTimeout(a),a=h(b,99)},!0)}};return{_:function(){x=Date.now(),e=b.getElementsByClassName(c.lazyClass),j=b.getElementsByClassName(c.lazyClass+" "+c.preloadClass),F=c.expand,G=F*c.expFactor,g("scroll",R,!0),g("resize",R,!0),a.MutationObserver?new MutationObserver(R).observe(d,{childList:!0,subtree:!0,attributes:!0}):(d[f]("DOMNodeInserted",R,!0),d[f]("DOMAttrModified",R,!0),setInterval(R,999)),g("hashchange",R,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(a){b[f](a,R,!0)}),/d$|^c/.test(b.readyState)?X():(g("load",X),b[f]("DOMContentLoaded",R),h(X,2e4)),R(e.length>0)},checkElems:R,unveil:W}}(),y=function(){var a,d=function(a,b,c){var d,e,f,g,h=a.parentNode;if(h&&(c=v(a,h,c),g=s(a,"lazybeforesizes",{width:c,dataAttr:!!b}),!g.defaultPrevented&&(c=g.detail.width,c&&c!==a._lazysizesWidth))){if(a._lazysizesWidth=c,c+="px",a.setAttribute("sizes",c),k.test(h.nodeName||""))for(d=h.getElementsByTagName("source"),e=0,f=d.length;f>e;e++)d[e].setAttribute("sizes",c);g.detail.dataAttr||t(a,g.detail)}},e=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)d(a[b])},f=w(e);return{_:function(){a=b.getElementsByClassName(c.autosizesClass),g("resize",f)},checkElems:f,updateElem:d}}(),z=function(){z.i||(z.i=!0,y._(),x._())};return function(){var b,e={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.7,expand:d.clientHeight>630?d.clientWidth>890?500:410:359,loadMode:2};c=a.lazySizesConfig||a.lazysizesConfig||{};for(b in e)b in c||(c[b]=e[b]);a.lazySizesConfig=c,h(function(){c.init&&z()})}(),{cfg:c,autoSizer:y,loader:x,init:z,uP:t,aC:p,rC:q,hC:o,fire:s,gW:v}}});
--------------------------------------------------------------------------------
/lib/custom-types.php:
--------------------------------------------------------------------------------
1 | _x( 'Collection', 'Post Type General Name', 'yld' ),
9 | 'singular_name' => _x( 'Collection', 'Post Type Singular Name', 'yld' ),
10 | 'menu_name' => __( 'Collections', 'yld' ),
11 | 'name_admin_bar' => __( 'Collection', 'yld' ),
12 | 'parent_item_colon' => __( 'Parent Collection:', 'yld' ),
13 | 'all_items' => __( 'All Collections', 'yld' ),
14 | 'add_new_item' => __( 'Add New Collection', 'yld' ),
15 | 'add_new' => __( 'Add New', 'yld' ),
16 | 'new_item' => __( 'New Collection', 'yld' ),
17 | 'edit_item' => __( 'Edit Collection', 'yld' ),
18 | 'update_item' => __( 'Update Collection', 'yld' ),
19 | 'view_item' => __( 'View Collection', 'yld' ),
20 | 'search_items' => __( 'Search Collection', 'yld' ),
21 | 'not_found' => __( 'Not found', 'yld' ),
22 | 'not_found_in_trash' => __( 'Not found in Trash', 'yld' ),
23 | );
24 | $rewrite = array(
25 | 'slug' => 'collections',
26 | 'with_front' => true,
27 | 'pages' => true,
28 | 'feeds' => true,
29 | );
30 | $args = array(
31 | 'label' => __( 'collection_type', 'yld' ),
32 | 'description' => __( 'The Collection post type.', 'yld' ),
33 | 'labels' => $labels,
34 | 'supports' => array( 'title', 'excerpt', 'thumbnail', 'revisions' ),
35 | 'taxonomies' => array( 'category', 'post_tag' ),
36 | 'hierarchical' => false,
37 | 'public' => true,
38 | 'show_ui' => true,
39 | 'show_in_menu' => true,
40 | 'menu_position' => 5,
41 | 'menu_icon' => 'dashicons-format-gallery',
42 | 'show_in_admin_bar' => true,
43 | 'show_in_nav_menus' => true,
44 | 'can_export' => true,
45 | 'has_archive' => true,
46 | 'exclude_from_search' => false,
47 | 'publicly_queryable' => true,
48 | 'rewrite' => $rewrite,
49 | 'capability_type' => 'page',
50 | );
51 | // register_post_type( 'collection_type', $args );
52 |
53 |
54 |
55 | // ----
56 | // Pieces Custom Type
57 | // ----
58 |
59 | $labels = array(
60 | 'name' => _x( 'Piece', 'Post Type General Name', 'yld' ),
61 | 'singular_name' => _x( 'Piece', 'Post Type Singular Name', 'yld' ),
62 | 'menu_name' => __( 'Pieces', 'yld' ),
63 | 'name_admin_bar' => __( 'Piece', 'yld' ),
64 | 'parent_item_colon' => __( 'Parent Piece:', 'yld' ),
65 | 'all_items' => __( 'All Pieces', 'yld' ),
66 | 'add_new_item' => __( 'Add New Piece', 'yld' ),
67 | 'add_new' => __( 'Add New', 'yld' ),
68 | 'new_item' => __( 'New Piece', 'yld' ),
69 | 'edit_item' => __( 'Edit Piece', 'yld' ),
70 | 'update_item' => __( 'Update Piece', 'yld' ),
71 | 'view_item' => __( 'View Piece', 'yld' ),
72 | 'search_items' => __( 'Search Piece', 'yld' ),
73 | 'not_found' => __( 'Not found', 'yld' ),
74 | 'not_found_in_trash' => __( 'Not found in Trash', 'yld' ),
75 | );
76 | $rewrite = array(
77 | 'slug' => 'pieces',
78 | 'with_front' => true,
79 | 'pages' => true,
80 | 'feeds' => true,
81 | );
82 | $args = array(
83 | 'label' => __( 'piece', 'yld' ),
84 | 'description' => __( 'The Piece post type.', 'yld' ),
85 | 'labels' => $labels,
86 | 'supports' => array( 'title', 'excerpt', 'thumbnail', 'revisions' ),
87 | 'taxonomies' => array( 'category', 'post_tag', 'collection' ),
88 | 'hierarchical' => false,
89 | 'public' => true,
90 | 'show_ui' => true,
91 | 'show_in_menu' => true,
92 | 'menu_position' => 5,
93 | 'menu_icon' => 'dashicons-format-image',
94 | 'show_in_admin_bar' => true,
95 | 'show_in_nav_menus' => true,
96 | 'can_export' => true,
97 | 'has_archive' => true,
98 | 'exclude_from_search' => false,
99 | 'publicly_queryable' => true,
100 | 'rewrite' => $rewrite,
101 | 'capability_type' => 'post',
102 | );
103 | register_post_type( 'piece', $args );
104 |
105 |
106 | // ----
107 | // Projects Custom Type
108 | // ----
109 |
110 | $labels = array(
111 | 'name' => _x( 'Project', 'Post Type General Name', 'yld' ),
112 | 'singular_name' => _x( 'Project', 'Post Type Singular Name', 'yld' ),
113 | 'menu_name' => __( 'Client Projects', 'yld' ),
114 | 'name_admin_bar' => __( 'Project', 'yld' ),
115 | 'parent_item_colon' => __( 'Parent Project:', 'yld' ),
116 | 'all_items' => __( 'All Projects', 'yld' ),
117 | 'add_new_item' => __( 'Add New Project', 'yld' ),
118 | 'add_new' => __( 'Add New', 'yld' ),
119 | 'new_item' => __( 'New Project', 'yld' ),
120 | 'edit_item' => __( 'Edit Project', 'yld' ),
121 | 'update_item' => __( 'Update Project', 'yld' ),
122 | 'view_item' => __( 'View Project', 'yld' ),
123 | 'search_items' => __( 'Search Project', 'yld' ),
124 | 'not_found' => __( 'Not found', 'yld' ),
125 | 'not_found_in_trash' => __( 'Not found in Trash', 'yld' ),
126 | );
127 | $rewrite = array(
128 | 'slug' => 'projects',
129 | 'with_front' => true,
130 | 'pages' => true,
131 | 'feeds' => true,
132 | );
133 | $args = array(
134 | 'label' => __( 'project', 'yld' ),
135 | 'description' => __( 'The Project post type.', 'yld' ),
136 | 'labels' => $labels,
137 | 'supports' => array( 'title', 'excerpt', 'thumbnail', 'revisions'),
138 | 'taxonomies' => array( 'category', 'post_tag' ),
139 | 'hierarchical' => false,
140 | 'public' => true,
141 | 'show_ui' => true,
142 | 'show_in_menu' => true,
143 | 'menu_position' => 5,
144 | 'menu_icon' => 'dashicons-slides',
145 | 'show_in_admin_bar' => true,
146 | 'show_in_nav_menus' => true,
147 | 'can_export' => true,
148 | 'has_archive' => true,
149 | 'exclude_from_search' => false,
150 | 'publicly_queryable' => true,
151 | 'rewrite' => $rewrite,
152 | 'capability_type' => 'post',
153 | );
154 | register_post_type( 'project', $args );
155 |
156 |
157 |
--------------------------------------------------------------------------------
/acf-json/group_545d1302ae129.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "group_545d1302ae129",
3 | "title": "Header",
4 | "fields": [
5 | {
6 | "key": "field_545a83096d4b5",
7 | "label": "Header Display",
8 | "name": "header_display",
9 | "type": "radio",
10 | "instructions": "Select the type of page intro you would like.",
11 | "required": 0,
12 | "conditional_logic": 0,
13 | "wrapper": {
14 | "width": "",
15 | "class": "",
16 | "id": ""
17 | },
18 | "choices": {
19 | "text": "Text Only",
20 | "image": "Image"
21 | },
22 | "other_choice": 0,
23 | "save_other_choice": 0,
24 | "default_value": "",
25 | "layout": "horizontal"
26 | },
27 | {
28 | "key": "field_545a8498b0f4c",
29 | "label": "Image - Desktop (1200 x 500)",
30 | "name": "header_image_desktop",
31 | "type": "image",
32 | "instructions": "The header image for large devices. Image will automatically resize.",
33 | "required": 0,
34 | "conditional_logic": [
35 | [
36 | {
37 | "field": "field_545a83096d4b5",
38 | "operator": "==",
39 | "value": "image"
40 | }
41 | ]
42 | ],
43 | "wrapper": {
44 | "width": 33,
45 | "class": "",
46 | "id": ""
47 | },
48 | "return_format": "url",
49 | "preview_size": "thumbnail",
50 | "library": "all",
51 | "min_width": "",
52 | "min_height": "",
53 | "min_size": "",
54 | "max_width": "",
55 | "max_height": "",
56 | "max_size": "",
57 | "mime_types": ""
58 | },
59 | {
60 | "key": "field_558ade731439e",
61 | "label": "Image - Tablet (900x300)",
62 | "name": "header_image_tablet",
63 | "type": "image",
64 | "instructions": "The image to appear on tablet devices. Leave blank to use desktop image. Image will automatically crop and resize.",
65 | "required": 0,
66 | "conditional_logic": [
67 | [
68 | {
69 | "field": "field_545a83096d4b5",
70 | "operator": "==",
71 | "value": "image"
72 | }
73 | ]
74 | ],
75 | "wrapper": {
76 | "width": 33,
77 | "class": "",
78 | "id": ""
79 | },
80 | "return_format": "url",
81 | "preview_size": "thumbnail",
82 | "library": "all",
83 | "min_width": "",
84 | "min_height": "",
85 | "min_size": "",
86 | "max_width": "",
87 | "max_height": "",
88 | "max_size": "",
89 | "mime_types": ""
90 | },
91 | {
92 | "key": "field_558ade2a1439d",
93 | "label": "Image - Mobile (600x400)",
94 | "name": "header_image_mobile",
95 | "type": "image",
96 | "instructions": "Header image to appear on small screens. Leave blank if the desktop image suffices.",
97 | "required": 0,
98 | "conditional_logic": [
99 | [
100 | {
101 | "field": "field_545a83096d4b5",
102 | "operator": "==",
103 | "value": "image"
104 | }
105 | ]
106 | ],
107 | "wrapper": {
108 | "width": 33,
109 | "class": "",
110 | "id": ""
111 | },
112 | "return_format": "url",
113 | "preview_size": "thumbnail",
114 | "library": "all",
115 | "min_width": "",
116 | "min_height": "",
117 | "min_size": "",
118 | "max_width": "",
119 | "max_height": "",
120 | "max_size": "",
121 | "mime_types": ""
122 | },
123 | {
124 | "key": "field_558add6512d17",
125 | "label": "Header Tagline",
126 | "name": "header_tagline",
127 | "type": "textarea",
128 | "instructions": "A concise introduction to the page content. ",
129 | "required": 0,
130 | "conditional_logic": 0,
131 | "wrapper": {
132 | "width": "",
133 | "class": "",
134 | "id": ""
135 | },
136 | "default_value": "",
137 | "placeholder": "",
138 | "maxlength": "",
139 | "rows": 2,
140 | "new_lines": "",
141 | "readonly": 0,
142 | "disabled": 0
143 | },
144 | {
145 | "key": "field_545a8366b7ae4",
146 | "label": "Summary",
147 | "name": "header_summary",
148 | "type": "wysiwyg",
149 | "instructions": "A short paragraph summarizing the page content. This will display below the page title. Optional.",
150 | "required": 0,
151 | "conditional_logic": 0,
152 | "wrapper": {
153 | "width": "",
154 | "class": "wysiwyg-short",
155 | "id": ""
156 | },
157 | "default_value": "",
158 | "tabs": "all",
159 | "toolbar": "links_only",
160 | "media_upload": 0
161 | }
162 | ],
163 | "location": [
164 | [
165 | {
166 | "param": "post_type",
167 | "operator": "==",
168 | "value": "project"
169 | }
170 | ],
171 | [
172 | {
173 | "param": "post_type",
174 | "operator": "==",
175 | "value": "post"
176 | }
177 | ],
178 | [
179 | {
180 | "param": "post_type",
181 | "operator": "==",
182 | "value": "page"
183 | }
184 | ],
185 | [
186 | {
187 | "param": "post_type",
188 | "operator": "==",
189 | "value": "piece"
190 | }
191 | ]
192 | ],
193 | "menu_order": 0,
194 | "position": "acf_after_title",
195 | "style": "default",
196 | "label_placement": "top",
197 | "instruction_placement": "label",
198 | "hide_on_screen": [
199 | "the_content",
200 | "custom_fields",
201 | "discussion",
202 | "comments",
203 | "revisions",
204 | "slug",
205 | "author",
206 | "format",
207 | "send-trackbacks"
208 | ],
209 | "active": 1,
210 | "description": "",
211 | "modified": 1446148048
212 | }
--------------------------------------------------------------------------------
/assets/js/build/modernizr-custom.js:
--------------------------------------------------------------------------------
1 | /* Modernizr (Custom Build) | MIT & BSD
2 | * Build: http://modernizr.com/download/#-shiv-load-cssclasses
3 | */
4 | ;window.Modernizr=function(e,t,n){function w(e){f.cssText=e}function E(e,t){return w(prefixes.join(e+";")+(t||""))}function S(e,t){return typeof e===t}function x(e,t){return!!~(""+e).indexOf(t)}function T(e,t,r){for(var i in e){var s=t[e[i]];if(s!==n)return r===!1?e[i]:S(s,"function")?s.bind(r||t):s}return!1}var r="2.8.3",i={},s=!0,o=t.documentElement,u="modernizr",a=t.createElement(u),f=a.style,l,c={}.toString,h={},p={},d={},v=[],m=v.slice,g,y={}.hasOwnProperty,b;!S(y,"undefined")&&!S(y.call,"undefined")?b=function(e,t){return y.call(e,t)}:b=function(e,t){return t in e&&S(e.constructor.prototype[t],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError;var r=m.call(arguments,1),i=function(){if(this instanceof i){var e=function(){};e.prototype=n.prototype;var s=new e,o=n.apply(s,r.concat(m.call(arguments)));return Object(o)===o?o:s}return n.apply(t,r.concat(m.call(arguments)))};return i});for(var N in h)b(h,N)&&(g=N.toLowerCase(),i[g]=h[N](),v.push((i[g]?"":"no-")+g));return i.addTest=function(e,t){if(typeof e=="object")for(var r in e)b(e,r)&&i.addTest(r,e[r]);else{e=e.toLowerCase();if(i[e]!==n)return i;t=typeof t=="function"?t():t,typeof s!="undefined"&&s&&(o.className+=" "+(t?"":"no-")+e),i[e]=t}return i},w(""),a=l=null,function(e,t){function c(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}function h(){var e=y.elements;return typeof e=="string"?e.split(" "):e}function p(e){var t=f[e[u]];return t||(t={},a++,e[u]=a,f[a]=t),t}function d(e,n,r){n||(n=t);if(l)return n.createElement(e);r||(r=p(n));var o;return r.cache[e]?o=r.cache[e].cloneNode():s.test(e)?o=(r.cache[e]=r.createElem(e)).cloneNode():o=r.createElem(e),o.canHaveChildren&&!i.test(e)&&!o.tagUrn?r.frag.appendChild(o):o}function v(e,n){e||(e=t);if(l)return e.createDocumentFragment();n=n||p(e);var r=n.frag.cloneNode(),i=0,s=h(),o=s.length;for(;i",o="hidden"in e,l=e.childNodes.length==1||function(){t.createElement("a");var e=t.createDocumentFragment();return typeof e.cloneNode=="undefined"||typeof e.createDocumentFragment=="undefined"||typeof e.createElement=="undefined"}()}catch(n){o=!0,l=!0}})();var y={elements:r.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:n,shivCSS:r.shivCSS!==!1,supportsUnknownElements:l,shivMethods:r.shivMethods!==!1,type:"default",shivDocument:g,createElement:d,createDocumentFragment:v};e.html5=y,g(t)}(this,t),i._version=r,o.className=o.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(s?' js '+v.join(' '):""),i}(this,this.document),function(e,t,n){function r(e){return"[object Function]"==d.call(e)}function i(e){return"string"==typeof e}function s(){}function o(e){return!e||"loaded"==e||"complete"==e||"uninitialized"==e}function u(){var e=v.shift();m=1,e?e.t?h(function(){("c"==e.t?k.injectCss:k.injectJs)(e.s,0,e.a,e.x,e.e,1)},0):(e(),u()):m=0}function a(e,n,r,i,s,a,f){function l(t){if(!d&&o(c.readyState)&&(w.r=d=1,!m&&u(),c.onload=c.onreadystatechange=null,t)){"img"!=e&&h(function(){b.removeChild(c)},50);for(var r in T[n])T[n].hasOwnProperty(r)&&T[n][r].onload()}}var f=f||k.errorTimeout,c=t.createElement(e),d=0,g=0,w={t:r,s:n,e:s,a:a,x:f};1===T[n]&&(g=1,T[n]=[]),"object"==e?c.data=n:(c.src=n,c.type=e),c.width=c.height="0",c.onerror=c.onload=c.onreadystatechange=function(){l.call(this,g)},v.splice(i,0,w),"img"!=e&&(g||2===T[n]?(b.insertBefore(c,y?null:p),h(l,f)):T[n].push(c))}function f(e,t,n,r,s){return m=0,t=t||"j",i(e)?a("c"==t?E:w,e,t,this.i++,n,r,s):(v.splice(this.i++,0,e),1==v.length&&u()),this}function l(){var e=k;return e.loader={load:f,i:0},e}var c=t.documentElement,h=e.setTimeout,p=t.getElementsByTagName("script")[0],d={}.toString,v=[],m=0,g="MozAppearance"in c.style,y=g&&!!t.createRange().compareNode,b=y?c:p.parentNode,c=e.opera&&"[object Opera]"==d.call(e.opera),c=!!t.attachEvent&&!c,w=g?"object":c?"script":"img",E=c?"script":w,S=Array.isArray||function(e){return"[object Array]"==d.call(e)},x=[],T={},N={timeout:function(e,t){return t.length&&(e.timeout=t[0]),e}},C,k;k=function(e){function t(e){var e=e.split("!"),t=x.length,n=e.pop(),r=e.length,n={url:n,origUrl:n,prefixes:e},i,s,o;for(s=0;sCheck it out<\/a> and let us know what you think in the comments!",
68 | "tabs": "visual",
69 | "toolbar": "links_only",
70 | "media_upload": 1
71 | },
72 | {
73 | "key": "field_558adabd23242",
74 | "label": "Footer Colophon",
75 | "name": "",
76 | "type": "tab",
77 | "instructions": "",
78 | "required": 0,
79 | "conditional_logic": 0,
80 | "wrapper": {
81 | "width": "",
82 | "class": "",
83 | "id": ""
84 | },
85 | "placement": "top",
86 | "endpoint": 0
87 | },
88 | {
89 | "key": "field_558ad11713279",
90 | "label": "Copyright",
91 | "name": "site_footer_copyright",
92 | "type": "text",
93 | "instructions": "Add your company name here. This will appear with the copyright symbol followed by the date.",
94 | "required": 0,
95 | "conditional_logic": 0,
96 | "wrapper": {
97 | "width": 25,
98 | "class": "",
99 | "id": ""
100 | },
101 | "default_value": "Lara Schenck, LLC",
102 | "placeholder": "",
103 | "prepend": "\u00a9",
104 | "append": 2015,
105 | "maxlength": "",
106 | "readonly": 0,
107 | "disabled": 0
108 | },
109 | {
110 | "key": "field_558ad12b1327a",
111 | "label": "Credits",
112 | "name": "site_footer_credits",
113 | "type": "wysiwyg",
114 | "instructions": "Add credits to any tools or people that helped with the site. Leave blank if you like.",
115 | "required": 0,
116 | "conditional_logic": 0,
117 | "wrapper": {
118 | "width": 75,
119 | "class": "single-line-wysiwg",
120 | "id": ""
121 | },
122 | "default_value": "Proudly powered by WordPress.<\/a>",
123 | "tabs": "visual",
124 | "toolbar": "links_only",
125 | "media_upload": 0
126 | },
127 | {
128 | "key": "field_564e3c242b477",
129 | "label": "Social",
130 | "name": "",
131 | "type": "tab",
132 | "instructions": "",
133 | "required": 0,
134 | "conditional_logic": 0,
135 | "wrapper": {
136 | "width": "",
137 | "class": "",
138 | "id": ""
139 | },
140 | "placement": "top",
141 | "endpoint": 0
142 | },
143 | {
144 | "key": "field_564e3c362b478",
145 | "label": "Twitter Handle",
146 | "name": "twitter",
147 | "type": "text",
148 | "instructions": "",
149 | "required": 0,
150 | "conditional_logic": 0,
151 | "wrapper": {
152 | "width": 50,
153 | "class": "",
154 | "id": ""
155 | },
156 | "default_value": "yulingdesigns",
157 | "placeholder": "",
158 | "prepend": "@",
159 | "append": "",
160 | "maxlength": "",
161 | "readonly": 0,
162 | "disabled": 0
163 | },
164 | {
165 | "key": "field_564e3c742b479",
166 | "label": "Instagram Username",
167 | "name": "instagram",
168 | "type": "text",
169 | "instructions": "",
170 | "required": 0,
171 | "conditional_logic": 0,
172 | "wrapper": {
173 | "width": 50,
174 | "class": "",
175 | "id": ""
176 | },
177 | "default_value": "yulingdesigns",
178 | "placeholder": "",
179 | "prepend": "",
180 | "append": "",
181 | "maxlength": "",
182 | "readonly": 0,
183 | "disabled": 0
184 | },
185 | {
186 | "key": "field_564e3c8d2b47a",
187 | "label": "Facebook Name",
188 | "name": "facebook",
189 | "type": "text",
190 | "instructions": "",
191 | "required": 0,
192 | "conditional_logic": 0,
193 | "wrapper": {
194 | "width": 50,
195 | "class": "",
196 | "id": ""
197 | },
198 | "default_value": "yulingdesigns",
199 | "placeholder": "",
200 | "prepend": "",
201 | "append": "",
202 | "maxlength": "",
203 | "readonly": 0,
204 | "disabled": 0
205 | },
206 | {
207 | "key": "field_564e3cbd2b47b",
208 | "label": "Pinterest Username",
209 | "name": "pinterest",
210 | "type": "text",
211 | "instructions": "",
212 | "required": 0,
213 | "conditional_logic": 0,
214 | "wrapper": {
215 | "width": 50,
216 | "class": "",
217 | "id": ""
218 | },
219 | "default_value": "yulingdesigns",
220 | "placeholder": "",
221 | "prepend": "",
222 | "append": "",
223 | "maxlength": "",
224 | "readonly": 0,
225 | "disabled": 0
226 | },
227 | {
228 | "key": "field_5632a3c4a4304",
229 | "label": "Collections",
230 | "name": "",
231 | "type": "tab",
232 | "instructions": "",
233 | "required": 0,
234 | "conditional_logic": 0,
235 | "wrapper": {
236 | "width": "",
237 | "class": "",
238 | "id": ""
239 | },
240 | "placement": "top",
241 | "endpoint": 0
242 | },
243 | {
244 | "key": "field_5632a3d0a4305",
245 | "label": "Concierge Text",
246 | "name": "concierge_text",
247 | "type": "wysiwyg",
248 | "instructions": "",
249 | "required": 0,
250 | "conditional_logic": 0,
251 | "wrapper": {
252 | "width": "",
253 | "class": "",
254 | "id": ""
255 | },
256 | "default_value": "",
257 | "tabs": "all",
258 | "toolbar": "text_based",
259 | "media_upload": 0
260 | }
261 | ],
262 | "location": [
263 | [
264 | {
265 | "param": "options_page",
266 | "operator": "==",
267 | "value": "acf-options-site-wide-options"
268 | }
269 | ]
270 | ],
271 | "menu_order": 0,
272 | "position": "normal",
273 | "style": "seamless",
274 | "label_placement": "top",
275 | "instruction_placement": "label",
276 | "hide_on_screen": "",
277 | "active": 1,
278 | "description": "",
279 | "modified": 1447968570
280 | }
--------------------------------------------------------------------------------
/acf-json/group_561462a992927.json:
--------------------------------------------------------------------------------
1 | {
2 | "key": "group_561462a992927",
3 | "title": "Piece Details",
4 | "fields": [
5 | {
6 | "key": "field_561462d1d95dd",
7 | "label": "Size",
8 | "name": "size",
9 | "type": "text",
10 | "instructions": "The size or dimensions of the piece, e.g. 12\" x 10\". Be consistent in their formatting.",
11 | "required": 0,
12 | "conditional_logic": 0,
13 | "wrapper": {
14 | "width": 50,
15 | "class": "",
16 | "id": ""
17 | },
18 | "default_value": "",
19 | "placeholder": "",
20 | "prepend": "",
21 | "append": "",
22 | "maxlength": "",
23 | "readonly": 0,
24 | "disabled": 0
25 | },
26 | {
27 | "key": "field_562003856afe1",
28 | "label": "Double Sided",
29 | "name": "double_sided",
30 | "type": "true_false",
31 | "instructions": "Check if the piece is double sided.",
32 | "required": 0,
33 | "conditional_logic": 0,
34 | "wrapper": {
35 | "width": 50,
36 | "class": "",
37 | "id": ""
38 | },
39 | "message": "",
40 | "default_value": 0
41 | },
42 | {
43 | "key": "field_56146396d95de",
44 | "label": "Styles of Printing",
45 | "name": "styles_of_printing",
46 | "type": "select",
47 | "instructions": "Add the options available for printing. Hold down the Command key to select multiple.",
48 | "required": 0,
49 | "conditional_logic": 0,
50 | "wrapper": {
51 | "width": 33,
52 | "class": "",
53 | "id": ""
54 | },
55 | "choices": {
56 | "Flat Printing": "Flat Printing",
57 | "Flat Printing with Foil Stamping": "Flat Printing with Foil Stamping",
58 | "Letterpress": "Letterpress",
59 | "Letterpress with Foil-Stamping": "Letterpress with Foil-Stamping",
60 | "Foil-Stamping": "Foil-Stamping"
61 | },
62 | "default_value": [],
63 | "allow_null": 0,
64 | "multiple": 1,
65 | "ui": 0,
66 | "ajax": 0,
67 | "placeholder": "",
68 | "disabled": 0,
69 | "readonly": 0
70 | },
71 | {
72 | "key": "field_5620048641221",
73 | "label": "Freeform Info",
74 | "name": "freeform_info",
75 | "type": "repeater",
76 | "instructions": "A place for information that might not be relevant to every piece.",
77 | "required": 0,
78 | "conditional_logic": 0,
79 | "wrapper": {
80 | "width": 66,
81 | "class": "",
82 | "id": ""
83 | },
84 | "min": "",
85 | "max": "",
86 | "layout": "table",
87 | "button_label": "Add Row",
88 | "sub_fields": [
89 | {
90 | "key": "field_562004ab41222",
91 | "label": "Title",
92 | "name": "title",
93 | "type": "text",
94 | "instructions": "e.g. Paper Stock",
95 | "required": 0,
96 | "conditional_logic": 0,
97 | "wrapper": {
98 | "width": 33,
99 | "class": "",
100 | "id": ""
101 | },
102 | "default_value": "",
103 | "placeholder": "",
104 | "prepend": "",
105 | "append": "",
106 | "maxlength": "",
107 | "readonly": 0,
108 | "disabled": 0
109 | },
110 | {
111 | "key": "field_562004eb41223",
112 | "label": "Value",
113 | "name": "value",
114 | "type": "text",
115 | "instructions": "e.g. Matte",
116 | "required": 0,
117 | "conditional_logic": 0,
118 | "wrapper": {
119 | "width": 66,
120 | "class": "",
121 | "id": ""
122 | },
123 | "default_value": "",
124 | "placeholder": "",
125 | "prepend": "",
126 | "append": "",
127 | "maxlength": "",
128 | "readonly": 0,
129 | "disabled": 0
130 | }
131 | ]
132 | },
133 | {
134 | "key": "field_561466fd521b7",
135 | "label": "Gallery",
136 | "name": "gallery",
137 | "type": "gallery",
138 | "instructions": "Upload the images for this piece. ",
139 | "required": 0,
140 | "conditional_logic": 0,
141 | "wrapper": {
142 | "width": 50,
143 | "class": "",
144 | "id": ""
145 | },
146 | "min": "",
147 | "max": "",
148 | "preview_size": "thumbnail",
149 | "library": "all",
150 | "min_width": "",
151 | "min_height": "",
152 | "min_size": "",
153 | "max_width": "",
154 | "max_height": "",
155 | "max_size": "",
156 | "mime_types": ""
157 | },
158 | {
159 | "key": "field_563e6c6dbeb61",
160 | "label": "Color Swatches",
161 | "name": "color_swatches",
162 | "type": "repeater",
163 | "instructions": "Upload color swatches for the piece and add a description.",
164 | "required": 0,
165 | "conditional_logic": 0,
166 | "wrapper": {
167 | "width": 50,
168 | "class": "",
169 | "id": ""
170 | },
171 | "min": "",
172 | "max": "",
173 | "layout": "table",
174 | "button_label": "Add Row",
175 | "sub_fields": [
176 | {
177 | "key": "field_563e6ce526203",
178 | "label": "Image",
179 | "name": "image",
180 | "type": "image",
181 | "instructions": "Upload a color swatch image, square format",
182 | "required": 0,
183 | "conditional_logic": 0,
184 | "wrapper": {
185 | "width": "",
186 | "class": "",
187 | "id": ""
188 | },
189 | "return_format": "url",
190 | "preview_size": "thumbnail",
191 | "library": "all",
192 | "min_width": "",
193 | "min_height": "",
194 | "min_size": "",
195 | "max_width": "",
196 | "max_height": "",
197 | "max_size": "",
198 | "mime_types": ""
199 | },
200 | {
201 | "key": "field_563e6d1d26204",
202 | "label": "Description",
203 | "name": "description",
204 | "type": "text",
205 | "instructions": "Describe the color swatch.",
206 | "required": 0,
207 | "conditional_logic": 0,
208 | "wrapper": {
209 | "width": "",
210 | "class": "",
211 | "id": ""
212 | },
213 | "default_value": "",
214 | "placeholder": "",
215 | "prepend": "",
216 | "append": "",
217 | "maxlength": "",
218 | "readonly": 0,
219 | "disabled": 0
220 | }
221 | ]
222 | },
223 | {
224 | "key": "field_561466d8d8087",
225 | "label": "Long Description",
226 | "name": "long_description",
227 | "type": "wysiwyg",
228 | "instructions": "A longer description of this piece. It should elaborate on the summary above, and can be a few paragraphs long.",
229 | "required": 0,
230 | "conditional_logic": 0,
231 | "wrapper": {
232 | "width": "",
233 | "class": "",
234 | "id": ""
235 | },
236 | "default_value": "",
237 | "tabs": "all",
238 | "toolbar": "text_based",
239 | "media_upload": 0
240 | }
241 | ],
242 | "location": [
243 | [
244 | {
245 | "param": "post_type",
246 | "operator": "==",
247 | "value": "piece"
248 | }
249 | ]
250 | ],
251 | "menu_order": 0,
252 | "position": "normal",
253 | "style": "default",
254 | "label_placement": "top",
255 | "instruction_placement": "label",
256 | "hide_on_screen": [
257 | "the_content",
258 | "custom_fields",
259 | "discussion",
260 | "comments",
261 | "author",
262 | "format",
263 | "send-trackbacks"
264 | ],
265 | "active": 1,
266 | "description": "",
267 | "modified": 1446944435
268 | }
--------------------------------------------------------------------------------
/assets/scss/utils/_normalize.scss:
--------------------------------------------------------------------------------
1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
2 |
3 | /**
4 | * 1. Set default font family to sans-serif.
5 | * 2. Prevent iOS text size adjust after orientation change, without disabling
6 | * user zoom.
7 | */
8 |
9 | html {
10 | font-family: sans-serif; /* 1 */
11 | -ms-text-size-adjust: 100%; /* 2 */
12 | -webkit-text-size-adjust: 100%; /* 2 */
13 | }
14 |
15 | /**
16 | * Remove default margin.
17 | */
18 |
19 | body {
20 | margin: 0;
21 | }
22 |
23 | /* HTML5 display definitions
24 | ========================================================================== */
25 |
26 | /**
27 | * Correct `block` display not defined for any HTML5 element in IE 8/9.
28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
29 | * Correct `block` display not defined for `main` in IE 11.
30 | */
31 |
32 | article,
33 | aside,
34 | details,
35 | figcaption,
36 | figure,
37 | footer,
38 | header,
39 | hgroup,
40 | main,
41 | nav,
42 | section,
43 | summary {
44 | display: block;
45 | }
46 |
47 | /**
48 | * 1. Correct `inline-block` display not defined in IE 8/9.
49 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
50 | */
51 |
52 | audio,
53 | canvas,
54 | progress,
55 | video {
56 | display: inline-block; /* 1 */
57 | vertical-align: baseline; /* 2 */
58 | }
59 |
60 | /**
61 | * Prevent modern browsers from displaying `audio` without controls.
62 | * Remove excess height in iOS 5 devices.
63 | */
64 |
65 | audio:not([controls]) {
66 | display: none;
67 | height: 0;
68 | }
69 |
70 | /**
71 | * Address `[hidden]` styling not present in IE 8/9/10.
72 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
73 | */
74 |
75 | [hidden],
76 | template {
77 | display: none;
78 | }
79 |
80 | /* Links
81 | ========================================================================== */
82 |
83 | /**
84 | * Remove the gray background color from active links in IE 10.
85 | */
86 |
87 | a {
88 | background: transparent;
89 | }
90 |
91 | /**
92 | * Improve readability when focused and also mouse hovered in all browsers.
93 | */
94 |
95 | a:active,
96 | a:hover {
97 | outline: 0;
98 | }
99 |
100 | /* Text-level semantics
101 | ========================================================================== */
102 |
103 | /**
104 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
105 | */
106 |
107 | abbr[title] {
108 | border-bottom: 1px dotted;
109 | }
110 |
111 | /**
112 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
113 | */
114 |
115 | b,
116 | strong {
117 | font-weight: bold;
118 | }
119 |
120 | /**
121 | * Address styling not present in Safari and Chrome.
122 | */
123 |
124 | dfn {
125 | font-style: italic;
126 | }
127 |
128 | /**
129 | * Address variable `h1` font-size and margin within `section` and `article`
130 | * contexts in Firefox 4+, Safari, and Chrome.
131 | */
132 |
133 | h1 {
134 | font-size: 2em;
135 | margin: 0.67em 0;
136 | }
137 |
138 | /**
139 | * Address styling not present in IE 8/9.
140 | */
141 |
142 | mark {
143 | background: #ff0;
144 | color: #000;
145 | }
146 |
147 | /**
148 | * Address inconsistent and variable font size in all browsers.
149 | */
150 |
151 | small {
152 | font-size: 80%;
153 | }
154 |
155 | /**
156 | * Prevent `sub` and `sup` affecting `line-height` in all browsers.
157 | */
158 |
159 | sub,
160 | sup {
161 | font-size: 75%;
162 | line-height: 0;
163 | position: relative;
164 | vertical-align: baseline;
165 | }
166 |
167 | sup {
168 | top: -0.5em;
169 | }
170 |
171 | sub {
172 | bottom: -0.25em;
173 | }
174 |
175 | /* Embedded content
176 | ========================================================================== */
177 |
178 | /**
179 | * Remove border when inside `a` element in IE 8/9/10.
180 | */
181 |
182 | img {
183 | border: 0;
184 | }
185 |
186 | /**
187 | * Correct overflow not hidden in IE 9/10/11.
188 | */
189 |
190 | svg:not(:root) {
191 | overflow: hidden;
192 | }
193 |
194 | /* Grouping content
195 | ========================================================================== */
196 |
197 | /**
198 | * Address margin not present in IE 8/9 and Safari.
199 | */
200 |
201 | figure {
202 | margin: 1em 40px;
203 | }
204 |
205 | /**
206 | * Address differences between Firefox and other browsers.
207 | */
208 |
209 | hr {
210 | -moz-box-sizing: content-box;
211 | box-sizing: content-box;
212 | height: 0;
213 | }
214 |
215 | /**
216 | * Contain overflow in all browsers.
217 | */
218 |
219 | pre {
220 | overflow: auto;
221 | }
222 |
223 | /**
224 | * Address odd `em`-unit font size rendering in all browsers.
225 | */
226 |
227 | code,
228 | kbd,
229 | pre,
230 | samp {
231 | font-family: monospace, monospace;
232 | font-size: 1em;
233 | }
234 |
235 | /* Forms
236 | ========================================================================== */
237 |
238 | /**
239 | * Known limitation: by default, Chrome and Safari on OS X allow very limited
240 | * styling of `select`, unless a `border` property is set.
241 | */
242 |
243 | /**
244 | * 1. Correct color not being inherited.
245 | * Known issue: affects color of disabled elements.
246 | * 2. Correct font properties not being inherited.
247 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
248 | */
249 |
250 | button,
251 | input,
252 | optgroup,
253 | select,
254 | textarea {
255 | color: inherit; /* 1 */
256 | font: inherit; /* 2 */
257 | margin: 0; /* 3 */
258 | }
259 |
260 | /**
261 | * Address `overflow` set to `hidden` in IE 8/9/10/11.
262 | */
263 |
264 | button {
265 | overflow: visible;
266 | }
267 |
268 | /**
269 | * Address inconsistent `text-transform` inheritance for `button` and `select`.
270 | * All other form control elements do not inherit `text-transform` values.
271 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
272 | * Correct `select` style inheritance in Firefox.
273 | */
274 |
275 | button,
276 | select {
277 | text-transform: none;
278 | }
279 |
280 | /**
281 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
282 | * and `video` controls.
283 | * 2. Correct inability to style clickable `input` types in iOS.
284 | * 3. Improve usability and consistency of cursor style between image-type
285 | * `input` and others.
286 | */
287 |
288 | button,
289 | html input[type="button"], /* 1 */
290 | input[type="reset"],
291 | input[type="submit"] {
292 | -webkit-appearance: button; /* 2 */
293 | cursor: pointer; /* 3 */
294 | }
295 |
296 | /**
297 | * Re-set default cursor for disabled elements.
298 | */
299 |
300 | button[disabled],
301 | html input[disabled] {
302 | cursor: default;
303 | }
304 |
305 | /**
306 | * Remove inner padding and border in Firefox 4+.
307 | */
308 |
309 | button::-moz-focus-inner,
310 | input::-moz-focus-inner {
311 | border: 0;
312 | padding: 0;
313 | }
314 |
315 | /**
316 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in
317 | * the UA stylesheet.
318 | */
319 |
320 | input {
321 | line-height: normal;
322 | }
323 |
324 | /**
325 | * It's recommended that you don't attempt to style these elements.
326 | * Firefox's implementation doesn't respect box-sizing, padding, or width.
327 | *
328 | * 1. Address box sizing set to `content-box` in IE 8/9/10.
329 | * 2. Remove excess padding in IE 8/9/10.
330 | */
331 |
332 | input[type="checkbox"],
333 | input[type="radio"] {
334 | box-sizing: border-box; /* 1 */
335 | padding: 0; /* 2 */
336 | }
337 |
338 | /**
339 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain
340 | * `font-size` values of the `input`, it causes the cursor style of the
341 | * decrement button to change from `default` to `text`.
342 | */
343 |
344 | input[type="number"]::-webkit-inner-spin-button,
345 | input[type="number"]::-webkit-outer-spin-button {
346 | height: auto;
347 | }
348 |
349 | /**
350 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
351 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
352 | * (include `-moz` to future-proof).
353 | */
354 |
355 | input[type="search"] {
356 | -webkit-appearance: textfield; /* 1 */
357 | -moz-box-sizing: content-box;
358 | -webkit-box-sizing: content-box; /* 2 */
359 | box-sizing: content-box;
360 | }
361 |
362 | /**
363 | * Remove inner padding and search cancel button in Safari and Chrome on OS X.
364 | * Safari (but not Chrome) clips the cancel button when the search input has
365 | * padding (and `textfield` appearance).
366 | */
367 |
368 | input[type="search"]::-webkit-search-cancel-button,
369 | input[type="search"]::-webkit-search-decoration {
370 | -webkit-appearance: none;
371 | }
372 |
373 | /**
374 | * Define consistent border, margin, and padding.
375 | */
376 |
377 | fieldset {
378 | border: 1px solid #c0c0c0;
379 | margin: 0 2px;
380 | padding: 0.35em 0.625em 0.75em;
381 | }
382 |
383 | /**
384 | * 1. Correct `color` not being inherited in IE 8/9/10/11.
385 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
386 | */
387 |
388 | legend {
389 | border: 0; /* 1 */
390 | padding: 0; /* 2 */
391 | }
392 |
393 | /**
394 | * Remove default vertical scrollbar in IE 8/9/10/11.
395 | */
396 |
397 | textarea {
398 | overflow: auto;
399 | }
400 |
401 | /**
402 | * Don't inherit the `font-weight` (applied by a rule above).
403 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
404 | */
405 |
406 | optgroup {
407 | font-weight: bold;
408 | }
409 |
410 | /* Tables
411 | ========================================================================== */
412 |
413 | /**
414 | * Remove most spacing between table cells.
415 | */
416 |
417 | table {
418 | border-collapse: collapse;
419 | border-spacing: 0;
420 | }
421 |
422 | td,
423 | th {
424 | padding: 0;
425 | }
--------------------------------------------------------------------------------
{{comment.author.name}} says
3 |