playmo 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.md +55 -0
- data/Rakefile +2 -0
- data/TODO.md +16 -0
- data/lib/app/helpers/playmo_helper.rb +54 -0
- data/lib/generators/playmo/USAGE +8 -0
- data/lib/generators/playmo/install_generator.rb +166 -0
- data/lib/generators/playmo/templates/application.html.erb +56 -0
- data/lib/generators/playmo/templates/application_controller.rb +9 -0
- data/lib/generators/playmo/templates/application_helper.rb +21 -0
- data/lib/generators/playmo/templates/assets.yml +32 -0
- data/lib/generators/playmo/templates/deploy.rb +50 -0
- data/lib/generators/playmo/templates/jquery/jquery-1.5.2.min.js +16 -0
- data/lib/generators/playmo/templates/jquery/rails.js +157 -0
- data/lib/generators/playmo/templates/mootools/mootools-core-1.3.1.js +485 -0
- data/lib/generators/playmo/templates/mootools/mootools-more-1.3.1.1.js +741 -0
- data/lib/generators/playmo/templates/mootools/rails.js +161 -0
- data/lib/generators/playmo/templates/tasks/assets.rake +10 -0
- data/lib/generators/playmo/templates/tasks/sass.rake +8 -0
- data/lib/playmo.rb +12 -0
- data/playmo.gemspec +22 -0
- data/stylesheets/_playmo_rails.sass +13 -0
- data/stylesheets/playmo-rails/_fonts.scss +46 -0
- data/stylesheets/playmo-rails/_handheld.scss +8 -0
- data/stylesheets/playmo-rails/_helpers.scss +57 -0
- data/stylesheets/playmo-rails/_media.scss +60 -0
- data/stylesheets/playmo-rails/_reset.scss +56 -0
- data/stylesheets/playmo-rails/_styles.scss +125 -0
- data/templates/project/boilerplate/css/handheld.scss +7 -0
- data/templates/project/boilerplate/css/style.scss +141 -0
- data/templates/project/boilerplate/files/apple-touch-icon.png +0 -0
- data/templates/project/boilerplate/files/crossdomain.xml +25 -0
- data/templates/project/boilerplate/files/favicon.ico +0 -0
- data/templates/project/boilerplate/files/robots.txt +5 -0
- data/templates/project/boilerplate/js/libs/dd_belatedpng.js +13 -0
- data/templates/project/boilerplate/js/libs/modernizr-1.7.min.js +2 -0
- data/templates/project/google/google.yml +22 -0
- data/templates/project/manifest.rb +34 -0
- data/templates/project/playmo/article.scss +69 -0
- data/templates/project/playmo/icons/outgoing.png +0 -0
- data/templates/project/playmo/playmo.scss +90 -0
- data/templates/project/rails/public/stylesheets/layout.scss +20 -0
- data/templates/project/rails/public/stylesheets/print.scss +11 -0
- data/templates/project/rails/public/stylesheets/screen.scss +14 -0
- data/templates/project/rails/public/stylesheets/wysiwyg.scss +19 -0
- metadata +112 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
$font-color: #444 !default; //looks better than black: twitter.com/H_FJ/statuses/11800719859
|
2
|
+
$link-color: #607890 !default;
|
3
|
+
$link-hover-color: #036 !default;
|
4
|
+
$link-active-color: #607890 !default;
|
5
|
+
$link-visited-color: #607890 !default;
|
6
|
+
$selected-font-color: #fff !default;
|
7
|
+
$selected-background-color: #ff5e99 !default;
|
8
|
+
$list-left-margin: 1.8em !default;
|
9
|
+
|
10
|
+
//
|
11
|
+
// Minimal base styles
|
12
|
+
//
|
13
|
+
|
14
|
+
@mixin html5-boilerplate-styles {
|
15
|
+
body, select, input, textarea { color: $font-color; }
|
16
|
+
|
17
|
+
html { @include force-scrollbar; }
|
18
|
+
|
19
|
+
a, a:active, a:visited { color: $link-color; }
|
20
|
+
a:hover { color: $link-hover-color; }
|
21
|
+
|
22
|
+
ul, ol { margin-left: $list-left-margin; }
|
23
|
+
ol { list-style-type: decimal; }
|
24
|
+
|
25
|
+
td, td img { vertical-align: top; }
|
26
|
+
|
27
|
+
sub { @include sub; }
|
28
|
+
|
29
|
+
sup { @include sup; }
|
30
|
+
|
31
|
+
textarea { overflow: auto; } // www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars
|
32
|
+
|
33
|
+
@include accessible-focus;
|
34
|
+
|
35
|
+
@include quoted-pre;
|
36
|
+
|
37
|
+
@include align-input-labels;
|
38
|
+
|
39
|
+
@include hand-cursor-inputs;
|
40
|
+
|
41
|
+
@include webkit-reset-form-elements;
|
42
|
+
|
43
|
+
@include selected-text;
|
44
|
+
|
45
|
+
@include webkit-tap-highlight;
|
46
|
+
|
47
|
+
@include ie-hacks;
|
48
|
+
|
49
|
+
@include no-nav-margins;
|
50
|
+
}
|
51
|
+
|
52
|
+
// set sub, sup without affecting line-height: gist.github.com/413930
|
53
|
+
@mixin sub{
|
54
|
+
font-size: 75%; line-height: 0; position: relative; bottom: -0.25em;
|
55
|
+
}
|
56
|
+
@mixin sup{
|
57
|
+
font-size: 75%; line-height: 0; position: relative; top: -0.5em;
|
58
|
+
}
|
59
|
+
|
60
|
+
// accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test
|
61
|
+
@mixin accessible-focus {
|
62
|
+
a:hover, a:active { outline: none; }
|
63
|
+
}
|
64
|
+
|
65
|
+
// www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap
|
66
|
+
@mixin quoted-pre {
|
67
|
+
pre {
|
68
|
+
white-space: pre; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word;
|
69
|
+
padding: 15px;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
// align checkboxes, radios, text inputs with their label
|
74
|
+
// by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css
|
75
|
+
@mixin align-input-labels {
|
76
|
+
input[type="radio"] { vertical-align: text-bottom; }
|
77
|
+
input[type="checkbox"] { vertical-align: bottom; }
|
78
|
+
.ie7 input[type="checkbox"] { vertical-align: baseline; }
|
79
|
+
.ie6 input { vertical-align: text-bottom; }
|
80
|
+
}
|
81
|
+
|
82
|
+
// hand cursor on clickable input elements
|
83
|
+
@mixin hand-cursor-inputs {
|
84
|
+
label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
|
85
|
+
}
|
86
|
+
|
87
|
+
// webkit browsers add a 2px margin outside the chrome of form elements
|
88
|
+
@mixin webkit-reset-form-elements {
|
89
|
+
button, input, select, textarea { margin: 0; }
|
90
|
+
}
|
91
|
+
|
92
|
+
// These selection declarations have to be separate.
|
93
|
+
// No text-shadow: twitter.com/miketaylr/status/12228805301
|
94
|
+
// Also: hot pink.
|
95
|
+
@mixin selected-text {
|
96
|
+
::-moz-selection{ background:$selected-background-color; color: $selected-font-color; text-shadow: none; }
|
97
|
+
::selection { background: $selected-background-color; color: $selected-font-color; text-shadow: none; }
|
98
|
+
}
|
99
|
+
|
100
|
+
// j.mp/webkit-tap-highlight-color
|
101
|
+
@mixin webkit-tap-highlight {
|
102
|
+
a:link { -webkit-tap-highlight-color: $selected-background-color; }
|
103
|
+
}
|
104
|
+
|
105
|
+
// always force a scrollbar in non-IE
|
106
|
+
@mixin force-scrollbar {
|
107
|
+
overflow-y: scroll;
|
108
|
+
}
|
109
|
+
|
110
|
+
@mixin ie-hacks {
|
111
|
+
// make buttons play nice in IE:
|
112
|
+
// www.viget.com/inspire/styling-the-button-element-in-internet-explorer/
|
113
|
+
button { width: auto; overflow: visible; }
|
114
|
+
|
115
|
+
// bicubic resizing for non-native sized IMG:
|
116
|
+
// code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
|
117
|
+
.ie7 img { -ms-interpolation-mode: bicubic; }
|
118
|
+
|
119
|
+
.ie6 legend, .ie7 legend { margin-left: -7px; } // thnx ivannikolic!
|
120
|
+
}
|
121
|
+
|
122
|
+
@mixin no-nav-margins {
|
123
|
+
// remove margins for navigation lists
|
124
|
+
nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
|
125
|
+
}
|
@@ -0,0 +1,141 @@
|
|
1
|
+
|
2
|
+
/* ==== Scroll down to find where to put your styles :) ==== */
|
3
|
+
|
4
|
+
/* HTML5 ✰ Boilerplate */
|
5
|
+
|
6
|
+
html, body, div, span, object, iframe,
|
7
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
8
|
+
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
|
9
|
+
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
|
10
|
+
fieldset, form, label, legend,
|
11
|
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
12
|
+
article, aside, canvas, details, figcaption, figure,
|
13
|
+
footer, header, hgroup, menu, nav, section, summary,
|
14
|
+
time, mark, audio, video {
|
15
|
+
margin: 0;
|
16
|
+
padding: 0;
|
17
|
+
border: 0;
|
18
|
+
font-size: 100%;
|
19
|
+
font: inherit;
|
20
|
+
vertical-align: baseline;
|
21
|
+
}
|
22
|
+
|
23
|
+
article, aside, details, figcaption, figure,
|
24
|
+
footer, header, hgroup, menu, nav, section {
|
25
|
+
display: block;
|
26
|
+
}
|
27
|
+
|
28
|
+
blockquote, q { quotes: none; }
|
29
|
+
blockquote:before, blockquote:after,
|
30
|
+
q:before, q:after { content: ''; content: none; }
|
31
|
+
ins { background-color: #ff9; color: #000; text-decoration: none; }
|
32
|
+
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
|
33
|
+
del { text-decoration: line-through; }
|
34
|
+
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
|
35
|
+
table { border-collapse: collapse; border-spacing: 0; }
|
36
|
+
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
|
37
|
+
input, select { vertical-align: middle; }
|
38
|
+
|
39
|
+
body { font:13px/1.231 sans-serif; *font-size:small; }
|
40
|
+
select, input, textarea, button { font:99% sans-serif; }
|
41
|
+
pre, code, kbd, samp { font-family: monospace, sans-serif; }
|
42
|
+
|
43
|
+
html { overflow-y: scroll; }
|
44
|
+
a:hover, a:active { outline: none; }
|
45
|
+
ul, ol { margin-left: 2em; }
|
46
|
+
ol { list-style-type: decimal; }
|
47
|
+
nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
|
48
|
+
small { font-size: 85%; }
|
49
|
+
strong, th { font-weight: bold; }
|
50
|
+
td { vertical-align: top; }
|
51
|
+
|
52
|
+
sub, sup { font-size: 75%; line-height: 0; position: relative; }
|
53
|
+
sup { top: -0.5em; }
|
54
|
+
sub { bottom: -0.25em; }
|
55
|
+
|
56
|
+
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
|
57
|
+
textarea { overflow: auto; }
|
58
|
+
.ie6 legend, .ie7 legend { margin-left: -7px; }
|
59
|
+
input[type="radio"] { vertical-align: text-bottom; }
|
60
|
+
input[type="checkbox"] { vertical-align: bottom; }
|
61
|
+
.ie7 input[type="checkbox"] { vertical-align: baseline; }
|
62
|
+
.ie6 input { vertical-align: text-bottom; }
|
63
|
+
label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
|
64
|
+
button, input, select, textarea { margin: 0; }
|
65
|
+
input:valid, textarea:valid { }
|
66
|
+
input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; }
|
67
|
+
.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
|
68
|
+
|
69
|
+
::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; }
|
70
|
+
::selection { background:#FF5E99; color:#fff; text-shadow: none; }
|
71
|
+
a:link { -webkit-tap-highlight-color: #FF5E99; }
|
72
|
+
|
73
|
+
button { width: auto; overflow: visible; }
|
74
|
+
.ie7 img { -ms-interpolation-mode: bicubic; }
|
75
|
+
|
76
|
+
body, select, input, textarea { color: #444; }
|
77
|
+
h1, h2, h3, h4, h5, h6 { font-weight: bold; }
|
78
|
+
a, a:active, a:visited { color: #607890; }
|
79
|
+
a:hover { color: #036; }
|
80
|
+
|
81
|
+
/*
|
82
|
+
// ========================================== \\
|
83
|
+
|| ||
|
84
|
+
|| Your styles ! ||
|
85
|
+
|| ||
|
86
|
+
\\ ========================================== //
|
87
|
+
*/
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
|
104
|
+
.hidden { display: none; visibility: hidden; }
|
105
|
+
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
106
|
+
.visuallyhidden.focusable:active,
|
107
|
+
.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
|
108
|
+
.invisible { visibility: hidden; }
|
109
|
+
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
|
110
|
+
.clearfix:after { clear: both; }
|
111
|
+
.clearfix { zoom: 1; }
|
112
|
+
|
113
|
+
|
114
|
+
@media all and (orientation:portrait) {
|
115
|
+
|
116
|
+
}
|
117
|
+
|
118
|
+
@media all and (orientation:landscape) {
|
119
|
+
|
120
|
+
}
|
121
|
+
|
122
|
+
@media screen and (max-device-width: 480px) {
|
123
|
+
|
124
|
+
/* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
|
125
|
+
}
|
126
|
+
|
127
|
+
|
128
|
+
@media print {
|
129
|
+
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
|
130
|
+
-ms-filter: none !important; }
|
131
|
+
a, a:visited { color: #444 !important; text-decoration: underline; }
|
132
|
+
a[href]:after { content: " (" attr(href) ")"; }
|
133
|
+
abbr[title]:after { content: " (" attr(title) ")"; }
|
134
|
+
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
|
135
|
+
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
|
136
|
+
thead { display: table-header-group; }
|
137
|
+
tr, img { page-break-inside: avoid; }
|
138
|
+
@page { margin: 0.5cm; }
|
139
|
+
p, h2, h3 { orphans: 3; widows: 3; }
|
140
|
+
h2, h3{ page-break-after: avoid; }
|
141
|
+
}
|
Binary file
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
3
|
+
<cross-domain-policy>
|
4
|
+
|
5
|
+
|
6
|
+
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
7
|
+
|
8
|
+
<!-- Most restrictive policy: -->
|
9
|
+
<site-control permitted-cross-domain-policies="none"/>
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<!-- Least restrictive policy: -->
|
14
|
+
<!--
|
15
|
+
<site-control permitted-cross-domain-policies="all"/>
|
16
|
+
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
17
|
+
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
18
|
+
-->
|
19
|
+
<!--
|
20
|
+
If you host a crossdomain.xml file with allow-access-from domain=“*”
|
21
|
+
and don’t understand all of the points described here, you probably
|
22
|
+
have a nasty security vulnerability. ~ simon willison
|
23
|
+
-->
|
24
|
+
|
25
|
+
</cross-domain-policy>
|
Binary file
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
|
3
|
+
* Author: Drew Diller
|
4
|
+
* Email: drew.diller@gmail.com
|
5
|
+
* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
|
6
|
+
* Version: 0.0.8a
|
7
|
+
* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
|
8
|
+
*
|
9
|
+
* Example usage:
|
10
|
+
* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
|
11
|
+
* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
|
12
|
+
**/
|
13
|
+
var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
|
@@ -0,0 +1,2 @@
|
|
1
|
+
// Modernizr v1.7 www.modernizr.com
|
2
|
+
window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b){return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|\\s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^\\n]*?\\s)("+c+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),i=b.createDocumentFragment(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o[4]);m.styleSheet.cssText=k.join("\n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function(){l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/\bno-js\b/,"")+" js "+u.join(" ");return e}(this,this.document)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Html5BoilerplateHelper will first check your ENV and
|
2
|
+
# then this yml file for these values. If they are both
|
3
|
+
# empty, the google code block will not be used.
|
4
|
+
#
|
5
|
+
# e.g. ENV['GOOGLE_ACCOUNT_ID'] || yml[:google_account_id]
|
6
|
+
# e.g. ENV['GOOGLE_API_KEY'] || yml[:google_api_key]
|
7
|
+
#
|
8
|
+
defaults: &defaults
|
9
|
+
:google_account_id: ''
|
10
|
+
:google_api_key: ''
|
11
|
+
|
12
|
+
:development:
|
13
|
+
<<: *defaults
|
14
|
+
|
15
|
+
:test:
|
16
|
+
<<: *defaults
|
17
|
+
|
18
|
+
:staging:
|
19
|
+
<<: *defaults
|
20
|
+
|
21
|
+
:production:
|
22
|
+
<<: *defaults
|
@@ -0,0 +1,34 @@
|
|
1
|
+
description "Special kit that allows you create Rails 3 apps quick"
|
2
|
+
|
3
|
+
# rails stylesheets
|
4
|
+
stylesheet 'rails/public/stylesheets/layout.scss', :to => 'rails/layout.scss'
|
5
|
+
stylesheet 'rails/public/stylesheets/screen.scss', :to => 'rails/screen.scss', :media => 'screen, projection'
|
6
|
+
stylesheet 'rails/public/stylesheets/print.scss', :to => 'rails/print.scss', :media => 'print'
|
7
|
+
stylesheet 'rails/public/stylesheets/wysiwyg.scss', :to => 'rails/wysiwyg.scss'
|
8
|
+
|
9
|
+
# playmo additional styles and files
|
10
|
+
stylesheet 'playmo/playmo.scss'
|
11
|
+
stylesheet 'playmo/article.scss'
|
12
|
+
image 'playmo/icons/outgoing.png'
|
13
|
+
|
14
|
+
# boilerplate stuff
|
15
|
+
html 'boilerplate/files/crossdomain.xml', :to => 'crossdomain.xml'
|
16
|
+
html 'boilerplate/files/robots.txt', :to => 'robots.txt'
|
17
|
+
html 'boilerplate/files/apple-touch-icon.png', :to => 'apple-touch-icon.png'
|
18
|
+
html 'boilerplate/files/favicon.ico', :to => 'favicon.ico'
|
19
|
+
|
20
|
+
stylesheet 'boilerplate/css/style.scss', :media => 'all'
|
21
|
+
|
22
|
+
javascript 'boilerplate/js/libs/dd_belatedpng.js', :to => 'lib/dd_belatedpng.js'
|
23
|
+
javascript 'boilerplate/js/libs/modernizr-1.7.min.js', :to => 'lib/modernizr-1.7.min.js'
|
24
|
+
|
25
|
+
# google analytics config
|
26
|
+
file 'google/google.yml', :to => 'config/google.yml'
|
27
|
+
|
28
|
+
help %Q{
|
29
|
+
|
30
|
+
}
|
31
|
+
|
32
|
+
welcome_message %Q{
|
33
|
+
|
34
|
+
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
@charset "utf-8";
|
2
|
+
/*===============================================================================================
|
3
|
+
|
4
|
+
Title : Playmo CSS Framework (https://github.com/tanraya/playmo)
|
5
|
+
Name : content.css
|
6
|
+
|
7
|
+
Default styles for content zone.
|
8
|
+
Content zone is a container with the assigned class ".article"
|
9
|
+
|
10
|
+
Do not define styles for site content zone here! If you want to define some styles
|
11
|
+
for site content zone, add it in screen.css stylesheet.
|
12
|
+
|
13
|
+
ATTENTION! DO NOT ADD YOUR CUSTOM STYLES INTO THIS FILE!
|
14
|
+
|
15
|
+
===============================================================================================*/
|
16
|
+
|
17
|
+
/* Hyperlinks */
|
18
|
+
|
19
|
+
/* Outgoing links */
|
20
|
+
.article a[href^=http] {
|
21
|
+
background: url(./icons/outgoing.png) no-repeat right center;
|
22
|
+
padding-right: 13px;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* Email links */
|
26
|
+
.article a[href^=mailto] {
|
27
|
+
|
28
|
+
}
|
29
|
+
|
30
|
+
/* Direct links to files */
|
31
|
+
.article a[href$=pdf], content a.pdf { }
|
32
|
+
.article a[href$=zip], content a.zip { }
|
33
|
+
.article a[href$=rar], content a.rar { }
|
34
|
+
.article a[href$=tar], content a.tar { }
|
35
|
+
.article a[href$=mp3], content a.mp3 { }
|
36
|
+
|
37
|
+
/* Protocols */
|
38
|
+
.article a[href^=skype], content a.skype { }
|
39
|
+
.article a[href^=aim], content a.aim { }
|
40
|
+
|
41
|
+
/* Lists */
|
42
|
+
.article ol,
|
43
|
+
.article ul,
|
44
|
+
.article dl {
|
45
|
+
padding: 0;
|
46
|
+
margin: 0 0 18px 30px;
|
47
|
+
}
|
48
|
+
|
49
|
+
.article ul { list-style: square; }
|
50
|
+
.article ol { list-style: decimal; }
|
51
|
+
|
52
|
+
.article dl {}
|
53
|
+
.article dt {}
|
54
|
+
.article dd { margin: 0 0 0 30px; }
|
55
|
+
|
56
|
+
/* Tables */
|
57
|
+
.article table {
|
58
|
+
border-top: 1px solid #ddd;
|
59
|
+
border-left: 1px solid #ddd;
|
60
|
+
border-right: 1px solid #ddd;
|
61
|
+
width: 100%;
|
62
|
+
margin: 0 0 18px 0;
|
63
|
+
}
|
64
|
+
|
65
|
+
.article caption { font-style: italic; padding: 3px; }
|
66
|
+
.article th, .article td { padding: 3px; }
|
67
|
+
.article th { background: #eee; }
|
68
|
+
.article td { border-bottom: 1px solid #ddd; }
|
69
|
+
|