dugway 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +7 -0
- data/.travis.yml +3 -0
- data/Gemfile +2 -0
- data/README.md +151 -0
- data/Rakefile +12 -0
- data/bin/dugway +7 -0
- data/dugway.gemspec +43 -0
- data/lib/dugway.rb +66 -0
- data/lib/dugway/application.rb +147 -0
- data/lib/dugway/cart.rb +144 -0
- data/lib/dugway/cli.rb +22 -0
- data/lib/dugway/cli/build.rb +56 -0
- data/lib/dugway/cli/create.rb +71 -0
- data/lib/dugway/cli/server.rb +37 -0
- data/lib/dugway/cli/templates/Gemfile.tt +2 -0
- data/lib/dugway/cli/templates/config.tt +24 -0
- data/lib/dugway/cli/templates/gitignore.tt +9 -0
- data/lib/dugway/cli/templates/source/cart.html +40 -0
- data/lib/dugway/cli/templates/source/checkout.html +33 -0
- data/lib/dugway/cli/templates/source/contact.html +37 -0
- data/lib/dugway/cli/templates/source/home.html +25 -0
- data/lib/dugway/cli/templates/source/images/badge.png +0 -0
- data/lib/dugway/cli/templates/source/javascripts/cart.js.coffee +7 -0
- data/lib/dugway/cli/templates/source/javascripts/product.js.coffee +7 -0
- data/lib/dugway/cli/templates/source/layout.html +101 -0
- data/lib/dugway/cli/templates/source/maintenance.html +20 -0
- data/lib/dugway/cli/templates/source/product.html +65 -0
- data/lib/dugway/cli/templates/source/products.html +25 -0
- data/lib/dugway/cli/templates/source/screenshot.jpg +0 -0
- data/lib/dugway/cli/templates/source/scripts.js +19 -0
- data/lib/dugway/cli/templates/source/settings.json +71 -0
- data/lib/dugway/cli/templates/source/styles.css +27 -0
- data/lib/dugway/cli/templates/source/stylesheets/cart.css.sass +38 -0
- data/lib/dugway/cli/templates/source/stylesheets/layout.css.sass +103 -0
- data/lib/dugway/cli/templates/source/stylesheets/product.css.sass +19 -0
- data/lib/dugway/cli/templates/source/stylesheets/products.css.sass +20 -0
- data/lib/dugway/cli/templates/source/stylesheets/vendor/normalize.css +396 -0
- data/lib/dugway/cli/templates/source/success.html +5 -0
- data/lib/dugway/controller.rb +148 -0
- data/lib/dugway/data/locales/cs.yml +26 -0
- data/lib/dugway/data/locales/da.yml +26 -0
- data/lib/dugway/data/locales/en-AU.yml +26 -0
- data/lib/dugway/data/locales/en-GB.yml +26 -0
- data/lib/dugway/data/locales/en-PH.yml +27 -0
- data/lib/dugway/data/locales/en-US.yml +26 -0
- data/lib/dugway/data/locales/es-MX.yml +26 -0
- data/lib/dugway/data/locales/eu.yml +26 -0
- data/lib/dugway/data/locales/gsw-CH.yml +26 -0
- data/lib/dugway/data/locales/hu.yml +26 -0
- data/lib/dugway/data/locales/il.yml +26 -0
- data/lib/dugway/data/locales/ja.yml +30 -0
- data/lib/dugway/data/locales/ms-MY.yml +26 -0
- data/lib/dugway/data/locales/nb.yml +22 -0
- data/lib/dugway/data/locales/pl.yml +27 -0
- data/lib/dugway/data/locales/pt-BR.yml +26 -0
- data/lib/dugway/data/locales/sv-SE.yml +26 -0
- data/lib/dugway/data/locales/th.yml +26 -0
- data/lib/dugway/data/locales/tr.yml +29 -0
- data/lib/dugway/data/locales/zh-TW.yml +30 -0
- data/lib/dugway/data/theme_fonts.yml +151 -0
- data/lib/dugway/extensions/time.rb +15 -0
- data/lib/dugway/liquid/drops/account_drop.rb +17 -0
- data/lib/dugway/liquid/drops/artist_drop.rb +9 -0
- data/lib/dugway/liquid/drops/artists_drop.rb +13 -0
- data/lib/dugway/liquid/drops/base_drop.rb +59 -0
- data/lib/dugway/liquid/drops/cart_drop.rb +13 -0
- data/lib/dugway/liquid/drops/cart_item_drop.rb +21 -0
- data/lib/dugway/liquid/drops/categories_drop.rb +13 -0
- data/lib/dugway/liquid/drops/category_drop.rb +9 -0
- data/lib/dugway/liquid/drops/contact_drop.rb +29 -0
- data/lib/dugway/liquid/drops/country_drop.rb +6 -0
- data/lib/dugway/liquid/drops/currency_drop.rb +6 -0
- data/lib/dugway/liquid/drops/image_drop.rb +6 -0
- data/lib/dugway/liquid/drops/page_drop.rb +13 -0
- data/lib/dugway/liquid/drops/pages_drop.rb +9 -0
- data/lib/dugway/liquid/drops/product_drop.rb +101 -0
- data/lib/dugway/liquid/drops/product_option_drop.rb +27 -0
- data/lib/dugway/liquid/drops/products_drop.rb +75 -0
- data/lib/dugway/liquid/drops/shipping_option_drop.rb +13 -0
- data/lib/dugway/liquid/drops/theme_drop.rb +23 -0
- data/lib/dugway/liquid/filters/comparison_filters.rb +48 -0
- data/lib/dugway/liquid/filters/core_filters.rb +138 -0
- data/lib/dugway/liquid/filters/default_pagination.rb +35 -0
- data/lib/dugway/liquid/filters/font_filters.rb +9 -0
- data/lib/dugway/liquid/filters/url_filters.rb +66 -0
- data/lib/dugway/liquid/filters/util_filters.rb +119 -0
- data/lib/dugway/liquid/tags/checkout_form.rb +9 -0
- data/lib/dugway/liquid/tags/get.rb +58 -0
- data/lib/dugway/liquid/tags/paginate.rb +129 -0
- data/lib/dugway/liquifier.rb +122 -0
- data/lib/dugway/logger.rb +16 -0
- data/lib/dugway/request.rb +36 -0
- data/lib/dugway/store.rb +166 -0
- data/lib/dugway/template.rb +44 -0
- data/lib/dugway/theme.rb +145 -0
- data/lib/dugway/theme_font.rb +68 -0
- data/lib/dugway/version.rb +3 -0
- data/spec/fixtures/store/page/about-us.js +1 -0
- data/spec/fixtures/store/products.js +1 -0
- data/spec/fixtures/store/store.js +1 -0
- data/spec/fixtures/theme/cart.html +33 -0
- data/spec/fixtures/theme/checkout.html +31 -0
- data/spec/fixtures/theme/contact.html +37 -0
- data/spec/fixtures/theme/home.html +38 -0
- data/spec/fixtures/theme/images/bc_badge.png +0 -0
- data/spec/fixtures/theme/javascripts/one.js +3 -0
- data/spec/fixtures/theme/javascripts/two.js.coffee +2 -0
- data/spec/fixtures/theme/layout.html +77 -0
- data/spec/fixtures/theme/maintenance.html +17 -0
- data/spec/fixtures/theme/product.html +73 -0
- data/spec/fixtures/theme/products.html +41 -0
- data/spec/fixtures/theme/screenshot.jpg +0 -0
- data/spec/fixtures/theme/scripts.js +2 -0
- data/spec/fixtures/theme/settings.json +55 -0
- data/spec/fixtures/theme/styles.css +4 -0
- data/spec/fixtures/theme/stylesheets/one.css +3 -0
- data/spec/fixtures/theme/stylesheets/two.css.sass +4 -0
- data/spec/fixtures/theme/success.html +5 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/units/dugway/request_spec.rb +206 -0
- data/spec/units/dugway/store_spec.rb +194 -0
- data/spec/units/dugway/template_spec.rb +145 -0
- data/spec/units/dugway/theme_font_spec.rb +136 -0
- data/spec/units/dugway_spec.rb +9 -0
- metadata +549 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{% if contact.sent %}
|
|
2
|
+
|
|
3
|
+
<p>Your message has been sent and we’ll get back to you soon.</p>
|
|
4
|
+
|
|
5
|
+
{% else %}
|
|
6
|
+
|
|
7
|
+
<form method="post" action="/contact">
|
|
8
|
+
<ul>
|
|
9
|
+
<li>
|
|
10
|
+
<label for="name">Name</label>
|
|
11
|
+
{{ contact | contact_input: 'name' }}
|
|
12
|
+
</li>
|
|
13
|
+
<li>
|
|
14
|
+
<label for="email">Email</label>
|
|
15
|
+
{{ contact | contact_input: 'email' }}
|
|
16
|
+
</li>
|
|
17
|
+
<li>
|
|
18
|
+
<label for="subject">Subject</label>
|
|
19
|
+
{{ contact | contact_input: 'subject' }}
|
|
20
|
+
</li>
|
|
21
|
+
<li>
|
|
22
|
+
<label for="message">Message</label>
|
|
23
|
+
{{ contact | contact_input: 'message' }}
|
|
24
|
+
</li>
|
|
25
|
+
<li>
|
|
26
|
+
<label for="captcha">Spam check</label>
|
|
27
|
+
<p>Please enter the characters from the image.</p>
|
|
28
|
+
<div>{{ contact.captcha }}</div>
|
|
29
|
+
{{ contact | contact_input: 'captcha' }}
|
|
30
|
+
</li>
|
|
31
|
+
<li>
|
|
32
|
+
<button type="submit" name="submit" title="Send us an email">Send</button>
|
|
33
|
+
</li>
|
|
34
|
+
</ul>
|
|
35
|
+
</form>
|
|
36
|
+
|
|
37
|
+
{% endif %}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{% paginate products from products.current by theme.products_per_page %}
|
|
2
|
+
|
|
3
|
+
{% if products != blank %}
|
|
4
|
+
<ul>
|
|
5
|
+
{% for product in products %}
|
|
6
|
+
<li class="{{ product.css_class }}">
|
|
7
|
+
<a href="{{ product.url }}">
|
|
8
|
+
<img alt="Image of {{ product.name | escape }}" src="{{ product.image | product_image_url size: theme.product_image_size }}">
|
|
9
|
+
<b>{{ product.name }}</b>
|
|
10
|
+
<i>{{ product.default_price | money_with_sign }}</i>
|
|
11
|
+
{% if product.on_sale %}
|
|
12
|
+
<em>On Sale</em>
|
|
13
|
+
{% endif %}
|
|
14
|
+
</a>
|
|
15
|
+
</li>
|
|
16
|
+
{% endfor %}
|
|
17
|
+
</ul>
|
|
18
|
+
|
|
19
|
+
{{ paginate | default_pagination }}
|
|
20
|
+
|
|
21
|
+
{% else %}
|
|
22
|
+
<p>No products found.</p>
|
|
23
|
+
{% endif %}
|
|
24
|
+
|
|
25
|
+
{% endpaginate %}
|
|
Binary file
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>{{ store.name }} — {{ page.name }}</title>
|
|
4
|
+
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="description" content="{{ page.meta_description }}">
|
|
7
|
+
<meta name="keywords" content="{{ page.meta_keywords }}">
|
|
8
|
+
|
|
9
|
+
<link href="{{ theme | theme_css_url }}" media="screen" rel="stylesheet" type="text/css">
|
|
10
|
+
|
|
11
|
+
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
|
|
12
|
+
<script src="{{ theme | theme_js_url }}" type="text/javascript"></script>
|
|
13
|
+
|
|
14
|
+
{{ head_content }}
|
|
15
|
+
</head>
|
|
16
|
+
|
|
17
|
+
<body id="{{ page.permalink }}" class="{{ page.category }}">
|
|
18
|
+
<header>
|
|
19
|
+
<a href="/" title="{{ store.name | escape }}">
|
|
20
|
+
{% if theme.logo != blank %}
|
|
21
|
+
<img src="{{ theme.logo.url }}" alt="{{ store.name }}">
|
|
22
|
+
{% else %}
|
|
23
|
+
{{ store.name }}
|
|
24
|
+
{% endif %}
|
|
25
|
+
</a>
|
|
26
|
+
</header>
|
|
27
|
+
|
|
28
|
+
<div class="wrap">
|
|
29
|
+
<aside>
|
|
30
|
+
<section>
|
|
31
|
+
<a href="/cart">Cart ({{ cart.total | money_with_sign }})</a>
|
|
32
|
+
</section>
|
|
33
|
+
|
|
34
|
+
{% if theme.show_search %}
|
|
35
|
+
<section>
|
|
36
|
+
<form action="/products" method="get">
|
|
37
|
+
<label>Search: <input type="text" name="search"></label>
|
|
38
|
+
</form>
|
|
39
|
+
</section>
|
|
40
|
+
{% endif %}
|
|
41
|
+
|
|
42
|
+
<nav>
|
|
43
|
+
<h3>Products</h3>
|
|
44
|
+
<ul>
|
|
45
|
+
<li><a href="/products">All</a></li>
|
|
46
|
+
{% for category in categories.active %}
|
|
47
|
+
<li>{{ category | link_to }}</li>
|
|
48
|
+
{% endfor %}
|
|
49
|
+
</ul>
|
|
50
|
+
|
|
51
|
+
{% if artists.active != blank %}
|
|
52
|
+
<h3>Artists</h3>
|
|
53
|
+
<ul>
|
|
54
|
+
<li><a href="/products">All</a></li>
|
|
55
|
+
{% for artist in artists.active %}
|
|
56
|
+
<li>{{ artist | link_to }}</li>
|
|
57
|
+
{% endfor %}
|
|
58
|
+
</ul>
|
|
59
|
+
{% endif %}
|
|
60
|
+
|
|
61
|
+
<h3>Info</h3>
|
|
62
|
+
<ul>
|
|
63
|
+
{% for page in pages.all %}
|
|
64
|
+
<li>{{ page | link_to }}</li>
|
|
65
|
+
{% endfor %}
|
|
66
|
+
<li><a href="/contact">Contact Us</a></li>
|
|
67
|
+
{% if store.website != blank %}
|
|
68
|
+
<li><a href="{{ store.website }}">Back to Site</a></li>
|
|
69
|
+
{% endif %}
|
|
70
|
+
</ul>
|
|
71
|
+
</nav>
|
|
72
|
+
|
|
73
|
+
<cite>{{ bigcartel_credit }}</cite>
|
|
74
|
+
</aside>
|
|
75
|
+
|
|
76
|
+
<section class="content">
|
|
77
|
+
<h1>{{ page.name }}</h1>
|
|
78
|
+
|
|
79
|
+
{% if errors != blank %}
|
|
80
|
+
<ul class="errors">
|
|
81
|
+
{% for error in errors %}
|
|
82
|
+
<li>{{ error }}</li>
|
|
83
|
+
{% endfor %}
|
|
84
|
+
</ul>
|
|
85
|
+
{% endif %}
|
|
86
|
+
|
|
87
|
+
{% if page.category == 'custom' %}
|
|
88
|
+
{{ page_content | paragraphs }}
|
|
89
|
+
{% else %}
|
|
90
|
+
{{ page_content }}
|
|
91
|
+
{% endif %}
|
|
92
|
+
</section>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<footer>
|
|
96
|
+
{% if theme.twitter_username != blank %}
|
|
97
|
+
<p><a href="http://twitter/{{ theme.twitter_username }}">Follow @{{ theme.twitter_username }}</a></p>
|
|
98
|
+
{% endif %}
|
|
99
|
+
</footer>
|
|
100
|
+
</body>
|
|
101
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>{{ store.name }} — {{ page.name }}</title>
|
|
4
|
+
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="description" content="{{ page.meta_description }}">
|
|
7
|
+
<meta name="keywords" content="{{ page.meta_keywords }}">
|
|
8
|
+
|
|
9
|
+
<link href="{{ theme | theme_css_url }}" media="screen" rel="stylesheet" type="text/css">
|
|
10
|
+
|
|
11
|
+
{{ head_content }}
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body id="{{ page.permalink }}" class="{{ page.category }}">
|
|
15
|
+
<div>
|
|
16
|
+
<h1>We’re working our site at the moment.</h1>
|
|
17
|
+
<p>Please check back soon.</p>
|
|
18
|
+
</div>
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<section class="product_images">
|
|
2
|
+
<img src="{{ product.image | product_image_url }}" alt="Image of {{ product.name | escape }}" class="primary_image">
|
|
3
|
+
|
|
4
|
+
{% if product.images.size > 1 %}
|
|
5
|
+
<ul>
|
|
6
|
+
{% for image in product.images %}
|
|
7
|
+
<li{% if forloop.first %} class="selected"{% endif %}><a href="{{ image | product_image_url }}"><img src="{{ image | product_image_url size:"thumb" }}" alt="Image of {{ product.name | escape }}"></a></li>
|
|
8
|
+
{% endfor %}
|
|
9
|
+
</ul>
|
|
10
|
+
{% endif %}
|
|
11
|
+
</section>
|
|
12
|
+
|
|
13
|
+
<section>
|
|
14
|
+
<aside>
|
|
15
|
+
{% case product.status %}
|
|
16
|
+
|
|
17
|
+
{% when 'sold-out' %}
|
|
18
|
+
<h5>{{ product.default_price | money_with_sign }} <em>Sold Out</em></h5>
|
|
19
|
+
|
|
20
|
+
{% when 'coming-soon' %}
|
|
21
|
+
<h5>{{ product.default_price | money_with_sign }} <em>Coming Soon</em></h5>
|
|
22
|
+
|
|
23
|
+
{% when 'active' %}
|
|
24
|
+
<h5>{{ product.default_price | money_with_sign }}{% if product.on_sale %} <em>On Sale{% endif %}</em></h5>
|
|
25
|
+
<h5>Availability</h5>
|
|
26
|
+
|
|
27
|
+
<ul>
|
|
28
|
+
{% for option in product.options %}
|
|
29
|
+
<li>
|
|
30
|
+
{% unless product.has_default_option %}<span>{{ option.name }}</span>{% endunless %}
|
|
31
|
+
<span>{% if option.sold_out %}Sold Out{% else %}{{ option.inventory }}%{% endif %}</span>
|
|
32
|
+
<div style="width:{{ option.inventory }}%"></div>
|
|
33
|
+
</li>
|
|
34
|
+
{% endfor %}
|
|
35
|
+
</ul>
|
|
36
|
+
|
|
37
|
+
<form method="post" action="/cart">
|
|
38
|
+
{% if product.has_default_option %}
|
|
39
|
+
{{ product.option | hidden_option_input }}
|
|
40
|
+
{% else %}
|
|
41
|
+
<div>
|
|
42
|
+
{{ product.options_in_stock | options_select }}
|
|
43
|
+
</div>
|
|
44
|
+
{% endif %}
|
|
45
|
+
|
|
46
|
+
<button name="submit" type="submit" title="Add to Cart">Add to Cart</button>
|
|
47
|
+
</form>
|
|
48
|
+
{% endcase %}
|
|
49
|
+
</aside>
|
|
50
|
+
|
|
51
|
+
{% for artist in product.artists %}
|
|
52
|
+
{% if forloop.first %}
|
|
53
|
+
<h5>by {{ artist.name }}</h5>
|
|
54
|
+
{% if forloop.length > 2 %}, {% endif %}
|
|
55
|
+
{% elsif forloop.last %}
|
|
56
|
+
<h5>and {{ artist.name }}</h5>
|
|
57
|
+
{% else %}
|
|
58
|
+
<h5>{{ artist.name }}</h5>,
|
|
59
|
+
{% endif %}
|
|
60
|
+
{% endfor %}
|
|
61
|
+
|
|
62
|
+
{% if product.description != blank %}
|
|
63
|
+
{{ product.description | paragraphs }}
|
|
64
|
+
{% endif %}
|
|
65
|
+
</div>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{% paginate products from products.current by theme.products_per_page %}
|
|
2
|
+
|
|
3
|
+
{% if products != blank %}
|
|
4
|
+
<ul>
|
|
5
|
+
{% for product in products %}
|
|
6
|
+
<li class="{{ product.css_class }}">
|
|
7
|
+
<a href="{{ product.url }}">
|
|
8
|
+
<img alt="Image of {{ product.name | escape }}" src="{{ product.image | product_image_url size: theme.product_image_size }}">
|
|
9
|
+
<b>{{ product.name }}</b>
|
|
10
|
+
<p>{{ product.default_price | money_with_sign }}</p>
|
|
11
|
+
{% if product.on_sale %}
|
|
12
|
+
<em>On Sale</em>
|
|
13
|
+
{% endif %}
|
|
14
|
+
</a>
|
|
15
|
+
</li>
|
|
16
|
+
{% endfor %}
|
|
17
|
+
</ul>
|
|
18
|
+
|
|
19
|
+
{{ paginate | default_pagination }}
|
|
20
|
+
|
|
21
|
+
{% else %}
|
|
22
|
+
<p>No products found.</p>
|
|
23
|
+
{% endif %}
|
|
24
|
+
|
|
25
|
+
{% endpaginate %}
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------------------------
|
|
2
|
+
//
|
|
3
|
+
// This is where all of the JavaScript code is handled for your theme.
|
|
4
|
+
//
|
|
5
|
+
// We recommend you break your JavaScript into multiple files and put them in a separate
|
|
6
|
+
// directory. We've used a "javascripts" directory in our example below. After that we'll use
|
|
7
|
+
// Sprockets (getsprockets.org) to package them into one file. Sprockets also allows you to
|
|
8
|
+
// use CoffeeScript (coffeescript.org) by ending your file name with .coffee.
|
|
9
|
+
//
|
|
10
|
+
// However, if you don't have much JavaScript, or you're just a glutton for punishment,
|
|
11
|
+
// you could simply put all of your JavaScript in this file. It's up to you.
|
|
12
|
+
//
|
|
13
|
+
// ------------------------------------------------------------------------------------------------
|
|
14
|
+
//
|
|
15
|
+
// Here we're including a couple CoffeeScript files written for different areas of the store, we're
|
|
16
|
+
// also including jQuery in our layout.html from Google so that it can be better cached by users.
|
|
17
|
+
//
|
|
18
|
+
//= require javascripts/product
|
|
19
|
+
//= require javascripts/cart
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Sample",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"images": [
|
|
5
|
+
{
|
|
6
|
+
"variable": "logo",
|
|
7
|
+
"label": "Logo",
|
|
8
|
+
"description": "Adds your logo to the header"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"variable": "background_image",
|
|
12
|
+
"label": "Background Image",
|
|
13
|
+
"description": "Adds a repeating background image"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"fonts": [
|
|
17
|
+
{
|
|
18
|
+
"variable": "header_font",
|
|
19
|
+
"label": "Header Font",
|
|
20
|
+
"default": "Inconsolata"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"variable": "text_font",
|
|
24
|
+
"label": "Text Font",
|
|
25
|
+
"default": "Helvetica"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"colors": [
|
|
29
|
+
{
|
|
30
|
+
"variable": "background_color",
|
|
31
|
+
"label": "Background",
|
|
32
|
+
"default": "#FAFAFA"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"variable": "text_color",
|
|
36
|
+
"label": "Text Color",
|
|
37
|
+
"default": "#222222"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"options": [
|
|
41
|
+
{
|
|
42
|
+
"variable": "show_search",
|
|
43
|
+
"label": "Show search",
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"default": false,
|
|
46
|
+
"description": "Shows a search field"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"variable": "product_image_size",
|
|
50
|
+
"label": "Product image size",
|
|
51
|
+
"type": "select",
|
|
52
|
+
"options": [["Small", "thumb"], ["Medium", "medium"], ["Large", "large"], ["Huge", ""]],
|
|
53
|
+
"default": "large",
|
|
54
|
+
"description": "The size of your product images"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"variable": "products_per_page",
|
|
58
|
+
"label": "Products per page",
|
|
59
|
+
"type": "select",
|
|
60
|
+
"options": "1..100",
|
|
61
|
+
"default": 9,
|
|
62
|
+
"description": "The number of products shown per page"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"variable": "twitter_username",
|
|
66
|
+
"label": "Twitter username",
|
|
67
|
+
"type": "text",
|
|
68
|
+
"description": "Ex: @bigcartel"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* ------------------------------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* This is where all of the CSS code is handled for your theme.
|
|
4
|
+
*
|
|
5
|
+
* We recommend you break your CSS into multiple files and put them in a separate
|
|
6
|
+
* directory. We've used a "stylesheets" directory in our example below. After that we'll use
|
|
7
|
+
* Sprockets (getsprockets.org) to package them into one file. Sprockets also allows you to
|
|
8
|
+
* use Sass/SCSS (sass-lang.com) by ending your file name with .sass or .scss, and you can also
|
|
9
|
+
* use LESS (lesscss.org) by ending your file with .less.
|
|
10
|
+
*
|
|
11
|
+
* However, if you don't have much CSS, or you're just a glutton for punishment,
|
|
12
|
+
* you could simply put all of your CSS in this file. It's up to you.
|
|
13
|
+
*
|
|
14
|
+
* ------------------------------------------------------------------------------------------------
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Here we're including a 3rd-party stylesheet we put in stylesheets/vendor written in normal CSS,
|
|
19
|
+
* as well as a few custom Sass stylesheets we've written for different areas of the store
|
|
20
|
+
*
|
|
21
|
+
*= require_directory ./stylesheets/vendor
|
|
22
|
+
*= require stylesheets/layout
|
|
23
|
+
*= require stylesheets/products
|
|
24
|
+
*= require stylesheets/product
|
|
25
|
+
*= require stylesheets/cart
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
body#cart
|
|
2
|
+
form
|
|
3
|
+
ul
|
|
4
|
+
margin-bottom: 2em
|
|
5
|
+
|
|
6
|
+
li
|
|
7
|
+
overflow: hidden
|
|
8
|
+
|
|
9
|
+
img
|
|
10
|
+
display: block
|
|
11
|
+
float: left
|
|
12
|
+
margin-right: 30px
|
|
13
|
+
|
|
14
|
+
h2
|
|
15
|
+
float: left
|
|
16
|
+
width: 60%
|
|
17
|
+
|
|
18
|
+
p
|
|
19
|
+
float: left
|
|
20
|
+
padding-top: 7px
|
|
21
|
+
|
|
22
|
+
input
|
|
23
|
+
margin-right: 10px
|
|
24
|
+
text-align: center
|
|
25
|
+
width: 15px
|
|
26
|
+
|
|
27
|
+
a.remove
|
|
28
|
+
display: inline-block
|
|
29
|
+
background: #ddd + 20
|
|
30
|
+
border-radius: 20px
|
|
31
|
+
height: 20px
|
|
32
|
+
line-height: 18px
|
|
33
|
+
margin-left: 20px
|
|
34
|
+
text-align: center
|
|
35
|
+
width: 20px
|
|
36
|
+
|
|
37
|
+
&:hover
|
|
38
|
+
background: #ddd
|