bookshout-theme 1.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 19d1bbd3a5f6e90ff66097d2dc177da6d5572ee9
4
+ data.tar.gz: f3aefdb4534449e15ac0ddb048abca8f9d8897a8
5
+ SHA512:
6
+ metadata.gz: bb00aeab46126357a937eeabe62299e3bd81ce8ec2946f1e213b6d79d57934ddcb41b43db550c7280a0905d8e780787938ecfaeee55734921ccd7a7a63386afb
7
+ data.tar.gz: 71560bf5b0ad3f60086ea1d2918944e9760f4613e223d0ccc2da67eb9983be55c684b87575b9fda48a56ef9ab57f5d06ebee9c21cfe2d625558b3aded8a67c40
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'rails', '>= 4.2.1'
4
+
5
+ group :development do
6
+ gem 'jeweler', '~> 2.0.1'
7
+ end
8
+
9
+ group :assets do
10
+ gem 'haml'
11
+ gem 'haml-rails'
12
+ gem 'foundation-rails'
13
+ gem 'font-awesome-sass'
14
+ gem 'compass'
15
+ gem 'sass-rails'
16
+ gem 'sass'
17
+ gem 'uglifier'
18
+ gem 'coffee-rails'
19
+ gem 'jquery-rails'
20
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,207 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionmailer (4.2.1)
5
+ actionpack (= 4.2.1)
6
+ actionview (= 4.2.1)
7
+ activejob (= 4.2.1)
8
+ mail (~> 2.5, >= 2.5.4)
9
+ rails-dom-testing (~> 1.0, >= 1.0.5)
10
+ actionpack (4.2.1)
11
+ actionview (= 4.2.1)
12
+ activesupport (= 4.2.1)
13
+ rack (~> 1.6)
14
+ rack-test (~> 0.6.2)
15
+ rails-dom-testing (~> 1.0, >= 1.0.5)
16
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
17
+ actionview (4.2.1)
18
+ activesupport (= 4.2.1)
19
+ builder (~> 3.1)
20
+ erubis (~> 2.7.0)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
23
+ activejob (4.2.1)
24
+ activesupport (= 4.2.1)
25
+ globalid (>= 0.3.0)
26
+ activemodel (4.2.1)
27
+ activesupport (= 4.2.1)
28
+ builder (~> 3.1)
29
+ activerecord (4.2.1)
30
+ activemodel (= 4.2.1)
31
+ activesupport (= 4.2.1)
32
+ arel (~> 6.0)
33
+ activesupport (4.2.1)
34
+ i18n (~> 0.7)
35
+ json (~> 1.7, >= 1.7.7)
36
+ minitest (~> 5.1)
37
+ thread_safe (~> 0.3, >= 0.3.4)
38
+ tzinfo (~> 1.1)
39
+ addressable (2.3.8)
40
+ arel (6.0.0)
41
+ builder (3.2.2)
42
+ chunky_png (1.3.4)
43
+ coffee-rails (4.1.0)
44
+ coffee-script (>= 2.2.0)
45
+ railties (>= 4.0.0, < 5.0)
46
+ coffee-script (2.4.1)
47
+ coffee-script-source
48
+ execjs
49
+ coffee-script-source (1.9.1.1)
50
+ compass (1.0.3)
51
+ chunky_png (~> 1.2)
52
+ compass-core (~> 1.0.2)
53
+ compass-import-once (~> 1.0.5)
54
+ rb-fsevent (>= 0.9.3)
55
+ rb-inotify (>= 0.9)
56
+ sass (>= 3.3.13, < 3.5)
57
+ compass-core (1.0.3)
58
+ multi_json (~> 1.0)
59
+ sass (>= 3.3.0, < 3.5)
60
+ compass-import-once (1.0.5)
61
+ sass (>= 3.2, < 3.5)
62
+ descendants_tracker (0.0.4)
63
+ thread_safe (~> 0.3, >= 0.3.1)
64
+ erubis (2.7.0)
65
+ execjs (2.5.2)
66
+ faraday (0.9.1)
67
+ multipart-post (>= 1.2, < 3)
68
+ ffi (1.9.8)
69
+ font-awesome-sass (4.3.2.1)
70
+ sass (~> 3.2)
71
+ foundation-rails (5.5.1.2)
72
+ railties (>= 3.1.0)
73
+ sass (>= 3.3.0, < 3.5)
74
+ git (1.2.9.1)
75
+ github_api (0.12.3)
76
+ addressable (~> 2.3)
77
+ descendants_tracker (~> 0.0.4)
78
+ faraday (~> 0.8, < 0.10)
79
+ hashie (>= 3.3)
80
+ multi_json (>= 1.7.5, < 2.0)
81
+ nokogiri (~> 1.6.3)
82
+ oauth2
83
+ globalid (0.3.5)
84
+ activesupport (>= 4.1.0)
85
+ haml (4.0.6)
86
+ tilt
87
+ haml-rails (0.9.0)
88
+ actionpack (>= 4.0.1)
89
+ activesupport (>= 4.0.1)
90
+ haml (>= 4.0.6, < 5.0)
91
+ html2haml (>= 1.0.1)
92
+ railties (>= 4.0.1)
93
+ hashie (3.4.1)
94
+ highline (1.7.2)
95
+ html2haml (2.0.0)
96
+ erubis (~> 2.7.0)
97
+ haml (~> 4.0.0)
98
+ nokogiri (~> 1.6.0)
99
+ ruby_parser (~> 3.5)
100
+ i18n (0.7.0)
101
+ jeweler (2.0.1)
102
+ builder
103
+ bundler (>= 1.0)
104
+ git (>= 1.2.5)
105
+ github_api
106
+ highline (>= 1.6.15)
107
+ nokogiri (>= 1.5.10)
108
+ rake
109
+ rdoc
110
+ jquery-rails (4.0.3)
111
+ rails-dom-testing (~> 1.0)
112
+ railties (>= 4.2.0)
113
+ thor (>= 0.14, < 2.0)
114
+ json (1.8.2)
115
+ jwt (1.4.1)
116
+ loofah (2.0.1)
117
+ nokogiri (>= 1.5.9)
118
+ mail (2.6.3)
119
+ mime-types (>= 1.16, < 3)
120
+ mime-types (2.4.3)
121
+ mini_portile (0.6.2)
122
+ minitest (5.6.0)
123
+ multi_json (1.11.0)
124
+ multi_xml (0.5.5)
125
+ multipart-post (2.0.0)
126
+ nokogiri (1.6.6.2)
127
+ mini_portile (~> 0.6.0)
128
+ oauth2 (1.0.0)
129
+ faraday (>= 0.8, < 0.10)
130
+ jwt (~> 1.0)
131
+ multi_json (~> 1.3)
132
+ multi_xml (~> 0.5)
133
+ rack (~> 1.2)
134
+ rack (1.6.0)
135
+ rack-test (0.6.3)
136
+ rack (>= 1.0)
137
+ rails (4.2.1)
138
+ actionmailer (= 4.2.1)
139
+ actionpack (= 4.2.1)
140
+ actionview (= 4.2.1)
141
+ activejob (= 4.2.1)
142
+ activemodel (= 4.2.1)
143
+ activerecord (= 4.2.1)
144
+ activesupport (= 4.2.1)
145
+ bundler (>= 1.3.0, < 2.0)
146
+ railties (= 4.2.1)
147
+ sprockets-rails
148
+ rails-deprecated_sanitizer (1.0.3)
149
+ activesupport (>= 4.2.0.alpha)
150
+ rails-dom-testing (1.0.6)
151
+ activesupport (>= 4.2.0.beta, < 5.0)
152
+ nokogiri (~> 1.6.0)
153
+ rails-deprecated_sanitizer (>= 1.0.1)
154
+ rails-html-sanitizer (1.0.2)
155
+ loofah (~> 2.0)
156
+ railties (4.2.1)
157
+ actionpack (= 4.2.1)
158
+ activesupport (= 4.2.1)
159
+ rake (>= 0.8.7)
160
+ thor (>= 0.18.1, < 2.0)
161
+ rake (10.4.2)
162
+ rb-fsevent (0.9.4)
163
+ rb-inotify (0.9.5)
164
+ ffi (>= 0.5.0)
165
+ rdoc (4.2.0)
166
+ json (~> 1.4)
167
+ ruby_parser (3.6.6)
168
+ sexp_processor (~> 4.1)
169
+ sass (3.4.13)
170
+ sass-rails (5.0.3)
171
+ railties (>= 4.0.0, < 5.0)
172
+ sass (~> 3.1)
173
+ sprockets (>= 2.8, < 4.0)
174
+ sprockets-rails (>= 2.0, < 4.0)
175
+ tilt (~> 1.1)
176
+ sexp_processor (4.5.0)
177
+ sprockets (3.0.1)
178
+ rack (~> 1.0)
179
+ sprockets-rails (2.2.4)
180
+ actionpack (>= 3.0)
181
+ activesupport (>= 3.0)
182
+ sprockets (>= 2.8, < 4.0)
183
+ thor (0.19.1)
184
+ thread_safe (0.3.5)
185
+ tilt (1.4.1)
186
+ tzinfo (1.2.2)
187
+ thread_safe (~> 0.1)
188
+ uglifier (2.7.1)
189
+ execjs (>= 0.3.0)
190
+ json (>= 1.8.0)
191
+
192
+ PLATFORMS
193
+ ruby
194
+
195
+ DEPENDENCIES
196
+ coffee-rails
197
+ compass
198
+ font-awesome-sass
199
+ foundation-rails
200
+ haml
201
+ haml-rails
202
+ jeweler (~> 2.0.1)
203
+ jquery-rails
204
+ rails (>= 4.2.1)
205
+ sass
206
+ sass-rails
207
+ uglifier
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # Bookshout Theme #
2
+
3
+ A Rails gem / engine to make any Rails app look like bookshout.com. Provides a generator for static assets via helper methods.
4
+
5
+ ## Installation ##
6
+
7
+ Add `bookshout-theme` to your Gemfile
8
+
9
+ gem 'bookshout-theme'
10
+
11
+ ## Usage ##
12
+
13
+ Wrap your application.html `yield` with the header and footer helpers:
14
+
15
+ <% # application.html.erb %>
16
+ <%= header %>
17
+ <%= yield %>
18
+ <%= footer %>
19
+
20
+ If you want to add anything within the `<head></head>` tags or just before the `</body>` tag, you can pass a block to the helpers:
21
+
22
+ <%= header do %>
23
+ <%= stylesheet_link_tag 'additional_styles' %>
24
+ <% end %>
25
+ <%= yield %>
26
+ <%= footer do %>
27
+ <!-- this comment only appears on my sub-site -->
28
+ <% end %>
29
+
30
+ Default navigation links and default web service javascript (Google Analytics, Optimizely, etc.) can be disabled by setting values to false:
31
+
32
+ header(add_navigation,add_js)
33
+
34
+ The layout supports content overwritting by supplying defining `content_for` the following:
35
+
36
+ title, description, keywords, body_id, branding
37
+
38
+
39
+ ## Modifying / Testing ##
40
+
41
+ Inside this repo is a `example` folder, containing a Rails app configured to load the gem. You can use this to add any changes in styles. You can also run:
42
+
43
+ bundle exec cucumber features
44
+
45
+ ...within that folder to test the gem as though it was installed in a Rails app, so that you know it still works.
46
+
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development, :test)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ PKG_FILES = FileList[
13
+ '[a-zA-Z]*',
14
+ 'app/**/*',
15
+ 'vendor/**/*',
16
+ 'lib/**/*'
17
+ ]
18
+
19
+ require 'jeweler'
20
+ Jeweler::Tasks.new do |gem|
21
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
22
+ gem.name = 'bookshout-theme'
23
+ gem.homepage = 'https://github.com/rethinkbooks/bookshout-theme'
24
+ gem.license = 'MIT'
25
+ gem.summary = %Q{A gem providing helper methods and assets to make any site look like http://bookshout.com}
26
+ gem.description = %Q{View helpers 'header' and 'footer', along with an assets generator to make any site look like http://bookshout.com}
27
+ gem.email = ['arturo@bookshout.com']
28
+ gem.authors = ['Arturo Contreras']
29
+ gem.files = PKG_FILES.to_a
30
+ end
31
+ Jeweler::RubygemsDotOrgTasks.new
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,28 @@
1
+ module BookshoutThemeHelper
2
+ def header(*args, &block)
3
+ add_navigation = args[0] || 'true'
4
+ add_js = args[1] || 'true'
5
+ additional_header = block_given? ? capture(&block) : ''
6
+ render :partial => 'bookshout-theme/header', :locals => {
7
+ :additional_header => additional_header,
8
+ :add_navigation => add_navigation,
9
+ :add_js => add_js
10
+ }
11
+ end
12
+
13
+ def footer(*args, &block)
14
+ additional_footer = block_given? ? capture(&block) : ''
15
+ add_navigation = args[0] || 'true'
16
+ add_js = args[1] || 'true'
17
+ render :partial => 'bookshout-theme/footer', :locals => {
18
+ :additional_footer => additional_footer,
19
+ :add_navigation => add_navigation,
20
+ :add_js => add_js
21
+ }
22
+ end
23
+
24
+ def main(*args, &block)
25
+ content = block_given? ? capture(&block) : ''
26
+ render :partial => 'bookshout-theme/main', :locals => {:content => content}
27
+ end
28
+ end
@@ -0,0 +1,18 @@
1
+ module StaticHelper
2
+
3
+ def selected?(regex)
4
+ if regex.is_a?(String)
5
+ regex = /#{regex}/
6
+ end
7
+ @selected = ''
8
+ if !params[:path].nil?
9
+ if params[:path] =~ regex
10
+ @selected = ' class="selected"'
11
+ end
12
+ elsif params[:controller] =~ regex
13
+ @selected = ' class="selected"'
14
+ end
15
+ @selected.html_safe
16
+ end
17
+
18
+ end
@@ -0,0 +1,4 @@
1
+ #footer
2
+ - if add_navigation == 'true'
3
+ = additional_footer if additional_footer.present?
4
+ = yield :additional_scripts
@@ -0,0 +1,37 @@
1
+ !!! 5
2
+ %html{:lang => "en"}
3
+ %head
4
+ %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
5
+ %meta{:charset => "utf-8"}/
6
+ %meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}/
7
+ %title= content_for?(:title) ? yield(:title) : "Bookshout"
8
+ = stylesheet_link_tag "bookshout-theme"
9
+ = javascript_include_tag "vendor/modernizr"
10
+ = csrf_meta_tags
11
+ %link{:href => "https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css", :rel => "stylesheet"}/
12
+ %body{:id => content_for?(:body_id) ? yield(:body_id) : ''}
13
+ = javascript_include_tag "bookshout-theme"
14
+ .page
15
+ .off-canvas-wrap(data-offcanvas)
16
+ .inner-wrap
17
+ %nav.tab-bar
18
+ %section.left-small
19
+ %a.left-off-canvas-toggle.menu-icon(href="#")
20
+ %span
21
+
22
+ %section.middle.tab-bar-section
23
+ = image_tag content_for?(:image_url) ? yield(:image_url) : "http://s3.amazonaws.com/whitelabelepubsproduction/companies/logos/000/000/003/original/bs-logo2x-black.png", class: 'logo logo-nav'
24
+
25
+ = content_for?(:additional_toolbar) ? yield(:additional_toolbar) : ''
26
+
27
+ %aside.left-off-canvas-menu
28
+ %ul.off-canvas-list
29
+ %li
30
+ %label
31
+ Navigation
32
+ %li
33
+ %a(href="#{content_for?(:my_books_path) ? yield(:my_books_path) : 'https://bookshout.com'}")
34
+ %i.fa.fa-book.fa-2
35
+ My Books
36
+ = render('shared/global_nav')
37
+ = additional_header if additional_header.present?
@@ -0,0 +1,14 @@
1
+ %section.main-section
2
+ -if flash[:notice]
3
+ .row
4
+ .large-8.large-centered.columns
5
+ .alert-box.info.round{:data => { :alert => true}}
6
+ =flash[:notice]
7
+ %a.close(href="#") &times;
8
+ -if flash[:alert]
9
+ .row
10
+ .large-8.large-centered.columns
11
+ .alert-box.alert.round{:data => { :alert => true}}
12
+ =flash[:alert]
13
+ %a.close(href="#") &times;
14
+ = content
File without changes
File without changes
@@ -0,0 +1,67 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: bookshout-theme 1.0.0 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "bookshout-theme"
9
+ s.version = "1.0.0"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Arturo Contreras"]
14
+ s.date = "2015-04-22"
15
+ s.description = "View helpers 'header' and 'footer', along with an assets generator to make any site look like http://bookshout.com"
16
+ s.email = ["arturo@bookshout.com"]
17
+ s.extra_rdoc_files = [
18
+ "README.md"
19
+ ]
20
+ s.files = [
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "app/helpers/bookshout_theme_helper.rb",
27
+ "app/helpers/static_helper.rb",
28
+ "app/views/bookshout-theme/_footer.html.haml",
29
+ "app/views/bookshout-theme/_header.html.haml",
30
+ "app/views/bookshout-theme/_main.html.haml",
31
+ "app/views/shared/_global_nav.html.erb",
32
+ "app/views/shared/_tracking.html.erb",
33
+ "bookshout-theme.gemspec",
34
+ "lib/bookshout-theme.rb",
35
+ "lib/generators/bookshout_theme_generator.rb",
36
+ "vendor/assets/javascripts/bookshout-theme.js",
37
+ "vendor/assets/javascripts/spin.js",
38
+ "vendor/assets/stylesheets/books.scss",
39
+ "vendor/assets/stylesheets/bookshout-theme.scss",
40
+ "vendor/assets/stylesheets/footer.scss",
41
+ "vendor/assets/stylesheets/foundation_and_overrides.scss",
42
+ "vendor/assets/stylesheets/home.scss",
43
+ "vendor/assets/stylesheets/partials/icon_bar.scss",
44
+ "vendor/assets/stylesheets/partials/images.scss",
45
+ "vendor/assets/stylesheets/partials/nav.scss"
46
+ ]
47
+ s.homepage = "https://github.com/rethinkbooks/bookshout-theme"
48
+ s.licenses = ["MIT"]
49
+ s.rubygems_version = "2.2.2"
50
+ s.summary = "A gem providing helper methods and assets to make any site look like http://bookshout.com"
51
+
52
+ if s.respond_to? :specification_version then
53
+ s.specification_version = 4
54
+
55
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
+ s.add_runtime_dependency(%q<rails>, [">= 4.2.1"])
57
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
58
+ else
59
+ s.add_dependency(%q<rails>, [">= 4.2.1"])
60
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
61
+ end
62
+ else
63
+ s.add_dependency(%q<rails>, [">= 4.2.1"])
64
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
65
+ end
66
+ end
67
+
@@ -0,0 +1,12 @@
1
+ module BookshoutTheme
2
+ class Engine < Rails::Engine
3
+ initializer 'BookshoutTheme.helper' do |app|
4
+ ActionView::Base.send :include, BookshoutThemeHelper
5
+ ActionView::Base.send :include, StaticHelper
6
+ end
7
+
8
+ generators do
9
+ require 'generators/bookshout_theme_generator'
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ require 'rails/generators'
2
+ module BookshoutTheme
3
+ class AssetsGenerator < Rails::Generators::Base
4
+ desc 'Generate the assets for bookshout.com to test your app'
5
+
6
+ def self.source_root
7
+ File.expand_path('../../example/public/', File.dirname(__FILE__))
8
+ end
9
+
10
+ def copy_assets
11
+ directory 'bookshout-theme', 'public/bookshout-theme'
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require foundation
16
+ //= require spin
17
+ //= require_tree .
18
+ $(function(){ $(document).foundation(); });
19
+
@@ -0,0 +1,2 @@
1
+ //fgnass.github.com/spin.js#v2.0.1
2
+ !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(e(f,{left:d.left,top:d.top}),b&&b.insertBefore(f,b.firstChild||null),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
@@ -0,0 +1,87 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
5
+ .book-form-container{
6
+ display: table;
7
+ width: 100%;
8
+ }
9
+ .title-content{
10
+ height: 150px;
11
+ display: table-cell;
12
+ width: 100vw;
13
+ vertical-align:middle;
14
+ position: relative;
15
+ }
16
+ .title-pane{
17
+ //box-shadow: 10px 10px 5px #888888;
18
+ a{
19
+ color: #333333;
20
+ }
21
+ }
22
+ .title-pane:hover{
23
+ //box-shadow: 8px 10px 5px #888888;
24
+ }
25
+ .read-book-link-container{
26
+ background-color: rgba(0,0,0,.1);
27
+ padding:5px;
28
+ }
29
+ .info-icon{
30
+ a,a:active{
31
+ color: #000;
32
+ position: absolute;
33
+ top: 0em;
34
+ left: 0em;
35
+ text-shadow: -1px -1px 0 #FFF, 1px -1px 0 #FFF, -1px 1px 0 #FFF, 1px 1px 0;
36
+ }
37
+
38
+ a:hover{
39
+ color: #EFEFEF;
40
+ text-decoration: none;
41
+ }
42
+ }
43
+ .info-modal{
44
+ $font-size: 16px;
45
+ $line-height: 1.4;
46
+ @media(min-width: 320px){
47
+ $lines-to-show: 3;
48
+ }
49
+ @media(min-width: 720px){
50
+ $lines-to-show: 10;
51
+ }
52
+ h1{
53
+ font-size:larger;
54
+ font-weight:bold;
55
+ }
56
+ p{
57
+ text-align: left;
58
+ display: block; /* Fallback for non-webkit */
59
+ display: -webkit-box;
60
+ width:100%;
61
+ @media(min-width: 320px){
62
+ -webkit-line-clamp: 3;
63
+ height: $font-size*$line-height*3; /* Fallback for non-webkit */
64
+ }
65
+ @media(min-width: 667px){
66
+ -webkit-line-clamp: 10;
67
+ height: $font-size*$line-height*10; /* Fallback for non-webkit */
68
+ }
69
+ margin: 0 auto;
70
+ font-size: $font-size;
71
+ line-height: $line-height;
72
+ -webkit-box-orient: vertical;
73
+ overflow: hidden;
74
+ text-overflow: ellipsis;
75
+ }
76
+ }
77
+ #book-detail{
78
+ .book-synopsis{
79
+ text-align: justify;
80
+ }
81
+ img{
82
+ padding-bottom:20px;
83
+ }
84
+
85
+ }
86
+
87
+
@@ -0,0 +1,20 @@
1
+ @import "foundation_and_overrides";
2
+ @import "foundation/components/buttons";
3
+ @import "font-awesome-sprockets";
4
+ @import "font-awesome";
5
+ @import "books";
6
+ @import "home";
7
+ @import "footer";
8
+ @import "partials/nav";
9
+ @import "partials/images";
10
+ @import "partials/icon_bar";
11
+
12
+ .tab-bar{
13
+ border-bottom: 1px solid bottom;
14
+ }
15
+ .off-canvas-wrap, .inner-wrap, .main-section { height:100%; }
16
+ .main-section {
17
+ overflow-y: auto;
18
+ margin-top:50px;
19
+ }
20
+