Commit 7744de45 7744de4519fd02c241c63c2ac3836ddeb1c35bb6 by Evanlai

add login page

1 parent 47655c57
Showing 135 changed files with 2836 additions and 1 deletions
1 {
2 "directory": "bower_components",
3 "analytics": false
4 }
1 # EditorConfig helps developers define and maintain consistent
2 # coding styles between different editors and IDEs
3 # editorconfig.org
4
5 root = true
6
7
8 [*]
9 end_of_line = lf
10 charset = utf-8
11 trim_trailing_whitespace = true
12 insert_final_newline = true
13 indent_style = space
14 indent_size = 2
15
16 [*.hbs]
17 insert_final_newline = false
18
19 [*.{diff,md}]
20 trim_trailing_whitespace = false
1 {
2 /**
3 Ember CLI sends analytics information by default. The data is completely
4 anonymous, but there are times when you might want to disable this behavior.
5
6 Setting `disableAnalytics` to true will prevent any data from being sent.
7 */
8 "disableAnalytics": true,
9 "liveReload": false
10 }
1 # See http://help.github.com/ignore-files/ for more about ignoring files.
2
3 # compiled output
4 /dist
5 /tmp
6
7 # dependencies
8 /node_modules
9 /bower_components
10
11 # misc
12 /.sass-cache
13 /connect.lock
14 /coverage/*
15 /libpeerconnection.log
16 npm-debug.log
17 testem.log
1 {
2 "predef": [
3 "document",
4 "window",
5 "-Promise"
6 ],
7 "browser": true,
8 "boss": true,
9 "curly": true,
10 "debug": false,
11 "devel": true,
12 "eqeqeq": true,
13 "evil": true,
14 "forin": false,
15 "immed": false,
16 "laxbreak": false,
17 "newcap": true,
18 "noarg": true,
19 "noempty": false,
20 "nonew": false,
21 "nomen": false,
22 "onevar": false,
23 "plusplus": false,
24 "regexp": false,
25 "undef": true,
26 "sub": true,
27 "strict": false,
28 "white": false,
29 "eqnull": true,
30 "esversion": 6,
31 "unused": true
32 }
1 ---
2 language: node_js
3 node_js:
4 - "4"
5
6 sudo: false
7
8 cache:
9 directories:
10 - node_modules
11
12 before_install:
13 - npm config set spin false
14 - npm install -g bower
15 - bower --version
16 - npm install phantomjs-prebuilt
17 - node_modules/phantomjs-prebuilt/bin/phantomjs --version
18
19 install:
20 - npm install
21 - bower install
22
23 script:
24 - npm test
1 {
2 "ignore_dirs": ["tmp", "dist"]
3 }
1 Hello, test
...\ No newline at end of file ...\ No newline at end of file
1 # Ebookcoin
2
3 This README outlines the details of collaborating on this Ember application.
4 A short introduction of this app could easily go here.
5
6 ## Prerequisites
7
8 You will need the following things properly installed on your computer.
9
10 * [Git](http://git-scm.com/)
11 * [Node.js](http://nodejs.org/) (with NPM)
12 * [Bower](http://bower.io/)
13 * [Ember CLI](http://ember-cli.com/)
14 * [PhantomJS](http://phantomjs.org/)
15
16 ## Installation
17
18 * `git clone <repository-url>` this repository
19 * `cd ebookcoin`
20 * `npm install`
21 * `bower install`
22
23 ## Running / Development
24
25 * `ember serve`
26 * Visit your app at [http://localhost:4200](http://localhost:4200).
27
28 ### Code Generators
29
30 Make use of the many generators for code, try `ember help generate` for more details
31
32 ### Running Tests
33
34 * `ember test`
35 * `ember test --server`
36
37 ### Building
38
39 * `ember build` (development)
40 * `ember build --environment production` (production)
41
42 ### Deploying
43
44 Specify what it takes to deploy your app.
45
46 ## Further Reading / Useful Links
47
48 * [ember.js](http://emberjs.com/)
49 * [ember-cli](http://ember-cli.com/)
50 * Development Browser Extensions
51 * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
52 * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)
53
......
1 import Ember from 'ember';
2 import Resolver from './resolver';
3 import loadInitializers from 'ember-load-initializers';
4 import config from './config/environment';
5
6 let App;
7
8 Ember.MODEL_FACTORY_INJECTIONS = true;
9
10 App = Ember.Application.extend({
11 modulePrefix: config.modulePrefix,
12 podModulePrefix: config.podModulePrefix,
13 Resolver
14 });
15
16 loadInitializers(App, config.modulePrefix);
17
18 export default App;
File mode changed
1 import Ember from 'ember';
2
3 export default Ember.Component.extend({
4 i18n: Ember.inject.service(),
5 classNames: ['language-selector'],
6
7 locales: Ember.computed('i18n.locale', 'i18n.locales', function() {
8 const i18n = this.get('i18n');
9 return this.get('i18n.locales').map(function(loc) {
10 return {
11 id: loc,
12 text: i18n.t('site.language.' + loc)
13 };
14 });
15 }),
16
17 actions: {
18 setLocale() {
19 this.set('i18n.locale', this.$('select').val());
20 }
21 }
22 });
File mode changed
File mode changed
1 import Ember from 'ember';
2
3 export function isEqual([leftSide, rightSide]) {
4 return leftSide === rightSide;
5 }
6
7 export default Ember.Helper.helper(isEqual);
8
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <title>Ebookcoin</title>
7 <meta name="description" content="Ebookcoin - Decentralized Application Platform">
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9
10 {{content-for "head"}}
11
12 <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
13 <link rel="stylesheet" href="{{rootURL}}assets/ebookcoin.css">
14
15 {{content-for "head-footer"}}
16 </head>
17 <body>
18 {{content-for "body"}}
19
20 <script src="{{rootURL}}assets/vendor.js"></script>
21 <script src="{{rootURL}}assets/ebookcoin.js"></script>
22
23 {{content-for "body-footer"}}
24 </body>
25 </html>
1 // Ember-I18n includes configuration for common locales. Most users
2 // can safely delete this file. Use it if you need to override behavior
3 // for a locale or define behavior for a locale that Ember-I18n
4 // doesn't know about.
5 export default {
6 // rtl: [true|FALSE],
7 //
8 // pluralForm: function(count) {
9 // if (count === 0) { return 'zero'; }
10 // if (count === 1) { return 'one'; }
11 // if (count === 2) { return 'two'; }
12 // if (count < 5) { return 'few'; }
13 // if (count >= 5) { return 'many'; }
14 // return 'other';
15 // }
16 };
1 export default {
2 site: {
3 title: "A new driving force for human creation!",
4 language: {
5 en: "English",
6 "en-us": "English American",
7 "zh-cn": "中文"
8 }
9 },
10
11 passphrase: {
12 newAccount: "NEW ACCOUNT",
13 yourPassphrase: "Your Passphrase",
14 signIn: "SIGN IN",
15 remember: "Remember during this session",
16 errorMessage: "Passphrase must contain less than 100 characters."
17 }
18 };
...\ No newline at end of file ...\ No newline at end of file
1 // Ember-I18n includes configuration for common locales. Most users
2 // can safely delete this file. Use it if you need to override behavior
3 // for a locale or define behavior for a locale that Ember-I18n
4 // doesn't know about.
5 export default {
6 // rtl: [true|FALSE],
7 //
8 // pluralForm: function(count) {
9 // if (count === 0) { return 'zero'; }
10 // if (count === 1) { return 'one'; }
11 // if (count === 2) { return 'two'; }
12 // if (count < 5) { return 'few'; }
13 // if (count >= 5) { return 'many'; }
14 // return 'other';
15 // }
16 };
1 export default {
2 site: {
3 title: "A new driving force for human creation!",
4 language: {
5 en: "English",
6 "en-us": "English American",
7 "zh-cn": "中文"
8 }
9 },
10 passphrase: {
11 newAccount: "新帐户",
12 yourPassphrase: "您的主密码",
13 signIn: "登陆",
14 remember: "保持Session状态",
15 errorMessage: "主密码必须小于100个字符"
16 }
17 };
...\ No newline at end of file ...\ No newline at end of file
File mode changed
1 import Resolver from 'ember-resolver';
2
3 export default Resolver;
1 import Ember from 'ember';
2 import config from './config/environment';
3
4 const Router = Ember.Router.extend({
5 location: config.locationType,
6 rootURL: config.rootURL
7 });
8
9 Router.map(function() {
10 this.route('passphrase', { path: '/' });
11 this.route('account');
12 });
13
14 export default Router;
File mode changed
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 });
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 });
1 #account {
2 #paddingFix {
3 .button {
4 margin: 0px;
5 padding: 15px 13px 13px;
6
7 &.label {
8 width: 235px;
9 white-space: nowrap;
10 overflow: hidden;
11 text-overflow: ellipsis;
12 &.forging {
13 width: inherit;
14 }
15 }
16 }
17 }
18
19 .raw-buttons {
20 #buttons {
21 display: inline-block;
22
23 .container {
24 display: inline-block;
25 }
26 }
27 .send, .free {
28 width: 141px;
29 }
30 }
31
32 #transactions {
33 margin-bottom: 20px;
34 }
35
36 }
37
38 .account-block {
39 color: @white;
40 font-size: @content-text;
41 background-color: @gray3;
42 /* box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.8) inset;
43 -webkit-box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.8) inset;*/
44 padding: 17px 8px;
45 .icon {
46 width: 64px;
47 height: 64px;
48 border-radius: 50%;
49 overflow: hidden;
50 margin: 0 auto 20px;
51 }
52 .name {
53 letter-spacing: 0.5px;
54 padding: 5px 0;
55 text-align: center;
56 display: block;
57 margin: 0 auto;
58 &.name-add {
59 cursor: pointer;
60 }
61 }
62 .address {
63 display: block;
64 margin: 0 auto;
65 padding: 5px 0 0;
66 text-align: center;
67 }
68 }
1
2 /*@import "materialize";*/
3 /*@font-face {
4 font-family: "Material Icons";
5 font-style: normal;
6 font-weight: 400;
7 src: url("/font/material-google/MaterialIcons-Regular.eot"); /* For IE6-8
8 src: local("Material Icons"),
9 local("MaterialIcons-Regular"),
10 url("/font/material-google/MaterialIcons-Regular.woff2") format("woff2"),
11 url("/font/material-google/MaterialIcons-Regular.woff") format("woff"),
12 url("/font/material-google/MaterialIcons-Regular.ttf") format("truetype");
13 }
14 */
15
16 /*JOINT STYLES*/
17 /* html5doctor.com Reset v1.6.1 - http://cssreset.com */
18 html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
19 margin: 0;
20 padding: 0;
21 border: 0;
22 outline: 0;
23 font-size: 14px;
24 vertical-align: baseline;
25 background: transparent
26 }
27
28 body {
29 line-height: 1;
30 background-color: @background;
31 }
32 body>.ember-view{
33 height: 100%;
34 }
35
36 article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
37 display: block
38 }
39
40 nav ul {
41 list-style: none
42 }
43
44 blockquote, q {
45 quotes: none
46 }
47
48 blockquote:before, blockquote:after, q:before, q:after {
49 content: none
50 }
51
52 a {
53 margin: 0;
54 padding: 0;
55 font-size: 100%;
56 vertical-align: baseline;
57 background: transparent
58 }
59
60 ins {
61 background-color: #ff9;
62 color: #000;
63 text-decoration: none
64 }
65
66 mark {
67 background-color: #ff9;
68 color: #000;
69 font-style: italic;
70 font-weight: bold
71 }
72
73 del {
74 text-decoration: line-through
75 }
76
77 abbr[title], dfn[title] {
78 border-bottom: 1px dotted;
79 cursor: help
80 }
81
82 table {
83 border-collapse: collapse;
84 border-spacing: 0
85 }
86
87 hr {
88 display: block;
89 height: 1px;
90 border: 0;
91 border-top: 1px solid #ccc;
92 margin: 1em 0;
93 padding: 0
94 }
95
96 input, select {
97 vertical-align: middle
98 }
99
100 html, body {
101 height: 100%;
102 position: relative;
103 font-family: "Roboto", sans-serif;
104 overflow-x: hidden;
105 }
106
107 .height {
108 position: relative;
109 min-height: 100% !important;
110 height: 100%;
111 }
112
113 .container-fluid {
114 position: relative;
115 }
116
117 .partials-rules {
118 position: absolute;
119 top: 26px;
120 left: 26px;
121 right: 26px;
122 }
123
124 h1 {
125 font-size: 20px;
126 font-weight: bold;
127 }
128
129 h2.account-id {
130 font-size: 15px;
131 font-weight: bold;
132 color: #9b9d9e;
133 float: right;
134 margin-top: 8px;
135
136 a {
137 color: #9b9d9e;
138 }
139 }
140
141 h3.start-red {
142 font-size: 14px;
143 font-weight: bold;
144 color: #b25b5b;
145 display: inline-block;
146 }
147
148 .red {
149 color: #b25b5b;
150 }
151
152 .green {
153 color: #61b26e;
154 }
155
156 h3.start-green {
157 color: #61b26e;
158 font-size: 14px;
159 font-weight: bold;
160 display: inline-block;
161 }
162
163 .raw-buttons {
164 min-width: 986px;
165 height: 56px;
166 margin-top: 26px;
167 margin-bottom: 22px;
168 }
169
170 .button {
171 border: none;
172 margin: 0 0 0 26px;
173 -moz-box-sizing: border-box;
174 -ms-box-sizing: border-box;
175 -webkit-box-sizing: border-box;
176 box-sizing: border-box;
177 padding: 15px 16px 13px 16px;
178 background-color: #fff;
179 color: #9b9d9e;
180 -webkit-border-radius: 3px;
181 -moz-border-radius: 3px;
182 border-radius: 3px;
183 -webkit-box-shadow: 0px 3px 0px #d4d5d6;
184 -moz-box-shadow: 0px 3px 0px #d4d5d6;
185 box-shadow: 0px 3px 0px #d4d5d6;
186 cursor: pointer;
187 font-size: 14px;
188 font-weight: bold;
189 position: relative;
190
191 &:first-child {
192 margin: 0;
193 }
194
195 &:focus {
196 outline: none;
197 }
198 &:active {
199 top: 3px;
200 -webkit-box-shadow: 0px 0px 0px #d4d5d6;
201 -moz-box-shadow: 0px 0px 0px #d4d5d6;
202 box-shadow: 0px 0px 0px #d4d5d6;
203 }
204 &.green {
205 background-color: #61b26e;
206 color: #fff;
207 -webkit-box-shadow: 0px 3px 0px #50955c;
208 -moz-box-shadow: 0px 3px 0px #50955c;
209 box-shadow: 0px 3px 0px #50955c;
210
211 &:active {
212 top: 3px;
213 -webkit-box-shadow: 0px 0px 0px #50955c;
214 -moz-box-shadow: 0px 0px 0px #50955c;
215 box-shadow: 0px 0px 0px #50955c;
216 }
217
218 &:disabled {
219 top: 0px;
220 background-color: rgba(97, 178, 110, 0.3);
221 -webkit-box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
222 -moz-box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
223 box-shadow: 0px 3px 0px rgba(80, 149, 92, 0.3);
224 }
225 }
226
227 &.red {
228 background-color: #ED4A4A;
229 color: #fff;
230 -webkit-box-shadow: 0px 3px 0px #E67A7A;
231 -moz-box-shadow: 0px 3px 0px #E67A7A;
232 box-shadow: 0px 3px 0px #E67A7A;
233
234 &:active {
235 top: 3px;
236 -webkit-box-shadow: 0px 0px 0px #E67A7A;
237 -moz-box-shadow: 0px 0px 0px #E67A7A;
238 box-shadow: 0px 0px 0px #E67A7A;
239 }
240
241 &:disabled {
242 top: 0px;
243 background-color: rgba(237, 74, 74, 0.3);
244 -webkit-box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
245 -moz-box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
246 box-shadow: 0px 3px 0px rgba(230, 122, 122, 0.3);
247 }
248 }
249 &.static {
250 cursor: default;
251 &:active {
252 top: 0;
253 -webkit-box-shadow: 0px 3px 0px #d4d5d6;
254 -moz-box-shadow: 0px 3px 0px #d4d5d6;
255 box-shadow: 0px 3px 0px #d4d5d6;
256 }
257 }
258
259 &.small {
260 font-size: 13px;
261 padding: 7px;
262 }
263
264 span {
265 color: #4f5051;
266 }
267 }
268
269 .row {
270 height: 31px;
271 }
272
273 table {
274 margin-top: 25px;
275 background-color: #fff;
276 -webkit-border-radius: 3px;
277 -moz-border-radius: 3px;
278 border-radius: 3px;
279 -webkit-box-shadow: 0px 1px 0px #dbdcdd;
280 -moz-box-shadow: 0px 1px 0px #dbdcdd;
281 box-shadow: 0 1px 0 #dbdcdd;
282
283 th {
284 color: #9b9d9e;
285 vertical-align: middle;
286 font-weight: normal;
287 font-size: 14px;
288 border-bottom: 1px solid #ebeced;
289 }
290
291 td {
292 color: #9b9d9e;
293 vertical-align: middle;
294 font-weight: bold;
295 text-align: center;
296 font-size: 15px;
297 }
298
299 tr {
300 &.green td {
301 color: #61b26e;
302 }
303 }
304 }
305
306 .pointer {
307 cursor: pointer;
308 text-decoration: underline;
309
310 &:hover {
311 color: black;
312 }
313 }
314
315 .form {
316 display: block;
317 margin-top: 50px;
318
319 .input-text {
320 padding: 5px;
321 border-radius: 5px;
322 font-size: 14px;
323 color: #777;
324 width: 100%;
325 outline: 0;
326 margin-bottom: 10px;
327 -moz-box-sizing: border-box;
328 -ms-box-sizing: border-box;
329 -webkit-box-sizing: border-box;
330 box-sizing: border-box;
331
332 &:active {
333 outline: 0;
334 }
335 }
336
337 .button {
338 margin-top: 20px;
339 margin-left: 5px;
340 display: inline-block;
341 }
342 }
343
344 label {
345 font-size: 14px;
346 }
347
348 .pull-left {
349 float: left;
350 }
351
352 .pull-right {
353 float: right;
354 }
355
356 p.description {
357 font-size: 14px;
358 clear: both;
359 margin-top: 40px;
360 line-height: 1.3;
361 }
362
363 .instruction {
364 font-size: 14px;
365 width: 100%;
366 position: relative;
367 line-height: 1.3;
368 margin-top: 5px;
369 list-style-type: circle;
370
371 ul {
372 width: 100%;
373 font-size: 14px;
374 line-height: 1.3;
375
376 li {
377 display: block;
378 word-wrap: break-word;
379 width: 100%;
380 margin-left: 15px;
381 margin-top: 2px;
382 }
383 }
384 }
385
386 .forging-link {
387 color: #4f5051;
388 position: absolute;
389 top: 20px;
390 right: 20px;
391 font-size: 13px;
392 font-weight: bold;
393
394 a {
395 text-decoration: none;
396 color: #4f5051;
397
398 &.disabled {
399 color: #4f5051;
400 }
401 }
402 }
403
404 .syncLabel {
405 position: absolute;;
406 bottom: 10px;
407 right: 10px;
408 width: 230px;
409 line-height: 1.25;
410 background: rgba(0, 0, 0, 0.2);
411 font-size: 13px;
412 padding: 7px;
413 border-radius: 7px;
414 cursor: pointer;
415 }
416
417 #message-error {
418 display: block;
419 width: 492px;
420 line-height: 1.6;
421 margin: 15px auto 0 auto;
422 font-size: 13px;
423 text-align: center;
424 color: #F24A65;
425 }
426
427 .no-select {
428 -webkit-user-select: none; /* Chrome/Safari */
429 -moz-user-select: none; /* Firefox */
430 -ms-user-select: none; /* IE10+ */
431 /* Rules below not implemented in browsers yet */
432 -o-user-select: none;
433 user-select: none;
434 }
435
436 input:-webkit-autofill {
437 -webkit-box-shadow: 0 0 0px 1000px white inset;
438 }
439
440 /*END OF JOINT STYLES*/
441 @import "pass";
442 @import "language";
443 @import "images";
444 @import "variables";
445 @import "elements";
446 @import "material";
447 @import "buttons";
448 /*@import "sidebar";
449 @import "panels";
450 @import "index";
451 @import "account";
452 @import "blockchain";
453 @import "mining";
454
455 @import "modal";
456 @import "block-modal";
457 @import "forging";
458 @import "delegates";
459 @import "ngtable";
460 @import "media";
461 @import "nav";
462 @import "page";
463
464 @import "grid";
465
466 @import "inputs";
467 @import "mixins";
468
469 @import "images";
470 @import "empty";
471 @import "mediaqueries";
472 @import "pie-chart";
473 @import "settings";
474 @import "dapps";
475 @import "multi";
476 */
1 .btn {
2 display: inline-block;
3 padding: 0 14px;
4 font-size: 14px;
5 font-weight: normal;
6 line-height: 36px;
7 border: none;
8 border-radius: @border-radius;
9
10 &.btn-blue-nav {
11 background-color: @blue !important;
12 &:hover, &:focus, &.focus {
13 color: @white
14 }
15 }
16
17 &.btn-blue {
18 background-color: @blue !important;
19 &[disabled]{
20 -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
21 -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
22 box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
23 }
24 &:hover, &:focus, &.focus {
25 color: @white
26 }
27 }
28
29 &.btn-sky-blue {
30 background-color: @sky-blue !important;
31 &:hover, &:focus, &.focus {
32 color: @white
33 }
34 }
35
36 &.btn-dark-meant {
37 background-color: transparent;
38 box-shadow: none;
39 color: #212121;
40 &:hover, &:focus, &.focus {
41 background-color: @dark-meant;
42 box-shadow: none;
43 color: @white;
44 }
45 }
46
47 &.btn-white {
48 background-color: @white !important;
49 color: @black;
50 &:hover, &:focus, &.focus {
51 color: @black
52 }
53 }
54 &.btn-marging {
55 margin-right: 10px;
56 }
57 }
58
59 .buttons-panel {
60 margin-top: 40px;
61 }
1 ::-ms-clear, ::-ms-reveal {
2 display: none;
3 }
4
5 span.badge.tag-badge {
6 position: relative;
7 display: inline-block;
8 float: left;
9 left: 0;
10 margin: 0 10px 10px 0;
11 border-radius: 3px;
12 font-weight: 400;
13 color: white;
14 background-color: #039be5 !important;
15 }
16
17 .app-chekbox {
18 display: block;
19 width: 18px;
20 height: 18px;
21 margin: 0 -20px 0 20px;
22 background-image: url('/images/sprites/iconset.png');
23 background-position: 0 -20px;
24 &.checked {
25 background-position: -18px -20px;
26 }
27 &.unchecked {
28 background-position: -36px -20px;
29 }
30 }
31
32 input[type='range']::-webkit-slider-thumb {
33 background: @blue;
34 }
35
36 input[type='range']::-moz-slider-thumb {
37 background: @blue;
38 }
39
40 input[type='range']::-ms-slider-thumb {
41 background: @blue;
42 }
43
44 .input-group-addon {
45 &.search {
46 &:hover {
47 cursor: auto;
48 }
49 &:before {
50 width: 20px;
51 height: 20px;
52 content: '';
53 display: block;
54 background-image: url('/images/sprites/iconset.png');
55 background-repeat: no-repeat;
56 background-position: -36px -48px;
57 }
58 }
59 &.clear {
60 cursor: pointer;
61 &:before {
62 width: 20px;
63 height: 20px;
64 content: '';
65 display: block;
66 background-image: url('/images/sprites/iconset.png');
67 background-repeat: no-repeat;
68
69 background-position: -57px -48px;
70 }
71 }
72 }
73
74 .send-info-text {
75
76 position: relative;
77 display: block;
78 padding: 30px 84px;
79 line-height: @content-text + 2;
80 font-size: @content-text;
81 color: @grey-text;
82 &:before {
83 position: absolute;
84 content: '';
85 display: inline-block;
86 width: 20px;
87 height: 20px;
88 background-image: url('/images/sprites/iconset.png');
89 background-position: -77px -48px;
90 left: 40px;
91 top: 34px;
92 }
93 }
94
95 .pass-error {
96 font-size: 12px;
97 color: #f34235;
98 display: block;
99 margin-top: -8px;
100 margin-bottom: 20px;
101 position: relative;
102 &:after {
103 content: '';
104 height: 15px;
105 width: 17px;
106 display: block;
107 position: absolute;
108 background-image: url('/images/sprites/iconset.png');
109 background-position: 0 -69px;
110 top: 0;
111 right: 0;
112 }
113 }
114
115 .error-text {
116 font-size: @small-text;
117 color: @error-red;
118 display: block;
119 padding-top: 40px;
120 position: relative;
121 &:after {
122 content: '';
123 height: 15px;
124 width: 17px;
125 display: block;
126 position: absolute;
127 background-image: url('/images/sprites/iconset.png');
128 background-position: 0 -69px;
129 top: 40px;
130 right: 0;
131
132 }
133 }
134
135 .input-group {
136 &.send-ebookcoin {
137 width: 100%;
138 padding: 30px 40px 50px;
139 .form-control {
140 border-radius: 0;
141 border-top-width: 0px;
142 border-left-style: none;
143 border-right-style: none;
144 -webkit-box-shadow: none;
145 box-shadow: none;
146 -webkit-transition: none;
147 transition: none;
148 cursor: auto;
149 background-color: rgb(250, 250, 250);
150 &.error {
151 border-bottom: 2px solid @error-red;
152 }
153 &:focus {
154 border-bottom: 1px solid @border-grey;
155 &.error {
156 border-bottom: 2px solid @error-red;
157 }
158 }
159 }
160 }
161 &.app-addon {
162 padding: 15px 20px;
163 background-color: @white;
164 margin: -1px;
165 border-radius: 0;
166 box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
167 -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
168 -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
169 border: 1px solid @border-grey;
170 & .input-group-addon {
171 background: #fff;
172 border: none;
173 box-shadow: none;
174 border-radius: 0;
175
176 }
177 & .form-control {
178 &:-moz-placeholder, &::-webkit-input-placeholder, ::-moz-placeholder, &:-ms-input-placeholder {
179 color: @border-grey;
180 opacity: 1;
181 }
182 :focus {
183 border: 0;
184 border-bottom:0;
185 }
186 border-bottom-style: hidden;
187 box-shadow: none;
188 padding: 0 14px;
189 border: 0;
190 }
191 }
192 }
193
194 .app-addon-error {
195 font-size: 12px;
196 color: #f34235;
197 display: block;
198 padding: 10px 36px;
199 position: relative;
200 background-color: #fafafa;
201 &:after {
202 content: '';
203 height: 15px;
204 width: 17px;
205 display: block;
206 position: absolute;
207 background-image: url('/images/sprites/iconset.png');
208 background-position: 0 -69px;
209 top: 8px;
210 right: 34px;
211 }
212 }
213
214 .nav.modal-buttons {
215 padding-right: 20px;
216 & > li {
217 padding: 20px 0;
218 display: inline-block;
219 & > a {
220 font-size: @content-text;
221 text-transform: uppercase;
222 color: @black;
223 font-weight: 500;
224 &:hover, &:active, &:focus {
225 background-color: @grey;
226 color: @black;
227 }
228 &.blue-link {
229 color: @blue;
230 &:hover, &:active, &:focus {
231 background-color: @grey;
232 color: @orange;
233 }
234 }
235 &.green-link {
236 color: @dark-meant;
237 &:hover, &:active, &:focus {
238 background-color: @grey;
239 color: @dark-meant;
240 }
241 }
242 &.red-link {
243 color: @dark-red;
244 &:hover, &:active, &:focus {
245 background-color: @grey;
246 color: @dark-red;
247 }
248 }
249 }
250 }
251 }
252
253 .nav.nav-info {
254 & > li {
255 padding: 0;
256 display: inline-block;
257 &.list-delegate {
258 position: relative;
259 &.open {
260 .list-group {
261 display: block;
262 }
263 }
264 .list-group {
265 padding: 0;
266 position: absolute;
267 display: none;
268 transition: .2s;
269 z-index: 99999;
270 right: 10px;
271 top: 45px;
272 background-color: @grey;
273 border-radius: @border-radius;
274 border: 1px solid @border-grey;
275 -webkit-box-shadow: 0 1px 0 #dbdcdd;
276 -moz-box-shadow: 0 1px 0 #dbdcdd;
277 box-shadow: 0 1px 0 #dbdcdd;
278 min-width: 230px;
279 &.empty {
280 border: none;
281 -webkit-box-shadow: none;
282 -moz-box-shadow: none;
283 box-shadow: none;
284 min-width: 0;
285 }
286 .list-group-item {
287 line-height: normal;
288 font-size: @content-text;
289 padding: 20px;
290 background-color: @grey;
291 border: none;
292 cursor: pointer;
293 position: relative;
294 border-radius: @border-radius;
295 &:hover {
296 background-color: @light-grey;
297 &:after {
298 background-position: 0 -51px;
299 }
300 }
301
302 &:after {
303 content: '';
304 display: block;
305 position: absolute;
306 height: 18px;
307 width: 18px;
308 background-image: url('/images/sprites/iconset.png');
309 background-repeat: no-repeat;
310 background-position: -18px -51px;
311 top: 18px;
312 right: 20px;
313 }
314 }
315 }
316 }
317
318 & > a {
319 font-weight: 500;
320 font-size: @content-text;
321 padding: 0 0 0 28px;
322 text-transform: uppercase;
323 color: @black;
324 i {
325 font-size: 18px;
326 }
327 &:hover, &:active, &:focus {
328 background-color: @white;
329 color: @black;
330 }
331 &.red-link {
332 color: @dark-red;
333 &:hover, &:active, &:focus {
334 color: @dark-red
335 }
336 }
337 &.green-link {
338 color: @dark-meant;
339 &:hover, &:active, &:focus {
340 color: @dark-meant;
341 }
342 }
343 &.red-link {
344 color: @dark-red;
345 &:hover, &:active, &:focus {
346 color: @dark-red;
347 }
348 }
349 }
350 }
351 }
352
353 a {
354
355 .vote-icon {
356 display: inline-block;
357 position: absolute;
358 height: 13px;
359 width: 14px;
360 background-image: url('/images/sprites/iconset.png');
361 background-repeat: no-repeat;
362 background-position: 0 -38px;
363 top: 19px;
364 left: 3px;
365 }
366 .selection-icon {
367 display: inline-block;
368 position: absolute;
369 height: 10px;
370 width: 14px;
371 background-image: url('/images/sprites/iconset.png');
372 background-repeat: no-repeat;
373 background-position: -54px -28px;
374 top: 20px;
375 left: 3px;
376 }
377 .cancel-icon {
378 display: inline-block;
379 position: absolute;
380 height: 14px;
381 width: 14px;
382 background-image: url('/images/sprites/iconset.png');
383 background-repeat: no-repeat;
384 background-position: -54px -14px;
385 top: 18px;
386 left: 3px;
387 }
388 &:hover {
389 .vote-icon {
390 background-position: -14px -38px;
391 }
392 .selection-icon {
393 background-position: -54px -38px;
394 }
395 .cancel-icon {
396 background-position: -71px -34px;
397 }
398 }
399 }
400
401 .nav.nav-vote {
402 padding-left: 26px;
403 & > li {
404 background-color: @white;
405
406 display: inline-block;
407 & > a {
408 font-size: @content-text;
409 padding: 18px 28px 18px 0;
410 text-transform: uppercase;
411 font-weight: 500;
412 color: @black;
413 &.green-link {
414 color: @dark-meant;
415 &:hover, &:active, &:focus {
416 color: @dark-meant;
417 }
418 }
419 &.red-link {
420 color: @dark-red;
421 &:hover, &:active, &:focus {
422 color: @dark-red;
423 }
424 }
425 i {
426 font-size: 20px;
427 line-height: 13px
428 }
429 &:hover, &:active, &:focus {
430 background-color: @white;
431 color: @black;
432
433 }
434 }
435 }
436 }
437
438 .nav.nav-actions {
439 background-color: @white;
440 & > li {
441 & > a {
442 i {
443 opacity: 0.87;
444 display: inline-block;
445 margin-right: 8px;
446 }
447 span {
448 display: inline-block;
449 }
450 padding: 18px 5px;
451 font-size: 14px;
452 font-weight: 500;
453 text-transform: uppercase;
454 color: @black;
455 &.blue-link {
456 color: @blue;
457 &:hover, &:active, &:focus {
458 color: @blue;
459 background-color: @white;
460 }
461 }
462 &.green-link {
463 color: @dark-meant;
464 &:hover, &:active, &:focus {
465 color: @dark-meant;
466 background-color: @white;
467 }
468 }
469 &.red-link {
470 color: @dark-red;
471 &:hover, &:active, &:focus {
472 background-color: @white;
473 color: @dark-red;
474 }
475 }
476 &:hover, &:active, &:focus {
477 color: @black;
478 background-color: @white;
479 }
480 }
481 }
482 }
483
484 .amount {
485 display: inline-block;
486 height: 14px;
487 width: 14px;
488 background-image: url('/images/sprites/iconset.png');
489 background-repeat: no-repeat;
490 background-position: -28px 0;
491 margin-right: 8px;
492 &.plus {
493 background-position: -42px 0;
494 }
495 }
496
497 .dropdown-more-group {
498 cursor: pointer;
499 display: block;
500 height: 46px;
501 width: 32px;
502 margin: -18px auto;
503 position: relative;
504 padding: 6px 0 0;
505 .zeroclipboard-is-hover {
506 color: @dark-meant !important;
507 }
508 .list-group {
509 display: none;
510 }
511 &:hover {
512 .table-more-actions {
513 background-color: @light-grey;
514 }
515 }
516 &.open {
517 .table-more-actions {
518 background-color: @light-grey;
519 }
520 .list-group {
521 -webkit-box-shadow: 4px 4px 6px 0px rgba(0, 0, 0, 0.25);
522 -moz-box-shadow: 4px 4px 6px 0px rgba(0, 0, 0, 0.25);
523 box-shadow: 4px 4px 6px 0px rgba(0, 0, 0, 0.25);
524 border-color: @border-grey;
525 border-radius: @border-radius;
526 padding: 10px 0;
527 min-width: 150px;
528 display: block;
529 position: absolute;
530 right: 6px;
531 top: 42px;
532 z-index: 99999;
533 background-color: @grey;
534 .list-group-item {
535 padding: 0;
536 background: none;
537 border: none;
538 &.bordered {
539 border-bottom: 1px solid @border-grey;
540 }
541 a {
542 display: block;
543 padding: 10px 16px;
544 width: 100%;;
545 color: @black;
546 font-size: @content-text;
547 text-decoration: none;
548 &:hover, &:active, &:focus {
549 color: @dark-meant;
550 text-decoration: none;
551 }
552 }
553 }
554 }
555 }
556 .divider-wrap {
557 padding: 8px 0;
558 }
559 .table-more-actions {
560 display: block;
561 width: 32px;
562 height: 32px;
563 border-radius: 50%;
564 padding: 14px 8px;
565 position: relative;
566 .dots {
567 display: block;
568 width: 16px;
569 height: 4px;
570 background-image: url('/images/sprites/iconset.png');
571 background-position: -28px -15px;
572 }
573 }
574 }
575
576 .generate {
577 //margin-top: -10px;
578 margin-bottom: 20px;
579 cursor: pointer;
580 position: relative;
581 &:before {
582 position: absolute;
583 display: block;
584 margin-right: 10px;
585 top: -2px;
586 left: -26px;
587 display: block;
588 content: '';
589 width: 16px;
590 height: 16px;
591 background-image: url('/images/sprites/iconset.png');
592 background-position: -0 -84px;
593 }
594 span {
595 opacity: 0.54;
596 }
597 }
598
599 .notifications {
600 height: 36px;
601 width: 36px;
602 background-color: #263238;
603 border-radius: 50%;
604 position: relative;
605 > span {
606 color: white;
607 text-align: center;
608 width: 100%;
609 font-size: 1rem;
610 line-height: 36px;
611 cursor: pointer;
612 -webkit-user-select: none;
613 -moz-user-select: none;
614 -ms-user-select: none;
615 -o-user-select: none;
616 user-select: none;
617 opacity: @font-opacity
618 }
619 &.open {
620 & > .dropdown-menu {
621 opacity: 1;
622 display: block;
623 z-index: 1000;
624 max-height: 200px;
625 -webkit-box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
626 box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
627
628 }
629 }
630 & > .dropdown-menu {
631 opacity: 0;
632 overflow: hidden;
633 max-height: 0;
634 -webkit-transition: max-height 0.2s;
635 -moz-transition: max-height 0.2s;
636 transition: 0.5s;
637 position: absolute;
638 z-index: -1;
639 display: block;
640 float: left;
641 padding: 15px 0;
642 margin: 2px 0 0;
643 font-size: 14px;
644 text-align: left;
645 list-style: none;
646 -webkit-background-clip: padding-box;
647 background-clip: padding-box;
648 border: none;
649 border-radius: @border-radius;
650 -webkit-box-shadow: none;
651 box-shadow: none;
652 top: 40px;
653 right: 0;
654 left: auto;
655 min-width: 256px;
656 background-color: #fafafa;
657 & > li {
658 a {
659 font-size: 1.1rem;
660 padding: 10px 20px;
661 color: @black;
662 opacity: @font-opacity;
663 & > span.badge {
664 display: inline-block;
665 min-width: 0;
666 min-height: 0;
667 float: right;
668 width: auto;
669 height: auto;
670 line-height: inherit;
671 border-radius: 50%;
672 padding: 3px 9px;
673 font-size: inherit;
674 font-weight: inherit;
675 color: white;
676 margin-top: -3px;
677 &.meent {
678 background-color: @dark-meant;
679 }
680 &.blue {
681 background-color: @dark-blue;
682 }
683 &.cloud {
684 background-color: @cloud;
685 }
686 &.violet {
687 background-color: @violet;
688 }
689 }
690 &:hover, &:active, &.active {
691 background-color: @background;
692 }
693 }
694 }
695 }
696 }
697
698 .more-down {
699 position: relative;
700 margin-left: 20px;
701 height: 35px;
702 width: 35px;
703 border-radius: 50%;
704 line-height: 35px;
705 text-align: center;
706 & > .dropdown-menu {
707 opacity: 0;
708 overflow: hidden;
709 max-height: 0;
710 -webkit-transition: max-height 0.2s;
711 -moz-transition: max-height 0.2s;
712 transition: 0.5s;
713 position: absolute;
714 z-index: -1;
715 display: block;
716 float: left;
717 padding: 15px 0;
718 margin: 2px 0 0;
719 font-size: 14px;
720 text-align: left;
721 list-style: none;
722 -webkit-background-clip: padding-box;
723 background-clip: padding-box;
724 border: none;
725 border-radius: @border-radius;
726 -webkit-box-shadow: none;
727 box-shadow: none;
728 top: 40px;
729 right: 0;
730 left: auto;
731 min-width: 124px;
732 background-color: #fafafa;
733 & > li {
734 a {
735 font-size: 1.1rem;
736 padding: 10px 20px;
737 color: @black;
738 opacity: @font-opacity;
739 &:hover, &:active, &.active {
740 background-color: @background;
741 }
742 }
743 }
744 }
745 &.open {
746 background-color: rgba(0, 0, 0, .12);
747 & > .dropdown-menu {
748 z-index: 1000;
749 opacity: 1;
750 display: block;
751 max-height: 200px;
752 -webkit-box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
753 box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
754
755 }
756 }
757
758 i {
759 -webkit-user-select: none;
760 -moz-user-select: none;
761 -ms-user-select: none;
762 -o-user-select: none;
763 user-select: none;
764 cursor: pointer;
765 font-size: 1.6rem;
766 opacity: @font-opacity
767 }
768 }
769
770 .more-down-table {
771 position: relative;
772 margin-left: 20px;
773 height: 35px;
774 width: 35px;
775 border-radius: 50%;
776 line-height: 35px;
777 text-align: center;
778 & > .dropdown-menu {
779 opacity: 0;
780 overflow: hidden;
781 max-height: 0;
782 -webkit-transition: max-height 0.2s;
783 -moz-transition: max-height 0.2s;
784 transition: 0.5s;
785 position: absolute;
786 z-index: -1;
787 display: block;
788 float: left;
789 padding: 15px 20px;
790 margin: 2px 0 0;
791 font-size: 14px;
792 text-align: left;
793 list-style: none;
794 -webkit-background-clip: padding-box;
795 background-clip: padding-box;
796 border: none;
797 border-radius: @border-radius;
798 -webkit-box-shadow: none;
799 box-shadow: none;
800 top: 40px;
801 right: 0;
802 left: auto;
803 min-width: 226px;
804 background-color: #fafafa;
805 & > p {
806 padding: 5px 0;
807 }
808 & > li {
809 a {
810 font-size: 1.1rem;
811 padding: 10px 20px;
812 color: @black;
813 opacity: @font-opacity;
814 &:hover, &:active, &.active {
815 background-color: @background;
816 }
817 }
818 }
819 }
820 &.open {
821 background-color: rgba(0, 0, 0, .12);
822 & > .dropdown-menu {
823 z-index: 1000;
824 opacity: 1;
825 display: block;
826 max-height: 200px;
827 -webkit-box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
828 box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.25);
829
830 }
831 }
832
833 i {
834 -webkit-user-select: none;
835 -moz-user-select: none;
836 -ms-user-select: none;
837 -o-user-select: none;
838 user-select: none;
839 cursor: pointer;
840 font-size: 1.6rem;
841 opacity: @font-opacity
842 }
843 }
844
845 .media {
846 &.user {
847 .media-left {
848 img.media-object {
849 width: 64px;
850 height: 64px;
851 }
852 }
853
854 .media-body {
855 padding-left: 20px;
856 font-size: 16px;
857 }
858 h2.media-heading {
859 font-size: 20px;
860 font-weight: 500;
861 display: block;
862 span.id {
863 font-weight: 400;
864 font-size: 16px;
865 }
866 }
867 margin: 0;
868 :first-child {
869 margin-top: 0;
870 }
871 }
872 }
873 .pretty-scrolling {
874 &::-webkit-scrollbar {
875 width: 8px;
876 }
877
878 &::-webkit-scrollbar-track {
879 background-color: rgba(207, 216, 220, 0.4);
880 opacity: 0.1;
881 border-radius: 10px;
882 }
883
884 &::-webkit-scrollbar-thumb {
885 border-radius: 10px;
886 background-color: rgba(55, 71, 79, 0.2);
887 }
888 }
889 .scrolling {
890 max-height: 480px;
891 overflow-y: auto;
892 overflow-x: hidden;
893 margin: 10px 10px 10px 0;
894 &::-webkit-scrollbar {
895 width: 8px;
896 }
897
898 &::-webkit-scrollbar-track {
899 background-color: rgba(207, 216, 220, 0.4);
900 opacity: 0.1;
901 border-radius: 10px;
902 }
903
904 &::-webkit-scrollbar-thumb {
905 border-radius: 10px;
906 background-color: rgba(55, 71, 79, 0.2);
907 }
908 }
909
910 .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
911 background-color: inherit;
912 border-color: inherit;
913 }
914
915 .vote-list {
916 &:hover {
917 cursor: pointer;
918 i {
919 opacity: .87;
920 color: @dark-red;
921 }
922 }
923 i {
924 opacity: .54;
925 font-size: 22px;
926 line-height: 16px;
927 }
928 }
929
930 .paginated .pagination > li > a, .paginated .pagination > li > span {
931 opacity: 0.87;
932 }
933
934 .subrow {
935 padding: 0 !important;
936 }
937
938 .factory:before {
939 content: "";
940 display: block;
941 width: 20px;
942 height: 20px;
943 top: 18px;
944 left: 18px;
945 position: absolute;
946 background-image: url('/images/forgingIcon.png');
947 }
948
949 .waves-effect.waves-blue .waves-ripple {
950 /* The alpha value allows the text and background color
951 of the button to still show through. */
952 background-color: rgba(2, 136, 209, 0.35);
953 }
954
955 .equal, .equal > div[class*='col-'] {
956 display: -webkit-box;
957 display: -moz-box;
958 display: -ms-flexbox;
959 display: -webkit-flex;
960 display: flex;
961 flex: 1 1 auto;
962 }
963
964 .no-margin-bottom{
965 margin-bottom: 0 !important;
966 }
967
968 .margin {
969 margin-bottom: 20px;
970 height: 0 !important;
971 }
972
973 .fadeInAnimation {
974 -webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
975 -moz-animation: fadein 2s; /* Firefox < 16 */
976 -ms-animation: fadein 2s; /* Internet Explorer */
977 -o-animation: fadein 2s; /* Opera < 12.1 */
978 animation: fadein 2s;
979 }
980
981 @keyframes fadein {
982 from {
983 opacity: 0;
984 }
985 to {
986 opacity: 1;
987 }
988 }
989
990 /* Firefox < 16 */
991 @-moz-keyframes fadein {
992 from {
993 opacity: 0;
994 }
995 to {
996 opacity: 1;
997 }
998 }
999
1000 /* Safari, Chrome and Opera > 12.1 */
1001 @-webkit-keyframes fadein {
1002 from {
1003 opacity: 0;
1004 }
1005 to {
1006 opacity: 1;
1007 }
1008 }
1009
1010 /* Internet Explorer */
1011 @-ms-keyframes fadein {
1012 from {
1013 opacity: 0;
1014 }
1015 to {
1016 opacity: 1;
1017 }
1018 }
1019
1020 /* Opera < 12.1 */
1021 @-o-keyframes fadein {
1022 from {
1023 opacity: 0;
1024 }
1025 to {
1026 opacity: 1;
1027 }
1028 }
1029
1030 .in_develop {
1031 overflow: hidden;
1032 .in_develop_text {
1033 left: 6px;
1034 right: 6px;
1035 text-align: center;
1036 position: absolute;
1037 bottom: 0;
1038 z-index: 2;
1039 font-size: 20px;
1040 line-height: 48px;
1041 background-color: #263238;
1042 color: white;
1043 border-radius: 3px;
1044 height: 0;
1045 transition: all 0.5s ease-in-out;
1046 }
1047 .in_develop_blure_color {
1048 position: absolute;
1049 height: 100%;
1050 width: 100%;
1051 background-color: rgba(255, 255, 255, 0.8);
1052 z-index: 1;
1053 }
1054 .in_develop_feature {
1055 -webkit-filter: blur(2px);
1056 -moz-filter: blur(2px);
1057 -ms-filter: blur(2px);
1058 -o-filter: blur(2px);
1059 filter: blur(2px);
1060 position: relative;
1061 }
1062 &:hover {
1063 .in_develop_text {
1064 height: 48px;
1065
1066 }
1067 }
1068 }
1 .logo-grey {
2 background-image: url('/images/logo-grey.png');
3 background-repeat: no-repeat;
4 width: 176px;
5 height: 43px;
6 }
7
8 .small-user-icon {
9 height: 48px;
10 width: 48px;
11 }
1 /* Language Settings */
2
3 .language-selector {
4 .flag {
5 text-align: center;
6 img {
7 margin-top: 10px;
8 }
9 }
10 }
11
12 /* Language Overrides */
13
14 /* Chinese */
15
16 .zh {
17 font-family: "Microsoft Yahei", "Roboto", sans-serif;
18 }
1 input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search] {
2 height: 2.2rem;
3 width: 100%;
4 font-size: 1.15rem;
5 }
6
7 .input-field label {
8 top: .6rem;
9 left: 0;
10 font-size: 1.15rem;
11 opacity: 1;
12 color: #b8b8b8;
13 &.active {
14 font-size: .8rem;
15 -webkit-transform: translateY(-160%);
16 -moz-transform: translateY(-160%);
17 -ms-transform: translateY(-160%);
18 -o-transform: translateY(-160%);
19 transform: translateY(-160%);
20 }
21 }
22
23 .input-field {
24 position: relative;
25 margin-top: 1.6rem;
26 }
27
28 .switch label .lever {
29 margin-left: 0;
30 }
31
32 .switch.margin {
33 margin-top: 20px;
34 }
35
36 .progress {
37 position: relative;
38 height: 4px;
39 display: block;
40 width: 100%;
41 background-color: #90caf9;
42 border-radius: 2px;
43 margin: 0.5rem 0 1rem 0;
44 overflow: hidden;
45 .determinate {
46 position: absolute;
47 background-color: inherit;
48 top: 0;
49 bottom: 0;
50 background-color: #209bde;
51 -webkit-transition: width .3s linear;
52 -moz-transition: width .3s linear;
53 -o-transition: width .3s linear;
54 -ms-transition: width .3s linear;
55 transition: width .3s linear;
56 }
57 }
58
59 .materialize-textarea-big {
60 textarea.materialize-textarea {
61 font-size: 1.14rem;
62 overflow-y: hidden;
63 padding: 0;
64 resize: none;
65 min-height: 3rem;
66 margin: 0;
67 }
68 label.active {
69 top: 0;
70 }
71 }
72
73 [type=checkbox].filled-in:checked + label.imaged:before {
74 top: 15px;
75 }
76
77 [type=checkbox].filled-in:checked + label.imaged:after {
78 top: 15px;
79 }
80
81 [type=checkbox].filled-in:not(:checked) + label.imaged:after {
82 top: 15px;
83 }
84
85 label.imaged {
86 img{
87 height: 50px;
88 }
89 }
1 #pass {
2 background-color: #ebeced;
3 height: 100%;
4 min-height: 500px;
5 .sign-in-button {
6 padding: 8px 14px;
7 border: none;
8 margin-top: 40px;
9 background-color: @sky-blue;
10 color: #fff;
11 font-size: 14px;
12 font-weight: normal;
13 -webkit-border-radius: 3px;
14 -moz-border-radius: 3px;
15 border-radius: 3px;
16 -webkit-box-shadow: none;
17 -moz-box-shadow: none;
18 box-shadow: none;
19 &:active {
20 top: 0;
21 background-image: none;
22 outline: 0;
23 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .3);
24 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .3);
25 }
26 }
27 }
28
29 .pass-banner {
30 background-image: url('/images/banner.jpg');
31 background-repeat: no-repeat;
32 background-size: cover;
33 width: 100%;
34 height: 40%;
35 }
36
37 .pass-bottom {
38 width: 100%;
39 height: 60%;
40 position: relative;
41 }
42
43 .pass-window {
44 width: 372px;
45 background-color: #ffffff;
46 border: solid 1px #cecece;
47 margin: -100px auto 0;
48 border-radius: 4px;
49 &-icon {
50 background-repeat: no-repeat;
51 height: 100px;
52 background-color: @gray2;
53 background-image: url('/images/logo-white.png');
54 margin: -1px;
55 border-radius: 4px 4px 0 0;
56 background-position: center;
57 }
58 &-form {
59 padding: 10px 25px 25px;
60 }
61 }
62
63 .pass-footer {
64 position: absolute;
65 bottom: -80px;
66 text-align: center;
67 width: 100%;
68 color: #000;
69 opacity: 0.54;
70 font-size: 14px;
71
72 @media (max-height: 550px) {
73 position: relative;
74 padding: 1em;
75 }
76 }
77
78 #login-form {
79 width: 526px;
80 height: 250px;
81 background-color: #fff;
82 border-radius: 3px;
83 box-shadow: 0 1px rgba(0, 0, 0, 0.07);
84 }
85
86 #center {
87 position: absolute;
88 width: 526px;
89 height: 295px;
90 margin-top: -210px;
91 margin-left: -263px;
92 left: 50%;
93 top: 50%;
94 }
95
96 #enter {
97 font-size: 13px;
98 width: 490px;
99 border: 1px solid #bbb;
100 height: 44px;
101 -moz-box-sizing: border-box;
102 -ms-box-sizing: border-box;
103 -webkit-box-sizing: border-box;
104 box-sizing: border-box;
105 padding: 0 15px;
106 color: #8e8e8e;
107 margin: 16px 16px 0 16px;
108 display: inline-block;
109 border-radius: 9px;
110 -moz-box-sizing: border-box;
111 -ms-box-sizing: border-box;
112 -webkit-box-sizing: border-box;
113 box-sizing: border-box;
114 }
115
116 #enter:focus {
117 outline: none;
118 }
119
120 #login {
121 display: block;
122 margin: 40px auto 0 auto;
123 font-size: 13px;
124 padding: 15px 23px 13px 20px
125 }
126
127 #message {
128 display: block;
129 width: 492px;
130 line-height: 1.6;
131 margin: 15px auto 0 auto;
132 font-size: 13px;
133 color: #939495;
134 }
135
136 #message-error {
137 display: block;
138 width: 492px;
139 line-height: 1.6;
140 margin: 15px auto 0;
141 font-size: 13px;
142 text-align: center;
143 color: #F24A65;
144 }
145
146 .loading {
147 text-align: center;
148 padding: 60px 25px 35px;
149 h3 {
150 font-size: 14px;
151 color: @black;
152 padding-top: 25px;
153 &.heading {
154 font-weight: 700;
155 padding-top: 50px;
156 font-size: 13px;
157 }
158 }
159 }
...\ No newline at end of file ...\ No newline at end of file
1 /*List of variables*/
2
3 /*Ebookcoin Colors*/
4
5 @blue: #0288d1; // blue, main
6 @blue1: #e7f0f5; // blue, super bright
7 @blue2: #e0ebf1; // blue, super bright hover
8 @orange: #f57c00; // orange, main
9 @orange1: #f5eee8; // orange, super bright
10 @orange2: #f3e7db; // orange, super bright hover
11 @purple: #663399; // purple, main
12 @brown: #655740; // brown
13 @brown1: #544835; // brown dark
14 @brown2: #be9c77; // brown bright
15 @gray: #f5f5f5; // gray bright
16 @gray1: #5f696e; // gray dark1
17 @gray2: #393c3e; // gray dark2
18 @gray3: #27292a; // gray dark3
19 @white: #fff; // white
20
21 @text_brown: #9c8678;
22 @text_brown1: #dcd6cf;
23
24 @ethereum: #6f748d;
25 @bitcoin: #f7931a;
26 @crypti: #7cb342;
27
28 /*Colors*/
29
30 @black: #000000;
31 @grey-text: #393939;
32 @white: #ffffff;
33 @menu-background: #263238;
34 @menu-icons: #5e676c;
35 @active-menu: #1c262b;
36 @navy: #1565c0;
37 @sky-blue: #039be5;
38 @dapp-link-color: #1976C2;
39
40 @background: #eeeeee;
41
42 //@blue: #1976d2;
43 @green: #84b84e;
44 @violet: #7e57c2;
45 @cloud: #546e7a;
46 @red: #d32f2f;
47 @error-red: #f34235;
48 @dark-red: #c62828;
49 @meant: #dcedc8;
50 @dark-meant: #7cb342;
51 @dark-blue: #0288d1;
52
53 @light-green: #cbe1b3;
54 @light-blue: #a3c8ed;
55 @light-violet: #cbbce7;
56 @light-cloud: #d7d7d7;
57 @super-light-violet: #ede7f6;
58
59 @grey: #fafafa;
60 @even-grey: #f5f5f5;
61 @border-grey: #cecece;
62 @light-grey: #dcdcdc;
63 @placeholder-text: #bdbdbd;
64
65 /*Font size*/
66 @small-text: 12px;
67 @content-text: 14px;
68 @normal-text: 16px;
69 @big-text: 24px;
70 @widget-text: 18px;
71 @graph-heading: 18px;
72
73 @font-opacity: 0.87;
74
75 /**/
76 @border-radius: 2px;
77 @screen-xs-max: 767px;
78 @screen-xs-min: 768px;
79 @screen-sm-max: 992px;
80 @screen-sm-min: 993px;
81 @hide-transactions-screen: 1500px;
82
83 /*Graphs*/
84 @grey-graph: #90a4ae;
1 {{!-- app/language-select/template.hbs --}}
2 <div class="row language-selector">
3 <div class="col s2 flag">
4 <img src="/images/flags/{{i18n.locale}}.png">
5 </div>
6 <div class="col s10">
7 <select class="browser-default" {{action 'setLocale' on='change'}}>
8 {{#each locales as |loc|}}
9 <option value="{{loc.id}}" selected={{is-equal loc.id i18n.locale}}>
10 {{loc.text}}
11 </option>
12 {{/each}}
13 </select>
14 </div>
15 </div>
16
1 <!-- <div id="pass" ng-controller="loadingController" ng-class="lang.id">
2 <div class="pass-banner"></div>
3 <div class="pass-bottom">
4 <div class="pass-window">
5 <div class="pass-window-icon"></div>
6 <div class="loading clearfix" class="clearfix" ng-controller="loadingController">
7 <div class="progress" ng-show="height">
8 <div class="determinate" style="width: {{loadingState}}%"></div>
9 </div>
10 <h3 class="heading" ng-show="!height || !blocksCount">Blockchain is loading...</h3>
11 <h3 class="heading" ng-show="height">{{loadingState}}%</h3>
12 <h3 class="heading" ng-show="height">Blockchain is loading...</h3>
13 </div>
14 </div>
15 </div>
16 </div> -->
...\ No newline at end of file ...\ No newline at end of file
1 <div id="pass">
2 <div class="pass-banner"></div>
3 <div class="pass-bottom">
4 <div class="pass-window">
5 <div class="pass-window-icon">
6 </div>
7 <form class="clearfix pass-window-form" >
8 <div class="input-field">
9 <input id="password" type="password" autofocus>
10 <label for="password">{{t "passphrase.yourPassphrase"}}</label>
11 <span class="pass-error">{{t "passphrase.errorMessage"}}</span>
12 </div>
13 <div class="input-group">
14 <div class="switch blue-switch margin">
15 <label>
16 <input type="checkbox">
17 <span class="lever"></span>
18 <span>{{t "passphrase.remember"}}</span>
19 </label>
20 </div>
21 </div>
22 <div class="input-field">
23 {{language-selector}}
24 </div>
25 <div class="buttons-panel pull-right">
26 <a class="btn btn-white waves-effect btn-marging">{{t "passphrase.newAccount"}}</a>
27 <a class="btn btn-blue waves-effect waves-light" >{{t "passphrase.signIn"}}</a>
28 </div>
29 </form>
30 </div>
31 <div class="pass-footer clearfix">Ebookcoin © 2016. All Rights Reserved.</div>
32 </div>
33 </div>
34
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "name": "ebookcoin",
3 "dependencies": {
4 "ember": "~2.8.0",
5 "ember-cli-shims": "0.1.1",
6 "bootstrap": "=3.3.6"
7 }
8 }
1 /* jshint node: true */
2
3 module.exports = function(environment) {
4 var ENV = {
5 modulePrefix: 'ebookcoin',
6 environment: environment,
7 rootURL: '/',
8 locationType: 'auto',
9
10 i18n: {
11 defaultLocale: 'en'
12 },
13
14 EmberENV: {
15 FEATURES: {
16 // Here you can enable experimental features on an ember canary build
17 // e.g. 'with-controller': true
18 }
19 },
20
21 APP: {
22 // Here you can pass flags/options to your application instance
23 // when it is created
24 }
25 };
26
27 if (environment === 'development') {
28 ENV.APP.LOG_RESOLVER = true;
29 ENV.APP.LOG_ACTIVE_GENERATION = true;
30 ENV.APP.LOG_TRANSITIONS = true;
31 ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
32 // ENV.APP.LOG_VIEW_LOOKUPS = true;
33 }
34
35 if (environment === 'test') {
36 // Testem prefers this...
37 ENV.locationType = 'none';
38
39 // keep test console output quieter
40 ENV.APP.LOG_ACTIVE_GENERATION = false;
41 ENV.APP.LOG_VIEW_LOOKUPS = false;
42
43 ENV.APP.rootElement = '#ember-testing';
44 }
45
46 if (environment === 'production') {
47
48 }
49
50 return ENV;
51 };
1 /*jshint node:true*/
2 /* global require, module */
3 var EmberApp = require('ember-cli/lib/broccoli/ember-app');
4
5 module.exports = function(defaults) {
6 var app = new EmberApp(defaults, {
7 // Add options here
8 });
9
10 //app.import("bower_components/bootstrap/dist/css/bootstrap.css");
11 //app.import("bower_components/bootstrap/dist/js/bootstrap.js");
12 app.import("vendor/materialize/css/materialize.css");
13 app.import("vendor/materialize/js/materialize.js");
14 // Use `app.import` to add additional libraries to the generated
15 // output files.
16 //
17 // If you need to use different assets in different
18 // environments, specify an object as the first parameter. That
19 // object's keys should be the environment name and the values
20 // should be the asset to use in that environment.
21 //
22 // If the library that you are including contains AMD or ES6
23 // modules that you would like to import into your application
24 // please specify an object with the list of modules as keys
25 // along with the exports of each module as its value.
26
27 return app.toTree();
28 };
No preview for this file type
1 {
2 "name": "ebookcoin",
3 "version": "0.0.0",
4 "description": "Small description for ebookcoin goes here",
5 "private": true,
6 "directories": {
7 "doc": "doc",
8 "test": "tests"
9 },
10 "scripts": {
11 "build": "ember build",
12 "start": "ember server",
13 "test": "ember test"
14 },
15 "repository": "",
16 "engines": {
17 "node": ">= 0.10.0"
18 },
19 "author": "",
20 "license": "MIT",
21 "devDependencies": {
22 "broccoli-asset-rev": "^2.4.2",
23 "ember-ajax": "^2.0.1",
24 "ember-bootstrap": "0.11.3",
25 "ember-cli": "2.8.0",
26 "ember-cli-app-version": "^1.0.0",
27 "ember-cli-babel": "^5.1.6",
28 "ember-cli-dependency-checker": "^1.2.0",
29 "ember-cli-htmlbars": "^1.0.3",
30 "ember-cli-htmlbars-inline-precompile": "^0.3.1",
31 "ember-cli-inject-live-reload": "^1.4.0",
32 "ember-cli-jshint": "^1.0.0",
33 "ember-cli-less": "^1.5.3",
34 "ember-cli-qunit": "^2.1.0",
35 "ember-cli-release": "^0.2.9",
36 "ember-cli-sri": "^2.1.0",
37 "ember-cli-test-loader": "^1.1.0",
38 "ember-cli-uglify": "^1.2.0",
39 "ember-data": "^2.8.0",
40 "ember-export-application-global": "^1.0.5",
41 "ember-i18n": "4.5.0",
42 "ember-load-initializers": "^0.5.1",
43 "ember-resolver": "^2.0.3",
44 "loader.js": "^4.0.1",
45 "materialize": "1.0.0"
46 }
47 }
1 <?xml version="1.0"?>
2 <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
3 <cross-domain-policy>
4 <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
5
6 <!-- Most restrictive policy: -->
7 <site-control permitted-cross-domain-policies="none"/>
8
9 <!-- Least restrictive policy: -->
10 <!--
11 <site-control permitted-cross-domain-policies="all"/>
12 <allow-access-from domain="*" to-ports="*" secure="false"/>
13 <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
14 -->
15 </cross-domain-policy>
1 ../bower_components/materialize/font/material-design-icons
...\ No newline at end of file ...\ No newline at end of file
1 ../bower_components/materialize/font/roboto
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
1 # http://www.robotstxt.org
2 User-agent: *
3 Disallow:
1 /*jshint node:true*/
2 module.exports = {
3 "framework": "qunit",
4 "test_page": "tests/index.html?hidepassed",
5 "disable_watching": true,
6 "launch_in_ci": [
7 "PhantomJS"
8 ],
9 "launch_in_dev": [
10 "PhantomJS",
11 "Chrome"
12 ]
13 };
1 {
2 "predef": [
3 "document",
4 "window",
5 "location",
6 "setTimeout",
7 "$",
8 "-Promise",
9 "define",
10 "console",
11 "visit",
12 "exists",
13 "fillIn",
14 "click",
15 "keyEvent",
16 "triggerEvent",
17 "find",
18 "findWithAssert",
19 "wait",
20 "DS",
21 "andThen",
22 "currentURL",
23 "currentPath",
24 "currentRouteName"
25 ],
26 "node": false,
27 "browser": false,
28 "boss": true,
29 "curly": true,
30 "debug": false,
31 "devel": false,
32 "eqeqeq": true,
33 "evil": true,
34 "forin": false,
35 "immed": false,
36 "laxbreak": false,
37 "newcap": true,
38 "noarg": true,
39 "noempty": false,
40 "nonew": false,
41 "nomen": false,
42 "onevar": false,
43 "plusplus": false,
44 "regexp": false,
45 "undef": true,
46 "sub": true,
47 "strict": false,
48 "white": false,
49 "eqnull": true,
50 "esversion": 6,
51 "unused": true
52 }
1 import Ember from 'ember';
2
3 export default function destroyApp(application) {
4 Ember.run(application, 'destroy');
5 }
1 import { module } from 'qunit';
2 import Ember from 'ember';
3 import startApp from '../helpers/start-app';
4 import destroyApp from '../helpers/destroy-app';
5
6 const { RSVP: { Promise } } = Ember;
7
8 export default function(name, options = {}) {
9 module(name, {
10 beforeEach() {
11 this.application = startApp();
12
13 if (options.beforeEach) {
14 return options.beforeEach.apply(this, arguments);
15 }
16 },
17
18 afterEach() {
19 let afterEach = options.afterEach && options.afterEach.apply(this, arguments);
20 return Promise.resolve(afterEach).then(() => destroyApp(this.application));
21 }
22 });
23 }
1 import Resolver from '../../resolver';
2 import config from '../../config/environment';
3
4 const resolver = Resolver.create();
5
6 resolver.namespace = {
7 modulePrefix: config.modulePrefix,
8 podModulePrefix: config.podModulePrefix
9 };
10
11 export default resolver;
1 import Ember from 'ember';
2 import Application from '../../app';
3 import config from '../../config/environment';
4
5 export default function startApp(attrs) {
6 let application;
7
8 let attributes = Ember.merge({}, config.APP);
9 attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
10
11 Ember.run(() => {
12 application = Application.create(attributes);
13 application.setupForTesting();
14 application.injectTestHelpers();
15 });
16
17 return application;
18 }
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <title>Ebookcoin Tests</title>
7 <meta name="description" content="">
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9
10 {{content-for "head"}}
11 {{content-for "test-head"}}
12
13 <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
14 <link rel="stylesheet" href="{{rootURL}}assets/ebookcoin.css">
15 <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
16
17 {{content-for "head-footer"}}
18 {{content-for "test-head-footer"}}
19 </head>
20 <body>
21 {{content-for "body"}}
22 {{content-for "test-body"}}
23
24 <script src="{{rootURL}}testem.js" integrity=""></script>
25 <script src="{{rootURL}}assets/vendor.js"></script>
26 <script src="{{rootURL}}assets/test-support.js"></script>
27 <script src="{{rootURL}}assets/ebookcoin.js"></script>
28 <script src="{{rootURL}}assets/tests.js"></script>
29
30 {{content-for "body-footer"}}
31 {{content-for "test-body-footer"}}
32 </body>
33 </html>
1 import resolver from './helpers/resolver';
2 import {
3 setResolver
4 } from 'ember-qunit';
5
6 setResolver(resolver);
File mode changed
1 import { moduleFor, test } from 'ember-qunit';
2
3 moduleFor('route:account', 'Unit | Route | account', {
4 // Specify the other units that are required for this test.
5 // needs: ['controller:foo']
6 });
7
8 test('it exists', function(assert) {
9 let route = this.subject();
10 assert.ok(route);
11 });
1 import { moduleFor, test } from 'ember-qunit';
2
3 moduleFor('route:passphrase', 'Unit | Route | passphrase', {
4 // Specify the other units that are required for this test.
5 // needs: ['controller:foo']
6 });
7
8 test('it exists', function(assert) {
9 let route = this.subject();
10 assert.ok(route);
11 });
File mode changed
1 The MIT License (MIT)
2
3 Copyright (c) 2014-2016 Materialize
4
5 Permission is hereby granted, free of charge, to any person obtaining a copy
6 of this software and associated documentation files (the "Software"), to deal
7 in the Software without restriction, including without limitation the rights
8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 copies of the Software, and to permit persons to whom the Software is
10 furnished to do so, subject to the following conditions:
11
12 The above copyright notice and this permission notice shall be included in all
13 copies or substantial portions of the Software.
14
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 SOFTWARE.
1 ![alt tag](https://raw.github.com/dogfalo/materialize/master/images/materialize.gif)
2 ===========
3
4 [![Travis CI](https://travis-ci.org/Dogfalo/materialize.svg?branch=master)](https://travis-ci.org/Dogfalo/materialize)[![devDependency Status](https://david-dm.org/Dogfalo/materialize/dev-status.svg)](https://david-dm.org/Dogfalo/materialize#info=devDependencies)[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/Dogfalo/materialize?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
6 [Materialize](http://materializecss.com/), a CSS Framework based on material design
7
8 ### Current Version : v0.97.7
9
10 ## Sass Requirements:
11 - Ruby Sass 3.3+, LibSass 0.6+
12
13 ## Supported Browsers:
14 Chrome 35+, Firefox 31+, Safari 7+, IE 10+
15
16 ## Changelog
17 - v0.97.7 (July 23rd)
18 - Basic horizontal cards
19 - Carousel bug fixes and new features
20 - Updated sidenav styles and new component
21 - Meteor package now supports Sass
22 - Autocomplete form component
23 - Chips jQuery plugin
24 - v0.97.6 (April 1st)
25 - **Removed deprecated material icons from project**
26 - **Changed /font directory to /fonts**
27 - Datepicker and ScrollSpy now compatible with jQuery 2.2.x
28 - Responsive tables now work with empty cells
29 - Added focus states to checkboxes, switches, and radio buttons
30 - Sidenav and Modals no longer cause flicker with scrollbar
31 - Materialbox overflow and z-index issues fixed
32 - Added new option for Card actions within a Card reveal
33 - v0.97.5 (Dec 21, 2015)
34 - Fixed Meteor package crash
35 - v0.97.4 (Dec 20, 2015)
36 - Added Jasmine testing with Travis CI
37 - Select bugfixes
38 - Grid Offset bugfix
39 - Dropdown overflow bugfix
40 - Range slider error bugfix
41
42
43
44 ## Contributing
45 [Please read CONTRIBUTING.md for more information](CONTRIBUTING.md)
46
47 ## Testing
48 We use Jasmine as our testing framework and we're trying to write a robust test suite for our components. If you want to help, [here's a starting guide on how to write tests in Jasmine](https://docs.google.com/document/d/1dVM6qGt_b_y9RRhr9X7oZfFydaJIEqB9CT7yekv-4XE/edit?usp=sharing)
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.