ricogen 0.1
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/README.md +234 -0
- data/REVISION +1 -0
- data/Rakefile +24 -0
- data/SNIPPETS.md +32 -0
- data/VERSION +1 -0
- data/bin/ricogen +61 -0
- data/init.rb +123 -0
- data/ricogen.gemspec +27 -0
- data/templates/Gemfile +42 -0
- data/templates/_config.rb +49 -0
- data/templates/application.html.haml +28 -0
- data/templates/application.rb +8 -0
- data/templates/compass.config +15 -0
- data/templates/compass.rb +5 -0
- data/templates/database.yml +10 -0
- data/templates/environment.rb +13 -0
- data/templates/gitignore +6 -0
- data/templates/javascripts/application.js +7 -0
- data/templates/javascripts/rails.js +1 -0
- data/templates/magent.yml +13 -0
- data/templates/mongo.rb +18 -0
- data/templates/sass/_setup.sass +12 -0
- data/templates/sass/application.sass +15 -0
- data/templates/sass/lib/_extend.sass +87 -0
- data/templates/sass/lib/_mixins.sass +78 -0
- data/templates/sass/lib/_reset.sass +150 -0
- data/templates/sass/lib/_variables.sass +26 -0
- data/templates/sass/styles/_common.sass +1 -0
- data/templates/sass/styles/_extend.sass +1 -0
- data/templates/sass/styles/_mixins.sass +1 -0
- data/templates/sass/styles/_template.sass +1 -0
- data/templates/sass/styles/_variables.sass +1 -0
- data/test/hamgen_test.rb +33 -0
- metadata +154 -0
data/ricogen.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
HAML_GEMSPEC = Gem::Specification.new do |s|
|
5
|
+
s.name = 'ricogen'
|
6
|
+
s.rubyforge_project = 'ricogen'
|
7
|
+
s.summary = "My rails 3 app generator based on hamgen"
|
8
|
+
s.version = File.read('VERSION').strip
|
9
|
+
s.authors = ['Hampton Catlin', "David Cuadrado"]
|
10
|
+
s.email = 'krawek@gmail.com'
|
11
|
+
s.description = <<-END
|
12
|
+
A Rails 3.0 generator (like for the whole project) that pre-generates
|
13
|
+
a bunch of shit I like. Most of it is stolen directly from Hampton's Rails Template
|
14
|
+
at http://github.com/hcatlin/hamgen but with changes just for ole' me
|
15
|
+
END
|
16
|
+
|
17
|
+
s.add_runtime_dependency('colored', ['~> 1.2'])
|
18
|
+
s.add_runtime_dependency('rails', ['~> 3.0.0'])
|
19
|
+
s.add_runtime_dependency('haml', ['~> 3.0.18'])
|
20
|
+
|
21
|
+
s.add_development_dependency('rake', ['~> 0.8.7'])
|
22
|
+
|
23
|
+
s.executables = ['ricogen']
|
24
|
+
s.files = Dir['**/**'].to_a.select { |f| f[0..2] != "pkg"}
|
25
|
+
s.homepage = 'http://www.hamptoncatlin.com/'
|
26
|
+
end
|
27
|
+
|
data/templates/Gemfile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
source "http://gemcutter.org"
|
2
|
+
|
3
|
+
gem "rails", "3.0.1"
|
4
|
+
|
5
|
+
# ui
|
6
|
+
gem "haml"
|
7
|
+
gem 'compass', '0.10.6.pre.1'
|
8
|
+
|
9
|
+
# utils
|
10
|
+
gem 'magic', '~> 0.2.6'
|
11
|
+
gem 'ruby-stemmer', '~> 0.8.2'
|
12
|
+
gem 'magent', '~> 0.5.2'
|
13
|
+
gem 'uuidtools'
|
14
|
+
gem 'sanitize', '~> 1.2.1'
|
15
|
+
|
16
|
+
# mongodb
|
17
|
+
gem 'bson', '1.1.1'
|
18
|
+
gem 'bson_ext', '1.1.1'
|
19
|
+
gem 'plucky', '0.3.6'
|
20
|
+
|
21
|
+
gem 'mongo', '1.1.1'
|
22
|
+
gem 'jnunemaker-validatable', '1.8.4'
|
23
|
+
gem 'mongo_mapper', '0.8.6'
|
24
|
+
gem 'mongomapper_ext', '0.5.1'
|
25
|
+
|
26
|
+
# authentication
|
27
|
+
gem 'omniauth', '0.1.4'
|
28
|
+
gem 'multiauth', '0.2.7'
|
29
|
+
|
30
|
+
group :scripts do
|
31
|
+
gem 'eventmachine', '~> 0.12.10'
|
32
|
+
gem 'em-websocket', '~> 0.1.4'
|
33
|
+
gem 'cronedit'
|
34
|
+
end
|
35
|
+
|
36
|
+
group :development do
|
37
|
+
gem 'rspec', '2.0.0'
|
38
|
+
gem 'rspec-rails', '2.0.0'
|
39
|
+
gem 'mongrel', '1.2.0.pre2'
|
40
|
+
gem 'nifty-generators', '~> 0.4.2'
|
41
|
+
gem 'capistrano'
|
42
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
config_file = Rails.root+"config/app.yml"
|
4
|
+
options = YAML.load_file(config_file)
|
5
|
+
if !options[Rails.env]
|
6
|
+
raise "'#{Rails.env}' was not found in #{config_file}"
|
7
|
+
end
|
8
|
+
AppConfig = OpenStruct.new(options[Rails.env])
|
9
|
+
|
10
|
+
|
11
|
+
SANITIZE_CONFIG = {
|
12
|
+
:protocols => {
|
13
|
+
"a"=>{"href"=>["ftp", "http", "https", "mailto", :relative]},
|
14
|
+
"img"=>{"src"=>["http", "https", :relative]},
|
15
|
+
"blockquote"=>{"cite"=>["http", "https", :relative]},
|
16
|
+
"q"=>{"cite"=>["http", "https", :relative]}
|
17
|
+
},
|
18
|
+
:elements => ["a", "b", "blockquote", "br", "caption", "cite", "code", "col",
|
19
|
+
"colgroup", "dd", "dl", "dt", "em", "h1", "h2", "h3", "h4", "h5",
|
20
|
+
"h6", "i", "img", "li", "ol", "p", "pre", "q", "small", "strike",
|
21
|
+
"strong", "sub", "sup", "table", "tbody", "td", "tfoot", "th",
|
22
|
+
"thead", "tr", "u", "ul", "font", "s", "hr", "div", "span"],
|
23
|
+
:attributes => {
|
24
|
+
"div" => ["style"],
|
25
|
+
"pre" => ["style"],
|
26
|
+
"code" => ["style"],
|
27
|
+
"colgroup"=>["span", "width"],
|
28
|
+
"col"=>["span", "width"],
|
29
|
+
"ul"=>["type"],
|
30
|
+
"a"=>["href", "title"],
|
31
|
+
"img"=>["align", "alt", "height", "src", "title", "width"],
|
32
|
+
"blockquote"=>["cite"],
|
33
|
+
"td"=>["abbr", "axis", "colspan", "rowspan", "width"],
|
34
|
+
"table"=>["summary", "width"],
|
35
|
+
"q"=>["cite"],
|
36
|
+
"ol"=>["start", "type"],
|
37
|
+
"th"=>["abbr", "axis", "colspan", "rowspan", "scope", "width"]
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
Rails.application.config.session_store :cookie_store, :key => AppConfig.session_key, :domain => :all
|
43
|
+
Rails.application.config.secret_token = AppConfig.session_secret
|
44
|
+
|
45
|
+
ActionMailer::Base.default_url_options[:host] = AppConfig.domain
|
46
|
+
|
47
|
+
if File.exist?(Rails.root + "VERSION")
|
48
|
+
AppConfig.version = File.read(Rails.root + "VERSION")
|
49
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
!!!
|
2
|
+
%html{:lang => 'en'}
|
3
|
+
%head
|
4
|
+
%title #{@title}
|
5
|
+
%meta{:charset => 'utf-8'}
|
6
|
+
%meta{'http-equiv' => 'X-UA-Compatible', :content => 'IE=edge,chrome=1'}
|
7
|
+
%meta{:name => 'viewport', :content => 'width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0'}
|
8
|
+
= csrf_meta_tag
|
9
|
+
<!--[if ! lte IE 7]><!-->
|
10
|
+
%link{:rel => 'stylesheet', :href => '/stylesheets/application.css'}
|
11
|
+
<!--<![endif]-->
|
12
|
+
/[if lte IE 7]
|
13
|
+
%link{:rel => 'stylesheet', :href => 'http://universal-ie6-css.googlecode.com/files/ie6.0.3.css'}
|
14
|
+
/[if IE]
|
15
|
+
%script{:src => 'http://html5shiv.googlecode.com/svn/trunk/html5.js'}
|
16
|
+
|
17
|
+
%body{:class => page_class}
|
18
|
+
= yield
|
19
|
+
|
20
|
+
<!--[if ! lte IE 7]><!-->
|
21
|
+
%script{:src => 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'}
|
22
|
+
%script{:src => '/javascripts/application.js'}
|
23
|
+
<!--<![endif]-->
|
24
|
+
/[if lte IE 8]
|
25
|
+
//%script{:src => 'http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js'}
|
26
|
+
|
27
|
+
/ Google Analytics | Don't forget to include your tracking number!!!!
|
28
|
+
%script var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);})();
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Require any additional compass plugins here.
|
2
|
+
|
3
|
+
project_type = :rails
|
4
|
+
project_path = RAILS_ROOT if defined?(RAILS_ROOT)
|
5
|
+
# Set this to the root of your project when deployed:
|
6
|
+
http_path = "/"
|
7
|
+
css_dir = "public/stylesheets/compiled"
|
8
|
+
sass_dir = "app/stylesheets"
|
9
|
+
images_dir = "public/images"
|
10
|
+
javascripts_dir = "public/javascripts"
|
11
|
+
# To enable relative paths to assets via compass helper functions. Uncomment:
|
12
|
+
# relative_assets = true
|
13
|
+
http_images_path = "/images"
|
14
|
+
http_stylesheets_path = "/stylesheets"
|
15
|
+
http_javascripts_path = "/javascripts"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# put rails errors inline on the tags themselves
|
2
|
+
ActionView::Base.field_error_proc = (
|
3
|
+
Proc.new do |html_tag, instance|
|
4
|
+
class_name = "error"
|
5
|
+
d = HTML::Document.new(html_tag)
|
6
|
+
tag = d.root.children.first
|
7
|
+
if tag.attributes.has_key?('class')
|
8
|
+
tag.attributes["class"] += " #{class_name}"
|
9
|
+
else
|
10
|
+
tag.attributes["class"] = class_name
|
11
|
+
end
|
12
|
+
tag.to_s.html_safe
|
13
|
+
end)
|
data/templates/gitignore
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
// jQuery Browser Plugin | Version 2.3 | http://jquery.thewikies.com/browser
|
2
|
+
(function($){$.browserTest=function(a,z){var u='unknown',x='X',m=function(r,h){for(var i=0;i<h.length;i=i+1){r=r.replace(h[i][0],h[i][1]);}return r;},c=function(i,a,b,c){var r={name:m((a.exec(i)||[u,u])[1],b)};r[r.name]=true;r.version=(c.exec(i)||[x,x,x,x])[3];if(r.name.match(/safari/)&&r.version>400){r.version='2.0';}if(r.name==='presto'){r.version=($.browser.version>9.27)?'futhark':'linear_b';}r.versionNumber=parseFloat(r.version,10)||0;r.versionX=(r.version!==x)?(r.version+'').substr(0,1):x;r.className=r.name+r.versionX;return r;};a=(a.match(/Opera|Navigator|Minefield|KHTML|Chrome/)?m(a,[[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/,''],['Chrome Safari','Chrome'],['KHTML','Konqueror'],['Minefield','Firefox'],['Navigator','Netscape']]):a).toLowerCase();$.browser=$.extend((!z)?$.browser:{},c(a,/(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/,[],/(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/));$.layout=c(a,/(gecko|konqueror|msie|opera|webkit)/,[['konqueror','khtml'],['msie','trident'],['opera','presto']],/(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/);$.os={name:(/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase())||[u])[0].replace('sunos','solaris')};if(!z){$('html').addClass([$.os.name,$.browser.name,$.browser.className,$.layout.name,$.layout.className].join(' '));}};$.browserTest(navigator.userAgent);})(jQuery);
|
3
|
+
|
4
|
+
$(document).ready(function(){
|
5
|
+
|
6
|
+
|
7
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
jQuery(function($){var csrf_token=$('meta[name=csrf-token]').attr('content'),csrf_param=$('meta[name=csrf-param]').attr('content');$.fn.extend({triggerAndReturn:function(name,data){var event=new $.Event(name);this.trigger(event,data);return event.result!==false},callRemote:function(){var el=this,data=el.is('form')?el.serializeArray():[],method=el.attr('method')||el.attr('data-method')||'GET',url=el.attr('action')||el.attr('href');if(url===undefined){throw"No URL specified for remote call (action or href must be present).";}else{if(el.triggerAndReturn('ajax:before')){$.ajax({url:url,data:data,dataType:'script',type:method.toUpperCase(),beforeSend:function(xhr){el.trigger('ajax:loading',xhr)},success:function(data,status,xhr){el.trigger('ajax:success',[data,status,xhr])},complete:function(xhr){el.trigger('ajax:complete',xhr)},error:function(xhr,status,error){el.trigger('ajax:failure',[xhr,status,error])}})}el.trigger('ajax:after')}}});$('a[data-confirm],input[data-confirm]').live('click',function(){var el=$(this);if(el.triggerAndReturn('confirm')){if(!confirm(el.attr('data-confirm'))){return false}}});$('form[data-remote]').live('submit',function(e){$(this).callRemote();e.preventDefault()});$('a[data-remote],input[data-remote]').live('click',function(e){$(this).callRemote();e.preventDefault()});$('a[data-method]:not([data-remote])').live('click',function(e){var link=$(this),href=link.attr('href'),method=link.attr('data-method'),form=$('<form method="post" action="'+href+'">'),metadata_input='<input name="_method" value="'+method+'" type="hidden" />';if(csrf_param!=null&&csrf_token!=null){metadata_input+='<input name="'+csrf_param+'" value="'+csrf_token+'" type="hidden" />'}form.hide().append(metadata_input).appendTo('body');e.preventDefault();form.submit()});var disable_with_input_selector='input[data-disable-with]';var disable_with_form_selector='form[data-remote]:has('+disable_with_input_selector+')';$(disable_with_form_selector).live('ajax:before',function(){$(this).find(disable_with_input_selector).each(function(){var input=$(this);input.data('enable-with',input.val()).attr('value',input.attr('data-disable-with')).attr('disabled','disabled')})});$(disable_with_form_selector).live('ajax:after',function(){$(this).find(disable_with_input_selector).each(function(){var input=$(this);input.removeAttr('disabled').val(input.data('enable-with'))})})});
|
data/templates/mongo.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
MongoMapper.setup(YAML.load_file(Rails.root.join('config', 'database.yml')),
|
2
|
+
Rails.env, { :logger => Rails.logger, :passenger => false })
|
3
|
+
|
4
|
+
Magent.setup(YAML.load_file(Rails.root.join('config', 'magent.yml')),
|
5
|
+
Rails.env, {})
|
6
|
+
|
7
|
+
|
8
|
+
MongoMapperExt.init
|
9
|
+
|
10
|
+
Dir.glob("#{RAILS_ROOT}/app/models/**/*.rb") do |model_path|
|
11
|
+
File.basename(model_path, ".rb").classify.constantize
|
12
|
+
end
|
13
|
+
|
14
|
+
# HACK: do not create indexes on every request
|
15
|
+
module MongoMapper::Plugins::Indexes::ClassMethods
|
16
|
+
def ensure_index(*args)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// setup.sass | BOOTSTRAP YOUR PROJECT
|
2
|
+
|
3
|
+
// Default Body Styles
|
4
|
+
$background: white
|
5
|
+
$font-family: $helvetica
|
6
|
+
$font-size: $medium
|
7
|
+
$colour: darken(white, 93%)
|
8
|
+
|
9
|
+
// Default link colours/styles
|
10
|
+
$link_colour: blue
|
11
|
+
$hover_colour: purple
|
12
|
+
$active_colour: red
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// DEFAULT LIBRARIES
|
2
|
+
@import lib/mixins
|
3
|
+
@import lib/variables
|
4
|
+
@import styles/variables
|
5
|
+
@import setup
|
6
|
+
@import lib/reset
|
7
|
+
@import lib/extend
|
8
|
+
|
9
|
+
// DEFAULT BASE STYLES
|
10
|
+
@import styles/extend
|
11
|
+
@import styles/mixins
|
12
|
+
@import styles/common
|
13
|
+
@import styles/template
|
14
|
+
|
15
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
// extend.sass | LIBRARY @EXTEND CLASSES
|
2
|
+
|
3
|
+
// Clearing Floats
|
4
|
+
----------------------------------------------
|
5
|
+
.clear => For non-floating element immediately below a floating element.
|
6
|
+
|
7
|
+
.clearfix => For floating children inside a parent.
|
8
|
+
Class goes on parent holding floating children.
|
9
|
+
|
10
|
+
// Use all of these classes with the @extend option
|
11
|
+
.zoom
|
12
|
+
:zoom 1
|
13
|
+
|
14
|
+
.left
|
15
|
+
:float left
|
16
|
+
|
17
|
+
.right
|
18
|
+
:float right
|
19
|
+
|
20
|
+
.block
|
21
|
+
:display block
|
22
|
+
|
23
|
+
.absolute
|
24
|
+
:position absolute
|
25
|
+
|
26
|
+
.relative
|
27
|
+
:position relative
|
28
|
+
|
29
|
+
.center
|
30
|
+
:text-align center
|
31
|
+
|
32
|
+
.hidden
|
33
|
+
:overflow hidden
|
34
|
+
|
35
|
+
.bold
|
36
|
+
:font-weight bold
|
37
|
+
|
38
|
+
.clear
|
39
|
+
:clear both
|
40
|
+
|
41
|
+
.clearfix:after
|
42
|
+
@extend .clear
|
43
|
+
@extend .block
|
44
|
+
:content ""
|
45
|
+
|
46
|
+
// Replacing text with a background image
|
47
|
+
.hide-text, .h
|
48
|
+
@extend .block
|
49
|
+
@extend .hidden
|
50
|
+
:font-size 0
|
51
|
+
:text-indent -9999em
|
52
|
+
:white-space nowrap
|
53
|
+
:.text-transform capitalize
|
54
|
+
|
55
|
+
// Reset some basic styling
|
56
|
+
.reset, .r
|
57
|
+
:border 0
|
58
|
+
:margin 0
|
59
|
+
:padding 0
|
60
|
+
|
61
|
+
// Consolidate fonts. Works with font $variables in lib/variables.
|
62
|
+
.font_x-small
|
63
|
+
:font-size $x-small
|
64
|
+
|
65
|
+
.font_small
|
66
|
+
:font-size $small
|
67
|
+
|
68
|
+
.font_medium
|
69
|
+
:font-size $medium
|
70
|
+
|
71
|
+
.font_x-medium
|
72
|
+
:font-size $x-medium
|
73
|
+
|
74
|
+
.font_large
|
75
|
+
:font-size $large
|
76
|
+
|
77
|
+
.font_x-large
|
78
|
+
:font-size $x-large
|
79
|
+
|
80
|
+
.font_xx-large
|
81
|
+
:font-size $xx-large
|
82
|
+
|
83
|
+
.font_huge
|
84
|
+
:font-size $huge
|
85
|
+
|
86
|
+
.font_x-huge
|
87
|
+
:font-size $x-huge
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// mixins.sass | LIBRARY MIX-INS
|
2
|
+
|
3
|
+
// Quickly outline any tag for debug purposes
|
4
|
+
=o
|
5
|
+
:background rgba(255, 0, 0, 0.15) !important
|
6
|
+
:outline 1px solid red !important
|
7
|
+
|
8
|
+
// Cross browser box model resizing
|
9
|
+
=box-sizing( $box-sizing)
|
10
|
+
:-moz-box-sizing $box-sizing
|
11
|
+
:-webkit-box-sizing $box-sizing
|
12
|
+
:box-sizing $box-sizing
|
13
|
+
|
14
|
+
// Cross browser opacity
|
15
|
+
=opacity( $opacity)
|
16
|
+
:-ms-filter unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=") + $opacity + unquote(")")
|
17
|
+
:filter unquote("alpha(opacity=") + $opacity + unquote(")")
|
18
|
+
:opacity $opacity * 0.01
|
19
|
+
|
20
|
+
// Cross browser transition effect
|
21
|
+
=transition( $transition)
|
22
|
+
:-moz-transition $transition
|
23
|
+
:-o-transition $transition
|
24
|
+
:-webkit-transition $transition
|
25
|
+
:transition $transition
|
26
|
+
|
27
|
+
// Cross browser transform effect
|
28
|
+
=transform( $transform)
|
29
|
+
:-moz-transform $transform
|
30
|
+
:-o-transform $transform
|
31
|
+
:-webkit-transform $transform
|
32
|
+
:transform $transform
|
33
|
+
|
34
|
+
// Cross browser multi-column layout
|
35
|
+
// # of columns
|
36
|
+
=column-count( $count)
|
37
|
+
:-moz-column-count $count
|
38
|
+
:-webkit-column-count $count
|
39
|
+
:column-count $count
|
40
|
+
// Space between columns
|
41
|
+
=column-gap( $gap)
|
42
|
+
:-moz-column-gap $gap
|
43
|
+
:-webkit-column-gap $gap
|
44
|
+
:column-gap $gap
|
45
|
+
// Combine -count and -gap into one easy mixin
|
46
|
+
=columns( $count, $gap)
|
47
|
+
+column-count( $count)
|
48
|
+
+column-gap( $gap)
|
49
|
+
|
50
|
+
// Cross browser box shadow
|
51
|
+
// If you want to have multiple box shadows, you must enclose the values in quotes (" ").
|
52
|
+
=box-shadow( $shadow)
|
53
|
+
$shadow: unquote($shadow)
|
54
|
+
:-moz-box-shadow $shadow
|
55
|
+
:-webkit-box-shadow $shadow
|
56
|
+
:box-shadow $shadow
|
57
|
+
|
58
|
+
// Cross browser rounded corners
|
59
|
+
=border-radius( $radius)
|
60
|
+
:-moz-border-radius $radius
|
61
|
+
:-webkit-border-radius $radius
|
62
|
+
:border-radius $radius
|
63
|
+
=border-radius-top-left( $radius)
|
64
|
+
:-moz-border-radius-topleft $radius
|
65
|
+
:-webkit-border-top-left-radius $radius
|
66
|
+
:border-top-left-radius $radius
|
67
|
+
=border-radius-top-right( $radius)
|
68
|
+
:-moz-border-radius-topright $radius
|
69
|
+
:-webkit-border-top-right-radius $radius
|
70
|
+
:border-top-right-radius $radius
|
71
|
+
=border-radius-bottom-right( $radius)
|
72
|
+
:-moz-border-radius-bottomright $radius
|
73
|
+
:-webkit-border-bottom-right-radius $radius
|
74
|
+
:border-bottom-right-radius $radius
|
75
|
+
=border-radius-bottom-left( $radius)
|
76
|
+
:-moz-border-radius-bottomleft $radius
|
77
|
+
:-webkit-border-bottom-left-radius $radius
|
78
|
+
:border-bottom-left-radius $radius
|