skeuocard-rails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +23 -0
- data/MIT-LICENSE +20 -0
- data/README.md +59 -0
- data/lib/skeuocard-rails.rb +3 -0
- data/lib/skeuocard-rails/engine.rb +6 -0
- data/vendor/assets/fonts/ocra-webfont.eot +0 -0
- data/vendor/assets/fonts/ocra-webfont.svg +138 -0
- data/vendor/assets/fonts/ocra-webfont.ttf +0 -0
- data/vendor/assets/fonts/ocra-webfont.woff +0 -0
- data/vendor/assets/images/card-flip-arrow.png +0 -0
- data/vendor/assets/images/card-invalid-indicator.png +0 -0
- data/vendor/assets/images/card-valid-anim.gif +0 -0
- data/vendor/assets/images/card-valid-indicator.png +0 -0
- data/vendor/assets/images/issuers/amex-blackcard-front.png +0 -0
- data/vendor/assets/images/issuers/visa-chase-sapphire.png +0 -0
- data/vendor/assets/images/issuers/visa-simple-front.png +0 -0
- data/vendor/assets/images/products/amex-front.png +0 -0
- data/vendor/assets/images/products/dinersclubintl-front.png +0 -0
- data/vendor/assets/images/products/discover-front.png +0 -0
- data/vendor/assets/images/products/generic-back.png +0 -0
- data/vendor/assets/images/products/generic-front.png +0 -0
- data/vendor/assets/images/products/mastercard-front.png +0 -0
- data/vendor/assets/images/products/visa-back.png +0 -0
- data/vendor/assets/images/products/visa-front.png +0 -0
- data/vendor/assets/javascripts/skeuocard.js +1432 -0
- data/vendor/assets/javascripts/src/skeuocard.coffee +1072 -0
- data/vendor/assets/javascripts/vendor/css_browser_selector.js +154 -0
- data/vendor/assets/javascripts/vendor/demo.fix.js +17 -0
- data/vendor/assets/javascripts/vendor/jquery-2.0.3.min.js +5 -0
- data/vendor/assets/stylesheets/src/_browser_hacks.scss +32 -0
- data/vendor/assets/stylesheets/src/_cards.scss +318 -0
- data/vendor/assets/stylesheets/src/_util.scss +15 -0
- data/vendor/assets/stylesheets/src/demo.scss +265 -0
- data/vendor/assets/stylesheets/src/skeuocard.reset.scss +52 -0
- data/vendor/assets/stylesheets/src/skeuocard.scss +168 -0
- 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";
|