playmo 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/README.md +55 -0
  4. data/Rakefile +2 -0
  5. data/TODO.md +16 -0
  6. data/lib/app/helpers/playmo_helper.rb +54 -0
  7. data/lib/generators/playmo/USAGE +8 -0
  8. data/lib/generators/playmo/install_generator.rb +166 -0
  9. data/lib/generators/playmo/templates/application.html.erb +56 -0
  10. data/lib/generators/playmo/templates/application_controller.rb +9 -0
  11. data/lib/generators/playmo/templates/application_helper.rb +21 -0
  12. data/lib/generators/playmo/templates/assets.yml +32 -0
  13. data/lib/generators/playmo/templates/deploy.rb +50 -0
  14. data/lib/generators/playmo/templates/jquery/jquery-1.5.2.min.js +16 -0
  15. data/lib/generators/playmo/templates/jquery/rails.js +157 -0
  16. data/lib/generators/playmo/templates/mootools/mootools-core-1.3.1.js +485 -0
  17. data/lib/generators/playmo/templates/mootools/mootools-more-1.3.1.1.js +741 -0
  18. data/lib/generators/playmo/templates/mootools/rails.js +161 -0
  19. data/lib/generators/playmo/templates/tasks/assets.rake +10 -0
  20. data/lib/generators/playmo/templates/tasks/sass.rake +8 -0
  21. data/lib/playmo.rb +12 -0
  22. data/playmo.gemspec +22 -0
  23. data/stylesheets/_playmo_rails.sass +13 -0
  24. data/stylesheets/playmo-rails/_fonts.scss +46 -0
  25. data/stylesheets/playmo-rails/_handheld.scss +8 -0
  26. data/stylesheets/playmo-rails/_helpers.scss +57 -0
  27. data/stylesheets/playmo-rails/_media.scss +60 -0
  28. data/stylesheets/playmo-rails/_reset.scss +56 -0
  29. data/stylesheets/playmo-rails/_styles.scss +125 -0
  30. data/templates/project/boilerplate/css/handheld.scss +7 -0
  31. data/templates/project/boilerplate/css/style.scss +141 -0
  32. data/templates/project/boilerplate/files/apple-touch-icon.png +0 -0
  33. data/templates/project/boilerplate/files/crossdomain.xml +25 -0
  34. data/templates/project/boilerplate/files/favicon.ico +0 -0
  35. data/templates/project/boilerplate/files/robots.txt +5 -0
  36. data/templates/project/boilerplate/js/libs/dd_belatedpng.js +13 -0
  37. data/templates/project/boilerplate/js/libs/modernizr-1.7.min.js +2 -0
  38. data/templates/project/google/google.yml +22 -0
  39. data/templates/project/manifest.rb +34 -0
  40. data/templates/project/playmo/article.scss +69 -0
  41. data/templates/project/playmo/icons/outgoing.png +0 -0
  42. data/templates/project/playmo/playmo.scss +90 -0
  43. data/templates/project/rails/public/stylesheets/layout.scss +20 -0
  44. data/templates/project/rails/public/stylesheets/print.scss +11 -0
  45. data/templates/project/rails/public/stylesheets/screen.scss +14 -0
  46. data/templates/project/rails/public/stylesheets/wysiwyg.scss +19 -0
  47. 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,7 @@
1
+ * {
2
+ float: none;
3
+ background: #fff;
4
+ color: #000;
5
+ }
6
+
7
+ body { font-size: 80%; }
@@ -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
+ }
@@ -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>
@@ -0,0 +1,5 @@
1
+ # www.robotstxt.org/
2
+ # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
3
+
4
+ User-agent: *
5
+
@@ -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
+