浏览代码

Here are all the files that contain the search bar that stays positioned under the toolbar

carlos.diaz44 4 年前
父节点
当前提交
8fa9a837c7
共有 100 个文件被更改,包括 40165 次插入0 次删除
  1. 1466
    0
      Searchbar/onsenui/CHANGELOG.md
  2. 202
    0
      Searchbar/onsenui/LICENSE
  3. 110
    0
      Searchbar/onsenui/README.md
  4. 26
    0
      Searchbar/onsenui/bower.json
  5. 33
    0
      Searchbar/onsenui/css-components-src/README.md
  6. 276
    0
      Searchbar/onsenui/css-components-src/gulpfile.js
  7. 二进制
      Searchbar/onsenui/css-components-src/misc/screenshot-01.png
  8. 二进制
      Searchbar/onsenui/css-components-src/misc/screenshot-02.png
  9. 48
    0
      Searchbar/onsenui/css-components-src/package.json
  10. 376
    0
      Searchbar/onsenui/css-components-src/patterns.yaml
  11. 64
    0
      Searchbar/onsenui/css-components-src/previewer-src/app.js
  12. 190
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/app-page.js
  13. 36
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/category-page.js
  14. 32
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/component-page.js
  15. 68
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/components-page.js
  16. 9
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/notfound-page.js
  17. 33
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/pattern-page.js
  18. 49
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/patterns-page.js
  19. 25
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/platform-select.js
  20. 30
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/preview-component.js
  21. 48
    0
      Searchbar/onsenui/css-components-src/previewer-src/components/theme-select.js
  22. 32
    0
      Searchbar/onsenui/css-components-src/previewer-src/index.html.eco
  23. 13
    0
      Searchbar/onsenui/css-components-src/previewer-src/select-icon.svg
  24. 313
    0
      Searchbar/onsenui/css-components-src/previewer-src/style.css
  25. 31
    0
      Searchbar/onsenui/css-components-src/previewer-src/util.js
  26. 229
    0
      Searchbar/onsenui/css-components-src/src/components/action-sheet.css
  27. 328
    0
      Searchbar/onsenui/css-components-src/src/components/alert-dialog.css
  28. 115
    0
      Searchbar/onsenui/css-components-src/src/components/button-bar.css
  29. 436
    0
      Searchbar/onsenui/css-components-src/src/components/button.css
  30. 102
    0
      Searchbar/onsenui/css-components-src/src/components/card.css
  31. 331
    0
      Searchbar/onsenui/css-components-src/src/components/checkbox.css
  32. 86
    0
      Searchbar/onsenui/css-components-src/src/components/combination.css
  33. 79
    0
      Searchbar/onsenui/css-components-src/src/components/dialog.css
  34. 256
    0
      Searchbar/onsenui/css-components-src/src/components/fab.css
  35. 83
    0
      Searchbar/onsenui/css-components-src/src/components/global.css
  36. 32
    0
      Searchbar/onsenui/css-components-src/src/components/index.css
  37. 1044
    0
      Searchbar/onsenui/css-components-src/src/components/list.css
  38. 41
    0
      Searchbar/onsenui/css-components-src/src/components/modal.css
  39. 68
    0
      Searchbar/onsenui/css-components-src/src/components/notification.css
  40. 105
    0
      Searchbar/onsenui/css-components-src/src/components/page.css
  41. 197
    0
      Searchbar/onsenui/css-components-src/src/components/popover.css
  42. 150
    0
      Searchbar/onsenui/css-components-src/src/components/progress-bar.css
  43. 135
    0
      Searchbar/onsenui/css-components-src/src/components/progress-circular.css
  44. 246
    0
      Searchbar/onsenui/css-components-src/src/components/radio-button.css
  45. 245
    0
      Searchbar/onsenui/css-components-src/src/components/range.css
  46. 96
    0
      Searchbar/onsenui/css-components-src/src/components/search-input.css
  47. 176
    0
      Searchbar/onsenui/css-components-src/src/components/segment.css
  48. 203
    0
      Searchbar/onsenui/css-components-src/src/components/select.css
  49. 224
    0
      Searchbar/onsenui/css-components-src/src/components/switch.css
  50. 523
    0
      Searchbar/onsenui/css-components-src/src/components/tabbar.css
  51. 189
    0
      Searchbar/onsenui/css-components-src/src/components/text-input.css
  52. 79
    0
      Searchbar/onsenui/css-components-src/src/components/textarea.css
  53. 88
    0
      Searchbar/onsenui/css-components-src/src/components/toast.css
  54. 170
    0
      Searchbar/onsenui/css-components-src/src/components/toolbar-button.css
  55. 385
    0
      Searchbar/onsenui/css-components-src/src/components/toolbar.css
  56. 160
    0
      Searchbar/onsenui/css-components-src/src/components/util.css
  57. 5
    0
      Searchbar/onsenui/css-components-src/src/dark-onsen-css-components.css
  58. 147
    0
      Searchbar/onsenui/css-components-src/src/dark-theme.css
  59. 20
    0
      Searchbar/onsenui/css-components-src/src/img/android-search-input-icon.svg
  60. 14
    0
      Searchbar/onsenui/css-components-src/src/img/ios-search-input-icon.svg
  61. 16
    0
      Searchbar/onsenui/css-components-src/src/img/select-arrow.svg
  62. 14
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/action-sheet.css
  63. 318
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/combination.css
  64. 36
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/fab.css
  65. 11
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/global.css
  66. 30
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/index.css
  67. 12
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/page.css
  68. 7
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/tabbar.css
  69. 13
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/toast.css
  70. 14
    0
      Searchbar/onsenui/css-components-src/src/iphonex-support/toolbar.css
  71. 32
    0
      Searchbar/onsenui/css-components-src/src/license.css
  72. 5
    0
      Searchbar/onsenui/css-components-src/src/old-onsen-css-components.css
  73. 150
    0
      Searchbar/onsenui/css-components-src/src/old-theme.css
  74. 5
    0
      Searchbar/onsenui/css-components-src/src/onsen-css-components.css
  75. 147
    0
      Searchbar/onsenui/css-components-src/src/theme.css
  76. 210
    0
      Searchbar/onsenui/css-components-src/stylelint.config.js
  77. 6746
    0
      Searchbar/onsenui/css-components-src/yarn.lock
  78. 7395
    0
      Searchbar/onsenui/css/dark-onsen-css-components.css
  79. 31
    0
      Searchbar/onsenui/css/dark-onsen-css-components.min.css
  80. 4329
    0
      Searchbar/onsenui/css/font_awesome/css/all.css
  81. 5
    0
      Searchbar/onsenui/css/font_awesome/css/all.min.css
  82. 14
    0
      Searchbar/onsenui/css/font_awesome/css/brands.css
  83. 5
    0
      Searchbar/onsenui/css/font_awesome/css/brands.min.css
  84. 4296
    0
      Searchbar/onsenui/css/font_awesome/css/fontawesome.css
  85. 5
    0
      Searchbar/onsenui/css/font_awesome/css/fontawesome.min.css
  86. 15
    0
      Searchbar/onsenui/css/font_awesome/css/regular.css
  87. 5
    0
      Searchbar/onsenui/css/font_awesome/css/regular.min.css
  88. 16
    0
      Searchbar/onsenui/css/font_awesome/css/solid.css
  89. 5
    0
      Searchbar/onsenui/css/font_awesome/css/solid.min.css
  90. 346
    0
      Searchbar/onsenui/css/font_awesome/css/svg-with-js.css
  91. 5
    0
      Searchbar/onsenui/css/font_awesome/css/svg-with-js.min.css
  92. 2166
    0
      Searchbar/onsenui/css/font_awesome/css/v4-shims.css
  93. 5
    0
      Searchbar/onsenui/css/font_awesome/css/v4-shims.min.css
  94. 二进制
      Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.eot
  95. 3459
    0
      Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.svg
  96. 二进制
      Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.ttf
  97. 二进制
      Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.woff
  98. 二进制
      Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.woff2
  99. 二进制
      Searchbar/onsenui/css/font_awesome/webfonts/fa-regular-400.eot
  100. 0
    0
      Searchbar/onsenui/css/font_awesome/webfonts/fa-regular-400.svg

+ 1466
- 0
Searchbar/onsenui/CHANGELOG.md
文件差异内容过多而无法显示
查看文件


+ 202
- 0
Searchbar/onsenui/LICENSE 查看文件

@@ -0,0 +1,202 @@
1
+
2
+                                 Apache License
3
+                           Version 2.0, January 2004
4
+                        http://www.apache.org/licenses/
5
+
6
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+   1. Definitions.
9
+
10
+      "License" shall mean the terms and conditions for use, reproduction,
11
+      and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+      "Licensor" shall mean the copyright owner or entity authorized by
14
+      the copyright owner that is granting the License.
15
+
16
+      "Legal Entity" shall mean the union of the acting entity and all
17
+      other entities that control, are controlled by, or are under common
18
+      control with that entity. For the purposes of this definition,
19
+      "control" means (i) the power, direct or indirect, to cause the
20
+      direction or management of such entity, whether by contract or
21
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+      outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+      "You" (or "Your") shall mean an individual or Legal Entity
25
+      exercising permissions granted by this License.
26
+
27
+      "Source" form shall mean the preferred form for making modifications,
28
+      including but not limited to software source code, documentation
29
+      source, and configuration files.
30
+
31
+      "Object" form shall mean any form resulting from mechanical
32
+      transformation or translation of a Source form, including but
33
+      not limited to compiled object code, generated documentation,
34
+      and conversions to other media types.
35
+
36
+      "Work" shall mean the work of authorship, whether in Source or
37
+      Object form, made available under the License, as indicated by a
38
+      copyright notice that is included in or attached to the work
39
+      (an example is provided in the Appendix below).
40
+
41
+      "Derivative Works" shall mean any work, whether in Source or Object
42
+      form, that is based on (or derived from) the Work and for which the
43
+      editorial revisions, annotations, elaborations, or other modifications
44
+      represent, as a whole, an original work of authorship. For the purposes
45
+      of this License, Derivative Works shall not include works that remain
46
+      separable from, or merely link (or bind by name) to the interfaces of,
47
+      the Work and Derivative Works thereof.
48
+
49
+      "Contribution" shall mean any work of authorship, including
50
+      the original version of the Work and any modifications or additions
51
+      to that Work or Derivative Works thereof, that is intentionally
52
+      submitted to Licensor for inclusion in the Work by the copyright owner
53
+      or by an individual or Legal Entity authorized to submit on behalf of
54
+      the copyright owner. For the purposes of this definition, "submitted"
55
+      means any form of electronic, verbal, or written communication sent
56
+      to the Licensor or its representatives, including but not limited to
57
+      communication on electronic mailing lists, source code control systems,
58
+      and issue tracking systems that are managed by, or on behalf of, the
59
+      Licensor for the purpose of discussing and improving the Work, but
60
+      excluding communication that is conspicuously marked or otherwise
61
+      designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+      "Contributor" shall mean Licensor and any individual or Legal Entity
64
+      on behalf of whom a Contribution has been received by Licensor and
65
+      subsequently incorporated within the Work.
66
+
67
+   2. Grant of Copyright License. Subject to the terms and conditions of
68
+      this License, each Contributor hereby grants to You a perpetual,
69
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+      copyright license to reproduce, prepare Derivative Works of,
71
+      publicly display, publicly perform, sublicense, and distribute the
72
+      Work and such Derivative Works in Source or Object form.
73
+
74
+   3. Grant of Patent License. Subject to the terms and conditions of
75
+      this License, each Contributor hereby grants to You a perpetual,
76
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+      (except as stated in this section) patent license to make, have made,
78
+      use, offer to sell, sell, import, and otherwise transfer the Work,
79
+      where such license applies only to those patent claims licensable
80
+      by such Contributor that are necessarily infringed by their
81
+      Contribution(s) alone or by combination of their Contribution(s)
82
+      with the Work to which such Contribution(s) was submitted. If You
83
+      institute patent litigation against any entity (including a
84
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+      or a Contribution incorporated within the Work constitutes direct
86
+      or contributory patent infringement, then any patent licenses
87
+      granted to You under this License for that Work shall terminate
88
+      as of the date such litigation is filed.
89
+
90
+   4. Redistribution. You may reproduce and distribute copies of the
91
+      Work or Derivative Works thereof in any medium, with or without
92
+      modifications, and in Source or Object form, provided that You
93
+      meet the following conditions:
94
+
95
+      (a) You must give any other recipients of the Work or
96
+          Derivative Works a copy of this License; and
97
+
98
+      (b) You must cause any modified files to carry prominent notices
99
+          stating that You changed the files; and
100
+
101
+      (c) You must retain, in the Source form of any Derivative Works
102
+          that You distribute, all copyright, patent, trademark, and
103
+          attribution notices from the Source form of the Work,
104
+          excluding those notices that do not pertain to any part of
105
+          the Derivative Works; and
106
+
107
+      (d) If the Work includes a "NOTICE" text file as part of its
108
+          distribution, then any Derivative Works that You distribute must
109
+          include a readable copy of the attribution notices contained
110
+          within such NOTICE file, excluding those notices that do not
111
+          pertain to any part of the Derivative Works, in at least one
112
+          of the following places: within a NOTICE text file distributed
113
+          as part of the Derivative Works; within the Source form or
114
+          documentation, if provided along with the Derivative Works; or,
115
+          within a display generated by the Derivative Works, if and
116
+          wherever such third-party notices normally appear. The contents
117
+          of the NOTICE file are for informational purposes only and
118
+          do not modify the License. You may add Your own attribution
119
+          notices within Derivative Works that You distribute, alongside
120
+          or as an addendum to the NOTICE text from the Work, provided
121
+          that such additional attribution notices cannot be construed
122
+          as modifying the License.
123
+
124
+      You may add Your own copyright statement to Your modifications and
125
+      may provide additional or different license terms and conditions
126
+      for use, reproduction, or distribution of Your modifications, or
127
+      for any such Derivative Works as a whole, provided Your use,
128
+      reproduction, and distribution of the Work otherwise complies with
129
+      the conditions stated in this License.
130
+
131
+   5. Submission of Contributions. Unless You explicitly state otherwise,
132
+      any Contribution intentionally submitted for inclusion in the Work
133
+      by You to the Licensor shall be under the terms and conditions of
134
+      this License, without any additional terms or conditions.
135
+      Notwithstanding the above, nothing herein shall supersede or modify
136
+      the terms of any separate license agreement you may have executed
137
+      with Licensor regarding such Contributions.
138
+
139
+   6. Trademarks. This License does not grant permission to use the trade
140
+      names, trademarks, service marks, or product names of the Licensor,
141
+      except as required for reasonable and customary use in describing the
142
+      origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+   7. Disclaimer of Warranty. Unless required by applicable law or
145
+      agreed to in writing, Licensor provides the Work (and each
146
+      Contributor provides its Contributions) on an "AS IS" BASIS,
147
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+      implied, including, without limitation, any warranties or conditions
149
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+      PARTICULAR PURPOSE. You are solely responsible for determining the
151
+      appropriateness of using or redistributing the Work and assume any
152
+      risks associated with Your exercise of permissions under this License.
153
+
154
+   8. Limitation of Liability. In no event and under no legal theory,
155
+      whether in tort (including negligence), contract, or otherwise,
156
+      unless required by applicable law (such as deliberate and grossly
157
+      negligent acts) or agreed to in writing, shall any Contributor be
158
+      liable to You for damages, including any direct, indirect, special,
159
+      incidental, or consequential damages of any character arising as a
160
+      result of this License or out of the use or inability to use the
161
+      Work (including but not limited to damages for loss of goodwill,
162
+      work stoppage, computer failure or malfunction, or any and all
163
+      other commercial damages or losses), even if such Contributor
164
+      has been advised of the possibility of such damages.
165
+
166
+   9. Accepting Warranty or Additional Liability. While redistributing
167
+      the Work or Derivative Works thereof, You may choose to offer,
168
+      and charge a fee for, acceptance of support, warranty, indemnity,
169
+      or other liability obligations and/or rights consistent with this
170
+      License. However, in accepting such obligations, You may act only
171
+      on Your own behalf and on Your sole responsibility, not on behalf
172
+      of any other Contributor, and only if You agree to indemnify,
173
+      defend, and hold each Contributor harmless for any liability
174
+      incurred by, or claims asserted against, such Contributor by reason
175
+      of your accepting any such warranty or additional liability.
176
+
177
+   END OF TERMS AND CONDITIONS
178
+
179
+   APPENDIX: How to apply the Apache License to your work.
180
+
181
+      To apply the Apache License to your work, attach the following
182
+      boilerplate notice, with the fields enclosed by brackets "[]"
183
+      replaced with your own identifying information. (Don't include
184
+      the brackets!)  The text should be enclosed in the appropriate
185
+      comment syntax for the file format. We also recommend that a
186
+      file or class name and description of purpose be included on the
187
+      same "printed page" as the copyright notice for easier
188
+      identification within third-party archives.
189
+
190
+   Copyright 2013-2018 ASIAL CORPORATION
191
+
192
+   Licensed under the Apache License, Version 2.0 (the "License");
193
+   you may not use this file except in compliance with the License.
194
+   You may obtain a copy of the License at
195
+
196
+       http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+   Unless required by applicable law or agreed to in writing, software
199
+   distributed under the License is distributed on an "AS IS" BASIS,
200
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+   See the License for the specific language governing permissions and
202
+   limitations under the License.

+ 110
- 0
Searchbar/onsenui/README.md 查看文件

@@ -0,0 +1,110 @@
1
+
2
+<p align="center"><a href="https://onsen.io/" target="_blank"><img width="140" src="https://onsenui.github.io/art/logos/onsenui-logo-1.png"></a></p>
3
+
4
+<p align="center">
5
+  <a href="https://community.onsen.io/"><img src="https://img.shields.io/badge/forum-onsen--ui-FF412D.svg" alt="Forum"></a>
6
+  <a href="https://github.com/OnsenUI/OnsenUI/blob/master/core/src/onsenui.d.ts"><img src="http://definitelytyped.org/badges/standard.svg" alt="TypeScript definitions"></a>
7
+  <br>
8
+  <a href="https://circleci.com/gh/OnsenUI/OnsenUI"><img src="https://circleci.com/gh/OnsenUI/OnsenUI.svg?style=shield" alt="Circle CI"></a>
9
+  <a href="https://badge.fury.io/js/onsenui"><img src="https://badge.fury.io/js/onsenui.svg" alt="NPM version"></a>
10
+  <a href="https://cdnjs.com/libraries/onsen"><img src="https://img.shields.io/cdnjs/v/onsen.svg" alt="CDNJS"></a>
11
+</p>
12
+
13
+# [Onsen UI](https://onsen.io/) - Cross-Platform Hybrid App and PWA Framework
14
+
15
+Onsen UI is an <strong>open source</strong> framework that makes it easy to create native-feeling Progressive Web Apps (PWAs) and hybrid apps.
16
+
17
+The core library is written in <strong>pure Javascript</strong> (on top of <a href="http://webcomponents.org/">Web Components</a>) and is <strong>framework agnostic</strong>, which means you can use it with your favorite framework and its tools. We provide some extra binding packages to make it easy to use Onsen UI's API with many popular frameworks:
18
+
19
+<table>
20
+  <tbody><tr>
21
+    <td align="center" width="150"><a href="https://onsen.io/react"><img src="https://onsen.io/images/common/icn_react_top.svg" height="40"><br><strong>React</strong></a></td>
22
+    <td align="center" width="150"><a href="https://onsen.io/angular2"><img src="https://onsen.io/images/common/icn_angular2_top.svg" height="40"><br><strong>Angular 2+</strong></a><br></td>
23
+    <td align="center" width="150"><a href="https://onsen.io/vue"><img src="https://onsen.io/images/common/icn_vuejs_top.svg" height="40"><br><strong>Vue</strong></a><br></td>
24
+    <td align="center" width="150"><a href="https://onsen.io/v2/docs/guide/angular1/index.html"><img src="https://onsen.io/images/common/icn_angular1_top.svg" height="40"><br><strong>AngularJS 1.x</strong></a><br></td>
25
+  </tr></tbody>
26
+</table>
27
+
28
+Some other frameworks are supported by __community__ packages (not tested or implemented by the core team): [Aurelia](https://www.npmjs.com/package/aurelia-onsenui), [EmberJS](https://www.npmjs.com/package/ember-onsenui).
29
+
30
+Both <strong>flat (iOS) and Material (Android) designs</strong> are included. The components are optionally auto-styled based on the platform, which makes it possible to support both iOS and Android with the <strong>same source code</strong>.
31
+
32
+
33
+## Getting started
34
+We have several resources to help you get started creating hybrid apps and PWAs with Onsen UI:
35
+
36
+* __The official docs__: We provide guides and references for all of the components and bindings, as well as how to publish your app. These are our _Getting Started_ guides:
37
+  * [Core guide (no framework)](https://onsen.io/v2/guide)
38
+  * [Vue guide](https://onsen.io/v2/guide/vue/)
39
+  * [React guide](https://onsen.io/v2/guide/react/)
40
+  * [Angular 2+ guide](https://onsen.io/v2/guide/angular2/)
41
+  * [AngularJS 1.x guide](https://onsen.io/v2/guide/angular1/)
42
+  * [jQuery guide](https://onsen.io/v2/guide/jquery/)
43
+  * [Creating an Onsen UI hybrid app using Cordova](https://onsen.io/v2/guide/hybrid/cordova.html)
44
+  * [Progressive Web Apps (PWAs) with Onsen UI](https://onsen.io/v2/guide/pwa/intro.html)
45
+* __Components overview__: a [list of included CSS components](https://onsen.io/v2/docs/css.html) in both flat and Material Design. Note that these components are just pure and performant CSS without JavaScript behavior. Some extra details (such as dragging or ripple effect) are added by Onsen UI custom elements.
46
+* __Playground__: an [interactive Onsen UI tutorial](https://onsen.io/playground/) where you can learn how to use Onsen UI and play around with the components.
47
+* __Blog__: there are lots of great tutorials and guides published in our [official Onsen UI blog](https://onsen.io/blog/categories/tutorial.html) and we are adding new content regularly.
48
+* __Support__: if you are having trouble using some component the best place to get help is the [Onsen UI Forum](https://community.onsen.io/) or the community-run [Discord Chat](https://discord.gg/JWhBbnE). We are also available to answer short questions on Twitter at [@Onsen_UI](https://twitter.com/Onsen_UI).
49
+
50
+## Get Onsen UI
51
+
52
+### __Download the latest released version__
53
+We have a [distribution repository](https://github.com/OnsenUI/OnsenUI-dist/releases) with changelog. Onsen UI is also available in __npm__, __bower__ and __jspm__. Example:
54
+
55
+```bash
56
+npm install onsenui
57
+```
58
+
59
+This downloads the core Onsen UI library. To install bindings, you can install `react-onsenui`, `vue-onsenui`, `ngx-onsenui` or `angularjs-onsenui`.
60
+
61
+### __Download or request from a CDN__
62
+You can also take the necessary files from a CDN. Some of the options are [unpkg](https://unpkg.com/onsenui/), [jsDelivr](https://www.jsdelivr.com/package/npm/onsenui) and [cdnjs](https://cdnjs.com/libraries/onsen).
63
+
64
+### __Get the latest development build__
65
+Optionally, you can download the [latest development build here](https://onsenui.github.io/latest-build). Be careful, usually everything there is already tested but it might be unstable sometimes.
66
+
67
+## Examples with source code
68
+There are lots of sample applications written using Onsen UI. __[Here are some examples](https://onsen.io/samples) with source code and tutorials__ to give you an idea of what kind of apps you can create.
69
+
70
+<p align="center">
71
+  <a href="https://argelius.github.io/angular2-onsenui-pokedex/" target="_blank"><img src="https://onsen.io/images/samples/pokedex-pikachu.png"></a>
72
+  <a href="http://argelius.github.io/react-onsenui-redux-weather/demo.html" target="_blank"><img src="https://onsen.io/images/samples/react-redux-weather.png"></a>
73
+  <a href="https://frandiox.github.io/OnsenUI-YouTube" target="_blank"><img src="https://onsen.io/images/samples/youtube.png"></a>
74
+</p>
75
+
76
+## Onsen UI ecosystem
77
+Because sometimes a UI framework may not be enough to make hybrid app development easy, Onsen UI comes with a __complete ecosystem__ of well integrated tools. Meet [__Monaca__](https://monaca.io/).
78
+
79
+<p align="center"><a href="https://monaca.io" target="_blank"><img width="300"src="https://onsenui.github.io/art/logos/monaca-logo-2.png"></a></p>
80
+
81
+Developed by the Onsen UI team, __Monaca__ is a toolkit that makes hybrid mobile app development with __PhoneGap / Cordova__ simple and easy: Onsen UI Cordova templates, debugging suite, push notifications, remote build, back-end solutions, encryption, version control, continuous integration and more. Furthermore, it provides multiple development environments with everything already configured and ready to go:
82
+
83
+<p align="center">
84
+  <a href="https://monaca.io/cloud.html"><strong>Cloud IDE</strong></a> -
85
+  <a href="https://monaca.io/cli.html"><strong>Command Line Interface</strong></a> -
86
+  <a href="https://monaca.io/localkit.html"><strong>Localkit GUI</strong></a>
87
+</p>
88
+
89
+Example with __CLI__:
90
+
91
+```
92
+$ [sudo] npm -g install monaca
93
+$ monaca create helloworld # And choose the starter template
94
+$ monaca preview # Preview on the browser
95
+$ monaca debug # Preview on a real device
96
+$ monaca remote build --browser # Production build on the cloud
97
+```
98
+
99
+See the [Onsen UI Getting Started Page](http://onsen.io/v2/guide/) for more information.
100
+
101
+## Browser Support
102
+Onsen UI is tested to work with the following browsers and mobile OS.
103
+
104
+ * Android 4.4.4+
105
+ * iOS 9+
106
+ * Chrome
107
+ * Safari
108
+
109
+## Contribution
110
+We welcome your contribution, no matter how big or small! Please have a look at the [contribution guide](https://github.com/OnsenUI/OnsenUI/blob/master/CONTRIBUTING.md) for details about project structure, development environment, test suite, code style, etc. All the version updates are mentioned in the [changelog](https://github.com/OnsenUI/OnsenUI/blob/master/CHANGELOG.md).

+ 26
- 0
Searchbar/onsenui/bower.json 查看文件

@@ -0,0 +1,26 @@
1
+{
2
+  "name": "onsenui",
3
+  "homepage": "https://onsen.io",
4
+  "authors": [
5
+    "Kruy Vanna <kruyvanna@gmail.com>",
6
+    "Mitsunori KUBOTA <anatoo.jp@gmail.com>"
7
+  ],
8
+  "description": "Web Component inspired HTML5 UI framework for building modern mobile application",
9
+  "main": [
10
+    "js/onsenui.js",
11
+    "css/onsenui.css",
12
+    "css/onsen-css-components.css"
13
+  ],
14
+  "keywords": [
15
+    "onsenui",
16
+    "angular",
17
+    "html5",
18
+    "cordova",
19
+    "phonegap",
20
+    "web",
21
+    "component",
22
+    "monaca"
23
+  ],
24
+  "dependencies": {},
25
+  "license": "Apache License, Version 2.0"
26
+}

+ 33
- 0
Searchbar/onsenui/css-components-src/README.md 查看文件

@@ -0,0 +1,33 @@
1
+# Onsen CSS Components
2
+
3
+Onsen CSS Components is CSS components for Cordova Apps.
4
+
5
+![Screenshot](./misc/screenshot-01.png)
6
+![Screenshot](./misc/screenshot-02.png)
7
+
8
+## How to Build
9
+
10
+This CSS components is built by PostCSS + cssnext. You can build with following commands.
11
+
12
+```
13
+$ yarn install --pure-lockfile
14
+$ yarn run build
15
+```
16
+
17
+## How to Customize CSS Components
18
+
19
+Execute the following command.
20
+
21
+```
22
+$ yarn install --pure-lockfile
23
+$ yarn run serve
24
+```
25
+
26
+When you open `http://localhost:4321/` in the browser, a preview of the CSS components is displayed.
27
+
28
+When you edit the cssnext files under the `src` directory, the cssnext files is automatically built into the CSS and the browser is reloaded. The built CSS file is located in `./build/onsen-css-components.css`.
29
+
30
+To customize theme colors, you can edit `./src/theme.css`. This file contains CSS variables for the theme colors.
31
+
32
+If you want to customize components' details, you can edit `./src/components/*.css`. These files contain actual rules for all CSS components. But these files may be changed significantly by minor version release.
33
+

+ 276
- 0
Searchbar/onsenui/css-components-src/gulpfile.js 查看文件

@@ -0,0 +1,276 @@
1
+const gulp = require('gulp');
2
+const pkg = require('./package.json');
3
+const corePkg = require('../package.json');
4
+const merge = require('event-stream').merge;
5
+const browserSync = require('browser-sync').create();
6
+const $ = require('gulp-load-plugins')();
7
+const eco = require('eco');
8
+const fs = require('fs');
9
+const ancss = require('@onsenui/ancss');
10
+const cssnextPlugin = require('postcss-cssnext');
11
+const reporter = require('postcss-reporter');
12
+const historyApiFallback = require('connect-history-api-fallback');
13
+const {rollup} = require('rollup');
14
+const babel = require('rollup-plugin-babel');
15
+const commonjs = require('rollup-plugin-commonjs');
16
+const glob = require('glob');
17
+const rimraf = require('rimraf');
18
+const path = require('path');
19
+const yaml = require('js-yaml');
20
+
21
+// Include these plugins outside $ to fix gulp-hub
22
+const plumber = require('gulp-plumber');
23
+const postcss = require('gulp-postcss');
24
+const stylelintPlugin = require('gulp-stylelint');
25
+
26
+const prefix = __dirname + '/../build/css/';
27
+const babelrc = Object.assign({}, corePkg.babel);
28
+babelrc.babelrc = babelrc.presets[0][1].modules = false;
29
+babelrc.exclude = 'node_modules/**';
30
+
31
+const cwdOption = {
32
+  cwd: __dirname // makes sure the correct relative path is used when tasks are run from main OnsenUI gulpfile
33
+};
34
+
35
+////////////////////////////////////////
36
+// build-css
37
+////////////////////////////////////////
38
+gulp.task('build-css', gulp.series(cssClean, stylelint, cssnext, cssmin));
39
+
40
+////////////////////////////////////////
41
+// build
42
+////////////////////////////////////////
43
+gulp.task('build', gulp.series('build-css', generatePreview));
44
+
45
+////////////////////////////////////////
46
+// stylelint
47
+////////////////////////////////////////
48
+function stylelint() {
49
+  return gulp.src([
50
+      './src/**/*.css',
51
+      '!./src/components/combination.css', // not following BEM
52
+      '!./src/iphonex-support/**/*.css' // not following BEM
53
+    ], cwdOption)
54
+    .pipe(stylelintPlugin({
55
+      failAfterError: false,
56
+      reporters: [{formatter: 'string', console: true}],
57
+      configFile: path.join(__dirname, 'stylelint.config.js') // uses css-components/stylelint.config.js even when run from main gulpfile
58
+    }));
59
+}
60
+
61
+////////////////////////////////////////
62
+// cssmin
63
+////////////////////////////////////////
64
+function cssmin() {
65
+  return gulp.src(prefix + '{*-,}onsen-css-components.css')
66
+    .pipe($.cssmin())
67
+    .pipe($.rename({suffix: '.min'}))
68
+    .pipe(gulp.dest('./build/'))
69
+    .pipe(gulp.dest(prefix));
70
+}
71
+
72
+////////////////////////////////////////
73
+// cssnext
74
+////////////////////////////////////////
75
+function cssnext() {
76
+  const plugins = [
77
+    require('postcss-import'),
78
+    require('postcss-base64')({
79
+      extensions: ['.svg'],
80
+      root: __dirname + '/src/components/'
81
+    }),
82
+    cssnextPlugin({
83
+      browsers: babelrc.presets[0][1].targets.browsers,
84
+    }),
85
+    reporter({
86
+      clearAllMessages: true,
87
+      clearReportedMessages: true,
88
+      throwError: false
89
+    })
90
+  ];
91
+
92
+  return gulp.src('src/{*-,}onsen-css-components.css', cwdOption)
93
+    //.pipe(plumber()) // this was causing the task to never complete with gulp 4, but why...?
94
+    .pipe(postcss(plugins))
95
+    .pipe(gulp.dest('./build/'))
96
+    .pipe(gulp.dest(prefix))
97
+    .pipe(browserSync.stream());
98
+}
99
+gulp.task('cssnext', gulp.series(stylelint, cssnext));
100
+
101
+function cssClean(done) {
102
+  rimraf.sync(__dirname + '/build/{*-,}onsen-css-components.css');
103
+  rimraf.sync(__dirname + '/build/{*-,}onsen-css-components.min.css');
104
+  rimraf.sync(prefix + '/{*-,}onsen-css-components.css');
105
+  rimraf.sync(prefix + '/{*-,}onsen-css-components.min.css');
106
+  done();
107
+}
108
+gulp.task('css-clean', cssClean);
109
+
110
+////////////////////////////////////////
111
+// generate-preview
112
+////////////////////////////////////////
113
+let lastMarkupToken = '';
114
+
115
+function generatePreview(done) {
116
+  const components = parseComponents();
117
+  const markupToken = identifyComponentsMarkup(components);
118
+
119
+  if (markupToken !== lastMarkupToken) {
120
+    gulp.series(previewAssets, previewJs, (done) => {
121
+      generate(components);
122
+      browserSync.reload();
123
+
124
+      lastMarkupToken = markupToken;
125
+      done();
126
+    })();
127
+    done();
128
+  } else {
129
+    lastMarkupToken = markupToken;
130
+    done();
131
+  }
132
+}
133
+
134
+function generatePreviewForce(done) {
135
+  generate(parseComponents());
136
+  browserSync.reload();
137
+  done();
138
+}
139
+exports['generate-preview-force'] = gulp.series(previewAssets, previewJs, generatePreviewForce);
140
+
141
+function generate(components) {
142
+  const template = fs.readFileSync(__dirname + '/previewer-src/index.html.eco', 'utf-8');
143
+  const patterns = yaml.safeLoadAll(fs.readFileSync(__dirname + '/patterns.yaml', 'utf-8'));
144
+  const themes = glob.sync(__dirname + '/build/{*-,}onsen-css-components.css').map(filePath => path.basename(filePath, '.css'));
145
+  const toJSON = JSON.stringify.bind(JSON);
146
+
147
+  fs.writeFileSync(__dirname + '/build/index.html', eco.render(template, {toJSON, components, themes, patterns}), 'utf-8');
148
+}
149
+
150
+function identifyComponentsMarkup(componentsJSON) {
151
+  const token = componentsJSON.map(component => {
152
+    return component.annotation.markup;
153
+  }).join('');
154
+
155
+  return token;
156
+}
157
+
158
+function parseComponents() {
159
+  const css = fs.readFileSync(__dirname + '/build/onsen-css-components.css', 'utf-8');
160
+  const components = ancss.parse(css, {detect: line => line.match(/^~/)});
161
+  return components || [];
162
+}
163
+
164
+////////////////////////////////////////
165
+// preview-assets
166
+////////////////////////////////////////
167
+function previewAssets() {
168
+  return gulp.src('previewer-src/*.{svg,css}')
169
+    .pipe(gulp.dest('./build/'));
170
+}
171
+
172
+////////////////////////////////////////
173
+// preview-js
174
+////////////////////////////////////////
175
+function previewJs() {
176
+  return rollup({
177
+    input: 'previewer-src/app.js',
178
+    plugins: [
179
+      commonjs,
180
+      babel(babelrc)
181
+    ]
182
+  })
183
+  .then(bundle => {
184
+    return bundle.write({
185
+      file: 'build/app.gen.js',
186
+      format: 'umd',
187
+      sourcemap: 'inline'
188
+    });
189
+  });
190
+}
191
+
192
+////////////////////////////////////////
193
+// reset-console
194
+////////////////////////////////////////
195
+function reset(done) {
196
+  process.stdout.write('\x1Bc');
197
+  done();
198
+}
199
+
200
+const outputDevServerInfo = (() => {
201
+  let defer = true;
202
+
203
+  return function () {
204
+    if (defer) {
205
+      setTimeout(() => {
206
+        output();
207
+        defer = true;
208
+      }, 60);
209
+      defer = false;
210
+    }
211
+  }
212
+
213
+  function output() {
214
+    const localUrl = browserSync.getOption('urls').get('local');
215
+    const externalUrl = browserSync.getOption('urls').get('external');
216
+
217
+    console.log('\nAccess URLs:');
218
+    console.log('     Local:', $.util.colors.magenta(localUrl));
219
+    console.log('  External:', $.util.colors.magenta(externalUrl));
220
+    console.log();
221
+
222
+    displayBuildCSSInfo();
223
+  }
224
+})();
225
+
226
+function displayBuildCSSInfo() {
227
+
228
+  console.log('Built CSS Files:')
229
+  getCSSPaths().forEach(cssPath => {
230
+    console.log('  ' + $.util.colors.magenta(cssPath));
231
+  });
232
+
233
+  function getCSSPaths() {
234
+    return glob.sync(__dirname + '/build/{*-,}onsen-css-components.css').map(cssPath => {
235
+      return '.' + path.sep + path.relative(__dirname, cssPath);
236
+    });
237
+  }
238
+}
239
+
240
+function getCSSPaths() {
241
+  return glob.sync(__dirname + '/build/{*-,}onsen-css-components.css').map(cssPath => {
242
+    return '.' + path.sep + path.relative(__dirname, cssPath);
243
+  });
244
+}
245
+
246
+////////////////////////////////////////
247
+// serve
248
+////////////////////////////////////////
249
+function serve(done) {
250
+  gulp.watch(['src/**/*.css'], () => {
251
+    reset();
252
+    gulp.series('build-css', 'generate-preview', outputDevServerInfo);
253
+  });
254
+
255
+  gulp.watch(['previewer-src/**', 'patterns.yaml'], () => {
256
+    reset();
257
+    gulp.series('generate-preview-force', outputDevServerInfo)
258
+  });
259
+
260
+  browserSync.emitter.on('init', outputDevServerInfo);
261
+
262
+  browserSync.init({
263
+    logLevel: 'silent',
264
+    ui: false,
265
+    port: 4321,
266
+    notify: false,
267
+    server: {
268
+      baseDir: __dirname + '/build',
269
+      middleware: [historyApiFallback()],
270
+    },
271
+    startPath: '/',
272
+    open: false
273
+  });
274
+}
275
+
276
+exports.serve = gulp.series('build', serve);

二进制
Searchbar/onsenui/css-components-src/misc/screenshot-01.png 查看文件


二进制
Searchbar/onsenui/css-components-src/misc/screenshot-02.png 查看文件


+ 48
- 0
Searchbar/onsenui/css-components-src/package.json 查看文件

@@ -0,0 +1,48 @@
1
+{
2
+  "name": "",
3
+  "version": "0.0.0",
4
+  "private": true,
5
+  "scripts": {
6
+    "build": "gulp build",
7
+    "serve": "gulp serve"
8
+  },
9
+  "dependencies": {
10
+    "browser-sync": "^2.18.6",
11
+    "eco": "^1.1.0-rc-3",
12
+    "event-stream": "3.3.4",
13
+    "gulp": "^4.0.0",
14
+    "gulp-cssmin": "^0.1.7",
15
+    "gulp-less": "^1.2.3",
16
+    "gulp-load-plugins": "^0.5.0",
17
+    "gulp-order": "^1.0.6",
18
+    "gulp-plumber": "^0.6.1",
19
+    "gulp-postcss": "^7.0.0",
20
+    "gulp-rename": "^1.2.2",
21
+    "gulp-shell": "^0.2.4",
22
+    "gulp-stylelint": "^3.9.0",
23
+    "gulp-stylus": "^1.0.0",
24
+    "gulp-util": "^2.2.14",
25
+    "immutable-css": "^1.1.2",
26
+    "postcss-base64": "^0.6.1",
27
+    "postcss-cssnext": "^3.0.2",
28
+    "postcss-import": "^9.1.0",
29
+    "postcss-reporter": "^3.0.0",
30
+    "rimraf": "^2.6.1"
31
+  },
32
+  "engines": {
33
+    "node": ">=0.10.0"
34
+  },
35
+  "devDependencies": {
36
+    "@onsenui/ancss": "^1.0.0",
37
+    "babel-core": "^6.25.0",
38
+    "babel-preset-env": "^1.6.1",
39
+    "babel-preset-stage-3": "^6.24.1",
40
+    "connect-history-api-fallback": "^1.3.0",
41
+    "glob": "^7.1.2",
42
+    "gulp-file": "^0.3.0",
43
+    "js-yaml": "^3.10.0",
44
+    "rollup": "^0.51.5",
45
+    "rollup-plugin-babel": "^3.0.2",
46
+    "rollup-plugin-commonjs": "^8.2.6"
47
+  }
48
+}

+ 376
- 0
Searchbar/onsenui/css-components-src/patterns.yaml 查看文件

@@ -0,0 +1,376 @@
1
+---
2
+name: Basic
3
+markup: |
4
+  <div class="page">
5
+    <div class="toolbar">
6
+      <div class="toolbar__left"><span class="toolbar-button">Label</span></div>
7
+      <div class="toolbar__center">Title</div>
8
+      <div class="toolbar__right"><span class="toolbar-button">Label</span></div>
9
+    </div>
10
+
11
+    <div>
12
+      <br>
13
+
14
+      <div class="list-title">Title</div>
15
+
16
+      <ul class="list">
17
+        <li class="list-item">
18
+          <div class="list-item__center">Item</div>
19
+        </li>
20
+        <li class="list-item">
21
+          <div class="list-item__center">Item</div>
22
+        </li>
23
+      </ul>
24
+
25
+      <br>
26
+
27
+      <ul class="list">
28
+        <li class="list-item">
29
+          <div class="list-item__center">
30
+            <div class="list-item__title">
31
+              Title
32
+            </div>
33
+            <div class="list-item__subtitle">
34
+              Subtitle
35
+            </div>
36
+          </div>
37
+        </li>
38
+        <li class="list-item">
39
+          <div class="list-item__center">
40
+            <div class="list-item__title">
41
+              Title
42
+            </div>
43
+            <div class="list-item__subtitle">
44
+              Subtitle
45
+            </div>
46
+          </div>
47
+        </li>
48
+      </ul>
49
+
50
+    </div>
51
+    <div class="bottom-bar">
52
+      <div class="bottom-bar__line-height" style="text-align:center">Label</div>
53
+    </div>
54
+  </div>
55
+---
56
+name: Material Basic
57
+markup: |
58
+  <div class="page page--material">
59
+    <div class="toolbar toolbar--material">
60
+      <div class="toolbar__left toolbar--material__left"></div>
61
+      <div class="toolbar__center toolbar--material__center">Title</div>
62
+      <div class="toolbar__right toolbar--material__right"></div>
63
+    </div>
64
+
65
+    <div>
66
+      <h3 class="list-title list-title--material">Title</h3>
67
+      <ul class="list list--material">
68
+        <li class="list-item list-item--material">
69
+          <div class="list-item__center list-item--material__center">Item</div>
70
+        </li>
71
+        <li class="list-item list-item--material">
72
+          <div class="list-item__center list-item--material__center">Item</div>
73
+        </li>
74
+      </ul>
75
+
76
+      <br>
77
+      <ul class="list list--material">
78
+        <li class="list-item list-item--material">
79
+          <div class="list-item__center list-item--material__center">
80
+            <div class="list-item__title list-item--material__title">Title</div>
81
+            <div class="list-item__subtitle list-item--material__subtitle">Subtitle</div>
82
+          </div>
83
+        </li>
84
+        <li class="list-item list-item--material">
85
+          <div class="list-item__center list-item--material__center">
86
+            <div class="list-item__title list-item--material__title">Title</div>
87
+            <div class="list-item__subtitle list-item--material__subtitle">Subtitle</div>
88
+          </div>
89
+        </li>
90
+      </ul>
91
+
92
+    </div>
93
+  </div>
94
+---
95
+name: Settings
96
+markup: |
97
+  <div class="page">
98
+    <div class="toolbar">
99
+      <div class="toolbar__left"><span class="toolbar-button">Label</span></div>
100
+      <div class="toolbar__center">Title</div>
101
+      <div class="toolbar__right"><span class="toolbar-button">Label</span></div>
102
+    </div>
103
+
104
+    <div>
105
+      <br>
106
+
107
+      <ul class="list">
108
+        <li class="list-item">
109
+          <div class="list-item__left">
110
+            <i class="ion-ios-volume-low" style="font-size: 28px"></i>
111
+          </div>
112
+          <div class="list-item__center">
113
+            <div class="range" style="width: 100%">
114
+              <input type="range" class="range__input">
115
+            </div>
116
+          </div>
117
+          <div class="list-item__right">
118
+            <i class="ion-ios-volume-high" style="font-size: 28px"></i>
119
+          </div>
120
+        </li>
121
+      </ul>
122
+
123
+      <br>
124
+
125
+      <ul class="list">
126
+        <li class="list-item">
127
+          <div class="list-item__center">
128
+            Label
129
+          </div>
130
+          <div class="list-item__right">
131
+            <label class="switch">
132
+              <input type="checkbox" class="switch__input" checked>
133
+              <div class="switch__toggle">
134
+                <div class="switch__handle"></div>
135
+              </div>
136
+            </label>
137
+          </div>
138
+        </li>
139
+      </ul>
140
+
141
+      <br>
142
+
143
+      <ul class="list">
144
+        <li class="list-item list-item--tappable">
145
+          <div class="list-item__left">
146
+            <label class="checkbox checkbox--noborder">
147
+              <input id="s1" type="checkbox" class="checkbox__input checkbox--noborder__input">
148
+              <div class="checkbox__checkmark checkbox--noborder checkbox--noborder__checkmark"></div>
149
+            </label>
150
+          </div>
151
+          <label for="s1" class="list-item__center">
152
+            Checkbox
153
+          </label>
154
+        </li>
155
+        <li class="list-item list-item--tappable">
156
+          <div class="list-item__left">
157
+            <label class="checkbox checkbox--noborder">
158
+              <input id="s2" type="checkbox" class="checkbox__input checkbox--noborder__input" checked>
159
+              <div class="checkbox__checkmark checkbox--noborder checkbox--noborder__checkmark"></div>
160
+            </label>
161
+          </div>
162
+          <label for="s2" class="list-item__center">
163
+            Checkbox
164
+          </label>
165
+        </li>
166
+      </ul>
167
+
168
+    </div>
169
+  </div>
170
+---
171
+name: Material Settings
172
+markup: |
173
+  <div class="page page--material">
174
+    <div class="toolbar toolbar--material">
175
+      <div class="toolbar__left toolbar--material__left"></div>
176
+      <div class="toolbar__center toolbar--material__center">Title</div>
177
+      <div class="toolbar__right toolbar--material__right"></div>
178
+    </div>
179
+
180
+    <div>
181
+      
182
+      <br>
183
+
184
+      <ul class="list list--material">
185
+        <li class="list-item list-item--material">
186
+          <div class="list-item__left list-item--material__left" style="min-width: 0; width: 20px;">
187
+            <i class="ion-ios-volume-low" style="font-size: 28px"></i>
188
+          </div>
189
+          <div class="list-item__center list-item--material__center">
190
+            <div class="range range--material" style="width: 100%">
191
+              <input type="range" class="range__input range--material__input">
192
+            </div>
193
+          </div>
194
+          <div class="list-item__right list-item--material__right">
195
+            <i class="ion-ios-volume-high" style="font-size: 28px"></i>
196
+          </div>
197
+        </li>
198
+      </ul>
199
+
200
+      <br>
201
+
202
+      <ul class="list list--material">
203
+        <li class="list-item list-item--material">
204
+          <div class="list-item__left list-item--material__left">
205
+            Label
206
+          </div>
207
+          <div class="list-item__center list-item--material__center">
208
+          </div>
209
+          <div class="list-item__right list-item--material__right">
210
+            <label class="switch switch--material">
211
+              <input type="checkbox" class="switch__input switch--material__input" checked>
212
+              <div class="switch__toggle switch--material__toggle">
213
+                <div class="switch__handle switch--material__handle"></div>
214
+              </div>
215
+            </label>
216
+          </div>
217
+        </li>
218
+      </ul>
219
+
220
+      <br>
221
+
222
+      <ul class="list list--material">
223
+        <li class="list-item list-item--material">
224
+          <div class="list-item__left list-item--material__left">
225
+            <label class="checkbox checkbox--material">
226
+              <input type="checkbox" id="checkbox3" class="checkbox__input checkbox--material__input">
227
+              <div class="checkbox__checkmark checkbox--material__checkmark"></div>
228
+            </label>
229
+          </div>
230
+
231
+          <label for="checkbox3" class="list-item__center list-item--material__center">
232
+            <div class="list-item__title list-item--material__title">Checkbox</div>
233
+          </label>
234
+        </li>
235
+
236
+        <li class="list-item list-item--material">
237
+          <div class="list-item__left list-item--material__left">
238
+            <label class="checkbox checkbox--material">
239
+              <input type="checkbox" id="checkbox4" class="checkbox__input checkbox--material__input" checked="checked">
240
+              <div class="checkbox__checkmark checkbox--material__checkmark"></div>
241
+            </label>
242
+          </div>
243
+
244
+          <label for="checkbox4" class="list-item__center list-item--material__center">
245
+            <div class="list-item__title list-item--material__title">Checkbox</div>
246
+          </label>
247
+        </li>
248
+
249
+      </ul>
250
+
251
+    </div>
252
+  </div>
253
+---
254
+name: Tabbar
255
+markup: |
256
+  <div class="page">
257
+    <div class="toolbar">
258
+      <div class="toolbar__left"></div>
259
+      <div class="toolbar__center">Title</div>
260
+      <div class="toolbar__right"></div>
261
+    </div>
262
+
263
+    <div class="tabbar">
264
+      <label class="tabbar__item">
265
+        <input type="radio" name="tabbar-a" checked="checked">
266
+        <button class="tabbar__button">
267
+          <i class="tabbar__icon ion-record"></i>
268
+          <div class="tabbar__label">Label</div>
269
+        </button>
270
+      </label>
271
+
272
+      <label class="tabbar__item">
273
+        <input type="radio" name="tabbar-a">
274
+        <button class="tabbar__button">
275
+          <i class="tabbar__icon ion-record"></i>
276
+          <div class="tabbar__label">Label</div>
277
+        </button>
278
+      </label>
279
+
280
+      <label class="tabbar__item">
281
+        <input type="radio" name="tabbar-a">
282
+        <button class="tabbar__button">
283
+          <i class="tabbar__icon ion-record"></i>
284
+          <div class="tabbar__label">Label</div>
285
+        </button>
286
+      </label>
287
+    </div>
288
+  </div>
289
+---
290
+name: Material Tabbar
291
+markup: |
292
+  <div class="page page--material">
293
+    <div class="toolbar toolbar--material">
294
+      <div class="toolbar__left toolbar--material__left"></div>
295
+      <div class="toolbar__center toolbar--material__center">Title</div>
296
+      <div class="toolbar__right toolbar--material__right"></div>
297
+    </div>
298
+
299
+    <div class="tabbar tabbar--material tabbar--top">
300
+      <label class="tabbar__item tabbar--material__item">
301
+        <input type="radio" name="material-tabbar" checked="checked">
302
+        <button class="tabbar__button tabbar--material__button">
303
+          <i class="tabbar__icon tabbar--material__icon ion-record"></i>
304
+          <div class="tabbar__label tabbar--material__label">Label</div>
305
+        </button>
306
+      </label>
307
+
308
+      <label class="tabbar__item tabbar--material__item">
309
+        <input type="radio" name="material-tabbar" checked="checked">
310
+        <button class="tabbar__button tabbar--material__button">
311
+          <i class="tabbar__icon tabbar--material__icon ion-record"></i>
312
+          <div class="tabbar__label tabbar--material__label">Label</div>
313
+        </button>
314
+      </label>
315
+
316
+      <label class="tabbar__item tabbar--material__item">
317
+        <input type="radio" name="material-tabbar" checked="checked">
318
+        <button class="tabbar__button tabbar--material__button">
319
+          <i class="tabbar__icon tabbar--material__icon ion-record"></i>
320
+          <div class="tabbar__label tabbar--material__label">Label</div>
321
+        </button>
322
+      </label>
323
+    </div>
324
+  </div>
325
+---
326
+name: Alert Dialog
327
+markup: |
328
+  <div class="page">
329
+    <div class="toolbar">
330
+      <div class="toolbar__left"><span class="toolbar-button">Label</span></div>
331
+      <div class="toolbar__center">Title</div>
332
+      <div class="toolbar__right"><span class="toolbar-button">Label</span></div>
333
+    </div>
334
+    <div></div>
335
+  </div>
336
+  <div class="alert-dialog-mask"></div>
337
+  <div class="alert-dialog">
338
+    <div class="alert-dialog-container">
339
+      <div class="alert-dialog-title">Alert</div>
340
+
341
+      <div class="alert-dialog-content">
342
+        Hello World!
343
+      </div>
344
+
345
+      <div class="alert-dialog-footer">
346
+        <button class="alert-dialog-button alert-dialog-button--primal">OK</button>
347
+      </div>
348
+    </div>
349
+  </div>
350
+---
351
+name: Material Alert Dialog
352
+markup: |
353
+  <div class="page page--material">
354
+    <div class="toolbar toolbar--material">
355
+      <div class="toolbar__left toolbar--material__left"></div>
356
+      <div class="toolbar__center toolbar--material__center">Title</div>
357
+      <div class="toolbar__right toolbar--material__right"></div>
358
+    </div>
359
+    <div>
360
+    </div>
361
+  </div>
362
+  <div class="alert-dialog-mask alert-dialog-mask--material"></div>
363
+  <div class="alert-dialog alert-dialog--material">
364
+    <div class="alert-dialog-container alert-dialog-container--material">
365
+      <div class="alert-dialog-title alert-dialog-title--material">
366
+        Dialog title
367
+      </div>
368
+      <div class="alert-dialog-content alert-dialog-content--material">
369
+        Some dialog content.
370
+      </div>
371
+      <div class="alert-dialog-footer alert-dialog-footer--material">
372
+        <button class="alert-dialog-button alert-dialog-button--material">OK</button>
373
+        <button class="alert-dialog-button alert-dialog-button--material">CANCEL</button>
374
+      </div>
375
+    </div>
376
+  </div>

+ 64
- 0
Searchbar/onsenui/css-components-src/previewer-src/app.js 查看文件

@@ -0,0 +1,64 @@
1
+import {createAppPageComponent} from './components/app-page';
2
+
3
+function init() {
4
+  const components = loadComponents();
5
+  const categories = loadCategories(components);
6
+  const themes = loadThemes();
7
+  const patterns = loadPatterns();
8
+
9
+  window.components = components;
10
+  window.categories = categories;
11
+  window.themes = themes;
12
+  window.patterns = patterns;
13
+
14
+  const app = new Vue(createAppPageComponent({
15
+    components,
16
+    categories
17
+  }));
18
+};
19
+
20
+function loadCategories(components) {
21
+  const set = new Set();
22
+  components.forEach(component => {
23
+    set.add(component.category);
24
+  });
25
+
26
+  return [...set.values()].map(value => {
27
+    return {
28
+      name: value,
29
+      hash: value.toLowerCase().replace(/ /g, '_')
30
+    };
31
+  });
32
+}
33
+
34
+function loadComponents() {
35
+  return JSON.parse(document.querySelector('#data').getAttribute('data-components')).map(component => {
36
+    component = component.annotation;
37
+    component.id = component.name.toLowerCase().replace(/ /g, '_');
38
+    return component;
39
+  });
40
+}
41
+
42
+function loadThemes() {
43
+  const themes = JSON.parse(document.querySelector('#data').getAttribute('data-themes')).map(theme => {
44
+    return theme;
45
+  }).filter(theme => {
46
+    return theme !== 'onsen-css-components';
47
+  });
48
+
49
+  // デフォルトのテーマを先頭に追加
50
+  themes.unshift('onsen-css-components');
51
+
52
+  return themes;
53
+}
54
+
55
+function loadPatterns() {
56
+  return JSON.parse(document.querySelector('#data').getAttribute('data-patterns')).map(pattern => {
57
+    pattern.id = pattern.name.toLowerCase().replace(/ +/g, '_');
58
+
59
+    return pattern;
60
+  });
61
+}
62
+
63
+window.onload = init;
64
+

+ 190
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/app-page.js 查看文件

@@ -0,0 +1,190 @@
1
+import {ComponentsPage} from './components-page';
2
+import {ComponentPage} from './component-page';
3
+import {CategoryPage} from './category-page';
4
+import {PatternsPage} from './patterns-page';
5
+import {PatternPage} from './pattern-page';
6
+import {NotFoundPage} from './notfound-page';
7
+import {getQueryParams, mergeQueryString, parseQueryString} from '../util';
8
+
9
+export const createAppPageComponent = ({components, categories}) => ({
10
+  el: '#app',
11
+  data: {
12
+    components,
13
+    categories
14
+  },
15
+  template: `
16
+    <div>
17
+      <div class="pv-side-navi">
18
+        <a class="pv-side-navi__title" href="/">
19
+          Onsen<br />
20
+          CSS<br />
21
+          Components
22
+        </a>
23
+
24
+        <div>
25
+          <a class="pv-side-navi__category" href="/">Components</a>
26
+          <div v-for="category in categories" class="pv-side-navi__category-item">
27
+            <a :href="'/categories/' + category.hash" class="pv-side-navi__item-link">{{category.name}}</a>
28
+          </div>
29
+          <a class="pv-side-navi__category" href="/patterns">Patterns</a>
30
+        </div>
31
+      </div>
32
+
33
+      <my-router :base-params="createParams()" />
34
+    </div>
35
+  `,
36
+  components: {
37
+    'my-router': createRouter()
38
+  },
39
+  methods: {
40
+    createParams() {
41
+      const params = {};
42
+
43
+      params.components = [].concat(this.components);
44
+      params.categories = [].concat(this.categories);
45
+
46
+      return params;
47
+    }
48
+  }
49
+});
50
+
51
+const createRouter = () => {
52
+  return {
53
+    props: ['baseParams'],
54
+    data: () => {
55
+      return {
56
+        component: ComponentsPage,
57
+        params: {},
58
+        query: getQueryParams()
59
+      };
60
+    },
61
+    created() {
62
+      // Load query string
63
+      page('*', (context, next) => {
64
+        requestAnimationFrame(() => {
65
+          context.query = parseQueryString(location.search.slice(0));
66
+          next();
67
+        });
68
+      });
69
+
70
+      page('*', (context, next) => {
71
+        document.body.scrollTop = document.body.scrollLeft = 0;
72
+
73
+        // Load selected theme css.
74
+        const theme = context.query.theme;
75
+        if (typeof theme === 'string' && theme !== '') {
76
+          document.querySelector('#theme-css').setAttribute('href', `/${theme}.css`);
77
+        } else {
78
+          document.querySelector('#theme-css').setAttribute('href', '/onsen-css-components.css');
79
+        }
80
+
81
+        next();
82
+      });
83
+
84
+      page('/components/:id', (context) => {
85
+        this.component = ComponentPage;
86
+        this.params = context.params;
87
+        this.query = context.query;
88
+      });
89
+
90
+      page('/categories/:id', (context) => {
91
+        this.component = CategoryPage;
92
+        this.params = context.params;
93
+        this.query = context.query;
94
+      });
95
+
96
+      page('/patterns', (context) => {
97
+        this.component = PatternsPage;
98
+        this.params = context.params;
99
+        this.query = context.query;
100
+      });
101
+
102
+      page('/patterns/:id', (context) => {
103
+        this.component = PatternPage;
104
+        this.params = context.params;
105
+        this.query = context.query;
106
+      });
107
+
108
+      page('/', (context) => {
109
+        this.component = ComponentsPage;
110
+        this.params = context.params;
111
+        this.query = context.query;
112
+      });
113
+
114
+      page('*', () => {
115
+        this.component = NotFoundPage;
116
+        this.params = context.params;
117
+        this.query = context.query;
118
+      });
119
+
120
+      page({click: false});
121
+    },
122
+    render(h) {
123
+      const props = {};
124
+
125
+      if (this.baseParams) {
126
+        for (let key in this.baseParams) {
127
+          if (this.baseParams.hasOwnProperty(key)) {
128
+            props[key] = this.baseParams[key];
129
+          }
130
+        }
131
+      }
132
+
133
+      for (let key in this.params) {
134
+        if (this.params.hasOwnProperty(key)) {
135
+          props[key] = this.params[key];
136
+        }
137
+      }
138
+
139
+      props.query = {};
140
+      for (let key in this.query) {
141
+        if (this.query.hasOwnProperty(key)) {
142
+          props.query[key] = this.query[key];
143
+        }
144
+      }
145
+
146
+      return h(this.component, {props});
147
+    }
148
+  };
149
+};
150
+
151
+document.body.addEventListener('click', e => {
152
+  if (e.metaKey || e.ctrlKey || e.shiftKey) {
153
+    return;
154
+  }
155
+
156
+  if (e.defaultPrevented) {
157
+    return;
158
+  }
159
+
160
+  // ensure link
161
+  let el = e.target;
162
+  while (el && 'A' !== el.nodeName) {
163
+    el = el.parentNode;
164
+  }
165
+  if (!el || 'A' !== el.nodeName) {
166
+    return;
167
+  }
168
+
169
+  // ensure non-hash for the same path
170
+  var link = el.getAttribute('href');
171
+  if (el.pathname === location.pathname && (el.hash || '#' === link)) {
172
+    return;
173
+  }
174
+
175
+  // Check for mailto: in the href
176
+  if (link && link.indexOf('mailto:') > -1) {
177
+    return;
178
+  }
179
+
180
+  // check target
181
+  if (el.target) {
182
+    return;
183
+  }
184
+  
185
+  // rebuild path
186
+  const path = el.pathname + mergeQueryString(el.search, location.search) + (el.hash || '');
187
+
188
+  e.preventDefault();
189
+  page.show(path);
190
+});

+ 36
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/category-page.js 查看文件

@@ -0,0 +1,36 @@
1
+import {PreviewComponent} from './preview-component';
2
+import {ThemeSelect} from './theme-select';
3
+
4
+export const CategoryPage = {
5
+  props: ['components', 'categories', 'id', 'query'],
6
+  template: `
7
+    <div class="pv-content">
8
+
9
+      <h2 class="pv-content__header">{{category.name}} Components</h2>
10
+
11
+      <theme-select :theme="query.theme" :query="query" />
12
+
13
+      <div class="pv-components">
14
+        <css-component v-for="component in filterComponents()" :component="component" :key="component.id" />
15
+      </div>
16
+    </div>
17
+  `,
18
+  components: {
19
+    'css-component': PreviewComponent,
20
+    'theme-select': ThemeSelect
21
+  },
22
+  computed: {
23
+    category() {
24
+      return this.categories.filter(category => category.hash === this.id)[0];
25
+    }
26
+  },
27
+  methods: {
28
+    filterComponents() {
29
+      const category = this.category;
30
+      const components = this.components.filter(component => {
31
+        return component.category === category.name;
32
+      });
33
+      return components;
34
+    },
35
+  }
36
+};

+ 32
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/component-page.js 查看文件

@@ -0,0 +1,32 @@
1
+import {ComponentExample} from './preview-component.js';
2
+import {ThemeSelect} from './theme-select';
3
+
4
+export const ComponentPage = {
5
+  props: ['components', 'id', 'query'],
6
+  components: {
7
+    'component-example': ComponentExample,
8
+    'theme-select': ThemeSelect
9
+  },
10
+  computed: {
11
+    component() {
12
+      return this.components.filter(component => component.id === this.id)[0];
13
+    }
14
+  },
15
+  template: `
16
+    <div class="pv-content" v-if="component">
17
+      <div>
18
+        <h2 class="pv-content__header">{{component.name}}</h2>
19
+
20
+        <theme-select :theme="query.theme" :query="query" />
21
+
22
+        <h3 class="pv-title-label">Example</h3>
23
+
24
+        <component-example :component="component" />
25
+
26
+        <h3 class="pv-title-label">HTML</h3>
27
+
28
+        <pre class="pv-markup">{{component.markup}}</pre>
29
+      </div>
30
+    </div>
31
+  `
32
+};

+ 68
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/components-page.js 查看文件

@@ -0,0 +1,68 @@
1
+import {PreviewComponent} from './preview-component';
2
+import {PlatformSelect} from './platform-select';
3
+import {ThemeSelect} from './theme-select';
4
+
5
+export const ComponentsPage = {
6
+  props: ['components', 'categories', 'query'],
7
+  template: `
8
+    <div class="pv-content">
9
+      <platform-select :platform="query.platform" />
10
+
11
+      <h2 class="pv-content__header">Components</h2>
12
+
13
+      <theme-select :theme="query.theme" :query="query" />
14
+
15
+      <div class="pv-components">
16
+        <css-component v-for="component in filterComponents" :component="component" :key="component.id" />
17
+      </div>
18
+    </div>
19
+  `,
20
+  data: () => ({
21
+    themes: window.themes
22
+  }),
23
+  components: {
24
+    'css-component': PreviewComponent,
25
+    'platform-select': PlatformSelect,
26
+    'theme-select': ThemeSelect
27
+  },
28
+  computed: {
29
+    filterComponents() {
30
+      const components = this.components;
31
+      if (this.query.platform === 'android') {
32
+        return components.filter(function(component) {
33
+          return component.name.match(/Material/);
34
+        });
35
+      } else if (this.query.platform === 'ios') {
36
+        return components.filter(function(component) {
37
+          return !component.name.match(/Material/);
38
+        });
39
+      }
40
+      return components;
41
+    }
42
+  },
43
+  methods: {
44
+    download(event) {
45
+      const theme = this.$refs.themeSelect.value;
46
+      if (!theme) {
47
+        window.open('/onsen-css-components.css');
48
+      } else {
49
+        window.open(`${theme}.css`);
50
+      }
51
+      event.preventDefault();
52
+    },
53
+    changeTheme(event) {
54
+      const theme = event.target.value;
55
+      const suffix = this.query.platform ? `platform=${this.query.platform}` : '';
56
+
57
+      if (theme === 'onsen-css-components') {
58
+        if (suffix === '') {
59
+          page.show('/');
60
+        } else {
61
+          page.show(`?${suffix}`);
62
+        } 
63
+      } else {
64
+        page.show(`?theme=${theme}${suffix === '' ? '' : `&${suffix}`}`);
65
+      }
66
+    }
67
+  }
68
+};

+ 9
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/notfound-page.js 查看文件

@@ -0,0 +1,9 @@
1
+
2
+export const NotFoundPage = {
3
+  props: ['components', 'categories', 'id', 'query'],
4
+  template: `
5
+    <div class="pv-content">
6
+      <h2 class="pv-content__header">Not Found</h2>
7
+    </div>
8
+  `,
9
+};

+ 33
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/pattern-page.js 查看文件

@@ -0,0 +1,33 @@
1
+import {ThemeSelect} from './theme-select';
2
+
3
+export const PatternPage = {
4
+  props: ['id', 'query'],
5
+  data() {
6
+    const pattern = window.patterns.filter(pattern => {
7
+      return pattern.id == this.id;
8
+    })[0];
9
+
10
+    return {pattern};
11
+  },
12
+  components: {
13
+    'theme-select': ThemeSelect
14
+  },
15
+  template: `
16
+    <div class="pv-content">
17
+      <div v-if="pattern">
18
+        <h2 class="pv-content__header">{{pattern.name}} Pattern</h2>
19
+
20
+        <theme-select :theme="query.theme" :query="query" />
21
+
22
+        <h3 class="pv-title-label">Example</h3>
23
+        <div>
24
+          <div class="pv-pattern__example"><div style="position: static" v-html="pattern.markup"></div></div>
25
+        </div>
26
+
27
+        <h3 class="pv-title-label">HTML</h3>
28
+
29
+        <pre class="pv-markup">{{pattern.markup}}</pre>
30
+      </div>
31
+    </div>
32
+  `,
33
+};

+ 49
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/patterns-page.js 查看文件

@@ -0,0 +1,49 @@
1
+import {PlatformSelect} from './platform-select';
2
+import {ThemeSelect} from './theme-select';
3
+
4
+export const PatternsPage = {
5
+  props: ['query'],
6
+  template: `
7
+    <div class="pv-content">
8
+      <platform-select :platform="query.platform" />
9
+
10
+      <h2 class="pv-content__header">Patterns</h2>
11
+
12
+      <theme-select :query="query" />
13
+
14
+      <div class="pv-patterns">
15
+        <div class="pv-pattern" v-for="pattern in filterPatterns">
16
+          <a class="pv-pattern__name pv-title-label" :href="'/patterns/' + pattern.id">{{pattern.name}}</a>
17
+          <div class="pv-pattern__example"><div v-html="pattern.markup" style="position: static"></div></div>
18
+        </div>
19
+      </div>
20
+    </div>
21
+  `,
22
+  data: () => ({
23
+    patterns: []
24
+  }),
25
+  components: {
26
+    'platform-select': PlatformSelect,
27
+    'theme-select': ThemeSelect
28
+  },
29
+  created() {
30
+    // Load patterns data.
31
+    this.patterns = window.patterns;
32
+  },
33
+  computed: {
34
+    filterPatterns() {
35
+      const patterns = this.patterns;
36
+
37
+      if (this.query.platform === 'android') {
38
+        return patterns.filter(function(pattern) {
39
+          return pattern.name.match(/Material/);
40
+        });
41
+      } else if (this.query.platform === 'ios') {
42
+        return patterns.filter(function(pattern) {
43
+          return !pattern.name.match(/Material/);
44
+        });
45
+      }
46
+      return patterns;
47
+    }
48
+  },
49
+};

+ 25
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/platform-select.js 查看文件

@@ -0,0 +1,25 @@
1
+
2
+export const PlatformSelect = {
3
+  props: ['platform'],
4
+  template: `
5
+    <div class="pv-platform-select">
6
+      <a class="pv-platform-select__link" 
7
+        :class="{'pv-platform-select__link--active': this.platform !== 'ios' && this.platform !== 'android'}"
8
+        :href="getLocation() + '?platform=all'">All</a>
9
+
10
+      <a class="pv-platform-select__link" 
11
+        :class="{'pv-platform-select__link--active': this.platform === 'ios'}"
12
+        :href="getLocation() + '?platform=ios'">iOS</a>
13
+
14
+      <a class="pv-platform-select__link"
15
+        :class="{'pv-platform-select__link--active': this.platform === 'android'}"
16
+        :href="getLocation() + '?platform=android'">Android</a>
17
+
18
+    </div>
19
+  `,
20
+  methods: {
21
+    getLocation() {
22
+      return location.pathname;
23
+    }
24
+  }
25
+};

+ 30
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/preview-component.js 查看文件

@@ -0,0 +1,30 @@
1
+
2
+export const ComponentExample = {
3
+  props: ['component'],
4
+  template: `
5
+      <div class="page pv-component-example" :class="{'page--material__background': isAndroid()}">
6
+        <!-- ontouchstart is a hack to enable :active CSS selector in iOS browsers. -->
7
+        <div style="width: 100%;" v-html="component.markup" ontouchstart=""></div>
8
+      </div>
9
+    `,
10
+  methods: {
11
+    isAndroid() {
12
+      return this.component.name.match(/Material/);
13
+    }
14
+  }
15
+};
16
+
17
+export const PreviewComponent = {
18
+  props: ['component'],
19
+  template: `
20
+      <div class="pv-component-preview">
21
+        <a class="pv-title-label" :href="'/components/' + component.id">{{component.name}}</a>
22
+
23
+        <component-example :component="component" />
24
+      </div>
25
+    `,
26
+  components: {
27
+    'component-example': ComponentExample
28
+  }
29
+};
30
+

+ 48
- 0
Searchbar/onsenui/css-components-src/previewer-src/components/theme-select.js 查看文件

@@ -0,0 +1,48 @@
1
+
2
+export const ThemeSelect = {
3
+  props: ['query'],
4
+  template: `
5
+    <div class="pv-built-css">
6
+      <select ref="themeSelect" class="pv-built-css__select" @change="changeTheme($event)">
7
+        <option v-for="theme in themes" :value="theme">{{theme}}.css</option>
8
+      </select>
9
+      <button class="pv-built-css__button" @click="download($event)">Download</button>
10
+    </div>
11
+  `,
12
+  data() {
13
+    return {
14
+      themes: window.themes
15
+    };
16
+  },
17
+  mounted() {
18
+    if (this.query.theme) {
19
+      this.$refs.themeSelect.value = this.query.theme;
20
+    }
21
+  },
22
+  methods: {
23
+    download(event) {
24
+      const theme = this.$refs.themeSelect.value;
25
+      if (!theme) {
26
+        window.open('/onsen-css-components.css');
27
+      } else {
28
+        window.open(`${theme}.css`);
29
+      }
30
+      event.preventDefault();
31
+    },
32
+
33
+    changeTheme(event) {
34
+      const theme = event.target.value;
35
+      const suffix = this.query.platform ? `platform=${this.query.platform}` : '';
36
+
37
+      if (theme === 'onsen-css-components') {
38
+        if (suffix === '') {
39
+          page.show(location.pathname);
40
+        } else {
41
+          page.show(`${location.pathname}?${suffix}`);
42
+        } 
43
+      } else {
44
+        page.show(`${location.pathname}?theme=${theme}${suffix === '' ? '' : `&${suffix}`}`);
45
+      }
46
+    }
47
+  }
48
+};

+ 32
- 0
Searchbar/onsenui/css-components-src/previewer-src/index.html.eco 查看文件

@@ -0,0 +1,32 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+  <meta charset="utf-8">
5
+  <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1,minimum-scale=1">
6
+  <base href="/">
7
+
8
+  <title>Onsen CSS Components</title>
9
+
10
+  <link rel="stylesheet" href="/onsen-css-components.css" id="theme-css" />
11
+  <link rel="stylesheet" href="https://unpkg.com/onsenui/css/font_awesome/css/font-awesome.min.css">
12
+  <link rel="stylesheet" href="https://unpkg.com/onsenui/css/ionicons/css/ionicons.min.css">
13
+  <link rel="stylesheet" href="https://unpkg.com/onsenui/css/material-design-iconic-font/css/material-design-iconic-font.min.css">
14
+  <link rel="stylesheet" href="/style.css">
15
+
16
+
17
+</head>
18
+<body ontouchstart=""> <!-- Hack to activate :active CSS selector on iOS browsers.-->
19
+
20
+  <div id="app"></div>
21
+
22
+  <script src="https://unpkg.com/vue@2.4.2" async></script>
23
+  <script src="https://unpkg.com/page.js@4.13.3/page.js" async></script>
24
+  <script src="/app.gen.js" async></script>
25
+
26
+  <div id="data"
27
+    data-components="<%= @toJSON(@components) %>"
28
+    data-themes="<%= @toJSON(@themes) %>"
29
+    data-patterns="<%= @toJSON(@patterns) %>"></div>
30
+
31
+</body>
32
+</html>

+ 13
- 0
Searchbar/onsenui/css-components-src/previewer-src/select-icon.svg 查看文件

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<svg width="6px" height="8px" viewBox="0 0 6 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+    <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+    <title>select-icon</title>
5
+    <desc>Created with Sketch.</desc>
6
+    <defs></defs>
7
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+        <g id="select-icon" fill="#888888">
9
+            <polygon id="Triangle" points="3 0 6 3 0 3"></polygon>
10
+            <polygon id="Triangle" transform="translate(3.000000, 6.500000) scale(1, -1) translate(-3.000000, -6.500000) " points="3 5 6 8 0 8"></polygon>
11
+        </g>
12
+    </g>
13
+</svg>

+ 313
- 0
Searchbar/onsenui/css-components-src/previewer-src/style.css 查看文件

@@ -0,0 +1,313 @@
1
+
2
+body {
3
+  margin: 0;
4
+  padding: 0;
5
+  position: static;
6
+  background-color: white;
7
+  overflow: visible;
8
+  font-family: 'Helvetica Neue', 'Helvetica', sans-serif;
9
+}
10
+
11
+* {
12
+  user-select: auto !important;
13
+}
14
+
15
+a,
16
+a:link,
17
+a:visited {
18
+  color: #999;
19
+  font-family: 'Helvetica Neue', 'Helevetica', sans-serif;
20
+}
21
+
22
+a:hover {
23
+  text-decoration: none;
24
+}
25
+
26
+.pv-content {
27
+  padding-left: 140px;
28
+  width: 100%;
29
+  box-sizing: border-box;
30
+}
31
+
32
+.pv-content__header {
33
+  font-size: 22px;
34
+  font-weight: 400;
35
+  font-family: 'Helvetica Neue', 'Helvetica', sans-serif;
36
+  color: #444;
37
+  margin: 18px 0 6px 0;
38
+  padding: 0;
39
+}
40
+
41
+.pv-components {
42
+  clear: both;
43
+  display: flex;
44
+  flex-wrap: wrap;
45
+  margin: 0 0 50vh -10px;
46
+}
47
+
48
+.pv-component-preview {
49
+  display: block;
50
+  width: 350px;
51
+  box-sizing: border-box;
52
+  margin: 0px 10px 6px 10px;
53
+}
54
+
55
+.pv-component-preview__link,
56
+.pv-component-preview__link:link,
57
+.pv-component-preview__link:visited {
58
+  color: #333;
59
+  text-decoration: none;
60
+}
61
+
62
+.pv-component-preview__link:hover {
63
+  text-decoration: underline;
64
+}
65
+
66
+.pv-component-example {
67
+  height: 201px;
68
+  text-align: center;
69
+  position: relative;
70
+  z-index: 0;
71
+  display: flex;
72
+  justify-content: center;
73
+  align-items: center;
74
+  text-align: center;
75
+  border-radius: 3px;
76
+  width: 350px;
77
+  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08) inset;
78
+}
79
+
80
+.pv-patterns {
81
+  clear: both;
82
+  display: flex;
83
+  flex-wrap: wrap;
84
+  margin: 0 0 50vh -10px;
85
+}
86
+
87
+.pv-pattern {
88
+  width: 320px;
89
+  box-sizing: border-box;
90
+  display: inline-block;
91
+  margin: 0px 10px 6px 10px;
92
+}
93
+
94
+.pv-pattern__example {
95
+  display: block;
96
+  position: relative;
97
+  width: 320px;
98
+  height: 568px;
99
+  border-radius: 2px;
100
+  border: 1px solid rgba(0, 0, 0, 0.08);
101
+  box-sizing: border-box;
102
+}
103
+
104
+.pv-title-label,
105
+.pv-title-label:link,
106
+.pv-title-label:visited,
107
+.pv-title-label:hover {
108
+  font-size: 12px;
109
+  color: #444;
110
+  font-weight: 500;
111
+  line-height: 1.4;
112
+  text-decoration: none;
113
+  margin: 12px 0 4px 0;
114
+  display: inline-block;
115
+}
116
+
117
+a.pv-title-label:hover {
118
+  color: #999;
119
+}
120
+
121
+.pv-markup {
122
+  font-family: 'Menlo', monospace;
123
+  font-size: 13px;
124
+  line-height: 1.6;
125
+  color: #F4F9FF;
126
+  background-color: #1F2833;
127
+  padding: 22px;
128
+  width: 100%;
129
+  margin: 0;
130
+  user-select: text;
131
+  box-sizing: border-box;
132
+  overflow: auto;
133
+}
134
+
135
+.pv-side-navi {
136
+  float: left; 
137
+  position: fixed;
138
+  top: 0;
139
+  bottom: 0;
140
+  width: 140px;
141
+  box-sizing: border-box;
142
+  padding: 18px 0 18px 18px;
143
+  overflow-y: auto;
144
+}
145
+
146
+.pv-side-navi::-webkit-scrollbar { 
147
+  display: none; 
148
+}
149
+
150
+.pv-side-navi__title,
151
+.pv-side-navi__title:link,
152
+.pv-side-navi__title:visited {
153
+  font-size: 13px;
154
+  line-height: 18px;
155
+  margin: -6px -6px 20px -6px;
156
+  padding: 6px;
157
+  font-weight: 400;
158
+  display: block;
159
+  text-decoration: none;
160
+  color: #FF3726;
161
+  background-color: rgba(255, 26, 0, 0.08);
162
+  width: 95px;
163
+  box-sizing: border-box;
164
+}
165
+
166
+.pv-side-navi__category {
167
+  font-size: 13px;
168
+  font-weight: 500;
169
+  color: #444;
170
+  line-height: 23px;
171
+}
172
+
173
+.pv-side-navi__category:link,
174
+.pv-side-navi__category:visited {
175
+  color: #444;
176
+  text-decoration: none;
177
+}
178
+
179
+.pv-side-navi__category:link:hover,
180
+.pv-side-navi__category:visited:hover {
181
+  color: #999;
182
+}
183
+
184
+.pv-side-navi__category-item {
185
+  height: 23px;
186
+  line-height: 22px;
187
+  margin-left: 13px;
188
+}
189
+
190
+.pv-side-navi__item-link,
191
+.pv-side-navi__item-link:link,
192
+.pv-side-navi__item-link:visited {
193
+  font-size: 12px;
194
+  color: #444;
195
+  text-decoration: none;
196
+}
197
+
198
+.pv-side-navi__item-link:hover {
199
+  color: #999;
200
+}
201
+
202
+.pv-platform-select {
203
+  float: right;
204
+  margin: 0 18px 0 0;
205
+  display: flex;
206
+}
207
+
208
+.pv-platform-select__link,
209
+.pv-platform-select__link:link,
210
+.pv-platform-select__link:visited,
211
+.pv-platform-select__link:hover {
212
+  font-family: 'Helvetica Neue', 'Helevetica', sans-serif;
213
+  font-size: 12px;
214
+  text-decoration: none;
215
+  color: #999;
216
+  box-sizing: border-box;
217
+  padding: 2px 5px;
218
+  font-weight: 400;
219
+  margin: 0 1px;
220
+  border-radius: 3px;
221
+}
222
+
223
+.pv-platform-select__link--active,
224
+.pv-platform-select__link--active:link,
225
+.pv-platform-select__link--active:visited {
226
+  color: #444;
227
+  background-color: #eee;
228
+}
229
+
230
+.pv-built-css__select {
231
+  -webkit-appearance: none;
232
+  appearance: none;
233
+  height: 25px;
234
+  line-height: 25px;
235
+  border: 1px solid #d9d9d9;
236
+  border-radius: 2px;
237
+  padding: 0 20px 0 4px;
238
+  color: #222;
239
+  position: relative;
240
+  background-image: url(/select-icon.svg);
241
+  background-repeat: no-repeat;
242
+  background-position: right 6px center;
243
+}
244
+
245
+.pv-built-css__button,
246
+.pv-built-css__button:link,
247
+.pv-built-css__button:visited,
248
+.pv-built-css__button:hover {
249
+  background-color: #F0F0F0;
250
+  border-radius: 2px;
251
+  border: 1px solid #f0f0f0;
252
+  line-height: 25px;
253
+  height: 25px;
254
+  font-size: 12px;
255
+  padding: 0 6px;
256
+  display: inline-block;
257
+  color: #444;
258
+  font-family: 'Helvetica Neue', 'Helvetica', sans-serif;
259
+  text-decoration: none;
260
+  box-sizing: border-box;
261
+}
262
+
263
+.pv-built-css__button:active {
264
+  opacity: 0.6;
265
+}
266
+
267
+.pv-built-css__button:focus {
268
+  outline: none;
269
+}
270
+
271
+@media (max-width: 480px) {
272
+  .pv-side-navi {
273
+    display: none;
274
+  }
275
+
276
+  .pv-platform-select {
277
+    display: none;
278
+  }
279
+
280
+  .pv-content {
281
+    padding: 0 10px;
282
+  }
283
+
284
+  .pv-components {
285
+    display: block;
286
+    margin-left: 0;
287
+  }
288
+
289
+  .pv-component-preview {
290
+    width: auto;
291
+    margin-right: 0px;
292
+    margin-left: 0px;
293
+  }
294
+
295
+  .pv-component-example {
296
+    width: auto;
297
+    border-radius: 0;
298
+    margin-right: -10px;
299
+    margin-left: -10px;
300
+    box-shadow: none;
301
+  }
302
+
303
+  .pv-component-markup {
304
+    margin-right: -10px;
305
+    margin-left: -10px;
306
+    width: auto;
307
+  }
308
+
309
+  .pv-build-css {
310
+    display: none;
311
+  }
312
+}
313
+

+ 31
- 0
Searchbar/onsenui/css-components-src/previewer-src/util.js 查看文件

@@ -0,0 +1,31 @@
1
+
2
+export function getQueryParams() {
3
+  return parseQueryString(window.location.search);
4
+}
5
+
6
+export function parseQueryString(queryString) {
7
+  if (queryString.length <= 1) {
8
+    return {};
9
+  }
10
+
11
+  const params = [];
12
+  const pairs = queryString.slice(1).split('&');    
13
+  let pair;
14
+  for (var i = 0; i < pairs.length; i++) {
15
+    pair = pairs[i].split('=');
16
+    params[pair[0]] = pair[1];
17
+  }
18
+
19
+  return params;
20
+}
21
+
22
+/**
23
+ * @param {string} prefer
24
+ * @param {string} base
25
+ */
26
+export function mergeQueryString(prefer, base) {
27
+  const params = Object.assign({}, parseQueryString(base), parseQueryString(prefer));
28
+  const result = '?' + Object.keys(params).map(key => `${key}=${params[key]}`).join('&');
29
+
30
+  return result === '?' ? '' : result;
31
+}

+ 229
- 0
Searchbar/onsenui/css-components-src/src/components/action-sheet.css 查看文件

@@ -0,0 +1,229 @@
1
+
2
+:root {
3
+  --action-sheet-mask-color: rgba(0, 0, 0, 0.1);
4
+
5
+  --material-action-sheet-mask-color: rgba(0, 0, 0, 0.2);
6
+}
7
+
8
+/*~
9
+  name: Action Sheet
10
+  category: Action Sheet
11
+  markup: |
12
+    <div class="action-sheet-mask"></div>
13
+    <div class="action-sheet">
14
+      <div class="action-sheet-title">Title</div>
15
+      <button class="action-sheet-button">Label</button>
16
+      <button class="action-sheet-button">Cancel</button>
17
+    </div>
18
+*/
19
+
20
+/*~
21
+  name: Action Sheet with Delete Label
22
+  category: Action Sheet
23
+  markup: |
24
+    <div class="action-sheet-mask"></div>
25
+    <div class="action-sheet">
26
+      <button class="action-sheet-button">Label</button>
27
+      <button class="action-sheet-button action-sheet-button--destructive">Delete Label</button>
28
+      <button class="action-sheet-button">Cancel</button>
29
+    </div>
30
+*/
31
+
32
+.action-sheet {
33
+  @apply(--reset-font);
34
+  cursor: default;
35
+  position: absolute;
36
+  left: 10px; /* iOS 9, 10, 11 */
37
+  right: 10px; /* iOS 9, 10, 11 */
38
+  bottom: 10px; /* iOS 9, 10, 11 */
39
+  z-index: 2;
40
+}
41
+
42
+.action-sheet-button {
43
+  box-sizing: border-box;
44
+  height: 56px;
45
+  font-size: 20px;
46
+  text-align: center;
47
+  color: var(--action-sheet-button-color);
48
+  background-color: var(--action-sheet-button-background-color);
49
+  border-radius: 0;
50
+  line-height: 56px;
51
+  border: none;
52
+  appearance: none;
53
+  display: block;
54
+  width: 100%;
55
+  @apply(--ellipsis);
56
+  background-size: 100% 1px;
57
+  background-repeat: no-repeat;
58
+  background-position: bottom;
59
+  background-image: linear-gradient(0deg, var(--action-sheet-button-separator-color), var(--action-sheet-button-separator-color) 100%);
60
+  @media (--retina-query) {
61
+    background-image: linear-gradient(0deg, var(--action-sheet-button-separator-color), var(--action-sheet-button-separator-color) 50%, transparent 50%);
62
+  }
63
+}
64
+
65
+.action-sheet-button:first-child {
66
+  border-top-left-radius: 12px;
67
+  border-top-right-radius: 12px;
68
+}
69
+
70
+.action-sheet-button:active {
71
+  background-color: var(--action-sheet-button-active-background-color);
72
+  background-image: none;
73
+}
74
+
75
+.action-sheet-button:focus {
76
+  outline: none;
77
+}
78
+
79
+.action-sheet-button:nth-last-of-type(2) {
80
+  border-bottom-right-radius: 12px;
81
+  border-bottom-left-radius: 12px;
82
+  background-image: none;
83
+}
84
+
85
+.action-sheet-button:last-of-type {
86
+  border-radius: 12px;
87
+  margin: 8px 0 0 0; /* iOS 9, 10, 11 */
88
+  background-color: var(--action-sheet-cancel-button-background-color);
89
+  background-image: none;
90
+  font-weight: 600;
91
+}
92
+
93
+.action-sheet-button:last-of-type:active {
94
+  background-color: var(--action-sheet-button-active-background-color);
95
+}
96
+
97
+.action-sheet-button--destructive {
98
+  color: var(--action-sheet-button-destructive-color);
99
+}
100
+
101
+.action-sheet-title {
102
+  box-sizing: border-box;
103
+  height: 56px;
104
+  font-size: 13px;
105
+  color: var(--action-sheet-title-color);
106
+  text-align: center;
107
+  background-color: var(--action-sheet-button-background-color);
108
+  line-height: 56px;
109
+  @apply(--ellipsis);
110
+  background-size: 100% 1px;
111
+  background-repeat: no-repeat;
112
+  background-position: bottom;
113
+  background-image: linear-gradient(0deg, var(--action-sheet-button-separator-color), var(--action-sheet-button-separator-color) 100%);
114
+  @media (--retina-query) {
115
+    background-image: linear-gradient(0deg, var(--action-sheet-button-separator-color), var(--action-sheet-button-separator-color) 50%, transparent 50%);
116
+  }
117
+}
118
+
119
+.action-sheet-title:first-child {
120
+  border-top-left-radius: 12px;
121
+  border-top-right-radius: 12px;
122
+}
123
+
124
+.action-sheet-icon {
125
+  display: none;
126
+}
127
+
128
+.action-sheet-mask {
129
+  position: absolute;
130
+  left: 0;
131
+  top: 0;
132
+  right: 0;
133
+  bottom: 0;
134
+  background-color: var(--action-sheet-mask-color);
135
+  z-index: 1;
136
+}
137
+
138
+/*~
139
+  name: Material Action Sheet
140
+  category: Action Sheet
141
+  markup: |
142
+    <div class="action-sheet-mask action-sheet-mask--material"></div>
143
+    <div class="action-sheet action-sheet--material">
144
+      <button class="action-sheet-button action-sheet-button--material"><i class="ion-android-checkbox-blank action-sheet-icon--material"></i>Label</button>
145
+      <button class="action-sheet-button action-sheet-button--material"><i class="ion-android-checkbox-blank action-sheet-icon--material"></i>Label</button>
146
+      <button class="action-sheet-button action-sheet-button--material"><i class="ion-android-close action-sheet-icon--material"></i>Cancel</button>
147
+    </div>
148
+*/
149
+
150
+/*~
151
+  name: Material Action Sheet with Title
152
+  category: Action Sheet
153
+  markup: |
154
+    <div class="action-sheet-mask action-sheet-mask--material"></div>
155
+    <div class="action-sheet action-sheet--material">
156
+      <div class="action-sheet-title action-sheet-title--material">Title</div>
157
+      <button class="action-sheet-button action-sheet-button--material"><i class="ion-android-checkbox-blank action-sheet-icon--material"></i>Label</button>
158
+      <button class="action-sheet-button action-sheet-button--material"><i class="ion-android-close action-sheet-icon--material"></i>Cancel</button>
159
+    </div>
160
+*/
161
+
162
+.action-sheet--material {
163
+  left: 0;
164
+  right: 0;
165
+  bottom: 0;
166
+  @apply(--material-shadow-5);
167
+}
168
+
169
+.action-sheet-title--material {
170
+  @apply(--material-font);
171
+  border-radius: 0;
172
+  background-image: none;
173
+  text-align: left;
174
+  height: 56px;
175
+  line-height: 56px;
176
+  font-size: 16px;
177
+  padding: 0 0 0 16px;
178
+  color: var(--material-action-sheet-text-color);
179
+  background-color: white;
180
+  font-weight: 400;
181
+}
182
+
183
+.action-sheet-title--material:first-child {
184
+  border-radius: 0;
185
+}
186
+
187
+.action-sheet-button--material {
188
+  @apply(--material-font);
189
+  border-radius: 0;
190
+  background-image: none;
191
+  height: 52px;
192
+  line-height: 52px;
193
+  text-align: left;
194
+  font-size: 16px;
195
+  padding: 0 0 0 16px;
196
+  color: var(--material-action-sheet-text-color);
197
+  font-weight: 400;
198
+  background-color: white;
199
+}
200
+
201
+.action-sheet-button--material:first-child {
202
+  border-radius: 0;
203
+}
204
+
205
+.action-sheet-button--material:nth-last-of-type(2) {
206
+  border-radius: 0;
207
+}
208
+
209
+.action-sheet-button--material:last-of-type {
210
+  margin: 0;
211
+  border-radius: 0;
212
+  font-weight: 400;
213
+  background-color: white;
214
+}
215
+
216
+.action-sheet-icon--material {
217
+  display: inline-block;
218
+  float: left;
219
+  height: 52px;
220
+  line-height: 52px;
221
+  margin-right: 32px;
222
+  font-size: 26px;
223
+  width: 0.8em;
224
+  text-align: center;
225
+}
226
+
227
+.action-sheet-mask--material {
228
+  background-color: var(--material-action-sheet-mask-color);
229
+}

+ 328
- 0
Searchbar/onsenui/css-components-src/src/components/alert-dialog.css 查看文件

@@ -0,0 +1,328 @@
1
+
2
+:root {
3
+  --retina-alert-dialog-button-border: {
4
+    @media (--retina-query) {
5
+      border-top: none;
6
+      background-size: 100% 1px;
7
+      background-repeat: no-repeat;
8
+      background-position: top;
9
+      background-image: linear-gradient(180deg, var(--alert-dialog-separator-color), var(--alert-dialog-separator-color) 50%, transparent 50%);
10
+    }
11
+  }
12
+}
13
+
14
+/*~
15
+  name: Alert Dialog
16
+  category: Alert Dialog
17
+  elements: ons-alert-dialog
18
+  markup: |
19
+    <div class="alert-dialog-mask"></div>
20
+    <div class="alert-dialog">
21
+      <div class="alert-dialog-container">
22
+        <div class="alert-dialog-title">Alert</div>
23
+
24
+        <div class="alert-dialog-content">
25
+          Hello World!
26
+        </div>
27
+
28
+        <div class="alert-dialog-footer">
29
+          <button class="alert-dialog-button alert-dialog-button--primal">OK</button>
30
+        </div>
31
+      </div>
32
+    </div>
33
+*/
34
+
35
+.alert-dialog {
36
+  @apply(--reset-box-model);
37
+  @apply(--reset-base);
38
+  @apply(--reset-cursor);
39
+  @apply(--reset-font);
40
+  position: absolute;
41
+  top: 50%;
42
+  left: 50%;
43
+  transform: translate(-50%, -50%);
44
+  width: 270px;
45
+  margin: auto;
46
+  background-color: var(--alert-dialog-background-color);
47
+  border-radius: 8px;
48
+  overflow: visible;
49
+  max-width: 95%;
50
+  color: var(--alert-dialog-text-color);
51
+}
52
+
53
+.alert-dialog-container {
54
+  height: inherit;
55
+  padding-top: 16px;
56
+  overflow: hidden;
57
+}
58
+
59
+.alert-dialog-title {
60
+  @apply(--reset-font);
61
+  font-size: var(--font-size);
62
+  font-weight: var(--font-weight--large);
63
+  padding: 0 8px;
64
+  text-align: center;
65
+  color: var(--alert-dialog-text-color);
66
+}
67
+
68
+.alert-dialog-content {
69
+  @apply(--reset-box-model);
70
+  padding: 4px 12px 8px;
71
+  font-size: var(--font-size--mini);
72
+  min-height: 36px;
73
+  text-align: center;
74
+  color: var(--alert-dialog-text-color);
75
+}
76
+
77
+.alert-dialog-footer {
78
+  width: 100%;
79
+}
80
+
81
+.alert-dialog-button {
82
+  @apply(--reset-box-model);
83
+  @apply(--reset-base);
84
+  @apply(--reset-font);
85
+  @apply(--reset-cursor);
86
+  @apply(--ellipsis);
87
+  text-decoration: none;
88
+  letter-spacing: 0;
89
+  vertical-align: middle;
90
+  border: none;
91
+  border-top: 1px solid var(--alert-dialog-separator-color);
92
+  font-size: calc(var(--font-size) - 1px);
93
+  padding: 0 8px;
94
+  margin: 0;
95
+  display: block;
96
+  width: 100%;
97
+  background-color: transparent;
98
+  text-align: center;
99
+  height: 44px;
100
+  line-height: 44px;
101
+  outline: none;
102
+  color: var(--alert-dialog-button-color);
103
+  @apply(--retina-alert-dialog-button-border);
104
+}
105
+
106
+.alert-dialog-button:active {
107
+  background-color: rgba(0, 0, 0, 0.05);
108
+}
109
+
110
+.alert-dialog-button--primal {
111
+  font-weight: var(--font-weight--large);
112
+}
113
+
114
+.alert-dialog-footer--rowfooter {
115
+  white-space: nowrap;
116
+  display: flex;
117
+  flex-wrap: wrap;
118
+}
119
+
120
+.alert-dialog-button--rowfooter {
121
+  flex: 1;
122
+  display: block;
123
+  width: 100%;
124
+  border-left: 1px solid var(--alert-dialog-separator-color);
125
+  @media (--retina-query) {
126
+    border-top: none;
127
+    border-left: none;
128
+    background-size: 100% 1px, 1px 100%;
129
+    background-repeat: no-repeat;
130
+    background-position: top, left;
131
+    background-image:
132
+      linear-gradient(0deg, transparent, transparent 50%, var(--alert-dialog-separator-color) 50%),
133
+      linear-gradient(90deg, transparent, transparent 50%, var(--alert-dialog-separator-color) 50%);
134
+  }
135
+}
136
+
137
+.alert-dialog-button--rowfooter:first-child {
138
+  border-left: none;
139
+  @media (--retina-query) {
140
+    border-top: none;
141
+    background-size: 100% 1px;
142
+    background-repeat: no-repeat;
143
+    background-position: top, left;
144
+    background-image: linear-gradient(0deg, transparent, transparent 50%, var(--alert-dialog-separator-color) 50%);
145
+  }
146
+}
147
+
148
+.alert-dialog-mask {
149
+  @apply(--reset-base);
150
+  @apply(--reset-cursor);
151
+  position: absolute;
152
+  top: 0;
153
+  right: 0;
154
+  left: 0;
155
+  bottom: 0;
156
+  background-color: rgba(0, 0, 0, 0.2);
157
+}
158
+
159
+/*~
160
+  name: Alert Dialog without Title
161
+  category: Alert Dialog
162
+  elements: ons-alert-dialog
163
+  markup: |
164
+    <div class="alert-dialog-mask"></div>
165
+    <div class="alert-dialog">
166
+      <div class="alert-dialog-container">
167
+        <div class="alert-dialog-content">
168
+          Hello World!
169
+        </div>
170
+
171
+        <div class="alert-dialog-footer">
172
+          <button class="alert-dialog-button alert-dialog-button--primal">OK</button>
173
+        </div>
174
+      </div>
175
+    </div>
176
+*/
177
+
178
+/*~
179
+  name: Alert Dialog with Multiple Buttons
180
+  category: Alert Dialog
181
+  elements: ons-alert-dialog
182
+  markup: |
183
+    <div class="alert-dialog-mask"></div>
184
+    <div class="alert-dialog">
185
+      <div class="alert-dialog-container">
186
+        <div class="alert-dialog-content">
187
+          Hello World!
188
+        </div>
189
+
190
+        <div class="alert-dialog-footer">
191
+          <button class="alert-dialog-button">Cancel</button>
192
+          <button class="alert-dialog-button alert-dialog-button--primal">OK</button>
193
+        </div>
194
+      </div>
195
+    </div>
196
+*/
197
+
198
+/*~
199
+  name: Alert Dialog with Multiple Buttons 2
200
+  category: Alert Dialog
201
+  elements: ons-alert-dialog
202
+  markup: |
203
+    <div class="alert-dialog-mask"></div>
204
+    <div class="alert-dialog">
205
+      <div class="alert-dialog-container">
206
+        <div class="alert-dialog-title">Alert</div>
207
+
208
+        <div class="alert-dialog-content">
209
+          Hello World!
210
+        </div>
211
+
212
+        <div class="alert-dialog-footer alert-dialog-footer--rowfooter">
213
+          <button class="alert-dialog-button alert-dialog-button--rowfooter">Left</button>
214
+          <button class="alert-dialog-button alert-dialog-button--primal alert-dialog-button--rowfooter">Center</button>
215
+          <button class="alert-dialog-button alert-dialog-button--rowfooter">Right</button>
216
+        </div>
217
+      </div>
218
+    </div>
219
+*/
220
+
221
+/*~
222
+  name: Material Alert Dialog
223
+  category: Alert Dialog
224
+  elements: ons-alert-dialog
225
+  markup: |
226
+    <div class="alert-dialog-mask alert-dialog-mask--material"></div>
227
+    <div class="alert-dialog alert-dialog--material">
228
+      <div class="alert-dialog-container alert-dialog-container--material">
229
+        <div class="alert-dialog-title alert-dialog-title--material">
230
+          Dialog title
231
+        </div>
232
+        <div class="alert-dialog-content alert-dialog-content--material">
233
+          Some dialog content.
234
+        </div>
235
+        <div class="alert-dialog-footer alert-dialog-footer--material">
236
+          <button class="alert-dialog-button alert-dialog-button--material">OK</button>
237
+          <button class="alert-dialog-button alert-dialog-button--material">CANCEL</button>
238
+        </div>
239
+      </div>
240
+    </div>
241
+*/
242
+
243
+.alert-dialog--material {
244
+  border-radius: 2px;
245
+  background-color: var(--material-alert-dialog-background-color);
246
+}
247
+
248
+.alert-dialog-container--material {
249
+  padding: 22px 0 0 0;
250
+  @apply(--material-shadow-5);
251
+}
252
+
253
+.alert-dialog-title--material {
254
+  @apply(--material-font);
255
+  text-align: left;
256
+  font-size: 20px;
257
+  font-weight: 500;
258
+  padding: 0 24px;
259
+  color: var(--material-alert-dialog-title-color);
260
+}
261
+
262
+.alert-dialog-content--material {
263
+  @apply(--material-font);
264
+  text-align: left;
265
+  font-size: 16px;
266
+  font-weight: 400;
267
+  line-height: 20px;
268
+  padding: 0 24px;
269
+  margin: 24px 0 10px 0;
270
+  min-height: 0;
271
+  color: var(--material-alert-dialog-content-color);
272
+}
273
+
274
+.alert-dialog-footer--material {
275
+  display: block;
276
+  padding: 0;
277
+  height: 52px;
278
+  box-sizing: border-box;
279
+  margin: 0;
280
+  line-height: 1;
281
+}
282
+
283
+.alert-dialog-button--material {
284
+  @apply(--material-font);
285
+  text-transform: uppercase;
286
+  display: inline-block;
287
+  width: auto;
288
+  float: right;
289
+  background: none;
290
+  border: none;
291
+  border-radius: 2px;
292
+  font-size: 14px;
293
+  font-weight: 500;
294
+  outline: none;
295
+  height: 36px;
296
+  line-height: 36px;
297
+  padding: 0 8px;
298
+  margin: 8px 8px 8px 0;
299
+  box-sizing: border-box;
300
+  min-width: 50px;
301
+  color: var(--material-alert-dialog-button-color);
302
+  @media (--retina-query) {
303
+    background: none;
304
+  }
305
+}
306
+
307
+.alert-dialog-button--material:active {
308
+  background-color: initial;
309
+}
310
+
311
+/* stylelint-disable */ .alert-dialog-button--rowfooter--material,
312
+.alert-dialog-button--rowfooter--material:first-child { /* stylelint-enable */
313
+  border: 0;
314
+  @media (--retina-query) {
315
+    background: none;
316
+  }
317
+}
318
+
319
+/* stylelint-disable */ .alert-dialog-button--primal--material { /* stylelint-enable */
320
+  font-weight: 500;
321
+  @media (--retina-query) {
322
+    background: none;
323
+  }
324
+}
325
+
326
+.alert-dialog-mask--material {
327
+  background-color: rgba(0, 0, 0, 0.3);
328
+}

+ 115
- 0
Searchbar/onsenui/css-components-src/src/components/button-bar.css 查看文件

@@ -0,0 +1,115 @@
1
+:root {
2
+  --button-bar-active-color: var(--button-bar-active-text-color);
3
+  --button-bar-border-top: 1px solid var(--button-bar-color);
4
+  --button-bar-border-bottom: 1px solid var(--button-bar-color);
5
+  --button-bar-border: 0 solid var(--button-bar-color);
6
+  --button-bar-border-radius: 4px;
7
+
8
+  --button-bar: {
9
+    @apply(--reset-font);
10
+    display: inline-flex;
11
+    align-items: stretch;
12
+    align-content: stretch;
13
+    flex-wrap: nowrap;
14
+    margin: 0;
15
+    padding: 0;
16
+    border: none;
17
+  }
18
+
19
+  --button-bar__item: {
20
+    @apply(--reset-font);
21
+    border-radius: 0;
22
+    width: 100%;
23
+    padding: 0;
24
+    margin: 0;
25
+  }
26
+}
27
+
28
+/*~
29
+  name: Button Bar
30
+  category: Segment
31
+  markup: |
32
+    <div class="button-bar" style="width:280px;">
33
+      <div class="button-bar__item">
34
+        <button class="button-bar__button">One</button>
35
+      </div>
36
+      <div class="button-bar__item">
37
+        <button class="button-bar__button">Two</button>
38
+      </div>
39
+      <div class="button-bar__item">
40
+        <button class="button-bar__button">Three</button>
41
+      </div>
42
+    </div>
43
+*/
44
+
45
+.button-bar {
46
+  @apply(--button-bar);
47
+}
48
+
49
+.button-bar__item {
50
+  @apply(--button-bar__item);
51
+  @apply(--hide-input-parent);
52
+  overflow: hidden;
53
+  box-sizing: border-box;
54
+}
55
+
56
+.button-bar__button {
57
+  @apply(--reset-font);
58
+  border-radius: 0;
59
+  background-color: transparent;
60
+  color: var(--button-bar-color);
61
+  border: 1px solid var(--button-bar-color);
62
+  border-top-width: 1px;
63
+  border-bottom-width: 1px;
64
+  border-right-width: 1px;
65
+  border-left-width: 0;
66
+  font-weight: var(--font-weight);
67
+  padding: 0;
68
+  font-size: 13px;
69
+  height: 27px;
70
+  line-height: 27px;
71
+  width: 100%;
72
+  transition: background-color 0.2s linear, color 0.2s linear;
73
+  box-sizing: border-box;
74
+}
75
+
76
+.button-bar__button:disabled {
77
+  @apply(--disabled);
78
+}
79
+
80
+.button-bar__button:hover {
81
+  transition: none;
82
+}
83
+
84
+.button-bar__button:focus {
85
+  outline: 0;
86
+}
87
+
88
+:checked + .button-bar__button {
89
+  background-color: var(--button-bar-color);
90
+  color: var(--button-bar-active-color);
91
+  transition: none;
92
+}
93
+
94
+.button-bar__button:active,
95
+:active + .button-bar__button {
96
+  background-color: var(--button-bar-active-background-color);
97
+  border: var(--button-bar-border);
98
+  border-top: var(--button-bar-border-top);
99
+  border-bottom: var(--button-bar-border-bottom);
100
+  border-right: 1px solid var(--button-bar-color);
101
+  font-size: 13px;
102
+  width: 100%;
103
+  transition: none;
104
+}
105
+
106
+.button-bar__item:first-child > .button-bar__button {
107
+  border-left-width: 1px;
108
+  border-radius: var(--button-bar-border-radius) 0 0 var(--button-bar-border-radius);
109
+}
110
+
111
+.button-bar__item:last-child > .button-bar__button {
112
+  border-right-width: 1px;
113
+  border-radius: 0 var(--button-bar-border-radius) var(--button-bar-border-radius) 0;
114
+}
115
+

+ 436
- 0
Searchbar/onsenui/css-components-src/src/components/button.css 查看文件

@@ -0,0 +1,436 @@
1
+
2
+:root {
3
+  --button-text-color: white;
4
+  --button-quiet-color: var(--highlight-color);
5
+  --button-cta-color: white;
6
+  --button-large-padding: 4px 12px;
7
+  --button-padding: 4px 10px;
8
+  --button-line-height: 32px;
9
+  --button-large-line-height: 36px;
10
+  --button-active-opacity: 0.2;
11
+  --button-border-radius: 3px;
12
+
13
+  --button--quiet: {
14
+    background: transparent;
15
+    border: 1px solid transparent;
16
+    box-shadow: none;
17
+  }
18
+
19
+  --button--disabled: {
20
+    @apply(--disabled);
21
+  }
22
+
23
+  --button--hover: {
24
+    transition: none;
25
+  }
26
+
27
+  --button: {
28
+    position: relative;
29
+    display: inline-block;
30
+    @apply(--reset-box-model);
31
+    @apply(--reset-base);
32
+    @apply(--reset-font);
33
+    @apply(--reset-cursor);
34
+    @apply(--ellipsis);
35
+    height: auto;
36
+    text-decoration: none;
37
+    padding: var(--button-padding);
38
+    font-size: var(--font-size);
39
+    line-height: var(--button-line-height);
40
+    letter-spacing: 0;
41
+    color: var(--button-text-color);
42
+    vertical-align: middle;
43
+    background-color: var(--button-background-color);
44
+    border: 0 solid currentColor;
45
+    border-radius: var(--button-border-radius);
46
+    transition: none;
47
+  }
48
+
49
+  --button--focus: {
50
+    outline: 0;
51
+  }
52
+
53
+  --button--active: {
54
+    background-color: var(--button-background-color);
55
+    transition: none;
56
+    opacity: var(--button-active-opacity);
57
+  }
58
+
59
+  --button--material: {
60
+    @apply(--button);
61
+    @apply(--material-shadow-1);
62
+    @apply(--material-font);
63
+    min-height: 36px;
64
+    line-height: 36px;
65
+    padding: 0 16px;
66
+    text-align: center;
67
+    font-size: 14px;
68
+    transform: translate3d(0, 0, 0);
69
+    text-transform: uppercase;
70
+    background-color: var(--material-button-background-color);
71
+    color: var(--material-button-text-color);
72
+    font-weight: var(--font-weight--large);
73
+    transition: background-color 0.25s linear;
74
+  }
75
+}
76
+
77
+/*~
78
+  name: Button
79
+  category: Button
80
+  elements: ons-button
81
+  markup: |
82
+    <button class="button">Button</button>
83
+    <button class="button" disabled>Button</button>
84
+*/
85
+
86
+.button {
87
+  @apply(--button);
88
+}
89
+
90
+.button::-moz-focus-inner {
91
+  outline: 0;
92
+}
93
+
94
+.button:hover {
95
+  @apply(--button--hover);
96
+}
97
+
98
+.button:active {
99
+  @apply(--button--active);
100
+}
101
+
102
+.button:focus {
103
+  @apply(--button--focus);
104
+}
105
+
106
+.button:disabled, .button[disabled] {
107
+  @apply(--button--disabled);
108
+}
109
+
110
+/*~
111
+  name: Outline Button
112
+  category: Button
113
+  elements: ons-button
114
+  markup: |
115
+    <button class="button button--outline">Button</button>
116
+    <button class="button button--outline" disabled>Button</button>
117
+*/
118
+
119
+.button--outline {
120
+  background-color: transparent;
121
+  border: 1px solid var(--button-background-color);
122
+  color: var(--button-background-color);
123
+}
124
+
125
+.button--outline:active {
126
+  background-color: color(var(--button-background-color) tint(var(--alpha-lighten)));
127
+  border: 1px solid var(--button-background-color);
128
+  color: var(--button-background-color);
129
+  opacity: 1;
130
+}
131
+
132
+.button--outline:hover {
133
+  border: 1px solid var(--button-background-color);
134
+  transition: 0;
135
+}
136
+
137
+/*~
138
+  name: Light Button
139
+  category: Button
140
+  elements: ons-button
141
+  markup: |
142
+    <button class="button button--light">Button</button>
143
+    <button class="button button--light" disabled>Button</button>
144
+*/
145
+
146
+.button--light {
147
+  background-color: transparent;
148
+  color: color(var(--button-light-color) a(40%));
149
+  border: 1px solid color(var(--button-light-color) a(20%));
150
+}
151
+
152
+.button--light:active {
153
+  background-color: color(var(--button-light-color) a(5%));
154
+  color: color(var(--button-light-color) a(40%));
155
+  border: 1px solid color(var(--button-light-color) a(20%));
156
+  opacity: 1;
157
+}
158
+
159
+/*~
160
+  name: Quiet Button
161
+  category: Button
162
+  elements: ons-button
163
+  markup: |
164
+    <button class="button--quiet">Button</button>
165
+    <button class="button--quiet" disabled>Button</button>
166
+*/
167
+
168
+.button--quiet {
169
+  @apply(--button);
170
+  @apply(--button--quiet);
171
+  background: transparent;
172
+  color: var(--button-quiet-color);
173
+  border: none;
174
+}
175
+
176
+.button--quiet:disabled,
177
+.button--quiet[disabled] {
178
+  @apply(--button--disabled);
179
+  border: none;
180
+}
181
+
182
+.button--quiet:hover {
183
+  @apply(--button--hover);
184
+}
185
+
186
+.button--quiet:focus {
187
+  @apply(--button--focus);
188
+}
189
+
190
+.button--quiet:active {
191
+  background-color: transparent;
192
+  border: none;
193
+  transition: none;
194
+  opacity: var(--button-active-opacity);
195
+  color: var(--button-quiet-color);
196
+}
197
+
198
+/*~
199
+  name: Call To Action Button
200
+  category: Button
201
+  elements: ons-button
202
+  markup: |
203
+    <button class="button--cta">Button</button>
204
+    <button class="button--cta" disabled>Button</button>
205
+*/
206
+
207
+.button--cta {
208
+  @apply(--button);
209
+  border: none;
210
+  background-color: var(--button-cta-background-color);
211
+  color: var(--button-cta-color);
212
+}
213
+
214
+.button--cta:hover {
215
+  @apply(--button--hover);
216
+}
217
+
218
+.button--cta:focus {
219
+  @apply(--button--focus);
220
+}
221
+
222
+.button--cta:active {
223
+  color: var(--button-cta-color);
224
+  background-color: var(--button-cta-background-color);
225
+  transition: none;
226
+  opacity: var(--button-active-opacity);
227
+}
228
+
229
+.button--cta:disabled,
230
+.button--cta[disabled] {
231
+  @apply(--button--disabled);
232
+}
233
+
234
+/*
235
+  name: Large Button
236
+  category: Button
237
+  elements: ons-button
238
+  markup: |
239
+    <button class="button button--large" style="width: 95%; margin: 0 auto;">Button</button>
240
+*/
241
+
242
+.button--large {
243
+  font-size: var(--font-size);
244
+  font-weight: var(--font-weight--large);
245
+  line-height: var(--button-large-line-height);
246
+  padding: var(--button-large-padding);
247
+  display: block;
248
+  width: 100%;
249
+  text-align: center;
250
+}
251
+
252
+.button--large:active {
253
+  @apply(--button--active);
254
+  transition: none;
255
+}
256
+
257
+.button--large:disabled,
258
+.button--large[disabled] {
259
+  @apply(--button--disabled);
260
+}
261
+
262
+.button--large:hover {
263
+  @apply(--button--hover);
264
+}
265
+
266
+.button--large:focus {
267
+  @apply(--button--focus);
268
+}
269
+
270
+/*~
271
+  name: Large Quiet Button
272
+  category: Button
273
+  elements: ons-button
274
+  markup: |
275
+    <button class="button--large--quiet" style="width: 95%; margin: 0 auto;">Button</button>
276
+*/
277
+
278
+.button--large--quiet { /* stylelint-disable-line */
279
+  @apply(--button);
280
+  font-size: var(--font-size);
281
+  font-weight: var(--font-weight--large);
282
+  line-height: var(--button-large-line-height);
283
+  padding: var(--button-large-padding);
284
+  display: block;
285
+  width: 100%;
286
+  @apply(--button--quiet);
287
+  color: var(--button-quiet-color);
288
+  text-align: center;
289
+}
290
+
291
+.button--large--quiet:active { /* stylelint-disable-line */
292
+  transition: none;
293
+  opacity: var(--button-active-opacity);
294
+  color: var(--button-quiet-color);
295
+  @apply(--button--quiet);
296
+}
297
+
298
+.button--large--quiet:disabled, .button--large--quiet[disabled] { /* stylelint-disable-line */
299
+  @apply(--button--disabled);
300
+}
301
+
302
+.button--large--quiet:hover { /* stylelint-disable-line */
303
+  @apply(--button--hover);
304
+}
305
+
306
+.button--large--quiet:focus { /* stylelint-disable-line */
307
+  outline: 0;
308
+}
309
+
310
+/*~
311
+  name: Large Call To Action Button
312
+  category: Button
313
+  elements: ons-button
314
+  markup: |
315
+    <button class="button--large--cta" style="width: 95%; margin: 0 auto;">Button</button>
316
+*/
317
+
318
+.button--large--cta { /* stylelint-disable-line */
319
+  @apply(--button);
320
+  border: none;
321
+  background-color: var(--button-cta-background-color);
322
+  color: var(--button-cta-color);
323
+  font-size: var(--font-size);
324
+  font-weight: var(--font-weight--large);
325
+  line-height: var(--button-large-line-height);
326
+  padding: var(--button-large-padding);
327
+  width: 100%;
328
+  text-align: center;
329
+  display: block;
330
+}
331
+
332
+.button--large--cta:hover { /* stylelint-disable-line */
333
+  @apply(--button--hover);
334
+}
335
+
336
+.button--large--cta:focus { /* stylelint-disable-line */
337
+  @apply(--button--focus);
338
+}
339
+
340
+.button--large--cta:active { /* stylelint-disable-line */
341
+  color: var(--button-cta-color);
342
+  background-color: var(--button-cta-background-color);
343
+  transition: none;
344
+  opacity: var(--button-active-opacity);
345
+}
346
+
347
+.button--large--cta:disabled, .button--large--cta[disabled] { /* stylelint-disable-line */
348
+  @apply(--button--disabled);
349
+}
350
+
351
+/*~
352
+  name: Material Button
353
+  category: Button
354
+  elements: ons-button
355
+  markup: |
356
+    <button class="button button--material">BUTTON</button>
357
+    <button class="button button--material" disabled>DISABLED</button>
358
+*/
359
+
360
+.button--material {
361
+  @apply(--button--material);
362
+  opacity: 1;
363
+  transition: all 0.25s linear;
364
+}
365
+
366
+.button--material:hover {
367
+  transition: all 0.25s linear;
368
+}
369
+
370
+.button--material:active {
371
+  @apply(--material-shadow-3);
372
+  background-color: var(--material-button-background-color);
373
+  opacity: 0.9;
374
+  transition: all 0.25s linear;
375
+}
376
+
377
+.button--material:focus {
378
+  @apply(--button--focus);
379
+}
380
+
381
+.button--material:disabled,
382
+.button--material[disabled] {
383
+  transition: none;
384
+  @apply(--material-shadow-0);
385
+  background-color: var(--material-button-disabled-background-color);
386
+  color: var(--material-button-disabled-color);
387
+  opacity: 1;
388
+}
389
+
390
+/*~
391
+  name: Material Flat Button
392
+  category: Button
393
+  elements: ons-button
394
+  markup: |
395
+    <button class="button button--material--flat">BUTTON</button>
396
+    <button class="button button--material--flat" disabled>DISABLED</button>
397
+*/
398
+
399
+.button--material--flat { /* stylelint-disable-line */
400
+  @apply(--button--material);
401
+  @apply(--material-shadow-0);
402
+  background-color: transparent;
403
+  color: var(--material-button-background-color);
404
+  transition: all 0.25s linear;
405
+}
406
+
407
+.button--material--flat:hover { /* stylelint-disable-line */
408
+  transition: all 0.25s linear;
409
+}
410
+
411
+.button--material--flat:focus { /* stylelint-disable-line */
412
+  @apply(--material-shadow-0);
413
+  background-color: transparent;
414
+  color: var(--material-button-background-color);
415
+  outline: 0;
416
+  opacity: 1;
417
+  border: none;
418
+}
419
+
420
+.button--material--flat:active { /* stylelint-disable-line */
421
+  @apply(--material-shadow-0);
422
+  outline: 0;
423
+  opacity: 1;
424
+  border: none;
425
+  background-color: var(--material-flat-button-active-background-color);
426
+  color: var(--material-button-background-color);
427
+  transition: all 0.25s linear;
428
+}
429
+
430
+.button--material--flat:disabled, .button--material--flat[disabled] {/* stylelint-disable-line */
431
+  transition: none;
432
+  opacity: 1;
433
+  @apply(--material-shadow-0);
434
+  background-color: transparent;
435
+  color: var(--material-button-disabled-color);
436
+}

+ 102
- 0
Searchbar/onsenui/css-components-src/src/components/card.css 查看文件

@@ -0,0 +1,102 @@
1
+
2
+:root {
3
+  --card-text-line-height: 1.4;
4
+  --card-text-font-size: 14px;
5
+  --material-card-text-line-height: 1.4;
6
+  --material-card-text-font-size: 14px;
7
+}
8
+
9
+/*~
10
+  name: Card
11
+  category: Card
12
+  markup: |
13
+    <div style="height: 200px; padding: 1px 0 0 0;">
14
+      <div class="card">
15
+        <div class="card__content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
16
+      </div>
17
+    </div>
18
+*/
19
+
20
+.card {
21
+  @apply(--reset-font);
22
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
23
+  border-radius: 8px;
24
+  background-color: var(--card-background-color);
25
+  box-sizing: border-box;
26
+  display: block;
27
+  margin: 8px;
28
+  padding: 16px;
29
+  text-align: left;
30
+  word-wrap: break-word;
31
+}
32
+
33
+.card__content {
34
+  margin: 0;
35
+  font-size: var(--card-text-font-size);
36
+  line-height: var(--card-text-line-height);
37
+  color: var(--card-text-color);
38
+}
39
+
40
+/*~
41
+  name: Card with Title
42
+  category: Card
43
+  markup: |
44
+    <div style="height: 200px; padding: 1px 0 0 0;">
45
+      <div class="card">
46
+        <h2 class="card__title">Card Title</h2>
47
+        <div class="card__content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
48
+      </div>
49
+    </div>
50
+*/
51
+
52
+.card__title {
53
+  @apply(--reset-font);
54
+  font-weight: 400;
55
+  font-size: 20px;
56
+  margin: 4px 0 8px 0;
57
+  padding: 0;
58
+  display: block;
59
+  box-sizing: border-box;
60
+}
61
+
62
+/*~
63
+  name: Material Card
64
+  category: Card
65
+  markup: |
66
+    <div style="height: 200px; padding: 1px 0 0 0;">
67
+      <div class="card card--material">
68
+        <div class="card__content card--material__content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
69
+      </div>
70
+    </div>
71
+*/
72
+
73
+.card--material {
74
+  background-color: var(--material-card-background-color);
75
+  border-radius: 2px;
76
+  @apply(--material-shadow-1);
77
+  @apply(--material-font);
78
+}
79
+
80
+.card--material__content {
81
+  font-size: var(--material-card-text-font-size);
82
+  line-height: var(--material-card-text-line-height);
83
+  color: var(--material-card-text-color);
84
+}
85
+
86
+/*~
87
+  name: Material Card with Title
88
+  category: Card
89
+  markup: |
90
+    <div style="height: 200px; padding: 1px 0 0 0;">
91
+      <div class="card card--material">
92
+        <div class="card__title card--material__title">Card Title</div>
93
+        <div class="card__content card--material__content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
94
+      </div>
95
+    </div>
96
+*/
97
+
98
+.card--material__title {
99
+  @apply(--material-font);
100
+  font-size: 24px;
101
+  margin: 8px 0 12px 0;
102
+}

+ 331
- 0
Searchbar/onsenui/css-components-src/src/components/checkbox.css 查看文件

@@ -0,0 +1,331 @@
1
+:root {
2
+  --checkbox-size: 22px;
3
+  --checkbox-border: 1px solid #c7c7cd;
4
+  --checkbox-checked-background-color: var(--highlight-color); /* background color active */
5
+  --background-color--before--checkbox: var(--checkbox-checked-background-color);
6
+  --checkmark-border: 2px solid #fff;
7
+  --material-checkbox-size: 18px;
8
+  --material-checkbox-focus-ring-size: 40px;
9
+  --material-checkbox-focus-ring-shadow-size: calc((var(--material-checkbox-focus-ring-size) - var(--material-checkbox-size)) / 2);
10
+
11
+  --checkbox: {
12
+    @apply(--reset-box-model);
13
+    position: relative;
14
+    display: inline-block;
15
+    vertical-align: top;
16
+    @apply(--reset-cursor);
17
+    @apply(--reset-font);
18
+    @apply(--hide-input-parent);
19
+  }
20
+
21
+  --checkbox__label: {
22
+    position: relative;
23
+    display: inline-block;
24
+    vertical-align: top;
25
+    @apply(--reset-cursor);
26
+    @apply(--reset-font);
27
+  }
28
+
29
+  --checkbox--disabled: {
30
+    @apply(--disabled);
31
+  }
32
+
33
+  --checkbox--before: {
34
+    content: '';
35
+    position: absolute;
36
+  }
37
+
38
+  --checkbox--after: {
39
+    @apply(--checkbox--before);
40
+  }
41
+}
42
+
43
+/*~
44
+  name: Checkbox
45
+  category: Checkbox
46
+  elements: ons-input
47
+  markup: |
48
+    <label class="checkbox">
49
+      <input type="checkbox" class="checkbox__input">
50
+      <div class="checkbox__checkmark"></div>
51
+      OFF
52
+    </label>
53
+
54
+    <label class="checkbox">
55
+      <input type="checkbox" class="checkbox__input" checked="checked">
56
+      <div class="checkbox__checkmark"></div>
57
+      ON
58
+    </label>
59
+
60
+    <label class="checkbox">
61
+      <input type="checkbox" class="checkbox__input" disabled>
62
+      <div class="checkbox__checkmark"></div>
63
+      Disabled
64
+    </label>
65
+*/
66
+
67
+.checkbox {
68
+  @apply(--checkbox__label);
69
+  line-height: var(--checkbox-size);
70
+}
71
+
72
+.checkbox__checkmark {
73
+  @apply(--checkbox);
74
+  height: var(--checkbox-size);
75
+  width: var(--checkbox-size);
76
+  pointer-events: none;
77
+}
78
+
79
+.checkbox__input,
80
+.checkbox__input:checked {
81
+  @apply(--hide-input);
82
+}
83
+
84
+.checkbox__checkmark:before {
85
+  @apply(--checkbox--before);
86
+  @apply(--reset-box-model);
87
+  width: var(--checkbox-size);
88
+  height: var(--checkbox-size);
89
+  background: transparent;
90
+  border: var(--checkbox-border);
91
+  border-radius: var(--checkbox-size);
92
+  left: 0;
93
+}
94
+
95
+/* checkmark's line */
96
+.checkbox__checkmark:after {
97
+  @apply(--checkbox--after);
98
+  top: 7px;
99
+  left: 5px;
100
+  width: 11px;
101
+  height: 5px;
102
+  background: transparent;
103
+  border: var(--checkmark-border);
104
+  border-width: 1px;
105
+  border-top: none;
106
+  border-right: none;
107
+  border-radius: 0;
108
+  transform: rotate(-45deg);
109
+  opacity: 0;
110
+}
111
+
112
+:checked + .checkbox__checkmark:before {
113
+  background: var(--background-color--before--checkbox);
114
+  border: none;
115
+}
116
+
117
+:checked + .checkbox__checkmark:after {
118
+  opacity: 1;
119
+}
120
+
121
+:disabled + .checkbox__checkmark {
122
+  @apply(--checkbox--disabled);
123
+}
124
+
125
+:disabled:active + .checkbox__checkmark:before { /* FIXME */
126
+  background: transparent;
127
+}
128
+
129
+/*~
130
+  name: No border Checkbox
131
+  category: Checkbox
132
+  elements: ons-input
133
+  markup: |
134
+    <label class="checkbox--noborder">
135
+      <input type="checkbox" class="checkbox__input checkbox--noborder__input">
136
+      <div class="checkbox__checkmark checkbox--noborder__checkmark"></div>
137
+      OFF
138
+    </label>
139
+
140
+    <label class="checkbox--noborder">
141
+      <input type="checkbox" class="checkbox__input checkbox--noborder__input" checked="checked">
142
+      <div class="checkbox__checkmark checkbox--noborder__checkmark"></div>
143
+      ON
144
+    </label>
145
+
146
+    <label class="checkbox--noborder">
147
+      <input type="checkbox" class="checkbox__input checkbox--noborder__input" disabled checked="checked">
148
+      <div class="checkbox__checkmark checkbox--noborder__checkmark"></div>
149
+      Disabled
150
+    </label>
151
+ */
152
+
153
+.checkbox--noborder {
154
+  @apply(--checkbox__label);
155
+  line-height: var(--checkbox-size);
156
+  @apply(--hide-input-parent);
157
+}
158
+
159
+.checkbox--noborder__input {
160
+  @apply(--hide-input);
161
+}
162
+
163
+.checkbox--noborder__checkmark {
164
+  position: relative;
165
+  display: inline-block;
166
+  vertical-align: top;
167
+  @apply(--reset-cursor);
168
+  @apply(--reset-box-model);
169
+  width: var(--checkbox-size);
170
+  height: var(--checkbox-size);
171
+  background: transparent;
172
+  border: none;
173
+}
174
+
175
+.checkbox--noborder__checkmark:before {
176
+  content: '';
177
+  position: absolute;
178
+  width: var(--checkbox-size);
179
+  height: var(--checkbox-size);
180
+  background: transparent;
181
+  border: none;
182
+  border-radius: var(--checkbox-size);
183
+  left: 0;
184
+}
185
+
186
+/* checkmark's line */
187
+.checkbox--noborder__checkmark:after {
188
+  @apply(--checkmark);
189
+}
190
+
191
+:checked + .checkbox--noborder__checkmark:before {
192
+  background: transparent;
193
+  border: none;
194
+}
195
+
196
+:checked + .checkbox--noborder__checkmark:after {
197
+  opacity: 1;
198
+}
199
+
200
+:focus + .checkbox--noborder__checkmark:before {
201
+  border: none;
202
+}
203
+
204
+:disabled + .checkbox--noborder__checkmark {
205
+  @apply(--disabled);
206
+}
207
+
208
+:disabled:active + .checkbox--noborder__checkmark:before {
209
+  background: transparent;
210
+  border: none;
211
+}
212
+
213
+/*~
214
+  name: Material Checkbox
215
+  category: Checkbox
216
+  elements: ons-input
217
+  markup: |
218
+    <label class="checkbox checkbox--material">
219
+      <input type="checkbox" class="checkbox__input checkbox--material__input">
220
+      <div class="checkbox__checkmark checkbox--material__checkmark"></div>
221
+      OFF
222
+    </label>
223
+    <label class="checkbox checkbox--material">
224
+      <input type="checkbox" class="checkbox__input checkbox--material__input" checked="checked">
225
+      <div class="checkbox__checkmark checkbox--material__checkmark"></div>
226
+      ON
227
+    </label>
228
+    <label class="checkbox checkbox--material">
229
+      <input type="checkbox" class="checkbox__input checkbox--material__input" checked="checked" disabled>
230
+      <div class="checkbox__checkmark checkbox--material__checkmark"></div>
231
+      ON
232
+    </label>
233
+    <label class="checkbox checkbox--material">
234
+      <input type="checkbox" class="checkbox__input checkbox--material__input" disabled>
235
+      <div class="checkbox__checkmark checkbox--material__checkmark"></div>
236
+      Disabled
237
+    </label>
238
+*/
239
+
240
+.checkbox--material {
241
+  line-height: var(--material-checkbox-size);
242
+  @apply(--material-font);
243
+  overflow: visible;
244
+}
245
+
246
+.checkbox--material__checkmark {
247
+  width: var(--material-checkbox-size);
248
+  height: var(--material-checkbox-size);
249
+}
250
+
251
+.checkbox--material__checkmark:before {
252
+  border-radius: 2px;
253
+  height: var(--material-checkbox-size);
254
+  width: var(--material-checkbox-size);
255
+  border: 2px solid var(--material-checkbox-inactive-color);
256
+  transition: background-color 0.1s linear 0.2s, border-color 0.1s linear 0.2s;
257
+  background-color: transparent;
258
+}
259
+
260
+:checked + .checkbox--material__checkmark:before {
261
+  border: 2px solid var(--material-checkbox-active-color);
262
+  background-color: var(--material-checkbox-active-color);
263
+  transition: background-color 0.1s linear, border-color 0.1s linear;
264
+}
265
+
266
+.checkbox--material__checkmark:after {
267
+  border-color: var(--material-checkbox-checkmark-color);
268
+  transition: transform 0.2s ease 0;
269
+  width: 10px;
270
+  height: 5px;
271
+  top: 4px;
272
+  left: 3px;
273
+  transform: scale(0) rotate(-45deg);
274
+  border-width: 2px;
275
+}
276
+
277
+:checked + .checkbox--material__checkmark:after {
278
+  transition: transform 0.2s ease 0.2s;
279
+  width: 10px;
280
+  height: 5px;
281
+  top: 4px;
282
+  left: 3px;
283
+  transform: scale(1) rotate(-45deg);
284
+  border-width: 2px;
285
+}
286
+
287
+/* active ring effect */
288
+.checkbox--material__input:before {
289
+  content: '';
290
+  opacity: 0;
291
+  position: absolute;
292
+  top: 0;
293
+  left: 0;
294
+  width: var(--material-checkbox-size);
295
+  height: var(--material-checkbox-size);
296
+  box-shadow: 0 0 0 var(--material-checkbox-focus-ring-shadow-size) var(--material-checkbox-inactive-color);
297
+  box-sizing: border-box;
298
+  border-radius: 50%;
299
+  background-color: var(--material-checkbox-inactive-color);
300
+  pointer-events: none;
301
+  display: block;
302
+  transform: scale3d(0.2, 0.2, 0.2);
303
+  transition: opacity 0.25s ease-out, transform 0.1s ease-out;
304
+}
305
+
306
+.checkbox--material__input:checked:before {
307
+  box-shadow: 0 0 0 var(--material-checkbox-focus-ring-shadow-size) var(--material-checkbox-active-color);
308
+  background-color: var(--material-checkbox-active-color);
309
+}
310
+
311
+.checkbox--material__input:active:before {
312
+  opacity: .15;
313
+  transform: scale3d(1, 1, 1);
314
+}
315
+
316
+:disabled + .checkbox--material__checkmark {
317
+  opacity: 1;
318
+}
319
+
320
+:disabled + .checkbox--material__checkmark:before {
321
+  border-color: #afafaf;
322
+}
323
+
324
+:disabled:checked + .checkbox--material__checkmark:before {
325
+  background-color: #afafaf;
326
+}
327
+
328
+:disabled:checked + .checkbox--material__checkmark:after {
329
+  border-color: #ffffff;
330
+}
331
+

+ 86
- 0
Searchbar/onsenui/css-components-src/src/components/combination.css 查看文件

@@ -0,0 +1,86 @@
1
+/* ------- */
2
+/* Default */
3
+/* ------- */
4
+
5
+/* All toolbar */
6
+.toolbar {
7
+  top: 0;
8
+  box-sizing: border-box;
9
+  padding-top: 0;
10
+}
11
+.bottom-bar {
12
+  bottom: 0;
13
+  box-sizing: border-box;
14
+  padding-bottom: 0;
15
+}
16
+
17
+/* All page__background with a ordinal toolbar */
18
+.toolbar+.page__background {
19
+  top: var(--toolbar-height);
20
+}
21
+
22
+/* All page__content without toolbars */
23
+.page__content {
24
+  top: 0;
25
+  padding-top: 0;
26
+
27
+  bottom: 0;
28
+}
29
+/* All page__content with a toolbar */
30
+.toolbar+.page__background+.page__content {
31
+  top: var(--toolbar-height);
32
+  padding-top: 0;
33
+}
34
+/* All page__content with a bottom-bar */
35
+.page-with-bottom-toolbar > .page__content {
36
+  bottom: 44px;
37
+}
38
+
39
+/* -------- */
40
+/* Material */
41
+/* -------- */
42
+
43
+/* All page__background with a material toolbar */
44
+.toolbar.toolbar--material+.page__background {
45
+  top: var(--toolbar-material-height);
46
+}
47
+/* All page__content with a material toolbar */
48
+.toolbar.toolbar--material+.page__background+.page__content {
49
+  top: var(--toolbar-material-height);
50
+  padding-top: 0;
51
+}
52
+
53
+/* -------- */
54
+/*  Others  */
55
+/* -------- */
56
+
57
+/* All page__background with a transparent toolbar */
58
+.toolbar.toolbar--transparent+.page__background {
59
+  top: 0;
60
+}
61
+/* All page__content with a transparent cover-content toolbar and its direct descendant page_content */
62
+.toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content,
63
+.toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page_content {
64
+  top: 0;
65
+  padding-top: var(--toolbar-height);
66
+}
67
+/* All page__content with a material transparent cover-content toolbar and its direct descendant page_content */
68
+.toolbar.toolbar--material.toolbar--transparent.toolbar--cover-content+.page__background+.page__content,
69
+.toolbar.toolbar--material.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page_content {
70
+  top: 0;
71
+  padding-top: var(--toolbar-material-height);
72
+}
73
+
74
+/* -------- */
75
+/*  Tabbar  */
76
+/* -------- */
77
+
78
+/* All top tabbar */
79
+.tabbar--top {
80
+  padding-top: 0;
81
+}
82
+/* All bottom tabbar */
83
+.tabbar:not(.tabbar--top) {
84
+  padding-bottom: 0;
85
+}
86
+

+ 79
- 0
Searchbar/onsenui/css-components-src/src/components/dialog.css 查看文件

@@ -0,0 +1,79 @@
1
+
2
+/*~
3
+  name: Dialog
4
+  category: Dialog
5
+  elements: ons-dialog
6
+  markup: |
7
+    <div class="dialog-mask"></div>
8
+    <div class="dialog">
9
+      <div class="dialog-container">
10
+        <p style="text-align:center;margin-top:40px;opacity:0.4;">Content</p>
11
+      </div>
12
+    </div>
13
+*/
14
+
15
+.dialog {
16
+  @apply(--reset-box-model);
17
+  @apply(--reset-base);
18
+  @apply(--reset-cursor);
19
+  @apply(--reset-font);
20
+  position: absolute;
21
+  top: 50%;
22
+  left: 50%;
23
+  transform: translate(-50%, -50%);
24
+  margin: auto auto;
25
+  overflow: hidden;
26
+  min-width: 270px;
27
+  min-height: 100px;
28
+  text-align: left;
29
+}
30
+
31
+.dialog-container {
32
+  height: inherit;
33
+  min-height: inherit;
34
+  overflow: hidden;
35
+  border-radius: 4px;
36
+  background-color: var(--dialog-background-color);
37
+  -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC');
38
+  color: var(--dialog-text-color);
39
+}
40
+
41
+.dialog-mask {
42
+  @apply(--reset-base);
43
+  @apply(--reset-cursor);
44
+  position: absolute;
45
+  top: 0;
46
+  right: 0;
47
+  left: 0;
48
+  bottom: 0;
49
+  background-color: rgba(0, 0, 0, 0.2);
50
+}
51
+
52
+/*~
53
+  name: Material Dialog
54
+  category: Dialog
55
+  elements: ons-dialog
56
+  markup: |
57
+    <div class="dialog-mask dialog-mask--material"></div>
58
+    <div class="dialog dialog--material">
59
+      <div class="dialog dialog-container--material">
60
+        <p style="margin-left:24px;margin-right:24px">The quick brown fox jumps over the lazy dog.</p>
61
+      </div>
62
+    </div>
63
+*/
64
+
65
+.dialog--material {
66
+  @apply(--material-font);
67
+  text-align: left;
68
+  @apply(--material-shadow-5);
69
+}
70
+
71
+.dialog-container--material {
72
+  border-radius: 2px;
73
+  background-color: var(--material-dialog-background-color);
74
+  color: var(--material-dialog-text-color);
75
+}
76
+
77
+.dialog-mask--material {
78
+  background-color: rgba(0, 0, 0, 0.3);
79
+}

+ 256
- 0
Searchbar/onsenui/css-components-src/src/components/fab.css 查看文件

@@ -0,0 +1,256 @@
1
+
2
+:root {
3
+  --fab-width: 56px;
4
+  --fab-height: 56px;
5
+  --fab-position: absolute;
6
+  --fab-mini-width: 40px;
7
+  --fab-mini-height: 40px;
8
+
9
+  --material-fab-width: 56px;
10
+  --material-fab-height: 56px;
11
+  --material-fab-position: absolute;
12
+  --material-fab-mini-width: 40px;
13
+  --material-fab-mini-height: 40px;
14
+
15
+  --fab: {
16
+    position: relative;
17
+    display: inline-block;
18
+    @apply(--reset-box-model);
19
+    @apply(--reset-base);
20
+    @apply(--reset-font);
21
+    @apply(--reset-cursor);
22
+    width: var(--fab-width);
23
+    height: var(--fab-height);
24
+    text-decoration: none;
25
+    font-size: 25px;
26
+    line-height: var(--fab-height);
27
+    letter-spacing: 0;
28
+    color: var(--fab-text-color);
29
+    vertical-align: middle;
30
+    text-align: center;
31
+    background-color: var(--fab-background-color);
32
+    border: 0 solid currentColor;
33
+    border-radius: 50%;
34
+    overflow: hidden;
35
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);
36
+    transition: all 0.1s linear;
37
+  }
38
+
39
+  --material-fab: {
40
+    @apply(--fab);
41
+    @apply(--material-font);
42
+    width: var(--material-fab-width);
43
+    height: var(--material-fab-height);
44
+    text-decoration: none;
45
+    font-size: 25px;
46
+    line-height: var(--material-fab-height);
47
+    color: var(--material-fab-text-color);
48
+    background-color: var(--material-fab-background-color);
49
+    @apply(--material-shadow-2);
50
+    transition: all 0.2s ease-in-out;
51
+  }
52
+
53
+  --fab--focus: {
54
+    outline: 0;
55
+  }
56
+
57
+  --material-fab--focus: {
58
+    outline: 0;
59
+  }
60
+
61
+  --fab--active: {
62
+    box-shadow: 0 3px 6 rgba(0, 0, 0, 0.12);
63
+    background-color: var(--fab-active-background-color);
64
+    transition: all 0.2s ease;
65
+  }
66
+
67
+  --material-fab--active: {
68
+    @apply(--material-shadow-4);
69
+    background-color: var(--material-fab-active-background-color);
70
+    transition: all 0.2s ease;
71
+  }
72
+
73
+  --fab--disabled: {
74
+    background-color: color(black alpha(50%));
75
+    @apply(--material-shadow-0);
76
+    @apply(--disabled);
77
+  }
78
+
79
+  --material-fab--disabled: {
80
+    background-color: color(black alpha(50%));
81
+    @apply(--material-shadow-0);
82
+    @apply(--disabled);
83
+  }
84
+}
85
+
86
+/*~
87
+  name: Fab
88
+  category: Fab
89
+  elements: ons-fab
90
+  markup: |
91
+    <button class="fab"><i class="zmdi zmdi-car"></i></button>
92
+    <button class="fab" disabled><i class="zmdi zmdi-car"></i></button>
93
+*/
94
+/* stylelint-disable */
95
+ons-fab, ons-speed-dial-item, button {
96
+  &.fab {
97
+    @apply(--fab);
98
+    &:active {
99
+      @apply(--fab--active);
100
+      box-shadow: 0 0 6 rgba(0, 0, 0, 0.12);
101
+    }
102
+    &:focus {
103
+      @apply(--fab--focus);
104
+    }
105
+    &:disabled,
106
+    &[disabled] {
107
+      @apply(--material-fab--disabled);
108
+    }
109
+  }
110
+
111
+  &.fab__icon {
112
+    position: relative;
113
+    overflow: hidden;
114
+    height: 100%;
115
+    width: 100%;
116
+    display: block;
117
+    border-radius: 100%;
118
+    padding: 0;
119
+    z-index: 100;
120
+    line-height: var(--material-fab-height);
121
+  }
122
+}
123
+/* stylelint-enable */
124
+
125
+/*~
126
+  name: Material Fab
127
+  category: Fab
128
+  elements: ons-fab
129
+  markup: |
130
+    <button class="fab fab--material"><i class="zmdi zmdi-car"></i></button>
131
+    <button class="fab fab--material" disabled><i class="zmdi zmdi-car"></i></button>
132
+*/
133
+
134
+/* stylelint-disable */
135
+ons-fab, ons-speed-dial-item, button {
136
+  &.fab--material {
137
+    @apply(--material-fab);
138
+  }
139
+
140
+  &.fab--material:active {
141
+    @apply(--material-fab--active);
142
+  }
143
+
144
+  &.fab--material:focus {
145
+    @apply(--material-fab--focus);
146
+  }
147
+
148
+  &.fab--material__icon {
149
+    position: relative;
150
+    overflow: hidden;
151
+    height: 100%;
152
+    width: 100%;
153
+    display: block;
154
+    border-radius: 100%;
155
+    padding: 0;
156
+    z-index: 100;
157
+    line-height: var(--material-fab-height);
158
+  }
159
+
160
+  &.fab--material:disabled,
161
+  &.fab--material[disabled] {
162
+    @apply(--material-fab--disabled);
163
+  }
164
+}
165
+/* stylelint-enable */
166
+
167
+/*~
168
+  name: Fab Mini
169
+  category: Fab
170
+  elements: ons-fab
171
+  markup: |
172
+    <button class="fab fab--mini"><i class="zmdi zmdi-plus"></i></button>
173
+    <button class="fab fab--mini" disabled><i class="zmdi zmdi-plus"></i></button>
174
+*/
175
+
176
+/*~
177
+  name: Material Fab Mini
178
+  category: Fab
179
+  elements: ons-fab
180
+  markup: |
181
+    <button class="fab fab--material fab--mini"><i class="zmdi zmdi-plus"></i></button>
182
+    <button class="fab fab--material fab--mini" disabled><i class="zmdi zmdi-plus"></i></button>
183
+*/
184
+
185
+/* stylelint-disable */
186
+ons-fab, ons-speed-dial-item, button {
187
+  &.fab--mini {
188
+    width: var(--fab-mini-width);
189
+    height: var(--fab-mini-height);
190
+    line-height: var(--fab-mini-height);
191
+  }
192
+
193
+  &.fab--mini__icon {
194
+    line-height: var(--fab-mini-height);
195
+  }
196
+
197
+  &.speed-dial__item  {
198
+    position: absolute;
199
+    transform: scale(0);
200
+  }
201
+}
202
+/* stylelint-enable */
203
+
204
+/* stylelint-disable */
205
+ons-fab, button, .speed-dial {
206
+  &.fab--top__right {
207
+    top: 20px;
208
+    bottom: auto;
209
+    right: 20px;
210
+    left: auto;
211
+    position: var(--fab-position);
212
+  }
213
+
214
+  &.fab--bottom__right {
215
+    top: auto;
216
+    bottom: 20px;
217
+    right: 20px;
218
+    left: auto;
219
+    position: var(--fab-position);
220
+  }
221
+
222
+  &.fab--top__left {
223
+    top: 20px;
224
+    bottom: auto;
225
+    right: auto;
226
+    left: 20px;
227
+    position: var(--fab-position);
228
+  }
229
+
230
+  &.fab--bottom__left {
231
+    top: auto;
232
+    bottom: 20px;
233
+    right: auto;
234
+    left: 20px;
235
+    position: var(--fab-position);
236
+  }
237
+
238
+  &.fab--top__center {
239
+    top: 20px;
240
+    bottom: auto;
241
+    margin-left: -28px;
242
+    left: 50%;
243
+    right: auto;
244
+    position: var(--fab-position);
245
+  }
246
+
247
+  &.fab--bottom__center {
248
+    top: auto;
249
+    bottom: 20px;
250
+    margin-left: -28px;
251
+    left: 50%;
252
+    right: auto;
253
+    position: var(--fab-position);
254
+  }
255
+}
256
+/* stylelint-enable */

+ 83
- 0
Searchbar/onsenui/css-components-src/src/components/global.css 查看文件

@@ -0,0 +1,83 @@
1
+
2
+:root {
3
+  --input-bg-color: var(--background-color);
4
+  --input-border-color: var(--border-color);
5
+  --input-text-color: var(--text-color);
6
+  --input-placeholder-color: var(--sub-text-color);
7
+  --input-invalid-border-color: var(--border-color);
8
+  --input-invalid-text-color: var(--text-color);
9
+  --input-border: 1px solid var(--input-border-color);
10
+  --alpha-lighten: 70%;
11
+  --font-size: 17px;
12
+  --font-weight: 400;
13
+  --material-font-size: 17px;
14
+  --material-font-weight: 400;
15
+  --font-size--mini: calc(var(--font-size) - 3px);
16
+  --font-weight--large: 500;
17
+  --background-color--input: transparent;
18
+}
19
+
20
+html {
21
+  height: 100%;
22
+  width: 100%;
23
+}
24
+
25
+body {
26
+  position: absolute;
27
+  overflow: hidden;
28
+  top: 0;
29
+  right: 0;
30
+  left: 0;
31
+  bottom: 0;
32
+  padding: 0;
33
+  margin: 0;
34
+  -webkit-text-size-adjust: 100%;
35
+  touch-action: manipulation;
36
+}
37
+
38
+html, body, div, span, applet, object, iframe,
39
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
40
+a, abbr, acronym, address, big, cite, code,
41
+del, dfn, em, img, ins, kbd, q, s, samp,
42
+small, strike, strong, sub, sup, tt, var,
43
+b, u, i, center, dl, dt, dd, ol, ul, li,
44
+fieldset, form, label, legend,
45
+table, caption, tbody, tfoot, thead, tr, th, td,
46
+article, aside, canvas, details, embed,
47
+figure, figcaption, footer, header, hgroup,
48
+menu, nav, output, ruby, section, summary,
49
+time, mark, audio, video {
50
+  user-select: none;
51
+  -webkit-tap-highlight-color: var(--tap-highlight-color);
52
+  -webkit-touch-callout: none;
53
+}
54
+
55
+input, textarea, select {
56
+  user-select: auto;
57
+  -moz-user-select: text;
58
+  -webkit-touch-callout: none;
59
+}
60
+
61
+a, button, input, textarea, select {
62
+  touch-action: manipulation;
63
+}
64
+
65
+input:active, input:focus, textarea:active, textarea:focus, select:active, select:focus {
66
+  outline: none;
67
+}
68
+
69
+h1 {
70
+  font-size: 36px;
71
+}
72
+
73
+h2 {
74
+  font-size: 30px;
75
+}
76
+
77
+h3 {
78
+  font-size: 24px;
79
+}
80
+
81
+h4, h5, h6 {
82
+  font-size: 18px;
83
+}

+ 32
- 0
Searchbar/onsenui/css-components-src/src/components/index.css 查看文件

@@ -0,0 +1,32 @@
1
+
2
+@import './global.css';
3
+@import './util.css';
4
+@import './page.css';
5
+@import './switch.css';
6
+@import './range.css';
7
+@import './notification.css';
8
+@import './toolbar.css';
9
+@import './button.css';
10
+@import './button-bar.css';
11
+@import './segment.css';
12
+@import './tabbar.css';
13
+@import './toolbar-button.css';
14
+@import './checkbox.css';
15
+@import './radio-button.css';
16
+@import './list.css';
17
+@import './search-input.css';
18
+@import './text-input.css';
19
+@import './textarea.css';
20
+@import './dialog.css';
21
+@import './alert-dialog.css';
22
+@import './popover.css';
23
+@import './progress-bar.css';
24
+@import './progress-circular.css';
25
+@import './fab.css';
26
+@import './modal.css';
27
+@import './select.css';
28
+@import './action-sheet.css';
29
+@import './card.css';
30
+@import './toast.css';
31
+@import './combination.css'; /* non BEM */
32
+

+ 1044
- 0
Searchbar/onsenui/css-components-src/src/components/list.css
文件差异内容过多而无法显示
查看文件


+ 41
- 0
Searchbar/onsenui/css-components-src/src/components/modal.css 查看文件

@@ -0,0 +1,41 @@
1
+/*~
2
+  name: Modal
3
+  category: Modal
4
+  elements: ons-modal
5
+  markup: |
6
+    <div class="modal">
7
+      <div class="modal__content">
8
+        Message Text
9
+      </div>
10
+    </div>
11
+*/
12
+
13
+.modal {
14
+  @apply(--reset-container);
15
+  @apply(--reset-base);
16
+  @apply(--reset-box-model);
17
+  @apply(--reset-font);
18
+  overflow: hidden;
19
+  background-color: var(--modal-background-color);
20
+  position: absolute;
21
+  left: 0;
22
+  right: 0;
23
+  top: 0;
24
+  bottom: 0;
25
+  width: 100%;
26
+  height: 100%;
27
+  display: table;
28
+  z-index: 2147483647;
29
+}
30
+
31
+.modal__content {
32
+  @apply(--reset-container);
33
+  @apply(--reset-base);
34
+  @apply(--reset-box-model);
35
+  @apply(--reset-font);
36
+  display: table-cell;
37
+  vertical-align: middle;
38
+  text-align: center;
39
+  color: var(--modal-text-color);
40
+  white-space: normal;
41
+}

+ 68
- 0
Searchbar/onsenui/css-components-src/src/components/notification.css 查看文件

@@ -0,0 +1,68 @@
1
+:root {
2
+  --notification-border-radius: 19px;
3
+  --notification-width: auto;
4
+  --notification-height: 19px;
5
+  --notification-min-width: 19px;
6
+  --notification-padding: 0 4px;
7
+  --notification-font-weight: var(--font-weight);
8
+  --notification-font-size: 16px;
9
+
10
+  --material-notification-font-size: 16px;
11
+  --material-notification-font-weight: 500;
12
+}
13
+
14
+/*~
15
+  name: Notification
16
+  category: Notification
17
+  markup: |
18
+    <span class="notification">1</span>
19
+    <span class="notification">10</span>
20
+    <span class="notification">999</span>
21
+*/
22
+
23
+.notification {
24
+  position: relative;
25
+  display: inline-block;
26
+  vertical-align: top;
27
+  font: inherit;
28
+  border: none;
29
+  @apply(--reset-box-model);
30
+  @apply(--reset-base);
31
+  @apply(--reset-font);
32
+  @apply(--reset-cursor);
33
+  @apply(--ellipsis);
34
+  text-decoration: none;
35
+  margin: 0;
36
+  padding: var(--notification-padding);
37
+  width: var(--notification-width);
38
+  height: var(--notification-height);
39
+  border-radius: var(--notification-border-radius);
40
+  background-color: var(--notification-background-color);
41
+  color: var(--notification-color);
42
+  text-align: center;
43
+  font-size: var(--notification-font-size);
44
+  min-width: var(--notification-min-width);
45
+  line-height: var(--notification-height);
46
+  font-weight: var(--notification-font-weight);
47
+}
48
+
49
+.notification:empty {
50
+  display: none;
51
+}
52
+
53
+/*~
54
+  name: Material Notification
55
+  category: Notification
56
+  markup: |
57
+    <span class="notification notification--material">1</span>
58
+    <span class="notification notification--material">10</span>
59
+    <span class="notification notification--material">999</span>
60
+*/
61
+
62
+.notification--material {
63
+  @apply(--material-font);
64
+  background-color: var(--material-notification-background-color);
65
+  font-size: var(--material-notification-font-size);
66
+  font-weight: var(--material-notification-font-weight);
67
+  color: var(--material-notification-color);
68
+}

+ 105
- 0
Searchbar/onsenui/css-components-src/src/components/page.css 查看文件

@@ -0,0 +1,105 @@
1
+
2
+:root {
3
+  --page-background-color: var(--background-color);
4
+  --page-material-background-color: var(--material-background-color);
5
+}
6
+
7
+.page {
8
+  @apply(--reset-font);
9
+  background-color: var(--page-background-color);
10
+  position: absolute;
11
+  top: 0;
12
+  left: 0;
13
+  right: 0;
14
+  bottom: 0;
15
+  overflow-x: visible;
16
+  overflow-y: hidden;
17
+  color: var(--text-color);
18
+  -ms-overflow-style: none;
19
+  -webkit-font-smoothing: antialiased;
20
+}
21
+
22
+.page::-webkit-scrollbar {
23
+  display: none;
24
+}
25
+
26
+.page__content {
27
+  background-color: var(--page-background-color);
28
+  position: absolute;
29
+  top: 0;
30
+  left: 0;
31
+  right: 0;
32
+  bottom: 0;
33
+  box-sizing: border-box;
34
+}
35
+
36
+.page__background {
37
+  background-color: var(--page-background-color);
38
+  position: absolute;
39
+  top: 0;
40
+  left: 0;
41
+  right: 0;
42
+  bottom: 0;
43
+  box-sizing: border-box;
44
+}
45
+
46
+.page--material {
47
+  @apply(--material-font);
48
+  background-color: var(--page-material-background-color);
49
+}
50
+
51
+.page--material__content {
52
+  @apply(--material-font);
53
+  font-weight: var(--font-weight);
54
+}
55
+
56
+.page__content h1,
57
+.page__content h2,
58
+.page__content h3,
59
+.page__content h4,
60
+.page__content h5 {
61
+  @apply(--material-font);
62
+  font-weight: var(--font-weight--large);
63
+  margin: 0.6em 0;
64
+  padding: 0;
65
+}
66
+
67
+.page__content h1 {
68
+  font-size: 28px;
69
+}
70
+
71
+.page__content h2 {
72
+  font-size: 24px;
73
+}
74
+
75
+.page__content h3 {
76
+  font-size: 20px;
77
+}
78
+
79
+.page--material__content h1,
80
+.page--material__content h2,
81
+.page--material__content h3,
82
+.page--material__content h4,
83
+.page--material__content h5 {
84
+  @apply(--material-font);
85
+  font-weight: var(--font-weight--large);
86
+  margin: 0.6em 0;
87
+  padding: 0;
88
+}
89
+
90
+.page--material__content h1 {
91
+  font-size: 28px;
92
+}
93
+
94
+.page--material__content h2 {
95
+  font-size: 24px;
96
+}
97
+
98
+.page--material__content h3 {
99
+  font-size: 20px;
100
+}
101
+
102
+.page--material__background {
103
+  background-color: var(--page-material-background-color);
104
+}
105
+

+ 197
- 0
Searchbar/onsenui/css-components-src/src/components/popover.css 查看文件

@@ -0,0 +1,197 @@
1
+
2
+:root {
3
+  --popover-arrow-size: 18px;
4
+  --popover-arrow-radius: 4px;
5
+  --popover-radius: 8px;
6
+  --popover-margin: 6px;
7
+  --material-popover-radius: 2px;
8
+  --material-popover-margin: 4px;
9
+}
10
+
11
+/*~
12
+  name: Popover
13
+  category: Popover
14
+  elements: ons-popover
15
+  markup: |
16
+    <div class="popover-mask"></div>
17
+    <div class="popover popover--bottom" style="bottom: 20px; left: 65px;">
18
+      <div class="popover__arrow popover--bottom__arrow" style="left: 110px;"></div>
19
+      <div class="popover__content popover--bottom__content">
20
+        <div style="text-align:center;opacity:0.8;margin-top:40px">Content</div>
21
+      </div>
22
+    </div>
23
+*/
24
+
25
+/*~
26
+  name: Popover(top)
27
+  category: Popover
28
+  elements: ons-popover
29
+  markup: |
30
+    <div class="popover-mask"></div>
31
+    <div class="popover popover--top" style="top: 20px; left: 50px;">
32
+      <div class="popover__arrow popover--top__arrow" style="margin-left: 110px;"></div>
33
+      <div class="popover__content popover--top__content">
34
+        <div style="text-align: center; opacity: 0.8; margin-top: 40px">Content</div>
35
+      </div>
36
+    </div>
37
+*/
38
+
39
+/*~
40
+  name: Popover(left)
41
+  category: Popover
42
+  elements: ons-popover
43
+  markup: |
44
+    <div class="popover-mask"></div>
45
+    <div class="popover popover--right" style="top: 20px; right: 20px;">
46
+      <div class="popover__arrow popover--right__arrow" style="bottom: 50px;"></div>
47
+      <div class="popover__content popover--right__content">
48
+        <div style="text-align: center; opacity: 0.8; margin-top: 40px">Content</div>
49
+      </div>
50
+    </div>
51
+*/
52
+
53
+/*~
54
+  name: Popover(right)
55
+  category: Popover
56
+  elements: ons-popover
57
+  markup: |
58
+    <div class="popover-mask"></div>
59
+    <div class="popover popover--left" style="top: 20px;left: 20px;">
60
+      <div class="popover__arrow popover--left__arrow" style="top: 50px;"></div>
61
+      <div class="popover__content popover--left__content">
62
+        <div style="text-align: center; opacity: 0.8; margin-top: 40px">Content</div>
63
+      </div>
64
+    </div>
65
+*/
66
+
67
+.popover {
68
+  position: absolute;
69
+  z-index: 20001;
70
+}
71
+
72
+.popover--bottom {
73
+  bottom: 0;
74
+}
75
+
76
+.popover--top {
77
+  top: 0;
78
+}
79
+
80
+.popover--left {
81
+  left: 0;
82
+}
83
+
84
+.popover--right {
85
+  right: 0;
86
+}
87
+
88
+.popover-mask {
89
+  left: 0;
90
+  right: 0;
91
+  top: 0;
92
+  bottom: 0;
93
+  background-color: rgba(0, 0, 0, 0.2);
94
+  position: absolute;
95
+  z-index: 19999;
96
+}
97
+
98
+.popover__content {
99
+  @apply(--reset-box-model);
100
+  @apply(--reset-base);
101
+  @apply(--reset-cursor);
102
+  @apply(--reset-font);
103
+  display: block;
104
+  width: 220px;
105
+  overflow: auto;
106
+  min-height: 100px;
107
+  max-height: 100%;
108
+  background-color: var(--popover-background-color);
109
+  border-radius: var(--popover-radius);
110
+  color: var(--popover-text-color);
111
+  pointer-events: auto;
112
+}
113
+
114
+.popover--top__content {
115
+
116
+}
117
+
118
+.popover--bottom__content {
119
+
120
+}
121
+
122
+.popover--left__content {
123
+
124
+}
125
+
126
+.popover--right__content {
127
+
128
+}
129
+
130
+.popover__arrow {
131
+  position: absolute;
132
+  width: var(--popover-arrow-size);
133
+  height: var(--popover-arrow-size);
134
+  transform-origin: 50% 50% 0;
135
+  background-color: transparent;
136
+  background-image: linear-gradient(45deg, var(--popover-background-color), var(--popover-background-color) 50%, transparent 50%);
137
+  border-radius: 0 0 0 var(--popover-arrow-radius);
138
+  margin: 0;
139
+  z-index: 20001;
140
+}
141
+
142
+/* NOTE: If you changed this properties, you should check if ons-popover is broken. */
143
+.popover--bottom__arrow {
144
+  transform: translateY(6px) translateX(calc(var(--popover-arrow-size) / -2)) rotate(-45deg);
145
+  bottom: 0;
146
+  margin-right: -18px;
147
+}
148
+
149
+.popover--top__arrow {
150
+  transform: translateY(-6px) translateX(calc(var(--popover-arrow-size) / -2)) rotate(135deg);
151
+  top: 0;
152
+  margin-right: -18px;
153
+}
154
+
155
+.popover--left__arrow {
156
+  transform: translateX(-6px) translateY(calc(var(--popover-arrow-size) / -2)) rotate(45deg);
157
+  left: 0;
158
+  margin-bottom: -18px;
159
+}
160
+
161
+.popover--right__arrow {
162
+  transform: translateX(6px) translateY(calc(var(--popover-arrow-size) / -2)) rotate(225deg);
163
+  right: 0;
164
+  margin-bottom: -18px;
165
+}
166
+
167
+/*~
168
+  name: Material Popover
169
+  category: Popover
170
+  elements: ons-popover
171
+  markup: |
172
+    <div class="popover-mask popover-mask--material"></div>
173
+    <div class="popover popover--material popover--left" style="top: 50px; left: 65px;">
174
+      <div class="popover__arrow popover--material__arrow popover--left__arrow"></div>
175
+      <div class="popover__content popover--material__content popover--left__content">
176
+        <div style="text-align: center; opacity: 0.8; margin-top: 40px">Content</div>
177
+      </div>
178
+    </div>
179
+*/
180
+
181
+.popover--material {
182
+}
183
+
184
+.popover-mask--material {
185
+  background-color: transparent;
186
+}
187
+
188
+.popover--material__content {
189
+  background-color: var(--material-popover-background-color);
190
+  border-radius: var(--material-popover-radius);
191
+  color: var(--material-popover-text-color);
192
+  @apply(--material-shadow-1);
193
+}
194
+
195
+.popover--material__arrow {
196
+  display: none;
197
+}

+ 150
- 0
Searchbar/onsenui/css-components-src/src/components/progress-bar.css 查看文件

@@ -0,0 +1,150 @@
1
+
2
+/*~
3
+  name: Progress Bar
4
+  category: Progress Bar
5
+  elements: ons-progress-bar
6
+  markup: |
7
+    <div class="progress-bar">
8
+      <div class="progress-bar__primary" style="width: 30%"></div>
9
+    </div>
10
+    <br />
11
+    <div class="progress-bar">
12
+      <div class="progress-bar__primary" style="width:20%"></div>
13
+      <div class="progress-bar__secondary" style="width:76%"></div>
14
+    </div>
15
+    <br />
16
+    <div class="progress-bar progress-bar--indeterminate">
17
+    </div>
18
+*/
19
+
20
+.progress-bar {
21
+  position: relative;
22
+  height: 2px;
23
+  display: block;
24
+  width: 100%;
25
+  background-color: var(--progress-bar-background-color);
26
+  background-clip: padding-box;
27
+  margin: 0;
28
+  overflow: hidden;
29
+  border-radius: 4px;
30
+}
31
+
32
+.progress-bar__primary,
33
+.progress-bar__secondary {
34
+  position: absolute;
35
+  background-color: var(--progress-bar-color);
36
+  top: 0;
37
+  bottom: 0;
38
+  transition: width .3s linear;
39
+  z-index: 100;
40
+  border-radius: 4px;
41
+}
42
+
43
+.progress-bar__secondary {
44
+  background-color: var(--progress-bar-secondary-color);
45
+  z-index: 0;
46
+}
47
+
48
+.progress-bar--indeterminate:before {
49
+  content: '';
50
+  position: absolute;
51
+  background-color: var(--progress-bar-color);
52
+  top: 0;
53
+  left: 0;
54
+  bottom: 0;
55
+  will-change: left, right;
56
+  animation: progress-bar__indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
57
+  border-radius: 4px;
58
+}
59
+
60
+.progress-bar--indeterminate:after {
61
+  content: '';
62
+  position: absolute;
63
+  background-color: var(--progress-bar-color);
64
+  top: 0;
65
+  left: 0;
66
+  bottom: 0;
67
+  will-change: left, right;
68
+  animation: progress-bar__indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
69
+  animation-delay: 1.15s;
70
+  border-radius: 4px;
71
+}
72
+
73
+@keyframes progress-bar__indeterminate {
74
+  0% {
75
+    left: -35%;
76
+    right: 100%;
77
+  }
78
+
79
+  60% {
80
+    left: 100%;
81
+    right: -90%;
82
+  }
83
+
84
+  100% {
85
+    left: 100%;
86
+    right: -90%;
87
+  }
88
+}
89
+
90
+@keyframes progress-bar__indeterminate-short {
91
+  0% {
92
+    left: -200%;
93
+    right: 100%;
94
+  }
95
+
96
+  60% {
97
+    left: 107%;
98
+    right: -8%;
99
+  }
100
+
101
+  100% {
102
+    left: 107%;
103
+    right: -8%;
104
+  }
105
+}
106
+
107
+/*~
108
+  name: Material Progress Bar
109
+  category: Progress Bar
110
+  elements: ons-progress-bar
111
+  markup: |
112
+    <div class="progress-bar progress-bar--material">
113
+      <div class="progress-bar__primary progress-bar--material__primary" style="width: 30%"></div>
114
+    </div>
115
+    <br />
116
+    <div class="progress-bar progress-bar--material">
117
+      <div class="progress-bar__primary progress-bar--material__primary" style="width:20%"></div>
118
+      <div class="progress-bar__secondary progress-bar--material__secondary" style="width:76%"></div>
119
+    </div>
120
+    <br />
121
+    <div class="progress-bar progress-bar--material progress-bar--indeterminate">
122
+    </div>
123
+*/
124
+
125
+.progress-bar--material {
126
+  height: 4px;
127
+  background-color: var(--material-progress-bar-background-color);
128
+  border-radius: 0;
129
+}
130
+
131
+.progress-bar--material__primary,
132
+.progress-bar--material__secondary {
133
+  background-color: var(--material-progress-bar-primary-color);
134
+  border-radius: 0;
135
+}
136
+
137
+.progress-bar--material__secondary {
138
+  background-color: var(--material-progress-bar-secondary-color);
139
+  z-index: 0;
140
+}
141
+
142
+.progress-bar--material.progress-bar--indeterminate:before { /* FIXME */
143
+  background-color: var(--material-progress-bar-primary-color);
144
+  border-radius: 0;
145
+}
146
+
147
+.progress-bar--material.progress-bar--indeterminate:after { /* FIXME */
148
+  background-color: var(--material-progress-bar-primary-color);
149
+  border-radius: 0;
150
+}

+ 135
- 0
Searchbar/onsenui/css-components-src/src/components/progress-circular.css 查看文件

@@ -0,0 +1,135 @@
1
+
2
+/*~
3
+  name: Progress Circle
4
+  category: Progress Circle
5
+  elements: ons-progress-circular
6
+  markup: |
7
+    <svg class="progress-circular progress-circular--indeterminate">
8
+      <circle class="progress-circular__background"/>
9
+      <circle class="progress-circular__primary progress-circular--indeterminate__primary"/>
10
+      <circle class="progress-circular__secondary progress-circular--indeterminate__secondary"/>
11
+    </svg>
12
+
13
+    <svg class="progress-circular">
14
+      <circle class="progress-circular__background"/>
15
+      <circle class="progress-circular__secondary" style="stroke-dasharray: 140%, 251.32%"/>
16
+      <circle class="progress-circular__primary" style="stroke-dasharray: 100%, 251.32%"/>
17
+    </svg>
18
+
19
+    <svg class="progress-circular">
20
+      <circle class="progress-circular__background"/>
21
+      <circle class="progress-circular__primary" style="stroke-dasharray: 80%, 251.32%"/>
22
+    </svg>
23
+*/
24
+
25
+.progress-circular {
26
+  height: 32px;
27
+  position: relative;
28
+  width: 32px;
29
+  transform: rotate(270deg);
30
+  animation: none;
31
+}
32
+
33
+.progress-circular__background,
34
+.progress-circular__primary,
35
+.progress-circular__secondary {
36
+  cx: 50%;
37
+  cy: 50%;
38
+  r: 40%;
39
+  animation: none;
40
+  fill: none;
41
+  stroke-width: 5%;
42
+  stroke-miterlimit: 10;
43
+}
44
+
45
+.progress-circular__background {
46
+  stroke: var(--progress-circle-background-color);
47
+}
48
+
49
+.progress-circular__primary {
50
+  stroke-dasharray: 1, 200;
51
+  stroke-dashoffset: 0;
52
+  stroke: var(--progress-circle-primary-color);
53
+  transition: all 1s cubic-bezier(0.4, 0, 0.2, 1);
54
+}
55
+
56
+.progress-circular__secondary {
57
+  stroke: var(--progress-circle-secondary-color);
58
+}
59
+
60
+.progress-circular--indeterminate {
61
+  animation: progress__rotate 2s linear infinite;
62
+  transform: none;
63
+}
64
+
65
+.progress-circular--indeterminate__primary {
66
+  animation: progress__dash 1.5s ease-in-out infinite;
67
+}
68
+
69
+.progress-circular--indeterminate__secondary {
70
+  display: none;
71
+}
72
+
73
+@keyframes progress__rotate {
74
+  100% {
75
+    transform: rotate(360deg);
76
+  }
77
+}
78
+
79
+@keyframes progress__dash {
80
+  0% {
81
+    stroke-dasharray: 10%, 241.32%;
82
+    stroke-dashoffset: 0;
83
+  }
84
+
85
+  50% {
86
+    stroke-dasharray: 201%, 50.322%;
87
+    stroke-dashoffset: -100%;
88
+  }
89
+
90
+  100% {
91
+    stroke-dasharray: 10%, 241.32%;
92
+    stroke-dashoffset: -251.32%;
93
+  }
94
+}
95
+
96
+/*~
97
+  name: Material Progress Circle
98
+  category: Progress Circle
99
+  elements: ons-progress-circular
100
+  markup: |
101
+    <svg class="progress-circular progress-circular--material progress-circular--indeterminate">
102
+      <circle class="progress-circular__background progress-circular--material__background"/>
103
+      <circle class="progress-circular__primary progress-circular--material__primary progress-circular--indeterminate__primary"/>
104
+      <circle class="progress-circular__secondary progress-circular--material__secondary progress-circular--indeterminate__secondary"/>
105
+    </svg>
106
+
107
+    <svg class="progress-circular progress-circular--material">
108
+      <circle class="progress-circular__background progress-circular--material__background"/>
109
+      <circle class="progress-circular__secondary progress-circular--material__secondary" style="stroke-dasharray: 140%, 251.32%"/>
110
+      <circle class="progress-circular__primary progress-circular--material__primary" style="stroke-dasharray: 100%, 251.32%"/>
111
+    </svg>
112
+
113
+    <svg class="progress-circular progress-circular--material">
114
+      <circle class="progress-circular__background progress-circular--material__background"/>
115
+      <circle class="progress-circular__primary progress-circular--material__primary" style="stroke-dasharray: 80%, 251.32%"/>
116
+    </svg>
117
+*/
118
+
119
+.progress-circular--material__background,
120
+.progress-circular--material__primary,
121
+.progress-circular--material__secondary {
122
+  stroke-width: 9%;
123
+}
124
+
125
+.progress-circular--material__background {
126
+  stroke: var(--material-progress-circle-background-color);
127
+}
128
+
129
+.progress-circular--material__primary {
130
+  stroke: var(--material-progress-circle-primary-color);
131
+}
132
+
133
+.progress-circular--material__secondary {
134
+  stroke: var(--material-progress-circle-secondary-color);
135
+}

+ 246
- 0
Searchbar/onsenui/css-components-src/src/components/radio-button.css 查看文件

@@ -0,0 +1,246 @@
1
+:root {
2
+  --radio-button-background-active: rgba(0, 0, 0, 0);
3
+  --radio-button-indicator-color: var(--highlight-color);
4
+  --radio-button-background: transparent;
5
+  --radio-button-border: 3px solid var(--radio-button-indicator-color);
6
+  --radio-button-size: 24px;
7
+  --material-radio-button-size: 20px;
8
+  --material-radio-button-shadow-size: calc((48px - var(--material-radio-button-size)) / 2);
9
+
10
+  --radio-button: {
11
+    @apply(--reset-box-model);
12
+    position: relative;
13
+    display: inline-block;
14
+    vertical-align: top;
15
+    @apply(--reset-cursor);
16
+    @apply(--reset-font);
17
+    @apply(--hide-input-parent);
18
+  }
19
+
20
+  --radio-button__label: {
21
+    position: relative;
22
+    display: inline-block;
23
+    vertical-align: top;
24
+    @apply(--reset-cursor);
25
+  }
26
+
27
+  --radio-button--before: {
28
+    content: '';
29
+    position: absolute;
30
+    border-radius: 100%;
31
+    @apply(--reset-box-model);
32
+  }
33
+
34
+  --radio-button--after: {
35
+    content: '';
36
+    position: absolute;
37
+    border-radius: 100%;
38
+    top: 50%;
39
+    left: 50%;
40
+    transform: translate(-50%, -50%);
41
+  }
42
+
43
+  --radio-button--disabled: {
44
+    @apply(--disabled);
45
+  }
46
+}
47
+
48
+/*~
49
+  name: Radio Button
50
+  category: Radio Button
51
+  elements: ons-input
52
+  markup: |
53
+    <label class="radio-button">
54
+      <input type="radio" class="radio-button__input" name="r" checked="checked">
55
+      <div class="radio-button__checkmark"></div>
56
+      Label
57
+    </label>
58
+
59
+    <label class="radio-button">
60
+      <input type="radio" class="radio-button__input" name="r">
61
+      <div class="radio-button__checkmark"></div>
62
+      Label
63
+    </label>
64
+
65
+    <label class="radio-button">
66
+      <input type="radio" class="radio-button__input" name="r">
67
+      <div class="radio-button__checkmark"></div>
68
+      Label
69
+    </label>
70
+*/
71
+
72
+.radio-button__input {
73
+  @apply(--hide-input);
74
+}
75
+
76
+.radio-button__input:active,
77
+.radio-button__input:focus {
78
+  outline: 0;
79
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
80
+}
81
+
82
+.radio-button {
83
+  @apply(--radio-button__label);
84
+  @apply(--hide-input-parent);
85
+  line-height: var(--radio-button-size);
86
+  text-align: left;
87
+}
88
+
89
+.radio-button__checkmark:before {
90
+  @apply(--radio-button--before);
91
+  width: var(--checkbox-size);
92
+  height: var(--checkbox-size);
93
+  background: transparent;
94
+  border: none;
95
+  border-radius: var(--checkbox-size);
96
+  left: 0;
97
+}
98
+
99
+.radio-button__checkmark {
100
+  @apply(--radio-button);
101
+  position: relative;
102
+  width: var(--radio-button-size);
103
+  height: var(--radio-button-size);
104
+  background: var(--radio-button-background);
105
+  pointer-events: none;
106
+}
107
+
108
+.radio-button__checkmark:after {
109
+  @apply(--checkmark);
110
+}
111
+
112
+:checked + .radio-button__checkmark {
113
+  background: var(--radio-button-background-active);
114
+}
115
+
116
+:checked + .radio-button__checkmark:after {
117
+  opacity: 1;
118
+}
119
+
120
+:checked + .radio-button__checkmark:before {
121
+  background: transparent;
122
+  border: none;
123
+}
124
+
125
+:disabled + .radio-button__checkmark {
126
+  @apply(--radio-button--disabled);
127
+}
128
+
129
+/*~
130
+  name: Material Radio Button
131
+  category: Radio Button
132
+  elements: ons-input
133
+  markup: |
134
+    <label class="radio-button radio-button--material">
135
+      <input type="radio" class="radio-button__input radio-button--material__input" name="r" checked="checked">
136
+      <div class="radio-button__checkmark radio-button--material__checkmark"></div>
137
+      Label
138
+    </label>
139
+    <label class="radio-button radio-button--material">
140
+      <input type="radio" class="radio-button__input radio-button--material__input" name="r">
141
+      <div class="radio-button__checkmark radio-button--material__checkmark"></div>
142
+      Label
143
+    </label>
144
+    <label class="radio-button radio-button--material">
145
+      <input type="radio" class="radio-button__input radio-button--material__input" name="s" disabled checked>
146
+      <div class="radio-button__checkmark radio-button--material__checkmark"></div>
147
+      Label
148
+    </label>
149
+    <label class="radio-button radio-button--material">
150
+      <input type="radio" class="radio-button__input radio-button--material__input" name="s" disabled>
151
+      <div class="radio-button__checkmark radio-button--material__checkmark"></div>
152
+      Label
153
+    </label>
154
+*/
155
+
156
+.radio-button--material {
157
+  line-height: calc(var(--material-radio-button-size) + 2px);
158
+  @apply(--material-font);
159
+}
160
+
161
+.radio-button--material__input:before {
162
+  content: '';
163
+  position: absolute;
164
+  top: 0;
165
+  left: 0;
166
+  opacity: 0;
167
+  width: var(--material-radio-button-size);
168
+  height: var(--material-radio-button-size);
169
+  box-shadow: 0 0 0 var(--material-radio-button-shadow-size) var(--material-radio-button-inactive-color);
170
+  border: none;
171
+  box-sizing: border-box;
172
+  border-radius: 50%;
173
+  background-color: var(--material-radio-button-inactive-color);
174
+  pointer-events: none;
175
+  display: block;
176
+  transform: scale3d(0.2, 0.2, 0.2);
177
+  transition: opacity 0.25s ease-out, transform 0.1s ease-out;
178
+}
179
+
180
+.radio-button--material__input:checked:before {
181
+  box-shadow: 0 0 0 var(--material-radio-button-shadow-size) var(--material-radio-button-active-color);
182
+  background-color: var(--material-radio-button-active-color);
183
+}
184
+
185
+.radio-button--material__input:active:before {
186
+  opacity: .15;
187
+  transform: scale3d(1, 1, 1);
188
+}
189
+
190
+.radio-button--material__checkmark {
191
+  width: var(--material-radio-button-size);
192
+  height: var(--material-radio-button-size);
193
+  overflow: visible;
194
+}
195
+
196
+.radio-button--material__checkmark:before {
197
+  background: transparent;
198
+  border: 2px solid var(--material-radio-button-inactive-color);
199
+  box-sizing: border-box;
200
+  border-radius: 50%;
201
+  width: var(--material-radio-button-size);
202
+  height: var(--material-radio-button-size);
203
+  transition: border 0.2s ease;
204
+}
205
+
206
+.radio-button--material__checkmark:after {
207
+  transition: background 0.2s ease, transform 0.2s ease;
208
+  top: calc(var(--material-radio-button-size) / 4);
209
+  left: calc(var(--material-radio-button-size) / 4);
210
+  width: calc(var(--material-radio-button-size) / 2);
211
+  height: calc(var(--material-radio-button-size) / 2);
212
+  border: none;
213
+  border-radius: 50%;
214
+  transform: scale(0);
215
+}
216
+
217
+:checked + .radio-button--material__checkmark:before {
218
+  background: transparent;
219
+  border: 2px solid var(--material-radio-button-active-color);
220
+}
221
+
222
+.radio-button--material__input + .radio-button__checkmark:after {
223
+  background: var(--material-radio-button-inactive-color);
224
+  opacity: 1;
225
+  transform: scale(0);
226
+}
227
+
228
+:checked + .radio-button--material__checkmark:after {
229
+  opacity: 1;
230
+  background: var(--material-radio-button-active-color);
231
+  transform: scale(1);
232
+}
233
+
234
+:disabled + .radio-button--material__checkmark {
235
+  opacity: 1;
236
+}
237
+
238
+:disabled + .radio-button--material__checkmark:after {
239
+  background-color: var(--material-radio-button-disabled-color);
240
+  border-color: var(--material-radio-button-disabled-color);
241
+}
242
+
243
+:disabled + .radio-button--material__checkmark:before {
244
+  border-color: var(--material-radio-button-disabled-color);
245
+}
246
+

+ 245
- 0
Searchbar/onsenui/css-components-src/src/components/range.css 查看文件

@@ -0,0 +1,245 @@
1
+
2
+:root {
3
+  --range-thumb-size: 28px;
4
+  --range-track-height: 2px;
5
+
6
+  --material-range-track-height: 2px;
7
+  --material-range-thumb-size: 14px;
8
+  --material-range-thumb-radius: calc(var(--material-range-thumb-size) / 2);
9
+  --material-range-thumb-vertical-margin: 24px;
10
+  --material-range-thumb-horizontal-margin: 2px;
11
+
12
+  --range__thumb: {
13
+    cursor: pointer;
14
+    position: relative;
15
+    height: var(--range-thumb-size);
16
+    width: var(--range-thumb-size);
17
+    background-color: var(--range-thumb-background-color);
18
+    border: none;
19
+    box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.25), 0 3px 2px rgba(0, 0, 0, 0.25);
20
+    border-radius: 50%;
21
+    margin: 0;
22
+    padding: 0;
23
+  }
24
+}
25
+
26
+/*~
27
+  name: Range
28
+  category: Range
29
+  elements: ons-range
30
+  markup: |
31
+    <div class="range">
32
+      <input type="range" class="range__input">
33
+      <input type="range" class="range__focus-ring">
34
+    </div>
35
+
36
+    <div class="range range--disabled">
37
+      <input type="range" class="range__input" disabled>
38
+      <input type="range" class="range__focus-ring" disabled>
39
+    </div>
40
+*/
41
+
42
+.range {
43
+  display: inline-block;
44
+  position: relative;
45
+  width: 100px;
46
+  height: calc(var(--range-thumb-size) + 2px);
47
+  margin: 0;
48
+  padding: 0;
49
+  background-image: linear-gradient(var(--range-track-background-color), var(--range-track-background-color));
50
+  background-position: left center;
51
+  background-size: 100% var(--range-track-height);
52
+  background-repeat: no-repeat;
53
+  background-color: transparent;
54
+}
55
+
56
+.range__input {
57
+  @apply(--reset-input);
58
+  appearance: none;
59
+  background-image: linear-gradient(var(--range-track-background-color-active), var(--range-track-background-color-active));
60
+  background-position: left center;
61
+  background-size: 0% var(--range-track-height);
62
+  background-repeat: no-repeat;
63
+  height: calc(var(--range-thumb-size) + 2px);
64
+  position: relative;
65
+  z-index: 1;
66
+  width: 100%;
67
+}
68
+
69
+.range__input::-moz-range-track {
70
+  position: relative;
71
+  border: none;
72
+  background: none;
73
+  box-shadow: none;
74
+  top: 0;
75
+  margin: 0;
76
+  padding: 0;
77
+}
78
+
79
+.range__input::-ms-track {
80
+  position: relative;
81
+  border: none;
82
+  background-color: var(--range-track-background-color);
83
+  height: 0;
84
+  border-radius: 50%;
85
+}
86
+
87
+.range__input::-webkit-slider-thumb {
88
+  @apply(--range__thumb);
89
+  box-sizing: border-box;
90
+  appearance: none;
91
+  top: 0;
92
+  z-index: 1;
93
+}
94
+
95
+.range__input::-moz-range-thumb {
96
+  @apply(--range__thumb);
97
+}
98
+
99
+.range__input::-ms-thumb {
100
+  @apply(--range__thumb);
101
+  top: 0;
102
+}
103
+
104
+.range__input::-ms-fill-lower {
105
+  height: 2px;
106
+  background-color: var(--range-track-background-color-active);
107
+}
108
+
109
+.range__input::-ms-tooltip {
110
+  display: none;
111
+}
112
+
113
+.range__input:disabled {
114
+  opacity: 1;
115
+  pointer-events: none;
116
+}
117
+
118
+.range__focus-ring {
119
+  pointer-events: none;
120
+  top: 0;
121
+  left: 0;
122
+  display: none;
123
+  @apply(--reset-input);
124
+  appearance: none;
125
+  background: none;
126
+  height: calc(var(--range-thumb-size) + 2px);
127
+  position: absolute;
128
+  z-index: 0;
129
+  width: 100%;
130
+}
131
+
132
+.range--disabled {
133
+  @apply(--disabled);
134
+  pointer-events: none;
135
+}
136
+
137
+/*~
138
+  name: Material Range
139
+  category: Range
140
+  elements: ons-range
141
+  markup: |
142
+    <div class="range range--material">
143
+      <input type="range" class="range__input range--material__input" min="0" max="100">
144
+      <!-- <input type="range" class="range__focus-ring range--material__focus-ring"> -->
145
+    </div>
146
+
147
+    <div class="range range--material range--disabled">
148
+      <input type="range" class="range__input range--material__input" disabled>
149
+      <!-- <input type="range" class="range__focus-ring range--material__focus-ring" disabled> -->
150
+    </div>
151
+*/
152
+
153
+.range--material {
154
+  position: relative;
155
+  background-image: linear-gradient(var(--material-range-track-color), var(--material-range-track-color));
156
+}
157
+
158
+.range--material__input {
159
+  background-image: linear-gradient(var(--material-range-thumb-color), var(--material-range-thumb-color));
160
+  background-position: center left;
161
+  background-size: 0% 2px;
162
+}
163
+
164
+.range--material__focus-ring {
165
+  display: block;
166
+}
167
+
168
+.range--material__focus-ring::-webkit-slider-thumb {
169
+  appearance: none;
170
+  width: var(--material-range-thumb-size);
171
+  height: var(--material-range-thumb-size);
172
+  border: none;
173
+  box-shadow: 0 0 0 calc((32px - var(--material-range-thumb-size)) / 2) var(--material-range-thumb-color);
174
+  background-color: var(--material-range-thumb-color);
175
+  border-radius: 50%;
176
+  opacity: 0;
177
+  transition: opacity 0.25s ease-out, transform 0.25s ease-out;
178
+}
179
+
180
+.range--material__input.range__input--active + .range--material__focus-ring::-webkit-slider-thumb {
181
+  opacity: 0.2;
182
+  transform: scale(1.5, 1.5, 1.5);
183
+}
184
+
185
+.range--material__input::-webkit-slider-thumb {
186
+  position: relative;
187
+  box-sizing: border-box;
188
+  border: none;
189
+  background-color: transparent;
190
+  width: var(--material-range-thumb-size);
191
+  height: 32px;
192
+  border-radius: 0;
193
+  box-shadow: none;
194
+  background-image: radial-gradient(circle farthest-corner, var(--material-range-thumb-color) 0%, var(--material-range-thumb-color) calc(var(--material-range-thumb-radius) - 0.4px), transparent var(--material-range-thumb-radius));
195
+  transition: transform 0.1s linear;
196
+  overflow: visible;
197
+}
198
+
199
+.range--material__input[_zero]::-webkit-slider-thumb {
200
+  background-image: radial-gradient(circle farthest-corner, var(--material-range-zero-thumb-color) 0%, var(--material-range-zero-thumb-color) 4px, var(--material-range-track-color) 4px, var(--material-range-track-color) calc(var(--material-range-thumb-radius) - 0.6px), transparent calc(var(--material-range-thumb-radius)));
201
+}
202
+
203
+.range--material__input[_zero] + .range--material__focus-ring::-webkit-slider-thumb {
204
+  box-shadow: 0 0 0 calc((32px - var(--material-range-thumb-size)) / 2) var(--material-range-track-color);
205
+}
206
+
207
+.range--material__input::-moz-range-track {
208
+  background: none;
209
+}
210
+
211
+.range--material__input::-moz-range-thumb,
212
+.range--material__input:focus::-moz-range-thumb {
213
+  box-sizing: border-box;
214
+  border: none;
215
+  width: var(--material-range-thumb-size);
216
+  height: 32px;
217
+  border-radius: 0;
218
+  background-color: transparent;
219
+  background-image: -moz-radial-gradient(circle farthest-corner, var(--material-range-thumb-color) 0%, var(--material-range-thumb-color) calc(var(--material-range-thumb-radius) - 0.4px), transparent var(--material-range-thumb-radius)); /* stylelint-disable-line */
220
+  box-shadow: none;
221
+}
222
+
223
+.range--material__input:active::-webkit-slider-thumb,
224
+.range--material__input.range__input--active::-webkit-slider-thumb { /* NOTICE: ":active" does not work on Android Chrome. */
225
+  transform: scale(1.5);
226
+  transition: transform 0.1s linear;
227
+}
228
+
229
+/* stylelint-disable */ .range--disabled.range--material { /* stylelint-enable */
230
+  opacity: 1;
231
+}
232
+
233
+/* stylelint-disable */ .range--disabled > .range--material__input { /* stylelint-enable */
234
+  background-image: none;
235
+}
236
+
237
+.range--material__input:disabled::-webkit-slider-thumb {
238
+  background-image: radial-gradient(circle farthest-corner, var(--material-range-disabled-thumb-color) 0%, var(--material-range-disabled-thumb-color) 4px, var(--material-range-disabled-thumb-border-color) 4.4px, var(--material-range-disabled-thumb-border-color) calc(var(--material-range-thumb-radius) + 0.6px), transparent calc(var(--material-range-thumb-radius) + 0.6px));
239
+  transition: none;
240
+}
241
+
242
+.range--material__input:disabled::-moz-range-thumb {
243
+  background-image: -moz-radial-gradient(circle farthest-corner, var(--material-range-disabled-thumb-color) 0%, var(--material-range-disabled-thumb-color) 4px, var(--material-range-disabled-thumb-border-color) 4.4px, var(--material-range-disabled-thumb-border-color) calc(var(--material-range-thumb-radius) + 0.6px), transparent calc(var(--material-range-thumb-radius) + 0.6px)); /* stylelint-disable-line */
244
+  transition: none;
245
+}

+ 96
- 0
Searchbar/onsenui/css-components-src/src/components/search-input.css 查看文件

@@ -0,0 +1,96 @@
1
+:root {
2
+  --search-icon: url('../img/ios-search-input-icon.svg');
3
+  --search-input-background-image: var(--search-icon);
4
+  --search-input-color: var(--input-text-color);
5
+  --search-decoration-margin-right: 0;
6
+  --search-input-border-radius: 5.5px;
7
+  --search-input-height: 28px;
8
+  --search-input-font-size: 14px;
9
+  --search-input-placeholder-color: #7a797b;
10
+
11
+  --material-search-icon: url('../img/android-search-input-icon.svg');
12
+
13
+  --search-input: {
14
+    @apply(--reset-input);
15
+    @apply(--reset-font);
16
+    appearance: textfield;
17
+  }
18
+
19
+  --search-input--disabled: {
20
+    @apply(--disabled);
21
+  }
22
+}
23
+
24
+/*~
25
+  name: Search Input
26
+  category: Search Input
27
+  markup: |
28
+    <input type="search" value="" placeholder="Search" class="search-input" style="width: 280px;">
29
+*/
30
+
31
+.search-input {
32
+  @apply(--search-input);
33
+  box-sizing: border-box;
34
+  height: var(--search-input-height);
35
+  font-size: var(--search-input-font-size);
36
+  background-color: var(--search-input-background-color);
37
+  box-shadow: none;
38
+  color: var(--search-input-color);
39
+  line-height: 1.3;
40
+  padding: 0 8px 0 28px;
41
+  margin: 0;
42
+  border-radius: var(--search-input-border-radius);
43
+  background-image: var(--search-input-background-image);
44
+  background-position: 8px center;
45
+  background-repeat: no-repeat;
46
+  background-size: 13px;
47
+  font-weight: var(--font-weight);
48
+  display: inline-block;
49
+  text-indent: 0;
50
+}
51
+
52
+.search-input::-webkit-search-cancel-button {
53
+  appearance: textfield;
54
+  display: none;
55
+}
56
+
57
+.search-input::-webkit-search-decoration {
58
+  display: none;
59
+}
60
+
61
+.search-input:focus {
62
+  outline: none;
63
+}
64
+
65
+.search-input::placeholder {
66
+  color: var(--search-input-placeholder-color);
67
+  font-size: var(--search-input-font-size);
68
+  text-indent: 0;
69
+}
70
+
71
+.search-input:placeholder-shown {
72
+}
73
+
74
+.search-input:disabled {
75
+  @apply(--search-input--disabled);
76
+}
77
+
78
+/*~
79
+  name: Material Search Input
80
+  category: Search Input
81
+  markup: |
82
+    <input type="search" value="" placeholder="Search" class="search-input search-input--material" style="width: 280px;">
83
+*/
84
+
85
+.search-input--material {
86
+  @apply(--material-font);
87
+  border-radius: 2px;
88
+  height: 48px;
89
+  background-color: var(--material-search-background-color);
90
+  background-image: var(--material-search-icon);
91
+  background-size: 18px;
92
+  background-position: 18px center;
93
+  font-size: 14px;
94
+  padding: 0 24px 0 64px;
95
+  box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.24), 0 1px 0 0 rgba(255, 255, 255, 0.06) inset;
96
+}

+ 176
- 0
Searchbar/onsenui/css-components-src/src/components/segment.css 查看文件

@@ -0,0 +1,176 @@
1
+:root {
2
+  --segment-active-color: var(--segment-active-text-color);
3
+  --segment-border-top: 1px solid var(--segment-color);
4
+  --segment-border-bottom: 1px solid var(--segment-color);
5
+  --segment-border: 0 solid var(--segment-color);
6
+  --segment-border-radius: 4px;
7
+}
8
+
9
+/*~
10
+  name: Segment
11
+  category: Segment
12
+  markup: |
13
+    <div class="segment" style="width: 280px; margin: 0 auto;">
14
+      <div class="segment__item">
15
+        <input type="radio" class="segment__input" name="segment-a" checked>
16
+        <div class="segment__button">One</div>
17
+      </div>
18
+      <div class="segment__item">
19
+        <input type="radio" class="segment__input" name="segment-a">
20
+        <div class="segment__button">Two</div>
21
+      </div>
22
+      <div class="segment__item">
23
+        <input type="radio" class="segment__input" name="segment-a">
24
+        <div class="segment__button">Three</div>
25
+      </div>
26
+    </div>
27
+*/
28
+
29
+.segment {
30
+  @apply(--reset-font);
31
+  display: inline-flex;
32
+  align-items: stretch;
33
+  align-content: stretch;
34
+  flex-wrap: nowrap;
35
+  margin: 0;
36
+  padding: 0;
37
+  border: none;
38
+}
39
+
40
+.segment__item {
41
+  @apply(--reset-font);
42
+  border-radius: 0;
43
+  width: 100%;
44
+  padding: 0;
45
+  margin: 0;
46
+  @apply(--hide-input-parent);
47
+  overflow: hidden;
48
+  box-sizing: border-box;
49
+  display: block;
50
+  background-color: transparent;
51
+  border: none;
52
+}
53
+
54
+.segment__input {
55
+  @apply(--hide-input);
56
+}
57
+
58
+.segment__button {
59
+  @apply(--reset-font);
60
+  border-radius: 0;
61
+  background-color: transparent;
62
+  color: var(--segment-color);
63
+  border: 1px solid var(--segment-color);
64
+  border-top-width: 1px;
65
+  border-bottom-width: 1px;
66
+  border-right-width: 1px;
67
+  border-left-width: 0;
68
+  font-weight: var(--font-weight);
69
+  padding: 0;
70
+  font-size: 13px;
71
+  height: 29px;
72
+  line-height: 29px;
73
+  width: 100%;
74
+  transition: background-color 0.2s linear, color 0.2s linear;
75
+  box-sizing: border-box;
76
+  text-align: center;
77
+}
78
+
79
+.segment__item:disabled {
80
+  @apply(--disabled);
81
+}
82
+
83
+.segment__button:hover {
84
+  transition: none;
85
+}
86
+
87
+.segment__button:focus {
88
+  outline: 0;
89
+}
90
+
91
+:active + .segment__button {
92
+  background-color: var(--segment-active-background-color);
93
+  border: var(--segment-border);
94
+  border-top: var(--segment-border-top);
95
+  border-bottom: var(--segment-border-bottom);
96
+  border-right: 1px solid var(--segment-color);
97
+  font-size: 13px;
98
+  width: 100%;
99
+  transition: none;
100
+}
101
+
102
+:checked + .segment__button {
103
+  background-color: var(--segment-color);
104
+  color: var(--segment-active-color);
105
+  transition: none;
106
+}
107
+
108
+.segment__item:first-child > .segment__button {
109
+  border-left-width: 1px;
110
+  border-radius: var(--segment-border-radius) 0 0 var(--segment-border-radius);
111
+}
112
+
113
+.segment__item:last-child > .segment__button {
114
+  border-right-width: 1px;
115
+  border-radius: 0 var(--segment-border-radius) var(--segment-border-radius) 0;
116
+}
117
+
118
+/*~
119
+  name: Material Segment
120
+  category: Segment
121
+  markup: |
122
+    <div class="segment segment--material" style="width: 280px; margin: 0 auto;">
123
+      <div class="segment__item segment--material__item">
124
+        <input type="radio" class="segment__input segment--material__input" name="segment-b" checked>
125
+        <div class="segment__button segment--material__button">One</div>
126
+      </div>
127
+      <div class="segment__item segment--material__item">
128
+        <input type="radio" class="segment__input segment--material__input" name="segment-b">
129
+        <div class="segment__button segment--material__button">Two</div>
130
+      </div>
131
+      <div class="segment__item segment--material__item">
132
+        <input type="radio" class="segment__input segment--material__input" name="segment-b">
133
+        <div class="segment__button segment--material__button">Three</div>
134
+      </div>
135
+    </div>
136
+*/
137
+
138
+.segment--material {
139
+  border-radius: 2px;
140
+  overflow: hidden;
141
+  box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.24);
142
+}
143
+
144
+.segment--material__button {
145
+  @apply(--material-font);
146
+  font-size: 14px;
147
+  height: 32px;
148
+  line-height: 32px;
149
+  border-width: 0;
150
+  color: var(--material-segment-text-color);
151
+  border-radius: 0;
152
+  background-color: var(--material-segment-background-color);
153
+}
154
+
155
+:active + .segment--material__button {
156
+  background-color: var(--material-segment-background-color);
157
+  border-radius: 0;
158
+  border-width: 0;
159
+  font-size: 14px;
160
+  transition: none;
161
+  color: var(--material-segment-text-color);
162
+}
163
+
164
+:checked + .segment--material__button {
165
+  background-color: var(--material-segment-active-background-color);
166
+  color: var(--material-segment-active-text-color);
167
+  border-radius: 0;
168
+  border-width: 0;
169
+}
170
+
171
+.segment--material__item:first-child > .segment--material__button,
172
+.segment--material__item:last-child > .segment--material__button {
173
+  border-radius: 0;
174
+  border-width: 0;
175
+}
176
+

+ 203
- 0
Searchbar/onsenui/css-components-src/src/components/select.css 查看文件

@@ -0,0 +1,203 @@
1
+
2
+:root {
3
+  --select-input-font-size: var(--font-size);
4
+  --select-input-height: 32px;
5
+
6
+  --material-select-input-font-size: 15px;
7
+
8
+  --select-input: {
9
+    @apply(--input);
10
+    @apply(--transparent);
11
+    position: relative;
12
+    font-size: var(--select-input-font-size);
13
+    height: var(--select-input-height);
14
+    line-height: var(--select-input-height);
15
+    border-color: var(--select-input-border-color);
16
+    color: var(--select-input-color);
17
+    appearance: none;
18
+    display: inline-block;
19
+    border-radius: 0;
20
+    border: none;
21
+  }
22
+
23
+  --select-input--disabled: {
24
+    @apply(--disabled);
25
+    @apply(--transparent);
26
+  }
27
+
28
+  --input-placeholder: {
29
+    @apply(--transparent);
30
+    color: var(--input-placeholder-color);
31
+  }
32
+
33
+  --select-input--invalid: {
34
+    @apply(--transparent);
35
+    color: var(--input-invalid-text-color);
36
+  }
37
+
38
+  --select-input--material-placeholder: {
39
+    color: var(--material-select-input-inactive-color);
40
+    line-height: 20px;
41
+  }
42
+}
43
+
44
+/*~
45
+  name: Select Input
46
+  category: Select Input
47
+  markup: |
48
+    <select class="select-input">
49
+      <option>Option 1</option>
50
+      <option>Option 2</option>
51
+      <option>Option 3</option>
52
+    </select>
53
+
54
+    &nbsp;
55
+
56
+    <select class="select-input" disabled>
57
+      <option>Option 1</option>
58
+      <option>Option 2</option>
59
+      <option>Option 3</option>
60
+    </select>
61
+*/
62
+
63
+.select-input {
64
+  @apply(--select-input);
65
+  padding: 0 20px 0 0;
66
+  background-color: transparent;
67
+  background-image: url('../img/select-arrow.svg');
68
+  background-repeat: no-repeat;
69
+  background-position: right center;
70
+  border-bottom: none;
71
+}
72
+
73
+.select-input::-ms-clear {
74
+  display: none;
75
+}
76
+
77
+.select-input::placeholder {
78
+  color: var(--input-placeholder-color);
79
+}
80
+
81
+.select-input:disabled {
82
+  @apply(--select-input--disabled);
83
+}
84
+
85
+.select-input:disabled::placeholder {
86
+  @apply(--input-placeholder);
87
+}
88
+
89
+.select-input:invalid {
90
+  @apply(--select-input--invalid);
91
+}
92
+
93
+.select-input[multiple] {
94
+  height: calc(var(--select-input-height) * 2);
95
+}
96
+
97
+/*~
98
+  name: Material Select Input
99
+  category: Select Input
100
+  markup: |
101
+    <select class="select-input select-input--material">
102
+      <option>Option 1</option>
103
+      <option>Option 2</option>
104
+      <option>Option 3</option>
105
+    </select>
106
+
107
+    &nbsp;
108
+
109
+    <select class="select-input select-input--material" disabled>
110
+      <option>Option 1</option>
111
+      <option>Option 2</option>
112
+      <option>Option 3</option>
113
+    </select>
114
+*/
115
+
116
+.select-input--material {
117
+  @apply(--material-font);
118
+  color: var(--material-select-input-color);
119
+  font-size: var(--material-select-input-font-size);
120
+  background-image: url('../img/select-arrow.svg'), linear-gradient(to top, var(--material-select-border-color) 50%, var(--material-select-border-color) 50%);
121
+  background-size: auto, 100% 1px;
122
+  background-repeat: no-repeat;
123
+  background-position: right center, left bottom;
124
+  border: none;
125
+  font-weight: 400;
126
+  transform: translate3d(0, 0, 0); /* prevent ios flicker */
127
+}
128
+
129
+.select-input--material__label {
130
+  @apply(--material-font);
131
+  color: var(--material-select-input-inactive-color);
132
+  position: absolute;
133
+  left: 0;
134
+  top: 2px;
135
+  font-size: 16px;
136
+  pointer-events: none;
137
+}
138
+
139
+.select-input--material__label--active {
140
+  color: var(--material-select-input-active-color);
141
+  transform: translate(0, -75%) scale(0.75);
142
+  transform-origin: left top;
143
+  transition: transform 0.1s ease-in, color 0.1s ease-in;
144
+}
145
+
146
+.select-input--material::placeholder {
147
+  @apply(--select-input--material-placeholder);
148
+}
149
+
150
+@keyframes material-select-input-animate {
151
+  0% {
152
+    background-size: 0% 2px, 100% 2px;
153
+  }
154
+
155
+  100% {
156
+    background-size: 100% 2px, 100% 2px;
157
+  }
158
+}
159
+
160
+/*~
161
+  name: Underbar Select Input
162
+  category: Select Input
163
+  markup: |
164
+    <select class="select-input select-input--underbar">
165
+      <option>Option 1</option>
166
+      <option>Option 2</option>
167
+      <option>Option 3</option>
168
+    </select>
169
+
170
+    &nbsp;
171
+
172
+    <select class="select-input select-input--underbar" disabled>
173
+      <option>Option 1</option>
174
+      <option>Option 2</option>
175
+      <option>Option 3</option>
176
+    </select>
177
+*/
178
+
179
+.select-input--underbar {
180
+  border: none;
181
+  border-bottom: 1px solid var(--select-input-border-color);
182
+}
183
+
184
+.select-input--underbar:disabled {
185
+  @apply(--select-input--disabled);
186
+  border: none;
187
+  background-color: transparent;
188
+  border-bottom: 1px solid var(--select-input-border-color);
189
+}
190
+
191
+.select-input--underbar:disabled::placeholder {
192
+  @apply(--input-placeholder);
193
+  border: none;
194
+  background-color: transparent;
195
+}
196
+
197
+.select-input--underbar:invalid {
198
+  @apply(--select-input--invalid);
199
+  border: none;
200
+  background-color: transparent;
201
+  border-bottom: 1px solid var(--input-invalid-border-color);
202
+}
203
+

+ 224
- 0
Searchbar/onsenui/css-components-src/src/components/switch.css 查看文件

@@ -0,0 +1,224 @@
1
+:root {
2
+  --switch-checked-background-color: var(--switch-highlight-color); /* background color active */
3
+  --switch-thumb-background-color: white;
4
+  --switch-thumb-border-color: var(--border-color);
5
+  --switch-thumb-border-color-active: var(--switch-highlight-color);
6
+  --switch-height: 32px;
7
+  --switch-width: 51px;
8
+
9
+  --switch: {
10
+    display: inline-block;
11
+    vertical-align: top;
12
+    @apply(--reset-box-model);
13
+    @apply(--hide-input-parent);
14
+    min-width: 51px;
15
+  }
16
+
17
+  --switch__toggle: {
18
+    position: relative;
19
+    display: inline-block;
20
+    vertical-align: top;
21
+    @apply(--reset-box-model);
22
+    @apply(--reset-base);
23
+    @apply(--reset-cursor);
24
+  }
25
+}
26
+
27
+/*~
28
+  name: Switch
29
+  category: Switch
30
+  elements: ons-switch
31
+  markup: |
32
+    <label class="switch">
33
+      <input type="checkbox" class="switch__input">
34
+      <div class="switch__toggle">
35
+        <div class="switch__handle"></div>
36
+      </div>
37
+    </label>
38
+    <label class="switch">
39
+      <input type="checkbox" class="switch__input" checked>
40
+      <div class="switch__toggle">
41
+        <div class="switch__handle"></div>
42
+      </div>
43
+    </label>
44
+    <label class="switch">
45
+      <input type="checkbox" class="switch__input" disabled>
46
+      <div class="switch__toggle">
47
+        <div class="switch__handle"></div>
48
+      </div>
49
+    </label>
50
+*/
51
+
52
+.switch {
53
+  @apply(--switch);
54
+  font-size: var(--font-size);
55
+  padding: 0 20px;
56
+  border: none;
57
+  overflow: visible;
58
+  width: var(--switch-width);
59
+  height: var(--switch-height);
60
+  z-index: 0;
61
+  text-align: left;
62
+}
63
+
64
+.switch__input {
65
+  @apply(--hide-input);
66
+  z-index: 0;
67
+}
68
+
69
+/* switch toggle background */
70
+.switch__toggle {
71
+  background-color: var(--switch-background-color);
72
+  position: absolute;
73
+  top: 0;
74
+  left: 0;
75
+  right: 0;
76
+  bottom: 0;
77
+  border-radius: 30px;
78
+  transition-property: all;
79
+  transition-duration: 0.35s;
80
+  transition-timing-function: ease-out;
81
+  box-shadow: inset 0 0 0 2px var(--switch-border-color);
82
+}
83
+
84
+/* switch toggle circle */
85
+.switch__handle {
86
+  @apply(--reset-box-model);
87
+  position: absolute;
88
+  content: '';
89
+  border-radius: 28px;
90
+  height: 28px;
91
+  width: 28px;
92
+  background-color: var(--switch-thumb-background-color);
93
+  left: 1px;
94
+  top: 2px;
95
+  transition-property: all;
96
+  transition-duration: 0.35s;
97
+  transition-timing-function: cubic-bezier(.59, .01, .5, .99);
98
+  box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.25), 0 3px 2px rgba(0, 0, 0, 0.25);
99
+}
100
+
101
+.switch--active__handle {
102
+  transition: none;
103
+}
104
+
105
+:checked + .switch__toggle {
106
+  box-shadow: inset 0 0 0 2px var(--switch-checked-background-color);
107
+  background-color: var(--switch-checked-background-color);
108
+}
109
+
110
+:checked + .switch__toggle > .switch__handle {
111
+  left: 21px;
112
+  box-shadow: 0 3px 2px rgba(0, 0, 0, 0.25);
113
+}
114
+
115
+:disabled + .switch__toggle {
116
+  @apply(--disabled);
117
+}
118
+
119
+.switch__touch {
120
+  position: absolute;
121
+  top: -5px;
122
+  bottom: -5px;
123
+  left: -10px;
124
+  right: -10px;
125
+}
126
+
127
+/*~
128
+  name: Material Switch
129
+  category: Switch
130
+  elements: ons-switch
131
+  markup: |
132
+    <label class="switch switch--material">
133
+      <input type="checkbox" class="switch__input switch--material__input">
134
+      <div class="switch__toggle switch--material__toggle">
135
+        <div class="switch__handle switch--material__handle">
136
+        </div>
137
+      </div>
138
+    </label>
139
+    <label class="switch switch--material">
140
+      <input type="checkbox" class="switch__input switch--material__input" checked>
141
+      <div class="switch__toggle switch--material__toggle">
142
+        <div class="switch__handle switch--material__handle">
143
+        </div>
144
+      </div>
145
+    </label>
146
+    <label class="switch switch--material">
147
+      <input type="checkbox" class="switch__input switch--material__input" disabled>
148
+      <div class="switch__toggle switch--material__toggle">
149
+        <div class="switch__handle switch--material__handle">
150
+        </div>
151
+      </div>
152
+    </label>
153
+*/
154
+
155
+.switch--material {
156
+  width: 36px;
157
+  height: 24px;
158
+  padding: 0 10px;
159
+  min-width: 36px;
160
+}
161
+
162
+.switch--material__toggle {
163
+  background-color: var(--material-switch-inactive-background-color);
164
+  margin-top: 5px;
165
+  height: 14px;
166
+  box-shadow: none;
167
+}
168
+
169
+.switch--material__input {
170
+  @apply(--hide-input);
171
+  z-index: 0;
172
+}
173
+
174
+.switch--material__handle {
175
+  background-color: var(--material-switch-inactive-thumb-color);
176
+  left: 0;
177
+  margin-top: -5px;
178
+  width: 20px;
179
+  height: 20px;
180
+  @apply(--material-shadow-2);
181
+}
182
+
183
+:checked + .switch--material__toggle {
184
+  background-color: var(--material-switch-active-background-color);
185
+  box-shadow: none;
186
+}
187
+
188
+:checked + .switch--material__toggle > .switch--material__handle {
189
+  left: 16px;
190
+  background-color: var(--material-switch-active-thumb-color);
191
+  @apply(--material-shadow-1);
192
+}
193
+
194
+:disabled + .switch--material__toggle {
195
+  @apply(--disabled);
196
+}
197
+
198
+.switch--material__handle:before {
199
+  background: transparent;
200
+  content: '';
201
+  display: block;
202
+  width: 100%;
203
+  height: 100%;
204
+  border-radius: 50%;
205
+  z-index: 0;
206
+  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.12);
207
+  transition: box-shadow 0.1s linear;
208
+}
209
+
210
+.switch--material__toggle > .switch--active__handle:before {
211
+  box-shadow: 0 0 0 14px rgba(0, 0, 0, 0.12);
212
+}
213
+
214
+:checked + .switch--material__toggle > .switch--active__handle:before {
215
+  box-shadow: 0 0 0 14px color(var(--material-switch-active-thumb-color) alpha(20%));
216
+}
217
+
218
+.switch--material__touch {
219
+  position: absolute;
220
+  top: -10px;
221
+  bottom: -10px;
222
+  left: -15px;
223
+  right: -15px;
224
+}

+ 523
- 0
Searchbar/onsenui/css-components-src/src/components/tabbar.css 查看文件

@@ -0,0 +1,523 @@
1
+
2
+:root {
3
+  --tabbar-button-color: var(--tabbar-text-color); /* Text color */
4
+  --tabbar-active-color: var(--tabbar-highlight-text-color); /* Text color active */
5
+  --material-tabbar-current-color: var(--material-tabbar-highlight-text-color);
6
+  --tabbar-active-border-top: none;
7
+  --tabbar-focus-border-top: none;
8
+  --tabbar-height: 49px;
9
+  --tabbar-button-line-height: 49px;
10
+  --tabbar-button-border: none;
11
+  --tabbar-active-box-shadow: none;
12
+  --tabbar-button-focus-box-shadow: none;
13
+  --tabbar-border-top: 1px solid var(--tabbar-border-color);
14
+
15
+  --retina-tabbar-top-border: {
16
+    @media (--retina-query) {
17
+      border-top: none;
18
+      background-size: 100% 1px;
19
+      background-repeat: no-repeat;
20
+      background-position: top;
21
+      background-image: linear-gradient(180deg, var(--tabbar-border-color), var(--tabbar-border-color) 50%, transparent 50%);
22
+    }
23
+  }
24
+
25
+  --retina-tabbar-bottom-border: {
26
+    @media (--retina-query) {
27
+      border-bottom: none;
28
+      background-size: 100% 1px;
29
+      background-repeat: no-repeat;
30
+      background-position: bottom;
31
+      background-image: linear-gradient(0deg, var(--tabbar-border-color), var(--tabbar-border-color) 50%, transparent 50%);
32
+    }
33
+  }
34
+}
35
+
36
+/*~
37
+  name: Icon Tabbar
38
+  category: Tabbar
39
+  elements: ons-tabbar ons-tab
40
+  markup: |
41
+    <!-- Prerequisite=This example use ionicons(http://ionicons.com) to display icons. -->
42
+    <div class="tabbar">
43
+      <label class="tabbar__item">
44
+        <input type="radio" name="tabbar-a" checked="checked">
45
+        <button class="tabbar__button">
46
+          <i class="tabbar__icon ion-stop"></i>
47
+          <div class="tabbar__label">One</div>
48
+        </button>
49
+      </label>
50
+
51
+      <label class="tabbar__item">
52
+        <input type="radio" name="tabbar-a">
53
+        <button class="tabbar__button">
54
+          <i class="tabbar__icon ion-record"></i>
55
+          <div class="tabbar__label">Two</div>
56
+        </button>
57
+      </label>
58
+
59
+      <label class="tabbar__item">
60
+        <input type="radio" name="tabbar-a">
61
+        <button class="tabbar__button">
62
+          <i class="tabbar__icon ion-star"></i>
63
+          <div class="tabbar__label">Three</div>
64
+        </button>
65
+      </label>
66
+    </div>
67
+*/
68
+
69
+/*~
70
+  name: Tabbar
71
+  category: Tabbar
72
+  elements: ons-tabbar ons-tab
73
+  markup: |
74
+    <div class="tabbar">
75
+      <label class="tabbar__item">
76
+        <input type="radio" name="tabbar-c" checked="checked">
77
+        <button class="tabbar__button">
78
+          <div class="tabbar__label">One</div>
79
+        </button>
80
+      </label>
81
+
82
+      <label class="tabbar__item">
83
+        <input type="radio" name="tabbar-c">
84
+        <button class="tabbar__button">
85
+          <div class="tabbar__label">Two</div>
86
+        </button>
87
+      </label>
88
+
89
+      <label class="tabbar__item">
90
+        <input type="radio" name="tabbar-c">
91
+        <button class="tabbar__button">
92
+          <div class="tabbar__label">Three</div>
93
+        </button>
94
+      </label>
95
+    </div>
96
+*/
97
+
98
+.tabbar {
99
+  @apply(--reset-font);
100
+  display: flex;
101
+  position: absolute;
102
+  bottom: 0;
103
+  left: 0;
104
+  right: 0;
105
+  white-space: nowrap;
106
+  margin: 0;
107
+  padding: 0;
108
+  height: var(--tabbar-height);
109
+  background-color: var(--tabbar-background-color);
110
+  border-top: var(--tabbar-border-top);
111
+  width: 100%;
112
+  @apply(--retina-tabbar-top-border);
113
+}
114
+
115
+.tabbar__item {
116
+  @apply(--reset-font);
117
+  @apply(--hide-input-parent);
118
+  flex-grow: 1;
119
+  flex-basis: 0;
120
+  width: auto;
121
+  border-radius: 0;
122
+}
123
+
124
+.tabbar__item > input {
125
+  @apply(--hide-input);
126
+}
127
+
128
+.tabbar__button {
129
+  @apply(--reset-font);
130
+  @apply(--reset-box-model);
131
+  @apply(--reset-base);
132
+  @apply(--reset-cursor);
133
+  @apply(--ellipsis);
134
+  position: relative;
135
+  display: inline-block;
136
+  text-decoration: none;
137
+  padding: 0;
138
+  height: var(--tabbar-button-line-height);
139
+  letter-spacing: 0;
140
+  color: var(--tabbar-button-color);
141
+  vertical-align: top;
142
+  background-color: transparent;
143
+  border-top: var(--tabbar-button-border);
144
+  width: 100%;
145
+  font-weight: var(--font-weight);
146
+  line-height: var(--tabbar-button-line-height);
147
+  @media (--retina-query) {
148
+    border-top: none;
149
+  }
150
+}
151
+
152
+.tabbar__icon {
153
+  font-size: 24px;
154
+  padding: 0;
155
+  margin: 0;
156
+  line-height: 26px;
157
+  display: block !important; /* stylelint-disable-line declaration-no-important */
158
+  height: 28px;
159
+}
160
+
161
+.tabbar__label {
162
+  @apply(--reset-font);
163
+  display: inline-block;
164
+}
165
+
166
+.tabbar__badge.notification {
167
+  vertical-align: text-bottom;
168
+  top: -1px;
169
+  margin-left: 5px;
170
+  z-index: 10;
171
+  font-size: 12px;
172
+  height: 16px;
173
+  min-width: 16px;
174
+  line-height: 16px;
175
+  border-radius: 8px;
176
+}
177
+
178
+.tabbar__icon ~ .tabbar__badge.notification {
179
+  position: absolute;
180
+  top: 5px;
181
+  margin-left: 0;
182
+}
183
+
184
+.tabbar__icon + .tabbar__label {
185
+  display: block;
186
+  font-size: 10px;
187
+  line-height: 1;
188
+  margin: 0;
189
+  font-weight: var(--font-weight);
190
+}
191
+
192
+.tabbar__label:first-child {
193
+  font-size: 16px;
194
+  line-height: var(--tabbar-button-line-height);
195
+  margin: 0;
196
+  padding: 0;
197
+}
198
+
199
+:checked + .tabbar__button {
200
+  color: var(--tabbar-active-color);
201
+  background-color: transparent;
202
+  box-shadow: var(--tabbar-active-box-shadow);
203
+  border-top: var(--tabbar-active-border-top);
204
+}
205
+
206
+.tabbar__button:disabled {
207
+  @apply(--disabled);
208
+}
209
+
210
+.tabbar__button:focus {
211
+  z-index: 1;
212
+  border-top: var(--tabbar-focus-border-top);
213
+  box-shadow: var(--tabbar-button-focus-box-shadow);
214
+  outline: 0;
215
+}
216
+
217
+.tabbar__content {
218
+  position: absolute;
219
+  top: 0;
220
+  left: 0;
221
+  right: 0;
222
+  bottom: var(--tabbar-height);
223
+  z-index: 0;
224
+}
225
+
226
+.tabbar--autogrow .tabbar__item {
227
+  flex-basis: auto;
228
+}
229
+
230
+/*~
231
+  name: Icon Only Tabbar
232
+  category: Tabbar
233
+  elements: ons-tabbar ons-tab
234
+  markup: |
235
+    <!-- Prerequisite=This example use ionicons(http://ionicons.com) to display icons. -->
236
+    <div class="tabbar">
237
+      <label class="tabbar__item">
238
+        <input type="radio" name="tabbar-b" checked="checked">
239
+        <button class="tabbar__button">
240
+          <i class="tabbar__icon ion-stop"></i>
241
+        </button>
242
+      </label>
243
+
244
+      <label class="tabbar__item">
245
+        <input type="radio" name="tabbar-b">
246
+        <button class="tabbar__button">
247
+          <i class="tabbar__icon ion-record"></i>
248
+        </button>
249
+      </label>
250
+
251
+      <label class="tabbar__item">
252
+        <input type="radio" name="tabbar-b">
253
+        <button class="tabbar__button">
254
+          <i class="tabbar__icon ion-star"></i>
255
+        </button>
256
+      </label>
257
+
258
+    </div>
259
+*/
260
+
261
+/*~
262
+  name: Top Tabbar
263
+  category: Tabbar
264
+  elements: ons-tabbar ons-tab
265
+  markup: |
266
+    <div class="tabbar tabbar--top">
267
+      <label class="tabbar__item">
268
+        <input type="radio" name="top-tabbar-a" checked="checked">
269
+        <button class="tabbar__button">
270
+          <i class="tabbar__icon ion-stop"></i>
271
+        </button>
272
+      </label>
273
+
274
+      <label class="tabbar__item">
275
+        <input type="radio" name="top-tabbar-a">
276
+        <button class="tabbar__button">
277
+          <i class="tabbar__icon ion-record"></i>
278
+        </button>
279
+      </label>
280
+
281
+      <label class="tabbar__item">
282
+        <input type="radio" name="top-tabbar-a">
283
+        <button class="tabbar__button">
284
+          <i class="tabbar__icon ion-star"></i>
285
+        </button>
286
+      </label>
287
+    </div>
288
+*/
289
+
290
+.tabbar--top {
291
+  position: relative;
292
+  top: 0;
293
+  left: 0;
294
+  right: 0;
295
+  bottom: auto;
296
+  border-top: none;
297
+  border-bottom: var(--tabbar-border-top);
298
+  @apply(--retina-tabbar-bottom-border);
299
+}
300
+
301
+.tabbar--top__content {
302
+  top: var(--tabbar-height);
303
+  left: 0;
304
+  right: 0;
305
+  bottom: 0;
306
+  z-index: 0;
307
+}
308
+
309
+/*~
310
+  name: Bordered Top Tabbar
311
+  category: Tabbar
312
+  elements: ons-tabbar ons-tab
313
+  markup: |
314
+    <div class="tabbar tabbar--top tabbar--top-border">
315
+      <label class="tabbar__item tabbar--top-border__item">
316
+        <input type="radio" name="top-tabbar-b" checked="checked">
317
+        <button class="tabbar__button tabbar--top-border__button">
318
+          Home
319
+        </button>
320
+      </label>
321
+
322
+      <label class="tabbar__item tabbar--top-border__item">
323
+        <input type="radio" name="top-tabbar-b">
324
+        <button class="tabbar__button tabbar--top-border__button">
325
+          Comments
326
+        </button>
327
+      </label>
328
+
329
+      <label class="tabbar__item tabbar--top-border__item">
330
+        <input type="radio" name="top-tabbar-b">
331
+        <button class="tabbar__button tabbar--top-border__button">
332
+          Activity
333
+        </button>
334
+      </label>
335
+    </div>
336
+*/
337
+
338
+/*~
339
+  name: Material Tabbar
340
+  category: Tabbar
341
+  elements: ons-tabbar ons-tab
342
+  markup: |
343
+    <div class="tabbar tabbar--top tabbar--material">
344
+      <label class="tabbar__item tabbar--material__item">
345
+        <input type="radio" name="tabbar-material-a" checked="checked">
346
+        <button class="tabbar__button tabbar--material__button">
347
+          Music
348
+        </button>
349
+      </label>
350
+
351
+      <label class="tabbar__item tabbar--material__item">
352
+        <input type="radio" name="tabbar-material-a">
353
+        <button class="tabbar__button tabbar--material__button">
354
+          Movies
355
+        </button>
356
+      </label>
357
+
358
+      <label class="tabbar__item tabbar--material__item">
359
+        <input type="radio" name="tabbar-material-a">
360
+        <button class="tabbar__button tabbar--material__button">
361
+          Books
362
+        </button>
363
+      </label>
364
+
365
+      <label class="tabbar__item tabbar--material__item">
366
+        <input type="radio" name="tabbar-material-a">
367
+        <button class="tabbar__button tabbar--material__button">
368
+          Games
369
+        </button>
370
+      </label>
371
+
372
+    </div>
373
+*/
374
+
375
+.tabbar--top-border__button {
376
+  background-color: transparent;
377
+  border-bottom: 4px solid transparent;
378
+}
379
+
380
+:checked + .tabbar--top-border__button {
381
+  background-color: transparent;
382
+  border-bottom: 4px solid var(--tabbar-active-color);
383
+}
384
+
385
+.tabbar__border {
386
+  position: absolute;
387
+  bottom: 0;
388
+  left: 0;
389
+  width: 0;
390
+  height: 4px;
391
+  background-color: var(--tabbar-active-color);
392
+}
393
+
394
+.tabbar--material {
395
+  background: none;
396
+  background-color: var(--material-tabbar-background-color);
397
+  border-bottom-width: 0;
398
+  box-shadow:
399
+    0 4px 2px -2px rgba(0, 0, 0, 0.14),
400
+    0 3px 5px -2px rgba(0, 0, 0, 0.12),
401
+    0 5px 1px -4px rgba(0, 0, 0, 0.2);
402
+}
403
+
404
+.tabbar--material__button {
405
+  background-color: transparent;
406
+  color: var(--material-tabbar-text-color);
407
+  text-transform: uppercase;
408
+  font-size: 14px;
409
+  font-weight: 500;
410
+  @apply(--material-font);
411
+}
412
+
413
+.tabbar--material__button:after {
414
+  content: '';
415
+  display: block;
416
+  width: 0;
417
+  height: 2px;
418
+  bottom: 0;
419
+  position: absolute;
420
+  margin-top: -2px;
421
+  background-color: var(--material-tabbar-current-color);
422
+}
423
+
424
+:checked + .tabbar--material__button:after {
425
+  width: 100%;
426
+  transition: width 0.2s ease-in-out;
427
+}
428
+
429
+:checked + .tabbar--material__button {
430
+  background-color: transparent;
431
+  color: var(--material-tabbar-current-color);
432
+}
433
+
434
+.tabbar--material__item:not([ripple]):active {
435
+  background-color: var(--material-tabbar-highlight-color);
436
+}
437
+
438
+.tabbar--material__border {
439
+  height: 2px;
440
+  background-color: var(--material-tabbar-current-color);
441
+}
442
+
443
+/*~
444
+  name: Material Tabbar (Icon only)
445
+  category: Tabbar
446
+  elements: ons-tabbar ons-tab
447
+  markup: |
448
+    <div class="tabbar tabbar--top tabbar--material">
449
+      <label class="tabbar__item tabbar--material__item">
450
+        <input type="radio" name="tabbar-material-b" checked="checked">
451
+        <button class="tabbar__button tabbar--material__button">
452
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-phone"></i>
453
+        </button>
454
+      </label>
455
+
456
+      <label class="tabbar__item tabbar--material__item">
457
+        <input type="radio" name="tabbar-material-b">
458
+        <button class="tabbar__button tabbar--material__button">
459
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-favorite"></i>
460
+        </button>
461
+      </label>
462
+
463
+      <label class="tabbar__item tabbar--material__item">
464
+        <input type="radio" name="tabbar-material-b">
465
+        <button class="tabbar__button tabbar--material__button">
466
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-pin-account"></i>
467
+        </button>
468
+      </label>
469
+    </div>
470
+*/
471
+
472
+.tabbar--material__icon {
473
+  font-size: 22px !important; /* stylelint-disable-line declaration-no-important */
474
+  line-height: 36px;
475
+}
476
+
477
+/*~
478
+  name: Material Tabbar (Icon and Label)
479
+  category: Tabbar
480
+  elements: ons-tabbar ons-tab
481
+  markup: |
482
+    <div class="tabbar tabbar--top tabbar--material">
483
+      <label class="tabbar__item tabbar--material__item">
484
+        <input type="radio" name="tabbar-material-c" checked="checked">
485
+        <button class="tabbar__button tabbar--material__button">
486
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-phone"></i>
487
+          <div class="tabbar__label tabbar--material__label">Call</div>
488
+        </button>
489
+      </label>
490
+
491
+      <label class="tabbar__item tabbar--material__item">
492
+        <input type="radio" name="tabbar-material-c">
493
+        <button class="tabbar__button tabbar--material__button">
494
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-favorite"></i>
495
+          <div class="tabbar__label tabbar--material__label">Favorites</div>
496
+        </button>
497
+      </label>
498
+
499
+      <label class="tabbar__item tabbar--material__item">
500
+        <input type="radio" name="tabbar-material-c">
501
+        <button class="tabbar__button tabbar--material__button">
502
+          <i class="tabbar__icon tabbar--material__icon zmdi zmdi-delete"></i>
503
+          <div class="tabbar__label tabbar--material__label">Delete</div>
504
+        </button>
505
+      </label>
506
+    </div>
507
+*/
508
+
509
+.tabbar--material__label {
510
+  @apply(--material-font);
511
+}
512
+
513
+.tabbar--material__label:first-child {
514
+  @apply(--material-font);
515
+  letter-spacing: 0.015em;
516
+  font-weight: 500;
517
+  font-size: 14px;
518
+}
519
+
520
+.tabbar--material__icon + .tabbar--material__label {
521
+  font-size: 10px;
522
+}
523
+

+ 189
- 0
Searchbar/onsenui/css-components-src/src/components/text-input.css 查看文件

@@ -0,0 +1,189 @@
1
+
2
+:root {
3
+  --text-input-font-size: 16px;
4
+  --text-input-height: 31px;
5
+  --text-input-border-color: var(--input-border-color);
6
+  --material-text-input-font-size: 16px;
7
+  --material-text-input-color: var(--material-text-input-text-color);
8
+
9
+  --text-input: {
10
+    @apply(--input);
11
+    @apply(--transparent);
12
+    letter-spacing: 0;
13
+    box-shadow: none;
14
+    color: var(--input-text-color);
15
+    padding: 0;
16
+    margin: 0;
17
+    width: auto;
18
+    font-size: var(--text-input-font-size);
19
+    height: var(--text-input-height);
20
+    font-weight: var(--font-weight);
21
+    box-sizing: border-box;
22
+  }
23
+
24
+  --text-input--disabled: {
25
+    @apply(--disabled);
26
+  }
27
+
28
+  --text-input--focus: {
29
+  }
30
+
31
+  --input-placeholder: {
32
+    @apply(--transparent);
33
+    color: var(--input-placeholder-color);
34
+  }
35
+
36
+  --text-input--invalid: {
37
+    @apply(--transparent);
38
+    color: var(--input-invalid-text-color);
39
+  }
40
+
41
+  --text-input-underbar-disabled: {
42
+    @apply(--input-placeholder);
43
+    border: none;
44
+    background-color: transparent;
45
+  }
46
+
47
+  --text-input--material-placeholder: {
48
+    color: var(--material-text-input-inactive-color);
49
+    line-height: 20px;
50
+  }
51
+}
52
+
53
+/*~
54
+  name: Text Input
55
+  category: Text Input
56
+  elements: ons-input
57
+  markup: |
58
+    <div><input type="text" class="text-input" placeholder="text" value=""></div>
59
+    <div><input type="text" class="text-input" placeholder="text" value="" disabled></div>
60
+*/
61
+
62
+.text-input {
63
+  @apply(--text-input);
64
+}
65
+
66
+.text-input::-ms-clear {
67
+  display: none;
68
+}
69
+
70
+.text-input:disabled {
71
+  @apply(--text-input--disabled);
72
+}
73
+
74
+.text-input::placeholder {
75
+  color: var(--input-placeholder-color);
76
+}
77
+
78
+.text-input:disabled::placeholder {
79
+  @apply(--input-placeholder);
80
+}
81
+
82
+.text-input:invalid {
83
+  @apply(--text-input--invalid);
84
+}
85
+
86
+/*~
87
+  name: Underbar Text Input
88
+  category: Text Input
89
+  elements: ons-input
90
+  markup: |
91
+    <div><input type="text" class="text-input text-input--underbar" placeholder="text" value=""></div>
92
+    <div><input type="text" class="text-input text-input--underbar" placeholder="text" value="" disabled></div>
93
+*/
94
+
95
+.text-input--underbar {
96
+  @apply(--text-input);
97
+  border: none;
98
+  background-color: transparent;
99
+  border-bottom: 1px solid var(--text-input-border-color);
100
+  border-radius: 0;
101
+}
102
+
103
+.text-input--underbar:disabled {
104
+  @apply(--text-input--disabled);
105
+  border: none;
106
+  background-color: transparent;
107
+  border-bottom: 1px solid var(--text-input-border-color);
108
+}
109
+
110
+.text-input--underbar:disabled::placeholder {
111
+  @apply(--text-input-underbar-disabled);
112
+}
113
+
114
+.text-input--underbar:invalid {
115
+  @apply(--text-input--invalid);
116
+  border: none;
117
+  background-color: transparent;
118
+  border-bottom: 1px solid var(--input-invalid-border-color);
119
+}
120
+
121
+/*~
122
+  name: Material Input
123
+  category: Text Input
124
+  elements: ons-input
125
+  markup: |
126
+    <span>
127
+      <div><input class="text-input text-input--material" placeholder="Username" type="text" required></div>
128
+      <br />
129
+      <div><input class="text-input text-input--material" placeholder="Password" type="password" required></div>
130
+    </span>
131
+*/
132
+
133
+.text-input--material {
134
+  @apply(--input);
135
+  @apply(--material-font);
136
+  color: var(--material-text-input-color);
137
+  background-image: linear-gradient(to top, transparent 1px, var(--material-text-input-inactive-color) 1px);
138
+  background-size: 100% 2px;
139
+  background-repeat: no-repeat;
140
+  background-position: center bottom;
141
+  background-color: transparent;
142
+  font-size: var(--material-text-input-font-size);
143
+  font-weight: 400;
144
+  border: none;
145
+  padding-bottom: 2px;
146
+  border-radius: 0;
147
+  height: 24px;
148
+  vertical-align: middle;
149
+  -webkit-transform: translate3d(0, 0, 0); /* FIXME: prevent ios flicker */
150
+}
151
+
152
+.text-input--material__label {
153
+  @apply(--material-font);
154
+  color: var(--material-text-input-inactive-color);
155
+  position: absolute;
156
+  left: 0;
157
+  top: 2px;
158
+  font-size: 16px;
159
+  font-weight: 400;
160
+  pointer-events: none;
161
+}
162
+
163
+.text-input--material__label--active {
164
+  color: var(--material-text-input-active-color);
165
+  transform: translate(0, -75%) scale(0.75);
166
+  transform-origin: left top;
167
+  transition: transform 0.1s ease-in, color 0.1s ease-in;
168
+}
169
+
170
+.text-input--material:focus {
171
+  background-image:
172
+    linear-gradient(var(--material-text-input-active-color), var(--material-text-input-active-color)),
173
+    linear-gradient(to top, transparent 1px, var(--material-text-input-inactive-color) 1px);
174
+  animation: material-text-input-animate 0.3s forwards;
175
+}
176
+
177
+.text-input--material::placeholder {
178
+  @apply(--text-input--material-placeholder);
179
+}
180
+
181
+@keyframes material-text-input-animate {
182
+  0% {
183
+    background-size: 0% 2px, 100% 2px;
184
+  }
185
+
186
+  100% {
187
+    background-size: 100% 2px, 100% 2px;
188
+  }
189
+}

+ 79
- 0
Searchbar/onsenui/css-components-src/src/components/textarea.css 查看文件

@@ -0,0 +1,79 @@
1
+:root {
2
+  --textarea-color: var(--input-text-color);
3
+  --textarea-border: 1px solid var(--input-border-color);
4
+  --textarea-padding: 5px 5px 5px 5px;
5
+  --textarea-box-shadow: none;
6
+  --textarea-border-radius: 4px;
7
+}
8
+
9
+/*~
10
+  name: Textarea
11
+  category: Textarea
12
+  markup: |
13
+    <textarea class="textarea" rows="3" placeholder="Textarea"></textarea>
14
+*/
15
+
16
+.textarea {
17
+  @apply(--reset-box-model);
18
+  @apply(--reset-base);
19
+  @apply(--reset-font);
20
+  vertical-align: top;
21
+  resize: none;
22
+  outline: none;
23
+  padding: var(--textarea-padding);
24
+  font-size: var(--text-input-font-size);
25
+  font-weight: var(--font-weight);
26
+  border-radius: var(--textarea-border-radius);
27
+  border: var(--textarea-border);
28
+  background-color: var(--input-bg-color);
29
+  color: var(--textarea-color);
30
+  letter-spacing: 0;
31
+  box-shadow: var(--textarea-box-shadow);
32
+  appearance: none;
33
+  width: auto;
34
+}
35
+
36
+.textarea:disabled {
37
+  @apply(--disabled);
38
+}
39
+
40
+.textarea::placeholder {
41
+  color: var(--input-placeholder-color);
42
+}
43
+
44
+/*~
45
+  name: Textarea Transparent
46
+  category: Textarea
47
+  markup: |
48
+    <textarea class="textarea textarea--transparent" rows="3" placeholder="Textarea"></textarea>
49
+*/
50
+
51
+.textarea--transparent {
52
+  @apply(--reset-box-model);
53
+  @apply(--reset-base);
54
+  @apply(--reset-font);
55
+  vertical-align: top;
56
+  resize: none;
57
+  outline: none;
58
+  padding: var(--textarea-padding);
59
+  padding-left: 0;
60
+  padding-right: 0;
61
+  font-size: var(--text-input-font-size);
62
+  font-weight: var(--font-weight);
63
+  border-radius: var(--textarea-border-radius);
64
+  border: none;
65
+  background-color: transparent;
66
+  color: var(--textarea-color);
67
+  letter-spacing: 0;
68
+  box-shadow: var(--textarea-box-shadow);
69
+  appearance: none;
70
+  width: auto;
71
+}
72
+
73
+.textarea--transparent:disabled {
74
+  @apply(--disabled);
75
+}
76
+
77
+.textarea--transparent::placeholder {
78
+  color: var(--input-placeholder-color);
79
+}

+ 88
- 0
Searchbar/onsenui/css-components-src/src/components/toast.css 查看文件

@@ -0,0 +1,88 @@
1
+
2
+:root {
3
+}
4
+
5
+/*~
6
+  name: Toast
7
+  category: Toast
8
+  markup: |
9
+    <div class="toast">
10
+      <div class="toast__message">Message Message Message Message Message Message</div>
11
+      <button class="toast__button">ACTION</button>
12
+    </div>
13
+*/
14
+
15
+.toast {
16
+  @apply(--reset-font);
17
+  position: absolute;
18
+  z-index: 2;
19
+  left: 8px;
20
+  right: 8px;
21
+  bottom: 0;
22
+  margin: 8px 0;
23
+  border-radius: 8px;
24
+  background-color: var(--toast-background-color);
25
+  display: flex;
26
+  min-height: 48px;
27
+  line-height: 1.5;
28
+  box-sizing: border-box;
29
+  padding: 16px 16px;
30
+}
31
+
32
+.toast__message {
33
+  font-size: 14px;
34
+  color: var(--toast-text-color);
35
+  flex-grow: 1;
36
+  text-align: left;
37
+  margin: 0 16px 0 0;
38
+  white-space: normal;
39
+}
40
+
41
+.toast__button {
42
+  font-size: 14px;
43
+  color: var(--toast-button-text-color);
44
+  flex-grow: 0;
45
+  appearance: none;
46
+  border: none;
47
+  background-color: transparent;
48
+  cursor: default;
49
+  text-transform: uppercase;
50
+}
51
+
52
+.toast__button:focus {
53
+  outline: none;
54
+}
55
+
56
+.toast__button:active {
57
+  opacity: 0.4;
58
+}
59
+
60
+/*~
61
+  name: Material Toast
62
+  category: Toast
63
+  markup: |
64
+    <div class="toast toast--material">
65
+      <div class="toast__message toast--material__message">Message Message Message Message Message Message</div>
66
+      <button class="toast__button toast--material__button">ACTION</button>
67
+    </div>
68
+*/
69
+
70
+.toast--material {
71
+  left: 0;
72
+  right: 0;
73
+  bottom: 0;
74
+  margin: 0;
75
+  background-color: var(--material-toast-background-color);
76
+  border-radius: 0;
77
+  padding: 16px 24px;
78
+}
79
+
80
+.toast--material__message {
81
+  @apply(--material-font);
82
+  margin: 0 24px 0 0;
83
+}
84
+
85
+.toast--material__button {
86
+  @apply(--material-font);
87
+  color: var(--material-toast-button-text-color);
88
+}

+ 170
- 0
Searchbar/onsenui/css-components-src/src/components/toolbar-button.css 查看文件

@@ -0,0 +1,170 @@
1
+
2
+:root {
3
+  --toolbar-button-background-color: rgba(0, 0, 0, 0);
4
+  --toolbar-button-border-color: var(--toolbar-button-color);
5
+  --toolbar-button-border-radius: 2px;
6
+  --toolbar-button-padding: 4px 10px;
7
+  --toolbar-button-active-background-color: var(--toolbar-button-background-color);
8
+  --toolbar-button-border: 1px solid var(--toolbar-button-border-color);
9
+}
10
+
11
+/*~
12
+  name: Toolbar Button
13
+  category: Toolbar Button
14
+  elements: ons-toolbar-button
15
+  markup: |
16
+    <!-- Prerequisite=This example use font-awesome(http://fortawesome.github.io/Font-Awesome/) to display icons. -->
17
+    <button class="toolbar-button">
18
+      <i class="fa fa-bell" style="font-size:17px"></i>
19
+    </button>
20
+
21
+    <button class="toolbar-button">
22
+      Label
23
+    </button>
24
+
25
+    <button class="toolbar-button toolbar-button--outline">
26
+      <i class="fa fa-bell" style="font-size:17px"></i> Label
27
+    </button>
28
+*/
29
+
30
+.toolbar-button {
31
+  @apply(--reset-font);
32
+  padding: var(--toolbar-button-padding);
33
+  letter-spacing: 0;
34
+  color: var(--toolbar-button-color);
35
+  background-color: var(--toolbar-button-background-color);
36
+  border-radius: var(--toolbar-button-border-radius);
37
+  border: 1px solid transparent;
38
+  font-weight: var(--font-weight);
39
+  font-size: var(--font-size);
40
+  transition: none;
41
+}
42
+
43
+.toolbar-button:active {
44
+  background-color: var(--toolbar-button-active-background-color);
45
+  transition: none;
46
+  opacity: 0.2;
47
+}
48
+
49
+.toolbar-button:disabled,
50
+.toolbar-button[disabled] {
51
+  @apply(--disabled);
52
+}
53
+
54
+.toolbar-button:focus {
55
+  outline: 0;
56
+  transition: none;
57
+}
58
+
59
+.toolbar-button:hover {
60
+  transition: none;
61
+}
62
+
63
+.toolbar-button--outline {
64
+  border: var(--toolbar-button-border);
65
+  margin: auto 8px;
66
+  padding-left: 6px;
67
+  padding-right: 6px;
68
+}
69
+
70
+/*~
71
+  name: Material Toolbar Button
72
+  category: Toolbar Button
73
+  elements: ons-toolbar-button
74
+  markup: |
75
+    <!-- Prerequisite=This example use Material Design Iconic Font(http://zavoloklom.github.io/material-design-iconic-font/) to display icons. -->
76
+    <span class="toolbar-button toolbar-button--material">
77
+      <i class="zmdi zmdi-menu"></i>
78
+    </span>
79
+    <span class="toolbar-button toolbar-button--material">
80
+      Label
81
+    </span>
82
+    <span class="toolbar-button toolbar-button--material">
83
+      <i class="zmdi zmdi-favorite"></i>
84
+    </span>
85
+*/
86
+
87
+.toolbar-button--material {
88
+  font-size: 22px;
89
+  color: var(--material-toolbar-button-color);
90
+  display: inline-block;
91
+  padding: 0 12px;
92
+  height: 100%;
93
+  margin: 0;
94
+  border: none;
95
+  border-radius: 0;
96
+  vertical-align: initial;
97
+  transition: background-color 0.25s linear;
98
+}
99
+
100
+.toolbar-button--material:first-of-type {
101
+  margin-left: 4px;
102
+}
103
+
104
+.toolbar-button--material:last-of-type {
105
+  margin-right: 4px;
106
+}
107
+
108
+.toolbar-button--material:active {
109
+  opacity: 1;
110
+  transition: background-color 0.25s linear;
111
+}
112
+
113
+.back-button {
114
+  height: 44px;
115
+  line-height: 44px;
116
+  padding-left: 8px;
117
+  color: var(--toolbar-button-color);
118
+  background-color: var(--toolbar-button-background-color);
119
+  display: inline-block;
120
+}
121
+
122
+.back-button:active {
123
+  opacity: 0.2;
124
+}
125
+
126
+.back-button__label {
127
+  display: inline-block;
128
+  height: 100%;
129
+  vertical-align: top;
130
+  line-height: var(--toolbar-height);
131
+  font-size: var(--font-size);
132
+  font-weight: var(--font-weight--large);
133
+}
134
+
135
+.back-button__icon {
136
+  margin-right: 6px;
137
+  display: inline-flex;
138
+  fill: var(--toolbar-button-color);
139
+  align-items: center;
140
+  height: 100%;
141
+}
142
+
143
+.back-button--material {
144
+  font-size: 22px;
145
+  color: var(--material-toolbar-button-color);
146
+  display: inline-block;
147
+  padding: 0 12px;
148
+  height: 100%;
149
+  margin: 0 0 0 4px;
150
+  border: none;
151
+  border-radius: 0;
152
+  vertical-align: initial;
153
+  line-height: 56px;
154
+}
155
+
156
+.back-button--material__label {
157
+  display: none;
158
+  font-size: 20px;
159
+}
160
+
161
+.back-button--material__icon {
162
+  display: inline-flex;
163
+  fill: var(--material-toolbar-button-color);
164
+  align-items: center;
165
+  height: 100%;
166
+}
167
+
168
+.back-button--material:active {
169
+  opacity: 1;
170
+}

+ 385
- 0
Searchbar/onsenui/css-components-src/src/components/toolbar.css 查看文件

@@ -0,0 +1,385 @@
1
+
2
+:root {
3
+  --toolbar-separator-color: var(--toolbar-border-color);
4
+  --toolbar-color: var(--toolbar-text-color);
5
+
6
+  --toolbar-height: 44px;
7
+  --toolbar-box-shadow: none;
8
+  --toolbar-padding: 0;
9
+  --toolbar-separator: 1px solid var(--toolbar-separator-color);
10
+  --toolbar-material-height: 56px;
11
+  --material-toolbar-color: var(--material-toolbar-text-color);
12
+
13
+  --retina-toolbar-top-border: {
14
+    border-top: none;
15
+    background-size: 100% 1px;
16
+    background-repeat: no-repeat;
17
+    background-position: top;
18
+    background-image: linear-gradient(180deg, var(--toolbar-separator-color), var(--toolbar-separator-color) 100%);
19
+
20
+    @media (--retina-query) {
21
+      background-image: linear-gradient(180deg, var(--toolbar-separator-color), var(--toolbar-separator-color) 50%, transparent 50%);
22
+    }
23
+  }
24
+
25
+  --retina-toolbar-bottom-border: {
26
+    border-bottom: none;
27
+    background-size: 100% 1px;
28
+    background-repeat: no-repeat;
29
+    background-position: bottom;
30
+    background-image: linear-gradient(0deg, var(--toolbar-separator-color), var(--toolbar-separator-color) 100%);
31
+
32
+    @media (--retina-query) {
33
+      background-image: linear-gradient(0deg, var(--toolbar-separator-color), var(--toolbar-separator-color) 50%, transparent 50%);
34
+    }
35
+  }
36
+
37
+  --toolbar: {
38
+    @apply(--reset-font);
39
+    @apply(--reset-container);
40
+    @apply(--reset-base);
41
+    @apply(--reset-cursor);
42
+    z-index: 2;
43
+  }
44
+
45
+  --toolbar__item: {
46
+    @apply(--reset-box-model);
47
+    @apply(--reset-base);
48
+  }
49
+
50
+  --toolbar--material-font: {
51
+    @apply(--material-font);
52
+    font-size: 20px;
53
+    font-weight: 500;
54
+    color: var(--material-toolbar-color);
55
+  }
56
+}
57
+
58
+/*~
59
+  name: Toolbar
60
+  category: Toolbar
61
+  elements: ons-toolbar
62
+  markup: |
63
+    <div class="toolbar">
64
+      <div class="toolbar__center">Navigation Bar</div>
65
+    </div>
66
+*/
67
+
68
+.toolbar {
69
+  @apply(--toolbar);
70
+  display: flex;
71
+  align-items: stretch;
72
+  flex-wrap: nowrap;
73
+  height: var(--toolbar-height);
74
+  padding-left: var(--toolbar-padding);
75
+  padding-right: var(--toolbar-padding);
76
+  background: var(--toolbar-background-color);
77
+  color: var(--toolbar-color);
78
+  box-shadow: var(--toolbar-box-shadow);
79
+  font-weight: var(--font-weight);
80
+  width: 100%;
81
+  white-space: nowrap;
82
+  @apply(--retina-toolbar-bottom-border);
83
+}
84
+
85
+.toolbar__bg {
86
+  background: var(--toolbar-background-color);
87
+}
88
+
89
+.toolbar__item {
90
+  @apply(--toolbar__item);
91
+  height: var(--toolbar-height);
92
+  overflow: visible;
93
+  display: block;
94
+  vertical-align: middle;
95
+}
96
+
97
+.toolbar__left {
98
+  @apply(--toolbar__item);
99
+  max-width: 50%;
100
+  width: 27%;
101
+  text-align: left;
102
+  line-height: var(--toolbar-height);
103
+}
104
+
105
+.toolbar__right {
106
+  @apply(--toolbar__item);
107
+  max-width: 50%;
108
+  width: 27%;
109
+  text-align: right;
110
+  line-height: var(--toolbar-height);
111
+}
112
+
113
+.toolbar__center {
114
+  @apply(--toolbar__item);
115
+  width: 46%;
116
+  text-align: center;
117
+  line-height: var(--toolbar-height);
118
+  font-size: var(--font-size);
119
+  font-weight: var(--font-weight--large);
120
+  color: var(--toolbar-color);
121
+}
122
+
123
+.toolbar__title {
124
+  line-height: var(--toolbar-height);
125
+  font-size: var(--font-size);
126
+  font-weight: var(--font-weight--large);
127
+  color: var(--toolbar-color);
128
+  margin: 0;
129
+  padding: 0;
130
+  overflow: visible;
131
+}
132
+
133
+.toolbar__center:first-child:last-child {
134
+  width: 100%;
135
+}
136
+
137
+/*~
138
+  name: Toolbar Item
139
+  category: Toolbar
140
+  elements: ons-toolbar ons-toolbar-button
141
+  markup: |
142
+    <div class="toolbar">
143
+      <div class="toolbar__left">
144
+        <span class="toolbar-button">
145
+          <i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
146
+        </span>
147
+      </div>
148
+
149
+      <div class="toolbar__center">
150
+        Navigation Bar
151
+      </div>
152
+
153
+      <div class="toolbar__right">
154
+        <span class="toolbar-button">Label</span>
155
+      </div>
156
+    </div>
157
+*/
158
+
159
+/*~
160
+  name: Toolbar with Outline Button
161
+  category: Toolbar
162
+  elements: ons-toolbar ons-toolbar-button
163
+  markup: |
164
+    <!-- Prerequisite=This example use ionicons(http://ionicons.com) to display icons. -->
165
+    <div class="toolbar">
166
+      <div class="toolbar__left">
167
+        <span class="toolbar-button toolbar-button--outline">
168
+          <i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
169
+        </span>
170
+      </div>
171
+
172
+      <div class="toolbar__center">
173
+        Title
174
+      </div>
175
+
176
+      <div class="toolbar__right">
177
+        <span class="toolbar-button toolbar-button--outline">Button</span>
178
+      </div>
179
+    </div>
180
+*/
181
+
182
+/*~
183
+  name: Bottom Bar
184
+  category: Toolbar
185
+  elements: ons-bottom-toolbar
186
+  markup: |
187
+    <div class="bottom-bar">
188
+      <div class="bottom-bar__line-height" style="text-align:center">Bottom Toolbar</div>
189
+    </div>
190
+*/
191
+
192
+.bottom-bar {
193
+  @apply(--toolbar);
194
+  display: block;
195
+  height: var(--toolbar-height);
196
+  padding-left: var(--toolbar-padding);
197
+  padding-right: var(--toolbar-padding);
198
+  background: var(--toolbar-background-color);
199
+  color: var(--toolbar-color);
200
+  box-shadow: var(--toolbar-box-shadow);
201
+  font-weight: var(--font-weight);
202
+  border-bottom: none;
203
+  border-top: var(--toolbar-separator);
204
+  position: absolute;
205
+  bottom: 0;
206
+  right: 0;
207
+  left: 0;
208
+  @apply(--retina-toolbar-top-border);
209
+}
210
+
211
+.bottom-bar__line-height {
212
+  line-height: var(--toolbar-height);
213
+  padding-bottom: 0;
214
+  padding-top: 0;
215
+}
216
+
217
+.bottom-bar--aligned {
218
+  display: flex;
219
+  flex-wrap: nowrap;
220
+  line-height: var(--toolbar-height);
221
+}
222
+
223
+.bottom-bar--transparent {
224
+  background-color: transparent;
225
+  background-image: none;
226
+  border: none;
227
+}
228
+
229
+/*~
230
+  name: Toolbar with Segment
231
+  category: Toolbar
232
+  elements: ons-toolbar
233
+  markup: |
234
+    <div class="toolbar">
235
+      <div class="toolbar__center">
236
+        <div class="segment" style="width:200px;margin:7px 50px;">
237
+          <div class="segment__item">
238
+            <input type="radio" class="segment__input" name="navi-segment-a" checked>
239
+            <div class="segment__button">One</div>
240
+          </div>
241
+
242
+          <div class="segment__item">
243
+            <input type="radio" class="segment__input" name="navi-segment-a">
244
+            <div class="segment__button">Two</div>
245
+          </div>
246
+        </div>
247
+      </div>
248
+    </div>
249
+*/
250
+
251
+/*~
252
+  name: Material Toolbar
253
+  category: Toolbar
254
+  elements: ons-toolbar
255
+  markup: |
256
+    <div class="toolbar toolbar--material">
257
+      <div class="toolbar__center toolbar--material__center">
258
+        Title
259
+      </div>
260
+    </div>
261
+*/
262
+
263
+.toolbar--material {
264
+  display: flex;
265
+  flex-wrap: nowrap;
266
+  justify-content: space-between;
267
+  height: var(--toolbar-material-height);
268
+  border-bottom: 0;
269
+  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
270
+  padding: 0;
271
+  background-color: var(--material-toolbar-background-color);
272
+  background-size: 0;
273
+}
274
+
275
+/*~
276
+  name: No Shadow Toolbar
277
+  category: Toolbar
278
+  elements: ons-toolbar
279
+  markup: |
280
+    <div class="toolbar toolbar--noshadow">
281
+      <div class="toolbar__left">
282
+        <span class="toolbar-button">
283
+          <i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
284
+        </span>
285
+      </div>
286
+      <div class="toolbar__center">
287
+        Navigation Bar
288
+      </div>
289
+      <div class="toolbar__right">
290
+        <span class="toolbar-button">Label</span>
291
+      </div>
292
+    </div>
293
+*/
294
+
295
+.toolbar--noshadow {
296
+  box-shadow: none;
297
+  background-image: none;
298
+  border-bottom: none;
299
+}
300
+
301
+.toolbar--material__left, .toolbar--material__right {
302
+  @apply(--toolbar--material-font);
303
+  height: var(--toolbar-material-height);
304
+  min-width: 72px;
305
+  width: auto;
306
+  line-height: var(--toolbar-material-height);
307
+}
308
+
309
+.toolbar--material__center {
310
+  @apply(--toolbar--material-font);
311
+  height: var(--toolbar-material-height);
312
+  width: auto;
313
+  flex-grow: 1;
314
+  overflow: hidden;
315
+  text-overflow: ellipsis;
316
+  text-align: left;
317
+  line-height: var(--toolbar-material-height);
318
+}
319
+
320
+.toolbar--material__center:first-child {
321
+  margin-left: 16px;
322
+}
323
+
324
+.toolbar--material__center:last-child {
325
+  margin-right: 16px;
326
+}
327
+
328
+.toolbar--material__left:empty, .toolbar--material__right:empty {
329
+  min-width: 16px;
330
+}
331
+
332
+/*~
333
+  name: Material Toolbar with Icons
334
+  category: Toolbar
335
+  elements: ons-toolbar
336
+  markup: |
337
+    <div class="toolbar toolbar--material">
338
+      <div class="toolbar__left toolbar--material__left">
339
+        <span class="toolbar-button toolbar-button--material">
340
+          <i class="zmdi zmdi-menu"></i>
341
+        </span>
342
+      </div>
343
+      <div class="toolbar__center toolbar--material__center">
344
+        Title
345
+      </div>
346
+      <div class="toolbar__right toolbar--material__right">
347
+        <span class="toolbar-button toolbar-button--material">
348
+          <i class="zmdi zmdi-search"></i>
349
+        </span>
350
+        <span class="toolbar-button toolbar-button--material">
351
+          <i class="zmdi zmdi-favorite"></i>
352
+        </span>
353
+        <span class="toolbar-button toolbar-button--material">
354
+          <i class="zmdi zmdi-more-vert"></i>
355
+        </span>
356
+      </div>
357
+    </div>
358
+*/
359
+
360
+/*~
361
+  name: Transparent Toolbar
362
+  category: Toolbar
363
+  elements: ons-toolbar
364
+  markup: |
365
+    <div class="toolbar toolbar--transparent">
366
+      <div class="toolbar__left">
367
+        <span class="toolbar-button">
368
+          <i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
369
+        </span>
370
+      </div>
371
+      <div class="toolbar__center">
372
+        Navigation Bar
373
+      </div>
374
+      <div class="toolbar__right">
375
+        <span class="toolbar-button">Label</span>
376
+      </div>
377
+    </div>
378
+*/
379
+
380
+.toolbar--transparent {
381
+  background-color: transparent;
382
+  box-shadow: none;
383
+  background-image: none;
384
+  border-bottom: none;
385
+}

+ 160
- 0
Searchbar/onsenui/css-components-src/src/components/util.css 查看文件

@@ -0,0 +1,160 @@
1
+
2
+:root {
3
+  --reset-font: {
4
+    font-family: -apple-system, 'Helvetica Neue', 'Helvetica', 'Arial', 'Lucida Grande', sans-serif;
5
+    -webkit-font-smoothing: antialiased;
6
+    -moz-osx-font-smoothing: grayscale;
7
+    font-weight: var(--font-weight);
8
+  }
9
+
10
+  --reset-box-model: {
11
+    box-sizing: border-box;
12
+    background-clip: padding-box;
13
+  }
14
+
15
+  --reset-base: {
16
+    padding: 0;
17
+    margin: 0;
18
+    font: inherit;
19
+    color: inherit;
20
+    background: transparent;
21
+    border: none;
22
+    line-height: normal;
23
+  }
24
+
25
+  --reset-input: {
26
+    @apply(--reset-box-model);
27
+    padding: 0;
28
+    margin: 0;
29
+    font: inherit;
30
+    color: inherit;
31
+    background: transparent;
32
+    border: none;
33
+    vertical-align: top;
34
+    outline: none;
35
+    line-height: 1;
36
+  }
37
+
38
+  --hide-input: {
39
+    position: absolute;
40
+    right: 0;
41
+    top: 0;
42
+    left: 0;
43
+    bottom: 0;
44
+    padding: 0;
45
+    border: 0;
46
+    background-color: transparent;
47
+    z-index: 1;
48
+    vertical-align: top;
49
+    outline: none;
50
+    width: 100%;
51
+    height: 100%;
52
+    margin: 0;
53
+    appearance: none;
54
+  }
55
+
56
+  --hide-input-parent: {
57
+    position: relative;
58
+  }
59
+
60
+  --reset-cursor: {
61
+    cursor: default;
62
+    user-select: none;
63
+  }
64
+
65
+  --reset-overflow: {
66
+    white-space: nowrap;
67
+    overflow: hidden;
68
+  }
69
+
70
+  --reset-container: {
71
+    @apply(--reset-box-model);
72
+    @apply(--reset-overflow);
73
+    word-spacing: 0;
74
+  }
75
+
76
+  --ellipsis: {
77
+    text-overflow: ellipsis;
78
+    white-space: nowrap;
79
+    overflow: hidden;
80
+  }
81
+
82
+  --disabled: {
83
+    opacity: 0.3;
84
+    cursor: default;
85
+    pointer-events: none;
86
+  }
87
+
88
+  --input: {
89
+    @apply(--reset-input);
90
+    @apply(--reset-font);
91
+  }
92
+
93
+  --transparent: {
94
+    border: none;
95
+    background-color: transparent;
96
+  }
97
+
98
+  @custom-media --retina-query (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx);
99
+
100
+  --material-font: {
101
+    font-family: 'Roboto', 'Noto', sans-serif;
102
+    -webkit-font-smoothing: antialiased;
103
+    font-weight: var(--material-font-weight);
104
+  }
105
+
106
+  --material-shadow-0: {
107
+    box-shadow: none;
108
+  }
109
+
110
+  --material-shadow-1: {
111
+    box-shadow:
112
+      0 2px 2px 0 rgba(0, 0, 0, 0.14),
113
+      0 1px 5px 0 rgba(0, 0, 0, 0.12),
114
+      0 3px 1px -2px rgba(0, 0, 0, 0.2);
115
+  }
116
+
117
+  --material-shadow-2: {
118
+    box-shadow:
119
+      0 4px 5px 0 rgba(0, 0, 0, 0.14),
120
+      0 1px 10px 0 rgba(0, 0, 0, 0.12),
121
+      0 2px 4px -1px rgba(0, 0, 0, 0.4);
122
+  }
123
+
124
+  --material-shadow-3: {
125
+    box-shadow:
126
+      0 6px 10px 0 rgba(0, 0, 0, 0.14),
127
+      0 1px 18px 0 rgba(0, 0, 0, 0.12),
128
+      0 3px 5px -1px rgba(0, 0, 0, 0.4);
129
+  }
130
+
131
+  --material-shadow-4: {
132
+    box-shadow:
133
+      0 8px 10px 1px rgba(0, 0, 0, 0.14),
134
+      0 3px 14px 2px rgba(0, 0, 0, 0.12),
135
+      0 5px 5px -3px rgba(0, 0, 0, 0.4);
136
+  }
137
+
138
+  --material-shadow-5: {
139
+    box-shadow:
140
+      0 16px 24px 2px rgba(0, 0, 0, 0.14),
141
+      0 6px 30px 5px rgba(0, 0, 0, 0.12),
142
+      0 8px 10px -5px rgba(0, 0, 0, 0.4);
143
+  }
144
+
145
+  --checkmark: {
146
+    content: '';
147
+    position: absolute;
148
+    top: 7px;
149
+    left: 4px;
150
+    opacity: 0;
151
+    width: 11px;
152
+    height: 4px;
153
+    background: transparent;
154
+    border: 2px solid var(--highlight-color);
155
+    border-top: none;
156
+    border-right: none;
157
+    border-radius: 0;
158
+    transform: rotate(-45deg);
159
+  }
160
+}

+ 5
- 0
Searchbar/onsenui/css-components-src/src/dark-onsen-css-components.css 查看文件

@@ -0,0 +1,5 @@
1
+
2
+@import url('./license.css');
3
+@import url('./dark-theme.css');
4
+@import url('./components/index.css');
5
+@import url('./iphonex-support/index.css');

+ 147
- 0
Searchbar/onsenui/css-components-src/src/dark-theme.css 查看文件

@@ -0,0 +1,147 @@
1
+
2
+:root {
3
+  /* variables for iOS components */
4
+  --background-color: #0d0d0d;
5
+  --text-color: #fff;
6
+  --sub-text-color: #999;
7
+  --highlight-color: #ffa101;
8
+  --second-highlight-color: #da5926;
9
+  --border-color: #242424;
10
+  --button-background-color: var(--highlight-color);
11
+  --button-cta-background-color: var(--second-highlight-color);
12
+  --button-light-color: white;
13
+  --toolbar-background-color: #181818;
14
+  --toolbar-button-color: var(--highlight-color);
15
+  --toolbar-text-color: #fff;
16
+  --toolbar-border-color: #242424;
17
+  --button-bar-color: var(--highlight-color);
18
+  --button-bar-active-text-color: #fff;
19
+  --button-bar-active-background-color: color(var(--button-bar-color) b(80%));
20
+  --segment-color: var(--highlight-color);
21
+  --segment-active-text-color: #fff;
22
+  --segment-active-background-color: color(var(--segment-color) b(80%));
23
+  --list-background-color: #181818;
24
+  --list-header-background-color: #111;
25
+  --list-tap-active-background-color: #262626;
26
+  --list-item-chevron-color: #383833;
27
+  --progress-bar-color: var(--highlight-color);
28
+  --progress-bar-secondary-color: color(var(--progress-bar-color) b(55%));
29
+  --progress-bar-background-color: transparent;
30
+  --progress-circle-primary-color: var(--progress-bar-color);
31
+  --progress-circle-secondary-color: color(var(--progress-bar-secondary-color) b(55%));
32
+  --progress-circle-background-color: transparent;
33
+  --tabbar-background-color: #212121;
34
+  --tabbar-text-color: #aaa;
35
+  --tabbar-highlight-text-color: var(--highlight-color);
36
+  --tabbar-border-color: #0d0d0d;
37
+  --switch-highlight-color: #44db5e;
38
+  --switch-border-color: #666;
39
+  --switch-background-color: var(--background-color);
40
+  --range-track-background-color: #6b6f74;
41
+  --range-track-background-color-active: #bbb;
42
+  --range-thumb-background-color: #fff;
43
+  --modal-background-color: color(black a(70%));
44
+  --modal-text-color: #fff;
45
+  --alert-dialog-background-color: #f4f4f4;
46
+  --alert-dialog-text-color: #1f1f21;
47
+  --alert-dialog-button-color: var(--highlight-color);
48
+  --alert-dialog-separator-color: #ddd;
49
+  --dialog-background-color: #0d0d0d;
50
+  --dialog-text-color: #1f1f21;
51
+  --popover-background-color: #242424;
52
+  --popover-text-color: var(--text-color);
53
+  --action-sheet-title-color: #8f8e94;
54
+  --action-sheet-button-separator-color: rgba(0, 0, 0, 0.1);
55
+  --action-sheet-button-color: var(--highlight-color);
56
+  --action-sheet-button-destructive-color: #fe3824;
57
+  --action-sheet-button-background-color: rgba(255, 255, 255, 0.9);
58
+  --action-sheet-button-active-background-color: #e9e9e9;
59
+  --action-sheet-cancel-button-background-color: #fff;
60
+  --notification-background-color: #fe3824;
61
+  --notification-color: white;
62
+  --search-input-background-color: color(white a(9%));
63
+  --fab-text-color: #ffffff;
64
+  --fab-background-color: var(--highlight-color);
65
+  --fab-active-background-color: color(var(--fab-background-color) a(70%));
66
+  --card-background-color: var(--border-color);
67
+  --card-text-color: var(--text-color);
68
+  --toast-background-color: #ccc;
69
+  --toast-text-color: #000;
70
+  --toast-button-text-color: #000;
71
+  --select-input-color: var(--text-color);
72
+  --select-input-border-color: var(--border-color);
73
+
74
+  /* variables for Material Design components */
75
+  --material-background-color: #303030;
76
+  --material-text-color: #ffffff;
77
+  --material-notification-background-color: #f50057;
78
+  --material-notification-color: white;
79
+  --material-switch-active-thumb-color: #ffc107;
80
+  --material-switch-active-background-color: color(var(--material-switch-active-thumb-color) a(50%));
81
+  --material-switch-inactive-thumb-color: #bdbdbd;
82
+  --material-switch-inactive-background-color: color(white a(30%));
83
+  --material-range-track-color: #525252;
84
+  --material-range-thumb-color: #cecec5;
85
+  --material-range-disabled-thumb-color: #4f4f4f;
86
+  --material-range-disabled-thumb-border-color: #303030;
87
+  --material-range-zero-thumb-color: #0d0d0d;
88
+  --material-toolbar-background-color: #212121;
89
+  --material-toolbar-text-color: #ffffff;
90
+  --material-toolbar-button-color: var(--toolbar-button-color);
91
+  --material-segment-background-color: #292929;
92
+  --material-segment-active-background-color: #404040;
93
+  --material-segment-text-color: color(#fff a(62%));
94
+  --material-segment-active-text-color: #cacaca;
95
+  --material-button-background-color: #d68600;
96
+  --material-button-text-color: #ffffff;
97
+  --material-button-disabled-background-color: color(#b0b0b0 a(74%));
98
+  --material-button-disabled-color: color(white a(74%));
99
+  --material-flat-button-active-background-color: color(#666666 a(20%));
100
+  --material-list-background-color: color(var(--material-background-color) l(+2%));
101
+  --material-list-item-separator-color: color(white a(12%));
102
+  --material-list-header-text-color: #8a8a8a;
103
+  --material-checkbox-active-color: #fff;
104
+  --material-checkbox-inactive-color: #717171;
105
+  --material-checkbox-checkmark-color: #000;
106
+  --material-radio-button-active-color: #ffa101;
107
+  --material-radio-button-inactive-color: #8e8e8e;
108
+  --material-radio-button-disabled-color: #505050;
109
+  --material-text-input-text-color: color(#fff a(75%));
110
+  --material-text-input-active-color: color(#fff a(75%));
111
+  --material-text-input-inactive-color: color(#fff a(30%));
112
+  --material-search-background-color: #424242;
113
+  --material-dialog-background-color: #424242;
114
+  --material-dialog-text-color: var(--material-text-color);
115
+  --material-alert-dialog-background-color: #424242;
116
+  --material-alert-dialog-title-color: white;
117
+  --material-alert-dialog-content-color: color(var(--material-alert-dialog-title-color) a(85%));
118
+  --material-alert-dialog-button-color: #d68600;
119
+  --material-progress-bar-primary-color: #d68600;
120
+  --material-progress-bar-secondary-color: color(var(--material-progress-bar-primary-color) b(55%));
121
+  --material-progress-bar-background-color: transparent;
122
+  --material-progress-circle-primary-color: var(--material-progress-bar-primary-color);
123
+  --material-progress-circle-secondary-color: var(--material-progress-bar-secondary-color);
124
+  --material-progress-circle-background-color: transparent;
125
+  --material-tabbar-background-color: var(--material-toolbar-background-color);
126
+  --material-tabbar-text-color: color(var(--material-toolbar-text-color) a(50%));
127
+  --material-tabbar-highlight-text-color: var(--material-toolbar-text-color);
128
+  --material-tabbar-highlight-color: color(var(--material-toolbar-background-color) l(+3%));
129
+  --material-fab-text-color: #31313a;
130
+  --material-fab-background-color: #ffffff;
131
+  --material-fab-active-background-color: color(white a(75%));
132
+  --material-card-background-color: #424242;
133
+  --material-card-text-color: color(white a(46%));
134
+  --material-toast-background-color: #ccc;
135
+  --material-toast-text-color: #000;
136
+  --material-toast-button-text-color: #583905;
137
+  --material-select-input-color: var(--material-text-color);
138
+  --material-select-input-active-color: color(white a(85%));
139
+  --material-select-input-inactive-color: color(white a(19%));
140
+  --material-select-border-color: color(white a(88%));
141
+  --material-popover-background-color: var(--material-alert-dialog-background-color);
142
+  --material-popover-text-color: var(--material-text-color);
143
+  --material-action-sheet-text-color: #686868;
144
+
145
+  /* others */
146
+  --tap-highlight-color: transparent;
147
+}

+ 20
- 0
Searchbar/onsenui/css-components-src/src/img/android-search-input-icon.svg 查看文件

@@ -0,0 +1,20 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+    <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+    <title>Shape</title>
5
+    <desc>Created with Sketch.</desc>
6
+    <defs></defs>
7
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+        <g id="android-search-input-icon" fill-rule="nonzero" fill="#898989">
9
+            <g id="components">
10
+                <g id="material-search">
11
+                    <g id="search">
12
+                        <g id="Material/Icons-black/search">
13
+                            <path d="M12.502,6.491 L11.708,6.491 L11.432,6.765 C12.407,7.902 13,9.376 13,10.991 C13,14.581 10.09,17.491 6.5,17.491 C2.91,17.491 0,14.581 0,10.991 C0,7.401 2.91,4.491 6.5,4.491 C8.115,4.491 9.588,5.083 10.725,6.057 L11.001,5.783 L11.001,4.991 L15.999,0 L17.49,1.491 L12.502,6.491 L12.502,6.491 Z M6.5,6.491 C4.014,6.491 2,8.505 2,10.991 C2,13.476 4.014,15.491 6.5,15.491 C8.985,15.491 11,13.476 11,10.991 C11,8.505 8.985,6.491 6.5,6.491 L6.5,6.491 Z" id="Shape" transform="translate(8.745000, 8.745500) scale(-1, 1) rotate(-180.000000) translate(-8.745000, -8.745500) "></path>
14
+                        </g>
15
+                    </g>
16
+                </g>
17
+            </g>
18
+        </g>
19
+    </g>
20
+</svg>

+ 14
- 0
Searchbar/onsenui/css-components-src/src/img/ios-search-input-icon.svg 查看文件

@@ -0,0 +1,14 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<svg width="13px" height="14px" viewBox="0 0 13 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+    <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
4
+    <title>ios-search-input-icon</title>
5
+    <desc>Created with Sketch.</desc>
6
+    <defs></defs>
7
+    <g id="components" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+        <g id="ios-search-input" transform="translate(-48.000000, -43.000000)" fill="#7A797B">
9
+            <g id="Group" transform="translate(40.000000, 36.000000)">
10
+                <path d="M16.9972482,15.5041466 C17.0773657,15.5405938 17.1522731,15.5916129 17.2177516,15.6570914 L20.649991,19.0893308 C20.9448449,19.3841847 20.9484764,19.858606 20.6535412,20.1535412 C20.360648,20.4464344 19.8812716,20.4419317 19.5893308,20.149991 L16.1570914,16.7177516 C16.09137,16.6520301 16.0401171,16.5773874 16.0034141,16.4977995 C15.1671694,17.1270411 14.1271393,17.5 13,17.5 C10.2385763,17.5 8,15.2614237 8,12.5 C8,9.73857625 10.2385763,7.5 13,7.5 C15.7614237,7.5 18,9.73857625 18,12.5 C18,13.6274685 17.6268232,14.6677768 16.9972482,15.5041466 Z M13,16.5 C15.209139,16.5 17,14.709139 17,12.5 C17,10.290861 15.209139,8.5 13,8.5 C10.790861,8.5 9,10.290861 9,12.5 C9,14.709139 10.790861,16.5 13,16.5 Z" id="ios-search-input-icon"></path>
11
+            </g>
12
+        </g>
13
+    </g>
14
+</svg>

+ 16
- 0
Searchbar/onsenui/css-components-src/src/img/select-arrow.svg 查看文件

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<svg width="10px" height="5px" viewBox="0 0 10 5" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+    <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+    <title>select-allow</title>
5
+    <desc>Created with Sketch.</desc>
6
+    <defs></defs>
7
+    <g id="select" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+        <g id="ios-select" transform="translate(-198.000000, -114.000000)" fill="#757575">
9
+            <g id="menu-bar-+-open-menu" transform="translate(123.000000, 100.000000)">
10
+                <g id="menu-bar">
11
+                    <polygon id="select-allow" points="75 14 80 19 85 14"></polygon>
12
+                </g>
13
+            </g>
14
+        </g>
15
+    </g>
16
+</svg>

+ 14
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/action-sheet.css 查看文件

@@ -0,0 +1,14 @@
1
+@media (orientation: portrait) {
2
+  html[onsflag-iphonex-portrait] .action-sheet {
3
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-portrait) + 14px); /* bottom safe area + 14 pt (extra bottom margin) */
4
+  }
5
+}
6
+
7
+@media (orientation: landscape) {
8
+  html[onsflag-iphonex-landscape] .action-sheet {
9
+    /* The width in landscape mode is the same as the width in portrait mode */
10
+    left: calc((100vw - (100vh + 20px)) / 2);
11
+    right: calc((100vw - (100vh + 20px)) / 2);
12
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-landscape) + 12px); /* bottom safe area + 12 pt (extra bottom margin) */
13
+  }
14
+}

+ 318
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/combination.css 查看文件

@@ -0,0 +1,318 @@
1
+/*
2
+  Note:
3
+
4
+  :not(X) does not work if X is a complex selector like `.foo .bar` due to the spec of :not(X).
5
+  Instead we have to use the following form for representing A:not(X A):not(Y A):not(Z A),
6
+  which means `A which does not have any X, Y and Z as its ancestors`.
7
+
8
+  // Equivalent to A:not(X A):not(Y A):not(Z A) { foo: bar; }
9
+  A {
10
+    // Apply styles for A
11
+    foo: bar;
12
+  }
13
+  X A,
14
+  Y A,
15
+  Z A {
16
+    // Subtract `X A`, `Y A` and `Z A`
17
+    // (Restore original styles of A)
18
+  }
19
+*/
20
+
21
+/*
22
+  Note:
23
+
24
+  @apply has been deprecated as of Oct, 2017.
25
+  Please do not use @apply to restore original styles.
26
+*/
27
+
28
+/* Bars and page contents */
29
+@media (orientation: portrait) {
30
+  /* Outermost toolbar */
31
+  html[onsflag-iphonex-portrait] .toolbar {
32
+    top: 0;
33
+    box-sizing: content-box;
34
+    padding-top: var(--iphonex-safe-area-inset-top-portrait);
35
+  }
36
+  /* Non-outermost */
37
+  html[onsflag-iphonex-portrait] .dialog .toolbar, /* if wrapped with dialogs */
38
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .toolbar, /* if wrapped with a page with a toolbar */
39
+  html[onsflag-iphonex-portrait] .tabbar--top__content .toolbar { /* if wrapped with a top tabbar */
40
+    /* Restore original styles */
41
+    top: 0;
42
+    box-sizing: border-box;
43
+    padding-top: 0;
44
+  }
45
+
46
+  /* Outermost bottom-bar */
47
+  html[onsflag-iphonex-portrait] .bottom-bar {
48
+    bottom: 0;
49
+    box-sizing: content-box;
50
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-portrait);
51
+  }
52
+  /* Non-outermost */
53
+  html[onsflag-iphonex-portrait] .dialog .bottom-bar, /* if wrapped with dialogs */
54
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content .bottom-bar, /* if wrapped with a page with a bottom-bar */
55
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) .bottom-bar { /* if wrapped with a bottom tabbar */
56
+    /* Restore original styles */
57
+    bottom: 0;
58
+    box-sizing: border-box;
59
+    padding-bottom: 0;
60
+  }
61
+
62
+  /* Outermost page__content without toolbars or bottom-bars */
63
+  html[onsflag-iphonex-portrait] .page__content {
64
+    top: 0;
65
+    padding-top: var(--iphonex-safe-area-inset-top-portrait);
66
+    bottom: 0;
67
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-portrait);
68
+  }
69
+  /* Non-outermost */
70
+  html[onsflag-iphonex-portrait] .dialog .page__content, /* if wrapped with dialogs */
71
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .page__content, /* if wrapped with a page with a toolbar */
72
+  html[onsflag-iphonex-portrait] .tabbar--top__content .page__content, /* if wrapped with a top tabbar */
73
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content { /* if the page has a toolbar */
74
+    /* Restore original styles */
75
+    top: 0;
76
+    padding-top: 0;
77
+  }
78
+  html[onsflag-iphonex-portrait] .dialog .page__content, /* if wrapped with dialogs */
79
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content .page__content, /* if wrapped with a page with a bottom-bar */
80
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) .page__content, /* if wrapped with a bottom tabbar */
81
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content { /* if the page has a bottom-bar */
82
+    /* Restore original styles */
83
+    bottom: 0;
84
+    padding-bottom: 0;
85
+  }
86
+
87
+  /* Outermost page__content with a toolbar */
88
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background,
89
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content {
90
+    top: calc(var(--iphonex-safe-area-inset-top-portrait) + var(--toolbar-height));
91
+    padding-top: 0;
92
+  }
93
+  /* Non-outermost */
94
+  html[onsflag-iphonex-portrait] .dialog .toolbar:not(.toolbar--cover-content)+.page__background,
95
+  html[onsflag-iphonex-portrait] .dialog .toolbar:not(.toolbar--cover-content)+.page__background+.page__content, /* if wrapped with dialogs */
96
+
97
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .toolbar:not(.toolbar--cover-content)+.page__background,
98
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .toolbar:not(.toolbar--cover-content)+.page__background+.page__content, /* if wrapped with a page with a toolbar */
99
+
100
+  html[onsflag-iphonex-portrait] .tabbar--top__content .toolbar:not(.toolbar--cover-content)+.page__background,
101
+  html[onsflag-iphonex-portrait] .tabbar--top__content .toolbar:not(.toolbar--cover-content)+.page__background+.page__content { /* if wrapped with a top tabbar */
102
+    /* Restore original styles */
103
+    top: var(--toolbar-height);
104
+    padding-top: 0;
105
+  }
106
+
107
+  /* Outermost page__content with a bottom-bar */
108
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content {
109
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-portrait) + var(--toolbar-height));
110
+    padding-bottom: 0;
111
+  }
112
+  /* Non-outermost */
113
+  html[onsflag-iphonex-portrait] .dialog .page-with-bottom-toolbar > .page__content, /* if wrapped with dialogs */
114
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content .page-with-bottom-toolbar > .page__content, /* if wrapped with a page with a bottom-bar */
115
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) .page-with-bottom-toolbar > .page__content { /* if wrapped with a bottom tabbar */
116
+    /* Restore original styles */
117
+    bottom: var(--toolbar-height);
118
+    padding-bottom: 0;
119
+  }
120
+
121
+  /* Outermost page__content with a transparent cover-content toolbar and its direct descendant page_content */
122
+  html[onsflag-iphonex-portrait] .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content,
123
+  html[onsflag-iphonex-portrait] .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page_content {
124
+    top: 0;
125
+    padding-top: calc(var(--iphonex-safe-area-inset-top-portrait) + var(--toolbar-height));
126
+  }
127
+  /* Non-outermost */
128
+  html[onsflag-iphonex-portrait] .dialog .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content, /* if wrapped with dialogs */
129
+  html[onsflag-iphonex-portrait] .dialog .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page_content,
130
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content, /* if wrapped with a page with a toolbar */
131
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page__content,
132
+  html[onsflag-iphonex-portrait] .tabbar--top__content .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content,
133
+  html[onsflag-iphonex-portrait] .tabbar--top__content .toolbar.toolbar--transparent.toolbar--cover-content+.page__background+.page__content .page_content {  /* if wrapped with a top tabbar */
134
+    /* Restore original styles */
135
+    top: 0;
136
+    padding-top: var(--toolbar-height);
137
+  }
138
+
139
+  /* Outermost top tabbar */
140
+  html[onsflag-iphonex-portrait] .tabbar--top {
141
+    padding-top: var(--iphonex-safe-area-inset-top-portrait);
142
+  }
143
+  /* Non-outermost */
144
+  html[onsflag-iphonex-portrait] .dialog .tabbar--top, /* if wrapped with dialogs */
145
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .tabbar--top, /* if wrapped with a page with a toolbar */
146
+  html[onsflag-iphonex-portrait] .tabbar--top__content .tabbar--top { /* if wrapped with a top tabbar */
147
+    /* Restore original styles */
148
+    padding-top: 0;
149
+  }
150
+
151
+  /* Outermost tabbar--top__content */
152
+  html[onsflag-iphonex-portrait] .tabbar--top__content {
153
+    top: calc(var(--iphonex-safe-area-inset-top-portrait) + var(--tabbar-height));
154
+  }
155
+  /* Non-outermost */
156
+  html[onsflag-iphonex-portrait] .dialog .tabbar--top__content, /* if wrapped with dialogs */
157
+  html[onsflag-iphonex-portrait] .toolbar:not(.toolbar--cover-content)+.page__background+.page__content .tabbar--top__content, /* if wrapped with a page with a toolbar */
158
+  html[onsflag-iphonex-portrait] .tabbar--top__content .tabbar--top__content { /* if wrapped with a top tabbar */
159
+    /* Restore original styles */
160
+    top: var(--tabbar-height);
161
+  }
162
+
163
+  /* Outermost bottom tabbar */
164
+  html[onsflag-iphonex-portrait] .tabbar:not(.tabbar--top):not(.tabbar--top) {
165
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-portrait);
166
+  }
167
+  /* Non-outermost */
168
+  html[onsflag-iphonex-portrait] .dialog .tabbar:not(.tabbar--top):not(.tabbar--top), /* if wrapped with dialogs */
169
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content .tabbar:not(.tabbar--top), /* if wrapped with a page with a bottom-bar */
170
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) .tabbar:not(.tabbar--top) { /* if wrapped with a bottom tabbar */
171
+    /* Restore original styles */
172
+    padding-bottom: 0;
173
+  }
174
+
175
+  /* Outermost.tabbar__content:not(.tabbar--top__content) */
176
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) {
177
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-portrait) + var(--tabbar-height));
178
+  }
179
+  /* Non-outermost */
180
+  html[onsflag-iphonex-portrait] .dialog .tabbar__content:not(.tabbar--top__content), /* if wrapped with dialogs */
181
+  html[onsflag-iphonex-portrait] .page-with-bottom-toolbar > .page__content .tabbar__content:not(.tabbar--top__content), /* if wrapped with a page with a bottom-bar */
182
+  html[onsflag-iphonex-portrait] .tabbar__content:not(.tabbar--top__content) .tabbar__content:not(.tabbar--top__content) { /* if wrapped with a bottom tabbar */
183
+    /* Restore original styles */
184
+    bottom: var(--tabbar-height);
185
+  }
186
+}
187
+@media (orientation: landscape) {
188
+  /* Outermost bottom-bar */
189
+  html[onsflag-iphonex-landscape] .bottom-bar {
190
+    bottom: 0;
191
+    box-sizing: content-box;
192
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-landscape);
193
+  }
194
+  /* Non-outermost */
195
+  html[onsflag-iphonex-landscape] .dialog .bottom-bar, /* if wrapped with dialogs */
196
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content .bottom-bar, /* if wrapped with a page with a bottom-bar */
197
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) .bottom-bar { /* if wrapped with a bottom tabbar */
198
+    /* Restore original styles */
199
+    bottom: 0;
200
+    box-sizing: border-box;
201
+    padding-bottom: 0;
202
+  }
203
+
204
+  /* Outermost page__content without bottom-bars */
205
+  html[onsflag-iphonex-landscape] .page__content {
206
+    bottom: 0;
207
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-landscape);
208
+  }
209
+  /* Non-outermost */
210
+  html[onsflag-iphonex-landscape] .dialog .page__content, /* if wrapped with dialogs */
211
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content .page__content, /* if wrapped with a page with a bottom-bar */
212
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) .page__content, /* if wrapped with a bottom tabbar */
213
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content { /* if the page has a bottom-bar */
214
+    /* Restore original styles */
215
+    bottom: 0;
216
+    padding-bottom: 0;
217
+  }
218
+
219
+  /* Outermost page__content with a bottom-bar */
220
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content {
221
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-landscape) + var(--toolbar-height));
222
+    padding-bottom: 0;
223
+  }
224
+  /* Non-outermost */
225
+  html[onsflag-iphonex-landscape] .dialog .page-with-bottom-toolbar > .page__content, /* if wrapped with dialogs */
226
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content .page-with-bottom-toolbar > .page__content, /* if wrapped with a page with a bottom-bar */
227
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) .page-with-bottom-toolbar > .page__content { /* if wrapped with a bottom tabbar */
228
+    /* Restore original styles */
229
+    bottom: var(--toolbar-height);
230
+    padding-bottom: 0;
231
+  }
232
+
233
+  /* Outermost bottom tabbar */
234
+  html[onsflag-iphonex-landscape] .tabbar:not(.tabbar--top) {
235
+    padding-bottom: var(--iphonex-safe-area-inset-bottom-landscape);
236
+  }
237
+  /* Non-outermost */
238
+  html[onsflag-iphonex-landscape] .dialog .tabbar:not(.tabbar--top), /* if wrapped with dialogs */
239
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content .tabbar:not(.tabbar--top), /* if wrapped with a page with a bottom-bar */
240
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) .tabbar:not(.tabbar--top) { /* if wrapped with a bottom tabbar */
241
+    /* Restore original styles */
242
+    padding-bottom: 0;
243
+  }
244
+
245
+  /* Outermost.tabbar__content:not(.tabbar--top__content) */
246
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) {
247
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-landscape) + var(--tabbar-height));
248
+  }
249
+  /* Non-outermost */
250
+  html[onsflag-iphonex-landscape] .dialog .tabbar__content:not(.tabbar--top__content), /* if wrapped with dialogs */
251
+  html[onsflag-iphonex-landscape] .page-with-bottom-toolbar > .page__content .tabbar__content:not(.tabbar--top__content), /* if wrapped with a page with a bottom-bar */
252
+  html[onsflag-iphonex-landscape] .tabbar__content:not(.tabbar--top__content) .tabbar__content:not(.tabbar--top__content) { /* if wrapped with a bottom tabbar */
253
+    /* Restore original styles */
254
+    bottom: var(--tabbar-height);
255
+  }
256
+}
257
+
258
+/* Lists in .page__content */
259
+@media (orientation: landscape) {
260
+  /* Only patching lists just under .page__content */
261
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) {
262
+    margin-left: calc(- var(--iphonex-safe-area-inset-left-landscape));
263
+    margin-right: calc(- var(--iphonex-safe-area-inset-right-landscape));
264
+  }
265
+
266
+  /* For left safe area */
267
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-header {
268
+    padding-left: calc(var(--iphonex-safe-area-inset-left-landscape) + 15px);
269
+  }
270
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-item {
271
+    /* margin-left is not suitable for iPhone X patch. Using padding-left here. */
272
+    padding-left: calc(var(--iphonex-safe-area-inset-left-landscape) + 14px);
273
+  }
274
+
275
+  /* For right safe area */
276
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-item--chevron:before {
277
+    right: calc(var(--iphonex-safe-area-inset-right-landscape) + 16px);
278
+  }
279
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-item > .list-item__center:last-child {
280
+    padding-right: calc(var(--iphonex-safe-area-inset-right-landscape) + 6px);
281
+  }
282
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-item > .list-item__right {
283
+    padding-right: calc(var(--iphonex-safe-area-inset-right-landscape) + 12px);
284
+  }
285
+  html[onsflag-iphonex-landscape] .page__content > .list:not(.list--inset) > .list-item > .list-item--chevron__right {
286
+    padding-right: calc(var(--iphonex-safe-area-inset-right-landscape) + 30px);
287
+  }
288
+}
289
+/* Lists in .page__content in dialogs and modals */
290
+@media (orientation: landscape) {
291
+  /* Only patching lists just under .page__content */
292
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) {
293
+    margin-left: 0;
294
+    margin-right: 0;
295
+  }
296
+
297
+  /* For left safe area */
298
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-header {
299
+    padding-left: 15px;
300
+  }
301
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-item {
302
+    padding-left: 14px;
303
+  }
304
+
305
+  /* For right safe area */
306
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-item--chevron:before {
307
+    right: 16px;
308
+  }
309
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-item > .list-item__center:last-child {
310
+    padding-right: 6px;
311
+  }
312
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-item > .list-item__right {
313
+    padding-right: 12px;
314
+  }
315
+  html[onsflag-iphonex-landscape] .dialog .page__content > .list:not(.list--inset) > .list-item > .list-item--chevron__right {
316
+    padding-right: 30px;
317
+  }
318
+}

+ 36
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/fab.css 查看文件

@@ -0,0 +1,36 @@
1
+@media (orientation: portrait) {
2
+  /* For top safe area */
3
+  html[onsflag-iphonex-portrait] .fab--top__left,
4
+  html[onsflag-iphonex-portrait] .fab--top__center,
5
+  html[onsflag-iphonex-portrait] .fab--top__right {
6
+    top: calc(var(--iphonex-safe-area-inset-top-portrait) + 20px);
7
+  }
8
+
9
+  /* For bottom safe area */
10
+  html[onsflag-iphonex-portrait] .fab--bottom__left,
11
+  html[onsflag-iphonex-portrait] .fab--bottom__center,
12
+  html[onsflag-iphonex-portrait] .fab--bottom__right {
13
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-portrait)); /* Omit 20px space */
14
+  }
15
+}
16
+
17
+@media (orientation: landscape) {
18
+  /* For bottom safe area */
19
+  html[onsflag-iphonex-landscape] .fab--bottom__left,
20
+  html[onsflag-iphonex-landscape] .fab--bottom__center,
21
+  html[onsflag-iphonex-landscape] .fab--bottom__right {
22
+    bottom: calc(var(--iphonex-safe-area-inset-bottom-landscape)); /* Omit 20px space */
23
+  }
24
+  
25
+  /* For left safe area */
26
+  html[onsflag-iphonex-landscape] .fab--top__left,
27
+  html[onsflag-iphonex-landscape] .fab--bottom__left {
28
+    left: calc(var(--iphonex-safe-area-inset-left-landscape)); /* Omit 20px space */
29
+  }
30
+
31
+  /* For right safe area */
32
+  html[onsflag-iphonex-landscape] .fab--top__right,
33
+  html[onsflag-iphonex-landscape] .fab--bottom__right {
34
+    right: calc(var(--iphonex-safe-area-inset-right-landscape)); /* Omit 20px space */
35
+  }
36
+}

+ 11
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/global.css 查看文件

@@ -0,0 +1,11 @@
1
+:root {
2
+  --iphonex-safe-area-inset-top-portrait: 44px;
3
+  --iphonex-safe-area-inset-right-portrait: 0;
4
+  --iphonex-safe-area-inset-bottom-portrait: 34px;
5
+  --iphonex-safe-area-inset-left-portrait: 0;
6
+
7
+  --iphonex-safe-area-inset-top-landscape: 0;
8
+  --iphonex-safe-area-inset-right-landscape: 44px;
9
+  --iphonex-safe-area-inset-bottom-landscape: 21px;
10
+  --iphonex-safe-area-inset-left-landscape: 44px;
11
+}

+ 30
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/index.css 查看文件

@@ -0,0 +1,30 @@
1
+@import './global.css';
2
+/* @import './util.css'; */
3
+@import './page.css';
4
+/* @import './switch.css'; */
5
+/* @import './range.css'; */
6
+/* @import './notification.css'; */
7
+@import './toolbar.css';
8
+/* @import './button.css'; */
9
+/* @import './button-bar.css'; */
10
+/* @import './segment.css'; */
11
+@import './tabbar.css';
12
+/* @import './toolbar-button.css'; */
13
+/* @import './checkbox.css'; */
14
+/* @import './radio-button.css'; */
15
+/* @import './list.css'; */
16
+/* @import './search-input.css'; */
17
+/* @import './text-input.css'; */
18
+/* @import './textarea.css'; */
19
+/* @import './dialog.css'; */
20
+/* @import './alert-dialog.css'; */
21
+/* @import './popover.css'; */
22
+/* @import './progress-bar.css'; */
23
+/* @import './progress-circular.css'; */
24
+@import './fab.css';
25
+/* @import './modal.css'; */
26
+/* @import './select.css'; */
27
+@import './action-sheet.css';
28
+/* @import './card.css'; */
29
+@import './toast.css';
30
+@import './combination.css'; /* non BEM */

+ 12
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/page.css 查看文件

@@ -0,0 +1,12 @@
1
+@media (orientation: landscape) {
2
+  html[onsflag-iphonex-landscape] .page__content {
3
+    padding-left: var(--iphonex-safe-area-inset-left-landscape);
4
+    padding-right: var(--iphonex-safe-area-inset-right-landscape);
5
+  }
6
+  /* Ignore if the page is in dialogs or modals */
7
+  html[onsflag-iphonex-landscape] .dialog .page__content,
8
+  html[onsflag-iphonex-landscape] .modal .page__content {
9
+    padding-left: 0;
10
+    padding-right: 0;
11
+  }
12
+}

+ 7
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/tabbar.css 查看文件

@@ -0,0 +1,7 @@
1
+@media (orientation: landscape) {
2
+  html[onsflag-iphonex-landscape] .tabbar {
3
+    padding-left: var(--iphonex-safe-area-inset-left-landscape);
4
+    padding-right: var(--iphonex-safe-area-inset-right-landscape);
5
+    width: calc(100% - var(--iphonex-safe-area-inset-left-landscape) - var(--iphonex-safe-area-inset-right-landscape));
6
+  }
7
+}

+ 13
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/toast.css 查看文件

@@ -0,0 +1,13 @@
1
+@media (orientation: portrait) {
2
+  html[onsflag-iphonex-portrait] .toast {
3
+    bottom: var(--iphonex-safe-area-inset-bottom-portrait);
4
+  }
5
+}
6
+
7
+@media (orientation: landscape) {
8
+  html[onsflag-iphonex-landscape] .toast {
9
+    left: calc(var(--iphonex-safe-area-inset-left-landscape) + 8px);
10
+    right: calc(var(--iphonex-safe-area-inset-right-landscape) + 8px);
11
+    bottom: var(--iphonex-safe-area-inset-bottom-landscape);
12
+  }
13
+}

+ 14
- 0
Searchbar/onsenui/css-components-src/src/iphonex-support/toolbar.css 查看文件

@@ -0,0 +1,14 @@
1
+@media (orientation: landscape) {
2
+  html[onsflag-iphonex-landscape] .toolbar__left {
3
+    padding-left: var(--iphonex-safe-area-inset-left-landscape);
4
+  }
5
+
6
+  html[onsflag-iphonex-landscape] .toolbar__right {
7
+    padding-right: var(--iphonex-safe-area-inset-right-landscape);
8
+  }
9
+
10
+  html[onsflag-iphonex-landscape] .bottom-bar {
11
+    padding-right: var(--iphonex-safe-area-inset-right-landscape);
12
+    padding-left: var(--iphonex-safe-area-inset-left-landscape);
13
+  }
14
+}

+ 32
- 0
Searchbar/onsenui/css-components-src/src/license.css 查看文件

@@ -0,0 +1,32 @@
1
+/*!
2
+ * Copyright 2013-2017 ASIAL CORPORATION
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ *    http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+/*!
18
+ * Copyright 2012 Adobe Systems Inc.;
19
+ *
20
+ * Licensed under the Apache License, Version 2.0 (the "License");
21
+ * you may not use this file except in compliance with the License.
22
+ * You may obtain a copy of the License at
23
+ *
24
+ * http://www.apache.org/licenses/LICENSE-2.0
25
+ *
26
+ * Unless required by applicable law or agreed to in writing, software
27
+ * distributed under the License is distributed on an "AS IS" BASIS,
28
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
+ * See the License for the specific language governing permissions and
30
+ * limitations under the License.
31
+ *
32
+ */

+ 5
- 0
Searchbar/onsenui/css-components-src/src/old-onsen-css-components.css 查看文件

@@ -0,0 +1,5 @@
1
+
2
+@import url('./license.css');
3
+@import url('./old-theme.css');
4
+@import url('./components/index.css');
5
+@import url('./iphonex-support/index.css');

+ 150
- 0
Searchbar/onsenui/css-components-src/src/old-theme.css 查看文件

@@ -0,0 +1,150 @@
1
+
2
+:root {
3
+  /* variables for iOS components */
4
+  --background-color: #f9f9f9;
5
+  --text-color: #1f1f21;
6
+  --sub-text-color: #999;
7
+  --highlight-color: rgba(24, 103, 194, 0.81);
8
+  --second-highlight-color: #25a6d9;
9
+  --border-color: #ccc;
10
+  --button-background-color: var(--highlight-color);
11
+  --button-cta-background-color: var(--second-highlight-color);
12
+  --toolbar-background-color: #fff;
13
+  --toolbar-button-color: rgba(38, 100, 171, 0.81);
14
+  --toolbar-text-color: #1f1f21;
15
+  --toolbar-border-color: #bbb;
16
+  --button-bar-color: rgba(18, 114, 224, 0.77);
17
+  --button-bar-active-text-color: #fff;
18
+  --button-bar-active-background-color: color(var(--button-bar-color) tint(70%));
19
+  --button-light-color: black;
20
+  --segment-color: rgba(18, 114, 224, 0.77);
21
+  --segment-active-text-color: #fff;
22
+  --segment-active-background-color: color(var(--segment-color) tint(70%));
23
+  --list-background-color: #fff;
24
+  --list-header-background-color: #eee;
25
+  --list-tap-active-background-color: #d9d9d9;
26
+  --list-item-chevron-color: #c7c7cc;
27
+  --progress-bar-color: rgba(24, 103, 194, 0.81);
28
+  --progress-bar-secondary-color: rgba(24, 103, 194, 0.4);
29
+  --progress-bar-background-color: #b6b6b6;
30
+  --progress-circle-primary-color: rgba(24, 103, 194, 0.81);
31
+  --progress-circle-secondary-color: rgba(24, 103, 194, 0.81);
32
+  --progress-circle-background-color: #ddd;
33
+  --tabbar-background-color: #fff;
34
+  --tabbar-text-color: #999;
35
+  --tabbar-highlight-text-color: rgba(24, 103, 194, 0.81);
36
+  --tabbar-border-color: #ccc;
37
+  --switch-highlight-color: #5198db;
38
+  --switch-border-color: #e5e5e5;
39
+  --switch-background-color: white;
40
+  --range-track-background-color: #a4aab3;
41
+  --range-track-background-color-active: var(--highlight-color);
42
+  --range-thumb-background-color: #fff;
43
+  --modal-background-color: rgba(0, 0, 0, 0.7);
44
+  --modal-text-color: #fff;
45
+  --alert-dialog-background-color: #f4f4f4;
46
+  --alert-dialog-text-color: #1f1f21;
47
+  --alert-dialog-button-color: rgba(24, 103, 194, 0.81);
48
+  --alert-dialog-separator-color: #ddd;
49
+  --dialog-background-color: #f4f4f4;
50
+  --dialog-text-color: var(--text-color);
51
+  --popover-background-color: white;
52
+  --popover-text-color: #1f1f21;
53
+  --action-sheet-title-color: #8f8e94;
54
+  --action-sheet-button-separator-color: rgba(0, 0, 0, 0.1);
55
+  --action-sheet-button-color: var(--highlight-color);
56
+  --action-sheet-button-destructive-color: #fe3824;
57
+  --action-sheet-button-background-color: rgba(255, 255, 255, 0.9);
58
+  --action-sheet-button-active-background-color: #e9e9e9;
59
+  --action-sheet-cancel-button-background-color: #fff;
60
+  --notification-background-color: #dc5236;
61
+  --notification-color: white;
62
+  --search-input-background-color: rgba(3, 3, 3, 0.09);
63
+  --fab-text-color: #ffffff;
64
+  --fab-background-color: rgba(24, 103, 194, 0.81);
65
+  --fab-active-background-color: rgba(24, 103, 194, 0.61);
66
+  --card-background-color: white;
67
+  --card-text-color: #030303;
68
+  --toast-background-color: rgba(0, 0, 0, 0.8);
69
+  --toast-text-color: white;
70
+  --toast-button-text-color: white;
71
+  --select-input-color: var(--text-color);
72
+  --select-input-border-color: var(--border-color);
73
+
74
+  /* variables for Material Design components */
75
+  --material-background-color: #ffffff;
76
+  --material-text-color: var(--text-color);
77
+  --material-notification-background-color: #e91e63;
78
+  --material-notification-color: white;
79
+  --material-switch-active-thumb-color: #009688;
80
+  --material-switch-inactive-thumb-color: #f1f1f1;
81
+  --material-switch-active-background-color: #77c2bb;
82
+  --material-switch-inactive-background-color: #b0afaf;
83
+  --material-range-track-color: #bdbdbd;
84
+  --material-range-thumb-color: #009688;
85
+  --material-range-disabled-thumb-color: #b0b0b0;
86
+  --material-range-disabled-thumb-border-color: #eeeeee;
87
+  --material-range-zero-thumb-color: #f2f2f2;
88
+  --material-toolbar-background-color: #009688;
89
+  --material-toolbar-text-color: #ffffff;
90
+  --material-toolbar-button-color: #ffffff;
91
+  --material-segment-background-color: #fafafa;
92
+  --material-segment-active-background-color: #c8c8c8;
93
+  --material-segment-text-color: color(black a(38%));
94
+  --material-segment-active-text-color: #353535;
95
+  --material-button-background-color: #009688;
96
+  --material-button-text-color: #ffffff;
97
+  --material-button-disabled-background-color: color(#4f4f4f a(26%));
98
+  --material-button-disabled-color: color(black a(26%));
99
+  --material-flat-button-active-background-color: color(#999 a(20%));
100
+  --material-list-background-color: #fff;
101
+  --material-list-item-separator-color: #eee;
102
+  --material-list-header-text-color: #757575;
103
+  --material-checkbox-active-color: #37474f;
104
+  --material-checkbox-inactive-color: #717171;
105
+  --material-checkbox-checkmark-color: #ffffff;
106
+  --material-checkbox-active-color: #009688;
107
+  --material-checkbox-inactive-color: #717171;
108
+  --material-checkbox-checkmark-color: #ffffff;
109
+  --material-radio-button-active-color: #009688;
110
+  --material-radio-button-inactive-color: #717171;
111
+  --material-radio-button-disabled-color: #afafaf;
112
+  --material-text-input-text-color: #212121;
113
+  --material-text-input-active-color: #009688;
114
+  --material-text-input-inactive-color: #afafaf;
115
+  --material-search-background-color: #fafafa;
116
+  --material-dialog-background-color: #ffffff;
117
+  --material-dialog-text-color: var(--material-text-color);
118
+  --material-alert-dialog-background-color: #ffffff;
119
+  --material-alert-dialog-title-color: #212121;
120
+  --material-alert-dialog-content-color: #727272;
121
+  --material-alert-dialog-button-color: #009688;
122
+  --material-progress-bar-primary-color: #009688;
123
+  --material-progress-bar-secondary-color: #80cbc4;
124
+  --material-progress-bar-background-color: #e0e0e0;
125
+  --material-progress-circle-primary-color: #009688;
126
+  --material-progress-circle-secondary-color: #80cbc4;
127
+  --material-progress-circle-background-color: #dbdbdb;
128
+  --material-tabbar-background-color: #009688;
129
+  --material-tabbar-text-color: rgba(255, 255, 255, 0.6);
130
+  --material-tabbar-highlight-text-color: #ffffff;
131
+  --material-tabbar-highlight-color: #26a69a;
132
+  --material-fab-text-color: #ffffff;
133
+  --material-fab-background-color: #009688;
134
+  --material-fab-active-background-color: rgba(0, 150, 136, 0.85);
135
+  --material-card-background-color: white;
136
+  --material-card-text-color: rgba(0, 0, 0, 0.54);
137
+  --material-toast-background-color: rgba(0, 0, 0, 0.8);
138
+  --material-toast-text-color: white;
139
+  --material-toast-button-text-color: #bbdefb;
140
+  --material-select-input-color: var(--material-text-color);
141
+  --material-select-input-active-color: rgba(0, 0, 0, 0.15);
142
+  --material-select-input-inactive-color: rgba(0, 0, 0, 0.81);
143
+  --material-select-border-color: color(black a(12%));
144
+  --material-popover-background-color: #fafafa;
145
+  --material-popover-text-color: var(--material-text-color);
146
+  --material-action-sheet-text-color: #686868;
147
+
148
+  /* others */
149
+  --tap-highlight-color: transparent;
150
+}

+ 5
- 0
Searchbar/onsenui/css-components-src/src/onsen-css-components.css 查看文件

@@ -0,0 +1,5 @@
1
+
2
+@import url('./license.css');
3
+@import url('./theme.css');
4
+@import url('./components/index.css');
5
+@import url('./iphonex-support/index.css');

+ 147
- 0
Searchbar/onsenui/css-components-src/src/theme.css 查看文件

@@ -0,0 +1,147 @@
1
+
2
+:root {
3
+  /* variables for iOS components */
4
+  --background-color: #efeff4;
5
+  --text-color: #1f1f21;
6
+  --sub-text-color: #999;
7
+  --highlight-color: #0076ff;
8
+  --second-highlight-color: #25a6d9;
9
+  --border-color: #ccc;
10
+  --button-background-color: var(--highlight-color);
11
+  --button-cta-background-color: var(--second-highlight-color);
12
+  --toolbar-background-color: #fafafa;
13
+  --toolbar-button-color: var(--highlight-color);
14
+  --toolbar-text-color: #1f1f21;
15
+  --toolbar-border-color: #b2b2b2;
16
+  --button-bar-color: var(--highlight-color);
17
+  --button-bar-active-text-color: #fff;
18
+  --button-bar-active-background-color: color(var(--button-bar-color) tint(70%));
19
+  --button-light-color: black;
20
+  --segment-color: var(--highlight-color);
21
+  --segment-active-text-color: #fff;
22
+  --segment-active-background-color: color(var(--segment-color) tint(70%));
23
+  --list-background-color: #fff;
24
+  --list-header-background-color: #eee;
25
+  --list-tap-active-background-color: #d9d9d9;
26
+  --list-item-chevron-color: #c7c7cc;
27
+  --progress-bar-color: var(--highlight-color);
28
+  --progress-bar-secondary-color: #65adff;
29
+  --progress-bar-background-color: transparent;
30
+  --progress-circle-primary-color: var(--highlight-color);
31
+  --progress-circle-secondary-color: #65adff;
32
+  --progress-circle-background-color: transparent;
33
+  --tabbar-background-color: #fafafa;
34
+  --tabbar-text-color: #999;
35
+  --tabbar-highlight-text-color: var(--highlight-color);
36
+  --tabbar-border-color: #ccc;
37
+  --switch-highlight-color: #44db5e;
38
+  --switch-border-color: #e5e5e5;
39
+  --switch-background-color: white;
40
+  --range-track-background-color: #a4aab3;
41
+  --range-track-background-color-active: var(--highlight-color);
42
+  --range-thumb-background-color: #fff;
43
+  --modal-background-color: rgba(0, 0, 0, 0.7);
44
+  --modal-text-color: #fff;
45
+  --alert-dialog-background-color: #f4f4f4;
46
+  --alert-dialog-text-color: #1f1f21;
47
+  --alert-dialog-button-color: var(--highlight-color);
48
+  --alert-dialog-separator-color: #ddd;
49
+  --dialog-background-color: #f4f4f4;
50
+  --dialog-text-color: var(--text-color);
51
+  --popover-background-color: white;
52
+  --popover-text-color: #1f1f21;
53
+  --action-sheet-title-color: #8f8e94;
54
+  --action-sheet-button-separator-color: rgba(0, 0, 0, 0.1);
55
+  --action-sheet-button-color: var(--highlight-color);
56
+  --action-sheet-button-destructive-color: #fe3824;
57
+  --action-sheet-button-background-color: rgba(255, 255, 255, 0.9);
58
+  --action-sheet-button-active-background-color: #e9e9e9;
59
+  --action-sheet-cancel-button-background-color: #fff;
60
+  --notification-background-color: #fe3824;
61
+  --notification-color: white;
62
+  --search-input-background-color: rgba(3, 3, 3, 0.09);
63
+  --fab-text-color: #ffffff;
64
+  --fab-background-color: var(--highlight-color);
65
+  --fab-active-background-color: color(var(--fab-background-color) a(70%));
66
+  --card-background-color: white;
67
+  --card-text-color: #030303;
68
+  --toast-background-color: rgba(0, 0, 0, 0.8);
69
+  --toast-text-color: white;
70
+  --toast-button-text-color: white;
71
+  --select-input-color: var(--text-color);
72
+  --select-input-border-color: var(--border-color);
73
+
74
+  /* variables for Material Design components */
75
+  --material-background-color: #eceff1;
76
+  --material-text-color: var(--text-color);
77
+  --material-notification-background-color: #e91e63;
78
+  --material-notification-color: white;
79
+  --material-switch-active-thumb-color: #37474f;
80
+  --material-switch-active-background-color: color(#37474f a(50%));
81
+  --material-switch-inactive-thumb-color: #f1f1f1;
82
+  --material-switch-inactive-background-color: #b0afaf;
83
+  --material-range-track-color: #bdbdbd;
84
+  --material-range-thumb-color: #31313a;
85
+  --material-range-disabled-thumb-color: #b0b0b0;
86
+  --material-range-disabled-thumb-border-color: #eeeeee;
87
+  --material-range-zero-thumb-color: #f2f2f2;
88
+  --material-toolbar-background-color: #ffffff;
89
+  --material-toolbar-text-color: #31313a;
90
+  --material-toolbar-button-color: #1e88e5;
91
+  --material-segment-background-color: #fafafa;
92
+  --material-segment-active-background-color: #c8c8c8;
93
+  --material-segment-text-color: color(black a(38%));
94
+  --material-segment-active-text-color: #353535;
95
+  --material-button-background-color: #2979ff;
96
+  --material-button-text-color: #ffffff;
97
+  --material-button-disabled-background-color: color(#4f4f4f a(26%));
98
+  --material-button-disabled-color: color(black a(26%));
99
+  --material-flat-button-active-background-color: color(#999 a(20%));
100
+  --material-list-background-color: #fff;
101
+  --material-list-item-separator-color: #eee;
102
+  --material-list-header-text-color: #757575;
103
+  --material-checkbox-active-color: #37474f;
104
+  --material-checkbox-inactive-color: #717171;
105
+  --material-checkbox-checkmark-color: #ffffff;
106
+  --material-radio-button-active-color: #37474f;
107
+  --material-radio-button-inactive-color: #717171;
108
+  --material-radio-button-disabled-color: #afafaf;
109
+  --material-text-input-text-color: #212121;
110
+  --material-text-input-active-color: #3d5afe;
111
+  --material-text-input-inactive-color: #afafaf;
112
+  --material-search-background-color: #fafafa;
113
+  --material-dialog-background-color: #ffffff;
114
+  --material-dialog-text-color: var(--material-text-color);
115
+  --material-alert-dialog-background-color: #ffffff;
116
+  --material-alert-dialog-title-color: #31313a;
117
+  --material-alert-dialog-content-color: rgba(49, 49, 58, 0.85);
118
+  --material-alert-dialog-button-color: #37474f;
119
+  --material-progress-bar-primary-color: #37474f;
120
+  --material-progress-bar-secondary-color: #548ba7;
121
+  --material-progress-bar-background-color: transparent;
122
+  --material-progress-circle-primary-color: var(--material-progress-bar-primary-color);
123
+  --material-progress-circle-secondary-color: var(--material-progress-bar-secondary-color);
124
+  --material-progress-circle-background-color: transparent;
125
+  --material-tabbar-background-color: #ffffff;
126
+  --material-tabbar-text-color: #31313a;
127
+  --material-tabbar-highlight-text-color: #31313a;
128
+  --material-tabbar-highlight-color: rgba(49, 49, 58, 0.1);
129
+  --material-fab-text-color: #31313a;
130
+  --material-fab-background-color: #ffffff;
131
+  --material-fab-active-background-color: rgba(255, 255, 255, 0.75);
132
+  --material-card-background-color: white;
133
+  --material-card-text-color: rgba(0, 0, 0, 0.54);
134
+  --material-toast-background-color: rgba(0, 0, 0, 0.8);
135
+  --material-toast-text-color: white;
136
+  --material-toast-button-text-color: #bbdefb;
137
+  --material-select-input-color: var(--material-text-color);
138
+  --material-select-input-active-color: rgba(0, 0, 0, 0.15);
139
+  --material-select-input-inactive-color: rgba(0, 0, 0, 0.81);
140
+  --material-select-border-color: color(black a(12%));
141
+  --material-popover-background-color: #fafafa;
142
+  --material-popover-text-color: var(--material-text-color);
143
+  --material-action-sheet-text-color: #686868;
144
+
145
+  /* others */
146
+  --tap-highlight-color: transparent;
147
+}

+ 210
- 0
Searchbar/onsenui/css-components-src/stylelint.config.js 查看文件

@@ -0,0 +1,210 @@
1
+module.exports = {
2
+  defaultSeverity: 'warning',
3
+
4
+  rules: {
5
+    // Color
6
+    'color-hex-case': 'lower',
7
+    'color-hex-length': null,
8
+    'color-named': null,
9
+    'color-no-hex': null,
10
+    'color-no-invalid-hex': true,
11
+
12
+    // Font
13
+    'font-family-name-quotes': 'always-unless-keyword',
14
+    'font-family-no-duplicate-names': true,
15
+    'font-weight-notation': 'numeric',
16
+
17
+    // Function
18
+    'function-blacklist': null,
19
+    'function-calc-no-unspaced-operator': true,
20
+    'function-comma-newline-after': 'never-multi-line',
21
+    'function-comma-newline-before': null,
22
+    'function-comma-space-after': 'always',
23
+    'function-comma-space-before': 'never',
24
+    'function-linear-gradient-no-nonstandard-direction': true,
25
+    'function-max-empty-lines': 0,
26
+    'function-name-case': 'lower',
27
+    'function-parentheses-newline-inside': null,
28
+    'function-parentheses-space-inside': 'never',
29
+    'function-url-data-uris': null,
30
+    'function-url-no-scheme-relative': null,
31
+    'function-url-quotes': 'always',
32
+    'function-url-scheme-whitelist': null,
33
+    'function-whitelist': null,
34
+    'function-whitespace-after': 'always',
35
+
36
+    // Number
37
+    'number-leading-zero': null,
38
+    'number-max-precision': null,
39
+    'number-no-trailing-zeros': true,
40
+
41
+    // String
42
+    'string-no-newline': true,
43
+    'string-quotes': 'single',
44
+    
45
+    // Length
46
+    'length-zero-no-unit': true,
47
+
48
+    // Time
49
+    'time-min-milliseconds': null,
50
+
51
+    // Unit
52
+    'unit-blacklist': null,
53
+    'unit-case': 'lower',
54
+    'unit-no-unknown': true,
55
+    'unit-whitelist': null,
56
+
57
+    // Value
58
+    'value-keyword-case': 'lower',
59
+    'value-no-vendor-prefix': true,
60
+
61
+    // Value list
62
+    'value-list-comma-newline-after': null,
63
+    'value-list-comma-newline-after': null,
64
+    'value-list-comma-space-after': 'always-single-line',
65
+    'value-list-comma-space-before': 'never',
66
+    'value-list-max-empty-lines': 0,
67
+
68
+    // Custom property
69
+    'custom-property-empty-line-before': null,
70
+    'custom-property-pattern': null,
71
+
72
+    // Shorthand property
73
+    'shorthand-property-no-redundant-values': null,
74
+
75
+    // Property
76
+    'property-blacklist': null,
77
+    'property-case': 'lower',
78
+    'property-no-unknown': true,
79
+    'property-no-vendor-prefix': null,
80
+    'property-whitelist': null,
81
+
82
+    // Keyframe declaration
83
+    'keyframe-declaration-no-important': true,
84
+
85
+    // Declration
86
+    'declaration-bang-space-after': 'never',
87
+    'declaration-bang-space-before': 'always',
88
+    'declaration-colon-newline-after': null,
89
+    'declaration-colon-space-after': 'always-single-line',
90
+    'declaration-colon-space-before': 'never',
91
+    'declaration-empty-line-before': null,
92
+    'declaration-no-important': true,
93
+    'declaration-property-unit-blacklist': null,
94
+    'declaration-property-unit-whitelist': null,
95
+    'declaration-property-value-blacklist': null,
96
+    'declaration-property-value-whitelist': null,
97
+
98
+    // Declaration block
99
+    'declaration-block-no-duplicate-properties': true,
100
+    'declaration-block-no-redundant-longhand-properties': null,
101
+    'declaration-block-no-shorthand-property-overrides': true,
102
+    'declaration-block-semicolon-newline-after': 'always',
103
+    'declaration-block-semicolon-newline-before': null,
104
+    'declaration-block-semicolon-space-after': null,
105
+    'declaration-block-semicolon-space-before': null,
106
+    'declaration-block-single-line-max-declarations': null,
107
+    'declaration-block-trailing-semicolon': 'always',
108
+
109
+    // Block
110
+    'block-closing-brace-empty-line-before': 'never',
111
+    'block-closing-brace-newline-after': 'always',
112
+    'block-closing-brace-newline-before': 'always',
113
+    'block-closing-brace-space-after': null,
114
+    'block-closing-brace-space-before': null,
115
+    'block-no-empty': null,
116
+    'block-opening-brace-newline-after': 'always',
117
+    'block-opening-brace-newline-before': null,
118
+    'block-opening-brace-space-after': null,
119
+    'block-opening-brace-space-before': null,
120
+
121
+    // Selector
122
+    'selector-attribute-brackets-space-inside': 'never',
123
+    'selector-attribute-operator-blacklist': null,
124
+    'selector-attribute-operator-space-after': 'never',
125
+    'selector-attribute-operator-space-before': 'never',
126
+    'selector-attribute-operator-whitelist': null,
127
+    'selector-attribute-quotes': 'always',
128
+    'selector-class-pattern': '^([a-z0-9]+(-[a-z0-9]+)*)(--[a-z0-9]+(-[a-z0-9]+)*)?(__([a-z0-9]+(-[a-z0-9]+)*)(--[a-z0-9]+(-[a-z0-9]+)*)?)*$', // MindBEMding style
129
+    'selector-combinator-space-after': 'always',
130
+    'selector-combinator-space-before': 'always',
131
+    'selector-descendant-combinator-no-non-space': true,
132
+    'selector-id-pattern': null,
133
+    'selector-max-compound-selectors': 3,
134
+    'selector-max-specificity': '0,3,1',
135
+    'selector-nested-pattern': null,
136
+    'selector-no-attribute': null,
137
+    'selector-no-combinator': null,
138
+    'selector-no-id': true,
139
+    'selector-no-qualifying-type': true,
140
+    'selector-no-type': null,
141
+    'selector-no-universal': true,
142
+    'selector-no-vendor-prefix': true,
143
+    'selector-pseudo-class-blacklist': null,
144
+    'selector-pseudo-class-case': 'lower',
145
+    'selector-pseudo-class-no-unknown': true,
146
+    'selector-pseudo-class-parentheses-space-inside': 'never',
147
+    'selector-pseudo-class-whitelist': null,
148
+    'selector-pseudo-element-case': 'lower',
149
+    'selector-pseudo-element-colon-notation': 'single',
150
+    'selector-pseudo-element-no-unknown': true,
151
+    'selector-type-case': 'lower',
152
+    'selector-type-no-unknown': true,
153
+    'selector-max-empty-lines': 0,
154
+
155
+    // Rule
156
+    'rule-empty-line-before': ['always', {except: ['after-single-line-comment', 'first-nested']}],
157
+
158
+    // Media feature
159
+    'media-feature-colon-space-after': 'always',
160
+    'media-feature-colon-space-before': 'never',
161
+    'media-feature-name-blacklist': null,
162
+    'media-feature-name-case': 'lower',
163
+    'media-feature-name-no-unknown': true,
164
+    'media-feature-name-no-vendor-prefix': null,
165
+    'media-feature-name-whitelist': null,
166
+    'media-feature-parentheses-space-inside': 'never',
167
+    'media-feature-range-operator-space-after': 'always',
168
+    'media-feature-range-operator-space-before': 'always',
169
+
170
+    // Custom media
171
+    'custom-media-pattern': null,
172
+
173
+    // Media query list
174
+    'media-query-list-comma-newline-after': null,
175
+    'media-query-list-comma-newline-before': null,
176
+    'media-query-list-comma-space-after': 'always',
177
+    'media-query-list-comma-space-before': 'never',
178
+
179
+    // At-rule
180
+    'at-rule-blacklist': null,
181
+    'at-rule-empty-line-before': null,
182
+    'at-rule-name-case': 'lower',
183
+    'at-rule-name-newline-after': null,
184
+    'at-rule-name-space-after': 'always',
185
+    'at-rule-no-unknown': true,
186
+    'at-rule-no-vendor-prefix': null,
187
+    'at-rule-semicolon-newline-after': 'always',
188
+    'at-rule-whitelist': null,
189
+
190
+    // Comment
191
+    'comment-empty-line-before': null,
192
+    'comment-no-empty': true,
193
+    'comment-whitespace-inside': null,
194
+    'comment-word-blacklist': null,
195
+
196
+    // General / Sheet
197
+    'indentation': 2,
198
+    'max-empty-lines': 1,
199
+    'max-line-length': null,
200
+    'max-nesting-depth': null,
201
+    'no-descending-specificity': true,
202
+    'no-duplicate-selectors': true,
203
+    'no-empty-source': true,
204
+    'no-eol-whitespace': true,
205
+    'no-extra-semicolons': true,
206
+    'no-invalid-double-slash-comments': true,
207
+    'no-missing-end-of-source-newline': null,
208
+    'no-unknown-animations': true
209
+  }
210
+};

+ 6746
- 0
Searchbar/onsenui/css-components-src/yarn.lock
文件差异内容过多而无法显示
查看文件


+ 7395
- 0
Searchbar/onsenui/css/dark-onsen-css-components.css
文件差异内容过多而无法显示
查看文件


+ 31
- 0
Searchbar/onsenui/css/dark-onsen-css-components.min.css
文件差异内容过多而无法显示
查看文件


+ 4329
- 0
Searchbar/onsenui/css/font_awesome/css/all.css
文件差异内容过多而无法显示
查看文件


+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/all.min.css
文件差异内容过多而无法显示
查看文件


+ 14
- 0
Searchbar/onsenui/css/font_awesome/css/brands.css 查看文件

@@ -0,0 +1,14 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face {
6
+  font-family: 'Font Awesome 5 Brands';
7
+  font-style: normal;
8
+  font-weight: normal;
9
+  font-display: auto;
10
+  src: url("../webfonts/fa-brands-400.eot");
11
+  src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
12
+
13
+.fab {
14
+  font-family: 'Font Awesome 5 Brands'; }

+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/brands.min.css 查看文件

@@ -0,0 +1,5 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}

+ 4296
- 0
Searchbar/onsenui/css/font_awesome/css/fontawesome.css
文件差异内容过多而无法显示
查看文件


+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/fontawesome.min.css
文件差异内容过多而无法显示
查看文件


+ 15
- 0
Searchbar/onsenui/css/font_awesome/css/regular.css 查看文件

@@ -0,0 +1,15 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face {
6
+  font-family: 'Font Awesome 5 Free';
7
+  font-style: normal;
8
+  font-weight: 400;
9
+  font-display: auto;
10
+  src: url("../webfonts/fa-regular-400.eot");
11
+  src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
12
+
13
+.far {
14
+  font-family: 'Font Awesome 5 Free';
15
+  font-weight: 400; }

+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/regular.min.css 查看文件

@@ -0,0 +1,5 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}

+ 16
- 0
Searchbar/onsenui/css/font_awesome/css/solid.css 查看文件

@@ -0,0 +1,16 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face {
6
+  font-family: 'Font Awesome 5 Free';
7
+  font-style: normal;
8
+  font-weight: 900;
9
+  font-display: auto;
10
+  src: url("../webfonts/fa-solid-900.eot");
11
+  src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
12
+
13
+.fa,
14
+.fas {
15
+  font-family: 'Font Awesome 5 Free';
16
+  font-weight: 900; }

+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/solid.min.css 查看文件

@@ -0,0 +1,5 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}

+ 346
- 0
Searchbar/onsenui/css/font_awesome/css/svg-with-js.css 查看文件

@@ -0,0 +1,346 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+svg:not(:root).svg-inline--fa {
6
+  overflow: visible; }
7
+
8
+.svg-inline--fa {
9
+  display: inline-block;
10
+  font-size: inherit;
11
+  height: 1em;
12
+  overflow: visible;
13
+  vertical-align: -.125em; }
14
+  .svg-inline--fa.fa-lg {
15
+    vertical-align: -.225em; }
16
+  .svg-inline--fa.fa-w-1 {
17
+    width: 0.0625em; }
18
+  .svg-inline--fa.fa-w-2 {
19
+    width: 0.125em; }
20
+  .svg-inline--fa.fa-w-3 {
21
+    width: 0.1875em; }
22
+  .svg-inline--fa.fa-w-4 {
23
+    width: 0.25em; }
24
+  .svg-inline--fa.fa-w-5 {
25
+    width: 0.3125em; }
26
+  .svg-inline--fa.fa-w-6 {
27
+    width: 0.375em; }
28
+  .svg-inline--fa.fa-w-7 {
29
+    width: 0.4375em; }
30
+  .svg-inline--fa.fa-w-8 {
31
+    width: 0.5em; }
32
+  .svg-inline--fa.fa-w-9 {
33
+    width: 0.5625em; }
34
+  .svg-inline--fa.fa-w-10 {
35
+    width: 0.625em; }
36
+  .svg-inline--fa.fa-w-11 {
37
+    width: 0.6875em; }
38
+  .svg-inline--fa.fa-w-12 {
39
+    width: 0.75em; }
40
+  .svg-inline--fa.fa-w-13 {
41
+    width: 0.8125em; }
42
+  .svg-inline--fa.fa-w-14 {
43
+    width: 0.875em; }
44
+  .svg-inline--fa.fa-w-15 {
45
+    width: 0.9375em; }
46
+  .svg-inline--fa.fa-w-16 {
47
+    width: 1em; }
48
+  .svg-inline--fa.fa-w-17 {
49
+    width: 1.0625em; }
50
+  .svg-inline--fa.fa-w-18 {
51
+    width: 1.125em; }
52
+  .svg-inline--fa.fa-w-19 {
53
+    width: 1.1875em; }
54
+  .svg-inline--fa.fa-w-20 {
55
+    width: 1.25em; }
56
+  .svg-inline--fa.fa-pull-left {
57
+    margin-right: .3em;
58
+    width: auto; }
59
+  .svg-inline--fa.fa-pull-right {
60
+    margin-left: .3em;
61
+    width: auto; }
62
+  .svg-inline--fa.fa-border {
63
+    height: 1.5em; }
64
+  .svg-inline--fa.fa-li {
65
+    width: 2em; }
66
+  .svg-inline--fa.fa-fw {
67
+    width: 1.25em; }
68
+
69
+.fa-layers svg.svg-inline--fa {
70
+  bottom: 0;
71
+  left: 0;
72
+  margin: auto;
73
+  position: absolute;
74
+  right: 0;
75
+  top: 0; }
76
+
77
+.fa-layers {
78
+  display: inline-block;
79
+  height: 1em;
80
+  position: relative;
81
+  text-align: center;
82
+  vertical-align: -.125em;
83
+  width: 1em; }
84
+  .fa-layers svg.svg-inline--fa {
85
+    -webkit-transform-origin: center center;
86
+            transform-origin: center center; }
87
+
88
+.fa-layers-text, .fa-layers-counter {
89
+  display: inline-block;
90
+  position: absolute;
91
+  text-align: center; }
92
+
93
+.fa-layers-text {
94
+  left: 50%;
95
+  top: 50%;
96
+  -webkit-transform: translate(-50%, -50%);
97
+          transform: translate(-50%, -50%);
98
+  -webkit-transform-origin: center center;
99
+          transform-origin: center center; }
100
+
101
+.fa-layers-counter {
102
+  background-color: #ff253a;
103
+  border-radius: 1em;
104
+  -webkit-box-sizing: border-box;
105
+          box-sizing: border-box;
106
+  color: #fff;
107
+  height: 1.5em;
108
+  line-height: 1;
109
+  max-width: 5em;
110
+  min-width: 1.5em;
111
+  overflow: hidden;
112
+  padding: .25em;
113
+  right: 0;
114
+  text-overflow: ellipsis;
115
+  top: 0;
116
+  -webkit-transform: scale(0.25);
117
+          transform: scale(0.25);
118
+  -webkit-transform-origin: top right;
119
+          transform-origin: top right; }
120
+
121
+.fa-layers-bottom-right {
122
+  bottom: 0;
123
+  right: 0;
124
+  top: auto;
125
+  -webkit-transform: scale(0.25);
126
+          transform: scale(0.25);
127
+  -webkit-transform-origin: bottom right;
128
+          transform-origin: bottom right; }
129
+
130
+.fa-layers-bottom-left {
131
+  bottom: 0;
132
+  left: 0;
133
+  right: auto;
134
+  top: auto;
135
+  -webkit-transform: scale(0.25);
136
+          transform: scale(0.25);
137
+  -webkit-transform-origin: bottom left;
138
+          transform-origin: bottom left; }
139
+
140
+.fa-layers-top-right {
141
+  right: 0;
142
+  top: 0;
143
+  -webkit-transform: scale(0.25);
144
+          transform: scale(0.25);
145
+  -webkit-transform-origin: top right;
146
+          transform-origin: top right; }
147
+
148
+.fa-layers-top-left {
149
+  left: 0;
150
+  right: auto;
151
+  top: 0;
152
+  -webkit-transform: scale(0.25);
153
+          transform: scale(0.25);
154
+  -webkit-transform-origin: top left;
155
+          transform-origin: top left; }
156
+
157
+.fa-lg {
158
+  font-size: 1.33333em;
159
+  line-height: 0.75em;
160
+  vertical-align: -.0667em; }
161
+
162
+.fa-xs {
163
+  font-size: .75em; }
164
+
165
+.fa-sm {
166
+  font-size: .875em; }
167
+
168
+.fa-1x {
169
+  font-size: 1em; }
170
+
171
+.fa-2x {
172
+  font-size: 2em; }
173
+
174
+.fa-3x {
175
+  font-size: 3em; }
176
+
177
+.fa-4x {
178
+  font-size: 4em; }
179
+
180
+.fa-5x {
181
+  font-size: 5em; }
182
+
183
+.fa-6x {
184
+  font-size: 6em; }
185
+
186
+.fa-7x {
187
+  font-size: 7em; }
188
+
189
+.fa-8x {
190
+  font-size: 8em; }
191
+
192
+.fa-9x {
193
+  font-size: 9em; }
194
+
195
+.fa-10x {
196
+  font-size: 10em; }
197
+
198
+.fa-fw {
199
+  text-align: center;
200
+  width: 1.25em; }
201
+
202
+.fa-ul {
203
+  list-style-type: none;
204
+  margin-left: 2.5em;
205
+  padding-left: 0; }
206
+  .fa-ul > li {
207
+    position: relative; }
208
+
209
+.fa-li {
210
+  left: -2em;
211
+  position: absolute;
212
+  text-align: center;
213
+  width: 2em;
214
+  line-height: inherit; }
215
+
216
+.fa-border {
217
+  border: solid 0.08em #eee;
218
+  border-radius: .1em;
219
+  padding: .2em .25em .15em; }
220
+
221
+.fa-pull-left {
222
+  float: left; }
223
+
224
+.fa-pull-right {
225
+  float: right; }
226
+
227
+.fa.fa-pull-left,
228
+.fas.fa-pull-left,
229
+.far.fa-pull-left,
230
+.fal.fa-pull-left,
231
+.fab.fa-pull-left {
232
+  margin-right: .3em; }
233
+
234
+.fa.fa-pull-right,
235
+.fas.fa-pull-right,
236
+.far.fa-pull-right,
237
+.fal.fa-pull-right,
238
+.fab.fa-pull-right {
239
+  margin-left: .3em; }
240
+
241
+.fa-spin {
242
+  -webkit-animation: fa-spin 2s infinite linear;
243
+          animation: fa-spin 2s infinite linear; }
244
+
245
+.fa-pulse {
246
+  -webkit-animation: fa-spin 1s infinite steps(8);
247
+          animation: fa-spin 1s infinite steps(8); }
248
+
249
+@-webkit-keyframes fa-spin {
250
+  0% {
251
+    -webkit-transform: rotate(0deg);
252
+            transform: rotate(0deg); }
253
+  100% {
254
+    -webkit-transform: rotate(360deg);
255
+            transform: rotate(360deg); } }
256
+
257
+@keyframes fa-spin {
258
+  0% {
259
+    -webkit-transform: rotate(0deg);
260
+            transform: rotate(0deg); }
261
+  100% {
262
+    -webkit-transform: rotate(360deg);
263
+            transform: rotate(360deg); } }
264
+
265
+.fa-rotate-90 {
266
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
267
+  -webkit-transform: rotate(90deg);
268
+          transform: rotate(90deg); }
269
+
270
+.fa-rotate-180 {
271
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
272
+  -webkit-transform: rotate(180deg);
273
+          transform: rotate(180deg); }
274
+
275
+.fa-rotate-270 {
276
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
277
+  -webkit-transform: rotate(270deg);
278
+          transform: rotate(270deg); }
279
+
280
+.fa-flip-horizontal {
281
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
282
+  -webkit-transform: scale(-1, 1);
283
+          transform: scale(-1, 1); }
284
+
285
+.fa-flip-vertical {
286
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
287
+  -webkit-transform: scale(1, -1);
288
+          transform: scale(1, -1); }
289
+
290
+.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
291
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
292
+  -webkit-transform: scale(-1, -1);
293
+          transform: scale(-1, -1); }
294
+
295
+:root .fa-rotate-90,
296
+:root .fa-rotate-180,
297
+:root .fa-rotate-270,
298
+:root .fa-flip-horizontal,
299
+:root .fa-flip-vertical,
300
+:root .fa-flip-both {
301
+  -webkit-filter: none;
302
+          filter: none; }
303
+
304
+.fa-stack {
305
+  display: inline-block;
306
+  height: 2em;
307
+  position: relative;
308
+  width: 2.5em; }
309
+
310
+.fa-stack-1x,
311
+.fa-stack-2x {
312
+  bottom: 0;
313
+  left: 0;
314
+  margin: auto;
315
+  position: absolute;
316
+  right: 0;
317
+  top: 0; }
318
+
319
+.svg-inline--fa.fa-stack-1x {
320
+  height: 1em;
321
+  width: 1.25em; }
322
+
323
+.svg-inline--fa.fa-stack-2x {
324
+  height: 2em;
325
+  width: 2.5em; }
326
+
327
+.fa-inverse {
328
+  color: #fff; }
329
+
330
+.sr-only {
331
+  border: 0;
332
+  clip: rect(0, 0, 0, 0);
333
+  height: 1px;
334
+  margin: -1px;
335
+  overflow: hidden;
336
+  padding: 0;
337
+  position: absolute;
338
+  width: 1px; }
339
+
340
+.sr-only-focusable:active, .sr-only-focusable:focus {
341
+  clip: auto;
342
+  height: auto;
343
+  margin: 0;
344
+  overflow: visible;
345
+  position: static;
346
+  width: auto; }

+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/svg-with-js.min.css 查看文件

@@ -0,0 +1,5 @@
1
+/*!
2
+ * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}

+ 2166
- 0
Searchbar/onsenui/css/font_awesome/css/v4-shims.css
文件差异内容过多而无法显示
查看文件


+ 5
- 0
Searchbar/onsenui/css/font_awesome/css/v4-shims.min.css
文件差异内容过多而无法显示
查看文件


二进制
Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.eot 查看文件


+ 3459
- 0
Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.svg
文件差异内容过多而无法显示
查看文件


二进制
Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.ttf 查看文件


二进制
Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.woff 查看文件


二进制
Searchbar/onsenui/css/font_awesome/webfonts/fa-brands-400.woff2 查看文件


二进制
Searchbar/onsenui/css/font_awesome/webfonts/fa-regular-400.eot 查看文件


+ 0
- 0
Searchbar/onsenui/css/font_awesome/webfonts/fa-regular-400.svg 查看文件


部分文件因为文件数量过多而无法显示