skeuocard-rails 0.1.0 → 1.0.0beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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