mui_app_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +34 -0
  3. data/app/assets/fonts/mui.ttf +0 -0
  4. data/app/assets/javascripts/mui_app_rails/actions.js +26 -0
  5. data/app/assets/javascripts/mui_app_rails/ajax.plugin.js +3 -0
  6. data/app/assets/javascripts/mui_app_rails/input.plugin.js +232 -0
  7. data/app/assets/javascripts/mui_app_rails/modals.js +37 -0
  8. data/app/assets/javascripts/mui_app_rails/mui.active.js +30 -0
  9. data/app/assets/javascripts/mui_app_rails/mui.ajax.5+.js +27 -0
  10. data/app/assets/javascripts/mui_app_rails/mui.ajax.js +277 -0
  11. data/app/assets/javascripts/mui_app_rails/mui.animation.js +39 -0
  12. data/app/assets/javascripts/mui_app_rails/mui.animationframe.js +72 -0
  13. data/app/assets/javascripts/mui_app_rails/mui.back.5+.js +108 -0
  14. data/app/assets/javascripts/mui_app_rails/mui.back.js +56 -0
  15. data/app/assets/javascripts/mui_app_rails/mui.class.js +40 -0
  16. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.js +894 -0
  17. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.pullrefresh.js +150 -0
  18. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.js +361 -0
  19. data/app/assets/javascripts/mui_app_rails/mui.class.scroll.slider.old.js +332 -0
  20. data/app/assets/javascripts/mui_app_rails/mui.detect.5+.js +18 -0
  21. data/app/assets/javascripts/mui_app_rails/mui.detect.js +50 -0
  22. data/app/assets/javascripts/mui_app_rails/mui.dialog.alert.js +27 -0
  23. data/app/assets/javascripts/mui_app_rails/mui.dialog.confirm.js +27 -0
  24. data/app/assets/javascripts/mui_app_rails/mui.dialog.prompt.js +33 -0
  25. data/app/assets/javascripts/mui_app_rails/mui.dialog.toast.js +20 -0
  26. data/app/assets/javascripts/mui_app_rails/mui.event.js +160 -0
  27. data/app/assets/javascripts/mui_app_rails/mui.fixed.animation.js +22 -0
  28. data/app/assets/javascripts/mui_app_rails/mui.fixed.classlist.js +50 -0
  29. data/app/assets/javascripts/mui_app_rails/mui.fixed.fastclick.js +64 -0
  30. data/app/assets/javascripts/mui_app_rails/mui.fixed.js +40 -0
  31. data/app/assets/javascripts/mui_app_rails/mui.fixed.keyboard.js +56 -0
  32. data/app/assets/javascripts/mui_app_rails/mui.gestures.drag.js +48 -0
  33. data/app/assets/javascripts/mui_app_rails/mui.gestures.flick.js +30 -0
  34. data/app/assets/javascripts/mui_app_rails/mui.gestures.hold.js +41 -0
  35. data/app/assets/javascripts/mui_app_rails/mui.gestures.js +207 -0
  36. data/app/assets/javascripts/mui_app_rails/mui.gestures.longtap.js +43 -0
  37. data/app/assets/javascripts/mui_app_rails/mui.gestures.swipe.js +29 -0
  38. data/app/assets/javascripts/mui_app_rails/mui.gestures.tap.js +40 -0
  39. data/app/assets/javascripts/mui_app_rails/mui.init.5+.js +441 -0
  40. data/app/assets/javascripts/mui_app_rails/mui.init.js +100 -0
  41. data/app/assets/javascripts/mui_app_rails/mui.init.pullrefresh.js +57 -0
  42. data/app/assets/javascripts/mui_app_rails/mui.js +396 -0
  43. data/app/assets/javascripts/mui_app_rails/mui.jsonp.js +108 -0
  44. data/app/assets/javascripts/mui_app_rails/mui.layout.js +22 -0
  45. data/app/assets/javascripts/mui_app_rails/mui.namespace.js +35 -0
  46. data/app/assets/javascripts/mui_app_rails/mui.number.js +93 -0
  47. data/app/assets/javascripts/mui_app_rails/mui.offcanvas.js +497 -0
  48. data/app/assets/javascripts/mui_app_rails/mui.pullrefresh.js +157 -0
  49. data/app/assets/javascripts/mui_app_rails/mui.target.js +58 -0
  50. data/app/assets/javascripts/mui_app_rails/mui.view.js +172 -0
  51. data/app/assets/javascripts/mui_app_rails/popovers.js +278 -0
  52. data/app/assets/javascripts/mui_app_rails/pullrefresh.5+.js +238 -0
  53. data/app/assets/javascripts/mui_app_rails/push.js +479 -0
  54. data/app/assets/javascripts/mui_app_rails/segmented-controllers.js +99 -0
  55. data/app/assets/javascripts/mui_app_rails/sliders.js +362 -0
  56. data/app/assets/javascripts/mui_app_rails/switches.js +165 -0
  57. data/app/assets/javascripts/mui_app_rails/tableviews.js +512 -0
  58. data/app/assets/javascripts/mui_app_rails.js +1 -0
  59. data/app/assets/stylesheets/mui_app_rails/badges.scss +88 -0
  60. data/app/assets/stylesheets/mui_app_rails/bars.scss +312 -0
  61. data/app/assets/stylesheets/mui_app_rails/base.scss +196 -0
  62. data/app/assets/stylesheets/mui_app_rails/buttons.scss +205 -0
  63. data/app/assets/stylesheets/mui_app_rails/cards.scss +62 -0
  64. data/app/assets/stylesheets/mui_app_rails/forms.scss +452 -0
  65. data/app/assets/stylesheets/mui_app_rails/fullscreen.scss +35 -0
  66. data/app/assets/stylesheets/mui_app_rails/grid.scss +75 -0
  67. data/app/assets/stylesheets/mui_app_rails/hack.scss +14 -0
  68. data/app/assets/stylesheets/mui_app_rails/icon.scss +170 -0
  69. data/app/assets/stylesheets/mui_app_rails/iscroll.scss +43 -0
  70. data/app/assets/stylesheets/mui_app_rails/loadings.scss +111 -0
  71. data/app/assets/stylesheets/mui_app_rails/mixins.scss +212 -0
  72. data/app/assets/stylesheets/mui_app_rails/modals.scss +34 -0
  73. data/app/assets/stylesheets/mui_app_rails/mui.scss +46 -0
  74. data/app/assets/stylesheets/mui_app_rails/normalize.scss +425 -0
  75. data/app/assets/stylesheets/mui_app_rails/number.scss +70 -0
  76. data/app/assets/stylesheets/mui_app_rails/off-canvas.scss +84 -0
  77. data/app/assets/stylesheets/mui_app_rails/os.scss +12 -0
  78. data/app/assets/stylesheets/mui_app_rails/pagination.scss +155 -0
  79. data/app/assets/stylesheets/mui_app_rails/popovers.scss +198 -0
  80. data/app/assets/stylesheets/mui_app_rails/pullrefreshs.scss +98 -0
  81. data/app/assets/stylesheets/mui_app_rails/push.scss +63 -0
  82. data/app/assets/stylesheets/mui_app_rails/scroll.scss +95 -0
  83. data/app/assets/stylesheets/mui_app_rails/segmented-controls.scss +150 -0
  84. data/app/assets/stylesheets/mui_app_rails/slider-cell.scss +20 -0
  85. data/app/assets/stylesheets/mui_app_rails/sliders.scss +133 -0
  86. data/app/assets/stylesheets/mui_app_rails/switches.scss +115 -0
  87. data/app/assets/stylesheets/mui_app_rails/table-views.scss +482 -0
  88. data/app/assets/stylesheets/mui_app_rails/toast.scss +16 -0
  89. data/app/assets/stylesheets/mui_app_rails/type.scss +23 -0
  90. data/app/assets/stylesheets/mui_app_rails/variables.scss +64 -0
  91. data/app/assets/stylesheets/mui_app_rails.css +3 -0
  92. data/lib/mui_app_rails/engine.rb +5 -0
  93. data/lib/mui_app_rails/version.rb +3 -0
  94. data/lib/mui_app_rails.rb +5 -0
  95. metadata +179 -0
@@ -0,0 +1,170 @@
1
+ //
2
+ // Muiicons
3
+ // --------------------------------------------------
4
+
5
+ @font-face {
6
+ font-family: Muiicons;
7
+ font-weight: normal;
8
+ font-style: normal;
9
+ src: url('../fonts/mui.ttf') format('truetype');
10
+ }
11
+
12
+ .#{$namespace}icon {
13
+ display: inline-block;
14
+ font-family: Muiicons;
15
+ font-weight: normal;
16
+ font-style: normal;
17
+ font-size: 24px;
18
+ line-height: 1;
19
+ text-decoration: none;
20
+ -webkit-font-smoothing: antialiased;
21
+
22
+ &.#{$namespace}right{
23
+ &:before{
24
+ float:right;
25
+ padding-left: 0.2em;
26
+ }
27
+ }
28
+ }
29
+
30
+
31
+ // 通讯录
32
+ // 空心部分
33
+ .#{$namespace}icon-contact:before { content: "\e100"; }
34
+ .#{$namespace}icon-person:before { content: "\e101"; }
35
+ .#{$namespace}icon-personadd:before { content: "\e102"; }
36
+
37
+ // 实心部分
38
+ .#{$namespace}icon-contact-filled:before { content: "\e130"; }
39
+ .#{$namespace}icon-person-filled:before { content: "\e131"; }
40
+ .#{$namespace}icon-personadd-filled:before { content: "\e132"; }
41
+
42
+
43
+ // 通讯功能
44
+ // 空心部分
45
+ .#{$namespace}icon-phone:before { content: "\e200"; }
46
+ .#{$namespace}icon-email:before { content: "\e201"; }
47
+ .#{$namespace}icon-chatbubble:before { content: "\e202"; }
48
+ .#{$namespace}icon-chatboxes:before { content: "\e203"; }
49
+
50
+ // 实心部分
51
+ .#{$namespace}icon-phone-filled:before { content: "\e230"; }
52
+ .#{$namespace}icon-email-filled:before { content: "\e231"; }
53
+ .#{$namespace}icon-chatbubble-filled:before { content: "\e232"; }
54
+ .#{$namespace}icon-chatboxes-filled:before { content: "\e233"; }
55
+ // 通讯功能补充类
56
+ .#{$namespace}icon-weibo:before { content: "\e260"; }
57
+ .#{$namespace}icon-weixin:before { content: "\e261"; }
58
+ .#{$namespace}icon-pengyouquan:before { content: "\e262"; }
59
+ .#{$namespace}icon-chat:before { content: "\e263"; }
60
+
61
+
62
+ // 设备类
63
+ // 空心部分
64
+ .#{$namespace}icon-videocam:before { content: "\e300"; }
65
+ .#{$namespace}icon-camera:before { content: "\e301"; }
66
+ .#{$namespace}icon-mic:before { content: "\e302"; }
67
+ .#{$namespace}icon-location:before { content: "\e303"; }
68
+
69
+ // 实心部分
70
+ .#{$namespace}icon-mic-filled:before,.#{$namespace}icon-speech:before { content: "\e332"; }
71
+ .#{$namespace}icon-location-filled:before { content: "\e333"; }
72
+
73
+ // 设备补充类
74
+ .#{$namespace}icon-micoff:before { content: "\e360"; }
75
+ // .#{$namespace}icon-volumehigh:before { content: "\e361"; }
76
+ // .#{$namespace}icon-volumelow:before { content: "\e362"; }
77
+ .#{$namespace}icon-image:before { content: "\e363"; }
78
+ .#{$namespace}icon-map:before { content: "\e364"; }
79
+
80
+
81
+ // 操作标志类
82
+ // 空心部分
83
+ .#{$namespace}icon-compose:before { content: "\e400"; }
84
+ .#{$namespace}icon-trash:before { content: "\e401"; }
85
+ .#{$namespace}icon-upload:before { content: "\e402"; }
86
+ .#{$namespace}icon-download:before { content: "\e403"; }
87
+ .#{$namespace}icon-close:before { content: "\e404"; }
88
+ .#{$namespace}icon-redo:before { content: "\e405"; }
89
+ .#{$namespace}icon-undo:before { content: "\e406"; }
90
+ .#{$namespace}icon-refresh:before { content: "\e407"; }
91
+ .#{$namespace}icon-star:before { content: "\e408"; }
92
+ .#{$namespace}icon-plus:before { content: "\e409"; }
93
+ .#{$namespace}icon-minus:before { content: "\e410"; }
94
+ .#{$namespace}icon-circle:before,.#{$namespace}icon-checkbox:before { content: "\e411"; }
95
+
96
+ // 实心部分
97
+ .#{$namespace}icon-close-filled:before,.#{$namespace}icon-clear:before { content: "\e434"; }
98
+ .#{$namespace}icon-refresh-filled:before { content: "\e437"; }
99
+ .#{$namespace}icon-star-filled:before { content: "\e438"; }
100
+ .#{$namespace}icon-plus-filled:before { content: "\e439"; }
101
+ .#{$namespace}icon-minus-filled:before { content: "\e440"; }
102
+ .#{$namespace}icon-circle-filled:before { content: "\e441"; }
103
+ .#{$namespace}icon-checkbox-filled:before { content: "\e442"; }
104
+
105
+
106
+ // 操作标志补充类
107
+ .#{$namespace}icon-closeempty:before { content: "\e460"; }
108
+ .#{$namespace}icon-refreshempty:before { content: "\e461"; }
109
+ .#{$namespace}icon-reload:before { content: "\e462"; }
110
+ .#{$namespace}icon-starhalf:before { content: "\e463"; }
111
+ .#{$namespace}icon-spinner:before { content: "\e464"; }
112
+ .#{$namespace}icon-spinner-cycle:before { content: "\e465"; }
113
+ .#{$namespace}icon-search:before { content: "\e466"; }
114
+ // .#{$namespace}icon-searchstrong:before { content: "\e467"; }
115
+ .#{$namespace}icon-plusempty:before { content: "\e468"; }
116
+
117
+ .#{$namespace}icon-forward:before { content: "\e470"; }
118
+ .#{$namespace}icon-back:before,.#{$namespace}icon-left-nav:before { content: "\e471"; }
119
+ .#{$namespace}icon-checkmarkempty:before { content: "\e472"; }
120
+ // .#{$namespace}icon-share:before { content: "\e473"; }
121
+
122
+
123
+ // 拟物标志类
124
+ // 空心部分
125
+ .#{$namespace}icon-home:before { content: "\e500"; }
126
+ .#{$namespace}icon-navigate:before { content: "\e501"; }
127
+ .#{$namespace}icon-gear:before { content: "\e502"; }
128
+ .#{$namespace}icon-paperplane:before { content: "\e503"; }
129
+ .#{$namespace}icon-info:before { content: "\e504"; }
130
+ .#{$namespace}icon-help:before { content: "\e505"; }
131
+ .#{$namespace}icon-locked:before { content: "\e506"; }
132
+ .#{$namespace}icon-more:before { content: "\e507"; }
133
+ .#{$namespace}icon-flag:before { content: "\e508"; }
134
+
135
+ // 实心部分
136
+ .#{$namespace}icon-home-filled:before { content: "\e530"; }
137
+ .#{$namespace}icon-gear-filled:before { content: "\e532"; }
138
+ .#{$namespace}icon-info-filled:before { content: "\e534"; }
139
+ .#{$namespace}icon-help-filled:before { content: "\e535"; }
140
+ .#{$namespace}icon-more-filled:before { content: "\e537"; }
141
+
142
+ // 拟物标志补充类
143
+ .#{$namespace}icon-settings:before { content: "\e560"; }
144
+ // .#{$namespace}icon-settingsstrong:before { content: "\e561"; }
145
+ .#{$namespace}icon-list:before { content: "\e562"; }
146
+ .#{$namespace}icon-bars:before { content: "\e563"; }
147
+ // .#{$namespace}icon-more-vertical:before { content: "\e564"; }
148
+ .#{$namespace}icon-loop:before { content: "\e565"; }
149
+ // .#{$namespace}icon-loopstrong:before { content: "\e566"; }
150
+ .#{$namespace}icon-paperclip:before { content: "\e567"; }
151
+
152
+ // 箭头
153
+ .#{$namespace}icon-arrowup:before { content: "\e580"; }
154
+ .#{$namespace}icon-arrowdown:before { content: "\e581"; }
155
+ .#{$namespace}icon-arrowleft:before { content: "\e582"; }
156
+ .#{$namespace}icon-arrowright:before { content: "\e583"; }
157
+
158
+ .#{$namespace}icon-arrowthinup:before { content: "\e584"; }
159
+ .#{$namespace}icon-arrowthindown:before { content: "\e585"; }
160
+ .#{$namespace}icon-arrowthinleft:before { content: "\e586"; }
161
+ .#{$namespace}icon-arrowthinright:before { content: "\e587"; }
162
+
163
+ .#{$namespace}icon-pulldown:before { content: "\e588"; }
164
+
165
+
166
+
167
+
168
+
169
+
170
+
@@ -0,0 +1,43 @@
1
+ .#{$namespace}iscroll-wrapper{
2
+ position: absolute;
3
+ z-index: z("default");
4
+ top: 0;
5
+ left: 0;
6
+ bottom: 0;
7
+ width: 100%;
8
+ overflow: hidden;
9
+ }
10
+ .#{$namespace}bar-nav ~ .#{$namespace}iscroll-wrapper {
11
+ top: $bar-base-height;
12
+ padding:0;
13
+ }
14
+ .#{$namespace}bar-header-secondary ~ .#{$namespace}iscroll-wrapper {
15
+ top: ($bar-base-height*2);
16
+ }
17
+ .#{$namespace}bar-footer ~ .#{$namespace}iscroll-wrapper {
18
+ bottom: $bar-base-height;
19
+ padding:0;
20
+ }
21
+ .#{$namespace}bar-footer-secondary ~ .#{$namespace}iscroll-wrapper {
22
+ bottom: ($bar-base-height*2);
23
+ }
24
+ .#{$namespace}bar-tab ~ .#{$namespace}iscroll-wrapper{
25
+ bottom: $bar-tab-height;
26
+ padding:0;
27
+ }
28
+ .#{$namespace}bar-footer-secondary-tab ~ .#{$namespace}iscroll-wrapper{
29
+ bottom: ($bar-tab-height+$bar-base-height);
30
+ }
31
+
32
+ .#{$namespace}iscroll{
33
+ position: absolute;
34
+ z-index: z("default");
35
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
36
+ width: 100%;
37
+ -webkit-transform: translateZ(0);
38
+ transform: translateZ(0);
39
+ -webkit-touch-callout: none;
40
+ -webkit-user-select: none;
41
+ -webkit-text-size-adjust: none;
42
+ text-size-adjust: none;
43
+ }
@@ -0,0 +1,111 @@
1
+ .#{$namespace}loading{
2
+ .#{$namespace}spinner{
3
+ margin: 0 auto;
4
+ display: block;
5
+ }
6
+ }
7
+ .#{$namespace}spinner {
8
+ display: inline-block;
9
+ width: 24px;
10
+ height: 24px;
11
+ -webkit-transform-origin: 50%;
12
+ transform-origin: 50%;
13
+ -webkit-animation: spinner-spin 1s step-end infinite;
14
+ animation: spinner-spin 1s step-end infinite;
15
+ }
16
+ .#{$namespace}spinner:after {
17
+ display: block;
18
+ content: "";
19
+ width: 100%;
20
+ height: 100%;
21
+ background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line id='l' x1='60' x2='60' y1='7' y2='27' stroke='%236c6c6c' stroke-width='11' stroke-linecap='round'/></defs><g><use xlink:href='%23l' opacity='.27'/><use xlink:href='%23l' opacity='.27' transform='rotate(30 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(60 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(90 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(120 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(150 60,60)'/><use xlink:href='%23l' opacity='.37' transform='rotate(180 60,60)'/><use xlink:href='%23l' opacity='.46' transform='rotate(210 60,60)'/><use xlink:href='%23l' opacity='.56' transform='rotate(240 60,60)'/><use xlink:href='%23l' opacity='.66' transform='rotate(270 60,60)'/><use xlink:href='%23l' opacity='.75' transform='rotate(300 60,60)'/><use xlink:href='%23l' opacity='.85' transform='rotate(330 60,60)'/></g></svg>");
22
+ background-position: 50%;
23
+ background-size: 100%;
24
+ background-repeat: no-repeat;
25
+ }
26
+ .#{$namespace}spinner-white:after {
27
+ background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line id='l' x1='60' x2='60' y1='7' y2='27' stroke='%23fff' stroke-width='11' stroke-linecap='round'/></defs><g><use xlink:href='%23l' opacity='.27'/><use xlink:href='%23l' opacity='.27' transform='rotate(30 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(60 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(90 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(120 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(150 60,60)'/><use xlink:href='%23l' opacity='.37' transform='rotate(180 60,60)'/><use xlink:href='%23l' opacity='.46' transform='rotate(210 60,60)'/><use xlink:href='%23l' opacity='.56' transform='rotate(240 60,60)'/><use xlink:href='%23l' opacity='.66' transform='rotate(270 60,60)'/><use xlink:href='%23l' opacity='.75' transform='rotate(300 60,60)'/><use xlink:href='%23l' opacity='.85' transform='rotate(330 60,60)'/></g></svg>");
28
+ }
29
+ @-webkit-keyframes spinner-spin {
30
+ 0% {
31
+ -webkit-transform: rotate(0deg);
32
+ }
33
+ 8.33333333% {
34
+ -webkit-transform: rotate(30deg);
35
+ }
36
+ 16.66666667% {
37
+ -webkit-transform: rotate(60deg);
38
+ }
39
+ 25% {
40
+ -webkit-transform: rotate(90deg);
41
+ }
42
+ 33.33333333% {
43
+ -webkit-transform: rotate(120deg);
44
+ }
45
+ 41.66666667% {
46
+ -webkit-transform: rotate(150deg);
47
+ }
48
+ 50% {
49
+ -webkit-transform: rotate(180deg);
50
+ }
51
+ 58.33333333% {
52
+ -webkit-transform: rotate(210deg);
53
+ }
54
+ 66.66666667% {
55
+ -webkit-transform: rotate(240deg);
56
+ }
57
+ 75% {
58
+ -webkit-transform: rotate(270deg);
59
+ }
60
+ 83.33333333% {
61
+ -webkit-transform: rotate(300deg);
62
+ }
63
+ 91.66666667% {
64
+ -webkit-transform: rotate(330deg);
65
+ }
66
+ 100% {
67
+ -webkit-transform: rotate(360deg);
68
+ }
69
+ }
70
+ @keyframes spinner-spin {
71
+ 0% {
72
+ transform: rotate(0deg);
73
+ }
74
+ 8.33333333% {
75
+ transform: rotate(30deg);
76
+ }
77
+ 16.66666667% {
78
+ transform: rotate(60deg);
79
+ }
80
+ 25% {
81
+ transform: rotate(90deg);
82
+ }
83
+ 33.33333333% {
84
+ transform: rotate(120deg);
85
+ }
86
+ 41.66666667% {
87
+ transform: rotate(150deg);
88
+ }
89
+ 50% {
90
+ transform: rotate(180deg);
91
+ }
92
+ 58.33333333% {
93
+ transform: rotate(210deg);
94
+ }
95
+ 66.66666667% {
96
+ transform: rotate(240deg);
97
+ }
98
+ 75% {
99
+ transform: rotate(270deg);
100
+ }
101
+ 83.33333333% {
102
+ transform: rotate(300deg);
103
+ }
104
+ 91.66666667% {
105
+ transform: rotate(330deg);
106
+ }
107
+ 100% {
108
+ transform: rotate(360deg);
109
+ }
110
+ }
111
+
@@ -0,0 +1,212 @@
1
+ //
2
+ // Mixins
3
+ // --------------------------------------------------
4
+
5
+ // General
6
+ // --------------------------------------------------
7
+
8
+ // Utilities
9
+ // -------------------------
10
+ $z-layers: (
11
+ "default": 1,
12
+ "below": -1,
13
+ "max": 10000,
14
+ "bar": (
15
+ "bar": 10,
16
+ "btn": 20,
17
+ "icon": 20
18
+ ),
19
+ "backdrop": 998,
20
+ "modal": 999,
21
+ "popover":(
22
+ "popover": 999,
23
+ "arrow": 1000,
24
+ ),
25
+ "scroll": (
26
+ "scrollbar": 9998,
27
+ ),
28
+ "toast": 9999,
29
+ );
30
+ @function map-has-nested-keys($map, $keys...) {
31
+ @each $key in $keys {
32
+ @if not map-has-key($map, $key) {
33
+ @return false;
34
+ }
35
+ $map: map-get($map, $key);
36
+ }
37
+
38
+ @return true;
39
+ }
40
+
41
+ @function map-deep-get($map, $keys...) {
42
+ @each $key in $keys {
43
+ $map: map-get($map, $key);
44
+ }
45
+
46
+ @return $map;
47
+ }
48
+
49
+ @function z($layers...) {
50
+ @if not map-has-nested-keys($z-layers, $layers...) {
51
+ @warn "No layer found for `#{inspect($layers...)}` in $z-layers map. Property omitted.";
52
+ }
53
+
54
+ @return map-deep-get($z-layers, $layers...);
55
+ }
56
+ // Clearfix
57
+ // Source: http://nicolasgallagher.com/micro-clearfix-hack/
58
+ //
59
+ // For modern browsers
60
+ // 1. The space content is one way to avoid an Opera bug when the
61
+ // contenteditable attribute is included anywhere else in the document.
62
+ // Otherwise it causes space to appear at the top and bottom of elements
63
+ // that are clearfixed.
64
+ // 2. The use of `table` rather than `block` is only necessary if using
65
+ // `:before` to contain the top-margins of child elements.
66
+ @mixin clearfix() {
67
+ &:before,
68
+ &:after {
69
+ display: table; // 2
70
+ content: " "; // 1
71
+ }
72
+ &:after {
73
+ clear: both;
74
+ }
75
+ }
76
+
77
+ // Box shadow
78
+ @mixin box-shadow($shadow...) {
79
+ -webkit-box-shadow: $shadow;
80
+ box-shadow: $shadow;
81
+ }
82
+
83
+ // Gradients
84
+ @mixin linear-gradient($color-from, $color-to) {
85
+ background-color: $color-from; // Old browsers
86
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$color-from), color-stop(100%,$color-to)); // Chrome, Safari4+
87
+ background-image: -webkit-linear-gradient(top, $color-from 0%, $color-to 100%); // Chrome10+, Safari5.1+
88
+ // background-image: -moz-linear-gradient(top, $color-from 0%, $color-to 100%); // FF3.6+
89
+ // background-image: -ms-linear-gradient(top, $color-from 0%, $color-to 100%); // IE10+
90
+ //background-image: -o-linear-gradient(top, $color-from 0%, $color-to 100%); // Opera 11.10+
91
+ background-image: linear-gradient(to bottom, $color-from 0%, $color-to 100%); // W3C
92
+ // filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#{$color-from}', endColorstr='#{$color-to}', GradientType=0 ); // IE6-9
93
+ }
94
+ @mixin directional-gradient($color-from, $color-to, $deg: 45deg) {
95
+ background-color: $color-from; // Old browsers
96
+ background-image: -webkit-gradient(linear, left bottom, right top, color-stop(0%,$color-from), color-stop(100%,$color-to)); // Chrome, Safari4+
97
+ background-image: -webkit-linear-gradient(45deg, $color-from 0%, $color-to 100%); // Chrome10+, Safari5.1+
98
+ // background-image: -moz-linear-gradient(45deg, $color-from 0%, $color-to 100%); // FF3.6+
99
+ // background-image: -ms-linear-gradient(45deg, $color-from 0%, $color-to 100%); // IE10+
100
+ //background-image: -o-linear-gradient(45deg, $color-from 0%, $color-to 100%); // Opera 11.10+
101
+ background-image: linear-gradient(45deg, $color-from 0%, $color-to 100%); // W3C
102
+ // filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#{$color-from}', endColorstr='#{$color-to}', GradientType=1 ); // IE6-9
103
+ }
104
+
105
+
106
+ // Transforms
107
+ // --------------------------------------------------
108
+ @mixin transform($transform...) {
109
+ -webkit-transform: $transform;
110
+ // -ms-transform: $transform;
111
+ transform: $transform;
112
+ }
113
+
114
+
115
+ // Transitions
116
+ // --------------------------------------------------
117
+ @mixin transition($transition...) {
118
+ -webkit-transition: $transition;
119
+ // -moz-transition: $transition;
120
+ transition: $transition;
121
+ }
122
+ @mixin transition-property($property...) {
123
+ -webkit-transition-property: $property;
124
+ // -moz-transition-property: $property;
125
+ transition-property: $property;
126
+ }
127
+ @mixin transition-duration($duration...) {
128
+ -webkit-transition-duration: $duration;
129
+ // -moz-transition-duration: $duration;
130
+ transition-duration: $duration;
131
+ }
132
+ @mixin transition-timing-function($function...) {
133
+ -webkit-transition-timing-function: $function;
134
+ // -moz-transition-timing-function: $function;
135
+ transition-timing-function: $function;
136
+ }
137
+
138
+
139
+ // Animations
140
+ // --------------------------------------------------
141
+ @mixin animation-name($name) {
142
+ -webkit-animation-name: $name;
143
+ // -moz-animation-name: $name;
144
+ animation-name: $name;
145
+ }
146
+ @mixin animation-duration($duration) {
147
+ -webkit-animation-duration: $duration;
148
+ // -moz-animation-duration: $duration;
149
+ animation-duration: $duration;
150
+ }
151
+ @mixin animation-direction($direction) {
152
+ -webkit-animation-direction: $direction;
153
+ // -moz-animation-direction: $direction;
154
+ animation-direction: $direction;
155
+ }
156
+
157
+
158
+ // Misc
159
+ // --------------------------------------------------
160
+ @mixin hairline($type, $color, $offset) {
161
+ &:after{
162
+ position: absolute;
163
+ left: $offset;
164
+ right: 0;
165
+ bottom: 0;
166
+ height: 1px;
167
+ background-color: $color;
168
+ content:'';
169
+ -webkit-transform: scaleY(0.5);
170
+ transform: scaleY(0.5);
171
+ }
172
+ @if $type == double {
173
+ &:before{
174
+ position: absolute;
175
+ left: $offset;
176
+ right: 0;
177
+ top: 0;
178
+ height: 1px;
179
+ background-color: $color;
180
+ content:'';
181
+ -webkit-transform: scaleY(0.5);
182
+ transform: scaleY(0.5);
183
+ }
184
+ }
185
+ // background: repeat-x bottom left
186
+ // url(data:image/gif;base64,R0lGODlhAQACAPABAMjHzP///yH/C1hNUCBEYXRhWE1QAz94cAAh+QQFAAABACwAAAAAAQACAAACAgwKADs=);
187
+ // background-size: 100% 1px;
188
+ //@if $type == single {
189
+ // background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='1'><rect fill='#{$color}' x='0' y='0' width='100%' height='0.5'/></svg>");
190
+ // background-position: $offset 100%;
191
+ //
192
+ //} @else if $type == double {
193
+ // background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='1'><rect fill='#{$color}' x='0' y='0' width='100%' height='0.5'/></svg>"),
194
+ // url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='1'><rect fill='#{$color}' x='0' y='0' width='100%' height='0.5'/></svg>");
195
+ // background-position: $offset 100%, $offset 0;
196
+ //}
197
+ //background-repeat: no-repeat;
198
+ }
199
+
200
+ //button
201
+ @mixin btn($color){
202
+ color: #fff;
203
+ background-color: $color;
204
+ border: 1px solid $color;
205
+
206
+ &:enabled:active,
207
+ &.#{$namespace}active:enabled {
208
+ color: #fff;
209
+ background-color: darken($color, 10%);
210
+ border: 1px solid darken($color, 10%);
211
+ }
212
+ }
@@ -0,0 +1,34 @@
1
+ //
2
+ // Modals
3
+ // --------------------------------------------------
4
+
5
+ .#{$namespace}modal {
6
+ position: fixed;
7
+ top: 0;
8
+ z-index: z("modal");
9
+ width: 100%;
10
+ min-height: 100%;
11
+ overflow: hidden;
12
+ background-color: #fff;
13
+ opacity: 0;
14
+ -webkit-transition: -webkit-transform .25s, opacity 1ms .25s;
15
+ transition: transform .25s, opacity 1ms .25s;
16
+ @include transform(translate3d(0, 100%, 0));
17
+ @include transition-timing-function($timing-fuction);
18
+
19
+ // Active modal
20
+ &.#{$namespace}active {
21
+ height: 100%;
22
+ opacity: 1;
23
+ -webkit-transition: -webkit-transform .25s;
24
+ transition: transform .25s;
25
+ @include transform(translate3d(0, 0, 0));
26
+ @include transition-timing-function($timing-fuction);
27
+ }
28
+ }
29
+ .#{$namespace}android .#{$namespace}modal .#{$namespace}bar{
30
+ position: static;
31
+ }
32
+ .#{$namespace}android .#{$namespace}modal .#{$namespace}bar-nav~.#{$namespace}content{
33
+ padding-top: 0;
34
+ }
@@ -0,0 +1,46 @@
1
+
2
+ // Variables
3
+ @import "variables.scss";
4
+
5
+ // Mixins
6
+ @import "mixins.scss";
7
+
8
+ // Normalize & Base CSS
9
+ @import "normalize.scss";
10
+ @import "base.scss";
11
+ @import "type.scss";
12
+ @import "grid.scss";
13
+
14
+ // Components
15
+ @import "scroll.scss";
16
+ //@import "iscroll.scss";
17
+ @import "off-canvas.scss";
18
+ @import "loadings.scss";
19
+ @import "buttons.scss";
20
+ @import "bars.scss";
21
+ @import "badges.scss";
22
+ @import "cards.scss";
23
+ @import "table-views.scss";
24
+ @import "slider-cell.scss";
25
+ @import "forms.scss";
26
+ @import "segmented-controls.scss";
27
+ @import "popovers.scss";
28
+ @import "pagination.scss";
29
+
30
+ // Javascript components
31
+ @import "modals.scss";
32
+ @import "sliders.scss";
33
+ @import "switches.scss";
34
+ @import "push.scss";
35
+ @import "pullrefreshs.scss";
36
+ @import "toast.scss";
37
+
38
+ @import "number.scss";
39
+
40
+ // Muiicons
41
+ @import "icon.scss";
42
+ // fullscreen
43
+ @import "fullscreen.scss";
44
+ @import "hack.scss";
45
+ // os
46
+ @import "os.scss";