spuit 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +11 -0
- data/.gitignore +70 -0
- data/.npmignore +9 -0
- data/Gemfile +4 -0
- data/README.md +16 -0
- data/Rakefile +1 -0
- data/assets/javascripts/index.js +2 -0
- data/assets/javascripts/spuit/Common.js +316 -0
- data/assets/javascripts/spuit/extend.js +46 -0
- data/assets/stylesheets/spuit/components/_body.sass +175 -0
- data/assets/stylesheets/spuit/components/_button.sass +116 -0
- data/assets/stylesheets/spuit/components/_form.sass +44 -0
- data/assets/stylesheets/spuit/components/_gist.sass +57 -0
- data/assets/stylesheets/spuit/components/_grids.sass +44 -0
- data/assets/stylesheets/spuit/components/_icon.scss +68 -0
- data/assets/stylesheets/spuit/components/_markdown.sass +182 -0
- data/assets/stylesheets/spuit/components/_messages.sass +18 -0
- data/assets/stylesheets/spuit/components/_shoulder.sass +13 -0
- data/assets/stylesheets/spuit/components/_split.sass +32 -0
- data/assets/stylesheets/spuit/components/_triangle.sass +40 -0
- data/assets/stylesheets/spuit/components/_wordwrap-fadeout.sass +19 -0
- data/assets/stylesheets/spuit/components/_wrap.sass +22 -0
- data/assets/stylesheets/spuit/elements/_checkbox.sass +46 -0
- data/assets/stylesheets/spuit/elements/_dl.sass +30 -0
- data/assets/stylesheets/spuit/elements/_fieldset.sass +46 -0
- data/assets/stylesheets/spuit/elements/_hr.sass +36 -0
- data/assets/stylesheets/spuit/elements/_input.sass +27 -0
- data/assets/stylesheets/spuit/elements/_radio.sass +47 -0
- data/assets/stylesheets/spuit/elements/_select.sass +54 -0
- data/assets/stylesheets/spuit/elements/_table.sass +58 -0
- data/assets/stylesheets/spuit/includes/_animations.scss +55 -0
- data/assets/stylesheets/spuit/includes/_grid.scss +345 -0
- data/assets/stylesheets/spuit/includes/_hiddens.scss +17 -0
- data/assets/stylesheets/spuit/includes/_normalize.scss +467 -0
- data/assets/stylesheets/spuit/includes/_spacers.scss +79 -0
- data/assets/stylesheets/spuit/includes/_spuit-utils.scss +11 -0
- data/assets/stylesheets/spuit/includes/_stickey-footer.scss +18 -0
- data/assets/stylesheets/spuit/includes/_webfonts.scss +30 -0
- data/assets/stylesheets/spuit/modules/_background-image.scss +63 -0
- data/assets/stylesheets/spuit/modules/_breakpoints.scss +19 -0
- data/assets/stylesheets/spuit/modules/_clearfix.scss +7 -0
- data/assets/stylesheets/spuit/modules/_fa.scss +28 -0
- data/assets/stylesheets/spuit/modules/_font-face.scss +31 -0
- data/assets/stylesheets/spuit/modules/_hide-text.scss +9 -0
- data/assets/stylesheets/spuit/modules/_inherit.scss +6 -0
- data/assets/stylesheets/spuit/modules/_reset.scss +55 -0
- data/assets/stylesheets/spuit/modules/_text-overflow.scss +15 -0
- data/assets/stylesheets/spuit/modules/_word-break.scss +11 -0
- data/assets/stylesheets/spuit/shortcuts/_absolute.scss +17 -0
- data/assets/stylesheets/spuit/shortcuts/_centering.scss +6 -0
- data/assets/stylesheets/spuit/shortcuts/_disc.scss +6 -0
- data/assets/stylesheets/spuit/variables/_colors.scss +3 -0
- data/assets/stylesheets/spuit/variables/_defaults.scss +3 -0
- data/assets/stylesheets/spuit/variables/_fonts.scss +6 -0
- data/assets/stylesheets/spuit/variables/_media-queries.scss +31 -0
- data/assets/stylesheets/spuit/variables/_svgs.scss +7 -0
- data/assets/stylesheets/spuit/variables/_timing-functions.sass +37 -0
- data/assets/stylesheets/styles.scss +164 -0
- data/assets/stylesheets/styles/config/_mixins.scss +23 -0
- data/assets/stylesheets/styles/config/_variables.scss +4 -0
- data/dist/favicon.png +0 -0
- data/dist/index.html +307 -0
- data/dist/javascripts/scripts.min.js +2 -0
- data/dist/javascripts/scripts.min.js.map +1 -0
- data/dist/stylesheets/styles.css +1 -0
- data/gulp/README.md +7 -0
- data/gulp/tasks/watch.js +79 -0
- data/gulpfile.js +2 -0
- data/lib/spuit.rb +41 -0
- data/lib/spuit/engine.rb +5 -0
- data/lib/spuit/generator.rb +80 -0
- data/lib/spuit/version.rb +3 -0
- data/package.json +38 -0
- data/spuit.gemspec +23 -0
- data/spuit.scss +47 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f7eff9858625c2593126c4dd38ef5d57c908865b
|
4
|
+
data.tar.gz: 96bcf66d52d5585dae5a3d62a501f7e37ffbf3ac
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3961d45431291d4be07e96e71c05777a6c0fa96e423dcadac4404fc20fe555dd356728c0adf80a1f83adb5ab0e6453cafc7fa9817f0962cd0ffeb42875321f88
|
7
|
+
data.tar.gz: '020308e8bb1855543faa2da9ca6a26861288a36dc857deeaf790860e839b223f6c06cda0bf3c18810eaf47399f8a107f9423732e0cbf53a63b28c17a39b5060d'
|
data/.editorconfig
ADDED
data/.gitignore
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
|
2
|
+
# Created by https://www.gitignore.io/api/node
|
3
|
+
|
4
|
+
### Node ###
|
5
|
+
# Logs
|
6
|
+
logs
|
7
|
+
*.log
|
8
|
+
npm-debug.log*
|
9
|
+
yarn-debug.log*
|
10
|
+
yarn-error.log*
|
11
|
+
|
12
|
+
# Runtime data
|
13
|
+
pids
|
14
|
+
*.pid
|
15
|
+
*.seed
|
16
|
+
*.pid.lock
|
17
|
+
|
18
|
+
# Directory for instrumented libs generated by jscoverage/JSCover
|
19
|
+
lib-cov
|
20
|
+
|
21
|
+
# Coverage directory used by tools like istanbul
|
22
|
+
coverage
|
23
|
+
|
24
|
+
# nyc test coverage
|
25
|
+
.nyc_output
|
26
|
+
|
27
|
+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
28
|
+
.grunt
|
29
|
+
|
30
|
+
# Bower dependency directory (https://bower.io/)
|
31
|
+
bower_components
|
32
|
+
|
33
|
+
# node-waf configuration
|
34
|
+
.lock-wscript
|
35
|
+
|
36
|
+
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
37
|
+
build/Release
|
38
|
+
|
39
|
+
# Dependency directories
|
40
|
+
node_modules/
|
41
|
+
jspm_packages/
|
42
|
+
|
43
|
+
# Typescript v1 declaration files
|
44
|
+
typings/
|
45
|
+
|
46
|
+
# Optional npm cache directory
|
47
|
+
.npm
|
48
|
+
|
49
|
+
# Optional eslint cache
|
50
|
+
.eslintcache
|
51
|
+
|
52
|
+
# Optional REPL history
|
53
|
+
.node_repl_history
|
54
|
+
|
55
|
+
# Output of 'npm pack'
|
56
|
+
*.tgz
|
57
|
+
|
58
|
+
# Yarn Integrity file
|
59
|
+
.yarn-integrity
|
60
|
+
|
61
|
+
# dotenv environment variables file
|
62
|
+
.env
|
63
|
+
|
64
|
+
|
65
|
+
# End of https://www.gitignore.io/api/node
|
66
|
+
|
67
|
+
.DS_Store
|
68
|
+
node_modules
|
69
|
+
|
70
|
+
pkg/
|
data/.npmignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,316 @@
|
|
1
|
+
var Common = {
|
2
|
+
|
3
|
+
//----------------------------------------------------------------------
|
4
|
+
// Params
|
5
|
+
|
6
|
+
// URLパラメータを受け取り
|
7
|
+
// var xml = Common.getUrlVars();
|
8
|
+
getUrlVars : function(){
|
9
|
+
var vars = [], hash;
|
10
|
+
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
11
|
+
for(var i = 0; i < hashes.length; i++) {
|
12
|
+
hash = hashes[i].split('=');
|
13
|
+
vars.push(hash[0]);
|
14
|
+
vars[hash[0]] = hash[1];
|
15
|
+
}
|
16
|
+
return vars;
|
17
|
+
},
|
18
|
+
|
19
|
+
// StringやjsonpデータをXMLに変換
|
20
|
+
// var xmlObject = Common.string2xml(xml);
|
21
|
+
string2xml : function(xmlData){
|
22
|
+
if (window.ActiveXObject) {
|
23
|
+
//for IE
|
24
|
+
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
|
25
|
+
xmlDoc.async="false";
|
26
|
+
xmlDoc.loadXML(xmlData);
|
27
|
+
return xmlDoc;
|
28
|
+
} else if (document.implementation && document.implementation.createDocument) {
|
29
|
+
//for Mozila
|
30
|
+
parser=new DOMParser();
|
31
|
+
xmlDoc=parser.parseFromString(xmlData,"text/xml");
|
32
|
+
return xmlDoc;
|
33
|
+
}
|
34
|
+
},
|
35
|
+
|
36
|
+
//オブジェクトの中身を確認
|
37
|
+
showObject : function(elm, type){
|
38
|
+
var str = '「' + typeof elm + "」の中身";
|
39
|
+
var cnt = 0;
|
40
|
+
for(i in elm){
|
41
|
+
if(type == 'html'){
|
42
|
+
str += '<br />?n' + "[" + cnt + "] " + i.bold() + ' = ' + elm[i];
|
43
|
+
} else {
|
44
|
+
str += '?n' + "[" + cnt + "] " + i + ' = ' + elm[i];
|
45
|
+
}
|
46
|
+
cnt++;
|
47
|
+
status = cnt;
|
48
|
+
}
|
49
|
+
return str;
|
50
|
+
},
|
51
|
+
|
52
|
+
//----------------------------------------------------------------------
|
53
|
+
//Math
|
54
|
+
//数字の頭に0を足す
|
55
|
+
zeroPlus : function(value){
|
56
|
+
return (n < 10) ? '0' + n : n;
|
57
|
+
},
|
58
|
+
|
59
|
+
// ランダムな数値を返す
|
60
|
+
// var n = Common.random(n);
|
61
|
+
random : function(n){
|
62
|
+
return Math.random()*n;
|
63
|
+
},
|
64
|
+
|
65
|
+
// ランダムな数を返す
|
66
|
+
// var n = Common.randomRange(1, 2);
|
67
|
+
randomRange : function(min, max){
|
68
|
+
return min + Math.random()*(max-min);
|
69
|
+
},
|
70
|
+
|
71
|
+
// ランダムな整数を返す
|
72
|
+
// var n = Common.randomInt(n);
|
73
|
+
randomInt : function(n){
|
74
|
+
return Math.floor(Math.random()*n);
|
75
|
+
},
|
76
|
+
|
77
|
+
// ランダムな整数を返す
|
78
|
+
// var n = Common.randomIntRange(10, 20);
|
79
|
+
randomIntRange : function(min, max){
|
80
|
+
return Math.floor(Math.random()*(max-min)) + min;
|
81
|
+
},
|
82
|
+
|
83
|
+
// 0か1をランダムで返す
|
84
|
+
// var n = Common.randomBit();
|
85
|
+
randomBit : function(n){
|
86
|
+
return (Math.random() < .5) ? 1 : 0;
|
87
|
+
},
|
88
|
+
|
89
|
+
// -1か1をランダムで返す
|
90
|
+
// var n = Common.randomSign();
|
91
|
+
randomSign : function(n){
|
92
|
+
return (Math.random() < .5) ? -1 : 1;
|
93
|
+
},
|
94
|
+
|
95
|
+
// 2点間の距離を測定
|
96
|
+
// var distance = Common.getDistance(o1,o2);
|
97
|
+
getDistance : function(o1,o2){
|
98
|
+
var d,dx,dy;
|
99
|
+
dx = o1.x - o2.x;
|
100
|
+
dy = o1.y - o2.y;
|
101
|
+
d = Math.sqrt(dx*dx+dy*dy);
|
102
|
+
return d;
|
103
|
+
},
|
104
|
+
|
105
|
+
// 2点間の角度を測定
|
106
|
+
// var d = Common.getDegrees(o1,o2);
|
107
|
+
// var r = Common.getRadians(o1,o2);
|
108
|
+
getDegrees : function(o1,o2){
|
109
|
+
return (Math.atan2(o2.y-o1.y, o2.x-o1.x)) * 180/Math.PI;
|
110
|
+
},
|
111
|
+
getRadians : function(o1,o2){
|
112
|
+
return Math.atan2(o2.y-o1.y, o2.x-o1.x);
|
113
|
+
},
|
114
|
+
|
115
|
+
// // 要素の座標を取得
|
116
|
+
// // Common.getRect($el).top;
|
117
|
+
// getRect : function($el){
|
118
|
+
// return $el[0].getBoundingClientRect();
|
119
|
+
// },
|
120
|
+
|
121
|
+
// スクロール座標を取得
|
122
|
+
// Common.getScroll().y;
|
123
|
+
getScroll : function(){
|
124
|
+
var de = document.documentElement, db = document.body;
|
125
|
+
var x = de.scrollLeft || db.scrollLeft;
|
126
|
+
var y = de.scrollTop || db.scrollTop;
|
127
|
+
return {x: x, y:y};
|
128
|
+
},
|
129
|
+
|
130
|
+
// ラジアン角に変更
|
131
|
+
// var r = Common.changeRadians(degrees);
|
132
|
+
changeRadians : function(degrees){
|
133
|
+
return degrees * Math.PI/180;
|
134
|
+
},
|
135
|
+
|
136
|
+
// ラジアン角から変更
|
137
|
+
// var d = Common.changeDegrees(radians);
|
138
|
+
changeDegrees : function(radians){
|
139
|
+
return radians * 180/Math.PI;
|
140
|
+
},
|
141
|
+
|
142
|
+
// sinを配列で返す
|
143
|
+
// var w = Common.getSinWave(1, 100);
|
144
|
+
getSinWave : function(value, c){
|
145
|
+
var ar = [];
|
146
|
+
var angle = 0;
|
147
|
+
var limite = value;
|
148
|
+
|
149
|
+
var n = 0;
|
150
|
+
var max = c;
|
151
|
+
var speed = 6.2/max;
|
152
|
+
|
153
|
+
for(var i=0;i<max;i++){
|
154
|
+
angle += speed;
|
155
|
+
n = Math.sin(angle)*limite;
|
156
|
+
ar.push(n);
|
157
|
+
}
|
158
|
+
return ar;
|
159
|
+
},
|
160
|
+
|
161
|
+
// cosを配列で返す
|
162
|
+
// var w = Common.getCosWave(1, 100);
|
163
|
+
getCosWave : function(value, c){
|
164
|
+
var ar = [];
|
165
|
+
var angle = 0;
|
166
|
+
var limite = value;
|
167
|
+
|
168
|
+
var n = 0;
|
169
|
+
var max = c;
|
170
|
+
var speed = 6.2/max;
|
171
|
+
|
172
|
+
for(var i=0;i<max;i++){
|
173
|
+
angle += speed;
|
174
|
+
n = Math.cos(angle)*limite;
|
175
|
+
ar.push(n);
|
176
|
+
}
|
177
|
+
return ar;
|
178
|
+
},
|
179
|
+
|
180
|
+
//スプライン曲線用
|
181
|
+
//Common.getSpline(x0,y0, x1,y1)
|
182
|
+
// var p;//now
|
183
|
+
// var pA;//next
|
184
|
+
// for (var i = 0; i < points.max-1; i++) {
|
185
|
+
// p = points.ary[i];
|
186
|
+
// p.pos.x = i*(stage.w/(points.max-4));
|
187
|
+
// }
|
188
|
+
//
|
189
|
+
// for (var i = 0; i < points.max-1; i++) {
|
190
|
+
// p = points.ary[i];
|
191
|
+
// pA = points.ary[i-1];
|
192
|
+
// if(i == 0) {
|
193
|
+
// context.moveTo(p.pos.x, p.pos.y + plusY);
|
194
|
+
// } else {
|
195
|
+
// var ch = Common.getSpline(pA.pos.x, pA.pos.y, p.pos.x, p.pos.y);
|
196
|
+
// var cx = ch[0];
|
197
|
+
// var cy = ch[1];
|
198
|
+
// context.quadraticCurveTo(pA.pos.x, pA.pos.y + plusY, cx, cy + plusY);
|
199
|
+
// }
|
200
|
+
// }
|
201
|
+
// context.lineTo(stage.w, stage.h);
|
202
|
+
// context.lineTo(0, stage.h);
|
203
|
+
// context.closePath();
|
204
|
+
// context.fill();
|
205
|
+
getSpline : function( arg1, arg2, arg3, arg4 )
|
206
|
+
{
|
207
|
+
var ret = {};
|
208
|
+
var Ho = Common.getSplinePoint( arg1, arg2, arg3, arg4 );
|
209
|
+
var L = null;
|
210
|
+
var S = null;
|
211
|
+
if( arg1 < arg3 )
|
212
|
+
{
|
213
|
+
L = arg3;
|
214
|
+
S = arg1;
|
215
|
+
}
|
216
|
+
else
|
217
|
+
{
|
218
|
+
L = arg1;
|
219
|
+
S = arg3;
|
220
|
+
}
|
221
|
+
ret[0] = (L -S)/2 +S;
|
222
|
+
ret[1] = Ho[0] *ret[0] +Ho[1];
|
223
|
+
return ret;
|
224
|
+
},
|
225
|
+
|
226
|
+
getSplinePoint : function( arg1, arg2, arg3, arg4 )
|
227
|
+
{
|
228
|
+
var a = (arg2 - arg4) /(arg1 -arg3);
|
229
|
+
var b = arg2 - arg1 *a;
|
230
|
+
var ret = Array( a, b );
|
231
|
+
return ret;
|
232
|
+
},
|
233
|
+
|
234
|
+
//----------------------------------------------------------------------
|
235
|
+
// Devices
|
236
|
+
|
237
|
+
// iPhone,iPad判別
|
238
|
+
// var bo = Common.isiOS();
|
239
|
+
isiOS : function(){
|
240
|
+
if(navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('iPad') > 0) {
|
241
|
+
return true;
|
242
|
+
} else {
|
243
|
+
return false;
|
244
|
+
}
|
245
|
+
},
|
246
|
+
isSmartPhone : function(){
|
247
|
+
if(navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('iPod') > 0 || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0)){
|
248
|
+
return true;
|
249
|
+
} else {
|
250
|
+
return false;
|
251
|
+
}
|
252
|
+
},
|
253
|
+
isTablet : function(){
|
254
|
+
if(navigator.userAgent.indexOf('iPad') > 0 || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') == -1) || navigator.userAgent.indexOf('A1_07') > 0 || navigator.userAgent.indexOf('SC-01C') > 0){
|
255
|
+
return true;
|
256
|
+
} else {
|
257
|
+
return false;
|
258
|
+
}
|
259
|
+
},
|
260
|
+
isMobile : function(){
|
261
|
+
if(Common.isSmartPhone() || Common.isTablet()){
|
262
|
+
return true;
|
263
|
+
} else {
|
264
|
+
return false;
|
265
|
+
}
|
266
|
+
},
|
267
|
+
hasTapEvent : function(){
|
268
|
+
return ('ontouchstart' in window);
|
269
|
+
},
|
270
|
+
|
271
|
+
// IE判別
|
272
|
+
// var bo = Common.isIE();
|
273
|
+
// var bo = Common.isIE6();
|
274
|
+
// var bo = Common.ltIE8();
|
275
|
+
isIE : function(){
|
276
|
+
var bo = false;
|
277
|
+
if( window.navigator.userAgent.match(/(msie|MSIE)/) || window.navigator.userAgent.match(/(T|t)rident/) ) {
|
278
|
+
bo = true;
|
279
|
+
}
|
280
|
+
return bo;
|
281
|
+
},
|
282
|
+
getIEVersion : function(){
|
283
|
+
var re = -1;
|
284
|
+
if( Common.isIE() ) {
|
285
|
+
re = window.navigator.userAgent.match(/((msie|MSIE)\s|rv:)([\d\.]+)/)[3];
|
286
|
+
re = parseInt(re);
|
287
|
+
}
|
288
|
+
return re;
|
289
|
+
},
|
290
|
+
isIE : function(n){
|
291
|
+
if(Common.isIE() && Common.isIEVersion() == n) {
|
292
|
+
return true;
|
293
|
+
} else {
|
294
|
+
return false;
|
295
|
+
}
|
296
|
+
},
|
297
|
+
ltIE : function(n){
|
298
|
+
if(Common.isIE() && Common.isIEVersion() < n) {
|
299
|
+
return true;
|
300
|
+
} else {
|
301
|
+
return false;
|
302
|
+
}
|
303
|
+
},
|
304
|
+
|
305
|
+
// アンドロイドバージョン判別
|
306
|
+
// var bo = Common.ltAndroid(2.2);//2.2(含まない)以下はtrue
|
307
|
+
ltAndroid : function(n){
|
308
|
+
var bo = false;
|
309
|
+
var ua = navigator.userAgent.toLowerCase();
|
310
|
+
var version = ua.substr(ua.indexOf('android')+8, 3);
|
311
|
+
if(ua.indexOf("android")){
|
312
|
+
if(parseFloat(version) < n) bo = true;
|
313
|
+
}
|
314
|
+
return bo;
|
315
|
+
}
|
316
|
+
}
|