├── skin └── frontend │ └── magentoboilerplate │ └── default │ ├── grunt │ ├── jshint.js │ ├── uglify.js │ ├── sass.js │ ├── watch.js │ ├── concat.js │ └── sprite.js │ ├── images │ └── sprites │ │ ├── sprite.png │ │ ├── sprite-2x.png │ │ ├── source │ │ ├── icon-plus.png │ │ ├── icon-minus.png │ │ ├── icon-right.png │ │ ├── icon-search.png │ │ ├── icon-minus-white.png │ │ └── icon-plus-white.png │ │ └── source-2x │ │ ├── icon-plus.png │ │ ├── icon-minus.png │ │ ├── icon-right.png │ │ ├── icon-search.png │ │ ├── icon-minus-white.png │ │ └── icon-plus-white.png │ ├── scss │ ├── utilities │ │ ├── lib │ │ │ ├── _owl.autoheight.scss │ │ │ ├── _owl.lazyload.scss │ │ │ ├── _owl.theme.default.scss │ │ │ ├── _owl.animate.scss │ │ │ ├── _owl.video.scss │ │ │ ├── _owl.theme.scss │ │ │ └── _owl.carousel.scss │ │ ├── _helpers.scss │ │ ├── _sprites.scss │ │ ├── functions │ │ │ ├── _strip-unit.scss │ │ │ ├── _em.scss │ │ │ └── _ranges.scss │ │ ├── _functions.scss │ │ ├── mixins │ │ │ ├── _rgba-bg.scss │ │ │ ├── _image-replacement.scss │ │ │ ├── _box-sizing.scss │ │ │ ├── _placeholder.scss │ │ │ ├── _breakpoint.scss │ │ │ ├── _if-resolution.scss │ │ │ ├── _css-triangle.scss │ │ │ └── _accordion.scss │ │ ├── _placeholders.scss │ │ ├── _libs.scss │ │ ├── _mixins.scss │ │ ├── sprites.styl.mustache │ │ ├── _vars.scss │ │ └── sprites │ │ │ └── _sprite.scss │ ├── shame │ │ └── _index.scss │ ├── states │ │ ├── _index.scss │ │ ├── _print.scss │ │ └── _touch.scss │ ├── pages │ │ ├── product │ │ │ ├── _product.scss │ │ │ ├── _related.scss │ │ │ ├── _gallery.scss │ │ │ └── _extra.scss │ │ ├── account │ │ │ ├── _forgot.scss │ │ │ ├── _register.scss │ │ │ ├── _login.scss │ │ │ ├── _dashboard.scss │ │ │ └── _navigation.scss │ │ └── category │ │ │ └── _category.scss │ ├── components │ │ ├── _box-listing.scss │ │ ├── _product-list.scss │ │ ├── _notices.scss │ │ ├── _pagination.scss │ │ ├── _tables.scss │ │ ├── _breadcrumbs.scss │ │ ├── _buttons.scss │ │ ├── _product-grid.scss │ │ ├── _toolbar.scss │ │ ├── _navigation.scss │ │ ├── _product-item.scss │ │ ├── _forms.scss │ │ └── _social.scss │ ├── styles.scss │ ├── styles-ie.scss │ ├── layout │ │ ├── _header.scss │ │ ├── _grid.scss │ │ ├── _pages.scss │ │ ├── _footer.scss │ │ └── _bar.scss │ ├── base │ │ ├── _typography.scss │ │ └── _base.scss │ └── _all.scss │ ├── Gruntfile.js │ ├── package.json │ └── js │ ├── account.js │ ├── category.js │ └── lib │ ├── owlcarousel │ ├── owl.support.modernizr.js │ ├── owl.support.js │ ├── owl.autoheight.js │ ├── owl.autorefresh.js │ ├── owl.hash.js │ ├── owl.animate.js │ ├── owl.lazyload.js │ └── owl.autoplay.js │ ├── toggle.single.js │ └── enquire.min.js ├── app ├── design │ └── frontend │ │ └── magentoboilerplate │ │ └── default │ │ ├── template │ │ ├── page │ │ │ ├── html │ │ │ │ ├── before_body_end_js.phtml │ │ │ │ ├── footer.phtml │ │ │ │ ├── head.phtml │ │ │ │ ├── notices.phtml │ │ │ │ ├── header.phtml │ │ │ │ └── pager.phtml │ │ │ ├── popup.phtml │ │ │ ├── empty.phtml │ │ │ ├── switch │ │ │ │ └── languages.phtml │ │ │ ├── print.phtml │ │ │ ├── 1column.phtml │ │ │ ├── 2columns-right.phtml │ │ │ ├── 3columns.phtml │ │ │ └── 2columns-left.phtml │ │ ├── customer │ │ │ ├── account │ │ │ │ ├── dashboard │ │ │ │ │ ├── hello.phtml │ │ │ │ │ ├── contact.phtml │ │ │ │ │ ├── info.phtml │ │ │ │ │ ├── address.phtml │ │ │ │ │ ├── newsletter.phtml │ │ │ │ │ └── wishlist.phtml │ │ │ │ ├── dashboard.phtml │ │ │ │ └── navigation.phtml │ │ │ ├── form │ │ │ │ └── forgotpassword.phtml │ │ │ └── address │ │ │ │ └── book.phtml │ │ ├── catalog │ │ │ ├── product │ │ │ │ ├── view │ │ │ │ │ ├── description.phtml │ │ │ │ │ ├── addtocart.phtml │ │ │ │ │ ├── sharing.phtml │ │ │ │ │ └── media.phtml │ │ │ │ └── list │ │ │ │ │ ├── upsell.phtml │ │ │ │ │ ├── toolbar.phtml │ │ │ │ │ └── related.phtml │ │ │ ├── category │ │ │ │ └── view.phtml │ │ │ ├── layer │ │ │ │ └── view.phtml │ │ │ └── navigation │ │ │ │ └── subcategory-listing.phtml │ │ ├── directory │ │ │ └── currency.phtml │ │ ├── newsletter │ │ │ └── subscribe.phtml │ │ ├── catalogsearch │ │ │ └── form.mini.phtml │ │ ├── sales │ │ │ └── order │ │ │ │ └── recent.phtml │ │ ├── reports │ │ │ └── product_viewed.phtml │ │ └── persistent │ │ │ └── customer │ │ │ └── form │ │ │ └── login.phtml │ │ ├── etc │ │ └── theme.xml │ │ ├── locale │ │ └── en_GB │ │ │ └── translate.csv │ │ └── layout │ │ ├── cms.xml │ │ └── local.xml ├── etc │ └── modules │ │ └── Boilerplate_All.xml └── code │ └── local │ └── Boilerplate │ └── All │ ├── Block │ └── Account │ │ └── Navigation.php │ ├── etc │ ├── adminhtml.xml │ ├── config.xml │ └── system.xml │ └── sql │ └── boilerplate_all_setup │ └── mysql4-install-0.0.1.php ├── .gitignore └── README.md /skin/frontend/magentoboilerplate/default/grunt/jshint.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | beforeconcat: ['js/*.js'] 3 | }; -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/before_body_end_js.phtml: -------------------------------------------------------------------------------- 1 | getCssJsHtml(); ?> -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/etc/theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | rwd/default 4 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/grunt/uglify.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | libs: { 3 | src: 'js/build/libs.js', 4 | dest: 'js/build/min/libs.min.js' 5 | } 6 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/sprite.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/sprite-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/sprite-2x.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.autoheight.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Owl Carousel - Auto Height Plugin 3 | */ 4 | 5 | .owl-height { 6 | transition: height, 500ms, ease-in-out; 7 | } 8 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-right.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-search.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-right.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-search.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-minus-white.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source/icon-plus-white.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-minus-white.png -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonujmaalvis/magento-boilerplate/HEAD/skin/frontend/magentoboilerplate/default/images/sprites/source-2x/icon-plus-white.png -------------------------------------------------------------------------------- /app/etc/modules/Boilerplate_All.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | local 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/code/local/Boilerplate/All/Block/Account/Navigation.php: -------------------------------------------------------------------------------- 1 | _links[$name]); 5 | } 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/shame/_index.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Shame because hacks happen ----------------------------------- // 3 | // -------------------------------------------------------------- // -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/states/_index.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // States ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/states/_print.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Print -------------------------------------------------------- // 3 | // -------------------------------------------------------------- // -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/states/_touch.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Touch -------------------------------------------------------- // 3 | // -------------------------------------------------------------- // -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/product/_product.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Product ------------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | 5 | // to do -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/locale/en_GB/translate.csv: -------------------------------------------------------------------------------- 1 | "###","- - - - - - - - - - - - - - - - - - - - -" 2 | "###","Custom phrases." 3 | "###","- - - - - - - - - - - - - - - - - - - - -" 4 | "###","Catalog Module" 5 | "Regular Price:","Was:" 6 | "Starting at:","From:" 7 | "As low as:","From:" -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_box-listing.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Box listing -------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .box-listing { 5 | // to do 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_product-list.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Product List ------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .product-list { 5 | // to do 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/product/_related.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Related products --------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .product-related { 5 | // to do 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/grunt/sass.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | dist: { 3 | options: { 4 | outputStyle: 'nested' 5 | }, 6 | files: { 7 | 'css/styles.css': 'scss/styles.scss', 8 | 'css/styles-ie.css': 'scss/styles-ie.scss' 9 | } 10 | } 11 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_helpers.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Helper classes ----------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .no-display { 5 | display: none !important; 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/styles.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Application general import file full mq support -------------- // 3 | // -------------------------------------------------------------- // 4 | $mq-support: true; 5 | $mq-fixed-value: false; 6 | 7 | @import "all"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_sprites.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Sprites ------------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | @import "sprites/sprite"; 5 | @import "sprites/sprite-2x"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.lazyload.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Owl Carousel - Lazy Load Plugin 3 | */ 4 | 5 | .owl-carousel { 6 | .owl-item { 7 | .owl-lazy { 8 | opacity: 0; 9 | transition: opacity, 400ms, ease; 10 | } 11 | img{ 12 | transform-style: preserve-3d; 13 | } 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/styles-ie.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Application general import file no mq for lte-IE8 use -------- // 3 | // -------------------------------------------------------------- // 4 | $mq-support: false; 5 | $mq-fixed-value: 64.000em; // 1024px / 16px 6 | 7 | @import "all"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/functions/_strip-unit.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Strip unit --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @function strip-unit($num) { 5 | @return $num / ($num * 0 + 1); 6 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_functions.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Functions ---------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @import "functions/ranges"; 5 | @import "functions/strip-unit"; 6 | @import "functions/em"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | // load grunt config 3 | require('load-grunt-config')(grunt); 4 | 5 | // register task: default 6 | grunt.registerTask('default', [ 7 | 'sprite', 8 | 'sass', 9 | 'jshint', 10 | 'concat', 11 | 'uglify', 12 | 'watch' 13 | ]); 14 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/account/_forgot.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Forgot Password ---------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .account-forgot { 5 | .column { 6 | background-color: $concrete; 7 | padding: em(30); 8 | } 9 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/category/_category.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Category ----------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .category-description { 5 | margin-bottom: em(20, 13); 6 | font-size: em(13); 7 | color: $boulder; 8 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_rgba-bg.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // RGBA with fallback ------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin rgba-bg($color, $percent: 0.9) { 5 | background: $color; 6 | background: rgba($color, $percent); 7 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/account/_register.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Register ----------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .account-create { 5 | .column { 6 | background-color: $concrete; 7 | padding: em(30); 8 | } 9 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/product/_gallery.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Gallery ------------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | .product-img-box { 5 | // to do 6 | width: em(800); 7 | 8 | .more-views .item.visible { 9 | border: 2px solid red; 10 | } 11 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/layout/_header.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Header ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .page-header { 5 | padding: em(130) 0 em(100); 6 | 7 | .logo { 8 | font-weight: bold; 9 | font-size: em(32); 10 | color: $mine-shaft; 11 | } 12 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_placeholders.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Clearfix ----------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | %clearfix { 5 | &:before, 6 | &:after { 7 | content: " "; // 1 8 | display: table; // 2 9 | } 10 | 11 | &:after { 12 | clear: both; 13 | } 14 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/hello.phtml: -------------------------------------------------------------------------------- 1 |
2 |

__('Hello %s!', $this->escapeHtml($this->getCustomerName())) ?>

3 |

__('Welcome to your dashboard. Here you can track your orders, update and share your wishlist, edit billing / shipping info and more.') ?>

4 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/functions/_em.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // px to em conversion ------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | @function em($target, $context: $base-em) { 5 | $target: strip-unit($target) / strip-unit($context) * 1em; 6 | @if ($target == 0em) { $target: 0; } // Turn 0em into 0 7 | @return $target; 8 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_image-replacement.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Image replacement -------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin image-replacement { 5 | text-indent: -9999px; 6 | } 7 | 8 | // Undo the replacement for child elements 9 | @mixin image-replacement-override { 10 | text-indent: 0; 11 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_libs.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Libraries from Third Parties --------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @import "lib/owl.carousel"; 5 | @import "lib/owl.lazyload"; 6 | @import "lib/owl.autoheight"; 7 | @import "lib/owl.video"; 8 | @import "lib/owl.animate"; 9 | @import "lib/owl.theme.default"; 10 | @import "lib/owl.theme"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Box sizing --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin box-sizing($type: border-box) { 5 | -webkit-box-sizing: $type; // Android < 2.3, iOS < 4 6 | -moz-box-sizing: $type; // Firefox < 29 7 | box-sizing: $type; // Chrome, IE 8+, Opera, Safari 5.1 8 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/view/description.phtml: -------------------------------------------------------------------------------- 1 | 8 | getProduct()->getDescription(); 10 | ?> 11 | 12 | 13 |
14 | helper('catalog/output')->productAttribute($this->getProduct(), $_description, 'description') ?> 15 |
16 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_mixins.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Mixins ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @import "mixins/box-sizing"; 5 | @import "mixins/breakpoint"; 6 | @import "mixins/if-resolution"; 7 | @import "mixins/css-triangle"; 8 | @import "mixins/placeholder"; 9 | @import "mixins/rgba-bg"; 10 | @import "mixins/accordion"; 11 | @import "mixins/image-replacement"; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/base/_typography.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Typography --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | h1, 5 | .h1 { 6 | font-size: em(18); 7 | margin-bottom: em(10, 18); 8 | } 9 | 10 | h2, 11 | .h2 { 12 | font-size: em(18); 13 | margin-bottom: em(10, 18); 14 | } 15 | 16 | h3, 17 | .h3 { 18 | font-size: em(15); 19 | margin-bottom: em(10, 15); 20 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/functions/_ranges.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Ranges ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @function lower-bound($range){ 5 | @if length($range) <= 0 { 6 | @return 0; 7 | } 8 | 9 | @return nth($range, 1); 10 | } 11 | 12 | @function upper-bound($range) { 13 | @if length($range) < 2 { 14 | @return 999999999999; 15 | } 16 | 17 | @return nth($range, 2); 18 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_notices.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // GLobal site notices ------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | .global-site-notice { 5 | background-color: $color-secondary; 6 | color: $boulder; 7 | @extend %clearfix; 8 | 9 | p { 10 | float: left; 11 | font-size: em(14); 12 | padding: em(15) em(20); 13 | } 14 | 15 | .first { 16 | border-right: 1px solid $boulder; 17 | } 18 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_placeholder.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Placeholder text color --------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin placeholder($color) { 5 | &::-webkit-input-placeholder { color: $color; } // Safari and Chrome 6 | &:-moz-placeholder { color: $color; opacity: 1 !important; } // Firefox 4-18 7 | &::-moz-placeholder { color: $color; opacity: 1 !important; } // Firefox 19+ 8 | &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+ 9 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_pagination.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Pagination --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .pagination { 5 | li { 6 | float: left; 7 | margin-left: em(4); 8 | 9 | &.current span { 10 | background-color: $concrete; 11 | } 12 | } 13 | 14 | a, 15 | span { 16 | display: block; 17 | font-size: em(14); 18 | padding: 0 em(8, 14); 19 | color: $boulder; 20 | border-radius: 3px; 21 | } 22 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/footer.phtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/contact.phtml: -------------------------------------------------------------------------------- 1 |
2 |
getLayout()->createBlock('cms/block')->setBlockId('customer_account_contact')->toHtml() ?>
3 | 4 |
5 | __('Phone:'); ?> 6 |
7 | __('Email:'); ?> 8 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.theme.default.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Default theme - Owl Carousel CSS File 3 | */ 4 | 5 | $color-base: #869791; 6 | $color-white: #FFF; 7 | $color-gray: #D6D6D6; 8 | 9 | //nav 10 | 11 | $nav-color: $color-white; 12 | $nav-color-hover: $color-white; 13 | $nav-font-size: 14px; 14 | $nav-rounded: 3px; 15 | $nav-margin: 5px; 16 | $nav-padding: 4px 7px; 17 | $nav-background: $color-gray; 18 | $nav-background-hover: $color-base; 19 | $nav-disabled-opacity: 0.5; 20 | 21 | //dots 22 | 23 | $dot-width: 10px; 24 | $dot-height: 10px; 25 | $dot-rounded: 30px; 26 | $dot-margin: 5px 7px; 27 | $dot-background: $color-gray; 28 | $dot-background-active: $color-base; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_tables.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Tables ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .data-table { 5 | width: 100%; 6 | 7 | th, 8 | td { 9 | font-size: em(14); 10 | } 11 | 12 | thead { 13 | th { 14 | background-color: $concrete; 15 | text-align: left; 16 | padding: em(15, 14) em(20, 14); 17 | } 18 | } 19 | 20 | tbody { 21 | td { 22 | padding: em(10, 14) em(20, 14); 23 | border-bottom: 1px solid $concrete; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.animate.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Owl Carousel - Animate Plugin 3 | */ 4 | .owl-carousel{ 5 | .animated { 6 | -webkit-animation-duration: 1000ms; 7 | animation-duration: 1000ms; 8 | -webkit-animation-fill-mode: both; 9 | animation-fill-mode: both; 10 | } 11 | .owl-animated-in { 12 | z-index: 0; 13 | } 14 | .owl-animated-out { 15 | z-index: 1; 16 | } 17 | .fadeOut { 18 | -webkit-animation-name: fadeOut; 19 | animation-name: fadeOut; 20 | } 21 | } 22 | 23 | @-webkit-keyframes fadeOut { 24 | 0% { 25 | opacity: 1; 26 | } 27 | 28 | 100% { 29 | opacity: 0; 30 | } 31 | } 32 | @keyframes fadeOut { 33 | 0% { 34 | opacity: 1; 35 | } 36 | 37 | 100% { 38 | opacity: 0; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard.phtml: -------------------------------------------------------------------------------- 1 |
2 | getMessagesBlock()->getGroupedHtml() ?> 3 | 4 | getChildHtml('hello') ?> 5 | getChildHtml('sales'); ?> 6 | getChildHtml('wishlist'); ?> 7 | 8 | getChildHtml('top') ?> 9 | 10 | getChildHtml('customer.account.dashboard.extra') ?> 11 | getChildHtml('info') ?> 12 | getChildHtml('address') ?> 13 | getChildHtml('info1') ?> 14 | getChildHtml('info2') ?> 15 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/grunt/watch.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | grunt: { 3 | files: ['Gruntfile.js'], 4 | options: { 5 | reload: true 6 | } 7 | }, 8 | sprite: { 9 | files: ['images/sprites/source/*.png', 'images/sprites/source-2x/*.png'], 10 | tasks: ['sprite'], 11 | options: { 12 | livereload: true 13 | } 14 | }, 15 | sass: { 16 | files: 'scss/**/*.scss', 17 | tasks: ['sass'], 18 | options: { 19 | livereload: true 20 | } 21 | }, 22 | scripts: { 23 | files: ['js/**/*.js'], 24 | tasks: ['jshint', 'concat', 'uglify'], 25 | options: { 26 | livereload: true 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/grunt/concat.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | libs: { 3 | src: [ 4 | 'js/lib/enquire.min.js', 5 | 'js/lib/owlcarousel/owl.carousel.js', 6 | 'js/lib/owlcarousel/owl.autorefresh.js', 7 | 'js/lib/owlcarousel/owl.lazyload.js', 8 | 'js/lib/owlcarousel/owl.autoheight.js', 9 | 'js/lib/owlcarousel/owl.video.js', 10 | 'js/lib/owlcarousel/owl.animate.js', 11 | 'js/lib/owlcarousel/owl.autoplay.js', 12 | 'js/lib/owlcarousel/owl.navigation.js', 13 | 'js/lib/owlcarousel/owl.hash.js', 14 | 'js/lib/owlcarousel/owl.support.js', 15 | 'js/lib/toggle.single.js' 16 | ], 17 | dest: 'js/build/libs.js' 18 | } 19 | }; -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/head.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | <?php echo $this->getTitle() ?> 4 | 5 | 6 | 7 | 8 | 9 | 10 | getCssJsHtml() ?> 11 | getChildHtml() ?> 12 | helper('core/js')->getTranslatorScript() ?> 13 | getIncludes() ?> -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/layout/_grid.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Grid --------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | 5 | // Fluid container 6 | .container { 7 | margin-right: auto; 8 | margin-left: auto; 9 | padding-left: em(15); 10 | padding-right: em(15); 11 | max-width: $max-container-width; 12 | @extend %clearfix; 13 | } 14 | 15 | // Rows container and clears the floats of your columns 16 | .row { 17 | margin-left: em(-15); 18 | margin-right: em(-15); 19 | @extend %clearfix; 20 | } 21 | 22 | // Columns 23 | .column { 24 | float: left; 25 | width: 100%; 26 | padding-left: em(15); 27 | padding-right: em(15); 28 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_breadcrumbs.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Breadcrumbs -------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .breadcrumbs { 5 | background-color: $concrete; 6 | padding: em(10); 7 | text-transform: uppercase; 8 | @extend %clearfix; 9 | 10 | @include bp(max-width, $medium-max) { 11 | display: none; 12 | } 13 | 14 | ul > li { 15 | float: left; 16 | font-size: em(10); 17 | color: $boulder; 18 | } 19 | 20 | a { 21 | float: left; 22 | } 23 | 24 | span { 25 | float: left; 26 | padding: 0 em(10); 27 | } 28 | 29 | strong { 30 | font-weight: normal; 31 | } 32 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/info.phtml: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

__('Contact Information') ?>

6 | __('Edit') ?> 7 |
8 |
9 |

10 | escapeHtml($this->getCustomer()->getName()) ?>
11 | escapeHtml($this->getCustomer()->getEmail()) ?>
12 | __('Change Password') ?> 13 |

14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /app/code/local/Boilerplate/All/etc/adminhtml.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Allow Everything 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Boilerplate - All 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in the root except the "app, skin" directories. 2 | /* 3 | !.gitignore 4 | !app/ 5 | !skin/ 6 | 7 | # Ignore everything in the "app, skin" directories, except the "magentoboilerplate" 8 | # directories. 9 | app/* 10 | !app/design/ 11 | app/design/adminhtml/ 12 | app/design/frontend/* 13 | !app/design/frontend/magentoboilerplate/ 14 | app/design/install/ 15 | 16 | !app/etc/ 17 | app/etc/* 18 | !app/etc/modules/ 19 | app/etc/modules/* 20 | !app/etc/modules/Boilerplate_*.xml 21 | 22 | !app/code/ 23 | app/code/community/ 24 | app/code/core/ 25 | 26 | skin/* 27 | !skin/frontend/ 28 | skin/frontend/* 29 | !skin/frontend/magentoboilerplate/ 30 | skin/frontend/magentoboilerplate/default/css/* 31 | 32 | # Ignore sass cache 33 | .sass-cache 34 | 35 | # Ignore node files 36 | npm-debug.log 37 | node_modules 38 | 39 | # Readme / License 40 | !README.md 41 | !LICENSE-GPL 42 | 43 | # OS generated files 44 | .DS_Store -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/layout/_pages.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Pages -------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | 5 | // Two columns with left sidebar 6 | .col2-left-layout { 7 | > .row > .column-left { 8 | @include bp(min-width, $large-min) { 9 | width: 25%; 10 | } 11 | } 12 | 13 | > .row .column-main { 14 | @include bp(min-width, $large-min) { 15 | width: 75%; 16 | } 17 | } 18 | } 19 | 20 | // Two columns with right sidebar 21 | .col2-right-layout { 22 | > .row > .column-right { 23 | @include bp(min-width, $large-min) { 24 | width: 35%; 25 | } 26 | } 27 | 28 | > .row .column-main { 29 | @include bp(min-width, $large-min) { 30 | width: 65%; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/grunt/sprite.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | build: { 3 | src: 'images/sprites/source/**/*.*', 4 | dest: 'images/sprites/sprite.png', 5 | destCss: 'scss/utilities/sprites/_sprite.scss', 6 | imgPath: '../images/sprites/sprite.png', 7 | cssTemplate: 'scss/utilities/sprites.styl.mustache', 8 | cssVarMap: function (sprite) { 9 | sprite.name = 'sprite__' + sprite.name; 10 | }, 11 | padding: 20 12 | }, 13 | buildRetina: { 14 | src: 'images/sprites/source-2x/**/*.*', 15 | dest: 'images/sprites/sprite-2x.png', 16 | destCss: 'scss/utilities/sprites/_sprite-2x.scss', 17 | imgPath: '../images/sprites/sprite-2x.png', 18 | cssTemplate: 'scss/utilities/sprites.styl.mustache', 19 | cssVarMap: function (sprite) { 20 | sprite.name = 'sprite-2x__' + sprite.name; 21 | }, 22 | padding: 40 23 | } 24 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_breakpoint.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Breakpoint --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | $mq-support: true !default; 5 | $mq-fixed-value: 64.000em !default; // 1024px / 16px 6 | 7 | @mixin bp($feature, $value) { 8 | // Media queries supported 9 | @if $mq-support == true { 10 | 11 | @media #{$screen} and ($feature: $value) { 12 | @content; 13 | } 14 | 15 | // Media queries not supported 16 | } @else { 17 | 18 | @if $feature == 'min-width' { 19 | @if $value <= $mq-fixed-value { 20 | @content; 21 | } 22 | } @else if $feature == 'max-width' { 23 | @if $value >= $mq-fixed-value { 24 | @content; 25 | } 26 | } 27 | 28 | } 29 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/notices.phtml: -------------------------------------------------------------------------------- 1 | 6 | displayNoscriptNotice()): ?> 7 | 13 | 14 | displayDemoNotice()): ?> 15 |
16 |

17 |

__('This is a demo store. Any orders placed through this store will not be honored or fulfilled.') ?>

18 |
19 | 20 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_buttons.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Buttons ------------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | .button { 5 | display: inline-block; 6 | background: $color-primary; 7 | border: 0; 8 | border-radius: 3px; 9 | font-size: em(16); 10 | padding: em(8, 16) em(15, 16); 11 | transition: all 0.1s ease-in-out 0s; 12 | color: $white; 13 | height: em(50, 16); 14 | line-height: 2.1; 15 | cursor: pointer; 16 | 17 | &:hover { 18 | background: darken($color-primary, 5%); 19 | color: $white; 20 | } 21 | } 22 | 23 | .buttons-set { 24 | margin-top: em(20); 25 | @extend %clearfix; 26 | 27 | a:not(.button) { 28 | float: left; 29 | font-size: em(14); 30 | margin-top: em(14, 14); 31 | } 32 | 33 | .button { 34 | float: right; 35 | } 36 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_if-resolution.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // If resolution ------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | @mixin if-min-resolution($dppx) { 5 | @include if-resolution(min, $dppx) { 6 | @content; 7 | } 8 | } 9 | 10 | @mixin if-max-resolution($dppx) { 11 | @include if-resolution(max, $dppx) { 12 | @content; 13 | } 14 | } 15 | 16 | @mixin if-resolution($prefix, $dppx) { 17 | $dpi: $dppx * 96; // 1px = 96dpi 18 | @media 19 | (-webkit-#{$prefix}-device-pixel-ratio: #{$dppx}), 20 | ( #{$prefix}--moz-device-pixel-ratio: #{$dppx}), 21 | ( -o-#{$prefix}-device-pixel-ratio: #{$dppx*2}/2), 22 | ( #{$prefix}-device-pixel-ratio: #{$dppx}), 23 | ( #{$prefix}-resolution: #{$dpi}dpi), 24 | ( #{$prefix}-resolution: #{$dppx}dppx) { 25 | @content; 26 | } 27 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "magento-boilerplate", 3 | "version": "1.0.0", 4 | "description": "RWD Magento Boilerplate", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/jasonalvis/magento-boilerplate" 8 | }, 9 | "keywords": [ 10 | "magento", 11 | "rwd", 12 | "sass", 13 | "grunt" 14 | ], 15 | "author": "Jason Alvis", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/jasonalvis/magento-boilerplate/issues" 19 | }, 20 | "homepage": "https://github.com/jasonalvis/magento-boilerplate", 21 | "dependencies": { 22 | "grunt": "^0.4.5", 23 | "grunt-contrib-concat": "^0.5.1", 24 | "grunt-contrib-jshint": "^0.11.2", 25 | "grunt-contrib-uglify": "^0.9.1", 26 | "grunt-contrib-watch": "^0.6.1", 27 | "grunt-sass": "^1.0.0", 28 | "grunt-spritesmith": "^4.7.1", 29 | "load-grunt-config": "^0.17.2", 30 | "node-sass": "^3.2.0" 31 | } 32 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/view/addtocart.phtml: -------------------------------------------------------------------------------- 1 | getProduct(); 3 | $buttonTitle = $this->__('Add to Cart'); 4 | ?> 5 | 6 | isSaleable()): ?> 7 |
8 | isGrouped()): ?> 9 |
10 | 11 | 12 |
13 | 14 | 15 |
16 | 17 | getChildHtml('', true, true) ?> 18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/account.js: -------------------------------------------------------------------------------- 1 | var SiteAccount = (function ($) { 2 | "use strict"; 3 | 4 | // private alias to settings 5 | var s; 6 | 7 | return { 8 | settings: function(){ 9 | this.bpLarge = 64.0625; 10 | }, 11 | 12 | init: function() { 13 | s = new this.settings(); 14 | 15 | this.toggleAccountNav(); 16 | }, 17 | 18 | toggleAccountNav: function(){ 19 | enquire.register('(max-width: ' + s.bpLarge + 'em)', { 20 | setup: function () { 21 | this.elements = $j('.block-account-nav .block-subtitle--nav'); 22 | }, 23 | match: function () { 24 | this.elements.toggleSingle(); 25 | }, 26 | unmatch: function () { 27 | this.elements.toggleSingle({destruct: true}); 28 | } 29 | }); 30 | } 31 | }; 32 | })(jQuery); 33 | 34 | 35 | $j(document).ready(function() { 36 | 37 | SiteAccount.init(); 38 | 39 | }); -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/category.js: -------------------------------------------------------------------------------- 1 | var SiteCategory = (function ($) { 2 | "use strict"; 3 | 4 | // private alias to settings 5 | var s; 6 | 7 | return { 8 | settings: function() { 9 | this.bpLarge = 64.0625; 10 | }, 11 | 12 | init: function() { 13 | s = new this.settings(); 14 | 15 | this.toggleLayeredNav(); 16 | }, 17 | 18 | toggleLayeredNav: function(){ 19 | enquire.register('(max-width: ' + s.bpLarge + 'em)', { 20 | setup: function () { 21 | this.elements = $j('.column-left .block-layered-nav .block-subtitle--filter'); 22 | }, 23 | match: function () { 24 | this.elements.toggleSingle(); 25 | }, 26 | unmatch: function () { 27 | this.elements.toggleSingle({destruct: true}); 28 | } 29 | }); 30 | } 31 | }; 32 | })(jQuery); 33 | 34 | 35 | $j(document).ready(function() { 36 | 37 | SiteCategory.init(); 38 | 39 | }); -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/popup.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | 16 |
17 | getChildHtml('after_body_start') ?> 18 | getChildHtml('content') ?> 19 | getChildHtml('before_body_end_js'); ?> 20 | getChildHtml('before_body_end') ?> 21 |
22 | getAbsoluteFooter() ?> 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/code/local/Boilerplate/All/sql/boilerplate_all_setup/mysql4-install-0.0.1.php: -------------------------------------------------------------------------------- 1 | startSetup(); 4 | $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 5 | $connection = $installer->getConnection(); 6 | 7 | // -------------------------------------------------------------- // 8 | // Sub-category listing ----------------------------------------- // 9 | // -------------------------------------------------------------- // 10 | 11 | // Create static cms block 12 | $connection->insert($installer->getTable('cms/block'), array( 13 | 'title' => 'Sub Category Listing', 14 | 'identifier' => 'sub-category-listing', 15 | 'content' => '{{block type="catalog/navigation" template="catalog/navigation/subcategory-listing.phtml"}}', 16 | 'creation_time' => now(), 17 | 'update_time' => now(), 18 | )); 19 | 20 | $connection->insert($installer->getTable('cms/block_store'), array( 21 | 'block_id' => $connection->lastInsertId(), 22 | 'store_id' => 0 23 | )); 24 | 25 | $installer->endSetup(); 26 | ?> -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_product-grid.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Product Grid ------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .products-grid { 5 | &.row { 6 | margin-left: em(-10); 7 | margin-right: em(-10); 8 | } 9 | 10 | .column { 11 | padding: em(10); 12 | width: (100% / 2); 13 | 14 | &:nth-child(2n+1) { 15 | clear: left; 16 | } 17 | 18 | @include bp(min-width, $medium-min) { 19 | width: (100% / 3); 20 | 21 | &:nth-child(2n+1) { 22 | clear: none; 23 | } 24 | 25 | &:nth-child(3n+1) { 26 | clear: left; 27 | } 28 | } 29 | 30 | @include bp(min-width, $large-min) { 31 | width: (100% / 4); 32 | 33 | &:nth-child(3n+1) { 34 | clear: none; 35 | } 36 | 37 | &:nth-child(4n+1) { 38 | clear: left; 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/category/view.phtml: -------------------------------------------------------------------------------- 1 | 8 | helper('catalog/output'); 10 | $_category = $this->getCurrentCategory(); 11 | ?> 12 | 13 | 15 |

categoryAttribute($_category, $_category->getName(), 'name') ?>

16 | 17 | */ ?> 18 | 19 | getMessagesBlock()->getGroupedHtml() ?> 20 | 21 | getCurrentCategory()->getDescription()): ?> 22 |
23 | categoryAttribute($_category, $_description, 'description') ?> 24 |
25 | 26 | 27 | isContentMode()): ?> 28 | 29 | getCmsBlockHtml() ?> 30 | 31 | isMixedMode()): ?> 32 | 33 | getCmsBlockHtml() ?> 34 | getProductListHtml() ?> 35 | 36 | 37 | 38 | getProductListHtml() ?> 39 | 40 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_css-triangle.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // CSS triangle ------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin css-triangle($triangle-size, $triangle-color, $triangle-direction) { 5 | content: ""; 6 | display: block; 7 | width: 0; 8 | height: 0; 9 | border: inset $triangle-size; 10 | 11 | @if ($triangle-direction == top) { 12 | border-color: $triangle-color transparent transparent transparent; 13 | border-top-style: solid; 14 | } 15 | @if ($triangle-direction == bottom) { 16 | border-color: transparent transparent $triangle-color transparent; 17 | border-bottom-style: solid; 18 | } 19 | @if ($triangle-direction == left) { 20 | border-color: transparent transparent transparent $triangle-color; 21 | border-left-style: solid; 22 | } 23 | @if ($triangle-direction == right) { 24 | border-color: transparent $triangle-color transparent transparent; 25 | border-right-style: solid; 26 | } 27 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/empty.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | 16 |
17 | getChildHtml('after_body_start') ?> 18 | getChildHtml('global_messages') ?> 19 | getChildHtml('content') ?> 20 | getChildHtml('before_body_end_js'); ?> 21 | getChildHtml('before_body_end') ?> 22 | getAbsoluteFooter() ?> 23 |
24 | 25 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_toolbar.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Toolbar ------------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | .toolbar { 5 | padding: em(20) 0 em(10); 6 | border-top: 1px solid $concrete; 7 | @extend %clearfix; 8 | 9 | &.toolbar-bottom { 10 | border-bottom: 1px solid $concrete; 11 | } 12 | 13 | p, 14 | label, 15 | select { 16 | font-size: em(14); 17 | color: $boulder; 18 | } 19 | 20 | label { 21 | padding-right: em(5, 14); 22 | } 23 | 24 | // select { 25 | // width: em(100, 14); 26 | // } 27 | 28 | // label, 29 | // select, 30 | // .style-select { 31 | // display: inline-block; 32 | // } 33 | 34 | .amount { 35 | float: left; 36 | } 37 | 38 | .limiter, 39 | .pages, 40 | .sort-by { 41 | float: right; 42 | } 43 | 44 | .sort-by, 45 | .pages { 46 | margin-left: em(20); 47 | } 48 | 49 | .pages { 50 | margin-top: em(2); 51 | } 52 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/account/_login.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Login -------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .account-login { 5 | .row { 6 | margin: 0; 7 | } 8 | 9 | .column { 10 | background-color: $white; 11 | padding: 0; 12 | } 13 | 14 | .column-inner { 15 | background-color: $concrete; 16 | padding: em(30); 17 | } 18 | 19 | .registration-open { 20 | .column-left { 21 | @include bp(min-width, $large-min) { 22 | border-right: em(30) solid $white; 23 | width: 51%; 24 | } 25 | } 26 | 27 | .column-right { 28 | margin-top: em(30); 29 | 30 | @include bp(min-width, $large-min) { 31 | width: 49%; 32 | margin-top: 0; 33 | } 34 | } 35 | } 36 | 37 | .account-login-contents { 38 | @include bp(min-width, $large-min) { 39 | background-color: $concrete; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/directory/currency.phtml: -------------------------------------------------------------------------------- 1 | 8 | getCurrencyCount()>1): ?> 9 |
10 | 13 | 14 |
15 |
16 | 23 |
24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/newsletter/subscribe.phtml: -------------------------------------------------------------------------------- 1 |
2 |

__('Subscribe to our newsletter to receive news and offers by email. We don\'t do spam, just the good stuff.'); ?>

3 | 4 |
5 |
6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 | 19 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/product/_extra.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Product extra ------------------------------------------------ // 3 | // -------------------------------------------------------------- // 4 | .product-extra { 5 | background-color: $concrete; 6 | padding: em(80) 0; 7 | 8 | .tab-nav { 9 | text-align: center; 10 | text-transform: uppercase; 11 | font-weight: bold; 12 | font-size: 0; 13 | 14 | a { 15 | display: inline-block; 16 | font-size: 12px; 17 | padding-bottom: em(13, 12); 18 | border-bottom: 1px solid $boulder; 19 | width: 50%; 20 | color: $color-secondary; 21 | 22 | @include bp(min-width, $medium-min) { 23 | width: 290px; 24 | } 25 | } 26 | 27 | a.open { 28 | border-bottom: 2px solid $color-secondary; 29 | padding-bottom: em(12, 12); 30 | } 31 | } 32 | 33 | .tab-pane { 34 | display: none; 35 | margin-top: em(20); 36 | 37 | &.open { 38 | display: block; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.video.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Owl Carousel - Video Plugin 3 | */ 4 | 5 | .owl-carousel{ 6 | .owl-video-wrapper { 7 | position: relative; 8 | height: 100%; 9 | background: #000; 10 | } 11 | .owl-video-play-icon { 12 | position: absolute; 13 | height: 80px; 14 | width: 80px; 15 | left: 50%; 16 | top: 50%; 17 | margin-left: -40px; 18 | margin-top: -40px; 19 | background: url("owl.video.play.png") no-repeat; 20 | cursor: pointer; 21 | z-index: 1; 22 | -webkit-backface-visibility: hidden; 23 | transition: scale, 100ms, ease; 24 | } 25 | .owl-video-play-icon:hover { 26 | transition: scale(1.3, 1.3); 27 | } 28 | .owl-video-playing .owl-video-tn, 29 | .owl-video-playing .owl-video-play-icon { 30 | display: none; 31 | } 32 | .owl-video-tn { 33 | opacity: 0; 34 | height: 100%; 35 | background-position: center center; 36 | background-repeat: no-repeat; 37 | -webkit-background-size: contain; 38 | -moz-background-size: contain; 39 | -o-background-size: contain; 40 | background-size: contain; 41 | transition: opacity, 400ms, ease; 42 | } 43 | .owl-video-frame { 44 | position: relative; 45 | z-index: 1; 46 | height: 100%; 47 | width: 100%; 48 | } 49 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/navigation.phtml: -------------------------------------------------------------------------------- 1 |
2 |

__('Account Navigation'); ?>

3 | 4 | 29 |
-------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/switch/languages.phtml: -------------------------------------------------------------------------------- 1 | 8 | getStores())>1): ?> 9 |
10 | 17 | 18 |
19 |
20 | 26 |
27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/address.phtml: -------------------------------------------------------------------------------- 1 | getCustomer()->getDefaultShipping(); 3 | $_billingAdd = Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling(); 4 | ?> 5 | 6 |
7 |
8 |
9 |

__('Delivery Address'); ?>

10 | 11 |
getPrimaryShippingAddressHtml() ?>
12 | 13 | __('Change Shipping Address') ?> 14 | 15 |
16 | 17 |
18 |

__('Billing Address'); ?>

19 | 20 |
getPrimaryBillingAddressHtml() ?>
21 | 22 | __('Change Billing Address') ?> 23 | 24 |
25 |
26 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_navigation.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Layered Navigation ------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .block-layered-nav { 5 | .block-content { 6 | @include accordion; 7 | } 8 | 9 | li { 10 | margin: em(5) 0; 11 | 12 | .count { 13 | color: #bcbcbc; 14 | } 15 | } 16 | 17 | .block-subtitle--filter { 18 | position: relative; 19 | cursor: pointer; 20 | background-color: $color-secondary; 21 | color: $white; 22 | font-weight: bold; 23 | font-size: em(14); 24 | padding: em(10, 14) em(15, 14); 25 | margin-bottom: 1px; 26 | 27 | span:after { 28 | content: ""; 29 | display: block; 30 | position: absolute; 31 | top: 50%; 32 | right: 15px; 33 | margin-top: -5px; 34 | @include sprite-2x($sprite__icon-plus-white, $sprite-2x__icon-plus-white); 35 | } 36 | 37 | &.active span:after { 38 | @include sprite-2x($sprite__icon-minus-white, $sprite-2x__icon-minus-white); 39 | } 40 | 41 | @include bp(min-width, $large-min) { 42 | display: none; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/account/_dashboard.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Dashboard ---------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .account-block { 5 | margin-bottom: em(30); 6 | 7 | .account-block-heading { 8 | margin-bottom: em(20); 9 | @extend %clearfix; 10 | 11 | h1, 12 | h2 { 13 | float: left; 14 | margin: 0; 15 | } 16 | 17 | a { 18 | float: right; 19 | } 20 | } 21 | 22 | .column { 23 | margin-bottom: em(30); 24 | 25 | &:last-child { 26 | margin-bottom: 0; 27 | } 28 | } 29 | } 30 | 31 | .account-block-bg { 32 | background-color: $concrete; 33 | padding: em(30); 34 | } 35 | 36 | .account-block-border { 37 | border: 1px solid $concrete; 38 | padding: em(30); 39 | } 40 | 41 | // Wishlist 42 | .account-block-wishlist { 43 | .product-item { 44 | margin-bottom: 0; 45 | } 46 | } 47 | 48 | // Subscribe 49 | .account-block-subscribe { 50 | li { 51 | margin: 0; 52 | } 53 | } 54 | 55 | // Address Book 56 | .account-block-book { 57 | .column { 58 | @include bp(min-width, $medium-min) { 59 | width: 50%; 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/mixins/_accordion.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Accordion ---------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | @mixin accordion(){ 5 | border-bottom: 1px solid $concrete; 6 | 7 | dl { 8 | > dt, 9 | > dd { 10 | font-size: em(14); 11 | } 12 | 13 | > dt { 14 | position: relative; 15 | border-top: 1px solid $concrete; 16 | padding: em(15, 14) 0; 17 | cursor: pointer; 18 | 19 | span:after { 20 | content: ""; 21 | display: block; 22 | position: absolute; 23 | top: 50%; 24 | right: 5px; 25 | margin-top: -5px; 26 | @include sprite-2x($sprite__icon-plus, $sprite-2x__icon-plus); 27 | } 28 | } 29 | 30 | dd { 31 | display: none; 32 | padding-bottom: em(15, 14); 33 | } 34 | } 35 | 36 | &.accordion-open { 37 | > dl { 38 | > dt.open span:after { 39 | @include sprite-2x($sprite__icon-minus, $sprite-2x__icon-minus); 40 | } 41 | 42 | > dd.open { 43 | display: block; 44 | } 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.theme.scss: -------------------------------------------------------------------------------- 1 | 2 | .owl-theme { 3 | // Styling Next and Prev buttons 4 | .owl-nav { 5 | margin-top: 10px; 6 | text-align: center; 7 | -webkit-tap-highlight-color: transparent; 8 | 9 | [class*='owl-'] { 10 | color: $nav-color; 11 | font-size: $nav-font-size; 12 | margin: $nav-margin; 13 | padding: $nav-padding; 14 | background: $nav-background; 15 | display: inline-block; 16 | cursor: pointer; 17 | border-radius: $nav-rounded; 18 | 19 | &:hover { 20 | background: $nav-background-hover; 21 | color:$nav-color-hover; 22 | text-decoration: none; 23 | } 24 | } 25 | .disabled { 26 | opacity: $nav-disabled-opacity; 27 | cursor: default; 28 | } 29 | } 30 | 31 | // Styling dots 32 | .owl-nav.disabled + .owl-dots { 33 | margin-top: 10px; 34 | } 35 | .owl-dots { 36 | text-align: center; 37 | -webkit-tap-highlight-color: transparent; 38 | 39 | .owl-dot { 40 | display: inline-block; 41 | zoom: 1; 42 | *display: inline; 43 | 44 | span { 45 | width: $dot-width; 46 | height: $dot-height; 47 | margin: $dot-margin; 48 | background: $dot-background; 49 | display: block; 50 | -webkit-backface-visibility: visible; 51 | transition: opacity, 200ms, ease; 52 | border-radius: $nav-rounded; 53 | } 54 | 55 | &.active, 56 | &:hover { 57 | span { 58 | background: $dot-background-active; 59 | } 60 | } 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/newsletter.phtml: -------------------------------------------------------------------------------- 1 | getSubscriptionObject()->isSubscribed(); 3 | ?> 4 | 5 |
6 |

__('Newsletters'); ?>

7 |

__('Subscribe to our newsletter to receive exclusive news and offers by email.'); ?>

8 | 9 |
10 | getBlockHtml('formkey')?> 11 | 12 | 20 |
21 | 22 | 31 |
-------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/layer/view.phtml: -------------------------------------------------------------------------------- 1 | 8 | canShowBlock()): ?> 9 |
10 |
11 | getStateHtml() ?> 12 | 13 | getLayer()->getState()->getFilters()): ?> 14 | 15 | 16 | 17 | canShowOptions()): ?> 18 |

__('Filter') ?>

19 | 20 |
21 | getFilters() ?> 22 | 23 | getItemsCount()): ?> 24 |
__($_filter->getName()) ?>
25 |
getHtml() ?>
26 | 27 | 28 |
29 | 30 | 31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalogsearch/form.mini.phtml: -------------------------------------------------------------------------------- 1 | helper('catalogsearch'); 5 | ?> 6 | 7 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/print.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | 16 |
17 | 23 | getChildHtml('content') ?> 24 |
25 | 26 |
27 | getAbsoluteFooter() ?> 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/1column.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>> 16 | getChildHtml('after_body_start') ?> 17 | getChildHtml('global_notices') ?> 18 | 19 |
20 | getChildHtml('header') ?> 21 | 22 |
23 | getChildHtml('breadcrumbs') ?> 24 | getChildHtml('global_messages') ?> 25 | getChildHtml('content') ?> 26 |
27 | 28 | getChildHtml('footer_before') ?> 29 | getChildHtml('footer') ?> 30 | getChildHtml('global_cookie_notice') ?> 31 | getChildHtml('before_body_end_js'); ?> 32 | getChildHtml('before_body_end') ?> 33 |
34 | 35 | getAbsoluteFooter() ?> 36 | 37 | -------------------------------------------------------------------------------- /app/code/local/Boilerplate/All/etc/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0.0.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | boilerplate/all/all.xml 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | boilerplate/all/all.xml 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | Boilerplate_All_Block_Account_Navigation 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | Boilerplate_All 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 1 51 | 1 52 | alvisjason 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/form/forgotpassword.phtml: -------------------------------------------------------------------------------- 1 |
2 | getMessagesBlock()->getGroupedHtml() ?> 3 | 4 |
5 |
6 |

__('Retrieve Your Password Here') ?>

7 |

__('Please enter your email address below. You will receive a link to reset your password.') ?>

8 | 9 |
    10 |
  • 11 | 12 |
    13 | 14 |
    15 |
  • 16 | getChildHtml('form.additional.info'); ?> 17 |
18 | 19 |
20 | __('Back') ?> 21 | 22 |
23 |
24 |
25 | 26 | 31 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.support.modernizr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Modernizr Support Plugin 3 | * 4 | * @version 2.0.0 5 | * @author Vivid Planet Software GmbH 6 | * @author Artus Kolanowski 7 | * @license The MIT License (MIT) 8 | */ 9 | ;(function($, Modernizr, window, document, undefined) { 10 | 11 | var events = { 12 | transition: { 13 | end: { 14 | WebkitTransition: 'webkitTransitionEnd', 15 | MozTransition: 'transitionend', 16 | OTransition: 'oTransitionEnd', 17 | transition: 'transitionend' 18 | } 19 | }, 20 | animation: { 21 | end: { 22 | WebkitAnimation: 'webkitAnimationEnd', 23 | MozAnimation: 'animationend', 24 | OAnimation: 'oAnimationEnd', 25 | animation: 'animationend' 26 | } 27 | } 28 | }; 29 | 30 | if (!Modernizr) { 31 | throw new Error('Modernizr is not loaded.'); 32 | } 33 | 34 | $.each([ 'cssanimations', 'csstransitions', 'csstransforms', 'csstransforms3d', 'prefixed' ], function(i, property) { 35 | if (typeof Modernizr[property] == 'undefined') { 36 | throw new Error([ 'Modernizr "', property, '" is not loaded.' ].join('')); 37 | } 38 | }); 39 | 40 | if (Modernizr.csstransitions) { 41 | /* jshint -W053 */ 42 | $.support.transition = new String(Modernizr.prefixed('transition')) 43 | $.support.transition.end = events.transition.end[ $.support.transition ]; 44 | } 45 | 46 | if (Modernizr.cssanimations) { 47 | /* jshint -W053 */ 48 | $.support.animation = new String(Modernizr.prefixed('animation')) 49 | $.support.animation.end = events.animation.end[ $.support.animation ]; 50 | } 51 | 52 | if (Modernizr.csstransforms) { 53 | /* jshint -W053 */ 54 | $.support.transform = new String(Modernizr.prefixed('transform')); 55 | $.support.transform3d = Modernizr.csstransforms3d; 56 | } 57 | })(window.Zepto || window.jQuery, window.Modernizr, window, document); 58 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/toggle.single.js: -------------------------------------------------------------------------------- 1 | // ============================================== 2 | // UI Pattern - ToggleSingle 3 | // ============================================== 4 | 5 | // Use this plugin to toggle the visibility of content based on a toggle link/element. 6 | // This pattern differs from the accordion functionality in the Toggle pattern in that each toggle group acts 7 | // independently of the others. It is named so as not to be confused with the Toggle pattern below 8 | // 9 | // This plugin requires a specific markup structure. The plugin expects a set of elements that it 10 | // will use as the toggle link. It then hides all immediately following siblings and toggles the sibling's 11 | // visibility when the toggle link is clicked. 12 | // 13 | // Example markup: 14 | //
15 | //
Trigger
16 | //
Content that should show when
17 | //
18 | // 19 | // JS: jQuery('.block-title').toggleSingle(); 20 | // 21 | // Options: 22 | // destruct: defaults to false, but if true, the plugin will remove itself, display content, and remove event handlers 23 | jQuery.fn.toggleSingle = function (options) { 24 | // passing destruct: true allows 25 | var settings = $j.extend({ 26 | destruct: false 27 | }, options); 28 | 29 | return this.each(function () { 30 | if (!settings.destruct) { 31 | $j(this).on('click', function () { 32 | $j(this).toggleClass('active').next().toggleClass('no-display'); 33 | }); 34 | 35 | // Hide the content 36 | $j(this).next().addClass('no-display'); 37 | } else { 38 | // Remove event handler so that the toggle link can no longer be used 39 | $j(this).off('click'); 40 | 41 | // Remove all classes that were added by this plugin 42 | $j(this).removeClass('active').next().removeClass('no-display'); 43 | } 44 | }); 45 | }; -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_product-item.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Product Item ------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .product-item { 5 | .product-item-image { 6 | display: block; 7 | position: relative; 8 | } 9 | 10 | .product-item-info { 11 | text-align: center; 12 | padding: em(20) 0 em(10); 13 | } 14 | 15 | .product-item-name { 16 | font-weight: normal; 17 | font-size: em(16); 18 | margin-bottom: em(10, 16); 19 | 20 | a { 21 | color: $color-secondary; 22 | } 23 | } 24 | 25 | .price-box { 26 | font-size: em(14); 27 | color: $boulder; 28 | 29 | p { 30 | display: inline-block; 31 | padding: 0 em(5, 14); 32 | } 33 | } 34 | 35 | .old-price { 36 | .price { 37 | text-decoration: line-through; 38 | } 39 | } 40 | 41 | .product-item-overlay, 42 | .product-item-overlay .link { 43 | position: absolute; 44 | top: 0; 45 | left: 0; 46 | width: 100%; 47 | height: 100%; 48 | } 49 | 50 | .product-item-overlay { 51 | opacity: 0; 52 | transition: opacity 0.5s ease 0s; 53 | background-color: rgba(0, 0, 0, 0.55); 54 | color: $white; 55 | font-size: em(12); 56 | padding: em(20); 57 | text-transform: uppercase; 58 | 59 | a { 60 | color: $white; 61 | } 62 | 63 | a, 64 | span { 65 | position: relative; 66 | display: block; 67 | margin-bottom: em(5, 12); 68 | } 69 | 70 | .button { 71 | position: absolute; 72 | } 73 | } 74 | 75 | .button { 76 | bottom: em(20); 77 | left: em(20); 78 | } 79 | 80 | &:hover { 81 | .product-item-overlay { 82 | opacity: 1; 83 | } 84 | } 85 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/2columns-right.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>> 16 | getChildHtml('after_body_start') ?> 17 | getChildHtml('global_notices') ?> 18 | 19 |
20 | getChildHtml('header') ?> 21 | 22 |
23 | getChildHtml('breadcrumbs') ?> 24 | getChildHtml('content_before') ?> 25 | 26 |
27 |
28 | getChildHtml('global_messages') ?> 29 | getChildHtml('content') ?> 30 |
31 | 32 |
33 | getChildHtml('right') ?> 34 |
35 |
36 |
37 | 38 | getChildHtml('footer_before') ?> 39 | getChildHtml('footer') ?> 40 | getChildHtml('global_cookie_notice') ?> 41 | getChildHtml('before_body_end_js'); ?> 42 | getChildHtml('before_body_end') ?> 43 |
44 | 45 | getAbsoluteFooter() ?> 46 | 47 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/pages/account/_navigation.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Navigation --------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .block-account-nav { 5 | margin-bottom: em(30); 6 | 7 | .block-subtitle--nav { 8 | position: relative; 9 | cursor: pointer; 10 | background-color: $color-secondary; 11 | color: $white; 12 | font-weight: bold; 13 | font-size: em(14); 14 | padding: em(10, 14) em(15, 14); 15 | margin-bottom: 1px; 16 | 17 | span:after { 18 | content: ""; 19 | display: block; 20 | position: absolute; 21 | top: 50%; 22 | right: 15px; 23 | margin-top: -5px; 24 | @include sprite-2x($sprite__icon-plus-white, $sprite-2x__icon-plus-white); 25 | } 26 | 27 | &.active span:after { 28 | @include sprite-2x($sprite__icon-minus-white, $sprite-2x__icon-minus-white); 29 | } 30 | 31 | @include bp(min-width, $large-min) { 32 | display: none; 33 | } 34 | } 35 | 36 | ul { 37 | border-bottom: 1px solid $concrete; 38 | @extend %clearfix; 39 | } 40 | 41 | ul > li { 42 | font-size: em(14); 43 | border-bottom: 1px solid $concrete; 44 | 45 | @include bp(min-width, $large-min) { 46 | float: left; 47 | border-bottom: 0; 48 | padding-right: em(30); 49 | } 50 | 51 | a { 52 | display: block; 53 | position: relative; 54 | padding: em(15, 14) 0; 55 | color: $mine-shaft; 56 | } 57 | 58 | @include bp(max-width, $large-max) { 59 | span:after { 60 | content: ""; 61 | display: block; 62 | position: absolute; 63 | top: 50%; 64 | right: 5px; 65 | margin-top: -5px; 66 | @include sprite-2x($sprite__icon-right, $sprite-2x__icon-right); 67 | } 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/enquire.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * enquire.js v2.1.2 - Awesome Media Queries in JavaScript 3 | * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/enquire.js 4 | * License: MIT (http://www.opensource.org/licenses/mit-license.php) 5 | */ 6 | !function(a,b,c){var d=window.matchMedia;"undefined"!=typeof module&&module.exports?module.exports=c(d):"function"==typeof define&&define.amd?define(function(){return b[a]=c(d)}):b[a]=c(d)}("enquire",this,function(a){"use strict";function b(a,b){var c,d=0,e=a.length;for(d;e>d&&(c=b(a[d],d),c!==!1);d++);}function c(a){return"[object Array]"===Object.prototype.toString.apply(a)}function d(a){return"function"==typeof a}function e(a){this.options=a,!a.deferSetup&&this.setup()}function f(b,c){this.query=b,this.isUnconditional=c,this.handlers=[],this.mql=a(b);var d=this;this.listener=function(a){d.mql=a,d.assess()},this.mql.addListener(this.listener)}function g(){if(!a)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!a("only all").matches}return e.prototype={setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a){return this.options===a||this.options.match===a}},f.prototype={addHandler:function(a){var b=new e(a);this.handlers.push(b),this.matches()&&b.on()},removeHandler:function(a){var c=this.handlers;b(c,function(b,d){return b.equals(a)?(b.destroy(),!c.splice(d,1)):void 0})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){b(this.handlers,function(a){a.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a=this.matches()?"on":"off";b(this.handlers,function(b){b[a]()})}},g.prototype={register:function(a,e,g){var h=this.queries,i=g&&this.browserIsIncapable;return h[a]||(h[a]=new f(a,i)),d(e)&&(e={match:e}),c(e)||(e=[e]),b(e,function(b){d(b)&&(b={match:b}),h[a].addHandler(b)}),this},unregister:function(a,b){var c=this.queries[a];return c&&(b?c.removeHandler(b):(c.clear(),delete this.queries[a])),this}},new g}); -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/3columns.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>> 16 | getChildHtml('after_body_start') ?> 17 | getChildHtml('global_notices') ?> 18 | 19 |
20 | getChildHtml('header') ?> 21 | 22 |
23 | getChildHtml('breadcrumbs') ?> 24 | getChildHtml('content_before') ?> 25 | 26 |
27 |
28 | getChildHtml('left_first') ?> 29 |
30 | 31 |
32 | getChildHtml('global_messages') ?> 33 | getChildHtml('content') ?> 34 |
35 | 36 |
37 | getChildHtml('right') ?> 38 |
39 |
40 |
41 | 42 | getChildHtml('footer_before') ?> 43 | getChildHtml('footer') ?> 44 | getChildHtml('global_cookie_notice') ?> 45 | getChildHtml('before_body_end_js'); ?> 46 | getChildHtml('before_body_end') ?> 47 |
48 | 49 | getAbsoluteFooter() ?> 50 | 51 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/navigation/subcategory-listing.phtml: -------------------------------------------------------------------------------- 1 | load($_currentCat->getId()); 5 | $_children = $_catModel->getChildrenCategories(); 6 | ?> 7 | 8 | 0): ?> 9 |
10 |
11 | 12 | load($_cat->getId()); 14 | $_categoryThumbnail = $_category->getThumbnail(); 15 | $_categoryDesc = $_category->getDescription(); 16 | 17 | if ($_categoryThumbnail != null) { 18 | $_thumb = Mage::getBaseUrl('media') . 'catalog/category/' . $_categoryThumbnail; 19 | } else { 20 | $_thumb = $this->getSkinUrl("images/catalog/product/placeholder/image.jpg"); 21 | } 22 | ?> 23 | 24 |
25 |
26 |
27 | <?php echo $_category->getName() ?> 28 | 29 | 30 |

truncate(strip_tags($_categoryDesc), 130); ?>

31 | 32 |
33 | 34 |
35 |

36 | 37 | getName(); ?> 38 | 39 |

40 |
41 |
42 |
43 | 44 |
45 |
46 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/layout/_footer.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Footer ------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .page-footer { 5 | background-color: $color-secondary; 6 | color: $boulder; 7 | margin-top: em(50); 8 | padding: em(40) 0; 9 | 10 | @include bp(min-width, $large-min) { 11 | margin-top: em(100); 12 | padding: em(75) 0; 13 | } 14 | 15 | .column-left { 16 | @include bp(min-width, $large-min) { 17 | float: right; 18 | width: 35%; 19 | } 20 | } 21 | 22 | .column-right { 23 | @include bp(min-width, $large-min) { 24 | width: 60%; 25 | } 26 | } 27 | 28 | ul { 29 | margin-bottom: em(20); 30 | 31 | @include bp(min-width, $medium-min) { 32 | float: left; 33 | margin-right: em(60); 34 | margin-bottom: 0; 35 | } 36 | } 37 | 38 | p, 39 | a, 40 | input, 41 | .button { 42 | font-size: em(14); 43 | line-height: 1.8; 44 | } 45 | 46 | a { 47 | &:hover { 48 | color: $white; 49 | } 50 | } 51 | } 52 | 53 | // Copyright 54 | .page-footer .copyright { 55 | float: left; 56 | width: 100%; 57 | margin: em(20) 0 0; 58 | 59 | @include bp(min-width, $medium-min) { 60 | margin-top: em(40); 61 | } 62 | } 63 | 64 | // Newsletter subscribe 65 | .page-footer .block-subscribe { 66 | margin-bottom: em(40); 67 | 68 | @include bp(min-width, $large-min) { 69 | margin-bottom: 0; 70 | } 71 | 72 | .input-group { 73 | max-width: em(470); 74 | } 75 | 76 | input { 77 | background: $color-secondary; 78 | border-color: lighten($color-secondary, 10%); 79 | color: $boulder; 80 | 81 | &:focus { 82 | border-color: $color-primary; 83 | color: $white; 84 | } 85 | } 86 | 87 | .button { 88 | background: lighten($color-secondary, 10%); 89 | color: $alto; 90 | 91 | &:hover { 92 | background: $color-primary; 93 | color: $white; 94 | } 95 | } 96 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/lib/_owl.carousel.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Core Owl Carousel CSS File 3 | */ 4 | .owl-carousel { 5 | display: none; 6 | width: 100%; 7 | -webkit-tap-highlight-color: transparent; 8 | /* position relative and z-index fix webkit rendering fonts issue */ 9 | position: relative; 10 | z-index: 1; 11 | 12 | .owl-stage { 13 | position: relative; 14 | -ms-touch-action: pan-Y; 15 | } 16 | 17 | .owl-stage:after { 18 | content: "."; 19 | display: block; 20 | clear: both; 21 | visibility: hidden; 22 | line-height: 0; 23 | height: 0; 24 | } 25 | 26 | .owl-stage-outer { 27 | position: relative; 28 | overflow: hidden; 29 | /* fix for flashing background */ 30 | -webkit-transform: translate3d(0px, 0px, 0px); 31 | } 32 | 33 | .owl-item { 34 | position: relative; 35 | min-height: 1px; 36 | float: left; 37 | -webkit-backface-visibility: hidden; 38 | -webkit-tap-highlight-color: transparent; 39 | -webkit-touch-callout: none; 40 | } 41 | .owl-item img { 42 | display: block; 43 | width: 100%; 44 | -webkit-transform-style: preserve-3d; 45 | } 46 | 47 | .owl-nav.disabled, 48 | .owl-dots.disabled { 49 | display: none; 50 | } 51 | 52 | .owl-nav .owl-prev, 53 | .owl-nav .owl-next, 54 | .owl-dot { 55 | cursor: pointer; 56 | cursor: hand; 57 | -webkit-user-select: none; 58 | -khtml-user-select: none; 59 | -moz-user-select: none; 60 | -ms-user-select: none; 61 | user-select: none; 62 | } 63 | 64 | &.owl-loaded { 65 | display: block; 66 | } 67 | 68 | &.owl-loading { 69 | opacity: 0; 70 | display: block; 71 | } 72 | 73 | &.owl-hidden { 74 | opacity: 0; 75 | } 76 | 77 | &.owl-refresh .owl-item { 78 | display: none; 79 | } 80 | 81 | &.owl-drag .owl-item { 82 | -webkit-user-select: none; 83 | -moz-user-select: none; 84 | -ms-user-select: none; 85 | user-select: none; 86 | } 87 | 88 | &.owl-grab { 89 | cursor: move; 90 | cursor: -webkit-grab; 91 | cursor: -o-grab; 92 | cursor: -ms-grab; 93 | cursor: grab; 94 | } 95 | 96 | &.owl-rtl { 97 | direction: rtl; 98 | } 99 | 100 | &.owl-rtl .owl-item { 101 | float: right; 102 | } 103 | } 104 | 105 | /* No Js */ 106 | .no-js .owl-carousel { 107 | display: block; 108 | } 109 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/layout/cms.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | cms_menu 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | std 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.support.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Support Plugin 3 | * 4 | * @version 2.0.0 5 | * @author Vivid Planet Software GmbH 6 | * @author Artus Kolanowski 7 | * @license The MIT License (MIT) 8 | */ 9 | ;(function($, window, document, undefined) { 10 | 11 | var style = $('').get(0).style, 12 | prefixes = 'Webkit Moz O ms'.split(' '), 13 | events = { 14 | transition: { 15 | end: { 16 | WebkitTransition: 'webkitTransitionEnd', 17 | MozTransition: 'transitionend', 18 | OTransition: 'oTransitionEnd', 19 | transition: 'transitionend' 20 | } 21 | }, 22 | animation: { 23 | end: { 24 | WebkitAnimation: 'webkitAnimationEnd', 25 | MozAnimation: 'animationend', 26 | OAnimation: 'oAnimationEnd', 27 | animation: 'animationend' 28 | } 29 | } 30 | }, 31 | tests = { 32 | csstransforms: function() { 33 | return !!test('transform'); 34 | }, 35 | csstransforms3d: function() { 36 | return !!test('perspective'); 37 | }, 38 | csstransitions: function() { 39 | return !!test('transition'); 40 | }, 41 | cssanimations: function() { 42 | return !!test('animation'); 43 | } 44 | }; 45 | 46 | function test(property, prefixed) { 47 | var result = false, 48 | upper = property.charAt(0).toUpperCase() + property.slice(1); 49 | 50 | $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) { 51 | if (style[property] !== undefined) { 52 | result = prefixed ? property : true; 53 | return false; 54 | } 55 | }); 56 | 57 | return result; 58 | } 59 | 60 | function prefixed(property) { 61 | return test(property, true); 62 | } 63 | 64 | if (tests.csstransitions()) { 65 | /* jshint -W053 */ 66 | $.support.transition = new String(prefixed('transition')) 67 | $.support.transition.end = events.transition.end[ $.support.transition ]; 68 | } 69 | 70 | if (tests.cssanimations()) { 71 | /* jshint -W053 */ 72 | $.support.animation = new String(prefixed('animation')) 73 | $.support.animation.end = events.animation.end[ $.support.animation ]; 74 | } 75 | 76 | if (tests.csstransforms()) { 77 | /* jshint -W053 */ 78 | $.support.transform = new String(prefixed('transform')); 79 | $.support.transform3d = tests.csstransforms3d(); 80 | } 81 | 82 | })(window.Zepto || window.jQuery, window, document); 83 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/2columns-left.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | getChildHtml('head') ?> 13 | 14 | 15 | getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>> 16 | getChildHtml('after_body_start') ?> 17 | getChildHtml('global_notices') ?> 18 | 19 |
20 | getChildHtml('header') ?> 21 | 22 |
23 | getChildHtml('breadcrumbs') ?> 24 | getChildHtml('content_before') ?> 25 | 26 |
27 |
28 | getChildHtml('left_first') ?> 29 |
30 | 31 |
32 | getChildHtml('global_messages') ?> 33 | getChildHtml('content') ?> 34 |
35 |
36 | 37 | 38 | getChildHtml('left_first')): ?> 39 | 40 | 41 |
42 | 43 | getChildHtml('footer_before') ?> 44 | getChildHtml('footer') ?> 45 | getChildHtml('global_cookie_notice') ?> 46 | getChildHtml('before_body_end_js'); ?> 47 | getChildHtml('before_body_end') ?> 48 |
49 | 50 | getAbsoluteFooter() ?> 51 | 52 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autoheight.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AutoHeight Plugin 3 | * @version 2.0.0 4 | * @author Bartosz Wojciechowski 5 | * @license The MIT License (MIT) 6 | */ 7 | ;(function($, window, document, undefined) { 8 | 9 | /** 10 | * Creates the auto height plugin. 11 | * @class The Auto Height Plugin 12 | * @param {Owl} carousel - The Owl Carousel 13 | */ 14 | var AutoHeight = function(carousel) { 15 | /** 16 | * Reference to the core. 17 | * @protected 18 | * @type {Owl} 19 | */ 20 | this._core = carousel; 21 | 22 | /** 23 | * All event handlers. 24 | * @protected 25 | * @type {Object} 26 | */ 27 | this._handlers = { 28 | 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) { 29 | if (e.namespace && this._core.settings.autoHeight) { 30 | this.update(); 31 | } 32 | }, this), 33 | 'changed.owl.carousel': $.proxy(function(e) { 34 | if (e.namespace && this._core.settings.autoHeight && e.property.name == 'position'){ 35 | this.update(); 36 | } 37 | }, this), 38 | 'loaded.owl.lazy': $.proxy(function(e) { 39 | if (e.namespace && this._core.settings.autoHeight 40 | && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { 41 | this.update(); 42 | } 43 | }, this) 44 | }; 45 | 46 | // set default options 47 | this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); 48 | 49 | // register event handlers 50 | this._core.$element.on(this._handlers); 51 | }; 52 | 53 | /** 54 | * Default options. 55 | * @public 56 | */ 57 | AutoHeight.Defaults = { 58 | autoHeight: false, 59 | autoHeightClass: 'owl-height' 60 | }; 61 | 62 | /** 63 | * Updates the view. 64 | */ 65 | AutoHeight.prototype.update = function() { 66 | this._core.$stage.parent() 67 | .height(this._core.$stage.children().eq(this._core.current()).height()) 68 | .addClass(this._core.settings.autoHeightClass); 69 | }; 70 | 71 | AutoHeight.prototype.destroy = function() { 72 | var handler, property; 73 | 74 | for (handler in this._handlers) { 75 | this._core.$element.off(handler, this._handlers[handler]); 76 | } 77 | for (property in Object.getOwnPropertyNames(this)) { 78 | typeof this[property] != 'function' && (this[property] = null); 79 | } 80 | }; 81 | 82 | $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight; 83 | 84 | })(window.Zepto || window.jQuery, window, document); 85 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/base/_base.scss: -------------------------------------------------------------------------------- 1 | // Must be 100% for off canvas to work 2 | html, body { 3 | height: 100%; 4 | } 5 | 6 | // Set box-sizing globally to handle padding and border widths 7 | *, 8 | *:before, 9 | *:after { 10 | @include box-sizing; 11 | } 12 | 13 | html, 14 | body { 15 | font-size: $base-font-size; 16 | } 17 | 18 | // Default body styles 19 | body { 20 | color: $body-font-color; 21 | padding: 0; 22 | margin: 0; 23 | font-family: $body-font-family; 24 | font-weight: $body-font-weight; 25 | font-style: $body-font-style; 26 | line-height: $base-line-height; // Set to $base-line-height to take on browser default of 150% 27 | position: relative; 28 | } 29 | 30 | img { 31 | // Responsive images 32 | max-width: 100%; 33 | height: auto; 34 | 35 | // IE fix bicubic scaling for images 36 | -ms-interpolation-mode: bicubic; 37 | 38 | // Get rid of gap under images by making them display: inline-block; by default 39 | display: inline-block; 40 | vertical-align: middle; 41 | } 42 | 43 | // Global resets for forms 44 | // Make sure textarea takes on height automatically 45 | textarea { 46 | height: auto; 47 | min-height: 50px; 48 | } 49 | 50 | // Make select elements 100% width by default 51 | select { 52 | width: 100%; 53 | } 54 | 55 | // Typography resets 56 | div, 57 | figure, 58 | dl, 59 | dt, 60 | dd, 61 | ul, 62 | ol, 63 | li, 64 | h1, 65 | h2, 66 | h3, 67 | h4, 68 | h5, 69 | h6, 70 | pre, 71 | form, 72 | p, 73 | blockquote, 74 | th, 75 | td { 76 | margin: 0; 77 | padding: 0; 78 | } 79 | 80 | ul, 81 | ol { 82 | list-style: none; 83 | } 84 | 85 | p { 86 | margin-bottom: em(16); 87 | 88 | &:last-child { 89 | margin-bottom: 0; 90 | } 91 | } 92 | 93 | h1, 94 | h2, 95 | h3, 96 | h4, 97 | h5, 98 | h6 { 99 | font-weight: bold; 100 | } 101 | 102 | address { 103 | margin-bottom: em(10); 104 | } 105 | 106 | // Default Link Styles 107 | a { 108 | color: $boulder; 109 | text-decoration: none; 110 | transition: all 0.1s ease-in-out 0s; 111 | 112 | &:hover, 113 | &:focus { 114 | color: $color-secondary; 115 | text-decoration: none; 116 | } 117 | 118 | &.link { 119 | font-size: em(14); 120 | border-bottom: 2px solid darken($concrete, 10%); 121 | } 122 | 123 | img { 124 | border:none; 125 | } 126 | } -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/sales/order/recent.phtml: -------------------------------------------------------------------------------- 1 | getOrders(); 3 | ?> 4 | 5 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/header.phtml: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 |
9 | getChildHtml('store_language') ?> 10 | getChildHtml('currency_switcher') ?> 11 | getChildHtml('topSearch') ?> 12 |
13 |
14 | 15 | 67 | 68 | getChildHtml('topContainer'); ?> -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/view/sharing.phtml: -------------------------------------------------------------------------------- 1 | getProduct(); 3 | 4 | $_twitter = Mage::getStoreConfig('boilerplate_all/social_media/twitter_username'); 5 | $_facebook = Mage::getStoreConfig('boilerplate_all/social_media/facebook_url'); 6 | $_google = Mage::getStoreConfig('boilerplate_all/social_media/google_url'); 7 | $_pinterest = Mage::getStoreConfig('boilerplate_all/social_media/pinterest_url'); 8 | 9 | $_helper = $this->helper('catalog/output'); 10 | $_productName = urlencode(trim($_helper->productAttribute($_product, $_product->getName(), 'name'))); 11 | $_productImageUrl = urlencode(trim($this->helper('catalog/image')->init($_product, 'image'))); 12 | $_productUrl = urlencode(trim($_product->getProductUrl())); 13 | $_productDesc = urlencode(trim($_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description'))); 14 | ?> 15 | 16 |
17 | 18 | 22 | 23 | 24 | 27 | 28 | 32 | 33 | 36 | 37 | 40 | 41 | 44 |
-------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autorefresh.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AutoRefresh Plugin 3 | * @version 2.0.0 4 | * @author Artus Kolanowski 5 | * @license The MIT License (MIT) 6 | */ 7 | ;(function($, window, document, undefined) { 8 | 9 | /** 10 | * Creates the auto refresh plugin. 11 | * @class The Auto Refresh Plugin 12 | * @param {Owl} carousel - The Owl Carousel 13 | */ 14 | var AutoRefresh = function(carousel) { 15 | /** 16 | * Reference to the core. 17 | * @protected 18 | * @type {Owl} 19 | */ 20 | this._core = carousel; 21 | 22 | /** 23 | * Refresh interval. 24 | * @protected 25 | * @type {number} 26 | */ 27 | this._interval = null; 28 | 29 | /** 30 | * Whether the element is currently visible or not. 31 | * @protected 32 | * @type {Boolean} 33 | */ 34 | this._visible = null; 35 | 36 | /** 37 | * All event handlers. 38 | * @protected 39 | * @type {Object} 40 | */ 41 | this._handlers = { 42 | 'initialized.owl.carousel': $.proxy(function(e) { 43 | if (e.namespace && this._core.settings.autoRefresh) { 44 | this.watch(); 45 | } 46 | }, this) 47 | }; 48 | 49 | // set default options 50 | this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); 51 | 52 | // register event handlers 53 | this._core.$element.on(this._handlers); 54 | }; 55 | 56 | /** 57 | * Default options. 58 | * @public 59 | */ 60 | AutoRefresh.Defaults = { 61 | autoRefresh: true, 62 | autoRefreshInterval: 500 63 | }; 64 | 65 | /** 66 | * Watches the element. 67 | */ 68 | AutoRefresh.prototype.watch = function() { 69 | if (this._interval) { 70 | return; 71 | } 72 | 73 | this._visible = this._core.$element.is(':visible'); 74 | this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval); 75 | }; 76 | 77 | /** 78 | * Refreshes the element. 79 | */ 80 | AutoRefresh.prototype.refresh = function() { 81 | if (this._core.$element.is(':visible') === this._visible) { 82 | return; 83 | } 84 | 85 | this._visible = !this._visible; 86 | 87 | this._core.$element.toggleClass('owl-hidden', !this._visible); 88 | 89 | this._visible && (this._core.invalidate('width') && this._core.refresh()); 90 | }; 91 | 92 | /** 93 | * Destroys the plugin. 94 | */ 95 | AutoRefresh.prototype.destroy = function() { 96 | var handler, property; 97 | 98 | window.clearInterval(this._interval); 99 | 100 | for (handler in this._handlers) { 101 | this._core.$element.off(handler, this._handlers[handler]); 102 | } 103 | for (property in Object.getOwnPropertyNames(this)) { 104 | typeof this[property] != 'function' && (this[property] = null); 105 | } 106 | }; 107 | 108 | $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh; 109 | 110 | })(window.Zepto || window.jQuery, window, document); 111 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/sprites.styl.mustache: -------------------------------------------------------------------------------- 1 | { 2 | 'functions': true 3 | } 4 | 5 | {{#items}} 6 | ${{name}}__x : {{px.x}}; 7 | ${{name}}__y : {{px.y}}; 8 | ${{name}}__offset-x : {{px.offset_x}}; 9 | ${{name}}__offset-y : {{px.offset_y}}; 10 | ${{name}}__width : {{px.width}}; 11 | ${{name}}__height : {{px.height}}; 12 | ${{name}}__total-width : {{px.total_width}}; 13 | ${{name}}__total-height : {{px.total_height}}; 14 | ${{name}}__image : '{{{escaped_image}}}'; 15 | ${{name}} : {{px.x}} {{px.y}} {{px.offset_x}} {{px.offset_y}} {{px.width}} {{px.height}} {{px.total_width}} {{px.total_height}} '{{{escaped_image}}}'; 16 | {{/items}} 17 | 18 | {{#options.functions}} 19 | @mixin sprite-width($sprite){ 20 | width: nth($sprite, 5); 21 | } 22 | 23 | @mixin sprite-height($sprite){ 24 | height: nth($sprite, 6); 25 | } 26 | 27 | @mixin sprite-position($sprite, $extra-offset-x: 0, $extra-offset-y: 0){ 28 | $sprite-offset-x: nth($sprite, 3) + $extra-offset-x; 29 | $sprite-offset-y: nth($sprite, 4) + $extra-offset-y; 30 | background-position: $sprite-offset-x $sprite-offset-y; 31 | } 32 | 33 | @mixin sprite-image($sprite) { 34 | $sprite-image: nth($sprite, 9); 35 | background-image: url(#{$sprite-image}); 36 | } 37 | 38 | @mixin sprite($sprite){ 39 | @include sprite-image($sprite); 40 | @include sprite-position($sprite); 41 | @include sprite-width($sprite); 42 | @include sprite-height($sprite); 43 | } 44 | 45 | // -------------------------------------------------------------- // 46 | // Retina ------------------------------------------------------- // 47 | // -------------------------------------------------------------- // 48 | 49 | // @source bensmithett.com/goodbye-compass 50 | // @source https://github.com/Ensighten/spritesmith/issues/19#issuecomment-24843826 51 | 52 | // Retina sprite full works 53 | // @include sprite-2x($sprite__twitter, $sprite-2x__twitter); 54 | @mixin sprite-2x($sprite1x, $sprite2x){ 55 | @include sprite($sprite1x); 56 | 57 | @include if-min-resolution (1.5) { 58 | // Use the 2x image... 59 | @include sprite-image($sprite2x); 60 | 61 | // ...but set background-size to the size of the 1x image... 62 | background-size: nth($sprite1x, 7) nth($sprite1x, 8); 63 | } 64 | } 65 | 66 | // Retina sprite background-image only 67 | // Once this is set you can use the position, height & width mixins individually with 1x values 68 | // (e.g. if you only want to set a new background-position on hover, don't need to re-set background-image or you want to adjust the background position) 69 | // @include sprite-2x-image($sprite__twitter, $sprite-2x__twitter); 70 | // @include sprite-position($sprite__twitter, 30, 5); 71 | @mixin sprite-2x-image($sprite1x, $sprite2x){ 72 | @include sprite-image($sprite1x); 73 | background-repeat: no-repeat; 74 | 75 | @include if-min-resolution (1.5) { 76 | @include sprite-image($sprite2x); 77 | background-size: nth($sprite1x, 7) nth($sprite1x, 8) 78 | } 79 | } 80 | {{/options.functions}} -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/_vars.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Global variables --------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | 5 | // Font stacks 6 | $font-family-sans-serif: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif !default; 7 | $font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif !default; 8 | $font-family-monospace: Consolas, "Liberation Mono", Courier, monospace !default; 9 | 10 | // Font weights 11 | $font-weight-normal: normal !default; 12 | $font-weight-bold: bold !default; 13 | 14 | // Global font styles 15 | $base-font-size: 100% !default; // typical default browser font-size is 16px 16 | $base-em: 16px !default; 17 | $base-line-height: 1.5 !default; // $base-line-height is 24px while $base-font-size is 16px 18 | $body-font-color: #262626 !default; 19 | $body-font-family: $font-family-sans-serif !default; 20 | $body-font-weight: $font-weight-normal !default; 21 | $body-font-style: normal !default; 22 | 23 | // Grid 24 | $max-container-width: 1230px; 25 | 26 | // Media Query Ranges 27 | $small-range: (em(479), em(640)) !default; 28 | $medium-range: (em(641), em(1024)) !default; 29 | $large-range: (em(1025), em(1440)) !default; 30 | $xlarge-range: (em(1441), em(1920)) !default; 31 | $xxlarge-range: (em(1921), 99999999em) !default; 32 | 33 | // Media Queries 34 | $screen: "only screen" !default; 35 | 36 | $landscape: "#{$screen} and (orientation: landscape)" !default; 37 | $portrait: "#{$screen} and (orientation: portrait)" !default; 38 | 39 | $small-min: lower-bound($small-range) !default; 40 | $small-max: upper-bound($small-range) !default; 41 | 42 | $medium-min: lower-bound($medium-range) !default; 43 | $medium-max: upper-bound($medium-range) !default; 44 | 45 | $large-min: lower-bound($large-range) !default; 46 | $large-max: upper-bound($large-range) !default; 47 | 48 | $xlarge-min: lower-bound($xlarge-range) !default; 49 | $xlarge-max: upper-bound($xlarge-range) !default; 50 | 51 | $xxlarge-min: lower-bound($xxlarge-range) !default; 52 | $xxlarge-max: upper-bound($xxlarge-range) !default; 53 | 54 | // Colors 55 | $white: #FFFFFF; 56 | $concrete: #F3F3F3; 57 | $alto: #DDDDDD; 58 | $mine-shaft: #202020; 59 | $boulder: #767676; 60 | $mountain-meadow: #1abc9c; 61 | $black: #000000; 62 | 63 | $color-primary: $mountain-meadow; 64 | $color-secondary: $mine-shaft; -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/list/upsell.phtml: -------------------------------------------------------------------------------- 1 | getItemCollection()->getItems())): ?> 2 |
3 |
4 | resetItemsIterator() ?> 5 | 6 | getItemCollection()->getItems() as $_link): ?> 7 |
8 |
9 | 10 | <?php echo $this->escapeHtml($_link->getName()) ?> 11 | 12 | 13 |
14 | 15 | 16 | helper('wishlist')->isAllow()) : ?> 17 | 18 | __('Add to Wishlist') ?> 19 | 20 | 21 | 22 | getAddToCompareUrl($_link)): ?> 23 | 24 | __('Add to Compare') ?> 25 | 26 | 27 | 28 | isSaleable() && !$_link->canConfigure()): ?> 29 | 30 | __('Add to Cart') ?> 31 | 32 | isSaleable()): ?> 33 | __('Out of stock') ?> 34 | 35 |
36 |
37 | 38 |
39 |

40 | 41 | escapeHtml($_link->getName()) ?> 42 | 43 |

44 | 45 | getPriceHtml($_link, true, '-upsell') ?> 46 |
47 |
48 | 49 |
50 |
51 | 52 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/list/toolbar.phtml: -------------------------------------------------------------------------------- 1 | 8 | getCollection()->getSize()): ?> 9 |
10 | getLastPageNum() > 1): ?> 11 |
12 |

__('%s-%s of %s Items', $this->getFirstNum(), $this->getLastNum(), $this->getTotalNum()) ?>

13 |
14 | 15 |
16 |

__('%s Item(s)', $this->getTotalNum()) ?>

17 |
18 | 19 | 20 | isExpanded() ): ?> 21 | isEnabledViewSwitcher() ): ?> 22 | getModes(); ?> 23 | 24 | 1): ?> 25 |
26 | 27 | getModes() as $_code=>$_label): ?> 28 | isModeActive($_code)): ?> 29 | 30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 |
39 | 40 | 41 |
42 | 49 |
50 |
51 | 52 | 53 |
54 | 55 | 56 | 63 | 64 |
65 |
66 | 67 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/_all.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | // Magento Boilerplate by Jason Alvis 4 | // jasonalvis.co.uk 5 | // Licensed under MIT Open Source 6 | 7 | // Table of Contents 8 | // 01. Utilities 9 | // 02. Base 10 | // 03. Layout 11 | // 04. Components 12 | // 05. States 13 | // 06. Shame 14 | 15 | // -------------------------------------------------------------- // 16 | // Utilities ---------------------------------------------------- // 17 | // -------------------------------------------------------------- // 18 | @import "utilities/functions"; 19 | @import "utilities/vars"; 20 | @import "utilities/sprites"; 21 | @import "utilities/mixins"; 22 | @import "utilities/placeholders"; 23 | @import "utilities/helpers"; 24 | @import "utilities/libs"; 25 | 26 | // -------------------------------------------------------------- // 27 | // Base --------------------------------------------------------- // 28 | // -------------------------------------------------------------- // 29 | @import "base/normalize"; 30 | @import "base/base"; 31 | @import "base/typography"; 32 | 33 | // -------------------------------------------------------------- // 34 | // Components --------------------------------------------------- // 35 | // -------------------------------------------------------------- // 36 | @import "components/notices"; 37 | @import "components/forms"; 38 | @import "components/buttons"; 39 | @import "components/tables"; 40 | @import "components/social"; 41 | @import "components/navigation"; 42 | @import "components/breadcrumbs"; 43 | @import "components/toolbar"; 44 | @import "components/pagination"; 45 | @import "components/box-listing"; 46 | @import "components/product-grid"; 47 | @import "components/product-list"; 48 | @import "components/product-item"; 49 | 50 | // -------------------------------------------------------------- // 51 | // Layout ------------------------------------------------------- // 52 | // -------------------------------------------------------------- // 53 | @import "layout/grid"; 54 | @import "layout/bar"; 55 | @import "layout/header"; 56 | @import "layout/footer"; 57 | @import "layout/pages"; 58 | 59 | // -------------------------------------------------------------- // 60 | // Pages -------------------------------------------------------- // 61 | // -------------------------------------------------------------- // 62 | @import "pages/category/category"; 63 | 64 | @import "pages/product/product"; 65 | @import "pages/product/gallery"; 66 | @import "pages/product/related"; 67 | @import "pages/product/extra"; 68 | 69 | @import "pages/account/login"; 70 | @import "pages/account/register"; 71 | @import "pages/account/forgot"; 72 | @import "pages/account/navigation"; 73 | @import "pages/account/dashboard"; 74 | 75 | // -------------------------------------------------------------- // 76 | // States ------------------------------------------------------- // 77 | // -------------------------------------------------------------- // 78 | @import "states/index"; 79 | @import "states/touch"; 80 | @import "states/print"; 81 | 82 | // -------------------------------------------------------------- // 83 | // Shame -------------------------------------------------------- // 84 | // -------------------------------------------------------------- // 85 | @import "shame/index"; -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/reports/product_viewed.phtml: -------------------------------------------------------------------------------- 1 | getItemsCollection(); 3 | ?> 4 | 5 | 6 |
7 |
8 | 9 |
10 |
11 | 12 | <?php echo $this->escapeHtml($this->getProductName()) ?> 13 | 14 | 15 |
16 | 17 | 18 | helper('wishlist')->isAllow()) : ?> 19 | 20 | __('Add to Wishlist') ?> 21 | 22 | 23 | 24 | getAddToCompareUrl($_item)): ?> 25 | 26 | __('Add to Compare') ?> 27 | 28 | 29 | 30 | isSaleable() && !$_item->canConfigure()): ?> 31 | 32 | __('Add to Cart') ?> 33 | 34 | isSaleable()): ?> 35 | __('Out of stock') ?> 36 | 37 |
38 |
39 | 40 |
41 |

42 | 43 | escapeHtml($_item->getName()) ?> 44 | 45 |

46 | 47 | getPriceHtml($_item, true); ?> 48 |
49 |
50 | 51 |
52 |
53 | 54 |

__('You currently have no recently viewed items.'); ?>

55 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.hash.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hash Plugin 3 | * @version 2.0.0 4 | * @author Artus Kolanowski 5 | * @license The MIT License (MIT) 6 | */ 7 | ;(function($, window, document, undefined) { 8 | 'use strict'; 9 | 10 | /** 11 | * Creates the hash plugin. 12 | * @class The Hash Plugin 13 | * @param {Owl} carousel - The Owl Carousel 14 | */ 15 | var Hash = function(carousel) { 16 | /** 17 | * Reference to the core. 18 | * @protected 19 | * @type {Owl} 20 | */ 21 | this._core = carousel; 22 | 23 | /** 24 | * Hash index for the items. 25 | * @protected 26 | * @type {Object} 27 | */ 28 | this._hashes = {}; 29 | 30 | /** 31 | * The carousel element. 32 | * @type {jQuery} 33 | */ 34 | this.$element = this._core.$element; 35 | 36 | /** 37 | * All event handlers. 38 | * @protected 39 | * @type {Object} 40 | */ 41 | this._handlers = { 42 | 'initialized.owl.carousel': $.proxy(function(e) { 43 | if (e.namespace && this._core.settings.startPosition === 'URLHash') { 44 | $(window).trigger('hashchange.owl.navigation'); 45 | } 46 | }, this), 47 | 'prepared.owl.carousel': $.proxy(function(e) { 48 | if (e.namespace) { 49 | var hash = $(e.content).find('[data-hash]').andSelf('[data-hash]').attr('data-hash'); 50 | 51 | if (!hash) { 52 | return; 53 | } 54 | 55 | this._hashes[hash] = e.content; 56 | } 57 | }, this), 58 | 'changed.owl.carousel': $.proxy(function(e) { 59 | if (e.namespace && e.property.name === 'position') { 60 | var current = this._core.items(this._core.relative(this._core.current())), 61 | hash = $.map(this._hashes, function(item, hash) { 62 | return item === current ? hash : null; 63 | }).join(); 64 | 65 | if (!hash || window.location.hash.slice(1) === hash) { 66 | return; 67 | } 68 | 69 | window.location.hash = hash; 70 | } 71 | }, this) 72 | }; 73 | 74 | // set default options 75 | this._core.options = $.extend({}, Hash.Defaults, this._core.options); 76 | 77 | // register the event handlers 78 | this.$element.on(this._handlers); 79 | 80 | // register event listener for hash navigation 81 | $(window).on('hashchange.owl.navigation', $.proxy(function(e) { 82 | var hash = window.location.hash.substring(1), 83 | items = this._core.$stage.children(), 84 | position = this._hashes[hash] && items.index(this._hashes[hash]); 85 | 86 | if (position === undefined || position === this._core.current()) { 87 | return; 88 | } 89 | 90 | this._core.to(this._core.relative(position), false, true); 91 | }, this)); 92 | }; 93 | 94 | /** 95 | * Default options. 96 | * @public 97 | */ 98 | Hash.Defaults = { 99 | URLhashListener: false 100 | }; 101 | 102 | /** 103 | * Destroys the plugin. 104 | * @public 105 | */ 106 | Hash.prototype.destroy = function() { 107 | var handler, property; 108 | 109 | $(window).off('hashchange.owl.navigation'); 110 | 111 | for (handler in this._handlers) { 112 | this._core.$element.off(handler, this._handlers[handler]); 113 | } 114 | for (property in Object.getOwnPropertyNames(this)) { 115 | typeof this[property] != 'function' && (this[property] = null); 116 | } 117 | }; 118 | 119 | $.fn.owlCarousel.Constructor.Plugins.Hash = Hash; 120 | 121 | })(window.Zepto || window.jQuery, window, document); 122 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.animate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Animate Plugin 3 | * @version 2.0.0 4 | * @author Bartosz Wojciechowski 5 | * @license The MIT License (MIT) 6 | */ 7 | ;(function($, window, document, undefined) { 8 | 9 | /** 10 | * Creates the animate plugin. 11 | * @class The Navigation Plugin 12 | * @param {Owl} scope - The Owl Carousel 13 | */ 14 | var Animate = function(scope) { 15 | this.core = scope; 16 | this.core.options = $.extend({}, Animate.Defaults, this.core.options); 17 | this.swapping = true; 18 | this.previous = undefined; 19 | this.next = undefined; 20 | 21 | this.handlers = { 22 | 'change.owl.carousel': $.proxy(function(e) { 23 | if (e.namespace && e.property.name == 'position') { 24 | this.previous = this.core.current(); 25 | this.next = e.property.value; 26 | } 27 | }, this), 28 | 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) { 29 | if (e.namespace) { 30 | this.swapping = e.type == 'translated'; 31 | } 32 | }, this), 33 | 'translate.owl.carousel': $.proxy(function(e) { 34 | if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { 35 | this.swap(); 36 | } 37 | }, this) 38 | }; 39 | 40 | this.core.$element.on(this.handlers); 41 | }; 42 | 43 | /** 44 | * Default options. 45 | * @public 46 | */ 47 | Animate.Defaults = { 48 | animateOut: false, 49 | animateIn: false 50 | }; 51 | 52 | /** 53 | * Toggles the animation classes whenever an translations starts. 54 | * @protected 55 | * @returns {Boolean|undefined} 56 | */ 57 | Animate.prototype.swap = function() { 58 | 59 | if (this.core.settings.items !== 1) { 60 | return; 61 | } 62 | 63 | if (!$.support.animation || !$.support.transition) { 64 | return; 65 | } 66 | 67 | this.core.speed(0); 68 | 69 | var left, 70 | clear = $.proxy(this.clear, this), 71 | previous = this.core.$stage.children().eq(this.previous), 72 | next = this.core.$stage.children().eq(this.next), 73 | incoming = this.core.settings.animateIn, 74 | outgoing = this.core.settings.animateOut; 75 | 76 | if (this.core.current() === this.previous) { 77 | return; 78 | } 79 | 80 | if (outgoing) { 81 | left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); 82 | previous.one($.support.animation.end, clear) 83 | .css( { 'left': left + 'px' } ) 84 | .addClass('animated owl-animated-out') 85 | .addClass(outgoing); 86 | } 87 | 88 | if (incoming) { 89 | next.one($.support.animation.end, clear) 90 | .addClass('animated owl-animated-in') 91 | .addClass(incoming); 92 | } 93 | }; 94 | 95 | Animate.prototype.clear = function(e) { 96 | $(e.target).css( { 'left': '' } ) 97 | .removeClass('animated owl-animated-out owl-animated-in') 98 | .removeClass(this.core.settings.animateIn) 99 | .removeClass(this.core.settings.animateOut); 100 | this.core.onTransitionEnd(); 101 | }; 102 | 103 | /** 104 | * Destroys the plugin. 105 | * @public 106 | */ 107 | Animate.prototype.destroy = function() { 108 | var handler, property; 109 | 110 | for (handler in this.handlers) { 111 | this.core.$element.off(handler, this.handlers[handler]); 112 | } 113 | for (property in Object.getOwnPropertyNames(this)) { 114 | typeof this[property] != 'function' && (this[property] = null); 115 | } 116 | }; 117 | 118 | $.fn.owlCarousel.Constructor.Plugins.Animate = Animate; 119 | 120 | })(window.Zepto || window.jQuery, window, document); 121 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/list/related.phtml: -------------------------------------------------------------------------------- 1 | getItems()->getSize()): ?> 2 | 78 | 79 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/layout/_bar.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Site Bar ----------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | .page-bar { 5 | position: fixed; 6 | top: 0; 7 | left: 0; 8 | width: 100%; 9 | border-bottom: 1px solid darken($concrete, 10%); 10 | transition: all 300ms ease-out 0s; 11 | background-color: #fff; 12 | z-index: 9999; 13 | @include rgba-bg(#fff, 0.9); 14 | @extend %clearfix; 15 | 16 | .actions { 17 | float: right; 18 | 19 | > div { 20 | position: relative; 21 | overflow: hidden; 22 | float: right; 23 | line-height: em(70); 24 | width: 0; 25 | min-width: em(70); 26 | border-left: 1px solid darken($concrete, 10%); 27 | transition: width 0.2s ease 0s; 28 | } 29 | } 30 | 31 | label { 32 | float: left; 33 | margin: 0; 34 | text-align: center; 35 | font-weight: bold; 36 | cursor: pointer; 37 | } 38 | 39 | input { 40 | border: 0; 41 | font-size: em(14); 42 | height: em(70, 14); 43 | padding: em(18, 14) em(15, 14) em(18, 14) 0; 44 | background: transparent; 45 | } 46 | 47 | input, 48 | select { 49 | vertical-align: top; 50 | } 51 | 52 | .field-cont { 53 | display: none; 54 | padding-left: em(70); 55 | } 56 | 57 | .style-select { 58 | height: em(70); 59 | line-height: em(70); 60 | border: 0; 61 | background: transparent; 62 | 63 | select { 64 | height: em(70, 14); 65 | line-height: em(70, 14); 66 | padding-left: 0; 67 | } 68 | } 69 | 70 | .active .field-cont { 71 | display: block; 72 | } 73 | } 74 | 75 | // -------------------------------------------------------------- // 76 | // Search Form -------------------------------------------------- // 77 | // -------------------------------------------------------------- // 78 | .page-bar .form-search { 79 | &.active { 80 | width: em(370); 81 | } 82 | 83 | label { 84 | width: em(70); 85 | height: em(70); 86 | text-indent: -9999px; 87 | @include sprite-2x-image($sprite__icon-search, $sprite-2x__icon-search); 88 | @include sprite-position($sprite__icon-search); 89 | } 90 | 91 | button { 92 | display: none; 93 | } 94 | } 95 | 96 | // -------------------------------------------------------------- // 97 | // Currency Switcher -------------------------------------------- // 98 | // -------------------------------------------------------------- // 99 | .page-bar .currency-switcher { 100 | &.active { 101 | width: em(370); 102 | } 103 | 104 | label { 105 | width: em(70); 106 | height: em(70); 107 | } 108 | 109 | .field-cont { 110 | padding-right: em(15); 111 | } 112 | } 113 | 114 | // -------------------------------------------------------------- // 115 | // Language Switcher -------------------------------------------- // 116 | // -------------------------------------------------------------- // 117 | .page-bar .actions .form-language { 118 | min-width: em(100); 119 | 120 | &.active { 121 | width: em(370); 122 | } 123 | 124 | label { 125 | width: em(100); 126 | padding: 0 15px; 127 | } 128 | 129 | .field-cont { 130 | padding-left: em(100); 131 | padding-right: em(20); 132 | } 133 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Magento Boilerplate 2 | 3 | ## Brief 4 | Starting a Magento project the right way is a must for any developer. This project has many benefits and is the base framework for any new project I start. It adheres to the recommended Magento templating hierarchy and has been built from the ground up.

5 | Note: This boilerplate is **NOT** complete, it is an ongoing project and it will take time to finish. The CSS has been written from scratch and I am slowly styling section by section as I go along, sit tight. If your expecting a fully fledged finished framework this is not for you.

6 | A demo site will be added in due course. 7 | 8 | ## Goods 9 | 10 | ### Sass 11 | The CSS has been written completely from scratch and is component based meaning each area is isolated making it highly re-useable. It is based of the [HTML5 boilerplate](http://html5boilerplate.com/) and also includes the latest version of [Normalize](https://necolas.github.io/normalize.css/). 12 | 13 | ### Removes default xml blocks 14 | Magento by default bundles a handful of xml blocks that are rarely used and only causes bloat, so I removed them from within local.xml.

15 | Note: They can be added back in if you need them by simply removing the line of code from local.xml. 16 | 17 | ### Removes unnecessary JS files that are rarely used 18 | Magento by default bundles a handful of JS files that are rarely used and only causes bloat/performance issues, so I removed them from within local.xml.

19 | Note: They can be added back in if you need them by simply removing the line of code from local.xml. 20 | 21 | ### Includes jQuery in no conflict mode 22 | jQuery v1.10.2 minified in no conflict mode is included as default, you can change this to include a more up to date version if you wish. It gets included at the very bottom of the dom just like it should be.

23 | This improves performance issues particularly on mobile devices as when a browser hits a script tag it actually waits for that entire asset to download before it proceeds, if it's in the head your going to block everything that renders visually on your page from starting. 24 | 25 | ### Grunt 26 | Grunt is all setup and ready to go. It comes with the following tasks: 27 | 28 | [Sprite Generation](https://github.com/Ensighten/grunt-spritesmith) 29 | [LibSass](https://github.com/sindresorhus/grunt-sass) 30 | [JSHint](https://github.com/gruntjs/grunt-contrib-jshint) 31 | [Concat](https://github.com/gruntjs/grunt-contrib-concat) 32 | [Uglify](https://github.com/gruntjs/grunt-contrib-uglify) 33 | [Watch](https://github.com/gruntjs/grunt-contrib-watch) 34 | 35 | ## Installation 36 | Drop in the directories app and skin within your Magento hierarchy e.g:

37 | magento > public_html > app
38 | magento > public_html > skin

39 | Then you will need to change the package name in the admin panel to render the new package you have just installed (system > configuration > design > package). 40 | 41 | ## Using Grunt 42 | First off I'm going to assume you have successfully installed Node.js and Grunt, if you haven't you need to do this first. 43 | First install [Node.js](http://nodejs.org/download/) then install [Grunt](http://gruntjs.com/getting-started). Once you've done that proceed below. 44 | 45 | cd into the skin theme directory like so 46 | 47 | ```shell 48 | cd {site_path}/skin/frontend/magentoboilerplate/default 49 | ``` 50 | 51 | Install the project dependencies 52 | 53 | ```shell 54 | npm install 55 | ``` 56 | 57 | Make changes to your files (sass and js) then you'll want to run grunt to initiate the tasks 58 | 59 | ```shell 60 | grunt 61 | ``` 62 | 63 | Take it a step further and install the browser add-on [LiveReload](http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-). With LiveReload you won’t have to go back to your browser and refresh the page. Page refreshes happen automatically and in the case of CSS, new styles are injected without a page refresh. 64 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.lazyload.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Lazy Plugin 3 | * @version 2.0.0 4 | * @author Bartosz Wojciechowski 5 | * @license The MIT License (MIT) 6 | */ 7 | ;(function($, window, document, undefined) { 8 | 9 | /** 10 | * Creates the lazy plugin. 11 | * @class The Lazy Plugin 12 | * @param {Owl} carousel - The Owl Carousel 13 | */ 14 | var Lazy = function(carousel) { 15 | 16 | /** 17 | * Reference to the core. 18 | * @protected 19 | * @type {Owl} 20 | */ 21 | this._core = carousel; 22 | 23 | /** 24 | * Already loaded items. 25 | * @protected 26 | * @type {Array.} 27 | */ 28 | this._loaded = []; 29 | 30 | /** 31 | * Event handlers. 32 | * @protected 33 | * @type {Object} 34 | */ 35 | this._handlers = { 36 | 'initialized.owl.carousel change.owl.carousel': $.proxy(function(e) { 37 | if (!e.namespace) { 38 | return; 39 | } 40 | 41 | if (!this._core.settings || !this._core.settings.lazyLoad) { 42 | return; 43 | } 44 | 45 | if ((e.property && e.property.name == 'position') || e.type == 'initialized') { 46 | var settings = this._core.settings, 47 | n = (settings.center && Math.ceil(settings.items / 2) || settings.items), 48 | i = ((settings.center && n * -1) || 0), 49 | position = ((e.property && e.property.value) || this._core.current()) + i, 50 | clones = this._core.clones().length, 51 | load = $.proxy(function(i, v) { this.load(v) }, this); 52 | 53 | while (i++ < n) { 54 | this.load(clones / 2 + this._core.relative(position)); 55 | clones && $.each(this._core.clones(this._core.relative(position)), load); 56 | position++; 57 | } 58 | } 59 | }, this) 60 | }; 61 | 62 | // set the default options 63 | this._core.options = $.extend({}, Lazy.Defaults, this._core.options); 64 | 65 | // register event handler 66 | this._core.$element.on(this._handlers); 67 | } 68 | 69 | /** 70 | * Default options. 71 | * @public 72 | */ 73 | Lazy.Defaults = { 74 | lazyLoad: false 75 | } 76 | 77 | /** 78 | * Loads all resources of an item at the specified position. 79 | * @param {Number} position - The absolute position of the item. 80 | * @protected 81 | */ 82 | Lazy.prototype.load = function(position) { 83 | var $item = this._core.$stage.children().eq(position), 84 | $elements = $item && $item.find('.owl-lazy'); 85 | 86 | if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { 87 | return; 88 | } 89 | 90 | $elements.each($.proxy(function(index, element) { 91 | var $element = $(element), image, 92 | url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src'); 93 | 94 | this._core.trigger('load', { element: $element, url: url }, 'lazy'); 95 | 96 | if ($element.is('img')) { 97 | $element.one('load.owl.lazy', $.proxy(function() { 98 | $element.css('opacity', 1); 99 | this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); 100 | }, this)).attr('src', url); 101 | } else { 102 | image = new Image(); 103 | image.onload = $.proxy(function() { 104 | $element.css({ 105 | 'background-image': 'url(' + url + ')', 106 | 'opacity': '1' 107 | }); 108 | this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); 109 | }, this); 110 | image.src = url; 111 | } 112 | }, this)); 113 | 114 | this._loaded.push($item.get(0)); 115 | } 116 | 117 | /** 118 | * Destroys the plugin. 119 | * @public 120 | */ 121 | Lazy.prototype.destroy = function() { 122 | var handler, property; 123 | 124 | for (handler in this.handlers) { 125 | this._core.$element.off(handler, this.handlers[handler]); 126 | } 127 | for (property in Object.getOwnPropertyNames(this)) { 128 | typeof this[property] != 'function' && (this[property] = null); 129 | } 130 | }; 131 | 132 | $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy; 133 | 134 | })(window.Zepto || window.jQuery, window, document); 135 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/address/book.phtml: -------------------------------------------------------------------------------- 1 | 7 | 8 | getMessagesBlock()->getGroupedHtml() ?> 9 | 10 | 51 | 52 | 71 | 72 | 82 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/catalog/product/view/media.phtml: -------------------------------------------------------------------------------- 1 | 10 | getProduct(); 12 | $_helper = $this->helper('catalog/output'); 13 | ?> 14 | 15 |
16 |
17 | 62 |
63 | 64 | getGalleryImages()) > 0): ?> 65 |
66 | 86 |
87 | 88 | 89 | getChildHtml('after'); ?> 90 |
-------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/customer/account/dashboard/wishlist.phtml: -------------------------------------------------------------------------------- 1 | 4 | 5 | helper('wishlist')->isAllow()) : ?> 6 | hasWishlistItems()): ?> 7 | getData('wishlist_count'); 9 | ?> 10 | 11 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_forms.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Forms -------------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | label { 5 | display: block; 6 | margin-bottom: em(10); 7 | } 8 | 9 | label.required em, 10 | span.required em { 11 | display: none; 12 | } 13 | 14 | input[type=email], 15 | input[type=search], 16 | input[type=number], 17 | input[type=password], 18 | input[type=tel], 19 | input[type=text], 20 | textarea, 21 | select { 22 | background: $white; 23 | border: 2px solid $alto; 24 | border-radius: 3px; 25 | font-size: em(16); 26 | padding: em(13, 16) em(15, 16); 27 | transition: all 0.1s ease-in-out 0s; 28 | color: $color-secondary; 29 | width: 100%; 30 | 31 | &:focus { 32 | border-color: $color-primary; 33 | } 34 | } 35 | 36 | input[type=email], 37 | input[type=search], 38 | input[type=number], 39 | input[type=password], 40 | input[type=tel], 41 | input[type=text] { 42 | height: em(50, 16); 43 | } 44 | 45 | input[type=search] { 46 | @include box-sizing(border-box); 47 | } 48 | 49 | select { 50 | font-size: em(14); 51 | padding: em(5, 14) em(10, 14); 52 | } 53 | 54 | .input-group { 55 | display: table; 56 | 57 | input, 58 | textarea, 59 | select { 60 | display: table-cell; 61 | } 62 | } 63 | 64 | .input-group-btn { 65 | display: table-cell; 66 | vertical-align: middle; 67 | width: 1%; 68 | padding-left: em(10); 69 | } 70 | 71 | // Instructions 72 | .form-instructions { 73 | margin-bottom: em(30); 74 | } 75 | 76 | // Remember me 77 | .remember-me-popup { 78 | display: none; 79 | } 80 | 81 | // -------------------------------------------------------------- // 82 | // Styled Select ------------------------------------------------ // 83 | // -------------------------------------------------------------- // 84 | .style-select { 85 | position: relative; 86 | overflow: hidden; 87 | background-color: #fff; 88 | border: 2px solid $alto; 89 | border-radius: 3px; 90 | width: 100%; 91 | 92 | &:after { 93 | @include css-triangle(6px, $boulder, top); 94 | position: absolute; 95 | top: 50%; 96 | right: 10px; 97 | margin-top: -3px; 98 | } 99 | 100 | select { 101 | display: block; 102 | border: 0; // removes border 103 | -webkit-appearance: none; // removes default chrome and safari style 104 | -moz-appearance: none; // removes default firefox style 105 | text-indent: 0.01px; // removes default arrow from firefox 106 | text-overflow: ""; // removes default arrow from firefox 107 | background: transparent; 108 | cursor: pointer; 109 | font-size: 14px; 110 | padding-right: em(32, 14); // larger on the right to take arrow into account 111 | width: 100%; 112 | vertical-align: top; 113 | position: relative; 114 | z-index: 1; 115 | 116 | &::-ms-expand { 117 | display: none; 118 | } 119 | 120 | &:focus { 121 | outline: 0; 122 | } 123 | } 124 | } 125 | 126 | // -------------------------------------------------------------- // 127 | // Small Form --------------------------------------------------- // 128 | // -------------------------------------------------------------- // 129 | .container.form-small { 130 | max-width: em(600); 131 | } 132 | 133 | // -------------------------------------------------------------- // 134 | // Form list ---------------------------------------------------- // 135 | // -------------------------------------------------------------- // 136 | .form-list { 137 | > li, 138 | .field { 139 | margin-bottom: em(20); 140 | } 141 | 142 | li.control { 143 | .input-box { 144 | display: inline; 145 | } 146 | 147 | label { 148 | display: inline-block; 149 | margin: 0 0 0 em(10); 150 | cursor: pointer; 151 | } 152 | } 153 | } -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/js/lib/owlcarousel/owl.autoplay.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Autoplay Plugin 3 | * @version 2.0.0 4 | * @author Bartosz Wojciechowski 5 | * @author Artus Kolanowski 6 | * @license The MIT License (MIT) 7 | */ 8 | ;(function($, window, document, undefined) { 9 | 10 | /** 11 | * Creates the autoplay plugin. 12 | * @class The Autoplay Plugin 13 | * @param {Owl} scope - The Owl Carousel 14 | */ 15 | var Autoplay = function(carousel) { 16 | /** 17 | * Reference to the core. 18 | * @protected 19 | * @type {Owl} 20 | */ 21 | this._core = carousel; 22 | 23 | /** 24 | * The autoplay interval. 25 | * @type {Number} 26 | */ 27 | this._interval = null; 28 | 29 | /** 30 | * Indicates whenever the autoplay is paused. 31 | * @type {Boolean} 32 | */ 33 | this._paused = false; 34 | 35 | /** 36 | * All event handlers. 37 | * @protected 38 | * @type {Object} 39 | */ 40 | this._handlers = { 41 | 'changed.owl.carousel': $.proxy(function(e) { 42 | if (e.namespace && e.property.name === 'settings') { 43 | if (this._core.settings.autoplay) { 44 | this.play(); 45 | } else { 46 | this.stop(); 47 | } 48 | } 49 | }, this), 50 | 'initialized.owl.carousel': $.proxy(function(e) { 51 | if (e.namespace && this._core.settings.autoplay) { 52 | this.play(); 53 | } 54 | }, this), 55 | 'play.owl.autoplay': $.proxy(function(e, t, s) { 56 | if (e.namespace) { 57 | this.play(t, s); 58 | } 59 | }, this), 60 | 'stop.owl.autoplay': $.proxy(function(e) { 61 | if (e.namespace) { 62 | this.stop(); 63 | } 64 | }, this), 65 | 'mouseover.owl.autoplay': $.proxy(function() { 66 | if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { 67 | this.pause(); 68 | } 69 | }, this), 70 | 'mouseleave.owl.autoplay': $.proxy(function() { 71 | if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { 72 | this.play(); 73 | } 74 | }, this) 75 | }; 76 | 77 | // register event handlers 78 | this._core.$element.on(this._handlers); 79 | 80 | // set default options 81 | this._core.options = $.extend({}, Autoplay.Defaults, this._core.options); 82 | }; 83 | 84 | /** 85 | * Default options. 86 | * @public 87 | */ 88 | Autoplay.Defaults = { 89 | autoplay: false, 90 | autoplayTimeout: 5000, 91 | autoplayHoverPause: false, 92 | autoplaySpeed: false 93 | }; 94 | 95 | /** 96 | * Starts the autoplay. 97 | * @public 98 | * @param {Number} [timeout] - The interval before the next animation starts. 99 | * @param {Number} [speed] - The animation speed for the animations. 100 | */ 101 | Autoplay.prototype.play = function(timeout, speed) { 102 | this._paused = false; 103 | 104 | if (this._core.is('rotating')) { 105 | return; 106 | } 107 | 108 | this._core.enter('rotating'); 109 | 110 | this._interval = window.setInterval($.proxy(function() { 111 | if (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) { 112 | return; 113 | } 114 | this._core.next(speed || this._core.settings.autoplaySpeed); 115 | }, this), timeout || this._core.settings.autoplayTimeout); 116 | }; 117 | 118 | /** 119 | * Stops the autoplay. 120 | * @public 121 | */ 122 | Autoplay.prototype.stop = function() { 123 | if (!this._core.is('rotating')) { 124 | return; 125 | } 126 | 127 | window.clearInterval(this._interval); 128 | this._core.leave('rotating'); 129 | }; 130 | 131 | /** 132 | * Stops the autoplay. 133 | * @public 134 | */ 135 | Autoplay.prototype.pause = function() { 136 | if (!this._core.is('rotating')) { 137 | return; 138 | } 139 | 140 | this._paused = true; 141 | }; 142 | 143 | /** 144 | * Destroys the plugin. 145 | */ 146 | Autoplay.prototype.destroy = function() { 147 | var handler, property; 148 | 149 | this.stop(); 150 | 151 | for (handler in this._handlers) { 152 | this._core.$element.off(handler, this._handlers[handler]); 153 | } 154 | for (property in Object.getOwnPropertyNames(this)) { 155 | typeof this[property] != 'function' && (this[property] = null); 156 | } 157 | }; 158 | 159 | $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay; 160 | 161 | })(window.Zepto || window.jQuery, window, document); 162 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/persistent/customer/form/login.phtml: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/template/page/html/pager.phtml: -------------------------------------------------------------------------------- 1 | 8 | getCollection()->getSize()): ?> 9 | getUseContainer()): ?> 10 |
11 | 12 | 13 | getShowAmounts() || $this->getShowPerPage()): ?> 14 | getShowAmounts()): ?> 15 | getLastPageNum()>1): ?> 16 |
17 |

__('%s-%s of %s Items', $this->getFirstNum(), $this->getLastNum(), $this->getTotalNum()) ?>

18 |
19 | 20 |
21 |

__('%s Item(s)', $this->getTotalNum()) ?>

22 |
23 | 24 | 25 | 26 | getShowPerPage()): ?> 27 |
28 | 29 | 36 |
37 | 38 | 39 | 40 | getLastPageNum() > 1): ?> 41 |
42 |
    43 | isFirstPage()): ?> 44 |
  1. 45 | 46 | getAnchorTextForPrevious()): ?> 47 | __('«') ?> 48 | 49 | getAnchorTextForPrevious() ?> 50 | 51 | 52 |
  2. 53 | 54 | 55 | canShowFirst()): ?> 56 |
  3. 1
  4. 57 | 58 | 59 | canShowPreviousJump()): ?> 60 |
  5. ...
  6. 61 | 62 | 63 | getFramePages() as $_page): ?> 64 | isPageCurrent($_page)): ?> 65 |
  7. 66 | 67 |
  8. 68 | 69 | 70 | 71 | canShowNextJump()): ?> 72 |
  9. ...
  10. 73 | 74 | 75 | canShowLast()): ?> 76 |
  11. getLastPageNum() ?>
  12. 77 | 78 | 79 | isLastPage()): ?> 80 |
  13. 81 | 82 | getAnchorTextForNext()): ?> 83 | __('»') ?> 84 | 85 | getAnchorTextForNext() ?> 86 | 87 | 88 |
  14. 89 | 90 |
91 |
92 | 93 | 94 | getUseContainer()): ?> 95 |
96 | 97 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/components/_social.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------- // 2 | // Social Icons ------------------------------------------------- // 3 | // -------------------------------------------------------------- // 4 | [class*='social-'] { 5 | span { 6 | display: inline-block; 7 | width: 100%; 8 | background-repeat: no-repeat; 9 | background-position: center center; 10 | @include image-replacement; 11 | } 12 | } 13 | 14 | .social-twitter { 15 | span { 16 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS41NDYgNTg5LjI0MiAyMS4wNjEgMjEuMDYxIiA+PHBhdGggZmlsbD0iIzFFMUUxRSIgZD0iTTcxMC42MDYgNTkzLjQ4NGMtMC43NTggMC4zMDQtMS42NjcgMC42MDYtMi40MjUgMC42MDZjMC45MDktMC40NTQgMS41MTYtMS4zNjMgMS45Ny0yLjQyNCBjLTAuOTA5IDAuNDU0LTEuODE4IDAuOTA5LTIuNzI4IDEuMDYxYy0wLjc1Ny0wLjc1OC0xLjk2OS0xLjM2NC0zLjE4Mi0xLjM2NGMtMi40MjQgMC00LjM5NCAxLjk3LTQuMzk0IDQuMiBjMCAwLjMgMCAwLjYgMC4yIDAuOTA5Yy0zLjYzNy0wLjE1Mi02LjgxOC0xLjgxOC04LjkzOS00LjU0NmMtMC4zMDMgMC42MDYtMC42MDUgMS4zNjMtMC42MDUgMi4xIGMwIDEuNSAwLjggMi43IDIgMy42MzdjLTAuNzU3IDAtMS4zNjMtMC4xNTEtMS45NjktMC42MDZsMCAwYzAgMi4xIDEuNSAzLjggMy41IDQuMiBjLTAuMzAzIDAuMTUyLTAuNzU4IDAuMTUyLTEuMjEyIDAuMTUyYy0wLjMwNCAwLTAuNjA2IDAtMC43NTgtMC4xNTJjMC42MDYgMS43IDIuMSAyLjkgNC4xIDMgYy0xLjUxNSAxLjIxMy0zLjMzMyAxLjgxOC01LjQ1NCAxLjgxOGMtMC4zMDQgMC0wLjc1OCAwLTEuMDYxIDBjMS45NyAxLjIgNC4yIDIgNi43IDIgYzguMDMgMCAxMi40MjUtNi41MTUgMTIuNDI1LTEyLjEyMWMwLTAuMTUxIDAtMC4zMDMgMC0wLjYwNkM3MDkuMjQyIDU5NS4yIDcxMCA1OTQuNCA3MTAuNiA1OTMuNDg0eiIvPjwvc3ZnPg=="); 17 | } 18 | } 19 | 20 | .social-facebook { 21 | span { 22 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS40IDU4OS40IDIxLjIgMjEuMiIgPjxwYXRoIGZpbGw9IiMxRTFFMUUiIGQ9Ik02OTcuNTc2IDYxMC42MDZ2LTEwSDY5NXYtMy42MzdoMi41NzZjMCAwIDAtMS41MTYgMC0zLjAzYzAtMi40MjQgMS41MTUtNC41NDYgNS00LjU0NiBjMS4zNjMgMCAyLjQgMC4yIDIuNCAwLjE1MmwtMC4xNTEgMy4zMzNjMCAwLTEuMDYxIDAtMi4yNzIgMGMtMS4yMTMgMC0xLjUxNiAwLjYwNS0xLjUxNiAxLjUxNWMwIDAuOCAwLTEuNjY2IDAgMi42IGgzLjc4OGwtMC4xNTEgMy42MzdoLTMuNjM3djEwSDY5Ny41NzZ6Ii8+PC9zdmc+"); 23 | } 24 | } 25 | 26 | .social-google { 27 | span { 28 | background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZmlsbD0iIzE0MTAwQSIgZD0iTTM2LDEyaC01VjdoLTJ2NWgtNXYyaDV2NWgydi01aDVWMTJ6Ii8+CjxwYXRoIGZpbGw9IiMxNDEwMEEiIGQ9Ik0xOC4xLDIzYy0wLjgtMC41LTIuMi0xLjktMi4yLTIuNmMwLTAuOSwwLjMtMS40LDEuNi0yLjRjMS40LTEuMSwyLjUtMi41LDIuNS00LjNjMC0yLjEtMS0zLjctMi44LTQuN2gyLjcKCWwxLjktMmMwLDAtNi4zLDAtOC40LDBDOS41LDcsNiwxMCw2LDEzLjNjMCwzLjQsMi42LDYuMiw2LjQsNi4yYzAuMywwLDAuNSwwLDAuOCwwYy0wLjIsMC41LTAuNCwxLTAuNCwxLjZjMCwwLjksMC41LDEuNywxLjEsMi4zCgljLTAuNSwwLTEsMC0xLjUsMGMtNC43LDAtOC40LDMtOC40LDYuMWMwLDMsNC4xLDUuMyw4LjgsNS4zYzUuMywwLDguMi0zLjQsOC4yLTYuNUMyMSwyNi4xLDIwLjMsMjQuNiwxOC4xLDIzeiBNMTMuNiwxOC44CgljLTIuMi0wLjEtNC4yLTIuNC00LjYtNS4zYy0wLjQtMi45LDEuMS01LDMuMy01YzIuMiwwLjEsNC4zLDIuNCw0LjcsNS4yQzE3LjMsMTYuNiwxNS44LDE4LjksMTMuNiwxOC44eiBNMTIuNywzMwoJYy0zLjIsMC01LjYtMS44LTUuNi00LjNjMC0yLjQsMi45LTQuNCw2LjEtNC40YzAuOCwwLDEuNSwwLjEsMi4xLDAuM2MxLjgsMS4yLDMsMS45LDMuNCwzLjNjMC4xLDAuMywwLjEsMC42LDAuMSwwLjkKCUMxOC45LDMxLjMsMTcuMywzMywxMi43LDMzeiIvPgo8L3N2Zz4="); 29 | } 30 | } 31 | 32 | .social-pinterest { 33 | span { 34 | background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY4OS4zOTQgNTg5LjM5NCAyMS4zNjQgMjEuMzY0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDY4OS4zOTQgNTg5LjM5NCAyMS4zNjQgMjEuMzY0IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMUUxRTFFIiBkPSJNNzAwIDU4OS4zOTRjLTUuOTA5IDAtMTAuNjA2IDQuNjk3LTEwLjYwNiAxMC42MDZjMCA0LjQgMi42IDggNi40IDkuNyBjMC0wLjc1OCAwLTEuNjY3IDAuMTUxLTIuNDI1YzAuMTUxLTAuOTA5IDEuMzYzLTUuNzU3IDEuMzYzLTUuNzU3cy0wLjMwMy0wLjYwNi0wLjMwMy0xLjY2N2MwLTEuNTE2IDAuOTA5LTIuNzI4IDIuMTIxLTIuNzI4IGMwLjkwOSAwIDEuNCAwLjggMS40IDEuNjY3cy0wLjYwNSAyLjQyNC0wLjkwOSAzLjc4OGMtMC4zMDMgMS4xIDAuNiAyIDEuNyAxLjk3YzEuOTcgMCAzLjMzNC0yLjU3NiAzLjMzNC01LjYwNiBjMC0yLjI3Mi0xLjUxNi00LjA5MS00LjM5NS00LjA5MWMtMy4xODIgMC01LjE1MSAyLjQyNC01LjE1MSA1LjE1MWMwIDAuOSAwLjMgMS41IDAuOCAyLjEgYzAuMTUxIDAuMyAwLjIgMC4zIDAuMiAwLjYwNmMwIDAuMTUxLTAuMTUxIDAuNjA1LTAuMTUxIDAuOTA5YzAgMC4zMDMtMC4zMDMgMC4zMDMtMC42MDYgMC4zIGMtMS41MTUtMC42MDYtMi4xMjEtMi4yNzItMi4xMjEtNC4wOTFjMC0zLjAzIDIuNTc2LTYuNjY3IDcuNTc2LTYuNjY3YzQuMDkxIDAgNi43IDIuOSA2LjcgNi4xIGMwIDQuMDkxLTIuMjcyIDcuMjcyLTUuNzU3IDcuMjcyYy0xLjIxMyAwLTIuMjczLTAuNjA1LTIuNTc2LTEuMzYzYzAgMC0wLjYwNiAyLjQyNS0wLjc1OCAyLjkgYy0wLjE1MSAwLjc1OC0wLjYwNSAxLjY2Ny0xLjA2MSAyLjI3MmMwLjkwOSAwLjMgMiAwLjUgMyAwLjQ1NWM1LjkwOSAwIDEwLjYwNi00LjY5NyAxMC42MDYtMTAuNjA2IEM3MTAuNjA2IDU5NC4xIDcwNS45IDU4OS40IDcwMCA1ODkuMzk0eiIvPjwvc3ZnPg=="); 35 | } 36 | } -------------------------------------------------------------------------------- /app/code/local/Boilerplate/All/etc/system.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | boilerplate-extensions-section 7 | 300 8 | 9 | 10 | 11 | 12 | 13 | boilerplate 14 | text 15 | 1 16 | 1 17 | 1 18 | 0 19 | 20 | 21 | 22 | text 23 | 2 24 | 1 25 | 1 26 | 0 27 | 28 | 29 | 30 | Used to link to profile pages, shown in the footer by default. 31 | select 32 | adminhtml/system_config_source_enabledisable 33 | 1 34 | 1 35 | 1 36 | 1 37 | 38 | 39 | 40 | 41 | select 42 | Used to share a product, shown on the product page by default. 43 | adminhtml/system_config_source_enabledisable 44 | 2 45 | 1 46 | 1 47 | 1 48 | 49 | 50 | 51 | 52 | text 53 | 3 54 | 1 55 | 1 56 | 1 57 | 58 | 59 | 60 | 61 | text 62 | 4 63 | 1 64 | 1 65 | 1 66 | 67 | 68 | 69 | 70 | text 71 | 5 72 | 1 73 | 1 74 | 1 75 | 76 | 77 | 78 | 79 | text 80 | 6 81 | 1 82 | 1 83 | 1 84 | 85 | 86 | 87 | 88 | text 89 | 7 90 | 1 91 | 1 92 | 1 93 | 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /app/design/frontend/magentoboilerplate/default/layout/local.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | skin_jsjs/lib/modernizr.custom.min.js 30 | 31 | 32 | 33 | 34 | 35 | 36 | content-before-container 37 | 38 | 39 | 40 | 41 | 42 | skin_jsjs/lib/enquire.min.js 43 | skin_jsjs/lib/owlcarousel/owl.carousel.js 44 | skin_jsjs/lib/owlcarousel/owl.autorefresh.js 45 | skin_jsjs/lib/owlcarousel/owl.lazyload.js 46 | skin_jsjs/lib/owlcarousel/owl.autoheight.js 47 | skin_jsjs/lib/owlcarousel/owl.video.js 48 | skin_jsjs/lib/owlcarousel/owl.animate.js 49 | skin_jsjs/lib/owlcarousel/owl.autoplay.js 50 | skin_jsjs/lib/owlcarousel/owl.navigation.js 51 | skin_jsjs/lib/owlcarousel/owl.hash.js 52 | skin_jsjs/lib/owlcarousel/owl.support.js 53 | skin_jsjs/lib/toggle.single.js 54 | skin_jsjs/core.js 55 | 56 | 57 | 58 | 59 | 60 | footer_links 61 | 62 | 63 | 64 | 65 | 66 | 67 | skin_js 68 | 69 | 70 | 71 | skin_jsjs/lib/elevatezoom/jquery.elevateZoom-3.0.8.min.js 72 | skin_jsjs/product.gallery.js 73 | 74 | 75 | 76 | 77 | 78 | skin_jsjs/category.js 79 | 80 | 81 | 82 | 83 | 84 | skin_jsjs/category.js 85 | 86 | 87 | 88 | 89 | 90 | billing_agreements 91 | recurring_profiles 92 | OAuth Customer Tokens 93 | downloadable_products 94 | 95 | 96 | 97 | skin_jsjs/account.js 98 | 99 | 100 | -------------------------------------------------------------------------------- /skin/frontend/magentoboilerplate/default/scss/utilities/sprites/_sprite.scss: -------------------------------------------------------------------------------- 1 | $sprite__icon-minus-white__x : 90px; 2 | $sprite__icon-minus-white__y : 0px; 3 | $sprite__icon-minus-white__offset-x : -90px; 4 | $sprite__icon-minus-white__offset-y : 0px; 5 | $sprite__icon-minus-white__width : 9px; 6 | $sprite__icon-minus-white__height : 9px; 7 | $sprite__icon-minus-white__total-width : 99px; 8 | $sprite__icon-minus-white__total-height : 99px; 9 | $sprite__icon-minus-white__image : '../images/sprites/sprite.png'; 10 | $sprite__icon-minus-white : 90px 0px -90px 0px 9px 9px 99px 99px '../images/sprites/sprite.png'; 11 | $sprite__icon-minus__x : 90px; 12 | $sprite__icon-minus__y : 29px; 13 | $sprite__icon-minus__offset-x : -90px; 14 | $sprite__icon-minus__offset-y : -29px; 15 | $sprite__icon-minus__width : 9px; 16 | $sprite__icon-minus__height : 9px; 17 | $sprite__icon-minus__total-width : 99px; 18 | $sprite__icon-minus__total-height : 99px; 19 | $sprite__icon-minus__image : '../images/sprites/sprite.png'; 20 | $sprite__icon-minus : 90px 29px -90px -29px 9px 9px 99px 99px '../images/sprites/sprite.png'; 21 | $sprite__icon-plus-white__x : 90px; 22 | $sprite__icon-plus-white__y : 58px; 23 | $sprite__icon-plus-white__offset-x : -90px; 24 | $sprite__icon-plus-white__offset-y : -58px; 25 | $sprite__icon-plus-white__width : 9px; 26 | $sprite__icon-plus-white__height : 9px; 27 | $sprite__icon-plus-white__total-width : 99px; 28 | $sprite__icon-plus-white__total-height : 99px; 29 | $sprite__icon-plus-white__image : '../images/sprites/sprite.png'; 30 | $sprite__icon-plus-white : 90px 58px -90px -58px 9px 9px 99px 99px '../images/sprites/sprite.png'; 31 | $sprite__icon-plus__x : 0px; 32 | $sprite__icon-plus__y : 90px; 33 | $sprite__icon-plus__offset-x : 0px; 34 | $sprite__icon-plus__offset-y : -90px; 35 | $sprite__icon-plus__width : 9px; 36 | $sprite__icon-plus__height : 9px; 37 | $sprite__icon-plus__total-width : 99px; 38 | $sprite__icon-plus__total-height : 99px; 39 | $sprite__icon-plus__image : '../images/sprites/sprite.png'; 40 | $sprite__icon-plus : 0px 90px 0px -90px 9px 9px 99px 99px '../images/sprites/sprite.png'; 41 | $sprite__icon-right__x : 29px; 42 | $sprite__icon-right__y : 90px; 43 | $sprite__icon-right__offset-x : -29px; 44 | $sprite__icon-right__offset-y : -90px; 45 | $sprite__icon-right__width : 9px; 46 | $sprite__icon-right__height : 9px; 47 | $sprite__icon-right__total-width : 99px; 48 | $sprite__icon-right__total-height : 99px; 49 | $sprite__icon-right__image : '../images/sprites/sprite.png'; 50 | $sprite__icon-right : 29px 90px -29px -90px 9px 9px 99px 99px '../images/sprites/sprite.png'; 51 | $sprite__icon-search__x : 0px; 52 | $sprite__icon-search__y : 0px; 53 | $sprite__icon-search__offset-x : 0px; 54 | $sprite__icon-search__offset-y : 0px; 55 | $sprite__icon-search__width : 70px; 56 | $sprite__icon-search__height : 70px; 57 | $sprite__icon-search__total-width : 99px; 58 | $sprite__icon-search__total-height : 99px; 59 | $sprite__icon-search__image : '../images/sprites/sprite.png'; 60 | $sprite__icon-search : 0px 0px 0px 0px 70px 70px 99px 99px '../images/sprites/sprite.png'; 61 | 62 | @mixin sprite-width($sprite){ 63 | width: nth($sprite, 5); 64 | } 65 | 66 | @mixin sprite-height($sprite){ 67 | height: nth($sprite, 6); 68 | } 69 | 70 | @mixin sprite-position($sprite, $extra-offset-x: 0, $extra-offset-y: 0){ 71 | $sprite-offset-x: nth($sprite, 3) + $extra-offset-x; 72 | $sprite-offset-y: nth($sprite, 4) + $extra-offset-y; 73 | background-position: $sprite-offset-x $sprite-offset-y; 74 | } 75 | 76 | @mixin sprite-image($sprite) { 77 | $sprite-image: nth($sprite, 9); 78 | background-image: url(#{$sprite-image}); 79 | } 80 | 81 | @mixin sprite($sprite){ 82 | @include sprite-image($sprite); 83 | @include sprite-position($sprite); 84 | @include sprite-width($sprite); 85 | @include sprite-height($sprite); 86 | } 87 | 88 | // -------------------------------------------------------------- // 89 | // Retina ------------------------------------------------------- // 90 | // -------------------------------------------------------------- // 91 | 92 | // @source bensmithett.com/goodbye-compass 93 | // @source https://github.com/Ensighten/spritesmith/issues/19#issuecomment-24843826 94 | 95 | // Retina sprite full works 96 | // @include sprite-2x($sprite__twitter, $sprite-2x__twitter); 97 | @mixin sprite-2x($sprite1x, $sprite2x){ 98 | @include sprite($sprite1x); 99 | 100 | @include if-min-resolution (1.5) { 101 | // Use the 2x image... 102 | @include sprite-image($sprite2x); 103 | 104 | // ...but set background-size to the size of the 1x image... 105 | background-size: nth($sprite1x, 7) nth($sprite1x, 8); 106 | } 107 | } 108 | 109 | // Retina sprite background-image only 110 | // Once this is set you can use the position, height & width mixins individually with 1x values 111 | // (e.g. if you only want to set a new background-position on hover, don't need to re-set background-image or you want to adjust the background position) 112 | // @include sprite-2x-image($sprite__twitter, $sprite-2x__twitter); 113 | // @include sprite-position($sprite__twitter, 30, 5); 114 | @mixin sprite-2x-image($sprite1x, $sprite2x){ 115 | @include sprite-image($sprite1x); 116 | background-repeat: no-repeat; 117 | 118 | @include if-min-resolution (1.5) { 119 | @include sprite-image($sprite2x); 120 | background-size: nth($sprite1x, 7) nth($sprite1x, 8) 121 | } 122 | } 123 | --------------------------------------------------------------------------------