Package not found. Please check the package name and try again.
ultimate-base 0.2.4 → 0.3.0.alpha
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 +4 -1
- data/.rvmrc +0 -1
- data/.rvmrc.example +0 -1
- data/Gemfile +6 -0
- data/Gemfile.lock +113 -1
- data/app/assets/javascripts/ultimate/backbone/base.js.coffee +14 -2
- data/app/assets/javascripts/ultimate/backbone/extra/jquery-plugin-adapter.js.coffee +1 -1
- data/app/assets/javascripts/ultimate/backbone/model.js.coffee +6 -0
- data/app/assets/javascripts/ultimate/backbone/view.js.coffee +5 -4
- data/app/assets/javascripts/ultimate/backbone/views/slider.js.coffee +4 -1
- data/app/assets/javascripts/ultimate/helpers/asset_tag.js.coffee +71 -54
- data/app/assets/javascripts/ultimate/helpers/base.js.coffee +3 -0
- data/app/assets/javascripts/ultimate/helpers/decor.js.coffee +19 -14
- data/app/assets/javascripts/ultimate/helpers/number.js.coffee +600 -0
- data/app/assets/javascripts/ultimate/helpers/record_tag.js.coffee +66 -0
- data/app/assets/javascripts/ultimate/helpers/tag.js.coffee +77 -0
- data/app/assets/javascripts/ultimate/helpers/url.js.coffee +49 -0
- data/app/assets/javascripts/ultimate/helpers.js.coffee +39 -66
- data/app/assets/javascripts/ultimate/{devise.js.coffee → improves/devise.js.coffee} +0 -0
- data/app/assets/javascripts/ultimate/improves/i18n-lite.js.coffee +18 -12
- data/app/assets/javascripts/ultimate/improves/magic-radios.js.coffee +2 -0
- data/app/assets/javascripts/ultimate/improves/typed-fields.js.coffee +13 -14
- data/app/assets/javascripts/ultimate/{base.js.coffee → jquery.base.js.coffee} +24 -37
- data/app/assets/javascripts/ultimate/{experimental/_inflections → underscore}/underscore.inflection.js +19 -18
- data/app/assets/javascripts/ultimate/underscore/underscore.outcasts.js.coffee +123 -0
- data/app/assets/javascripts/ultimate/underscore/underscore.string.js +16 -6
- data/config/routes.rb +2 -0
- data/lib/{ultimate-base → ultimate/base}/engine.rb +1 -0
- data/lib/{ultimate-base → ultimate/base}/version.rb +1 -1
- data/lib/ultimate/base.rb +10 -0
- data/lib/{ultimate-base → ultimate}/extensions/directive_processor.rb +0 -0
- data/lib/{ultimate-base → ultimate}/extensions/sass_script_functions.rb +0 -0
- data/scripts/rails +8 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/_emfile +18 -0
- data/{app/assets/javascripts/ultimate/helpers/forms.js.coffee → test/dummy/app/assets/images/.gitkeep} +0 -0
- data/test/dummy/app/assets/javascripts/application.js +3 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/assets/stylesheets/global/forms.css.scss +65 -0
- data/test/dummy/app/assets/stylesheets/global/layout/footer.scss +18 -0
- data/test/dummy/app/assets/stylesheets/global/layout/header.scss +13 -0
- data/test/dummy/app/assets/stylesheets/global/layout/main-menu.scss +68 -0
- data/test/dummy/app/assets/stylesheets/global/layout.css.scss +46 -0
- data/test/dummy/app/assets/stylesheets/global/reserved.css.scss +79 -0
- data/test/dummy/app/assets/stylesheets/global/reset.css.scss +85 -0
- data/test/dummy/app/assets/stylesheets/global/structures.css.scss +9 -0
- data/test/dummy/app/assets/stylesheets/import/base.scss +34 -0
- data/test/dummy/app/assets/stylesheets/plugins/qunit.css.scss +3 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/controllers/main_controller.rb +8 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/views/application/_footer.html.haml +3 -0
- data/test/dummy/app/views/application/_header.html.haml +4 -0
- data/test/dummy/app/views/application/_main_menu.html.haml +11 -0
- data/test/dummy/app/views/layouts/application.html.haml +24 -0
- data/test/dummy/app/views/main/index.html.haml +13 -0
- data/test/dummy/app/views/main/qunit.html.haml +7 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +40 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/qunit-rails.rb +1 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +63 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/javascripts/all_tests.js.coffee +13 -0
- data/test/javascripts/test_helper.js.coffee +3 -0
- data/test/javascripts/tests/base_test.js.coffee +42 -0
- data/test/javascripts/tests/helpers/asset_tag_test.js.coffee +51 -0
- data/test/javascripts/tests/helpers/number_test.js.coffee +250 -0
- data/test/javascripts/tests/helpers/record_tag_test.js.coffee +56 -0
- data/test/javascripts/tests/helpers/tag_test.js.coffee +33 -0
- data/test/javascripts/tests/helpers/url_test.js.coffee +28 -0
- data/test/javascripts/tests/helpers_test.js.coffee +47 -0
- data/test/javascripts/tests/improves/i18n-lite_test.js.coffee +25 -0
- data/test/javascripts/tests/underscore/underscore.outcasts.test.js.coffee +38 -0
- data/test/stylesheets/test_helper.css +4 -0
- data/ultimate-base.gemspec +4 -4
- metadata +116 -24
- data/app/assets/javascripts/ultimate/bus.js.coffee +0 -57
- data/app/assets/javascripts/ultimate/experimental/_inflections/dzone.inflections.js +0 -154
- data/app/assets/javascripts/ultimate/helpers/array.js.coffee +0 -63
- data/app/assets/javascripts/ultimate/helpers/tags.js.coffee +0 -73
- data/app/assets/javascripts/ultimate/widgets/dock.js.coffee +0 -70
- data/app/assets/javascripts/ultimate/widgets/gear.js.coffee +0 -84
- data/app/assets/javascripts/ultimate/widgets/jquery-ext.js.coffee +0 -104
- data/app/assets/javascripts/ultimate/widgets/jquery.adapter.js.coffee +0 -62
- data/app/assets/javascripts/ultimate/widgets/widget.js.coffee +0 -115
- data/lib/ultimate-base.rb +0 -10
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
###
|
|
2
|
+
Underscore.outcasts
|
|
3
|
+
(c) 2012 Dmitry Karpunin <koderfunk aet gmail dot com>
|
|
4
|
+
Underscore.outcasts is freely distributable under the terms of the MIT license.
|
|
5
|
+
Documentation: https://github.com/KODerFunk/underscore.outcasts
|
|
6
|
+
Some code is borrowed from outcasts pull requests to Underscore.
|
|
7
|
+
Version '0.1.1'
|
|
8
|
+
###
|
|
9
|
+
|
|
10
|
+
'use strict'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Defining underscore.outcasts
|
|
15
|
+
|
|
16
|
+
UnderscoreOutcasts =
|
|
17
|
+
|
|
18
|
+
VERSION: '0.1.1'
|
|
19
|
+
|
|
20
|
+
delete: (object, key) ->
|
|
21
|
+
value = object[key]
|
|
22
|
+
delete object[key]
|
|
23
|
+
value
|
|
24
|
+
|
|
25
|
+
blockGiven: (args) ->
|
|
26
|
+
block = _.last(args)
|
|
27
|
+
if _.isFunction(block) then block else null
|
|
28
|
+
|
|
29
|
+
sortHash: (hash, byValue = false) ->
|
|
30
|
+
_.sortBy(_.map(hash, (value, key) -> [key, value]), (pair) -> pair[if byValue then 1 else 0])
|
|
31
|
+
|
|
32
|
+
regexpValidKey: /^[\w\-]+$/
|
|
33
|
+
|
|
34
|
+
invert: (object) ->
|
|
35
|
+
result = {}
|
|
36
|
+
for key, value of object
|
|
37
|
+
if _.isArray(value)
|
|
38
|
+
for newKey in value when UnderscoreOutcasts.regexpValidKey.test(newKey)
|
|
39
|
+
result[newKey] = key
|
|
40
|
+
else if UnderscoreOutcasts.regexpValidKey.test(value)
|
|
41
|
+
if _.has(result, value)
|
|
42
|
+
if _.isArray(result[value])
|
|
43
|
+
result[value].push key
|
|
44
|
+
else
|
|
45
|
+
result[value] = [result[value], key]
|
|
46
|
+
else
|
|
47
|
+
result[value] = key
|
|
48
|
+
result
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
###
|
|
52
|
+
Split array into slices of <number> elements.
|
|
53
|
+
Map result by iterator if last given.
|
|
54
|
+
|
|
55
|
+
>>> eachSlice [1..10], 3, (a) -> cout a
|
|
56
|
+
[1, 2, 3]
|
|
57
|
+
[4, 5, 6]
|
|
58
|
+
[7, 8, 9]
|
|
59
|
+
[10]
|
|
60
|
+
###
|
|
61
|
+
eachSlice: (array, number) ->
|
|
62
|
+
size = array.length
|
|
63
|
+
index = 0
|
|
64
|
+
slices = []
|
|
65
|
+
while index < size
|
|
66
|
+
nextIndex = index + number
|
|
67
|
+
slices.push array.slice(index, nextIndex)
|
|
68
|
+
index = nextIndex
|
|
69
|
+
if block = @blockGiven(arguments) then _.map(slices, block) else slices
|
|
70
|
+
|
|
71
|
+
###
|
|
72
|
+
Splits or iterates over the array in groups of size +number+,
|
|
73
|
+
padding any remaining slots with +fill_with+ unless it is +false+.
|
|
74
|
+
|
|
75
|
+
>>> inGroupsOf [1..7], 3, (group) -> cout group
|
|
76
|
+
[1, 2, 3]
|
|
77
|
+
[4, 5, 6]
|
|
78
|
+
[7, null, null]
|
|
79
|
+
|
|
80
|
+
>>> inGroupsOf [1..3], 2, ' ', (group) -> cout group
|
|
81
|
+
[1, 2]
|
|
82
|
+
[3, " "]
|
|
83
|
+
|
|
84
|
+
>>> inGroupsOf [1..3], 2, false, (group) -> cout group
|
|
85
|
+
[1, 2]
|
|
86
|
+
[3]
|
|
87
|
+
###
|
|
88
|
+
inGroupsOf: (array, number, fillWith = null) ->
|
|
89
|
+
return array if number < 1
|
|
90
|
+
unless fillWith is false
|
|
91
|
+
# size % number gives how many extra we have;
|
|
92
|
+
# subtracting from number gives how many to add;
|
|
93
|
+
# modulo number ensures we don't add group of just fill.
|
|
94
|
+
padding = (number - array.length % number) % number
|
|
95
|
+
if padding
|
|
96
|
+
fillWith = null if _.isFunction(fillWith)
|
|
97
|
+
array = array.slice()
|
|
98
|
+
array.push(fillWith) while padding-- > 0
|
|
99
|
+
@eachSlice array, number, @blockGiven(arguments)
|
|
100
|
+
|
|
101
|
+
exports: ->
|
|
102
|
+
result = {}
|
|
103
|
+
for prop of @
|
|
104
|
+
continue if not @hasOwnProperty(prop) or prop.match(/^(?:include|contains|reverse)$/)
|
|
105
|
+
result[prop] = @[prop]
|
|
106
|
+
result
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# CommonJS module is defined
|
|
111
|
+
if exports?
|
|
112
|
+
if module?.exports
|
|
113
|
+
# Export module
|
|
114
|
+
module.exports = UnderscoreOutcasts
|
|
115
|
+
exports.UnderscoreOutcasts = UnderscoreOutcasts
|
|
116
|
+
else if define?.amd
|
|
117
|
+
# Register as a named module with AMD.
|
|
118
|
+
define 'underscore.outcasts', [], -> UnderscoreOutcasts
|
|
119
|
+
else
|
|
120
|
+
# Integrate with Underscore.js if defined
|
|
121
|
+
# or create our own underscore object.
|
|
122
|
+
@_ ||= {}
|
|
123
|
+
@_.outcasts = @_.out = UnderscoreOutcasts
|
|
@@ -28,11 +28,13 @@
|
|
|
28
28
|
|
|
29
29
|
var slice = [].slice;
|
|
30
30
|
|
|
31
|
-
var defaultToWhiteSpace = function(characters){
|
|
32
|
-
if (characters
|
|
31
|
+
var defaultToWhiteSpace = function(characters) {
|
|
32
|
+
if (characters == null)
|
|
33
|
+
return '\\s';
|
|
34
|
+
else if (characters.source)
|
|
35
|
+
return characters.source;
|
|
36
|
+
else
|
|
33
37
|
return '[' + _s.escapeRegExp(characters) + ']';
|
|
34
|
-
}
|
|
35
|
-
return '\\s';
|
|
36
38
|
};
|
|
37
39
|
|
|
38
40
|
var escapeChars = {
|
|
@@ -378,7 +380,7 @@
|
|
|
378
380
|
},
|
|
379
381
|
|
|
380
382
|
words: function(str, delimiter) {
|
|
381
|
-
if (str
|
|
383
|
+
if (_s.isBlank(str)) return [];
|
|
382
384
|
return _s.trim(str, delimiter).split(delimiter || /\s+/);
|
|
383
385
|
},
|
|
384
386
|
|
|
@@ -473,14 +475,22 @@
|
|
|
473
475
|
return ~pos ? str.slice(0, pos) : str;
|
|
474
476
|
},
|
|
475
477
|
|
|
476
|
-
toSentence: function(array, separator, lastSeparator) {
|
|
478
|
+
toSentence: function(array, separator, lastSeparator, serial) {
|
|
477
479
|
separator = separator || ', '
|
|
478
480
|
lastSeparator = lastSeparator || ' and '
|
|
479
481
|
var a = array.slice(), lastMember = a.pop();
|
|
480
482
|
|
|
483
|
+
if (array.length > 2 && serial) lastSeparator = _s.rtrim(separator) + lastSeparator;
|
|
484
|
+
|
|
481
485
|
return a.length ? a.join(separator) + lastSeparator + lastMember : lastMember;
|
|
482
486
|
},
|
|
483
487
|
|
|
488
|
+
toSentenceSerial: function() {
|
|
489
|
+
var args = slice.call(arguments);
|
|
490
|
+
args[3] = true;
|
|
491
|
+
return _s.toSentence.apply(_s, args);
|
|
492
|
+
},
|
|
493
|
+
|
|
484
494
|
slugify: function(str) {
|
|
485
495
|
if (str == null) return '';
|
|
486
496
|
|
data/config/routes.rb
ADDED
|
File without changes
|
|
File without changes
|
data/scripts/rails
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
|
3
|
+
|
|
4
|
+
ENGINE_ROOT = File.expand_path('../..', __FILE__)
|
|
5
|
+
ENGINE_PATH = File.expand_path('../../lib/ultimate-base/engine', __FILE__)
|
|
6
|
+
|
|
7
|
+
require 'rails/all'
|
|
8
|
+
require 'rails/engine/commands'
|
data/test/dummy/Rakefile
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
3
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
4
|
+
|
|
5
|
+
require File.expand_path('../config/application', __FILE__)
|
|
6
|
+
|
|
7
|
+
Dummy::Application.load_tasks
|
data/test/dummy/_emfile
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
source "http://rubygems.org"
|
|
2
|
+
|
|
3
|
+
# Specify your gem's dependencies in ultimate-base.gemspec
|
|
4
|
+
gemspec path: "../.."
|
|
5
|
+
|
|
6
|
+
#gem "rails", "~> 3.2.8"
|
|
7
|
+
#gem "sqlite3"
|
|
8
|
+
#
|
|
9
|
+
#group :assets do
|
|
10
|
+
# gem "coffee-rails", "~> 3.2.1"
|
|
11
|
+
# gem "therubyracer"
|
|
12
|
+
#end
|
|
13
|
+
|
|
14
|
+
#gem "sass-rails", "~> 3.2.3"
|
|
15
|
+
#gem "haml"
|
|
16
|
+
#gem "jquery-rails"
|
|
17
|
+
#gem "qunit-rails"
|
|
18
|
+
#gem "quiet_assets"
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
@import "import/base";
|
|
2
|
+
|
|
3
|
+
label {
|
|
4
|
+
display: block;
|
|
5
|
+
padding: 0 0 5px 0;
|
|
6
|
+
font-size: 16px;
|
|
7
|
+
cursor: pointer;
|
|
8
|
+
&.small {
|
|
9
|
+
@include inline-block;
|
|
10
|
+
margin-left: 5px;
|
|
11
|
+
font-size: 13px;
|
|
12
|
+
color: #ccc;
|
|
13
|
+
&:first-child {
|
|
14
|
+
margin-left: 0;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
input {
|
|
20
|
+
position: relative;
|
|
21
|
+
border: 0;
|
|
22
|
+
&::-moz-focus-inner {
|
|
23
|
+
border: 0;
|
|
24
|
+
padding: 0;
|
|
25
|
+
}
|
|
26
|
+
&[type="text"] {
|
|
27
|
+
width: 260px;
|
|
28
|
+
height: 21px;
|
|
29
|
+
}
|
|
30
|
+
&[type="submit"] {
|
|
31
|
+
height: 27px;
|
|
32
|
+
padding: 0 5px;
|
|
33
|
+
@include font_custom(16px);
|
|
34
|
+
color: $c-white;
|
|
35
|
+
background: $c-pink;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
input, select {
|
|
41
|
+
outline: 0;
|
|
42
|
+
@include font_base(15px, 21px);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
input[type="text"], select, textarea {
|
|
46
|
+
border: 0;
|
|
47
|
+
padding: 3px 6px;
|
|
48
|
+
background: #4C4C4C;
|
|
49
|
+
color: $c-white;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
select {
|
|
53
|
+
width: 88px;
|
|
54
|
+
height: 26px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
textarea {
|
|
58
|
+
height: 140px;
|
|
59
|
+
max-width: 360px;
|
|
60
|
+
min-height: 140px;
|
|
61
|
+
min-height: 100px;
|
|
62
|
+
min-width: 260px;
|
|
63
|
+
width: 260px;
|
|
64
|
+
}
|
|
65
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
> .l-page__footer {
|
|
2
|
+
@include user-select;
|
|
3
|
+
height: $l-page__footer_height;
|
|
4
|
+
line-height: $l-page__footer_height - 2px;
|
|
5
|
+
color: #545454;
|
|
6
|
+
font-size: 12px;
|
|
7
|
+
a {
|
|
8
|
+
color: #545454;
|
|
9
|
+
font-weight: bold;
|
|
10
|
+
&:hover {
|
|
11
|
+
text-decoration: underline;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
.l-page__center {
|
|
15
|
+
width: $l-page_width - 20px * 2;
|
|
16
|
+
margin: 0 auto;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
> ul.l-page__main-menu {
|
|
2
|
+
@include user-select;
|
|
3
|
+
@include inline-block-list;
|
|
4
|
+
@include font_custom(22px);
|
|
5
|
+
padding: 18px 0 35px 15px;
|
|
6
|
+
position: relative;
|
|
7
|
+
z-index: 10;
|
|
8
|
+
|
|
9
|
+
> li {
|
|
10
|
+
padding: 8px 20px;
|
|
11
|
+
text-transform: capitalize;
|
|
12
|
+
> a {
|
|
13
|
+
display: block;
|
|
14
|
+
padding: 0 7px;
|
|
15
|
+
border-bottom: 1px solid #00c9eb;
|
|
16
|
+
&:hover {
|
|
17
|
+
border-bottom-color: $c-sub-menu;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&.with-sub-menu {
|
|
22
|
+
@include border-radius(10px 10px 0 0);
|
|
23
|
+
@include pie;
|
|
24
|
+
position: relative;
|
|
25
|
+
> a {
|
|
26
|
+
padding: 0 11px;
|
|
27
|
+
}
|
|
28
|
+
> ul.sub-menu {
|
|
29
|
+
display: none;
|
|
30
|
+
position: absolute;
|
|
31
|
+
left: 0;
|
|
32
|
+
top: 35px;
|
|
33
|
+
background: $c-sub-menu;
|
|
34
|
+
font-size: 18px;
|
|
35
|
+
width: 100%;
|
|
36
|
+
border-radius: 0 0 10px 10px;
|
|
37
|
+
text-align: left;
|
|
38
|
+
padding: 5px 0 10px;
|
|
39
|
+
|
|
40
|
+
> li {
|
|
41
|
+
padding: 0 10px;
|
|
42
|
+
line-height: 24px;
|
|
43
|
+
display: block;
|
|
44
|
+
|
|
45
|
+
> a {
|
|
46
|
+
@include inline-block($vertical-align: baseline);
|
|
47
|
+
border-bottom: 1px dotted $c-sub-menu;
|
|
48
|
+
&:hover {
|
|
49
|
+
border-bottom-color: $c-white;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&:hover {
|
|
56
|
+
background: $c-sub-menu asset-data-url("layout/main-menu__item_hover.png") 50% -4px no-repeat;
|
|
57
|
+
> a {
|
|
58
|
+
border-bottom-color: $c-sub-menu;
|
|
59
|
+
}
|
|
60
|
+
> ul.sub-menu {
|
|
61
|
+
display: block;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
@import "import/base";
|
|
2
|
+
//@import "ultimate/flash";
|
|
3
|
+
|
|
4
|
+
$images-path: $layout-images-path;
|
|
5
|
+
|
|
6
|
+
//@include font-face($font-name_custom, "appetite");
|
|
7
|
+
|
|
8
|
+
body {
|
|
9
|
+
@include font_base($font-size_base /*, 1.2*/);
|
|
10
|
+
min-width: $l-page_width;
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: 0;
|
|
13
|
+
cursor: default;
|
|
14
|
+
background: $c-body;
|
|
15
|
+
color: $c-white;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.l-page {
|
|
19
|
+
width: $l-page_width;
|
|
20
|
+
margin: 0 auto;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
|
|
23
|
+
//.l-page__flashes {
|
|
24
|
+
// @include ultimate-flash($background-alpha: 0.7);
|
|
25
|
+
// @include font_custom;
|
|
26
|
+
//}
|
|
27
|
+
|
|
28
|
+
@import "layout/header";
|
|
29
|
+
|
|
30
|
+
//@import "layout/main-menu";
|
|
31
|
+
|
|
32
|
+
> .l-page__content {
|
|
33
|
+
.l-page__title {
|
|
34
|
+
@include font_custom(23px);
|
|
35
|
+
border-bottom: 1px solid #434343;
|
|
36
|
+
padding: 0;
|
|
37
|
+
height: 35px;
|
|
38
|
+
margin-bottom: 12px;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@import "layout/footer";
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@include sticky-footer($l-page__footer_height);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
@import "import/base";
|
|
2
|
+
|
|
3
|
+
.bold {
|
|
4
|
+
font-weight: bold;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.italic {
|
|
8
|
+
font-style: italic;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.uline {
|
|
12
|
+
text-decoration: underline;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.strike {
|
|
16
|
+
text-decoration: line-through;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.hidden {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.hidden-important {
|
|
24
|
+
display: none !important;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.block {
|
|
28
|
+
display: block;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.inline-block {
|
|
32
|
+
@include inline-block;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.nowrap {
|
|
36
|
+
white-space: nowrap;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
a.image {
|
|
40
|
+
display: block;
|
|
41
|
+
position: relative;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.no-info, .loading {
|
|
46
|
+
font-style: italic;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.float-left {
|
|
50
|
+
float: left;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.float-right {
|
|
54
|
+
float: right;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.clear {
|
|
58
|
+
clear: both;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.clear-left {
|
|
62
|
+
clear: left;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.clear-right {
|
|
66
|
+
clear: right;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.g-justify {
|
|
70
|
+
@include g-justify;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
img.middle {
|
|
74
|
+
vertical-align: middle;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.text-center {
|
|
78
|
+
text-align: center;
|
|
79
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@import "../import/base";
|
|
2
|
+
|
|
3
|
+
img {
|
|
4
|
+
border: 0;
|
|
5
|
+
outline: 0;
|
|
6
|
+
vertical-align: bottom;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
div {
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
header, nav, aside, section, article, footer {
|
|
14
|
+
display: block;
|
|
15
|
+
position: relative;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
em, i {
|
|
19
|
+
font-style: normal;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
h1, h2, h3, h4, h5, h6 {
|
|
23
|
+
margin: 0;
|
|
24
|
+
padding: 5px 0;
|
|
25
|
+
font-weight: normal;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//@mixin hx($n, $size, $margin: false) {
|
|
29
|
+
// h#{$n} {
|
|
30
|
+
// font-size: $size;
|
|
31
|
+
// @if $margin {
|
|
32
|
+
// margin: $margin;
|
|
33
|
+
// }
|
|
34
|
+
// }
|
|
35
|
+
//}
|
|
36
|
+
//@include hx(1, 38px);
|
|
37
|
+
//@include hx(2, 36px);
|
|
38
|
+
//@include hx(3, 21px);
|
|
39
|
+
//@include hx(4, 18px);
|
|
40
|
+
//@include hx(5, 14px);
|
|
41
|
+
//@include hx(6, 12px);
|
|
42
|
+
|
|
43
|
+
p {
|
|
44
|
+
margin: 0;
|
|
45
|
+
padding: 5px 0;
|
|
46
|
+
cursor: text;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
span {
|
|
50
|
+
cursor: default;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
a {
|
|
54
|
+
color: $c-link;
|
|
55
|
+
outline: none;
|
|
56
|
+
text-decoration: none;
|
|
57
|
+
span {
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
}
|
|
60
|
+
&:hover {
|
|
61
|
+
color: $c-link_hover;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
ul {
|
|
66
|
+
margin: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//li {
|
|
70
|
+
// list-style-type: none;
|
|
71
|
+
//}
|
|
72
|
+
|
|
73
|
+
//table {
|
|
74
|
+
// width: 100%;
|
|
75
|
+
// border-collapse: collapse;
|
|
76
|
+
// tr {
|
|
77
|
+
// > th, > td {
|
|
78
|
+
// padding: 0;
|
|
79
|
+
// vertical-align: top;
|
|
80
|
+
// }
|
|
81
|
+
// > th {
|
|
82
|
+
// font-weight: normal;
|
|
83
|
+
// }
|
|
84
|
+
// }
|
|
85
|
+
//}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@import "ultimate/mixins/microstructures";
|
|
2
|
+
@import "ultimate/mixins/css3";
|
|
3
|
+
@import "ultimate/mixins/fonts";
|
|
4
|
+
|
|
5
|
+
$layout-images-path: "layout";
|
|
6
|
+
|
|
7
|
+
$font-family_base: Tahoma, Helvetica, sans-serif;
|
|
8
|
+
$font-size_base: 14px;
|
|
9
|
+
$font-name_custom: "Cuprum";
|
|
10
|
+
$font-family_custom: $font-name_custom, "Trebuchet MS", Tahoma, sans-serif;
|
|
11
|
+
|
|
12
|
+
$l-page__header_height: 50px;
|
|
13
|
+
$l-page__footer_height: 60px;
|
|
14
|
+
|
|
15
|
+
$l-page_width: 980px;
|
|
16
|
+
|
|
17
|
+
$news__picture_width: 246px;
|
|
18
|
+
$news__picture_height: 163px;
|
|
19
|
+
|
|
20
|
+
$model__photo_small_width: 80px;
|
|
21
|
+
$model__photo_small_height: 111px;
|
|
22
|
+
$model__photo_middle_width: 230px;
|
|
23
|
+
$model__photo_middle_height: 306px;
|
|
24
|
+
$model__photo_big_width: 325px;
|
|
25
|
+
$model__photo_big_height: 475px;
|
|
26
|
+
|
|
27
|
+
$c-pitch-black: #000000;
|
|
28
|
+
$c-white: #ffffff;
|
|
29
|
+
$c-body: #1f1f1f;
|
|
30
|
+
$c-page: $c-pitch-black;
|
|
31
|
+
$c-link: $c-white;
|
|
32
|
+
$c-link_hover: #9df;
|
|
33
|
+
$c-pink: #FF0F51;
|
|
34
|
+
$c-sub-menu: $c-pink;
|