├── docs ├── _config.yml ├── img │ ├── tag-vegefoods-colorlib-gatsby.jpg │ └── tag-vegefoods-colorlib-gatsby.png └── README.md ├── .prettierignore ├── src ├── scss │ ├── bootstrap │ │ ├── utilities │ │ │ ├── _clearfix.scss │ │ │ ├── _overflow.scss │ │ │ ├── _screenreaders.scss │ │ │ ├── _visibility.scss │ │ │ ├── _shadows.scss │ │ │ ├── _float.scss │ │ │ ├── _align.scss │ │ │ ├── _background.scss │ │ │ ├── _sizing.scss │ │ │ ├── _position.scss │ │ │ ├── _embed.scss │ │ │ ├── _display.scss │ │ │ ├── _borders.scss │ │ │ ├── _text.scss │ │ │ ├── _spacing.scss │ │ │ └── _flex.scss │ │ ├── _media.scss │ │ ├── mixins │ │ │ ├── _box-shadow.scss │ │ │ ├── _size.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _visibility.scss │ │ │ ├── _lists.scss │ │ │ ├── _text-truncate.scss │ │ │ ├── _resize.scss │ │ │ ├── _float.scss │ │ │ ├── _badge.scss │ │ │ ├── _alert.scss │ │ │ ├── _nav-divider.scss │ │ │ ├── _text-emphasis.scss │ │ │ ├── _transition.scss │ │ │ ├── _text-hide.scss │ │ │ ├── _list-group.scss │ │ │ ├── _pagination.scss │ │ │ ├── _background-variant.scss │ │ │ ├── _reset-text.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _hover.scss │ │ │ ├── _table-row.scss │ │ │ ├── _image.scss │ │ │ ├── _caret.scss │ │ │ ├── _grid.scss │ │ │ ├── _grid-framework.scss │ │ │ ├── _gradients.scss │ │ │ ├── _buttons.scss │ │ │ └── _breakpoints.scss │ │ ├── _transitions.scss │ │ ├── _jumbotron.scss │ │ ├── bootstrap-reboot.scss │ │ ├── _utilities.scss │ │ ├── _root.scss │ │ ├── bootstrap-grid.scss │ │ ├── _progress.scss │ │ ├── bootstrap.scss │ │ ├── _mixins.scss │ │ ├── _toasts.scss │ │ ├── _code.scss │ │ ├── _spinners.scss │ │ ├── _close.scss │ │ ├── _grid.scss │ │ ├── _badge.scss │ │ ├── _images.scss │ │ ├── _alert.scss │ │ ├── _breadcrumb.scss │ │ ├── _pagination.scss │ │ ├── _nav.scss │ │ ├── _type.scss │ │ ├── _functions.scss │ │ ├── _tooltip.scss │ │ ├── _buttons.scss │ │ ├── _list-group.scss │ │ ├── _print.scss │ │ ├── _button-group.scss │ │ ├── _tables.scss │ │ ├── _dropdown.scss │ │ ├── _popover.scss │ │ └── _carousel.scss │ ├── css │ │ ├── ajax-loader.gif │ │ ├── owl.video.play.png │ │ ├── owl.theme.default.min.css │ │ ├── flaticon.css │ │ ├── jquery.timepicker.css │ │ └── owl.carousel.min.css │ └── fonts │ │ ├── icomoon │ │ ├── icomoon.eot │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ │ ├── flaticon │ │ ├── font │ │ │ ├── Flaticon.eot │ │ │ ├── Flaticon.ttf │ │ │ ├── Flaticon.woff │ │ │ ├── Flaticon.woff2 │ │ │ ├── flaticon.css │ │ │ └── _flaticon.scss │ │ ├── license │ │ │ └── license.pdf │ │ └── backup.txt │ │ ├── ionicons │ │ └── fonts │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.ttf │ │ │ ├── ionicons.woff │ │ │ └── ionicons.woff2 │ │ └── open-iconic │ │ ├── open-iconic.eot │ │ ├── open-iconic.otf │ │ ├── open-iconic.ttf │ │ └── open-iconic.woff ├── images │ ├── gatsby-icon.png │ └── gatsby-astronaut.png ├── components │ ├── shop │ │ ├── buybutton │ │ │ ├── index.js │ │ │ └── ShopifyBuyButton.js │ │ └── product_form │ │ │ └── variant_selector │ │ │ └── index.js │ ├── header.js │ ├── common │ │ ├── map │ │ │ └── index.js │ │ ├── legacy │ │ │ ├── range.js │ │ │ ├── google-map.js │ │ │ └── waypoint │ │ │ │ └── index.js │ │ └── blog │ │ │ ├── categories.js │ │ │ ├── tagcloud.js │ │ │ └── recentblog.js │ ├── image.js │ ├── newsletter │ │ └── index.js │ ├── topbar │ │ └── index.js │ ├── partners │ │ └── index.js │ └── navbar │ │ └── index.js ├── pages │ ├── 404.js │ └── page-2.js ├── context │ └── StoreContext.js ├── layouts │ └── index.js └── html.js ├── static ├── favicon.ico ├── images │ ├── about.jpg │ ├── bg_1.jpg │ ├── bg_2.jpg │ ├── bg_3.jpg │ ├── pic01.jpg │ ├── category.jpg │ ├── image_1.jpg │ ├── image_2.jpg │ ├── image_3.jpg │ ├── image_4.jpg │ ├── image_5.jpg │ ├── image_6.jpg │ ├── person_1.jpg │ ├── person_2.jpg │ ├── person_3.jpg │ ├── person_4.jpg │ ├── Gutenberg.jpg │ ├── category-1.jpg │ ├── category-2.jpg │ ├── category-3.jpg │ ├── category-4.jpg │ ├── partner-1.png │ ├── partner-2.png │ ├── partner-3.png │ ├── partner-4.png │ ├── partner-5.png │ ├── product-1.jpg │ ├── product-10.jpg │ ├── product-11.jpg │ ├── product-12.jpg │ ├── product-2.jpg │ ├── product-3.jpg │ ├── product-4.jpg │ ├── product-5.jpg │ ├── product-6.jpg │ ├── product-7.jpg │ ├── product-8.jpg │ ├── product-9.jpg │ ├── movable-type.jpg │ ├── Printing-press.png │ ├── Static-vs-Dynamic.jpg │ └── no-image.svg ├── img │ ├── favicon.ico │ ├── apple-touch-icon.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ └── close.svg ├── admin │ ├── site_metadata.json │ ├── mailchimp_options.json │ ├── blog_options.json │ └── shop_options.json └── js │ ├── range.js │ ├── jquery.animateNumber.min.js │ └── google-map.js ├── .prettierrc ├── gatsby-ssr.js ├── netlify.toml ├── gatsby-node.js ├── content └── posts │ ├── 2015-05-06-my-second-post.md │ └── 2015-05-28-markdown.md ├── LICENSE ├── .gitignore ├── gatsby-shopifystore.js ├── gatsby-browser.js ├── package.json ├── README.md └── gatsby-config.js /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .cache 2 | package.json 3 | package-lock.json 4 | public 5 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/images/about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/about.jpg -------------------------------------------------------------------------------- /static/images/bg_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/bg_1.jpg -------------------------------------------------------------------------------- /static/images/bg_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/bg_2.jpg -------------------------------------------------------------------------------- /static/images/bg_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/bg_3.jpg -------------------------------------------------------------------------------- /static/images/pic01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/pic01.jpg -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/img/favicon.ico -------------------------------------------------------------------------------- /src/images/gatsby-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/images/gatsby-icon.png -------------------------------------------------------------------------------- /static/images/category.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/category.jpg -------------------------------------------------------------------------------- /static/images/image_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_1.jpg -------------------------------------------------------------------------------- /static/images/image_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_2.jpg -------------------------------------------------------------------------------- /static/images/image_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_3.jpg -------------------------------------------------------------------------------- /static/images/image_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_4.jpg -------------------------------------------------------------------------------- /static/images/image_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_5.jpg -------------------------------------------------------------------------------- /static/images/image_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/image_6.jpg -------------------------------------------------------------------------------- /static/images/person_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/person_1.jpg -------------------------------------------------------------------------------- /static/images/person_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/person_2.jpg -------------------------------------------------------------------------------- /static/images/person_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/person_3.jpg -------------------------------------------------------------------------------- /static/images/person_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/person_4.jpg -------------------------------------------------------------------------------- /src/scss/css/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/css/ajax-loader.gif -------------------------------------------------------------------------------- /static/images/Gutenberg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/Gutenberg.jpg -------------------------------------------------------------------------------- /static/images/category-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/category-1.jpg -------------------------------------------------------------------------------- /static/images/category-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/category-2.jpg -------------------------------------------------------------------------------- /static/images/category-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/category-3.jpg -------------------------------------------------------------------------------- /static/images/category-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/category-4.jpg -------------------------------------------------------------------------------- /static/images/partner-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/partner-1.png -------------------------------------------------------------------------------- /static/images/partner-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/partner-2.png -------------------------------------------------------------------------------- /static/images/partner-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/partner-3.png -------------------------------------------------------------------------------- /static/images/partner-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/partner-4.png -------------------------------------------------------------------------------- /static/images/partner-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/partner-5.png -------------------------------------------------------------------------------- /static/images/product-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-1.jpg -------------------------------------------------------------------------------- /static/images/product-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-10.jpg -------------------------------------------------------------------------------- /static/images/product-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-11.jpg -------------------------------------------------------------------------------- /static/images/product-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-12.jpg -------------------------------------------------------------------------------- /static/images/product-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-2.jpg -------------------------------------------------------------------------------- /static/images/product-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-3.jpg -------------------------------------------------------------------------------- /static/images/product-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-4.jpg -------------------------------------------------------------------------------- /static/images/product-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-5.jpg -------------------------------------------------------------------------------- /static/images/product-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-6.jpg -------------------------------------------------------------------------------- /static/images/product-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-7.jpg -------------------------------------------------------------------------------- /static/images/product-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-8.jpg -------------------------------------------------------------------------------- /static/images/product-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/product-9.jpg -------------------------------------------------------------------------------- /src/images/gatsby-astronaut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/images/gatsby-astronaut.png -------------------------------------------------------------------------------- /src/scss/css/owl.video.play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/css/owl.video.play.png -------------------------------------------------------------------------------- /static/images/movable-type.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/movable-type.jpg -------------------------------------------------------------------------------- /static/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/img/apple-touch-icon.png -------------------------------------------------------------------------------- /static/images/Printing-press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/Printing-press.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": false, 4 | "singleQuote": false, 5 | "tabWidth": 2, 6 | "trailingComma": "es5" 7 | } 8 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | display: flex; 3 | align-items: flex-start; 4 | } 5 | 6 | .media-body { 7 | flex: 1; 8 | } 9 | -------------------------------------------------------------------------------- /src/scss/fonts/icomoon/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/icomoon/icomoon.eot -------------------------------------------------------------------------------- /src/scss/fonts/icomoon/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/icomoon/icomoon.ttf -------------------------------------------------------------------------------- /src/scss/fonts/icomoon/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/icomoon/icomoon.woff -------------------------------------------------------------------------------- /static/images/Static-vs-Dynamic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/images/Static-vs-Dynamic.jpg -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_box-shadow.scss: -------------------------------------------------------------------------------- 1 | @mixin box-shadow($shadow...) { 2 | @if $enable-shadows { 3 | box-shadow: $shadow; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /static/img/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/img/android-chrome-192x192.png -------------------------------------------------------------------------------- /static/img/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/static/img/android-chrome-512x512.png -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height: $width) { 4 | width: $width; 5 | height: $height; 6 | } 7 | -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/font/Flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/flaticon/font/Flaticon.eot -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/font/Flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/flaticon/font/Flaticon.ttf -------------------------------------------------------------------------------- /docs/img/tag-vegefoods-colorlib-gatsby.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/docs/img/tag-vegefoods-colorlib-gatsby.jpg -------------------------------------------------------------------------------- /docs/img/tag-vegefoods-colorlib-gatsby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/docs/img/tag-vegefoods-colorlib-gatsby.png -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/font/Flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/flaticon/font/Flaticon.woff -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/font/Flaticon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/flaticon/font/Flaticon.woff2 -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/license/license.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/flaticon/license/license.pdf -------------------------------------------------------------------------------- /src/scss/fonts/ionicons/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/ionicons/fonts/ionicons.eot -------------------------------------------------------------------------------- /src/scss/fonts/ionicons/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/ionicons/fonts/ionicons.ttf -------------------------------------------------------------------------------- /src/scss/fonts/ionicons/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/ionicons/fonts/ionicons.woff -------------------------------------------------------------------------------- /src/scss/fonts/open-iconic/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/open-iconic/open-iconic.eot -------------------------------------------------------------------------------- /src/scss/fonts/open-iconic/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/open-iconic/open-iconic.otf -------------------------------------------------------------------------------- /src/scss/fonts/open-iconic/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/open-iconic/open-iconic.ttf -------------------------------------------------------------------------------- /src/scss/fonts/open-iconic/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/open-iconic/open-iconic.woff -------------------------------------------------------------------------------- /src/scss/fonts/ionicons/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sekmet/vegefoods-colorlib-gatsby-shopify/HEAD/src/scss/fonts/ionicons/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_overflow.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $value in $overflows { 4 | .overflow-#{$value} { overflow: $value !important; } 5 | } 6 | -------------------------------------------------------------------------------- /src/components/shop/buybutton/index.js: -------------------------------------------------------------------------------- 1 | import Loadable from "@loadable/component" 2 | 3 | const LoadableBuyButton = Loadable(() => import("./ShopifyBuyButton")) 4 | 5 | export default LoadableBuyButton -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Visibility 4 | 5 | @mixin invisible($visibility) { 6 | visibility: $visibility !important; 7 | } 8 | -------------------------------------------------------------------------------- /gatsby-ssr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/ssr-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only { 6 | @include sr-only(); 7 | } 8 | 9 | .sr-only-focusable { 10 | @include sr-only-focusable(); 11 | } 12 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Visibility utilities 3 | // 4 | 5 | .visible { 6 | @include invisible(visible); 7 | } 8 | 9 | .invisible { 10 | @include invisible(hidden); 11 | } 12 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_float.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @mixin float-left { 4 | float: left !important; 5 | } 6 | @mixin float-right { 7 | float: right !important; 8 | } 9 | @mixin float-none { 10 | float: none !important; 11 | } 12 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_badge.scss: -------------------------------------------------------------------------------- 1 | @mixin badge-variant($bg) { 2 | color: color-yiq($bg); 3 | background-color: $bg; 4 | 5 | @at-root a#{&} { 6 | @include hover-focus { 7 | color: color-yiq($bg); 8 | background-color: darken($bg, 10%); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_shadows.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .shadow-sm { box-shadow: $box-shadow-sm !important; } 4 | .shadow { box-shadow: $box-shadow !important; } 5 | .shadow-lg { box-shadow: $box-shadow-lg !important; } 6 | .shadow-none { box-shadow: none !important; } 7 | -------------------------------------------------------------------------------- /src/pages/404.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | import SEO from "../components/seo" 4 | 5 | const NotFoundPage = () => ( 6 | <> 7 | 8 |

NOT FOUND

9 |

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

10 | 11 | ) 12 | 13 | export default NotFoundPage 14 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-variant($background, $border, $color) { 2 | color: $color; 3 | @include gradient-bg($background); 4 | border-color: $border; 5 | 6 | hr { 7 | border-top-color: darken($border, 5%); 8 | } 9 | 10 | .alert-link { 11 | color: darken($color, 10%); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) { 6 | height: 0; 7 | margin: $margin-y 0; 8 | overflow: hidden; 9 | border-top: 1px solid $color; 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/page-2.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { Link } from "gatsby" 3 | 4 | import SEO from "../components/seo" 5 | 6 | const SecondPage = () => ( 7 | <> 8 | 9 |

Hi from the second page

10 |

Welcome to page 2

11 | Go back to the homepage 12 | 13 | ) 14 | 15 | export default SecondPage 16 | -------------------------------------------------------------------------------- /static/admin/site_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "GatsbyJS + Netlify Starter", 3 | "poweredBy": "By Open4G Solutions", 4 | "description": "This barebones starter ships with the main Gatsby configuration files you might need.", 5 | "author": "@2600hz", 6 | "siteUrl": "https://editorial-html5up-gatsby.netlify.com/", 7 | "siteLogo": "https://editorial-html5up-gatsby.netlify.com/logo.jpg" 8 | } -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_float.scss: -------------------------------------------------------------------------------- 1 | @each $breakpoint in map-keys($grid-breakpoints) { 2 | @include media-breakpoint-up($breakpoint) { 3 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 4 | 5 | .float#{$infix}-left { @include float-left; } 6 | .float#{$infix}-right { @include float-right; } 7 | .float#{$infix}-none { @include float-none; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Typography 4 | 5 | @mixin text-emphasis-variant($parent, $color) { 6 | #{$parent} { 7 | color: $color !important; 8 | } 9 | a#{$parent} { 10 | @include hover-focus { 11 | color: darken($color, $emphasized-link-hover-darken-percentage) !important; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /static/admin/mailchimp_options.json: -------------------------------------------------------------------------------- 1 | { 2 | "mailchimpListEndpoint": "https://open4g.us4.list-manage.com/subscribe/post?u=2b5f192f4de6d452a6d0c462a&id=846d5086bb", 3 | "subscribeFormClassname": "subscribe-form", 4 | "subscribeInputClassname": "form-control", 5 | "subscribeInputPlaceholder": "Your email address", 6 | "subscribeSubmitClassname": "submit px-3", 7 | "subscribeSubmitPlaceholder": "Subscribe" 8 | } -------------------------------------------------------------------------------- /src/scss/bootstrap/_transitions.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-no-qualifying-type 2 | 3 | .fade { 4 | @include transition($transition-fade); 5 | 6 | &:not(.show) { 7 | opacity: 0; 8 | } 9 | } 10 | 11 | .collapse { 12 | &:not(.show) { 13 | display: none; 14 | } 15 | } 16 | 17 | .collapsing { 18 | position: relative; 19 | height: 0; 20 | overflow: hidden; 21 | @include transition($transition-collapse); 22 | } 23 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | .jumbotron { 2 | padding: $jumbotron-padding ($jumbotron-padding / 2); 3 | margin-bottom: $jumbotron-padding; 4 | background-color: $jumbotron-bg; 5 | @include border-radius($border-radius-lg); 6 | 7 | @include media-breakpoint-up(sm) { 8 | padding: ($jumbotron-padding * 2) $jumbotron-padding; 9 | } 10 | } 11 | 12 | .jumbotron-fluid { 13 | padding-right: 0; 14 | padding-left: 0; 15 | @include border-radius(0); 16 | } 17 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_align.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | .align-baseline { vertical-align: baseline !important; } // Browser default 4 | .align-top { vertical-align: top !important; } 5 | .align-middle { vertical-align: middle !important; } 6 | .align-bottom { vertical-align: bottom !important; } 7 | .align-text-bottom { vertical-align: text-bottom !important; } 8 | .align-text-top { vertical-align: text-top !important; } 9 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_transition.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable property-blacklist 2 | @mixin transition($transition...) { 3 | @if $enable-transitions { 4 | @if length($transition) == 0 { 5 | transition: $transition-base; 6 | } @else { 7 | transition: $transition; 8 | } 9 | } 10 | 11 | @if $enable-prefers-reduced-motion-media-query { 12 | @media screen and (prefers-reduced-motion: reduce) { 13 | transition: none; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_text-hide.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | @mixin text-hide($ignore-warning: false) { 3 | // stylelint-disable-next-line font-family-no-missing-generic-family-keyword 4 | font: 0/0 a; 5 | color: transparent; 6 | text-shadow: none; 7 | background-color: transparent; 8 | border: 0; 9 | 10 | @if ($ignore-warning != true) { 11 | @warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5."; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/scss/bootstrap/bootstrap-reboot.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.2.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | 9 | @import "functions"; 10 | @import "variables"; 11 | @import "mixins"; 12 | @import "reboot"; 13 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $color, $value in $theme-colors { 4 | @include bg-variant(".bg-#{$color}", $value); 5 | } 6 | 7 | @if $enable-gradients { 8 | @each $color, $value in $theme-colors { 9 | @include bg-gradient-variant(".bg-gradient-#{$color}", $value); 10 | } 11 | } 12 | 13 | .bg-white { 14 | background-color: $white !important; 15 | } 16 | 17 | .bg-transparent { 18 | background-color: transparent !important; 19 | } 20 | -------------------------------------------------------------------------------- /static/admin/blog_options.json: -------------------------------------------------------------------------------- 1 | { 2 | "basePath": "/blog", 3 | "articlePath": false, 4 | "blogTagline": "My Blogify Articles", 5 | "readmoreBtnlabel": "Read more", 6 | "siteMetadata": false, 7 | "metaTitleTpl": "My Gatsby Blogify - Open4G Media", 8 | "metaDescriptionTpl": "Gatsby is a free and open source framework based on React that helps developers build blazing fast websites and apps", 9 | "articlesTplPath": "./src/templates/articles/index.js", 10 | "articleTplPath": "./src/components/article/index.js" 11 | } -------------------------------------------------------------------------------- /src/scss/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/align"; 2 | @import "utilities/background"; 3 | @import "utilities/borders"; 4 | @import "utilities/clearfix"; 5 | @import "utilities/display"; 6 | @import "utilities/embed"; 7 | @import "utilities/flex"; 8 | @import "utilities/float"; 9 | @import "utilities/overflow"; 10 | @import "utilities/position"; 11 | @import "utilities/screenreaders"; 12 | @import "utilities/shadows"; 13 | @import "utilities/sizing"; 14 | @import "utilities/spacing"; 15 | @import "utilities/text"; 16 | @import "utilities/visibility"; 17 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | &.list-group-item-action { 9 | @include hover-focus { 10 | color: $color; 11 | background-color: darken($background, 5%); 12 | } 13 | 14 | &.active { 15 | color: $white; 16 | background-color: $color; 17 | border-color: $color; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { 4 | .page-link { 5 | padding: $padding-y $padding-x; 6 | font-size: $font-size; 7 | line-height: $line-height; 8 | } 9 | 10 | .page-item { 11 | &:first-child { 12 | .page-link { 13 | @include border-left-radius($border-radius); 14 | } 15 | } 16 | &:last-child { 17 | .page-link { 18 | @include border-right-radius($border-radius); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Contextual backgrounds 4 | 5 | @mixin bg-variant($parent, $color) { 6 | #{$parent} { 7 | background-color: $color !important; 8 | } 9 | a#{$parent}, 10 | button#{$parent} { 11 | @include hover-focus { 12 | background-color: darken($color, 10%) !important; 13 | } 14 | } 15 | } 16 | 17 | @mixin bg-gradient-variant($parent, $color) { 18 | #{$parent} { 19 | background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_sizing.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Width and height 4 | 5 | @each $prop, $abbrev in (width: w, height: h) { 6 | @each $size, $length in $sizes { 7 | .#{$abbrev}-#{$size} { #{$prop}: $length !important; } 8 | } 9 | } 10 | 11 | .mw-100 { max-width: 100% !important; } 12 | .mh-100 { max-height: 100% !important; } 13 | 14 | // Viewport additional helpers 15 | 16 | .min-vw-100 { min-width: 100vw !important; } 17 | .min-vh-100 { min-height: 100vh !important; } 18 | 19 | .vw-100 { width: 100vw !important; } 20 | .vh-100 { height: 100vh !important; } 21 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "public/" 3 | command = "gatsby build" 4 | [build.environment] 5 | YARN_VERSION = "1.17.3" 6 | YARN_FLAGS = "--no-ignore-optional" 7 | [template.environment] 8 | GATSBY_SHOP_NAME = "Your Shopify Shop name" 9 | GATSBY_SHOPIFY_ACCESS_TOKEN = "Your Shopify API access token" 10 | GOOGLE_FONTS_API_KEY = "Your Google Fonts API Key (optional)" 11 | GATSBY_ALGOLIA_APP_ID = "You Algolia App ID" 12 | GATSBY_ALGOLIA_SEARCH_KEY = "You Algolia API Search Key" 13 | GATSBY_ALGOLIA_ADMIN_KEY = "You Algolia API Admin Key" 14 | MAILCHIMP_LIST_ENDPOINT = "Your Mailchimp List Endpoint Url" 15 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size or word-wrap. 4 | font-style: normal; 5 | font-weight: $font-weight-normal; 6 | line-height: $line-height-base; 7 | text-align: left; // Fallback for where `start` is not supported 8 | text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties 9 | text-decoration: none; 10 | text-shadow: none; 11 | text-transform: none; 12 | letter-spacing: normal; 13 | word-break: normal; 14 | word-spacing: normal; 15 | white-space: normal; 16 | line-break: auto; 17 | } 18 | -------------------------------------------------------------------------------- /gatsby-node.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's Node APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/node-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | const path = require('path') 9 | 10 | exports.onCreateWebpackConfig = ({ stage, actions, plugins }) => { 11 | 12 | actions.setWebpackConfig({ 13 | resolve: { 14 | alias: { 15 | components: path.resolve(__dirname, 'src/components'), 16 | templates: path.resolve(__dirname, 'src/templates'), 17 | scss: path.resolve(__dirname, 'src/scss'), 18 | }, 19 | }, 20 | }) 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_position.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Common values 4 | @each $position in $positions { 5 | .position-#{$position} { position: $position !important; } 6 | } 7 | 8 | // Shorthand 9 | 10 | .fixed-top { 11 | position: fixed; 12 | top: 0; 13 | right: 0; 14 | left: 0; 15 | z-index: $zindex-fixed; 16 | } 17 | 18 | .fixed-bottom { 19 | position: fixed; 20 | right: 0; 21 | bottom: 0; 22 | left: 0; 23 | z-index: $zindex-fixed; 24 | } 25 | 26 | .sticky-top { 27 | @supports (position: sticky) { 28 | position: sticky; 29 | top: 0; 30 | z-index: $zindex-sticky; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_root.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | // Custom variable values only support SassScript inside `#{}`. 3 | @each $color, $value in $colors { 4 | --#{$color}: #{$value}; 5 | } 6 | 7 | @each $color, $value in $theme-colors { 8 | --#{$color}: #{$value}; 9 | } 10 | 11 | @each $bp, $value in $grid-breakpoints { 12 | --breakpoint-#{$bp}: #{$value}; 13 | } 14 | 15 | // Use `inspect` for lists so that quoted items keep the quotes. 16 | // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 17 | --font-family-sans-serif: #{inspect($font-family-sans-serif)}; 18 | --font-family-monospace: #{inspect($font-family-monospace)}; 19 | } 20 | -------------------------------------------------------------------------------- /src/scss/bootstrap/bootstrap-grid.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grid v4.2.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | html { 9 | box-sizing: border-box; 10 | -ms-overflow-style: scrollbar; 11 | } 12 | 13 | *, 14 | *::before, 15 | *::after { 16 | box-sizing: inherit; 17 | } 18 | 19 | @import "functions"; 20 | @import "variables"; 21 | 22 | @import "mixins/breakpoints"; 23 | @import "mixins/grid-framework"; 24 | @import "mixins/grid"; 25 | 26 | @import "grid"; 27 | @import "utilities/display"; 28 | @import "utilities/flex"; 29 | @import "utilities/spacing"; 30 | -------------------------------------------------------------------------------- /src/context/StoreContext.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Client from 'shopify-buy' 3 | 4 | const client = Client.buildClient({ 5 | storefrontAccessToken: process.env.GATSBY_SHOPIFY_ACCESS_TOKEN ? process.env.GATSBY_SHOPIFY_ACCESS_TOKEN : process.env.SHOPIFY_ACCESS_TOKEN, 6 | domain: `${process.env.GATSBY_SHOP_NAME ? process.env.GATSBY_SHOP_NAME : process.env.SHOP_NAME}.myshopify.com`, 7 | }) 8 | 9 | export const defaultStoreContext = { 10 | client, 11 | adding: false, 12 | checkout: { lineItems: [] }, 13 | products: [], 14 | shop: {}, 15 | addVariantToCart: () => {}, 16 | removeLineItem: () => {}, 17 | updateLineItem: () => {}, 18 | } 19 | 20 | const StoreContext = React.createContext(defaultStoreContext) 21 | 22 | export default StoreContext 23 | -------------------------------------------------------------------------------- /static/img/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/backup.txt: -------------------------------------------------------------------------------- 1 | eyIxIjp7IklEIjoxLCJuYW1lIjoiTXkgaWNvbnMgY29sbGVjdGlvbiIsImJvb2ttYXJrX2lkIjoiNjVwcG04eDViMTIwMDAwMCIsImNyZWF0ZWQiOm51bGwsInVwZGF0ZWQiOjE1NjMzNjcxMTMsImFjdGl2ZSI6MSwic291cmNlIjoibG9jYWwiLCJvcmRlciI6MCwiY29sb3IiOiIwMDAwMDAiLCJzdGF0dXMiOjF9LCI2NXBwbTh4NWIxMjAwMDAwIjpbeyJpZCI6Njc5NzIwLCJ0ZWFtIjowLCJuYW1lIjoiYm94IiwiY29sb3IiOiIjMDAwMDAwIiwicHJlbWl1bSI6MCwic29ydCI6Mn0seyJpZCI6ODA5NDk4LCJ0ZWFtIjowLCJuYW1lIjoiYXdhcmQiLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0IjozfSx7ImlkIjo5NTAyOTksInRlYW0iOjAsIm5hbWUiOiJjdXN0b21lci1zZXJ2aWNlIiwiY29sb3IiOiIjMDAwMDAwIiwicHJlbWl1bSI6MCwic29ydCI6NH0seyJpZCI6MTM1NDg0LCJ0ZWFtIjowLCJuYW1lIjoic2FsYWQiLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0Ijo1fSx7ImlkIjo3MDYxMzMsInRlYW0iOjAsIm5hbWUiOiJkaWV0IiwiY29sb3IiOiIjMDAwMDAwIiwicHJlbWl1bSI6MCwic29ydCI6Nn0seyJpZCI6NDExNzYzLCJ0ZWFtIjowLCJuYW1lIjoic2hpcHBlZCIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjF9XX0= -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-radius($radius: $border-radius) { 4 | @if $enable-rounded { 5 | border-radius: $radius; 6 | } 7 | } 8 | 9 | @mixin border-top-radius($radius) { 10 | @if $enable-rounded { 11 | border-top-left-radius: $radius; 12 | border-top-right-radius: $radius; 13 | } 14 | } 15 | 16 | @mixin border-right-radius($radius) { 17 | @if $enable-rounded { 18 | border-top-right-radius: $radius; 19 | border-bottom-right-radius: $radius; 20 | } 21 | } 22 | 23 | @mixin border-bottom-radius($radius) { 24 | @if $enable-rounded { 25 | border-bottom-right-radius: $radius; 26 | border-bottom-left-radius: $radius; 27 | } 28 | } 29 | 30 | @mixin border-left-radius($radius) { 31 | @if $enable-rounded { 32 | border-top-left-radius: $radius; 33 | border-bottom-left-radius: $radius; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /static/admin/shop_options.json: -------------------------------------------------------------------------------- 1 | { 2 | "basePath": "/shop", 3 | "productPath": "/product", 4 | "tagPath": false, 5 | "shopTagline": "Shopify Store", 6 | "shopBtnlabel": "Learn more", 7 | "shopCurrency": "USD", 8 | "shopMetaTitleTpl": "A Lightning Fast Shopify Store", 9 | "shopMetaDescriptionTpl": "Specialty store for every thing!", 10 | "tagMetaTitleTpl": "Best %SHOPIFYPRODUCTTAG% products you find at %STORENAME%", 11 | "tagMetaDescriptionTpl": "%STORENAME% store specialty for %SHOPIFYPRODUCTTAG%.", 12 | "itemMetaTitleTpl": "Buy %SHOPIFYPRODUCTNAME% - %STORENAME%", 13 | "itemMetaDescriptionTpl": "Specialty store for %SHOPIFYPRODUCTTAG%. Who compares purchase in %STORENAME%. Pay a visit!", 14 | "collectionTplPath": "./src/components/shop/bytag.js", 15 | "productsTplPath": "./src/templates/shop/index.js", 16 | "productTplPath": "./src/components/shop/product.js", 17 | "verbose": true 18 | } -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Only display content to screen readers 2 | // 3 | // See: https://a11yproject.com/posts/how-to-hide-content/ 4 | // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ 5 | 6 | @mixin sr-only { 7 | position: absolute; 8 | width: 1px; 9 | height: 1px; 10 | padding: 0; 11 | overflow: hidden; 12 | clip: rect(0, 0, 0, 0); 13 | white-space: nowrap; 14 | border: 0; 15 | } 16 | 17 | // Use in conjunction with .sr-only to only display content when it's focused. 18 | // 19 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 20 | // 21 | // Credit: HTML5 Boilerplate 22 | 23 | @mixin sr-only-focusable { 24 | &:active, 25 | &:focus { 26 | position: static; 27 | width: auto; 28 | height: auto; 29 | overflow: visible; 30 | clip: auto; 31 | white-space: normal; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/components/header.js: -------------------------------------------------------------------------------- 1 | import { Link } from "gatsby" 2 | import PropTypes from "prop-types" 3 | import React from "react" 4 | 5 | const Header = ({ siteTitle }) => ( 6 |
12 |
19 |

20 | 27 | {siteTitle} 28 | 29 |

30 |
31 |
32 | ) 33 | 34 | Header.propTypes = { 35 | siteTitle: PropTypes.string, 36 | } 37 | 38 | Header.defaultProps = { 39 | siteTitle: ``, 40 | } 41 | 42 | export default Header 43 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_hover.scss: -------------------------------------------------------------------------------- 1 | // Hover mixin and `$enable-hover-media-query` are deprecated. 2 | // 3 | // Originally added during our alphas and maintained during betas, this mixin was 4 | // designed to prevent `:hover` stickiness on iOS-an issue where hover styles 5 | // would persist after initial touch. 6 | // 7 | // For backward compatibility, we've kept these mixins and updated them to 8 | // always return their regular pseudo-classes instead of a shimmed media query. 9 | // 10 | // Issue: https://github.com/twbs/bootstrap/issues/25195 11 | 12 | @mixin hover { 13 | &:hover { @content; } 14 | } 15 | 16 | @mixin hover-focus { 17 | &:hover, 18 | &:focus { 19 | @content; 20 | } 21 | } 22 | 23 | @mixin plain-hover-focus { 24 | &, 25 | &:hover, 26 | &:focus { 27 | @content; 28 | } 29 | } 30 | 31 | @mixin hover-focus-active { 32 | &:hover, 33 | &:focus, 34 | &:active { 35 | @content; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background, $border: null) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table-#{$state} { 7 | &, 8 | > th, 9 | > td { 10 | background-color: $background; 11 | } 12 | 13 | @if $border != null { 14 | th, 15 | td, 16 | thead th, 17 | tbody + tbody { 18 | border-color: $border; 19 | } 20 | } 21 | } 22 | 23 | // Hover states for `.table-hover` 24 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 25 | .table-hover { 26 | $hover-background: darken($background, 5%); 27 | 28 | .table-#{$state} { 29 | @include hover { 30 | background-color: $hover-background; 31 | 32 | > td, 33 | > th { 34 | background-color: $hover-background; 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_progress.scss: -------------------------------------------------------------------------------- 1 | @keyframes progress-bar-stripes { 2 | from { background-position: $progress-height 0; } 3 | to { background-position: 0 0; } 4 | } 5 | 6 | .progress { 7 | display: flex; 8 | height: $progress-height; 9 | overflow: hidden; // force rounded corners by cropping it 10 | font-size: $progress-font-size; 11 | background-color: $progress-bg; 12 | @include border-radius($progress-border-radius); 13 | @include box-shadow($progress-box-shadow); 14 | } 15 | 16 | .progress-bar { 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: center; 20 | color: $progress-bar-color; 21 | text-align: center; 22 | white-space: nowrap; 23 | background-color: $progress-bar-bg; 24 | @include transition($progress-bar-transition); 25 | } 26 | 27 | .progress-bar-striped { 28 | @include gradient-striped(); 29 | background-size: $progress-height $progress-height; 30 | } 31 | 32 | .progress-bar-animated { 33 | animation: progress-bar-stripes $progress-bar-animation-timing; 34 | } 35 | -------------------------------------------------------------------------------- /src/scss/css/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-theme .owl-dots, 7 | .owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent} 8 | .owl-theme .owl-nav{margin-top:10px} 9 | .owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px;position: absolute;} 10 | .owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none} 11 | .owl-theme .owl-nav .disabled{opacity:.5;cursor:default} 12 | .owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px} 13 | .owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1} 14 | .owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px} 15 | .owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /src/scss/bootstrap/utilities/_embed.scss: -------------------------------------------------------------------------------- 1 | // Credit: Nicolas Gallagher and SUIT CSS. 2 | 3 | .embed-responsive { 4 | position: relative; 5 | display: block; 6 | width: 100%; 7 | padding: 0; 8 | overflow: hidden; 9 | 10 | &::before { 11 | display: block; 12 | content: ""; 13 | } 14 | 15 | .embed-responsive-item, 16 | iframe, 17 | embed, 18 | object, 19 | video { 20 | position: absolute; 21 | top: 0; 22 | bottom: 0; 23 | left: 0; 24 | width: 100%; 25 | height: 100%; 26 | border: 0; 27 | } 28 | } 29 | 30 | @each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios { 31 | $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1); 32 | $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2); 33 | 34 | .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} { 35 | &::before { 36 | padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /content/posts/2015-05-06-my-second-post.md: -------------------------------------------------------------------------------- 1 | --- 2 | templateKey: post 3 | title: My Second Post! 4 | date: "2015-05-06T23:46:37.121Z" 5 | layout: post 6 | path: "/my-second-post/" 7 | category: FrontEnd 8 | editorpick: no 9 | tags: ["Markdown", "Emoji", "Chess"] 10 | description: "Civil society; save lives pathway to a better life public-private partnerships solution, tackle, protect UNHCR social movement Jane Addams sustainable campaign respond equality." 11 | tagline: "" 12 | seo: 13 | title: My Second Post! 14 | description: "Markdown is a lightweight markup language that you can use to add formatting elements to plaintext text documents. Created by John Gruber in 2004, Markdown is now one of the world’s most popular markup language." 15 | --- 16 | 17 | Wow! I love blogging so much already. 18 | 19 | Did you know that "despite its name, salted duck eggs can also be made from chicken eggs, though the taste and texture will be somewhat different, and the egg yolk will be less rich."? ([Wikipedia Link](http://en.wikipedia.org/wiki/Salted_duck_egg)) 20 | 21 | Yeah, I didn't either. 22 | -------------------------------------------------------------------------------- /src/components/common/map/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | 3 | export default class Map extends Component { 4 | onLoad = () => { 5 | const map = new window.google.maps.Map( 6 | document.getElementById(this.props.id), 7 | this.props.options 8 | ) 9 | this.props.onMount(map) 10 | } 11 | 12 | componentDidMount() { 13 | if (!window.google) { 14 | const script = document.createElement('script') 15 | script.type = 'text/javascript' 16 | script.src = `https://maps.google.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false` 17 | const headScript = document.getElementsByTagName('script')[0] 18 | headScript.parentNode.insertBefore(script, headScript) 19 | script.addEventListener('load', () => { 20 | this.onLoad() 21 | }) 22 | } else { 23 | this.onLoad() 24 | } 25 | } 26 | 27 | render() { 28 | return
29 | } 30 | } -------------------------------------------------------------------------------- /src/components/image.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { useStaticQuery, graphql } from "gatsby" 3 | import Img from "gatsby-image" 4 | 5 | /* 6 | * This component is built using `gatsby-image` to automatically serve optimized 7 | * images with lazy loading and reduced file sizes. The image is loaded using a 8 | * `useStaticQuery`, which allows us to load the image from directly within this 9 | * component, rather than having to pass the image data down from pages. 10 | * 11 | * For more information, see the docs: 12 | * - `gatsby-image`: https://gatsby.dev/gatsby-image 13 | * - `useStaticQuery`: https://www.gatsbyjs.org/docs/use-static-query/ 14 | */ 15 | 16 | const Image = () => { 17 | const data = useStaticQuery(graphql` 18 | query { 19 | placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) { 20 | childImageSharp { 21 | fluid(maxWidth: 300) { 22 | ...GatsbyImageSharpFluid 23 | } 24 | } 25 | } 26 | } 27 | `) 28 | 29 | return 30 | } 31 | 32 | export default Image 33 | -------------------------------------------------------------------------------- /src/scss/bootstrap/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v4.2.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2018 The Bootstrap Authors 4 | * Copyright 2011-2018 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | @import "functions"; 9 | @import "variables"; 10 | @import "mixins"; 11 | @import "root"; 12 | @import "reboot"; 13 | @import "type"; 14 | @import "images"; 15 | @import "code"; 16 | @import "grid"; 17 | @import "tables"; 18 | @import "forms"; 19 | @import "buttons"; 20 | @import "transitions"; 21 | @import "dropdown"; 22 | @import "button-group"; 23 | @import "input-group"; 24 | @import "custom-forms"; 25 | @import "nav"; 26 | @import "navbar"; 27 | @import "card"; 28 | @import "breadcrumb"; 29 | @import "pagination"; 30 | @import "badge"; 31 | @import "jumbotron"; 32 | @import "alert"; 33 | @import "progress"; 34 | @import "media"; 35 | @import "list-group"; 36 | @import "close"; 37 | @import "toasts"; 38 | @import "modal"; 39 | @import "tooltip"; 40 | @import "popover"; 41 | @import "carousel"; 42 | @import "spinners"; 43 | @import "utilities"; 44 | @import "print"; 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 gatsbyjs 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Toggles 2 | // 3 | // Used in conjunction with global variables to enable certain theme features. 4 | 5 | // Utilities 6 | @import "mixins/breakpoints"; 7 | @import "mixins/hover"; 8 | @import "mixins/image"; 9 | @import "mixins/badge"; 10 | @import "mixins/resize"; 11 | @import "mixins/screen-reader"; 12 | @import "mixins/size"; 13 | @import "mixins/reset-text"; 14 | @import "mixins/text-emphasis"; 15 | @import "mixins/text-hide"; 16 | @import "mixins/text-truncate"; 17 | @import "mixins/visibility"; 18 | 19 | // // Components 20 | @import "mixins/alert"; 21 | @import "mixins/buttons"; 22 | @import "mixins/caret"; 23 | @import "mixins/pagination"; 24 | @import "mixins/lists"; 25 | @import "mixins/list-group"; 26 | @import "mixins/nav-divider"; 27 | @import "mixins/forms"; 28 | @import "mixins/table-row"; 29 | 30 | // // Skins 31 | @import "mixins/background-variant"; 32 | @import "mixins/border-radius"; 33 | @import "mixins/box-shadow"; 34 | @import "mixins/gradients"; 35 | @import "mixins/transition"; 36 | 37 | // // Layout 38 | @import "mixins/clearfix"; 39 | @import "mixins/grid-framework"; 40 | @import "mixins/grid"; 41 | @import "mixins/float"; 42 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_toasts.scss: -------------------------------------------------------------------------------- 1 | .toast { 2 | max-width: $toast-max-width; 3 | overflow: hidden; // cheap rounded corners on nested items 4 | font-size: $toast-font-size; // knock it down to 14px 5 | background-color: $toast-background-color; 6 | background-clip: padding-box; 7 | border: $toast-border-width solid $toast-border-color; 8 | border-radius: $toast-border-radius; 9 | box-shadow: $toast-box-shadow; 10 | backdrop-filter: blur(10px); 11 | opacity: 0; 12 | 13 | &:not(:last-child) { 14 | margin-bottom: $toast-padding-x; 15 | } 16 | 17 | &.showing { 18 | opacity: 1; 19 | } 20 | 21 | &.show { 22 | display: block; 23 | opacity: 1; 24 | } 25 | 26 | &.hide { 27 | display: none; 28 | } 29 | } 30 | 31 | .toast-header { 32 | display: flex; 33 | align-items: center; 34 | padding: $toast-padding-y $toast-padding-x; 35 | color: $toast-header-color; 36 | background-color: $toast-header-background-color; 37 | background-clip: padding-box; 38 | border-bottom: $toast-border-width solid $toast-header-border-color; 39 | } 40 | 41 | .toast-body { 42 | padding: $toast-padding-x; // apply to both vertical and horizontal 43 | } 44 | -------------------------------------------------------------------------------- /static/js/range.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | var parent = document.querySelector(".range-slider"); 4 | if(!parent) return; 5 | 6 | var 7 | rangeS = parent.querySelectorAll("input[type=range]"), 8 | numberS = parent.querySelectorAll("input[type=number]"); 9 | 10 | rangeS.forEach(function(el) { 11 | el.oninput = function() { 12 | var slide1 = parseFloat(rangeS[0].value), 13 | slide2 = parseFloat(rangeS[1].value); 14 | 15 | if (slide1 > slide2) { 16 | [slide1, slide2] = [slide2, slide1]; 17 | // var tmp = slide2; 18 | // slide2 = slide1; 19 | // slide1 = tmp; 20 | } 21 | 22 | numberS[0].value = slide1; 23 | numberS[1].value = slide2; 24 | } 25 | }); 26 | 27 | numberS.forEach(function(el) { 28 | el.oninput = function() { 29 | var number1 = parseFloat(numberS[0].value), 30 | number2 = parseFloat(numberS[1].value); 31 | 32 | if (number1 > number2) { 33 | var tmp = number1; 34 | numberS[0].value = number2; 35 | numberS[1].value = tmp; 36 | } 37 | 38 | rangeS[0].value = number1; 39 | rangeS[1].value = number2; 40 | 41 | } 42 | }); 43 | 44 | })(); -------------------------------------------------------------------------------- /src/scss/bootstrap/_code.scss: -------------------------------------------------------------------------------- 1 | // Inline code 2 | code { 3 | font-size: $code-font-size; 4 | color: $code-color; 5 | word-break: break-word; 6 | 7 | // Streamline the style when inside anchors to avoid broken underline and more 8 | a > & { 9 | color: inherit; 10 | } 11 | } 12 | 13 | // User input typically entered via keyboard 14 | kbd { 15 | padding: $kbd-padding-y $kbd-padding-x; 16 | font-size: $kbd-font-size; 17 | color: $kbd-color; 18 | background-color: $kbd-bg; 19 | @include border-radius($border-radius-sm); 20 | @include box-shadow($kbd-box-shadow); 21 | 22 | kbd { 23 | padding: 0; 24 | font-size: 100%; 25 | font-weight: $nested-kbd-font-weight; 26 | @include box-shadow(none); 27 | } 28 | } 29 | 30 | // Blocks of code 31 | pre { 32 | display: block; 33 | font-size: $code-font-size; 34 | color: $pre-color; 35 | 36 | // Account for some code outputs that place code tags in pre tags 37 | code { 38 | font-size: inherit; 39 | color: inherit; 40 | word-break: normal; 41 | } 42 | } 43 | 44 | // Enable scrollable blocks of code 45 | .pre-scrollable { 46 | max-height: $pre-scrollable-max-height; 47 | overflow-y: scroll; 48 | } 49 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_spinners.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Rotating border 3 | // 4 | 5 | @keyframes spinner-border { 6 | to { transform: rotate(360deg); } 7 | } 8 | 9 | .spinner-border { 10 | display: inline-block; 11 | width: $spinner-width; 12 | height: $spinner-height; 13 | vertical-align: text-bottom; 14 | border: $spinner-border-width solid currentColor; 15 | border-right-color: transparent; 16 | border-radius: 50%; 17 | animation: spinner-border .75s linear infinite; 18 | } 19 | 20 | .spinner-border-sm { 21 | width: $spinner-width-sm; 22 | height: $spinner-height-sm; 23 | border-width: $spinner-border-width-sm; 24 | } 25 | 26 | // 27 | // Growing circle 28 | // 29 | 30 | @keyframes spinner-grow { 31 | 0% { 32 | transform: scale(0); 33 | } 34 | 50% { 35 | opacity: 1; 36 | } 37 | } 38 | 39 | .spinner-grow { 40 | display: inline-block; 41 | width: $spinner-width; 42 | height: $spinner-height; 43 | vertical-align: text-bottom; 44 | background-color: currentColor; 45 | border-radius: 50%; 46 | opacity: 0; 47 | animation: spinner-grow .75s linear infinite; 48 | } 49 | 50 | .spinner-grow-sm { 51 | width: $spinner-width-sm; 52 | height: $spinner-height-sm; 53 | } 54 | -------------------------------------------------------------------------------- /src/components/common/legacy/range.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | var parent = document.querySelector(".range-slider"); 4 | if(!parent) return; 5 | 6 | var 7 | rangeS = parent.querySelectorAll("input[type=range]"), 8 | numberS = parent.querySelectorAll("input[type=number]"); 9 | 10 | rangeS.forEach(function(el) { 11 | el.oninput = function() { 12 | var slide1 = parseFloat(rangeS[0].value), 13 | slide2 = parseFloat(rangeS[1].value); 14 | 15 | if (slide1 > slide2) { 16 | [slide1, slide2] = [slide2, slide1]; 17 | // var tmp = slide2; 18 | // slide2 = slide1; 19 | // slide1 = tmp; 20 | } 21 | 22 | numberS[0].value = slide1; 23 | numberS[1].value = slide2; 24 | } 25 | }); 26 | 27 | numberS.forEach(function(el) { 28 | el.oninput = function() { 29 | var number1 = parseFloat(numberS[0].value), 30 | number2 = parseFloat(numberS[1].value); 31 | 32 | if (number1 > number2) { 33 | var tmp = number1; 34 | numberS[0].value = number2; 35 | numberS[1].value = tmp; 36 | } 37 | 38 | rangeS[0].value = number1; 39 | rangeS[1].value = number2; 40 | 41 | } 42 | }); 43 | 44 | })(); -------------------------------------------------------------------------------- /static/images/no-image.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | .close { 2 | float: right; 3 | font-size: $close-font-size; 4 | font-weight: $close-font-weight; 5 | line-height: 1; 6 | color: $close-color; 7 | text-shadow: $close-text-shadow; 8 | opacity: .5; 9 | 10 | // Override 's hover style 11 | @include hover { 12 | color: $close-color; 13 | text-decoration: none; 14 | } 15 | 16 | &:not(:disabled):not(.disabled) { 17 | @include hover-focus { 18 | opacity: .75; 19 | } 20 | 21 | // Opinionated: add "hand" cursor to non-disabled .close elements 22 | cursor: pointer; 23 | } 24 | } 25 | 26 | // Additional properties for button version 27 | // iOS requires the button element instead of an anchor tag. 28 | // If you want the anchor version, it requires `href="#"`. 29 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 30 | 31 | // stylelint-disable-next-line selector-no-qualifying-type 32 | button.close { 33 | padding: 0; 34 | background-color: transparent; 35 | border: 0; 36 | appearance: none; 37 | } 38 | 39 | // Future-proof disabling of clicks on `` elements 40 | 41 | // stylelint-disable-next-line selector-no-qualifying-type 42 | a.close.disabled { 43 | pointer-events: none; 44 | } 45 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_grid.scss: -------------------------------------------------------------------------------- 1 | // Container widths 2 | // 3 | // Set the container width, and override it for fixed navbars in media queries. 4 | 5 | @if $enable-grid-classes { 6 | .container { 7 | @include make-container(); 8 | @include make-container-max-widths(); 9 | } 10 | } 11 | 12 | // Fluid container 13 | // 14 | // Utilizes the mixin meant for fixed width containers, but with 100% width for 15 | // fluid, full width layouts. 16 | 17 | @if $enable-grid-classes { 18 | .container-fluid { 19 | @include make-container(); 20 | } 21 | } 22 | 23 | // Row 24 | // 25 | // Rows contain and clear the floats of your columns. 26 | 27 | @if $enable-grid-classes { 28 | .row { 29 | @include make-row(); 30 | } 31 | 32 | // Remove the negative margin from default .row, then the horizontal padding 33 | // from all immediate children columns (to prevent runaway style inheritance). 34 | .no-gutters { 35 | margin-right: 0; 36 | margin-left: 0; 37 | 38 | > .col, 39 | > [class*="col-"] { 40 | padding-right: 0; 41 | padding-left: 0; 42 | } 43 | } 44 | } 45 | 46 | // Columns 47 | // 48 | // Common styles for small and large grid columns 49 | 50 | @if $enable-grid-classes { 51 | @include make-grid-columns(); 52 | } 53 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # dotenv environment variables file 55 | .env 56 | 57 | # gatsby files 58 | .cache/ 59 | public 60 | 61 | # Mac files 62 | .DS_Store 63 | 64 | # Yarn 65 | yarn-error.log 66 | .pnp/ 67 | .pnp.js 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | -------------------------------------------------------------------------------- /src/components/shop/product_form/variant_selector/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | 4 | const VariantSelector = props => { 5 | const { option } = props 6 | return ( 7 | <> 8 | 9 |
10 |
11 |
12 | 27 |
28 |
29 | 30 | ) 31 | } 32 | 33 | VariantSelector.propTypes = { 34 | onChange: PropTypes.func, 35 | option: PropTypes.shape({ 36 | id: PropTypes.string, 37 | name: PropTypes.string, 38 | values: PropTypes.arrayOf(PropTypes.string), 39 | }), 40 | } 41 | 42 | export default VariantSelector 43 | -------------------------------------------------------------------------------- /src/scss/fonts/flaticon/font/flaticon.css: -------------------------------------------------------------------------------- 1 | /* 2 | Flaticon icon font: Flaticon 3 | Creation date: 17/07/2019 12:38 4 | */ 5 | 6 | @font-face { 7 | font-family: "Flaticon"; 8 | src: url("./Flaticon.eot"); 9 | src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), 10 | url("./Flaticon.woff2") format("woff2"), 11 | url("./Flaticon.woff") format("woff"), 12 | url("./Flaticon.ttf") format("truetype"), 13 | url("./Flaticon.svg#Flaticon") format("svg"); 14 | font-weight: normal; 15 | font-style: normal; 16 | } 17 | 18 | @media screen and (-webkit-min-device-pixel-ratio:0) { 19 | @font-face { 20 | font-family: "Flaticon"; 21 | src: url("./Flaticon.svg#Flaticon") format("svg"); 22 | } 23 | } 24 | 25 | [class^="flaticon-"]:before, [class*=" flaticon-"]:before, 26 | [class^="flaticon-"]:after, [class*=" flaticon-"]:after { 27 | font-family: Flaticon; 28 | font-size: 20px; 29 | font-style: normal; 30 | margin-left: 20px; 31 | } 32 | 33 | .flaticon-shipped:before { content: "\f100"; } 34 | .flaticon-box:before { content: "\f101"; } 35 | .flaticon-award:before { content: "\f102"; } 36 | .flaticon-customer-service:before { content: "\f103"; } 37 | .flaticon-salad:before { content: "\f104"; } 38 | .flaticon-diet:before { content: "\f105"; } -------------------------------------------------------------------------------- /src/scss/bootstrap/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | font-size: $badge-font-size; 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | 17 | @at-root a#{&} { 18 | @include hover-focus { 19 | text-decoration: none; 20 | } 21 | } 22 | 23 | // Empty badges collapse automatically 24 | &:empty { 25 | display: none; 26 | } 27 | } 28 | 29 | // Quick fix for badges in buttons 30 | .btn .badge { 31 | position: relative; 32 | top: -1px; 33 | } 34 | 35 | // Pill badges 36 | // 37 | // Make them extra rounded with a modifier to replace v3's badges. 38 | 39 | .badge-pill { 40 | padding-right: $badge-pill-padding-x; 41 | padding-left: $badge-pill-padding-x; 42 | @include border-radius($badge-pill-border-radius); 43 | } 44 | 45 | // Colors 46 | // 47 | // Contextual variations (linked badges get darker on :hover). 48 | 49 | @each $color, $value in $theme-colors { 50 | .badge-#{$color} { 51 | @include badge-variant($value); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_images.scss: -------------------------------------------------------------------------------- 1 | // Responsive images (ensure images don't scale beyond their parents) 2 | // 3 | // This is purposefully opt-in via an explicit class rather than being the default for all ``s. 4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2, 5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps) 6 | // which weren't expecting the images within themselves to be involuntarily resized. 7 | // See also https://github.com/twbs/bootstrap/issues/18178 8 | .img-fluid { 9 | @include img-fluid; 10 | } 11 | 12 | 13 | // Image thumbnails 14 | .img-thumbnail { 15 | padding: $thumbnail-padding; 16 | background-color: $thumbnail-bg; 17 | border: $thumbnail-border-width solid $thumbnail-border-color; 18 | @include border-radius($thumbnail-border-radius); 19 | @include box-shadow($thumbnail-box-shadow); 20 | 21 | // Keep them at most 100% wide 22 | @include img-fluid; 23 | } 24 | 25 | // 26 | // Figures 27 | // 28 | 29 | .figure { 30 | // Ensures the caption's text aligns with the image. 31 | display: inline-block; 32 | } 33 | 34 | .figure-img { 35 | margin-bottom: $spacer / 2; 36 | line-height: 1; 37 | } 38 | 39 | .figure-caption { 40 | font-size: $figure-caption-font-size; 41 | color: $figure-caption-color; 42 | } 43 | -------------------------------------------------------------------------------- /src/scss/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | 10 | @mixin img-fluid { 11 | // Part 1: Set a maximum relative to the parent 12 | max-width: 100%; 13 | // Part 2: Override the height to auto, otherwise images will be stretched 14 | // when setting a width and height attribute on the img element. 15 | height: auto; 16 | } 17 | 18 | 19 | // Retina image 20 | // 21 | // Short retina mixin for setting background-image and -size. 22 | 23 | // stylelint-disable indentation, media-query-list-comma-newline-after 24 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 25 | background-image: url($file-1x); 26 | 27 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, 28 | // but doesn't convert dppx=>dpi. 29 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. 30 | // Compatibility info: https://caniuse.com/#feat=css-media-resolution 31 | @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx 32 | only screen and (min-resolution: 2dppx) { // Standardized 33 | background-image: url($file-2x); 34 | background-size: $width-1x $height-1x; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/scss/bootstrap/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /static/js/jquery.animateNumber.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | jQuery animateNumber plugin v0.0.14 3 | (c) 2013, Alexandr Borisov. 4 | https://github.com/aishek/jquery-animateNumber 5 | */ 6 | (function(d){var r=function(b){return b.split("").reverse().join("")},m={numberStep:function(b,a){var e=Math.floor(b);d(a.elem).text(e)}},g=function(b){var a=b.elem;a.nodeType&&a.parentNode&&(a=a._animateNumberSetter,a||(a=m.numberStep),a(b.now,b))};d.Tween&&d.Tween.propHooks?d.Tween.propHooks.number={set:g}:d.fx.step.number=g;d.animateNumber={numberStepFactories:{append:function(b){return function(a,e){var f=Math.floor(a);d(e.elem).prop("number",a).text(f+b)}},separator:function(b,a,e){b=b||" "; 7 | a=a||3;e=e||"";return function(f,k){var u=0>f,c=Math.floor((u?-1:1)*f).toString(),n=d(k.elem);if(c.length>a){for(var h=c,l=a,m=h.split("").reverse(),c=[],p,s,q,t=0,g=Math.ceil(h.length/l);t`s. The `::before` pseudo-element generates an element 26 | // *within* the .breadcrumb-item and thereby inherits the `text-decoration`. 27 | // 28 | // To trick IE into suppressing the underline, we give the pseudo-element an 29 | // underline and then immediately remove it. 30 | + .breadcrumb-item:hover::before { 31 | text-decoration: underline; 32 | } 33 | // stylelint-disable-next-line no-duplicate-selectors 34 | + .breadcrumb-item:hover::before { 35 | text-decoration: none; 36 | } 37 | 38 | &.active { 39 | color: $breadcrumb-active-color; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/layouts/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Layout component that queries for data 3 | * with Gatsby's useStaticQuery component 4 | * 5 | * See: https://www.gatsbyjs.org/docs/use-static-query/ 6 | */ 7 | 8 | import React from "react" 9 | import PropTypes from "prop-types" 10 | import {StaticQuery, graphql} from "gatsby" 11 | 12 | import Legacy from "../components/common/legacy" 13 | import Footer from "../components/footer" 14 | 15 | import TopBar from "../components/topbar" 16 | import NavBar from "../components/navbar" 17 | 18 | class Layout extends React.Component { 19 | 20 | render() { 21 | const {children, location} = this.props 22 | 23 | return ( 24 | ( 34 | <> 35 | 36 | 37 | 38 | 39 | {/* END nav */} 40 | 41 | {children} 42 | 43 |