aladdin 0.0.8 → 0.1.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.md +8 -31
- data/lib/aladdin.rb +22 -23
- data/lib/aladdin/app.rb +10 -21
- data/lib/aladdin/commands/new.rb +2 -2
- data/lib/aladdin/config.rb +18 -32
- data/lib/aladdin/constants.rb +0 -18
- data/lib/aladdin/submission.rb +5 -4
- data/lib/aladdin/support.rb +0 -1
- data/lib/aladdin/support/weak_comparator.rb +2 -0
- data/lib/aladdin/version.rb +1 -2
- data/skeleton/manifest.yml +9 -0
- metadata +15 -111
- data/lib/aladdin/render.rb +0 -9
- data/lib/aladdin/render/error.rb +0 -17
- data/lib/aladdin/render/html.rb +0 -136
- data/lib/aladdin/render/sanitize.rb +0 -90
- data/lib/aladdin/render/templates.rb +0 -2
- data/lib/aladdin/render/templates/header.rb +0 -52
- data/lib/aladdin/render/templates/image.rb +0 -54
- data/lib/aladdin/render/templates/multi.rb +0 -40
- data/lib/aladdin/render/templates/navigation.rb +0 -34
- data/lib/aladdin/render/templates/problem.rb +0 -114
- data/lib/aladdin/render/templates/short.rb +0 -30
- data/lib/aladdin/render/templates/table.rb +0 -109
- data/lib/aladdin/render/templates/template.rb +0 -34
- data/lib/aladdin/support/logger.rb +0 -29
- data/skeleton/manifest.json +0 -10
- data/views/haml/exe.haml +0 -5
- data/views/haml/header.haml +0 -5
- data/views/haml/img.haml +0 -6
- data/views/haml/multi.haml +0 -16
- data/views/haml/nav.haml +0 -5
- data/views/haml/short.haml +0 -12
- data/views/haml/table.haml +0 -28
- data/views/scss/_forms.scss +0 -9
- data/views/scss/_github.scss +0 -65
- data/views/scss/_mathjax.scss +0 -5
- data/views/scss/_pygment.scss +0 -15
- data/views/scss/_settings.scss +0 -271
- data/views/scss/app.scss +0 -75
- data/views/scss/general_foundicons.scss +0 -71
- data/views/scss/general_foundicons_ie7.scss +0 -56
@@ -1,30 +0,0 @@
|
|
1
|
-
# ~*~ encoding: utf-8 ~*~
|
2
|
-
module Aladdin
|
3
|
-
|
4
|
-
module Render
|
5
|
-
|
6
|
-
# Renders short questions marked up in JSON as HTML.
|
7
|
-
# @example
|
8
|
-
# {
|
9
|
-
# "format": "short",
|
10
|
-
# "question": "What is the most commonly used word in English?",
|
11
|
-
# "answer": "the"
|
12
|
-
# }
|
13
|
-
class Short < Problem
|
14
|
-
|
15
|
-
# Name of template file for rendering short answer questions.
|
16
|
-
TEMPLATE = 'short.haml'
|
17
|
-
|
18
|
-
# Checks if the given json contains a valid MCQ.
|
19
|
-
# @return [Boolean] true iff the json contains a valid MCQ.
|
20
|
-
def valid?
|
21
|
-
super and
|
22
|
-
not @json[ANSWER].nil?
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
@@ -1,109 +0,0 @@
|
|
1
|
-
# ~*~ encoding: utf-8 ~*~
|
2
|
-
module Aladdin
|
3
|
-
|
4
|
-
module Render
|
5
|
-
|
6
|
-
# Renders table problems marked up in JSON as HTML.
|
7
|
-
#
|
8
|
-
# The grid should be given as a 2-dimensional array that represents the
|
9
|
-
# table to be filled in. +"?"+ is a special token used in the grid to
|
10
|
-
# indicate cells that require student input.
|
11
|
-
#
|
12
|
-
# The answer should also be given as a 2-dimensional array. However, a
|
13
|
-
# dummy token may be used in cells that do not require student input to
|
14
|
-
# cut redundancy. In the example below, the +"-"+ token is used.
|
15
|
-
#
|
16
|
-
# @example
|
17
|
-
# {
|
18
|
-
# "format": "table",
|
19
|
-
# "question": "fill me in",
|
20
|
-
# "grid": [[0, "?", 2], [3, "?", 5]],
|
21
|
-
# "answer": [["-", 1, "-"], ["-", 4, "-"]
|
22
|
-
# }
|
23
|
-
class Table < Problem
|
24
|
-
|
25
|
-
# Name of template file for rendering table problems.
|
26
|
-
TEMPLATE = 'table.haml'
|
27
|
-
|
28
|
-
# Optional headings key.
|
29
|
-
HEADINGS = 'headings'
|
30
|
-
|
31
|
-
# Required grid key.
|
32
|
-
GRID = 'grid'
|
33
|
-
|
34
|
-
# Special token indicating that the cell should be filled in.
|
35
|
-
FILL_ME_IN = '?'
|
36
|
-
|
37
|
-
accessor HEADINGS, GRID
|
38
|
-
|
39
|
-
# Ensures that the +headings+ key exists.
|
40
|
-
def initialize(json)
|
41
|
-
json[HEADINGS] ||= nil
|
42
|
-
super
|
43
|
-
end
|
44
|
-
|
45
|
-
# Checks if the given json contains a valid table.
|
46
|
-
# @return [Boolean] true iff the json contains a valid table.
|
47
|
-
def valid?
|
48
|
-
super and
|
49
|
-
valid_grid? and
|
50
|
-
valid_answer?
|
51
|
-
end
|
52
|
-
|
53
|
-
# Gets the expected answer, in www-form-urlencoded format.
|
54
|
-
# @return [Hash] answers, as expected from student's form submission
|
55
|
-
def answer
|
56
|
-
return @answer unless @answer.nil?
|
57
|
-
@answer = encode_answer
|
58
|
-
end
|
59
|
-
|
60
|
-
# @return [Boolean] true iff the given cell is an input cell
|
61
|
-
def self.input?(cell)
|
62
|
-
cell == FILL_ME_IN
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
66
|
-
|
67
|
-
# Iterates through each cell in the provided grid to look for answers
|
68
|
-
# cells that require input and takes the answer from the answers array.
|
69
|
-
# For example, if the answer for a cell at [0][1] is 6, the returned
|
70
|
-
# hash will contain
|
71
|
-
#
|
72
|
-
# {'0' => {'1' => 6}}
|
73
|
-
#
|
74
|
-
# @return [Hash] answers
|
75
|
-
def encode_answer
|
76
|
-
encoded, ans = {}, @json[ANSWER]
|
77
|
-
grid.each_with_index do |row, i|
|
78
|
-
row.each_with_index do |cell, j|
|
79
|
-
next unless Table.input? cell
|
80
|
-
encoded[i.to_s] ||= {}
|
81
|
-
encoded[i.to_s][j.to_s] = serialize ans[i][j]
|
82
|
-
end
|
83
|
-
end
|
84
|
-
encoded
|
85
|
-
end
|
86
|
-
|
87
|
-
# @return [Boolean] true iff the json contains a valid grid.
|
88
|
-
def valid_grid?
|
89
|
-
@json.has_key? GRID and is_2d_array? grid
|
90
|
-
end
|
91
|
-
|
92
|
-
# @return [Boolean] true iff +answer+ is a valid 2D array and has the
|
93
|
-
# same number of rows as +grid+.
|
94
|
-
def valid_answer?
|
95
|
-
ans = @json[ANSWER]
|
96
|
-
is_2d_array? ans and ans.size == grid.size
|
97
|
-
end
|
98
|
-
|
99
|
-
# @return [Boolean] true iff +t+ is a 2-dimensional array.
|
100
|
-
def is_2d_array?(t)
|
101
|
-
t.is_a? Array and t.all? { |row| row.is_a? Array }
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
end
|
109
|
-
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# ~*~ encoding: utf-8 ~*~
|
2
|
-
module Aladdin
|
3
|
-
|
4
|
-
module Render
|
5
|
-
|
6
|
-
# Base class for all templates. Child classes should provide a +TEMPLATE+
|
7
|
-
# string constant that contains the path to the relevant HAML file.
|
8
|
-
class Template
|
9
|
-
|
10
|
-
# Renders the given problem using {#view}.
|
11
|
-
# @todo TODO should probably show some error message in the preview,
|
12
|
-
# so that the author doesn't have to read the logs.
|
13
|
-
# @param [Hash] locals local variables to pass to the template
|
14
|
-
def render(locals={})
|
15
|
-
view.render Object.new, locals
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
# Retrieves the +view+ singleton. If it is nil, initializes it from
|
21
|
-
# +self.class.TEMPLATE+. Note that this is reloaded with every refresh so
|
22
|
-
# I can edit the templates without refreshing.
|
23
|
-
# @return [Haml::Engine] haml engine
|
24
|
-
def view
|
25
|
-
return @view unless @view.nil?
|
26
|
-
file = File.join Aladdin::VIEWS[:haml], self.class::TEMPLATE
|
27
|
-
@view = Haml::Engine.new(File.read file, format: :html5)
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# ~*~ encoding: utf-8 ~*~
|
2
|
-
require 'active_support/core_ext/logger'
|
3
|
-
|
4
|
-
module Aladdin
|
5
|
-
|
6
|
-
module Support
|
7
|
-
|
8
|
-
# Provides a convenient global logger.
|
9
|
-
# @example
|
10
|
-
# class X
|
11
|
-
# include Logger
|
12
|
-
# def x; logger.info "hey"; end
|
13
|
-
# end
|
14
|
-
# @todo FIXME allow configuration
|
15
|
-
module Logger
|
16
|
-
|
17
|
-
# Global logger.
|
18
|
-
LOGGER = ::Logger.new(STDOUT)
|
19
|
-
|
20
|
-
# Retrieves the global logger.
|
21
|
-
def logger
|
22
|
-
Logger::LOGGER
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
data/skeleton/manifest.json
DELETED
data/views/haml/exe.haml
DELETED
data/views/haml/header.haml
DELETED
data/views/haml/img.haml
DELETED
data/views/haml/multi.haml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
-# coding: UTF-8
|
2
|
-
%form.problem{action: 'verify/problem/' + id, 'accept-charset' => 'UTF-8', id: "problem_#{id}", method: 'post'}
|
3
|
-
%fieldset
|
4
|
-
|
5
|
-
%legend Problem #{index}
|
6
|
-
%p= question
|
7
|
-
|
8
|
-
.row.collapse
|
9
|
-
.ten.mobile-three.columns
|
10
|
-
-options.each do |value, label|
|
11
|
-
%label{for: 'answer'}
|
12
|
-
%input{name: 'answer', type: 'radio', value: value}
|
13
|
-
= label
|
14
|
-
.two.mobile-one.columns
|
15
|
-
%a.button.submit.small.expand.postfix.radius{href: '#'} Submit
|
16
|
-
|
data/views/haml/nav.haml
DELETED
data/views/haml/short.haml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
-# coding: UTF-8
|
2
|
-
%form.problem{action: 'verify/problem/' + id, 'accept-charset' => 'UTF-8', id: "problem_#{id}", method: 'post'}
|
3
|
-
%fieldset
|
4
|
-
|
5
|
-
%legend Problem #{index}
|
6
|
-
%p= question
|
7
|
-
|
8
|
-
.row.collapse
|
9
|
-
.ten.mobile-three.columns
|
10
|
-
%input{name: 'answer', type: 'text'}
|
11
|
-
.two.mobile-one.columns
|
12
|
-
%a.button.small.submit.expand.postfix.radius{href: '#'} Submit
|
data/views/haml/table.haml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
-# coding: UTF-8
|
2
|
-
%form.problem{action: 'verify/problem/' + id, 'accept-charset' => 'UTF-8', id: "problem_#{id}", method: 'post'}
|
3
|
-
%fieldset
|
4
|
-
|
5
|
-
%legend Problem #{index}
|
6
|
-
%p= question
|
7
|
-
|
8
|
-
.row
|
9
|
-
.twelve.columns
|
10
|
-
%table
|
11
|
-
%thead
|
12
|
-
-if headings
|
13
|
-
%tr
|
14
|
-
-headings.each do |heading|
|
15
|
-
%th= heading
|
16
|
-
|
17
|
-
%tbody
|
18
|
-
-grid.each_with_index do |row, i|
|
19
|
-
%tr
|
20
|
-
-row.each_with_index do |cell, j|
|
21
|
-
%td
|
22
|
-
- if Aladdin::Render::Table.input? cell
|
23
|
-
%input{name: "answer[#{i}][#{j}]", type: 'text'}
|
24
|
-
- else
|
25
|
-
= cell
|
26
|
-
.row
|
27
|
-
.two.columns.mobile-one
|
28
|
-
%a.button.small.submit.radius{href: '#'} Submit
|
data/views/scss/_forms.scss
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
@import "settings";
|
2
|
-
|
3
|
-
/* Successes */
|
4
|
-
.success input, input.success, .success textarea, textarea.success { border-color: $successColor; background-color: rgba($successColor, 0.1); }
|
5
|
-
.success label, label.success { color: $successColor; }
|
6
|
-
.success small, small.success { display: block; padding: 6px 4px; margin-top: -($formSpacing) - 1; margin-bottom: $formSpacing; background: $successColor; color: #fff; font-size: ms(0) - 2; font-weight: bold; @include border-corner-radius(bottom, $defaultFloat, $inputBorderRadius); @include border-corner-radius(bottom, $defaultOpposite, $inputBorderRadius); }
|
7
|
-
.success textarea, textarea.success {
|
8
|
-
&:focus { background: darken($white, 2%); border-color: darken($white, 30%); }
|
9
|
-
}
|
data/views/scss/_github.scss
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Taken from https://github.com/richleland/pygments-css/, but it probably
|
3
|
-
* belongs to GitHub.
|
4
|
-
*/
|
5
|
-
.hll { background-color: #ffffcc }
|
6
|
-
.c { color: #999988; font-style: italic } /* Comment */
|
7
|
-
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
8
|
-
.k { color: #000000; font-weight: bold } /* Keyword */
|
9
|
-
.o { color: #000000; font-weight: bold } /* Operator */
|
10
|
-
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
11
|
-
.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
|
12
|
-
.c1 { color: #999988; font-style: italic } /* Comment.Single */
|
13
|
-
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
14
|
-
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
15
|
-
.ge { color: #000000; font-style: italic } /* Generic.Emph */
|
16
|
-
.gr { color: #aa0000 } /* Generic.Error */
|
17
|
-
.gh { color: #999999 } /* Generic.Heading */
|
18
|
-
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
19
|
-
.go { color: #888888 } /* Generic.Output */
|
20
|
-
.gp { color: #555555 } /* Generic.Prompt */
|
21
|
-
.gs { font-weight: bold } /* Generic.Strong */
|
22
|
-
.gu { color: #aaaaaa } /* Generic.Subheading */
|
23
|
-
.gt { color: #aa0000 } /* Generic.Traceback */
|
24
|
-
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
|
25
|
-
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
|
26
|
-
.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
|
27
|
-
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
|
28
|
-
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
|
29
|
-
.kt { color: #445588; font-weight: bold } /* Keyword.Type */
|
30
|
-
.m { color: #009999 } /* Literal.Number */
|
31
|
-
.s { color: #d01040 } /* Literal.String */
|
32
|
-
.na { color: #008080 } /* Name.Attribute */
|
33
|
-
.nb { color: #0086B3 } /* Name.Builtin */
|
34
|
-
.nc { color: #445588; font-weight: bold } /* Name.Class */
|
35
|
-
.no { color: #008080 } /* Name.Constant */
|
36
|
-
.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
|
37
|
-
.ni { color: #800080 } /* Name.Entity */
|
38
|
-
.ne { color: #990000; font-weight: bold } /* Name.Exception */
|
39
|
-
.nf { color: #990000; font-weight: bold } /* Name.Function */
|
40
|
-
.nl { color: #990000; font-weight: bold } /* Name.Label */
|
41
|
-
.nn { color: #555555 } /* Name.Namespace */
|
42
|
-
.nt { color: #000080 } /* Name.Tag */
|
43
|
-
.nv { color: #008080 } /* Name.Variable */
|
44
|
-
.ow { color: #000000; font-weight: bold } /* Operator.Word */
|
45
|
-
.w { color: #bbbbbb } /* Text.Whitespace */
|
46
|
-
.mf { color: #009999 } /* Literal.Number.Float */
|
47
|
-
.mh { color: #009999 } /* Literal.Number.Hex */
|
48
|
-
.mi { color: #009999 } /* Literal.Number.Integer */
|
49
|
-
.mo { color: #009999 } /* Literal.Number.Oct */
|
50
|
-
.sb { color: #d01040 } /* Literal.String.Backtick */
|
51
|
-
.sc { color: #d01040 } /* Literal.String.Char */
|
52
|
-
.sd { color: #d01040 } /* Literal.String.Doc */
|
53
|
-
.s2 { color: #d01040 } /* Literal.String.Double */
|
54
|
-
.se { color: #d01040 } /* Literal.String.Escape */
|
55
|
-
.sh { color: #d01040 } /* Literal.String.Heredoc */
|
56
|
-
.si { color: #d01040 } /* Literal.String.Interpol */
|
57
|
-
.sx { color: #d01040 } /* Literal.String.Other */
|
58
|
-
.sr { color: #009926 } /* Literal.String.Regex */
|
59
|
-
.s1 { color: #d01040 } /* Literal.String.Single */
|
60
|
-
.ss { color: #990073 } /* Literal.String.Symbol */
|
61
|
-
.bp { color: #999999 } /* Name.Builtin.Pseudo */
|
62
|
-
.vc { color: #008080 } /* Name.Variable.Class */
|
63
|
-
.vg { color: #008080 } /* Name.Variable.Global */
|
64
|
-
.vi { color: #008080 } /* Name.Variable.Instance */
|
65
|
-
.il { color: #009999 } /* Literal.Number.Integer.Long */
|
data/views/scss/_mathjax.scss
DELETED
data/views/scss/_pygment.scss
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
@import "settings";
|
2
|
-
|
3
|
-
/* code blocks */
|
4
|
-
pre {
|
5
|
-
background-color: lighten(#000, 97.5%);
|
6
|
-
border: 1px solid lighten(#000, 80%);
|
7
|
-
overflow: auto;
|
8
|
-
padding: 6px 10px;
|
9
|
-
border-radius: $tableBorderRadius;
|
10
|
-
font-size: ms(0) - 1;
|
11
|
-
line-height: 1.6;
|
12
|
-
font-family: Consolas, 'Liberation Mono', monospace;
|
13
|
-
margin-bottom: ms(1);
|
14
|
-
-webkit-font-smoothing: auto;
|
15
|
-
}
|
data/views/scss/_settings.scss
DELETED
@@ -1,271 +0,0 @@
|
|
1
|
-
@import "foundation/common/ratios";
|
2
|
-
|
3
|
-
// Settings file containing Foundation defaults
|
4
|
-
|
5
|
-
// Grid Settings
|
6
|
-
|
7
|
-
// $rowWidth: 1000px;
|
8
|
-
// $columnGutter: 30px;
|
9
|
-
// $totalColumns: 12;
|
10
|
-
// $mobileTotalColumns: 4;
|
11
|
-
// $blockGridElements: 12; // Highest number of block grid elements, Maximum of 24 supported
|
12
|
-
|
13
|
-
// Colors Settings
|
14
|
-
|
15
|
-
// $mainColor: #2ba6cb;
|
16
|
-
// $secondaryColor: #e9e9e9;
|
17
|
-
// $alertColor: #c60f13;
|
18
|
-
// $successColor: #5da423;
|
19
|
-
// $txtColor: #222;
|
20
|
-
// $highlightColor: #ffff99;
|
21
|
-
// $black: #000;
|
22
|
-
// $white: #fff;
|
23
|
-
// $shinyEdge: rgba(#fff, .5);
|
24
|
-
// $darkEdge: rgba(#000, .2);
|
25
|
-
|
26
|
-
// Font Settings
|
27
|
-
|
28
|
-
// $headerFontFamily: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
|
29
|
-
// $headerFontWeight: bold;
|
30
|
-
// $headerFontStyle: normal;
|
31
|
-
// $headerFontColor: #222;
|
32
|
-
// $bodyFontFamily: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
|
33
|
-
// $bodyFontWeight: normal;
|
34
|
-
// $bodyFontStyle: normal;
|
35
|
-
// $bodyFontColor: $txtColor;
|
36
|
-
|
37
|
-
// Text Direction Settings
|
38
|
-
|
39
|
-
// $textDirection: ltr; // Controls default global text direction, 'rtl' or 'ltr'
|
40
|
-
|
41
|
-
// Button Settings
|
42
|
-
|
43
|
-
// $buttonRadius: 3px;
|
44
|
-
// $btnBase: 10px;
|
45
|
-
|
46
|
-
// $tinyBtnBase: $btnBase - 5;
|
47
|
-
// $smallBtnBase: $btnBase - 3;
|
48
|
-
// $largeBtnBase: $btnBase + 5;
|
49
|
-
|
50
|
-
// Form Settings
|
51
|
-
|
52
|
-
// $formSpacing: 12px;
|
53
|
-
// $labelFontWeight: 500;
|
54
|
-
// $labelFontColor: lighten(#000, 30%);
|
55
|
-
// $labelBtmMargin: 3px;
|
56
|
-
// $inputFontColor: rgba(0,0,0,0.75);
|
57
|
-
// $inputFontSize: 14px;
|
58
|
-
// $inputBgColor: #fff;
|
59
|
-
// $inputFocusBgColor: darken(#fff, 2%);
|
60
|
-
// $inputBorderColor: darken(#fff, 20%);
|
61
|
-
// $inputFocusBorderColor: darken(#fff, 30%);
|
62
|
-
// $inputBorderStyle: solid;
|
63
|
-
// $inputBorderWidth: 1px;
|
64
|
-
// $inputBorderRadius: 2px;
|
65
|
-
// $fieldsetBorderRadius: 3px;
|
66
|
-
|
67
|
-
// Custom Form Settings
|
68
|
-
|
69
|
-
// $custFormBorderColor: #ccc;
|
70
|
-
// $custFormBgColor: #fff;
|
71
|
-
// $custCheckColor: #222;
|
72
|
-
// $custSelectCurrentFontColor: #141414;
|
73
|
-
// $custSelectBgColor: #fff;
|
74
|
-
// $custSelectBorderColor: #ddd;
|
75
|
-
// $custSelectTriangleColor: #aaa;
|
76
|
-
// $custSelectTriangleColorOpen: #222;
|
77
|
-
// $custSelectDropHeight: 200px;
|
78
|
-
// $custDropdownBgColor: #fff;
|
79
|
-
// $custDropdownBorderColor: darken(#fff, 20%);
|
80
|
-
// $custDropdownFontColor: #555;
|
81
|
-
// $custDropdownSelectedBgColor: lighten(#2ba6cb, 40%);
|
82
|
-
// $custDropdownSelectedFontColor: #000;
|
83
|
-
// $custFormDisabledBgColor: #ddd;
|
84
|
-
|
85
|
-
// Tab Settings
|
86
|
-
|
87
|
-
// $tabHeight: 40px;
|
88
|
-
// $tabTermFontSize: 12px;
|
89
|
-
|
90
|
-
// Nav Bar Settings
|
91
|
-
|
92
|
-
// $navBarHeight: 40px;
|
93
|
-
// $navFlyoutBaseWidth: 250px;
|
94
|
-
|
95
|
-
// Top Bar Settings
|
96
|
-
|
97
|
-
// $topBarBgColor: #222;
|
98
|
-
// $topBarHeight: 45px;
|
99
|
-
// $topBarHeightMobile: 45px;
|
100
|
-
// $topBarBtmMargin: 30px;
|
101
|
-
// $topBarTitleWeight: bold;
|
102
|
-
// $topBarTitleSize: 17px;
|
103
|
-
// $topBarLinkColor: #fff;
|
104
|
-
// $topBarLinkWeight: bold;
|
105
|
-
// $topBarLinkSize: 13px;
|
106
|
-
// $topBarDropBgColor: #222;
|
107
|
-
// $topBarDropLinkColor: #fff;
|
108
|
-
// $topBarDropToggleSize: 5px;
|
109
|
-
// $topBarDropToggleColor: #fff;
|
110
|
-
// $topBarDropToggleAlpha: 0.5;
|
111
|
-
// $topBarSearchWidth: 200px;
|
112
|
-
// $topBarBreakPoint: 940px; // Change to 9999px for always mobile layout
|
113
|
-
// $topBarNavToggleSize: 8px;
|
114
|
-
|
115
|
-
// UI Settings
|
116
|
-
|
117
|
-
// $thumbRadius: 3px;
|
118
|
-
// $progBarHeight: 25px;
|
119
|
-
// $progBarBorderColor: darken(#fff, 20%);
|
120
|
-
// $progBarBorderSize: 1px;
|
121
|
-
// $progBarPad: 2px;
|
122
|
-
// $linkListBottomMargin: 17px -22px;
|
123
|
-
// $tableBorderRadius: 3px;
|
124
|
-
|
125
|
-
// Tooltip Settings
|
126
|
-
|
127
|
-
// $hasTipBorderBottom: dotted 1px #ccc;
|
128
|
-
// $hasTipFontWeight: bold;
|
129
|
-
// $hasTipFontColor: #333;
|
130
|
-
// $hasTipBorderBottomHover: dotted 1px darken($mainColor, 20%);
|
131
|
-
// $hasTipFontColorHover: $mainColor;
|
132
|
-
// $tooltipBackgroundColor: #000;
|
133
|
-
// $tooltipBackgroundOpacity: 0.85;
|
134
|
-
// $tooltipFontSize: 12px;
|
135
|
-
// $tooltipFontWeight: bold;
|
136
|
-
// $tooltipFontColor: #fff;
|
137
|
-
// $tapToCloseFontSize: 10;
|
138
|
-
// $tapToCloseFontWeight: normal;
|
139
|
-
// $tapToCloseFontColor: #888;
|
140
|
-
// $tooltipFontSizeScreenSm: 14;
|
141
|
-
// $tooltipBgOpacityScreenSm: 0.85;
|
142
|
-
// $tooltipBorderRadius: 4px;
|
143
|
-
|
144
|
-
// Pricing Table Settings
|
145
|
-
|
146
|
-
// $priceTableBorder: solid 1px #ddd;
|
147
|
-
// $priceTitleBgColor: #ddd;
|
148
|
-
// $priceTitlePadding: 15px 20px;
|
149
|
-
// $priceTitleAlign: center;
|
150
|
-
// $priceTitleColor: #333;
|
151
|
-
// $priceTitleWeight: bold;
|
152
|
-
// $priceTitleSize: 16px;
|
153
|
-
|
154
|
-
// $priceMoneyBgColor: #eee;
|
155
|
-
// $priceMoneyPadding: 15px 20px;
|
156
|
-
// $priceMoneyAlign: center;
|
157
|
-
// $priceMoneyColor: #333;
|
158
|
-
// $priceMoneyWeight: normal;
|
159
|
-
// $priceMoneySize: 20px;
|
160
|
-
|
161
|
-
// $priceBgColor: #fff;
|
162
|
-
// $priceDescColor: #777;
|
163
|
-
// $priceDescPadding: 15px;
|
164
|
-
// $priceDescAlign: center;
|
165
|
-
// $priceDescFontSize: 12px;
|
166
|
-
// $priceDescWeight: normal;
|
167
|
-
// $priceDescLineHeight: 1.4;
|
168
|
-
// $priceDescBtmBorder: dotted 1px #ddd;
|
169
|
-
|
170
|
-
// $priceItemColor: #333;
|
171
|
-
// $priceItemPadding: 15px;
|
172
|
-
// $priceItemAlign: center;
|
173
|
-
// $priceItemFontSize: 14px;
|
174
|
-
// $priceItemWeight: normal;
|
175
|
-
// $priceItemBtmBorder: dotted 1px #ddd;
|
176
|
-
|
177
|
-
// $priceCtaBgColor: #f5f5f5;
|
178
|
-
// $priceCtaAlign: center;
|
179
|
-
// $priceCtaPadding: 20px;
|
180
|
-
|
181
|
-
// Orbit Settings
|
182
|
-
|
183
|
-
// $orbitCaptionBgColorOldBrowser: #000;
|
184
|
-
// $orbitCaptionBgColor: rgba(0,0,0,.6);
|
185
|
-
// $orbitCaptionFontColor: #fff;
|
186
|
-
// $orbitBulletNavColor: #999;
|
187
|
-
// $orbitBulletNavColorActive: #222;
|
188
|
-
// $orbitHasThumbBorderColor: #000;
|
189
|
-
// $orbitHasThumbBorderWidth: 2px;
|
190
|
-
// $orbitHasThumbBorderStyle: solid;
|
191
|
-
// $orbitSlideNumBgColor: rgba(0,0,0,0.7);
|
192
|
-
// $orbitSlideNumFontColor: #fff;
|
193
|
-
// $orbitSlideNumPadding: 5px;
|
194
|
-
|
195
|
-
// Clearing Settings
|
196
|
-
|
197
|
-
// $clearingBg: rgba(0,0,0,0.8);
|
198
|
-
// $clearingOldBrowserBg: rgb(0,0,0);
|
199
|
-
// $clearingCaptionBg: rgba(0,0,0,0.7);
|
200
|
-
// $clearingCaptionOldBrowserBg: rgb(0,0,0);
|
201
|
-
// $clearingCaptionFontColor: #fff;
|
202
|
-
// $clearingCloseColor: #fff;
|
203
|
-
// $clearingArrowColor: #fff;
|
204
|
-
// $clearingArrowSize: 16px;
|
205
|
-
// $clearingCarouselBg: rgba(0,0,0,0.75);
|
206
|
-
// $clearingCarouselOldBrowserBg: rgb(0,0,0);
|
207
|
-
// $clearingCarouselHeight: 150px;
|
208
|
-
// $clearingActiveImgHeight: 75%;
|
209
|
-
// $clearingCarouselThumbWidth: 175px;
|
210
|
-
// $clearingCarouselThumbActiveBorder: 4px solid rgb(255,255,255);
|
211
|
-
// $clearingImgBg: rgba(0,0,0,0.75);
|
212
|
-
// $clearingImgOldBrowserBg: rgb(0,0,0);
|
213
|
-
|
214
|
-
// Joyride Settings
|
215
|
-
|
216
|
-
// $tipBg: rgba(0,0,0,0.8);
|
217
|
-
// $tipBgIE8: #000;
|
218
|
-
// $tipFontColor: #fff;
|
219
|
-
// $tipHeaderWeight: bold;
|
220
|
-
// $tipDefaultWidth: 300px;
|
221
|
-
// $tipBorderRadius: 4px;
|
222
|
-
// $tipPadding: 18px 20px 24px;
|
223
|
-
// $tipNubSize: 14px;
|
224
|
-
// $tipFontSize: 14px;
|
225
|
-
// $tipTimerWidth: 50px;
|
226
|
-
// $tipTimerHeight: 3px;
|
227
|
-
// $tipTimerBorder: solid 1px #555;
|
228
|
-
// $tipTimerColor: #666;
|
229
|
-
// $tipCloseColor: #777;
|
230
|
-
// $tipCloseSize: 20px;
|
231
|
-
// $tipCloseWeight: normal;
|
232
|
-
// $tipScreenFill: rgba(0,0,0,0.5);
|
233
|
-
|
234
|
-
// Modular Scale Settings
|
235
|
-
|
236
|
-
// $ratio: $golden; // THIS IS DEFAULT IN MODULAR-SCALE
|
237
|
-
// $baseFontSize: 14px;
|
238
|
-
// $importantModNum: 44px;
|
239
|
-
// $base-size: $baseFontSize $importantModNum;
|
240
|
-
// Produced the following list of values: 14, 17, 23, 27, 37, 44, 59, 71, 95, 115;
|
241
|
-
// http://www.modularscale.com by Tim Brown
|
242
|
-
// https://github.com/scottkellum/modular-scale by scottkellum
|
243
|
-
|
244
|
-
$fontFileName: "/__font/general_foundicons";
|
245
|
-
$fontName: "GeneralFoundicons";
|
246
|
-
$classPrefix: "foundicon-";
|
247
|
-
|
248
|
-
@mixin i-class($name,$pua) {
|
249
|
-
.#{$classPrefix}#{$name}:before {
|
250
|
-
content: "\f#{$pua}";
|
251
|
-
}
|
252
|
-
}
|
253
|
-
|
254
|
-
@mixin ie-class($name,$pua) {
|
255
|
-
.#{$classPrefix}#{$name} {
|
256
|
-
*zoom: expression( this.runtimeStyle['zoom'] = "1", this.innerHTML = "#{$pua};");
|
257
|
-
}
|
258
|
-
}
|
259
|
-
|
260
|
-
@mixin face {
|
261
|
-
@font-face {
|
262
|
-
font-family: $fontName;
|
263
|
-
src: url('#{$fontFileName}.eot');
|
264
|
-
src: url('#{$fontFileName}.eot?#iefix') format('embedded-opentype'),
|
265
|
-
url('#{$fontFileName}.woff') format('woff'),
|
266
|
-
url('#{$fontFileName}.ttf') format('truetype'),
|
267
|
-
url('#{$fontFileName}.svg##{$fontName}') format('svg');
|
268
|
-
font-weight: normal;
|
269
|
-
font-style: normal;
|
270
|
-
}
|
271
|
-
}
|