skeuocard-rails 0.1.0 → 1.0.0beta

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,19 +1,38 @@
1
- .ie10 .skeuocard{
1
+ /*
2
+ IE Fixes
3
+ */
4
+ .ua-ie-10 .skeuocard.js{
2
5
  .cc-number input{
3
6
  ::-ms-clear { display: none !important; }
4
7
  }
8
+ .flip-tab{
9
+ @include vendor-prefix(transition, none);
10
+ }
11
+ }
12
+
13
+ /*
14
+ Firefox Fixes
15
+ */
16
+ .ua-firefox .skeuocard.js, .ua-ie-10 .skeuocard.js {
17
+ input:focus{
18
+ outline: none;
19
+ @include vendor-prefix(box-shadow, 0 0 4px $color-field-glow);
20
+ }
5
21
  }
6
22
 
7
23
  /*
8
24
  Fix for issue with Chrome in which no GPU acceleration will mess with
9
25
  backface visibility in 3d transforms
10
- see: https://code.google.com/p/chromium/issues/detail?id=127844
26
+ see: https://code.google.com/p/chromium/issues/detail?id=127844.
27
+
28
+ Special thanks to @jarthod on Github for help debugging on Linux.
29
+ See https://github.com/kenkeiter/skeuocard/issues/76 for more info.
11
30
  */
12
- .chrome.win .skeuocard {
31
+ .ua-chrome .skeuocard {
13
32
  @media screen and (-webkit-transform-3d: 0) {
14
33
  .card-body .face{
15
34
  -webkit-transition-property: -webkit-transform, opacity;
16
- -webkit-transition-duration: 0.25s, 0;
35
+ -webkit-transition-duration: 0.25s, 0.25s;
17
36
  -webkit-transition-timing-function:ease-in-out,ease-in-out;
18
37
  -webkit-transition-delay:0, 0;
19
38
  }
@@ -27,6 +46,7 @@ see: https://code.google.com/p/chromium/issues/detail?id=127844
27
46
  }
28
47
  .card-body.flip .face.back{
29
48
  opacity: 1;
49
+ z-index: 2;
30
50
  }
31
51
  }
32
52
  }
@@ -13,17 +13,6 @@ $sprite-front-height: 93.6em;
13
13
  // *****************************************************************************
14
14
  .skeuocard.js {
15
15
 
16
- input{
17
- border: none;
18
- outline: none;
19
- @include vendor-prefix(border-radius, 3px);
20
- }
21
-
22
- input:focus{
23
- outline: none;
24
- @include vendor-prefix(box-shadow, 0 0 10px $color-field-glow);
25
- }
26
-
27
16
  .face.front {
28
17
  background-color: #eee;
29
18
  background-image: image-url('products/generic-front.png'), $image-front-background;
@@ -38,15 +27,83 @@ $sprite-front-height: 93.6em;
38
27
  background-size: cover;
39
28
  }
40
29
 
30
+ .face.valid{
31
+ @include vendor-prefix(box-shadow, 0 0 10px $color-valid);
32
+ }
33
+
34
+
35
+
36
+ /*
37
+ 1. If a field (or group) has focus, regardless of whether it's filled, the
38
+ inputs should look like inputs.
39
+ 2. Focused inputs within a focused field or group should look focused.
40
+ 3. An un-filled field should always look editable.
41
+ 4. Filled, valid fields should be flat until hover.
42
+ */
43
+
44
+ .cc-field{
45
+
46
+ input{
47
+ border: none;
48
+ outline: none;
49
+ background-color: rgba(255, 255, 255, 0.6);
50
+ @include vendor-prefix(border-radius, 0px);
51
+ @include vendor-prefix(box-shadow, inset 1px 1px 1px 1px #ccc);
52
+ @include vendor-prefix(transition, background-color 300ms ease);
53
+ }
54
+
55
+ input:focus{
56
+ outline: 3px auto $color-field-glow;
57
+ @include vendor-prefix(box-shadow, none);
58
+ }
59
+
60
+ &.filled.valid:not(.focus){
61
+ input{
62
+ @include vendor-prefix(box-shadow, none);
63
+ background-color: transparent;
64
+ }
65
+ }
66
+
67
+ &.filled:hover:not(.focus){
68
+ input{
69
+ @include vendor-prefix(box-shadow, inset 1px 1px 1px 1px #ccc);
70
+ background-color: rgba(255, 255, 255, 0.6);
71
+ }
72
+ }
73
+
74
+ }
75
+
76
+ .face.filled .cc-field.invalid{
77
+ input{
78
+ @include vendor-prefix(box-shadow, inset 0px 0px 2px 1px $color-invalid);
79
+ border: 1px solid $color-invalid;
80
+ }
81
+
82
+ input:focus{
83
+ @include vendor-prefix(box-shadow, none);
84
+ }
85
+
86
+ /*
87
+ &:after{
88
+ display: inline-block;
89
+ width: 1.575em;
90
+ height: 1.25em;
91
+ content: "";
92
+ background: image-url('error-pointer.png') no-repeat center center;
93
+ background-size: 1.575em 1.25em;
94
+ padding-left: 4px;
95
+ }
96
+ */
97
+ }
98
+
41
99
  .cc-number{
42
100
  position: absolute;
43
101
  display: block;
44
- //left:36px;
45
102
  left: 1.8em;
46
103
  top: 8.05em;
104
+ padding: 0.1em;
47
105
  input{
48
106
  color: #333;
49
- background-color: #fff;
50
107
  font-family: $cc-field-family;
51
108
  font-size: 1.5em;
52
109
  &.group4{ width: 3.2em; }
@@ -58,33 +115,7 @@ $sprite-front-height: 93.6em;
58
115
  margin-left: 0.4em;
59
116
  }
60
117
  }
61
- }
62
118
 
63
- // *****************************************************************************
64
- // Base layout for cards
65
- // This is inherited by card products.
66
- // *****************************************************************************
67
- .skeuocard.card-product {
68
- .face.front{
69
- background-repeat: no-repeat, no-repeat;
70
- background-size: cover, cover;
71
- }
72
- .face.back{
73
- background-repeat: no-repeat, no-repeat;
74
- background-size: cover, cover;
75
- }
76
- .cc-number {
77
- background-color: transparent;
78
- padding: 0.1em;
79
- input{
80
- color: #333;
81
- background-color: transparent;
82
- border: none;
83
- }
84
- input:focus{
85
- background-color: rgba(255, 255, 255, 0.6);
86
- }
87
- }
88
119
  .cc-exp {
89
120
  position: absolute;
90
121
  display: block;
@@ -93,46 +124,48 @@ $sprite-front-height: 93.6em;
93
124
  font-size: 1em;
94
125
  font-family: $cc-field-family;
95
126
  color: #333;
96
- background-color: transparent;
97
- border: none;
98
127
  text-align: center;
99
128
  &.group2{ width: 2em; }
100
129
  &.group4{ width: 4em; }
101
130
  }
102
131
  }
132
+
103
133
  .cc-name {
104
134
  margin: 0; padding: 0;
105
135
  position: absolute;
106
136
  display: block;
107
137
  font-size: 1em;
108
138
  font-family: $cc-field-family;
109
- background-color: transparent;
110
- border: none;
111
139
  text-transform: uppercase;
112
140
  }
141
+
113
142
  .cc-cvc {
114
143
  margin: 0; padding: 0;
115
144
  position: absolute;
116
145
  display: block;
117
146
  font-size: 1em;
118
147
  font-family: $cc-label-family;
119
- background-color: transparent;
120
- border: none;
121
- }
122
- .invalid{
123
- -webkit-border-radius: 5px;
124
- -moz-border-radius: 5px;
125
- border-radius: 5px;
126
148
  }
127
- .invalid{
149
+
150
+ &.unaccepted .cc-number input{
128
151
  outline: none;
129
- box-shadow: 0 0 10px $color-invalid;
152
+ @include vendor-prefix(box-shadow, 0 0 10px $color-invalid);
130
153
  @include vendor-prefix(transition, box-shadow linear 0.15s);
131
- input:focus{
132
- border: 1px solid blue;
133
- outline: none;
134
- @include vendor-prefix(border-radius, 3px);
135
- }
154
+ }
155
+ }
156
+
157
+ // *****************************************************************************
158
+ // Base layout for cards
159
+ // This is inherited by card products.
160
+ // *****************************************************************************
161
+ .skeuocard.card-product {
162
+ .face.front{
163
+ background-repeat: no-repeat, no-repeat;
164
+ background-size: cover, cover;
165
+ }
166
+ .face.back{
167
+ background-repeat: no-repeat, no-repeat;
168
+ background-size: cover, cover;
136
169
  }
137
170
  }
138
171
 
@@ -145,6 +178,7 @@ $sprite-front-height: 93.6em;
145
178
  .face.front{
146
179
  background-image: image-url('products/visa-front.png'), $image-front-background;
147
180
  }
181
+
148
182
  .face.back {
149
183
  background-image: image-url('products/visa-back.png'), $image-generic-back;
150
184
  }
@@ -210,29 +244,42 @@ $sprite-front-height: 93.6em;
210
244
 
211
245
  }
212
246
 
213
- /*
214
- &.issuer-simple{
215
- .face.front{
216
- background-image: image-url('issuers/visa-simple-front.png');
217
- }
218
- input, .separator {
219
- color: #eee;
220
- background-color: transparent;
221
- text-shadow: 1px 1px 1px #bbb;
222
- filter: dropshadow(color=#aaa, offx=1, offy=1);
223
- border: none;
224
- @include input-placeholder{
225
- color: #fff;
226
- text-shadow: 1px 1px 1px #ccc;
227
- filter: dropshadow(color=#ddd, offx=1, offy=1);
228
- };
229
- }
230
- .cc-number{
231
- background-color: transparent;
232
- }
247
+ }
248
+
249
+ // *****************************************************************************
250
+ // China UnionPay card layout
251
+ // *****************************************************************************
252
+ .skeuocard.product-unionpay {
253
+ @extend .skeuocard.card-product;
254
+
255
+ .face.front{
256
+ background-image: image-url('products/unionpay-front.png'), $image-front-background;
257
+ }
258
+ .face.back {
259
+ background-image: image-url('products/visa-back.png'), $image-generic-back;
233
260
  }
234
- */
235
261
 
262
+ .cc-number{
263
+ left: 1.8em;
264
+ top: 8.05em;
265
+ }
266
+
267
+ .cc-exp{
268
+ left: 10.9em;
269
+ top: 11.2em;
270
+ width: 5em;
271
+ }
272
+
273
+ .cc-name{
274
+ left: 1.8em;
275
+ top: 13em;
276
+ }
277
+
278
+ .cc-cvc{
279
+ top: 7.15em;
280
+ left: 18.1em;
281
+ width: 3em;
282
+ }
236
283
  }
237
284
 
238
285
  // *****************************************************************************
@@ -336,6 +383,41 @@ $sprite-front-height: 93.6em;
336
383
  }
337
384
  }
338
385
 
386
+ // *****************************************************************************
387
+ // Maestro card layout
388
+ // *****************************************************************************
389
+ .skeuocard.product-maestro {
390
+ @extend .skeuocard.card-product;
391
+
392
+ .face.front{
393
+ background-image: image-url('products/maestro-front.png'), $image-front-background;
394
+ }
395
+ .face.back{
396
+ background-image: image-url('products/visa-back.png'), $image-generic-back;
397
+ }
398
+
399
+ .cc-number{
400
+ left: 1.8em;
401
+ top: 8.05em;
402
+ }
403
+
404
+ .cc-name{
405
+ left: 2.5em;
406
+ top: 12.2em;
407
+ }
408
+
409
+ .cc-exp{
410
+ left: 11.5em;
411
+ top: 10.8em;
412
+ }
413
+
414
+ .cc-cvc{
415
+ top: 7.15em;
416
+ left: 18.1em;
417
+ width: 3em;
418
+ }
419
+ }
420
+
339
421
  // *****************************************************************************
340
422
  // Discover card layout
341
423
  // *****************************************************************************
@@ -345,6 +427,7 @@ $sprite-front-height: 93.6em;
345
427
  .face.front{
346
428
  background-image: image-url('products/discover-front.png'), $image-front-background;
347
429
  }
430
+
348
431
  .face.back{
349
432
  background-image: image-url('products/visa-back.png'), $image-generic-back;
350
433
  }
@@ -363,6 +446,43 @@ $sprite-front-height: 93.6em;
363
446
  left: 13.15em;
364
447
  top: 11.61em;
365
448
  }
449
+
450
+ .cc-cvc{
451
+ top: 7.15em;
452
+ left: 18.1em;
453
+ width: 3em;
454
+ }
455
+ }
456
+
457
+ // *****************************************************************************
458
+ // JCB card product
459
+ // *****************************************************************************
460
+ .skeuocard.product-jcb {
461
+ @extend .skeuocard.card-product;
462
+
463
+ .face.front{
464
+ background-image: image-url('products/jcb-front.png'), $image-front-background;
465
+ }
466
+
467
+ .face.back{
468
+ background-image: image-url('products/visa-back.png'), $image-generic-back;
469
+ }
470
+
471
+ .cc-number{
472
+ left: 1.8em;
473
+ top: 8.05em;
474
+ }
475
+
476
+ .cc-name{
477
+ left: 1.55em;
478
+ top: 13.575em;
479
+ }
480
+
481
+ .cc-exp{
482
+ left: 10.65em;
483
+ top: 11.50em;
484
+ }
485
+
366
486
  .cc-cvc{
367
487
  top: 7.15em;
368
488
  left: 18.1em;
@@ -373,9 +493,12 @@ $sprite-front-height: 93.6em;
373
493
  /* Preload face images */
374
494
  body:after{
375
495
  display:none;
376
- content: image-url('products/visa-front.png')
496
+ content: image-url('products/visa-back.png') // most use this
497
+ image-url('products/visa-front.png')
498
+ image-url('products/unionpay-front.png')
377
499
  image-url('products/amex-front.png')
378
500
  image-url('products/discover-front.png')
379
501
  image-url('products/mastercard-front.png')
380
- image-url('products/dinersclubintl-front.png');
502
+ image-url('products/dinersclubintl-front.png')
503
+ image-url('products/jcb-front.png');
381
504
  }
@@ -52,5 +52,9 @@
52
52
  input, fieldset{
53
53
  line-height: normal;
54
54
  height: auto;
55
+ padding: 0px;
56
+ margin: 0px;
57
+ display: inline-block;
58
+ width: auto;
55
59
  }
56
60
  }
@@ -49,7 +49,7 @@ $color-valid: #00CFA7;
49
49
  backface-visibility: hidden;
50
50
  -webkit-backface-visibility: visible;
51
51
  -webkit-backface-visibility: hidden;
52
-
52
+
53
53
  @include vendor-prefix(transform-style, preserve-3d);
54
54
  -webkit-transition: -webkit-transform 0.25s ease, background-image 0.25s ease;
55
55
  -ms-transition: -ms-transform 0.25s ease, background-image 0.25s ease;
@@ -100,22 +100,14 @@ $color-valid: #00CFA7;
100
100
  }
101
101
  }
102
102
 
103
- &.valid{
104
- .card-body .face{
105
- @include vendor-prefix(box-shadow, 0 0 10px $color-valid);
106
- }
107
- }
108
-
109
103
  .flip-tab{
110
104
  position: absolute;
111
- -webkit-border-radius: 3.55em;
112
- border-radius: 3.55em;
113
- cursor: pointer; cursor: hand;
114
- height: 3.55em;
105
+ cursor: pointer;
115
106
  width: 13em;
116
107
  display: block;
117
108
  background: #666;
118
- background-size: 1.375em 1.725em;
109
+ height: 3.55em;
110
+ @include vendor-prefix(border-radius, 3.55em);
119
111
  @include vendor-prefix(transition, all 0.25s ease);
120
112
  p{
121
113
  margin: 0.6em;
@@ -124,6 +116,10 @@ $color-valid: #00CFA7;
124
116
  font-size: 1.0em;
125
117
  line-height: 1.2em;
126
118
  }
119
+ p strong{
120
+ color: #fff;
121
+ font-weight: bold;
122
+ }
127
123
  &.front{
128
124
  right: -1.25em;
129
125
  top: 1em;
@@ -135,7 +131,8 @@ $color-valid: #00CFA7;
135
131
  &:hover{ left: -1.8em; }
136
132
  }
137
133
  }
138
- .flip-tab.valid-anim{
134
+
135
+ .flip-tab.prompt{
139
136
  background: $color-valid image-url('card-valid-anim.gif') no-repeat;
140
137
  background-size: 2.3em 2.3em;
141
138
  &.front{
@@ -155,14 +152,28 @@ $color-valid: #00CFA7;
155
152
  }
156
153
  }
157
154
  }
158
- .flip-tab.prompt{
159
- background-color: $color-valid;
160
- }
161
155
  .flip-tab.warn{
162
- background-color: $color-invalid;
156
+ background: $color-invalid image-url('card-invalid-indicator.png') no-repeat;
157
+ background-size: 2.3em 2.3em;
158
+ &.front{
159
+ background-position: 10.08em 0.7em;
160
+ p{
161
+ margin-right: 2.9em;
162
+ margin-left: 1.25em;
163
+ margin-top: 0.6em;
164
+ }
165
+ }
166
+ &.back{
167
+ background-position: 0.6em 0.6em;
168
+ p{
169
+ margin-right: 1.25em;
170
+ margin-left: 2.9em;
171
+ margin-top: 0.6em;
172
+ }
173
+ }
163
174
  }
164
175
 
165
176
  }
166
177
 
167
178
  @import "_cards";
168
- @import "_browser_hacks";
179
+ @import "_browser_hacks";
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skeuocard-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Darde
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-07 00:00:00.000000000 Z
11
+ date: 2013-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -42,6 +42,7 @@ files:
42
42
  - vendor/assets/images/card-invalid-indicator.png
43
43
  - vendor/assets/images/card-valid-anim.gif
44
44
  - vendor/assets/images/card-valid-indicator.png
45
+ - vendor/assets/images/error-pointer.png
45
46
  - vendor/assets/images/issuers/visa-chase-sapphire.png
46
47
  - vendor/assets/images/issuers/visa-simple-front.png
47
48
  - vendor/assets/images/products/amex-front.png
@@ -49,15 +50,18 @@ files:
49
50
  - vendor/assets/images/products/discover-front.png
50
51
  - vendor/assets/images/products/generic-back.png
51
52
  - vendor/assets/images/products/generic-front.png
53
+ - vendor/assets/images/products/jcb-front.png
54
+ - vendor/assets/images/products/maestro-front.png
52
55
  - vendor/assets/images/products/mastercard-front.png
56
+ - vendor/assets/images/products/unionpay-front.png
53
57
  - vendor/assets/images/products/visa-back.png
54
58
  - vendor/assets/images/products/visa-front.png
55
59
  - vendor/assets/javascripts/skeuocard.js
56
- - vendor/assets/stylesheets/src/_browser_hacks.scss
57
- - vendor/assets/stylesheets/src/_cards.scss
58
- - vendor/assets/stylesheets/src/_util.scss
59
- - vendor/assets/stylesheets/src/skeuocard.reset.scss
60
- - vendor/assets/stylesheets/src/skeuocard.scss
60
+ - vendor/assets/stylesheets/_browser_hacks.scss
61
+ - vendor/assets/stylesheets/_cards.scss
62
+ - vendor/assets/stylesheets/_util.scss
63
+ - vendor/assets/stylesheets/skeuocard.reset.scss
64
+ - vendor/assets/stylesheets/skeuocard.scss
61
65
  - MIT-LICENSE
62
66
  - Gemfile
63
67
  - README.md
@@ -76,9 +80,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
80
  version: '0'
77
81
  required_rubygems_version: !ruby/object:Gem::Requirement
78
82
  requirements:
79
- - - '>='
83
+ - - '>'
80
84
  - !ruby/object:Gem::Version
81
- version: '0'
85
+ version: 1.3.1
82
86
  requirements: []
83
87
  rubyforge_project:
84
88
  rubygems_version: 2.0.3