skeuocard-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +23 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +59 -0
  5. data/lib/skeuocard-rails.rb +3 -0
  6. data/lib/skeuocard-rails/engine.rb +6 -0
  7. data/vendor/assets/fonts/ocra-webfont.eot +0 -0
  8. data/vendor/assets/fonts/ocra-webfont.svg +138 -0
  9. data/vendor/assets/fonts/ocra-webfont.ttf +0 -0
  10. data/vendor/assets/fonts/ocra-webfont.woff +0 -0
  11. data/vendor/assets/images/card-flip-arrow.png +0 -0
  12. data/vendor/assets/images/card-invalid-indicator.png +0 -0
  13. data/vendor/assets/images/card-valid-anim.gif +0 -0
  14. data/vendor/assets/images/card-valid-indicator.png +0 -0
  15. data/vendor/assets/images/issuers/amex-blackcard-front.png +0 -0
  16. data/vendor/assets/images/issuers/visa-chase-sapphire.png +0 -0
  17. data/vendor/assets/images/issuers/visa-simple-front.png +0 -0
  18. data/vendor/assets/images/products/amex-front.png +0 -0
  19. data/vendor/assets/images/products/dinersclubintl-front.png +0 -0
  20. data/vendor/assets/images/products/discover-front.png +0 -0
  21. data/vendor/assets/images/products/generic-back.png +0 -0
  22. data/vendor/assets/images/products/generic-front.png +0 -0
  23. data/vendor/assets/images/products/mastercard-front.png +0 -0
  24. data/vendor/assets/images/products/visa-back.png +0 -0
  25. data/vendor/assets/images/products/visa-front.png +0 -0
  26. data/vendor/assets/javascripts/skeuocard.js +1432 -0
  27. data/vendor/assets/javascripts/src/skeuocard.coffee +1072 -0
  28. data/vendor/assets/javascripts/vendor/css_browser_selector.js +154 -0
  29. data/vendor/assets/javascripts/vendor/demo.fix.js +17 -0
  30. data/vendor/assets/javascripts/vendor/jquery-2.0.3.min.js +5 -0
  31. data/vendor/assets/stylesheets/src/_browser_hacks.scss +32 -0
  32. data/vendor/assets/stylesheets/src/_cards.scss +318 -0
  33. data/vendor/assets/stylesheets/src/_util.scss +15 -0
  34. data/vendor/assets/stylesheets/src/demo.scss +265 -0
  35. data/vendor/assets/stylesheets/src/skeuocard.reset.scss +52 -0
  36. data/vendor/assets/stylesheets/src/skeuocard.scss +168 -0
  37. metadata +92 -0
@@ -0,0 +1,15 @@
1
+ @mixin input-placeholder {
2
+ &.placeholder { @content; }
3
+ &:-moz-placeholder { @content; }
4
+ &::-moz-placeholder { @content; }
5
+ &:-ms-input-placeholder { @content; }
6
+ &::-webkit-input-placeholder { @content; }
7
+ }
8
+
9
+ @mixin vendor-prefix($name, $argument) {
10
+ #{$name}: $argument;
11
+ -webkit-#{$name}: $argument;
12
+ -ms-#{$name}: $argument;
13
+ -moz-#{$name}: $argument;
14
+ -o-#{$name}: $argument;
15
+ }
@@ -0,0 +1,265 @@
1
+ @import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
2
+
3
+ body {
4
+ padding:50px;
5
+ font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
6
+ color:#777;
7
+ font-weight:300;
8
+ }
9
+
10
+ h1, h2, h3, h4, h5, h6 {
11
+ color:#222;
12
+ margin:0 0 20px;
13
+ }
14
+
15
+ p, ul, ol, table, pre, dl {
16
+ margin:0 0 20px;
17
+ }
18
+
19
+ h1, h2, h3 {
20
+ line-height:1.1;
21
+ }
22
+
23
+ h1 {
24
+ font-size:28px;
25
+ }
26
+
27
+ h2 {
28
+ color:#393939;
29
+ }
30
+
31
+ h3, h4, h5, h6 {
32
+ color:#494949;
33
+ }
34
+
35
+ a {
36
+ color:#39c;
37
+ font-weight:400;
38
+ text-decoration:none;
39
+ }
40
+
41
+ a small {
42
+ font-size:11px;
43
+ color:#777;
44
+ margin-top:-0.6em;
45
+ display:block;
46
+ }
47
+
48
+ .wrapper {
49
+ width:860px;
50
+ margin:0 auto;
51
+ }
52
+
53
+ blockquote {
54
+ border-left:1px solid #e5e5e5;
55
+ margin:0;
56
+ padding:0 0 0 20px;
57
+ font-style:italic;
58
+ }
59
+
60
+ code, pre {
61
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
62
+ color:#333;
63
+ font-size:12px;
64
+ }
65
+
66
+ pre {
67
+ padding:8px 15px;
68
+ background: #f8f8f8;
69
+ border-radius:5px;
70
+ border:1px solid #e5e5e5;
71
+ overflow-x: auto;
72
+ }
73
+
74
+ table {
75
+ width:100%;
76
+ border-collapse:collapse;
77
+ }
78
+
79
+ th, td {
80
+ text-align:left;
81
+ padding:5px 10px;
82
+ border-bottom:1px solid #e5e5e5;
83
+ }
84
+
85
+ dt {
86
+ color:#444;
87
+ font-weight:700;
88
+ }
89
+
90
+ th {
91
+ color:#444;
92
+ }
93
+
94
+ img {
95
+ max-width:100%;
96
+ }
97
+
98
+ header {
99
+ width:270px;
100
+ float:left;
101
+ position:fixed;
102
+ }
103
+
104
+ header ul {
105
+ list-style:none;
106
+ height:40px;
107
+
108
+ padding:0;
109
+
110
+ background: #eee;
111
+ background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
112
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
113
+ background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
114
+ background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
115
+ background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
116
+ background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
117
+
118
+ border-radius:5px;
119
+ border:1px solid #d2d2d2;
120
+ box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
121
+ width:270px;
122
+ }
123
+
124
+ header li {
125
+ width:89px;
126
+ float:left;
127
+ border-right:1px solid #d2d2d2;
128
+ height:40px;
129
+ }
130
+
131
+ header ul a {
132
+ line-height:1;
133
+ font-size:11px;
134
+ color:#999;
135
+ display:block;
136
+ text-align:center;
137
+ padding-top:6px;
138
+ height:40px;
139
+ }
140
+
141
+ strong {
142
+ color:#222;
143
+ font-weight:700;
144
+ }
145
+
146
+ header ul li + li {
147
+ width:88px;
148
+ border-left:1px solid #fff;
149
+ }
150
+
151
+ header ul li + li + li {
152
+ border-right:none;
153
+ width:89px;
154
+ }
155
+
156
+ header ul a strong {
157
+ font-size:14px;
158
+ display:block;
159
+ color:#222;
160
+ }
161
+
162
+ section {
163
+ width:500px;
164
+ float:right;
165
+ padding-bottom:50px;
166
+ }
167
+
168
+ small {
169
+ font-size:11px;
170
+ }
171
+
172
+ hr {
173
+ border:0;
174
+ background:#e5e5e5;
175
+ height:1px;
176
+ margin:0 0 20px;
177
+ }
178
+
179
+ footer {
180
+ width:270px;
181
+ float:left;
182
+ position:fixed;
183
+ bottom:50px;
184
+ }
185
+
186
+ @media print, screen and (max-width: 960px) {
187
+
188
+ div.wrapper {
189
+ width:auto;
190
+ margin:0;
191
+ }
192
+
193
+ header, section, footer {
194
+ float:none;
195
+ position:static;
196
+ width:auto;
197
+ }
198
+
199
+ header {
200
+ padding-right:320px;
201
+ }
202
+
203
+ section {
204
+ border:1px solid #e5e5e5;
205
+ border-width:1px 0;
206
+ padding:20px 0;
207
+ margin:0 0 20px;
208
+ }
209
+
210
+ header a small {
211
+ display:inline;
212
+ }
213
+
214
+ header ul {
215
+ position:absolute;
216
+ right:50px;
217
+ top:52px;
218
+ }
219
+ }
220
+
221
+ @media print, screen and (max-width: 720px) {
222
+ body {
223
+ word-wrap:break-word;
224
+ }
225
+
226
+ header {
227
+ padding:0;
228
+ }
229
+
230
+ header ul, header p.view {
231
+ position:static;
232
+ }
233
+
234
+ pre, code {
235
+ word-wrap:normal;
236
+ }
237
+ }
238
+
239
+ @media print, screen and (max-width: 480px) {
240
+ body {
241
+ padding:15px;
242
+ }
243
+
244
+ header ul {
245
+ display:none;
246
+ }
247
+ }
248
+
249
+ @media print {
250
+ body {
251
+ padding:0.4in;
252
+ font-size:12pt;
253
+ color:#444;
254
+ }
255
+ }
256
+
257
+ /* Unstyled skeuocard input styling */
258
+ .credit-card-input.no-js{
259
+ p.no-support-warning{
260
+ color: #ff0000;
261
+ }
262
+ label + input, label + select{
263
+ display: block;
264
+ }
265
+ }
@@ -0,0 +1,52 @@
1
+ .skeuocard.js {
2
+ * { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
3
+ html,body,div,span,applet,object,iframe,
4
+ h1,h2,h3,h4,h5,h6,p,blockquote,pre,
5
+ a,abbr,acronym,address,big,cite,code,
6
+ del,dfn,em,img,ins,kbd,q,s,samp,
7
+ small,strike,strong,sub,sup,tt,var,
8
+ b,u,i,center,
9
+ 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
+ outline:0;
19
+ font-size:100%;
20
+ font:inherit;
21
+ vertical-align:baseline;
22
+ }
23
+ /* HTML5 display-role reset for older browsers */
24
+ article,aside,details,figcaption,figure,
25
+ footer,header,hgroup,menu,nav,section{
26
+ display:block;
27
+ }
28
+ body{
29
+ line-height:1;
30
+ }
31
+ ol,ul{
32
+ list-style:none;
33
+ }
34
+ blockquote,q{
35
+ quotes:none;
36
+ }
37
+ blockquote:before,blockquote:after,
38
+ q:before,q:after{
39
+ content:'';
40
+ content:none;
41
+ }
42
+ ins{
43
+ text-decoration:none;
44
+ }
45
+ del{
46
+ text-decoration:line-through;
47
+ }
48
+ table{
49
+ border-collapse:collapse;
50
+ border-spacing:0;
51
+ }
52
+ }
@@ -0,0 +1,168 @@
1
+ @import "util";
2
+
3
+ /* Sizing is 1em = 20px */
4
+
5
+ @font-face {
6
+ font-family: 'ocraregular';
7
+ src: image-url('ocra-webfont.eot');
8
+ src: image-url('ocra-webfont.eot?#iefix') format('embedded-opentype'),
9
+ image-url('ocra-webfont.woff') format('woff'),
10
+ image-url('ocra-webfont.ttf') format('truetype'),
11
+ image-url('ocra-webfont.svg#ocraregular') format('svg');
12
+ font-weight: normal;
13
+ font-style: normal;
14
+ }
15
+
16
+ $cc-face-width: 24.8em;
17
+ $cc-face-height: 15.6em;
18
+
19
+ $cc-label-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
20
+ $cc-field-family: "ocraregular", "OCR A Std", "OCR A", Courier, "Courier New", monospace;
21
+
22
+ $color-field-glow: #0096de;
23
+ $color-invalid: #ff655a;
24
+ $color-valid: #00CFA7;
25
+
26
+ .skeuocard.js {
27
+ width: $cc-face-width;
28
+ height: $cc-face-height;
29
+
30
+ -webkit-perspective: 1000;
31
+ -moz-perspective: 1000;
32
+ -o-perspective: 1000;
33
+ perspective: 1000;
34
+
35
+ .card-body {
36
+ -moz-transform: perspective(1000px);
37
+ -moz-transform-style: preserve-3d;
38
+ position: relative;
39
+
40
+ .face {
41
+ -webkit-backface-visibility: hidden;
42
+ -moz-backface-visibility: hidden;
43
+ backface-visibility: hidden;
44
+ -webkit-backface-visibility: visible;
45
+ -webkit-backface-visibility: hidden;
46
+
47
+ -webkit-transform-style: preserve-3d;
48
+ -moz-transform-style: preserve-3d;
49
+ -o-transform-style: preserve-3d;
50
+ -ms-transform-style: preserve-3d;
51
+ transform-style: preserve-3d;
52
+
53
+ -webkit-transition: all 0.25s ease;
54
+ -moz-transition: all 0.25s ease;
55
+ -o-transition: all 0.25s ease;
56
+ -ms-transition: all 0.25s ease;
57
+ transition: all 0.25s ease;
58
+
59
+ position: absolute;
60
+ top: 0;
61
+ left: 0;
62
+ width: $cc-face-width;
63
+ height: $cc-face-height;
64
+ -webkit-border-radius: 1.15em;
65
+ border-radius: 1.15em;
66
+ background-color: #eee;
67
+ background-size: cover !important;
68
+ background-position: right bottom;
69
+ border: 1px solid #ddd;
70
+ }
71
+
72
+ .face.front{
73
+ -webkit-transform: translate3d(0,0,0);
74
+ z-index: 2;
75
+ }
76
+
77
+ .face.back{
78
+ -webkit-transform: rotateY(-180deg);
79
+ -moz-transform: rotateY(-180deg);
80
+ -o-transform: rotateY(-180deg);
81
+ -ms-transform: rotateY(-180deg);
82
+ transform: rotateY(-180deg);
83
+ }
84
+ }
85
+
86
+ .card-body.flip {
87
+ .face.back{
88
+ -webkit-transform: rotateY(0deg);
89
+ -moz-transform: rotateY(0deg);
90
+ -o-transform: rotateY(0deg);
91
+ -ms-transform: rotateY(0deg);
92
+ transform: rotateY(0deg);
93
+ }
94
+
95
+ .face.front{
96
+ -webkit-transform: rotateY(180deg);
97
+ -moz-transform: rotateY(180deg);
98
+ -o-transform: rotateY(180deg);
99
+ transform: rotateY(180deg);
100
+ }
101
+ }
102
+
103
+ &.valid{
104
+ .card-body .face{
105
+ @include vendor-prefix(box-shadow, 0 0 10px $color-valid);
106
+ }
107
+ }
108
+
109
+ .flip-tab{
110
+ position: absolute;
111
+ -webkit-border-radius: 3.55em;
112
+ border-radius: 3.55em;
113
+ cursor: pointer; cursor: hand;
114
+ height: 3.55em;
115
+ width: 13em;
116
+ display: block;
117
+ background: #666;
118
+ background-size: 1.375em 1.725em;
119
+ @include vendor-prefix(transition, all 0.25s ease);
120
+ p{
121
+ margin: 0.6em;
122
+ font-family: $cc-label-family;
123
+ color: #fff;
124
+ font-size: 1.0em;
125
+ line-height: 1.2em;
126
+ }
127
+ &.front{
128
+ right: -1.25em;
129
+ top: 1em;
130
+ &:hover{ right: -1.8em; }
131
+ }
132
+ &.back{
133
+ left: -1.25em;
134
+ top: 1em;
135
+ &:hover{ left: -1.8em; }
136
+ }
137
+ }
138
+ .flip-tab.valid-anim{
139
+ background: $color-valid image-url('card-valid-anim.gif') no-repeat;
140
+ background-size: 2.3em 2.3em;
141
+ &.front{
142
+ background-position: 10.05em 0.6em;
143
+ p{
144
+ margin-right: 2.9em;
145
+ margin-left: 1.25em;
146
+ margin-top: 0.6em;
147
+ }
148
+ }
149
+ &.back{
150
+ background-position: 0.6em 0.6em;
151
+ p{
152
+ margin-right: 1.25em;
153
+ margin-left: 2.9em;
154
+ margin-top: 0.6em;
155
+ }
156
+ }
157
+ }
158
+ .flip-tab.prompt{
159
+ background-color: $color-valid;
160
+ }
161
+ .flip-tab.warn{
162
+ background-color: $color-invalid;
163
+ }
164
+
165
+ }
166
+
167
+ @import "_cards";
168
+ @import "_browser_hacks";