├── .eslintrc.json ├── .gitignore ├── README.md ├── _config.yml ├── docs ├── CNAME ├── css │ ├── mobi.css │ │ ├── mobi.css │ │ ├── mobi.min.css │ │ └── mobi.min.css.map │ └── site.css ├── favicon.ico ├── img │ ├── asciiflow.png │ ├── chuangzaoshi.png │ ├── cnode.png │ ├── codepen.ico │ ├── domcomp.png │ ├── echo-js.ico │ ├── favicon-generator.ico │ ├── feweekly.ico │ ├── gauges.png │ ├── github.ico │ ├── google-analytics.png │ ├── guanggoo.ico │ ├── hacker-news.ico │ ├── hacpai.png │ ├── hsl-color-picker.png │ ├── inbox.png │ ├── juejin.ico │ ├── mobile-friendly-test.png │ ├── mouto.jpg │ ├── name.png │ ├── npm.png │ ├── online-converter.png │ ├── online-photo-editor.png │ ├── product-hunt.ico │ ├── reddit.ico │ ├── regexr.ico │ ├── ruby-china.png │ ├── segmentfault.ico │ ├── shuibaco.ico │ ├── sketchpad.png │ ├── startup-news.ico │ ├── svg-edit.png │ ├── tinypng.png │ ├── toutiao.ico │ ├── twitter.ico │ ├── unicode.png │ ├── unsplash-it.ico │ ├── uzer-me.ico │ ├── v2ex.png │ ├── wechat.ico │ ├── weibo.ico │ ├── xcatliu.ico │ ├── yinwang.jpg │ └── zhihu.ico ├── index.html └── js │ └── search.js ├── package.json └── src ├── CNAME ├── _layout.js ├── css ├── mobi.css │ ├── mobi.css │ ├── mobi.min.css │ └── mobi.min.css.map └── site.css ├── favicon.ico ├── img ├── asciiflow.png ├── chuangzaoshi.png ├── cnode.png ├── codepen.ico ├── domcomp.png ├── echo-js.ico ├── favicon-generator.ico ├── feweekly.ico ├── gauges.png ├── github.ico ├── google-analytics.png ├── guanggoo.ico ├── hacker-news.ico ├── hacpai.png ├── hsl-color-picker.png ├── inbox.png ├── juejin.ico ├── mobile-friendly-test.png ├── mouto.jpg ├── name.png ├── npm.png ├── online-converter.png ├── online-photo-editor.png ├── product-hunt.ico ├── reddit.ico ├── regexr.ico ├── ruby-china.png ├── segmentfault.ico ├── shuibaco.ico ├── sketchpad.png ├── startup-news.ico ├── svg-edit.png ├── tinypng.png ├── toutiao.ico ├── twitter.ico ├── unicode.png ├── unsplash-it.ico ├── uzer-me.ico ├── v2ex.png ├── wechat.ico ├── weibo.ico ├── xcatliu.ico ├── yinwang.jpg └── zhihu.ico ├── index.md └── js └── search.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "airbnb-base" 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .sass-cache 3 | *.log 4 | .DS_Store 5 | .vscode 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The personal front page 2 | 3 | Live demo: http://123.xcatliu.com/ 4 | 5 | ## Getting started 6 | 7 | ```shell 8 | npm install 9 | npm start 10 | ``` 11 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | src_dir: src 2 | public_dir: docs 3 | 4 | title: xcatliu's personal front page 5 | 6 | bookmarks: 7 | - name: Inbox 8 | url: https://inbox.google.com/ 9 | favicon: inbox.png 10 | - name: V2EX 11 | url: https://v2ex.com/ 12 | favicon: v2ex.png 13 | - name: GitHub 14 | url: https://github.com/xcatliu 15 | favicon: github.ico 16 | 17 | - category: 技术资讯 18 | - name: Hacker News 19 | url: https://news.ycombinator.com/ 20 | favicon: hacker-news.ico 21 | - name: Echo JS 22 | url: http://www.echojs.com/ 23 | favicon: echo-js.ico 24 | - name: 掘金 25 | url: https://juejin.im/ 26 | favicon: juejin.ico 27 | - name: 开发者头条 28 | url: https://toutiao.io/ 29 | favicon: toutiao.ico 30 | - name: GitHub Trending 31 | url: https://github.com/trending 32 | favicon: github.ico 33 | - name: 干货集中营 34 | url: http://gank.io/ 35 | - name: Product Hunt 36 | url: https://www.producthunt.com/ 37 | favicon: product-hunt.ico 38 | - name: reddit 39 | url: https://www.reddit.com/ 40 | favicon: reddit.ico 41 | - name: 前端周刊 42 | url: http://www.feweekly.com/ 43 | favicon: feweekly.ico 44 | - name: Startup News 45 | url: http://news.dbanotes.net/ 46 | favicon: startup-news.ico 47 | 48 | - category: 技术社区 49 | - name: CNode 50 | url: https://cnodejs.org/ 51 | favicon: cnode.png 52 | - name: SegmentFault 53 | url: https://segmentfault.com/ 54 | favicon: segmentfault.ico 55 | - name: 黑客派 56 | url: https://hacpai.com/ 57 | favicon: hacpai.png 58 | - name: 光谷社区 59 | url: http://www.guanggoo.com/ 60 | favicon: guanggoo.ico 61 | - name: Ruby China 62 | url: https://ruby-china.org/ 63 | favicon: ruby-china.png 64 | 65 | - category: 社交网络 66 | - name: 知乎 67 | url: https://www.zhihu.com/ 68 | favicon: zhihu.ico 69 | - name: Twitter 70 | url: https://twitter.com/ 71 | favicon: twitter.ico 72 | - name: 微博 73 | url: http://weibo.com/xcatliu/home 74 | favicon: weibo.ico 75 | - name: 微信网页版 76 | url: https://wx.qq.com/ 77 | favicon: wechat.ico 78 | 79 | - category: 工具 80 | - name: CodePen 81 | url: https://codepen.io/pen/ 82 | favicon: codepen.ico 83 | - name: Unicode 字符百科 84 | url: https://unicode-table.com/cn/ 85 | favicon: unicode.png 86 | - name: Online converter 87 | url: http://image.online-convert.com/convert-to-png 88 | favicon: online-converter.png 89 | - name: HSL Color Picker 90 | url: http://hslpicker.com/ 91 | favicon: hsl-color-picker.png 92 | - name: favicon.ico Generator 93 | url: http://www.favicon.cc/ 94 | favicon: favicon-generator.ico 95 | - name: Online Photo Editor 96 | url: https://pixlr.com/editor/ 97 | favicon: online-photo-editor.png 98 | - name: ASCIIFlow - 字符图 99 | url: http://asciiflow.com/ 100 | favicon: asciiflow.png 101 | - name: SVG-edit 102 | url: https://github.com/SVG-Edit/svgedit 103 | favicon: svg-edit.png 104 | - name: Painter - 画图板 105 | url: http://painter.crick.wang/ 106 | - name: Sketchpad - 画图板 107 | url: https://sketch.io/sketchpad/?lang=zh 108 | favicon: sketchpad.png 109 | - name: 多个地点 ping 服务器 110 | url: http://ping.chinaz.com/ 111 | - name: Unsplash It - 随机图片服务 112 | url: https://unsplash.it/ 113 | favicon: unsplash-it.ico 114 | - name: UZER.ME - 在线 PS 115 | url: https://uzer.me/ 116 | favicon: uzer-me.ico 117 | - name: nodei.co - npm 状态图 118 | url: https://nodei.co/ 119 | favicon: npm.png 120 | - name: Mobile-Friendly Test 121 | url: https://search.google.com/search-console/mobile-friendly 122 | favicon: mobile-friendly-test.png 123 | - name: RegExr 124 | url: http://regexr.com/ 125 | favicon: regexr.ico 126 | - name: 在线屏幕测试 127 | url: http://pingmu.zh-ang.com/ 128 | - name: 域名商价格对比 129 | favicon: domcomp.png 130 | url: https://www.domcomp.com/ 131 | - name: TinyPNG 132 | favicon: tinypng.png 133 | url: https://tinypng.com/ 134 | 135 | - category: 博客 136 | - name: Xcat Liu's Blog 137 | url: http://blog.xcatliu.com/ 138 | favicon: xcatliu.ico 139 | - name: Matrix67 140 | url: http://www.matrix67.com/blog/ 141 | - name: 王垠 - 当然我在扯淡 142 | url: http://www.yinwang.org/ 143 | favicon: yinwang.jpg 144 | - name: 水八口记 - 在日本工作的博客爱好者 145 | url: https://blog.shuiba.co/archive 146 | favicon: shuibaco.ico 147 | - name: 卜卜口 - 可能是世界最快博客 148 | url: http://mouto.org/#!home 149 | favicon: mouto.jpg 150 | 151 | - category: 文章收藏 152 | - name: WebCore Rendering - 深入理解 css 153 | url: https://webkit.org/blog/114/webcore-rendering-i-the-basics/ 154 | - name: 图说设计模式 155 | url: https://design-patterns.readthedocs.io/zh_CN/latest/index.html 156 | 157 | - category: 网站管理 158 | - name: Name.com 159 | url: https://www.name.com/account/domain 160 | favicon: name.png 161 | - name: Google Analytics 162 | url: https://analytics.google.com/analytics/web/ 163 | favicon: google-analytics.png 164 | 165 | - category: 其他导航站 166 | - name: 创造狮 167 | url: http://chuangzaoshi.com/ 168 | favicon: chuangzaoshi.png 169 | 170 | - category: 未分类 171 | - name: Avatars.io - 获取社交网站上的头像 172 | url: https://www.avatars.io/ 173 | - name: HTML5 Demos and Examples 174 | url: http://html5demos.com/ 175 | - name: Gauges - Real Time Website Analytics 176 | url: http://get.gaug.es/ 177 | favicon: gauges.png 178 | 179 | 180 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | 123.xcatliu.com -------------------------------------------------------------------------------- /docs/css/mobi.css/mobi.css: -------------------------------------------------------------------------------- 1 | /*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */ 2 | @charset "UTF-8"; 3 | html { 4 | box-sizing: border-box; } 5 | 6 | *, 7 | *::before, 8 | *::after { 9 | box-sizing: inherit; } 10 | 11 | html { 12 | font-size: 10px; 13 | -webkit-text-size-adjust: 100%; 14 | -moz-text-size-adjust: 100%; 15 | -ms-text-size-adjust: 100%; 16 | text-size-adjust: 100%; } 17 | 18 | body { 19 | background-color: white; 20 | color: #333; 21 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 22 | font-size: 16px; 23 | line-height: 1.5; 24 | margin: 0; } 25 | 26 | h1, 27 | h2, 28 | h3, 29 | h4, 30 | h5, 31 | h6 { 32 | margin: 30px 0 0; } 33 | 34 | p, 35 | blockquote, 36 | table, 37 | hr, 38 | dl, 39 | ul, 40 | ol, 41 | pre, 42 | address, 43 | figure { 44 | margin: 15px 0 0; } 45 | 46 | h1, 47 | h2, 48 | h3, 49 | h4, 50 | h5, 51 | h6 { 52 | font-weight: 600; } 53 | 54 | h1 { 55 | font-size: 32px; } 56 | 57 | h2 { 58 | font-size: 26px; } 59 | 60 | h3 { 61 | font-size: 22px; } 62 | 63 | h4 { 64 | font-size: 20px; } 65 | 66 | h5 { 67 | font-size: 18px; } 68 | 69 | h6 { 70 | font-size: 16px; } 71 | 72 | a { 73 | color: #2680d9; 74 | text-decoration: none; 75 | -webkit-text-decoration-skip: objects; } 76 | a:active, a:hover { 77 | text-decoration: underline; } 78 | 79 | b, 80 | strong, 81 | dt { 82 | font-weight: 600; } 83 | 84 | code, 85 | kbd, 86 | samp { 87 | background-color: #f2f2f2; 88 | font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 89 | font-size: 85%; 90 | padding: 0.2em 0.3em; } 91 | 92 | pre { 93 | background-color: #f2f2f2; 94 | font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 95 | font-size: 13px; 96 | line-height: 1.2; 97 | overflow: auto; 98 | -webkit-overflow-scrolling: touch; 99 | padding: 15px; } 100 | pre code { 101 | background-color: transparent; 102 | font-size: 13px; 103 | padding: 0; } 104 | 105 | blockquote { 106 | border-left: 5px solid #ddd; 107 | color: #777; 108 | padding-left: 15px; } 109 | 110 | ul, 111 | ol { 112 | padding-left: 30px; } 113 | 114 | dt, 115 | dd, 116 | ol ol, 117 | ul ul, 118 | ol ul, 119 | ul ol { 120 | margin: 0; } 121 | 122 | hr { 123 | border: 0; 124 | border-top: 1px solid #ddd; } 125 | 126 | small { 127 | font-size: 85%; } 128 | 129 | sub, 130 | sup { 131 | font-size: 85%; 132 | line-height: 0; 133 | position: relative; 134 | vertical-align: baseline; } 135 | 136 | sub { 137 | bottom: -0.2em; } 138 | 139 | sup { 140 | top: -0.4em; } 141 | 142 | address, 143 | time { 144 | font-style: normal; } 145 | 146 | mark { 147 | background-color: yellow; 148 | color: #333; 149 | padding: 0 0.2em; } 150 | 151 | rt { 152 | font-size: 60%; } 153 | 154 | abbr[title] { 155 | border-bottom: 0; 156 | text-decoration: underline; 157 | text-decoration: underline dotted; } 158 | 159 | audio:not([controls]) { 160 | display: none; 161 | height: 0; } 162 | 163 | img { 164 | max-width: 100%; 165 | vertical-align: middle; } 166 | 167 | audio, 168 | video { 169 | max-width: 100%; } 170 | 171 | figcaption { 172 | color: #777; 173 | font-size: 85%; } 174 | 175 | [role="button"] { 176 | cursor: pointer; } 177 | 178 | a, 179 | area, 180 | button, 181 | [role="button"], 182 | input, 183 | label, 184 | select, 185 | summary, 186 | textarea { 187 | -ms-touch-action: manipulation; 188 | touch-action: manipulation; } 189 | 190 | button, 191 | input, 192 | select, 193 | textarea { 194 | font: inherit; } 195 | 196 | button, 197 | html [type=button], 198 | [type=reset], 199 | [type=submit], 200 | ::-webkit-file-upload-button { 201 | -webkit-appearance: button; 202 | appearance: button; } 203 | 204 | [type=search] { 205 | -webkit-appearance: none; 206 | -moz-appearance: none; 207 | appearance: none; } 208 | 209 | ::-webkit-file-upload-button { 210 | font: inherit; } 211 | 212 | [hidden] { 213 | display: none; } 214 | 215 | fieldset { 216 | border: 1px solid #ddd; 217 | margin: 15px 0 0; 218 | padding: 0 15px 15px; } 219 | 220 | legend { 221 | padding: 0 0.2em; } 222 | 223 | optgroup { 224 | color: #777; 225 | font-style: normal; 226 | font-weight: normal; } 227 | 228 | option { 229 | color: #333; } 230 | 231 | progress { 232 | max-width: 100%; } 233 | 234 | .container, 235 | .container-wider, 236 | .container-fluid { 237 | overflow: hidden; 238 | padding: 0 15px 15px; 239 | -webkit-box-flex: 1; 240 | -webkit-flex-grow: 1; 241 | -ms-flex-positive: 1; 242 | flex-grow: 1; } 243 | 244 | .container { 245 | max-width: 800px; } 246 | 247 | .container-wider { 248 | max-width: 1200px; } 249 | 250 | .flex-left, 251 | .flex-center, 252 | .flex-right, 253 | .flex-top, 254 | .flex-middle, 255 | .flex-bottom, 256 | .flex-vertical { 257 | -webkit-box-orient: horizontal; 258 | -webkit-box-direction: normal; 259 | -webkit-flex-flow: row nowrap; 260 | -ms-flex-flow: row nowrap; 261 | flex-flow: row nowrap; 262 | display: -webkit-box; 263 | display: -webkit-flex; 264 | display: -ms-flexbox; 265 | display: flex; } 266 | 267 | .flex-left, 268 | .flex-center, 269 | .flex-right, 270 | .flex-top, 271 | .flex-middle, 272 | .flex-bottom, 273 | .flex-vertical.flex-left, 274 | .flex-vertical.flex-center, 275 | .flex-vertical.flex-right, 276 | .flex-vertical.flex-top, 277 | .flex-vertical.flex-middle, 278 | .flex-vertical.flex-bottom { 279 | -webkit-box-align: stretch; 280 | -webkit-align-items: stretch; 281 | -ms-flex-align: stretch; 282 | align-items: stretch; 283 | -webkit-box-pack: start; 284 | -webkit-justify-content: flex-start; 285 | -ms-flex-pack: start; 286 | justify-content: flex-start; } 287 | 288 | .flex-center, 289 | .flex-vertical.flex-middle { 290 | -webkit-box-pack: center; 291 | -webkit-justify-content: center; 292 | -ms-flex-pack: center; 293 | justify-content: center; } 294 | 295 | .flex-right, 296 | .flex-vertical.flex-bottom { 297 | -webkit-box-pack: end; 298 | -webkit-justify-content: flex-end; 299 | -ms-flex-pack: end; 300 | justify-content: flex-end; } 301 | 302 | .flex-top, 303 | .flex-vertical.flex-left { 304 | -webkit-box-align: start; 305 | -webkit-align-items: flex-start; 306 | -ms-flex-align: start; 307 | align-items: flex-start; } 308 | 309 | .flex-middle, 310 | .flex-vertical.flex-center { 311 | -webkit-box-align: center; 312 | -webkit-align-items: center; 313 | -ms-flex-align: center; 314 | align-items: center; } 315 | 316 | .flex-bottom, 317 | .flex-vertical.flex-right { 318 | -webkit-box-align: end; 319 | -webkit-align-items: flex-end; 320 | -ms-flex-align: end; 321 | align-items: flex-end; } 322 | 323 | .units-gap { 324 | margin-left: -7.5px; 325 | margin-right: -7.5px; } 326 | .units-gap > .unit, 327 | .units-gap > .unit-0, 328 | .units-gap > .unit-1, 329 | .units-gap > .unit-1-on-mobile, 330 | .units-gap > .unit-1-2, 331 | .units-gap > .unit-1-3, 332 | .units-gap > .unit-2-3, 333 | .units-gap > .unit-1-4, 334 | .units-gap > .unit-3-4 { 335 | padding-left: 7.5px; 336 | padding-right: 7.5px; } 337 | 338 | .units-gap-big { 339 | margin-left: -15px; 340 | margin-right: -15px; } 341 | .units-gap-big > .unit, 342 | .units-gap-big > .unit-0, 343 | .units-gap-big > .unit-1, 344 | .units-gap-big > .unit-1-on-mobile, 345 | .units-gap-big > .unit-1-2, 346 | .units-gap-big > .unit-1-3, 347 | .units-gap-big > .unit-2-3, 348 | .units-gap-big > .unit-1-4, 349 | .units-gap-big > .unit-3-4 { 350 | padding-left: 15px; 351 | padding-right: 15px; } 352 | 353 | .unit { 354 | -webkit-flex-basis: 0; 355 | -ms-flex-preferred-size: 0; 356 | flex-basis: 0; 357 | -webkit-box-flex: 1; 358 | -webkit-flex-grow: 1; 359 | -ms-flex-positive: 1; 360 | flex-grow: 1; 361 | max-width: 100%; } 362 | 363 | .unit-1, 364 | .unit-1-on-mobile, 365 | .unit-1-2, 366 | .unit-1-3, 367 | .unit-2-3, 368 | .unit-1-4, 369 | .unit-3-4 { 370 | -webkit-flex-shrink: 0; 371 | -ms-flex-negative: 0; 372 | flex-shrink: 0; } 373 | 374 | .unit-1 { 375 | -webkit-flex-basis: 100%; 376 | -ms-flex-preferred-size: 100%; 377 | flex-basis: 100%; 378 | max-width: 100%; } 379 | 380 | .unit-1-2 { 381 | -webkit-flex-basis: 50%; 382 | -ms-flex-preferred-size: 50%; 383 | flex-basis: 50%; 384 | max-width: 50%; } 385 | 386 | .unit-1-3 { 387 | -webkit-flex-basis: 33.33%; 388 | -ms-flex-preferred-size: 33.33%; 389 | flex-basis: 33.33%; 390 | max-width: 33.33%; } 391 | 392 | .unit-2-3 { 393 | -webkit-flex-basis: 66.67%; 394 | -ms-flex-preferred-size: 66.67%; 395 | flex-basis: 66.67%; 396 | max-width: 66.67%; } 397 | 398 | .unit-1-4 { 399 | -webkit-flex-basis: 25%; 400 | -ms-flex-preferred-size: 25%; 401 | flex-basis: 25%; 402 | max-width: 25%; } 403 | 404 | .unit-3-4 { 405 | -webkit-flex-basis: 75%; 406 | -ms-flex-preferred-size: 75%; 407 | flex-basis: 75%; 408 | max-width: 75%; } 409 | 410 | .flex-vertical { 411 | -webkit-box-orient: vertical; 412 | -webkit-box-direction: normal; 413 | -webkit-flex-direction: column; 414 | -ms-flex-direction: column; 415 | flex-direction: column; } 416 | .flex-vertical > .unit, 417 | .flex-vertical > .unit-0, 418 | .flex-vertical > .unit-1, 419 | .flex-vertical > .unit-1-on-mobile, 420 | .flex-vertical > .unit-1-2, 421 | .flex-vertical > .unit-1-3, 422 | .flex-vertical > .unit-2-3, 423 | .flex-vertical > .unit-1-4, 424 | .flex-vertical > .unit-3-4 { 425 | max-width: none; } 426 | .flex-vertical > .unit-1 { 427 | max-height: 100%; } 428 | .flex-vertical > .unit-1-2 { 429 | max-height: 50%; } 430 | .flex-vertical > .unit-1-3 { 431 | max-height: 33.33%; } 432 | .flex-vertical > .unit-2-3 { 433 | max-height: 66.67%; } 434 | .flex-vertical > .unit-1-4 { 435 | max-height: 25%; } 436 | .flex-vertical > .unit-3-4 { 437 | max-height: 75%; } 438 | 439 | .flex-wrap { 440 | -webkit-flex-wrap: wrap; 441 | -ms-flex-wrap: wrap; 442 | flex-wrap: wrap; } 443 | 444 | @media (max-width: 767px) { 445 | .unit-1-on-mobile { 446 | -webkit-flex-basis: 100%; 447 | -ms-flex-preferred-size: 100%; 448 | flex-basis: 100%; 449 | max-width: 100%; } 450 | .flex-vertical > .unit-1-on-mobile { 451 | max-height: 100%; } } 452 | 453 | .top-gap-big { 454 | margin-top: 30px !important; } 455 | 456 | .top-gap { 457 | margin-top: 15px !important; } 458 | 459 | .top-gap-0 { 460 | margin-top: 0 !important; } 461 | 462 | @media (max-width: 767px) { 463 | .hide-on-mobile { 464 | display: none !important; } } 465 | 466 | @media (min-width: 768px) { 467 | .show-on-mobile { 468 | display: none !important; } } 469 | 470 | .table { 471 | background-color: white; 472 | border: 0; 473 | border-collapse: collapse; 474 | border-spacing: 0; 475 | width: 100%; } 476 | .table caption { 477 | caption-side: bottom; 478 | color: #777; 479 | font-size: 85%; 480 | padding: 5px; 481 | text-align: left; } 482 | .table th, 483 | .table td { 484 | border: 0; 485 | border-bottom: 1px solid #ddd; 486 | padding: 5px; 487 | text-align: left; } 488 | .table th { 489 | background-color: #f2f2f2; 490 | font-weight: 600; } 491 | 492 | .btn { 493 | -webkit-appearance: none; 494 | -moz-appearance: none; 495 | appearance: none; 496 | background-color: white; 497 | border: 1px solid #ddd; 498 | border-radius: 3px; 499 | color: #333; 500 | cursor: pointer; 501 | display: inline-block; 502 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 503 | font-size: 16px; 504 | line-height: 1.25; 505 | margin: 15px 0 0; 506 | padding: 5px 10px; 507 | text-align: center; } 508 | .btn:hover, .btn:active { 509 | background-color: #f2f2f2; 510 | text-decoration: none; } 511 | .btn[disabled] { 512 | cursor: default; 513 | opacity: 0.5; 514 | pointer-events: none; } 515 | 516 | .btn-primary { 517 | background-color: #2680d9; 518 | border-color: #2680d9; 519 | color: white; } 520 | .btn-primary:hover, .btn-primary:active { 521 | background-color: #2273c3; } 522 | .btn-primary[disabled] { 523 | cursor: default; 524 | opacity: 0.5; 525 | pointer-events: none; } 526 | 527 | .btn-danger { 528 | background-color: #db5757; 529 | border-color: #db5757; 530 | color: white; } 531 | .btn-danger:hover, .btn-danger:active { 532 | background-color: #d74242; } 533 | .btn-danger[disabled] { 534 | cursor: default; 535 | opacity: 0.5; 536 | pointer-events: none; } 537 | 538 | .btn-block { 539 | display: block; 540 | width: 100%; } 541 | 542 | .form { 543 | margin: 0; } 544 | .form label { 545 | border: 1px solid transparent; 546 | cursor: pointer; 547 | display: block; 548 | line-height: 1.25; 549 | margin-top: 15px; 550 | padding-bottom: 5px; 551 | padding-top: 5px; } 552 | .form [type=text], 553 | .form [type=password], 554 | .form [type=email], 555 | .form [type=search], 556 | .form [type=url], 557 | .form [type=tel], 558 | .form [type=number], 559 | .form textarea, 560 | .form select { 561 | -webkit-appearance: none; 562 | -moz-appearance: none; 563 | appearance: none; 564 | background-color: white; 565 | border: 1px solid #ddd; 566 | border-radius: 3px; 567 | color: #333; 568 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 569 | font-size: 16px; 570 | padding: 5px; 571 | display: block; 572 | line-height: 1.25; 573 | margin: 15px 0 0; 574 | width: 100%; } 575 | .form [type=text]:focus, 576 | .form [type=password]:focus, 577 | .form [type=email]:focus, 578 | .form [type=search]:focus, 579 | .form [type=url]:focus, 580 | .form [type=tel]:focus, 581 | .form [type=number]:focus, 582 | .form textarea:focus, 583 | .form select:focus { 584 | border-color: #2680d9; 585 | outline: 0; } 586 | @media (max-width: 767px) { 587 | .form [type=time], 588 | .form [type=week], 589 | .form [type=month], 590 | .form [type=date], 591 | .form [type=datetime-local] { 592 | margin: 15px 0 0; } } 593 | @media (min-width: 768px) { 594 | .form [type=time], 595 | .form [type=week], 596 | .form [type=month], 597 | .form [type=date], 598 | .form [type=datetime-local] { 599 | -webkit-appearance: none; 600 | -moz-appearance: none; 601 | appearance: none; 602 | background-color: white; 603 | border: 1px solid #ddd; 604 | border-radius: 3px; 605 | color: #333; 606 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 607 | font-size: 16px; 608 | padding: 5px; 609 | display: block; 610 | line-height: 1.25; 611 | margin: 15px 0 0; 612 | width: 100%; } 613 | .form [type=time]:focus, 614 | .form [type=week]:focus, 615 | .form [type=month]:focus, 616 | .form [type=date]:focus, 617 | .form [type=datetime-local]:focus { 618 | border-color: #2680d9; 619 | outline: 0; } } 620 | .form [type=checkbox], 621 | .form [type=radio] { 622 | cursor: pointer; 623 | margin: 0 5px 0 0; } 624 | .form select { 625 | cursor: pointer; } 626 | .form [type=file], 627 | .form [type=range] { 628 | display: block; 629 | line-height: 1.25; 630 | margin: 15px 0 0; 631 | width: 100%; 632 | border-top: 1px solid transparent; 633 | border-bottom: 1px solid transparent; 634 | cursor: pointer; 635 | padding-bottom: 5px; 636 | padding-top: 5px; } 637 | .form [type=color], 638 | .form [type=image] { 639 | cursor: pointer; 640 | display: block; 641 | margin: 15px 0 0; } 642 | .form [disabled] { 643 | cursor: default; 644 | opacity: 0.5; 645 | pointer-events: none; } 646 | .form [readonly] { 647 | background-color: #f2f2f2; } 648 | 649 | .scroll-view { 650 | overflow: auto; 651 | -webkit-overflow-scrolling: touch; } 652 | 653 | .text-left { 654 | text-align: left; } 655 | 656 | .text-center { 657 | text-align: center; } 658 | 659 | .text-right { 660 | text-align: right; } 661 | 662 | .text-muted { 663 | color: #777; } 664 | 665 | .text-primary { 666 | color: #2680d9; } 667 | 668 | .text-danger { 669 | color: #db5757; } 670 | 671 | a.text-muted, 672 | a.text-primary, 673 | a.text-danger { 674 | text-decoration: underline; } 675 | 676 | .text-small { 677 | font-size: 85%; } 678 | -------------------------------------------------------------------------------- /docs/css/mobi.css/mobi.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";/*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}html{font-size:10px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;margin:0}h1,h2,h3,h4,h5,h6{margin:30px 0 0}address,blockquote,dl,figure,hr,ol,p,pre,table,ul{margin:15px 0 0}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:32px}h2{font-size:26px}h3{font-size:22px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}a{color:#2680d9;text-decoration:none;-webkit-text-decoration-skip:objects}a:active,a:hover{text-decoration:underline}b,dt,strong{font-weight:600}code,kbd,samp{background-color:#f2f2f2;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:85%;padding:.2em .3em}pre{background-color:#f2f2f2;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:13px;line-height:1.2;overflow:auto;-webkit-overflow-scrolling:touch;padding:15px}pre code{background-color:transparent;font-size:13px;padding:0}blockquote{border-left:5px solid #ddd;color:#777;padding-left:15px}ol,ul{padding-left:30px}dd,dt,ol ol,ol ul,ul ol,ul ul{margin:0}hr{border:0;border-top:1px solid #ddd}small{font-size:85%}sub,sup{font-size:85%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.2em}sup{top:-.4em}address,time{font-style:normal}mark{background-color:#ff0;color:#333;padding:0 .2em}rt{font-size:60%}abbr[title]{border-bottom:0;text-decoration:underline;text-decoration:underline dotted}audio:not([controls]){display:none;height:0}img{max-width:100%;vertical-align:middle}audio,video{max-width:100%}figcaption{color:#777;font-size:85%}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}button,input,select,textarea{font:inherit}::-webkit-file-upload-button,[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button;appearance:button}[type=search]{-webkit-appearance:none;-moz-appearance:none;appearance:none}::-webkit-file-upload-button{font:inherit}[hidden]{display:none}fieldset{border:1px solid #ddd;margin:15px 0 0;padding:0 15px 15px}legend{padding:0 .2em}optgroup{color:#777;font-style:normal;font-weight:400}option{color:#333}progress{max-width:100%}.container,.container-fluid,.container-wider{overflow:hidden;padding:0 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.container{max-width:800px}.container-wider{max-width:1200px}.flex-bottom,.flex-center,.flex-left,.flex-middle,.flex-right,.flex-top,.flex-vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-bottom,.flex-center,.flex-left,.flex-middle,.flex-right,.flex-top,.flex-vertical.flex-bottom,.flex-vertical.flex-center,.flex-vertical.flex-left,.flex-vertical.flex-middle,.flex-vertical.flex-right,.flex-vertical.flex-top{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.flex-center,.flex-vertical.flex-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.flex-right,.flex-vertical.flex-bottom{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-top,.flex-vertical.flex-left{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.flex-middle,.flex-vertical.flex-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.flex-bottom,.flex-vertical.flex-right{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.units-gap{margin-left:-7.5px;margin-right:-7.5px}.units-gap>.unit,.units-gap>.unit-0,.units-gap>.unit-1,.units-gap>.unit-1-2,.units-gap>.unit-1-3,.units-gap>.unit-1-4,.units-gap>.unit-1-on-mobile,.units-gap>.unit-2-3,.units-gap>.unit-3-4{padding-left:7.5px;padding-right:7.5px}.units-gap-big{margin-left:-15px;margin-right:-15px}.units-gap-big>.unit,.units-gap-big>.unit-0,.units-gap-big>.unit-1,.units-gap-big>.unit-1-2,.units-gap-big>.unit-1-3,.units-gap-big>.unit-1-4,.units-gap-big>.unit-1-on-mobile,.units-gap-big>.unit-2-3,.units-gap-big>.unit-3-4{padding-left:15px;padding-right:15px}.unit{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.unit-1,.unit-1-2,.unit-1-3,.unit-1-4,.unit-1-on-mobile,.unit-2-3,.unit-3-4{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.unit-1{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.unit-1-2{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.unit-1-3{-webkit-flex-basis:33.33%;-ms-flex-preferred-size:33.33%;flex-basis:33.33%;max-width:33.33%}.unit-2-3{-webkit-flex-basis:66.67%;-ms-flex-preferred-size:66.67%;flex-basis:66.67%;max-width:66.67%}.unit-1-4{-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.unit-3-4{-webkit-flex-basis:75%;-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.flex-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-vertical>.unit,.flex-vertical>.unit-0,.flex-vertical>.unit-1,.flex-vertical>.unit-1-2,.flex-vertical>.unit-1-3,.flex-vertical>.unit-1-4,.flex-vertical>.unit-1-on-mobile,.flex-vertical>.unit-2-3,.flex-vertical>.unit-3-4{max-width:none}.flex-vertical>.unit-1{max-height:100%}.flex-vertical>.unit-1-2{max-height:50%}.flex-vertical>.unit-1-3{max-height:33.33%}.flex-vertical>.unit-2-3{max-height:66.67%}.flex-vertical>.unit-1-4{max-height:25%}.flex-vertical>.unit-3-4{max-height:75%}.flex-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){.unit-1-on-mobile{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.flex-vertical>.unit-1-on-mobile{max-height:100%}}.top-gap-big{margin-top:30px!important}.top-gap{margin-top:15px!important}.top-gap-0{margin-top:0!important}@media (max-width:767px){.hide-on-mobile{display:none!important}}@media (min-width:768px){.show-on-mobile{display:none!important}}.table{background-color:#fff;border:0;border-collapse:collapse;border-spacing:0;width:100%}.table caption{caption-side:bottom;color:#777;font-size:85%;padding:5px;text-align:left}.table td,.table th{border:0;border-bottom:1px solid #ddd;padding:5px;text-align:left}.table th{background-color:#f2f2f2;font-weight:600}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.25;margin:15px 0 0;padding:5px 10px;text-align:center}.btn:active,.btn:hover{background-color:#f2f2f2;text-decoration:none}.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-primary{background-color:#2680d9;border-color:#2680d9;color:#fff}.btn-primary:active,.btn-primary:hover{background-color:#2273c3}.btn-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-danger{background-color:#db5757;border-color:#db5757;color:#fff}.btn-danger:active,.btn-danger:hover{background-color:#d74242}.btn-danger[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-block{display:block;width:100%}.form{margin:0}.form label{border:1px solid transparent;cursor:pointer;display:block;line-height:1.25;margin-top:15px;padding-bottom:5px;padding-top:5px}.form [type=email],.form [type=number],.form [type=password],.form [type=search],.form [type=tel],.form [type=text],.form [type=url],.form select,.form textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;padding:5px;display:block;line-height:1.25;margin:15px 0 0;width:100%}.form [type=email]:focus,.form [type=number]:focus,.form [type=password]:focus,.form [type=search]:focus,.form [type=tel]:focus,.form [type=text]:focus,.form [type=url]:focus,.form select:focus,.form textarea:focus{border-color:#2680d9;outline:0}@media (max-width:767px){.form [type=date],.form [type=datetime-local],.form [type=month],.form [type=time],.form [type=week]{margin:15px 0 0}}@media (min-width:768px){.form [type=date],.form [type=datetime-local],.form [type=month],.form [type=time],.form [type=week]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;padding:5px;display:block;line-height:1.25;margin:15px 0 0;width:100%}.form [type=date]:focus,.form [type=datetime-local]:focus,.form [type=month]:focus,.form [type=time]:focus,.form [type=week]:focus{border-color:#2680d9;outline:0}}.form [type=checkbox],.form [type=radio]{cursor:pointer;margin:0 5px 0 0}.form select{cursor:pointer}.form [type=file],.form [type=range]{display:block;line-height:1.25;margin:15px 0 0;width:100%;border-top:1px solid transparent;border-bottom:1px solid transparent;cursor:pointer;padding-bottom:5px;padding-top:5px}.form [type=color],.form [type=image]{cursor:pointer;display:block;margin:15px 0 0}.form [disabled]{cursor:default;opacity:.5;pointer-events:none}.form [readonly]{background-color:#f2f2f2}.scroll-view{overflow:auto;-webkit-overflow-scrolling:touch}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:#777}.text-primary{color:#2680d9}.text-danger{color:#db5757}a.text-danger,a.text-muted,a.text-primary{text-decoration:underline}.text-small{font-size:85%} 2 | /*# sourceMappingURL=mobi.min.css.map */ 3 | -------------------------------------------------------------------------------- /docs/css/mobi.css/mobi.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["mobi.css"],"names":[],"mappings":"iBAAA,mDAEA,KACE,WAAY,WAEd,EAEA,QADA,SAEE,WAAY,QAEd,KACE,UAAW,KACX,yBAA0B,KACvB,sBAAuB,KACtB,qBAAsB,KAClB,iBAAkB,KAE5B,KACE,iBAAkB,KAClB,MAAO,KACP,YAAa,aAAa,CAAE,kBAAkB,CAAE,UAAU,CAAE,MAAQ,CAAE,MAAQ,CAAE,MAAQ,CAAE,SAAW,CAAE,WAAW,CAAE,YAAY,CAAE,kBAAkB,CAAE,iBAAiB,CAAE,MAAM,CAAE,KAAK,CAAE,SAAS,CAAE,OAAO,CAAE,UAAU,CAAE,mBAAmB,CAAE,gBAAgB,CAAE,kBAC/P,UAAW,KACX,YAAa,IACb,OAAQ,EAEV,GACA,GACA,GACA,GACA,GACA,GACE,OAAQ,KAAK,EAAE,EAUjB,QAPA,WAGA,GAKA,OANA,GAGA,GANA,EAOA,IALA,MAGA,GAKE,OAAQ,KAAK,EAAE,EAEjB,GACA,GACA,GACA,GACA,GACA,GACE,YAAa,IAEf,GACE,UAAW,KAEb,GACE,UAAW,KAEb,GACE,UAAW,KAEb,GACE,UAAW,KAEb,GACE,UAAW,KAEb,GACE,UAAW,KAEb,EACE,MAAO,QACP,gBAAiB,KACjB,6BAA8B,QAC9B,SAAU,QACR,gBAAiB,UAErB,EAEA,GADA,OAEE,YAAa,IAEf,KACA,IACA,KACE,iBAAkB,QAClB,YAAa,KAAK,CAAE,MAAM,CAAE,QAAQ,CAAE,iBAAiB,CAAE,aAAa,CAAE,UACxE,UAAW,IACX,QAAS,KAAM,KAEjB,IACE,iBAAkB,QAClB,YAAa,KAAK,CAAE,MAAM,CAAE,QAAQ,CAAE,iBAAiB,CAAE,aAAa,CAAE,UACxE,UAAW,KACX,YAAa,IACb,SAAU,KACV,2BAA4B,MAC5B,QAAS,KACT,SACE,iBAAkB,YAClB,UAAW,KACX,QAAS,EAEb,WACE,YAAa,IAAI,MAAM,KACvB,MAAO,KACP,aAAc,KAGhB,GADA,GAEE,aAAc,KAGhB,GADA,GAEA,MAEA,MACA,MAFA,MAGE,OAAQ,EAEV,GACE,OAAQ,EACR,WAAY,IAAI,MAAM,KAExB,MACE,UAAW,IAEb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SACV,eAAgB,SAElB,IACE,OAAQ,MAEV,IACE,IAAK,MAEP,QACA,KACE,WAAY,OAEd,KACE,iBAAkB,KAClB,MAAO,KACP,QAAS,EAAE,KAEb,GACE,UAAW,IAEb,YACE,cAAe,EACf,gBAAiB,UACjB,gBAAiB,UAAU,OAE7B,sBACE,QAAS,KACT,OAAQ,EAEV,IACE,UAAW,KACX,eAAgB,OAElB,MACA,MACE,UAAW,KAEb,WACE,MAAO,KACP,UAAW,IAEb,cACE,OAAQ,QAKV,cAHA,EACA,KACA,OAEA,MACA,MACA,OACA,QACA,SACE,iBAAkB,aACd,aAAc,aAEpB,OACA,MACA,OACA,SACE,KAAM,QAMR,6BAFA,aACA,cAHA,OACA,mBAIE,mBAAoB,OACZ,WAAY,OAEtB,cACE,mBAAoB,KACjB,gBAAiB,KACZ,WAAY,KAEtB,6BACE,KAAM,QAER,SACE,QAAS,KAEX,SACE,OAAQ,IAAI,MAAM,KAClB,OAAQ,KAAK,EAAE,EACf,QAAS,EAAE,KAAK,KAElB,OACE,QAAS,EAAE,KAEb,SACE,MAAO,KACP,WAAY,OACZ,YAAa,IAEf,OACE,MAAO,KAET,SACE,UAAW,KAEb,WAEA,iBADA,iBAEE,SAAU,OACV,QAAS,EAAE,KAAK,KAChB,iBAAkB,EAClB,kBAAmB,EACf,kBAAmB,EACf,UAAW,EAErB,WACE,UAAW,MAEb,iBACE,UAAW,OAOb,aAJA,aADA,WAIA,aAFA,YACA,UAGA,eACE,mBAAoB,WACpB,sBAAuB,OACvB,kBAAmB,IAAI,OACnB,cAAe,IAAI,OACf,UAAW,IAAI,OACvB,QAAS,YACT,QAAS,aACT,QAAS,YACT,QAAS,KAOX,aAJA,aADA,WAIA,aAFA,YACA,UAQA,2BAJA,2BADA,yBAIA,2BAFA,0BACA,wBAGE,kBAAmB,QACnB,oBAAqB,QACjB,eAAgB,QACZ,YAAa,QACrB,iBAAkB,MAClB,wBAAyB,WACrB,cAAe,MACX,gBAAiB,WAE3B,aACA,2BACE,iBAAkB,OAClB,wBAAyB,OACrB,cAAe,OACX,gBAAiB,OAE3B,YACA,2BACE,iBAAkB,IAClB,wBAAyB,SACrB,cAAe,IACX,gBAAiB,SAE3B,UACA,yBACE,kBAAmB,MACnB,oBAAqB,WACjB,eAAgB,MACZ,YAAa,WAEvB,aACA,2BACE,kBAAmB,OACnB,oBAAqB,OACjB,eAAgB,OACZ,YAAa,OAEvB,aACA,0BACE,kBAAmB,IACnB,oBAAqB,SACjB,eAAgB,IACZ,YAAa,SAEvB,WACE,YAAa,OACb,aAAc,OACd,iBACA,mBACA,mBAEA,qBACA,qBAEA,qBAJA,6BAGA,qBAEA,qBACE,aAAc,MACd,cAAe,MAEnB,eACE,YAAa,MACb,aAAc,MACd,qBACA,uBACA,uBAEA,yBACA,yBAEA,yBAJA,iCAGA,yBAEA,yBACE,aAAc,KACd,cAAe,KAEnB,MACE,mBAAoB,EAChB,wBAAyB,EACrB,WAAY,EACpB,iBAAkB,EAClB,kBAAmB,EACf,kBAAmB,EACf,UAAW,EACnB,UAAW,KAEb,QAEA,UACA,UAEA,UAJA,kBAGA,UAEA,UACE,oBAAqB,EACjB,kBAAmB,EACf,YAAa,EAEvB,QACE,mBAAoB,KAChB,wBAAyB,KACrB,WAAY,KACpB,UAAW,KAEb,UACE,mBAAoB,IAChB,wBAAyB,IACrB,WAAY,IACpB,UAAW,IAEb,UACE,mBAAoB,OAChB,wBAAyB,OACrB,WAAY,OACpB,UAAW,OAEb,UACE,mBAAoB,OAChB,wBAAyB,OACrB,WAAY,OACpB,UAAW,OAEb,UACE,mBAAoB,IAChB,wBAAyB,IACrB,WAAY,IACpB,UAAW,IAEb,UACE,mBAAoB,IAChB,wBAAyB,IACrB,WAAY,IACpB,UAAW,IAEb,eACE,mBAAoB,SACpB,sBAAuB,OACvB,uBAAwB,OACpB,mBAAoB,OAChB,eAAgB,OACxB,qBACA,uBACA,uBAEA,yBACA,yBAEA,yBAJA,iCAGA,yBAEA,yBACE,UAAW,KACb,uBACE,WAAY,KACd,yBACE,WAAY,IACd,yBACE,WAAY,OACd,yBACE,WAAY,OACd,yBACE,WAAY,IACd,yBACE,WAAY,IAEhB,WACE,kBAAmB,KACf,cAAe,KACX,UAAW,KAErB,yBACE,kBACE,mBAAoB,KAChB,wBAAyB,KACrB,WAAY,KACpB,UAAW,KACb,iCACE,WAAY,MAEhB,aACE,WAAY,eAEd,SACE,WAAY,eAEd,WACE,WAAY,YAEd,yBACE,gBACE,QAAS,gBAEb,yBACE,gBACE,QAAS,gBAEb,OACE,iBAAkB,KAClB,OAAQ,EACR,gBAAiB,SACjB,eAAgB,EAChB,MAAO,KACP,eACE,aAAc,OACd,MAAO,KACP,UAAW,IACX,QAAS,IACT,WAAY,KAEd,UADA,UAEE,OAAQ,EACR,cAAe,IAAI,MAAM,KACzB,QAAS,IACT,WAAY,KACd,UACE,iBAAkB,QAClB,YAAa,IAEjB,KACE,mBAAoB,KACjB,gBAAiB,KACZ,WAAY,KACpB,iBAAkB,KAClB,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,MAAO,KACP,OAAQ,QACR,QAAS,aACT,YAAa,aAAa,CAAE,kBAAkB,CAAE,UAAU,CAAE,MAAQ,CAAE,MAAQ,CAAE,MAAQ,CAAE,SAAW,CAAE,WAAW,CAAE,YAAY,CAAE,kBAAkB,CAAE,iBAAiB,CAAE,MAAM,CAAE,KAAK,CAAE,SAAS,CAAE,OAAO,CAAE,UAAU,CAAE,mBAAmB,CAAE,gBAAgB,CAAE,kBAC/P,UAAW,KACX,YAAa,KACb,OAAQ,KAAK,EAAE,EACf,QAAS,IAAI,KACb,WAAY,OACA,YAAZ,WACE,iBAAkB,QAClB,gBAAiB,KACnB,eACE,OAAQ,QACR,QAAS,GACT,eAAgB,KAEpB,aACE,iBAAkB,QAClB,aAAc,QACd,MAAO,KACa,oBAApB,mBACE,iBAAkB,QACpB,uBACE,OAAQ,QACR,QAAS,GACT,eAAgB,KAEpB,YACE,iBAAkB,QAClB,aAAc,QACd,MAAO,KACY,mBAAnB,kBACE,iBAAkB,QACpB,sBACE,OAAQ,QACR,QAAS,GACT,eAAgB,KAEpB,WACE,QAAS,MACT,MAAO,KAET,MACE,OAAQ,EACR,YACE,OAAQ,IAAI,MAAM,YAClB,OAAQ,QACR,QAAS,MACT,YAAa,KACb,WAAY,KACZ,eAAgB,IAChB,YAAa,IAGf,mBAIA,oBALA,sBAEA,oBAEA,iBALA,kBAIA,iBAIA,aADA,eAEE,mBAAoB,KACjB,gBAAiB,KACZ,WAAY,KACpB,iBAAkB,KAClB,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,MAAO,KACP,YAAa,aAAa,CAAE,kBAAkB,CAAE,UAAU,CAAE,MAAQ,CAAE,MAAQ,CAAE,MAAQ,CAAE,SAAW,CAAE,WAAW,CAAE,YAAY,CAAE,kBAAkB,CAAE,iBAAiB,CAAE,MAAM,CAAE,KAAK,CAAE,SAAS,CAAE,OAAO,CAAE,UAAU,CAAE,mBAAmB,CAAE,gBAAgB,CAAE,kBAC/P,UAAW,KACX,QAAS,IACT,QAAS,MACT,YAAa,KACb,OAAQ,KAAK,EAAE,EACf,MAAO,KAGP,yBAIA,0BALA,4BAEA,0BAEA,uBALA,wBAIA,uBAIA,mBADA,qBAEE,aAAc,QACd,QAAS,EACb,yBAIE,kBACA,4BAFA,mBAFA,kBACA,kBAIE,OAAQ,KAAK,EAAE,GACnB,yBAIE,kBACA,4BAFA,mBAFA,kBACA,kBAIE,mBAAoB,KACjB,gBAAiB,KACZ,WAAY,KACpB,iBAAkB,KAClB,OAAQ,IAAI,MAAM,KAClB,cAAe,IACf,MAAO,KACP,YAAa,aAAa,CAAE,kBAAkB,CAAE,UAAU,CAAE,MAAQ,CAAE,MAAQ,CAAE,MAAQ,CAAE,SAAW,CAAE,WAAW,CAAE,YAAY,CAAE,kBAAkB,CAAE,iBAAiB,CAAE,MAAM,CAAE,KAAK,CAAE,SAAS,CAAE,OAAO,CAAE,UAAU,CAAE,mBAAmB,CAAE,gBAAgB,CAAE,kBAC/P,UAAW,KACX,QAAS,IACT,QAAS,MACT,YAAa,KACb,OAAQ,KAAK,EAAE,EACf,MAAO,KAIP,wBACA,kCAFA,yBAFA,wBACA,wBAIE,aAAc,QACd,QAAS,GACf,sBACA,mBACE,OAAQ,QACR,OAAQ,EAAE,IAAI,EAAE,EAClB,aACE,OAAQ,QACV,kBACA,mBACE,QAAS,MACT,YAAa,KACb,OAAQ,KAAK,EAAE,EACf,MAAO,KACP,WAAY,IAAI,MAAM,YACtB,cAAe,IAAI,MAAM,YACzB,OAAQ,QACR,eAAgB,IAChB,YAAa,IACf,mBACA,mBACE,OAAQ,QACR,QAAS,MACT,OAAQ,KAAK,EAAE,EACjB,iBACE,OAAQ,QACR,QAAS,GACT,eAAgB,KAClB,iBACE,iBAAkB,QAEtB,aACE,SAAU,KACV,2BAA4B,MAE9B,WACE,WAAY,KAEd,aACE,WAAY,OAEd,YACE,WAAY,MAEd,YACE,MAAO,KAET,cACE,MAAO,QAET,aACE,MAAO,QAIT,cAFA,aACA,eAEE,gBAAiB,UAEnB,YACE,UAAW","file":"mobi.min.css","sourcesContent":["/*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */\n@charset \"UTF-8\";\nhtml {\n box-sizing: border-box; }\n\n*,\n*::before,\n*::after {\n box-sizing: inherit; }\n\nhtml {\n font-size: 10px;\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n\nbody {\n background-color: white;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n line-height: 1.5;\n margin: 0; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 30px 0 0; }\n\np,\nblockquote,\ntable,\nhr,\ndl,\nul,\nol,\npre,\naddress,\nfigure {\n margin: 15px 0 0; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 600; }\n\nh1 {\n font-size: 32px; }\n\nh2 {\n font-size: 26px; }\n\nh3 {\n font-size: 22px; }\n\nh4 {\n font-size: 20px; }\n\nh5 {\n font-size: 18px; }\n\nh6 {\n font-size: 16px; }\n\na {\n color: #2680d9;\n text-decoration: none;\n -webkit-text-decoration-skip: objects; }\n a:active, a:hover {\n text-decoration: underline; }\n\nb,\nstrong,\ndt {\n font-weight: 600; }\n\ncode,\nkbd,\nsamp {\n background-color: #f2f2f2;\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 85%;\n padding: 0.2em 0.3em; }\n\npre {\n background-color: #f2f2f2;\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 13px;\n line-height: 1.2;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n padding: 15px; }\n pre code {\n background-color: transparent;\n font-size: 13px;\n padding: 0; }\n\nblockquote {\n border-left: 5px solid #ddd;\n color: #777;\n padding-left: 15px; }\n\nul,\nol {\n padding-left: 30px; }\n\ndt,\ndd,\nol ol,\nul ul,\nol ul,\nul ol {\n margin: 0; }\n\nhr {\n border: 0;\n border-top: 1px solid #ddd; }\n\nsmall {\n font-size: 85%; }\n\nsub,\nsup {\n font-size: 85%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsub {\n bottom: -0.2em; }\n\nsup {\n top: -0.4em; }\n\naddress,\ntime {\n font-style: normal; }\n\nmark {\n background-color: yellow;\n color: #333;\n padding: 0 0.2em; }\n\nrt {\n font-size: 60%; }\n\nabbr[title] {\n border-bottom: 0;\n text-decoration: underline;\n text-decoration: underline dotted; }\n\naudio:not([controls]) {\n display: none;\n height: 0; }\n\nimg {\n max-width: 100%;\n vertical-align: middle; }\n\naudio,\nvideo {\n max-width: 100%; }\n\nfigcaption {\n color: #777;\n font-size: 85%; }\n\n[role=\"button\"] {\n cursor: pointer; }\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n -ms-touch-action: manipulation;\n touch-action: manipulation; }\n\nbutton,\ninput,\nselect,\ntextarea {\n font: inherit; }\n\nbutton,\nhtml [type=button],\n[type=reset],\n[type=submit],\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n appearance: button; }\n\n[type=search] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit; }\n\n[hidden] {\n display: none; }\n\nfieldset {\n border: 1px solid #ddd;\n margin: 15px 0 0;\n padding: 0 15px 15px; }\n\nlegend {\n padding: 0 0.2em; }\n\noptgroup {\n color: #777;\n font-style: normal;\n font-weight: normal; }\n\noption {\n color: #333; }\n\nprogress {\n max-width: 100%; }\n\n.container,\n.container-wider,\n.container-fluid {\n overflow: hidden;\n padding: 0 15px 15px;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1; }\n\n.container {\n max-width: 800px; }\n\n.container-wider {\n max-width: 1200px; }\n\n.flex-left,\n.flex-center,\n.flex-right,\n.flex-top,\n.flex-middle,\n.flex-bottom,\n.flex-vertical {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-flow: row nowrap;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex; }\n\n.flex-left,\n.flex-center,\n.flex-right,\n.flex-top,\n.flex-middle,\n.flex-bottom,\n.flex-vertical.flex-left,\n.flex-vertical.flex-center,\n.flex-vertical.flex-right,\n.flex-vertical.flex-top,\n.flex-vertical.flex-middle,\n.flex-vertical.flex-bottom {\n -webkit-box-align: stretch;\n -webkit-align-items: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n -webkit-box-pack: start;\n -webkit-justify-content: flex-start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n\n.flex-center,\n.flex-vertical.flex-middle {\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center; }\n\n.flex-right,\n.flex-vertical.flex-bottom {\n -webkit-box-pack: end;\n -webkit-justify-content: flex-end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n\n.flex-top,\n.flex-vertical.flex-left {\n -webkit-box-align: start;\n -webkit-align-items: flex-start;\n -ms-flex-align: start;\n align-items: flex-start; }\n\n.flex-middle,\n.flex-vertical.flex-center {\n -webkit-box-align: center;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center; }\n\n.flex-bottom,\n.flex-vertical.flex-right {\n -webkit-box-align: end;\n -webkit-align-items: flex-end;\n -ms-flex-align: end;\n align-items: flex-end; }\n\n.units-gap {\n margin-left: -7.5px;\n margin-right: -7.5px; }\n .units-gap > .unit,\n .units-gap > .unit-0,\n .units-gap > .unit-1,\n .units-gap > .unit-1-on-mobile,\n .units-gap > .unit-1-2,\n .units-gap > .unit-1-3,\n .units-gap > .unit-2-3,\n .units-gap > .unit-1-4,\n .units-gap > .unit-3-4 {\n padding-left: 7.5px;\n padding-right: 7.5px; }\n\n.units-gap-big {\n margin-left: -15px;\n margin-right: -15px; }\n .units-gap-big > .unit,\n .units-gap-big > .unit-0,\n .units-gap-big > .unit-1,\n .units-gap-big > .unit-1-on-mobile,\n .units-gap-big > .unit-1-2,\n .units-gap-big > .unit-1-3,\n .units-gap-big > .unit-2-3,\n .units-gap-big > .unit-1-4,\n .units-gap-big > .unit-3-4 {\n padding-left: 15px;\n padding-right: 15px; }\n\n.unit {\n -webkit-flex-basis: 0;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n\n.unit-1,\n.unit-1-on-mobile,\n.unit-1-2,\n.unit-1-3,\n.unit-2-3,\n.unit-1-4,\n.unit-3-4 {\n -webkit-flex-shrink: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n\n.unit-1 {\n -webkit-flex-basis: 100%;\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n max-width: 100%; }\n\n.unit-1-2 {\n -webkit-flex-basis: 50%;\n -ms-flex-preferred-size: 50%;\n flex-basis: 50%;\n max-width: 50%; }\n\n.unit-1-3 {\n -webkit-flex-basis: 33.33%;\n -ms-flex-preferred-size: 33.33%;\n flex-basis: 33.33%;\n max-width: 33.33%; }\n\n.unit-2-3 {\n -webkit-flex-basis: 66.67%;\n -ms-flex-preferred-size: 66.67%;\n flex-basis: 66.67%;\n max-width: 66.67%; }\n\n.unit-1-4 {\n -webkit-flex-basis: 25%;\n -ms-flex-preferred-size: 25%;\n flex-basis: 25%;\n max-width: 25%; }\n\n.unit-3-4 {\n -webkit-flex-basis: 75%;\n -ms-flex-preferred-size: 75%;\n flex-basis: 75%;\n max-width: 75%; }\n\n.flex-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column; }\n .flex-vertical > .unit,\n .flex-vertical > .unit-0,\n .flex-vertical > .unit-1,\n .flex-vertical > .unit-1-on-mobile,\n .flex-vertical > .unit-1-2,\n .flex-vertical > .unit-1-3,\n .flex-vertical > .unit-2-3,\n .flex-vertical > .unit-1-4,\n .flex-vertical > .unit-3-4 {\n max-width: none; }\n .flex-vertical > .unit-1 {\n max-height: 100%; }\n .flex-vertical > .unit-1-2 {\n max-height: 50%; }\n .flex-vertical > .unit-1-3 {\n max-height: 33.33%; }\n .flex-vertical > .unit-2-3 {\n max-height: 66.67%; }\n .flex-vertical > .unit-1-4 {\n max-height: 25%; }\n .flex-vertical > .unit-3-4 {\n max-height: 75%; }\n\n.flex-wrap {\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n\n@media (max-width: 767px) {\n .unit-1-on-mobile {\n -webkit-flex-basis: 100%;\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n max-width: 100%; }\n .flex-vertical > .unit-1-on-mobile {\n max-height: 100%; } }\n\n.top-gap-big {\n margin-top: 30px !important; }\n\n.top-gap {\n margin-top: 15px !important; }\n\n.top-gap-0 {\n margin-top: 0 !important; }\n\n@media (max-width: 767px) {\n .hide-on-mobile {\n display: none !important; } }\n\n@media (min-width: 768px) {\n .show-on-mobile {\n display: none !important; } }\n\n.table {\n background-color: white;\n border: 0;\n border-collapse: collapse;\n border-spacing: 0;\n width: 100%; }\n .table caption {\n caption-side: bottom;\n color: #777;\n font-size: 85%;\n padding: 5px;\n text-align: left; }\n .table th,\n .table td {\n border: 0;\n border-bottom: 1px solid #ddd;\n padding: 5px;\n text-align: left; }\n .table th {\n background-color: #f2f2f2;\n font-weight: 600; }\n\n.btn {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n line-height: 1.25;\n margin: 15px 0 0;\n padding: 5px 10px;\n text-align: center; }\n .btn:hover, .btn:active {\n background-color: #f2f2f2;\n text-decoration: none; }\n .btn[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-primary {\n background-color: #2680d9;\n border-color: #2680d9;\n color: white; }\n .btn-primary:hover, .btn-primary:active {\n background-color: #2273c3; }\n .btn-primary[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-danger {\n background-color: #db5757;\n border-color: #db5757;\n color: white; }\n .btn-danger:hover, .btn-danger:active {\n background-color: #d74242; }\n .btn-danger[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-block {\n display: block;\n width: 100%; }\n\n.form {\n margin: 0; }\n .form label {\n border: 1px solid transparent;\n cursor: pointer;\n display: block;\n line-height: 1.25;\n margin-top: 15px;\n padding-bottom: 5px;\n padding-top: 5px; }\n .form [type=text],\n .form [type=password],\n .form [type=email],\n .form [type=search],\n .form [type=url],\n .form [type=tel],\n .form [type=number],\n .form textarea,\n .form select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n padding: 5px;\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%; }\n .form [type=text]:focus,\n .form [type=password]:focus,\n .form [type=email]:focus,\n .form [type=search]:focus,\n .form [type=url]:focus,\n .form [type=tel]:focus,\n .form [type=number]:focus,\n .form textarea:focus,\n .form select:focus {\n border-color: #2680d9;\n outline: 0; }\n @media (max-width: 767px) {\n .form [type=time],\n .form [type=week],\n .form [type=month],\n .form [type=date],\n .form [type=datetime-local] {\n margin: 15px 0 0; } }\n @media (min-width: 768px) {\n .form [type=time],\n .form [type=week],\n .form [type=month],\n .form [type=date],\n .form [type=datetime-local] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n padding: 5px;\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%; }\n .form [type=time]:focus,\n .form [type=week]:focus,\n .form [type=month]:focus,\n .form [type=date]:focus,\n .form [type=datetime-local]:focus {\n border-color: #2680d9;\n outline: 0; } }\n .form [type=checkbox],\n .form [type=radio] {\n cursor: pointer;\n margin: 0 5px 0 0; }\n .form select {\n cursor: pointer; }\n .form [type=file],\n .form [type=range] {\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n cursor: pointer;\n padding-bottom: 5px;\n padding-top: 5px; }\n .form [type=color],\n .form [type=image] {\n cursor: pointer;\n display: block;\n margin: 15px 0 0; }\n .form [disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n .form [readonly] {\n background-color: #f2f2f2; }\n\n.scroll-view {\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n\n.text-left {\n text-align: left; }\n\n.text-center {\n text-align: center; }\n\n.text-right {\n text-align: right; }\n\n.text-muted {\n color: #777; }\n\n.text-primary {\n color: #2680d9; }\n\n.text-danger {\n color: #db5757; }\n\na.text-muted,\na.text-primary,\na.text-danger {\n text-decoration: underline; }\n\n.text-small {\n font-size: 85%; }\n"]} -------------------------------------------------------------------------------- /docs/css/site.css: -------------------------------------------------------------------------------- 1 | .site-bookmark-ul { 2 | padding-left: 0; 3 | margin-top: 7.5px; 4 | } 5 | 6 | .site-bookmark-li { 7 | margin-top: 7.5px; 8 | list-style: none; 9 | } 10 | 11 | .site-bookmark-a { 12 | color: #333; 13 | padding: 0 7.5px; 14 | } 15 | 16 | .site-bookmark-a:hover, 17 | .site-bookmark-a:focus, 18 | .site-bookmark-a-focus { 19 | opacity: 1; 20 | text-decoration: none; 21 | background-color: #f2f2f2; 22 | } 23 | 24 | .site-bookmark-a:focus, 25 | .site-bookmark-a-focus { 26 | outline: 3px auto #2680d9; 27 | } 28 | 29 | .site-bookmark-a:focus ~ .site-bookmark-a-focus { 30 | background-color: transparent; 31 | } 32 | 33 | .site-bookmark-img { 34 | margin-right: 5px; 35 | } 36 | -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/favicon.ico -------------------------------------------------------------------------------- /docs/img/asciiflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/asciiflow.png -------------------------------------------------------------------------------- /docs/img/chuangzaoshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/chuangzaoshi.png -------------------------------------------------------------------------------- /docs/img/cnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/cnode.png -------------------------------------------------------------------------------- /docs/img/codepen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/codepen.ico -------------------------------------------------------------------------------- /docs/img/domcomp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/domcomp.png -------------------------------------------------------------------------------- /docs/img/echo-js.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/echo-js.ico -------------------------------------------------------------------------------- /docs/img/favicon-generator.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/favicon-generator.ico -------------------------------------------------------------------------------- /docs/img/feweekly.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/feweekly.ico -------------------------------------------------------------------------------- /docs/img/gauges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/gauges.png -------------------------------------------------------------------------------- /docs/img/github.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/github.ico -------------------------------------------------------------------------------- /docs/img/google-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/google-analytics.png -------------------------------------------------------------------------------- /docs/img/guanggoo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/guanggoo.ico -------------------------------------------------------------------------------- /docs/img/hacker-news.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/hacker-news.ico -------------------------------------------------------------------------------- /docs/img/hacpai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/hacpai.png -------------------------------------------------------------------------------- /docs/img/hsl-color-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/hsl-color-picker.png -------------------------------------------------------------------------------- /docs/img/inbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/inbox.png -------------------------------------------------------------------------------- /docs/img/juejin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/juejin.ico -------------------------------------------------------------------------------- /docs/img/mobile-friendly-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/mobile-friendly-test.png -------------------------------------------------------------------------------- /docs/img/mouto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/mouto.jpg -------------------------------------------------------------------------------- /docs/img/name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/name.png -------------------------------------------------------------------------------- /docs/img/npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/npm.png -------------------------------------------------------------------------------- /docs/img/online-converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/online-converter.png -------------------------------------------------------------------------------- /docs/img/online-photo-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/online-photo-editor.png -------------------------------------------------------------------------------- /docs/img/product-hunt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/product-hunt.ico -------------------------------------------------------------------------------- /docs/img/reddit.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/reddit.ico -------------------------------------------------------------------------------- /docs/img/regexr.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/regexr.ico -------------------------------------------------------------------------------- /docs/img/ruby-china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/ruby-china.png -------------------------------------------------------------------------------- /docs/img/segmentfault.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/segmentfault.ico -------------------------------------------------------------------------------- /docs/img/shuibaco.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/shuibaco.ico -------------------------------------------------------------------------------- /docs/img/sketchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/sketchpad.png -------------------------------------------------------------------------------- /docs/img/startup-news.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/startup-news.ico -------------------------------------------------------------------------------- /docs/img/svg-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/svg-edit.png -------------------------------------------------------------------------------- /docs/img/tinypng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/tinypng.png -------------------------------------------------------------------------------- /docs/img/toutiao.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/toutiao.ico -------------------------------------------------------------------------------- /docs/img/twitter.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/twitter.ico -------------------------------------------------------------------------------- /docs/img/unicode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/unicode.png -------------------------------------------------------------------------------- /docs/img/unsplash-it.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/unsplash-it.ico -------------------------------------------------------------------------------- /docs/img/uzer-me.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/uzer-me.ico -------------------------------------------------------------------------------- /docs/img/v2ex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/v2ex.png -------------------------------------------------------------------------------- /docs/img/wechat.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/wechat.ico -------------------------------------------------------------------------------- /docs/img/weibo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/weibo.ico -------------------------------------------------------------------------------- /docs/img/xcatliu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/xcatliu.ico -------------------------------------------------------------------------------- /docs/img/yinwang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/yinwang.jpg -------------------------------------------------------------------------------- /docs/img/zhihu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/docs/img/zhihu.ico -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | xcatliu's personal front page 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | 21 |
22 | 23 |
24 | 25 | 26 | 587 | 588 | 589 | 593 | 594 |
595 |
596 | 597 | 598 | 599 | 600 | -------------------------------------------------------------------------------- /docs/js/search.js: -------------------------------------------------------------------------------- 1 | /* eslint-env browser */ 2 | /* eslint no-var:0, prefer-arrow-callback:0, func-names:0, vars-on-top:0, no-use-before-define:0 */ 3 | 4 | (function () { 5 | var searchForm = document.getElementById('search-form'); 6 | var searchInput = document.getElementById('search-input'); 7 | var searchStyle = document.getElementById('search-style'); 8 | 9 | document.addEventListener('keyup', handleGlobalKeyup); 10 | searchForm.addEventListener('submit', handleSearchFormSubmit); 11 | searchInput.addEventListener('keyup', handleSearchInputKeyup); 12 | 13 | function handleGlobalKeyup(e) { 14 | if (e.altKey || e.ctrlKey || e.metaKey || document.activeElement === searchInput) { 15 | return; 16 | } 17 | var c = String.fromCharCode(e.keyCode).toLowerCase(); 18 | if (c.match(/\w/)) { 19 | searchInput.focus(); 20 | searchInput.value = c; 21 | handleSearchInputKeyup(); 22 | } 23 | } 24 | 25 | function handleSearchFormSubmit(e) { 26 | e.preventDefault(); 27 | var focusedResult = document.querySelector('.site-bookmark-a-focus'); 28 | if (focusedResult) { 29 | location.href = focusedResult.href; 30 | } 31 | } 32 | 33 | function handleSearchInputKeyup() { 34 | clearTabindex(); 35 | clearFocus(); 36 | 37 | var query = searchInput.value.trim().toLowerCase(); 38 | if (query === '') { 39 | searchStyle.innerHTML = ''; 40 | return; 41 | } 42 | 43 | var splitedQuery = query.split(/\s+/); 44 | 45 | setSearchStyle(splitedQuery); 46 | setTabindex(splitedQuery); 47 | setFocus(splitedQuery); 48 | } 49 | 50 | searchInput.addEventListener('blur', function () { 51 | var focusedResult = document.querySelector('.site-bookmark-a-focus'); 52 | if (focusedResult) { 53 | focusedResult.classList.remove('site-bookmark-a-focus'); 54 | } 55 | }); 56 | 57 | function clearTabindex() { 58 | document.querySelectorAll('[tabindex="2"]').forEach((element) => { 59 | element.setAttribute('tabindex', '9'); 60 | }); 61 | } 62 | 63 | function clearFocus() { 64 | document.querySelectorAll('.site-bookmark-a-focus').forEach((element) => { 65 | element.classList.remove('site-bookmark-a-focus'); 66 | }); 67 | } 68 | 69 | function setSearchStyle(splitedQuery) { 70 | searchStyle.innerHTML = ` 71 | .site-bookmark-category { 72 | display: none; 73 | } 74 | .site-bookmark-a { 75 | opacity: 0.3; 76 | } 77 | ${generateQuerySelectorQuery(splitedQuery)} { 78 | order: -1; 79 | -ms-flex-order: -1; 80 | } 81 | ${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a { 82 | opacity: 1; 83 | } 84 | `; 85 | } 86 | 87 | function setTabindex(splitedQuery) { 88 | var filteredItems = document.querySelectorAll(`${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a`); 89 | 90 | filteredItems.forEach((item) => { 91 | item.setAttribute('tabindex', '2'); 92 | }); 93 | } 94 | 95 | function setFocus(splitedQuery) { 96 | var firstItem = document.querySelector(`${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a`); 97 | if (firstItem) { 98 | firstItem.classList.add('site-bookmark-a-focus'); 99 | } 100 | } 101 | 102 | function generateQuerySelectorQuery(splitedQuery) { 103 | return splitedQuery.map(query => `[data-name*="${query}"]`).join(''); 104 | } 105 | }()); 106 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "123", 3 | "version": "0.0.0", 4 | "description": "The personal front page", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "pagic build -ws", 8 | "build": "pagic build", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/xcatliu/123.git" 14 | }, 15 | "author": "xcatliu ", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/xcatliu/123/issues" 19 | }, 20 | "homepage": "https://github.com/xcatliu/123#readme", 21 | "devDependencies": { 22 | "eslint": "^3.19.0", 23 | "eslint-config-airbnb-base": "^11.1.3", 24 | "eslint-plugin-import": "^2.2.0", 25 | "pagic": "^0.6.0" 26 | }, 27 | "dependencies": { 28 | "pinyin": "^2.8.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/CNAME: -------------------------------------------------------------------------------- 1 | 123.xcatliu.com -------------------------------------------------------------------------------- /src/_layout.js: -------------------------------------------------------------------------------- 1 | /* eslint no-use-before-define:0, prefer-template:0 */ 2 | 3 | const pinyin = require('pinyin'); 4 | 5 | const CHINESE = /[\u4e00-\u9fa5]/; 6 | 7 | module.exports = ({ relativeToRoot, config }) => { 8 | return ` 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | ${config.title} 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 | ${renderSearch()} 27 | ${renderBookmarks()} 28 | ${renderFooter()} 29 |
30 |
31 | 32 | 33 | 34 | 35 | `; 36 | 37 | function renderSearch() { 38 | return ` 39 | 40 |
41 | 42 |
43 | `; 44 | } 45 | 46 | function renderBookmarks() { 47 | return ` 48 | 51 | `; 52 | } 53 | 54 | function renderBookmark({ category, name, url, favicon }) { 55 | if (category) { 56 | return ` 57 |
  • ${category}
  • 58 | `; 59 | } 60 | return ` 61 |
  • 65 | 66 | ${renderFavicon(favicon)} 67 | ${name} 68 | 69 |
  • 70 | `; 71 | } 72 | 73 | function renderFavicon(favicon) { 74 | if (!favicon) { 75 | return ''; 76 | } 77 | return ``; 78 | } 79 | 80 | function renderFooter() { 81 | return ` 82 | 86 | `; 87 | } 88 | }; 89 | 90 | function addPinyin(str) { 91 | if (!CHINESE.test(str)) { 92 | return str; 93 | } 94 | 95 | return str + ' ' + pinyin(str, { 96 | style: pinyin.STYLE_NORMAL, // 普通风格,即不带音标。 97 | }).join(''); 98 | } 99 | -------------------------------------------------------------------------------- /src/css/mobi.css/mobi.css: -------------------------------------------------------------------------------- 1 | /*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */ 2 | @charset "UTF-8"; 3 | html { 4 | box-sizing: border-box; } 5 | 6 | *, 7 | *::before, 8 | *::after { 9 | box-sizing: inherit; } 10 | 11 | html { 12 | font-size: 10px; 13 | -webkit-text-size-adjust: 100%; 14 | -moz-text-size-adjust: 100%; 15 | -ms-text-size-adjust: 100%; 16 | text-size-adjust: 100%; } 17 | 18 | body { 19 | background-color: white; 20 | color: #333; 21 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 22 | font-size: 16px; 23 | line-height: 1.5; 24 | margin: 0; } 25 | 26 | h1, 27 | h2, 28 | h3, 29 | h4, 30 | h5, 31 | h6 { 32 | margin: 30px 0 0; } 33 | 34 | p, 35 | blockquote, 36 | table, 37 | hr, 38 | dl, 39 | ul, 40 | ol, 41 | pre, 42 | address, 43 | figure { 44 | margin: 15px 0 0; } 45 | 46 | h1, 47 | h2, 48 | h3, 49 | h4, 50 | h5, 51 | h6 { 52 | font-weight: 600; } 53 | 54 | h1 { 55 | font-size: 32px; } 56 | 57 | h2 { 58 | font-size: 26px; } 59 | 60 | h3 { 61 | font-size: 22px; } 62 | 63 | h4 { 64 | font-size: 20px; } 65 | 66 | h5 { 67 | font-size: 18px; } 68 | 69 | h6 { 70 | font-size: 16px; } 71 | 72 | a { 73 | color: #2680d9; 74 | text-decoration: none; 75 | -webkit-text-decoration-skip: objects; } 76 | a:active, a:hover { 77 | text-decoration: underline; } 78 | 79 | b, 80 | strong, 81 | dt { 82 | font-weight: 600; } 83 | 84 | code, 85 | kbd, 86 | samp { 87 | background-color: #f2f2f2; 88 | font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 89 | font-size: 85%; 90 | padding: 0.2em 0.3em; } 91 | 92 | pre { 93 | background-color: #f2f2f2; 94 | font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 95 | font-size: 13px; 96 | line-height: 1.2; 97 | overflow: auto; 98 | -webkit-overflow-scrolling: touch; 99 | padding: 15px; } 100 | pre code { 101 | background-color: transparent; 102 | font-size: 13px; 103 | padding: 0; } 104 | 105 | blockquote { 106 | border-left: 5px solid #ddd; 107 | color: #777; 108 | padding-left: 15px; } 109 | 110 | ul, 111 | ol { 112 | padding-left: 30px; } 113 | 114 | dt, 115 | dd, 116 | ol ol, 117 | ul ul, 118 | ol ul, 119 | ul ol { 120 | margin: 0; } 121 | 122 | hr { 123 | border: 0; 124 | border-top: 1px solid #ddd; } 125 | 126 | small { 127 | font-size: 85%; } 128 | 129 | sub, 130 | sup { 131 | font-size: 85%; 132 | line-height: 0; 133 | position: relative; 134 | vertical-align: baseline; } 135 | 136 | sub { 137 | bottom: -0.2em; } 138 | 139 | sup { 140 | top: -0.4em; } 141 | 142 | address, 143 | time { 144 | font-style: normal; } 145 | 146 | mark { 147 | background-color: yellow; 148 | color: #333; 149 | padding: 0 0.2em; } 150 | 151 | rt { 152 | font-size: 60%; } 153 | 154 | abbr[title] { 155 | border-bottom: 0; 156 | text-decoration: underline; 157 | text-decoration: underline dotted; } 158 | 159 | audio:not([controls]) { 160 | display: none; 161 | height: 0; } 162 | 163 | img { 164 | max-width: 100%; 165 | vertical-align: middle; } 166 | 167 | audio, 168 | video { 169 | max-width: 100%; } 170 | 171 | figcaption { 172 | color: #777; 173 | font-size: 85%; } 174 | 175 | [role="button"] { 176 | cursor: pointer; } 177 | 178 | a, 179 | area, 180 | button, 181 | [role="button"], 182 | input, 183 | label, 184 | select, 185 | summary, 186 | textarea { 187 | -ms-touch-action: manipulation; 188 | touch-action: manipulation; } 189 | 190 | button, 191 | input, 192 | select, 193 | textarea { 194 | font: inherit; } 195 | 196 | button, 197 | html [type=button], 198 | [type=reset], 199 | [type=submit], 200 | ::-webkit-file-upload-button { 201 | -webkit-appearance: button; 202 | appearance: button; } 203 | 204 | [type=search] { 205 | -webkit-appearance: none; 206 | -moz-appearance: none; 207 | appearance: none; } 208 | 209 | ::-webkit-file-upload-button { 210 | font: inherit; } 211 | 212 | [hidden] { 213 | display: none; } 214 | 215 | fieldset { 216 | border: 1px solid #ddd; 217 | margin: 15px 0 0; 218 | padding: 0 15px 15px; } 219 | 220 | legend { 221 | padding: 0 0.2em; } 222 | 223 | optgroup { 224 | color: #777; 225 | font-style: normal; 226 | font-weight: normal; } 227 | 228 | option { 229 | color: #333; } 230 | 231 | progress { 232 | max-width: 100%; } 233 | 234 | .container, 235 | .container-wider, 236 | .container-fluid { 237 | overflow: hidden; 238 | padding: 0 15px 15px; 239 | -webkit-box-flex: 1; 240 | -webkit-flex-grow: 1; 241 | -ms-flex-positive: 1; 242 | flex-grow: 1; } 243 | 244 | .container { 245 | max-width: 800px; } 246 | 247 | .container-wider { 248 | max-width: 1200px; } 249 | 250 | .flex-left, 251 | .flex-center, 252 | .flex-right, 253 | .flex-top, 254 | .flex-middle, 255 | .flex-bottom, 256 | .flex-vertical { 257 | -webkit-box-orient: horizontal; 258 | -webkit-box-direction: normal; 259 | -webkit-flex-flow: row nowrap; 260 | -ms-flex-flow: row nowrap; 261 | flex-flow: row nowrap; 262 | display: -webkit-box; 263 | display: -webkit-flex; 264 | display: -ms-flexbox; 265 | display: flex; } 266 | 267 | .flex-left, 268 | .flex-center, 269 | .flex-right, 270 | .flex-top, 271 | .flex-middle, 272 | .flex-bottom, 273 | .flex-vertical.flex-left, 274 | .flex-vertical.flex-center, 275 | .flex-vertical.flex-right, 276 | .flex-vertical.flex-top, 277 | .flex-vertical.flex-middle, 278 | .flex-vertical.flex-bottom { 279 | -webkit-box-align: stretch; 280 | -webkit-align-items: stretch; 281 | -ms-flex-align: stretch; 282 | align-items: stretch; 283 | -webkit-box-pack: start; 284 | -webkit-justify-content: flex-start; 285 | -ms-flex-pack: start; 286 | justify-content: flex-start; } 287 | 288 | .flex-center, 289 | .flex-vertical.flex-middle { 290 | -webkit-box-pack: center; 291 | -webkit-justify-content: center; 292 | -ms-flex-pack: center; 293 | justify-content: center; } 294 | 295 | .flex-right, 296 | .flex-vertical.flex-bottom { 297 | -webkit-box-pack: end; 298 | -webkit-justify-content: flex-end; 299 | -ms-flex-pack: end; 300 | justify-content: flex-end; } 301 | 302 | .flex-top, 303 | .flex-vertical.flex-left { 304 | -webkit-box-align: start; 305 | -webkit-align-items: flex-start; 306 | -ms-flex-align: start; 307 | align-items: flex-start; } 308 | 309 | .flex-middle, 310 | .flex-vertical.flex-center { 311 | -webkit-box-align: center; 312 | -webkit-align-items: center; 313 | -ms-flex-align: center; 314 | align-items: center; } 315 | 316 | .flex-bottom, 317 | .flex-vertical.flex-right { 318 | -webkit-box-align: end; 319 | -webkit-align-items: flex-end; 320 | -ms-flex-align: end; 321 | align-items: flex-end; } 322 | 323 | .units-gap { 324 | margin-left: -7.5px; 325 | margin-right: -7.5px; } 326 | .units-gap > .unit, 327 | .units-gap > .unit-0, 328 | .units-gap > .unit-1, 329 | .units-gap > .unit-1-on-mobile, 330 | .units-gap > .unit-1-2, 331 | .units-gap > .unit-1-3, 332 | .units-gap > .unit-2-3, 333 | .units-gap > .unit-1-4, 334 | .units-gap > .unit-3-4 { 335 | padding-left: 7.5px; 336 | padding-right: 7.5px; } 337 | 338 | .units-gap-big { 339 | margin-left: -15px; 340 | margin-right: -15px; } 341 | .units-gap-big > .unit, 342 | .units-gap-big > .unit-0, 343 | .units-gap-big > .unit-1, 344 | .units-gap-big > .unit-1-on-mobile, 345 | .units-gap-big > .unit-1-2, 346 | .units-gap-big > .unit-1-3, 347 | .units-gap-big > .unit-2-3, 348 | .units-gap-big > .unit-1-4, 349 | .units-gap-big > .unit-3-4 { 350 | padding-left: 15px; 351 | padding-right: 15px; } 352 | 353 | .unit { 354 | -webkit-flex-basis: 0; 355 | -ms-flex-preferred-size: 0; 356 | flex-basis: 0; 357 | -webkit-box-flex: 1; 358 | -webkit-flex-grow: 1; 359 | -ms-flex-positive: 1; 360 | flex-grow: 1; 361 | max-width: 100%; } 362 | 363 | .unit-1, 364 | .unit-1-on-mobile, 365 | .unit-1-2, 366 | .unit-1-3, 367 | .unit-2-3, 368 | .unit-1-4, 369 | .unit-3-4 { 370 | -webkit-flex-shrink: 0; 371 | -ms-flex-negative: 0; 372 | flex-shrink: 0; } 373 | 374 | .unit-1 { 375 | -webkit-flex-basis: 100%; 376 | -ms-flex-preferred-size: 100%; 377 | flex-basis: 100%; 378 | max-width: 100%; } 379 | 380 | .unit-1-2 { 381 | -webkit-flex-basis: 50%; 382 | -ms-flex-preferred-size: 50%; 383 | flex-basis: 50%; 384 | max-width: 50%; } 385 | 386 | .unit-1-3 { 387 | -webkit-flex-basis: 33.33%; 388 | -ms-flex-preferred-size: 33.33%; 389 | flex-basis: 33.33%; 390 | max-width: 33.33%; } 391 | 392 | .unit-2-3 { 393 | -webkit-flex-basis: 66.67%; 394 | -ms-flex-preferred-size: 66.67%; 395 | flex-basis: 66.67%; 396 | max-width: 66.67%; } 397 | 398 | .unit-1-4 { 399 | -webkit-flex-basis: 25%; 400 | -ms-flex-preferred-size: 25%; 401 | flex-basis: 25%; 402 | max-width: 25%; } 403 | 404 | .unit-3-4 { 405 | -webkit-flex-basis: 75%; 406 | -ms-flex-preferred-size: 75%; 407 | flex-basis: 75%; 408 | max-width: 75%; } 409 | 410 | .flex-vertical { 411 | -webkit-box-orient: vertical; 412 | -webkit-box-direction: normal; 413 | -webkit-flex-direction: column; 414 | -ms-flex-direction: column; 415 | flex-direction: column; } 416 | .flex-vertical > .unit, 417 | .flex-vertical > .unit-0, 418 | .flex-vertical > .unit-1, 419 | .flex-vertical > .unit-1-on-mobile, 420 | .flex-vertical > .unit-1-2, 421 | .flex-vertical > .unit-1-3, 422 | .flex-vertical > .unit-2-3, 423 | .flex-vertical > .unit-1-4, 424 | .flex-vertical > .unit-3-4 { 425 | max-width: none; } 426 | .flex-vertical > .unit-1 { 427 | max-height: 100%; } 428 | .flex-vertical > .unit-1-2 { 429 | max-height: 50%; } 430 | .flex-vertical > .unit-1-3 { 431 | max-height: 33.33%; } 432 | .flex-vertical > .unit-2-3 { 433 | max-height: 66.67%; } 434 | .flex-vertical > .unit-1-4 { 435 | max-height: 25%; } 436 | .flex-vertical > .unit-3-4 { 437 | max-height: 75%; } 438 | 439 | .flex-wrap { 440 | -webkit-flex-wrap: wrap; 441 | -ms-flex-wrap: wrap; 442 | flex-wrap: wrap; } 443 | 444 | @media (max-width: 767px) { 445 | .unit-1-on-mobile { 446 | -webkit-flex-basis: 100%; 447 | -ms-flex-preferred-size: 100%; 448 | flex-basis: 100%; 449 | max-width: 100%; } 450 | .flex-vertical > .unit-1-on-mobile { 451 | max-height: 100%; } } 452 | 453 | .top-gap-big { 454 | margin-top: 30px !important; } 455 | 456 | .top-gap { 457 | margin-top: 15px !important; } 458 | 459 | .top-gap-0 { 460 | margin-top: 0 !important; } 461 | 462 | @media (max-width: 767px) { 463 | .hide-on-mobile { 464 | display: none !important; } } 465 | 466 | @media (min-width: 768px) { 467 | .show-on-mobile { 468 | display: none !important; } } 469 | 470 | .table { 471 | background-color: white; 472 | border: 0; 473 | border-collapse: collapse; 474 | border-spacing: 0; 475 | width: 100%; } 476 | .table caption { 477 | caption-side: bottom; 478 | color: #777; 479 | font-size: 85%; 480 | padding: 5px; 481 | text-align: left; } 482 | .table th, 483 | .table td { 484 | border: 0; 485 | border-bottom: 1px solid #ddd; 486 | padding: 5px; 487 | text-align: left; } 488 | .table th { 489 | background-color: #f2f2f2; 490 | font-weight: 600; } 491 | 492 | .btn { 493 | -webkit-appearance: none; 494 | -moz-appearance: none; 495 | appearance: none; 496 | background-color: white; 497 | border: 1px solid #ddd; 498 | border-radius: 3px; 499 | color: #333; 500 | cursor: pointer; 501 | display: inline-block; 502 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 503 | font-size: 16px; 504 | line-height: 1.25; 505 | margin: 15px 0 0; 506 | padding: 5px 10px; 507 | text-align: center; } 508 | .btn:hover, .btn:active { 509 | background-color: #f2f2f2; 510 | text-decoration: none; } 511 | .btn[disabled] { 512 | cursor: default; 513 | opacity: 0.5; 514 | pointer-events: none; } 515 | 516 | .btn-primary { 517 | background-color: #2680d9; 518 | border-color: #2680d9; 519 | color: white; } 520 | .btn-primary:hover, .btn-primary:active { 521 | background-color: #2273c3; } 522 | .btn-primary[disabled] { 523 | cursor: default; 524 | opacity: 0.5; 525 | pointer-events: none; } 526 | 527 | .btn-danger { 528 | background-color: #db5757; 529 | border-color: #db5757; 530 | color: white; } 531 | .btn-danger:hover, .btn-danger:active { 532 | background-color: #d74242; } 533 | .btn-danger[disabled] { 534 | cursor: default; 535 | opacity: 0.5; 536 | pointer-events: none; } 537 | 538 | .btn-block { 539 | display: block; 540 | width: 100%; } 541 | 542 | .form { 543 | margin: 0; } 544 | .form label { 545 | border: 1px solid transparent; 546 | cursor: pointer; 547 | display: block; 548 | line-height: 1.25; 549 | margin-top: 15px; 550 | padding-bottom: 5px; 551 | padding-top: 5px; } 552 | .form [type=text], 553 | .form [type=password], 554 | .form [type=email], 555 | .form [type=search], 556 | .form [type=url], 557 | .form [type=tel], 558 | .form [type=number], 559 | .form textarea, 560 | .form select { 561 | -webkit-appearance: none; 562 | -moz-appearance: none; 563 | appearance: none; 564 | background-color: white; 565 | border: 1px solid #ddd; 566 | border-radius: 3px; 567 | color: #333; 568 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 569 | font-size: 16px; 570 | padding: 5px; 571 | display: block; 572 | line-height: 1.25; 573 | margin: 15px 0 0; 574 | width: 100%; } 575 | .form [type=text]:focus, 576 | .form [type=password]:focus, 577 | .form [type=email]:focus, 578 | .form [type=search]:focus, 579 | .form [type=url]:focus, 580 | .form [type=tel]:focus, 581 | .form [type=number]:focus, 582 | .form textarea:focus, 583 | .form select:focus { 584 | border-color: #2680d9; 585 | outline: 0; } 586 | @media (max-width: 767px) { 587 | .form [type=time], 588 | .form [type=week], 589 | .form [type=month], 590 | .form [type=date], 591 | .form [type=datetime-local] { 592 | margin: 15px 0 0; } } 593 | @media (min-width: 768px) { 594 | .form [type=time], 595 | .form [type=week], 596 | .form [type=month], 597 | .form [type=date], 598 | .form [type=datetime-local] { 599 | -webkit-appearance: none; 600 | -moz-appearance: none; 601 | appearance: none; 602 | background-color: white; 603 | border: 1px solid #ddd; 604 | border-radius: 3px; 605 | color: #333; 606 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Hiragino Sans GB", "Microsoft Yahei", "微软雅黑", Arial, Helvetica, STHeiti, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 607 | font-size: 16px; 608 | padding: 5px; 609 | display: block; 610 | line-height: 1.25; 611 | margin: 15px 0 0; 612 | width: 100%; } 613 | .form [type=time]:focus, 614 | .form [type=week]:focus, 615 | .form [type=month]:focus, 616 | .form [type=date]:focus, 617 | .form [type=datetime-local]:focus { 618 | border-color: #2680d9; 619 | outline: 0; } } 620 | .form [type=checkbox], 621 | .form [type=radio] { 622 | cursor: pointer; 623 | margin: 0 5px 0 0; } 624 | .form select { 625 | cursor: pointer; } 626 | .form [type=file], 627 | .form [type=range] { 628 | display: block; 629 | line-height: 1.25; 630 | margin: 15px 0 0; 631 | width: 100%; 632 | border-top: 1px solid transparent; 633 | border-bottom: 1px solid transparent; 634 | cursor: pointer; 635 | padding-bottom: 5px; 636 | padding-top: 5px; } 637 | .form [type=color], 638 | .form [type=image] { 639 | cursor: pointer; 640 | display: block; 641 | margin: 15px 0 0; } 642 | .form [disabled] { 643 | cursor: default; 644 | opacity: 0.5; 645 | pointer-events: none; } 646 | .form [readonly] { 647 | background-color: #f2f2f2; } 648 | 649 | .scroll-view { 650 | overflow: auto; 651 | -webkit-overflow-scrolling: touch; } 652 | 653 | .text-left { 654 | text-align: left; } 655 | 656 | .text-center { 657 | text-align: center; } 658 | 659 | .text-right { 660 | text-align: right; } 661 | 662 | .text-muted { 663 | color: #777; } 664 | 665 | .text-primary { 666 | color: #2680d9; } 667 | 668 | .text-danger { 669 | color: #db5757; } 670 | 671 | a.text-muted, 672 | a.text-primary, 673 | a.text-danger { 674 | text-decoration: underline; } 675 | 676 | .text-small { 677 | font-size: 85%; } 678 | -------------------------------------------------------------------------------- /src/css/mobi.css/mobi.min.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";/*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}html{font-size:10px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;margin:0}h1,h2,h3,h4,h5,h6{margin:30px 0 0}address,blockquote,dl,figure,hr,ol,p,pre,table,ul{margin:15px 0 0}h1,h2,h3,h4,h5,h6{font-weight:600}h1{font-size:32px}h2{font-size:26px}h3{font-size:22px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}a{color:#2680d9;text-decoration:none;-webkit-text-decoration-skip:objects}a:active,a:hover{text-decoration:underline}b,dt,strong{font-weight:600}code,kbd,samp{background-color:#f2f2f2;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:85%;padding:.2em .3em}pre{background-color:#f2f2f2;font-family:Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:13px;line-height:1.2;overflow:auto;-webkit-overflow-scrolling:touch;padding:15px}pre code{background-color:transparent;font-size:13px;padding:0}blockquote{border-left:5px solid #ddd;color:#777;padding-left:15px}ol,ul{padding-left:30px}dd,dt,ol ol,ol ul,ul ol,ul ul{margin:0}hr{border:0;border-top:1px solid #ddd}small{font-size:85%}sub,sup{font-size:85%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.2em}sup{top:-.4em}address,time{font-style:normal}mark{background-color:#ff0;color:#333;padding:0 .2em}rt{font-size:60%}abbr[title]{border-bottom:0;text-decoration:underline;text-decoration:underline dotted}audio:not([controls]){display:none;height:0}img{max-width:100%;vertical-align:middle}audio,video{max-width:100%}figcaption{color:#777;font-size:85%}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}button,input,select,textarea{font:inherit}::-webkit-file-upload-button,[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button;appearance:button}[type=search]{-webkit-appearance:none;-moz-appearance:none;appearance:none}::-webkit-file-upload-button{font:inherit}[hidden]{display:none}fieldset{border:1px solid #ddd;margin:15px 0 0;padding:0 15px 15px}legend{padding:0 .2em}optgroup{color:#777;font-style:normal;font-weight:400}option{color:#333}progress{max-width:100%}.container,.container-fluid,.container-wider{overflow:hidden;padding:0 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.container{max-width:800px}.container-wider{max-width:1200px}.flex-bottom,.flex-center,.flex-left,.flex-middle,.flex-right,.flex-top,.flex-vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-bottom,.flex-center,.flex-left,.flex-middle,.flex-right,.flex-top,.flex-vertical.flex-bottom,.flex-vertical.flex-center,.flex-vertical.flex-left,.flex-vertical.flex-middle,.flex-vertical.flex-right,.flex-vertical.flex-top{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.flex-center,.flex-vertical.flex-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.flex-right,.flex-vertical.flex-bottom{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.flex-top,.flex-vertical.flex-left{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.flex-middle,.flex-vertical.flex-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.flex-bottom,.flex-vertical.flex-right{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.units-gap{margin-left:-7.5px;margin-right:-7.5px}.units-gap>.unit,.units-gap>.unit-0,.units-gap>.unit-1,.units-gap>.unit-1-2,.units-gap>.unit-1-3,.units-gap>.unit-1-4,.units-gap>.unit-1-on-mobile,.units-gap>.unit-2-3,.units-gap>.unit-3-4{padding-left:7.5px;padding-right:7.5px}.units-gap-big{margin-left:-15px;margin-right:-15px}.units-gap-big>.unit,.units-gap-big>.unit-0,.units-gap-big>.unit-1,.units-gap-big>.unit-1-2,.units-gap-big>.unit-1-3,.units-gap-big>.unit-1-4,.units-gap-big>.unit-1-on-mobile,.units-gap-big>.unit-2-3,.units-gap-big>.unit-3-4{padding-left:15px;padding-right:15px}.unit{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.unit-1,.unit-1-2,.unit-1-3,.unit-1-4,.unit-1-on-mobile,.unit-2-3,.unit-3-4{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.unit-1{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.unit-1-2{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.unit-1-3{-webkit-flex-basis:33.33%;-ms-flex-preferred-size:33.33%;flex-basis:33.33%;max-width:33.33%}.unit-2-3{-webkit-flex-basis:66.67%;-ms-flex-preferred-size:66.67%;flex-basis:66.67%;max-width:66.67%}.unit-1-4{-webkit-flex-basis:25%;-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.unit-3-4{-webkit-flex-basis:75%;-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.flex-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-vertical>.unit,.flex-vertical>.unit-0,.flex-vertical>.unit-1,.flex-vertical>.unit-1-2,.flex-vertical>.unit-1-3,.flex-vertical>.unit-1-4,.flex-vertical>.unit-1-on-mobile,.flex-vertical>.unit-2-3,.flex-vertical>.unit-3-4{max-width:none}.flex-vertical>.unit-1{max-height:100%}.flex-vertical>.unit-1-2{max-height:50%}.flex-vertical>.unit-1-3{max-height:33.33%}.flex-vertical>.unit-2-3{max-height:66.67%}.flex-vertical>.unit-1-4{max-height:25%}.flex-vertical>.unit-3-4{max-height:75%}.flex-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (max-width:767px){.unit-1-on-mobile{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.flex-vertical>.unit-1-on-mobile{max-height:100%}}.top-gap-big{margin-top:30px!important}.top-gap{margin-top:15px!important}.top-gap-0{margin-top:0!important}@media (max-width:767px){.hide-on-mobile{display:none!important}}@media (min-width:768px){.show-on-mobile{display:none!important}}.table{background-color:#fff;border:0;border-collapse:collapse;border-spacing:0;width:100%}.table caption{caption-side:bottom;color:#777;font-size:85%;padding:5px;text-align:left}.table td,.table th{border:0;border-bottom:1px solid #ddd;padding:5px;text-align:left}.table th{background-color:#f2f2f2;font-weight:600}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.25;margin:15px 0 0;padding:5px 10px;text-align:center}.btn:active,.btn:hover{background-color:#f2f2f2;text-decoration:none}.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-primary{background-color:#2680d9;border-color:#2680d9;color:#fff}.btn-primary:active,.btn-primary:hover{background-color:#2273c3}.btn-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-danger{background-color:#db5757;border-color:#db5757;color:#fff}.btn-danger:active,.btn-danger:hover{background-color:#d74242}.btn-danger[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn-block{display:block;width:100%}.form{margin:0}.form label{border:1px solid transparent;cursor:pointer;display:block;line-height:1.25;margin-top:15px;padding-bottom:5px;padding-top:5px}.form [type=email],.form [type=number],.form [type=password],.form [type=search],.form [type=tel],.form [type=text],.form [type=url],.form select,.form textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;padding:5px;display:block;line-height:1.25;margin:15px 0 0;width:100%}.form [type=email]:focus,.form [type=number]:focus,.form [type=password]:focus,.form [type=search]:focus,.form [type=tel]:focus,.form [type=text]:focus,.form [type=url]:focus,.form select:focus,.form textarea:focus{border-color:#2680d9;outline:0}@media (max-width:767px){.form [type=date],.form [type=datetime-local],.form [type=month],.form [type=time],.form [type=week]{margin:15px 0 0}}@media (min-width:768px){.form [type=date],.form [type=datetime-local],.form [type=month],.form [type=time],.form [type=week]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:3px;color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Hiragino Sans GB","Microsoft Yahei","微软雅黑",Arial,Helvetica,STHeiti,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;padding:5px;display:block;line-height:1.25;margin:15px 0 0;width:100%}.form [type=date]:focus,.form [type=datetime-local]:focus,.form [type=month]:focus,.form [type=time]:focus,.form [type=week]:focus{border-color:#2680d9;outline:0}}.form [type=checkbox],.form [type=radio]{cursor:pointer;margin:0 5px 0 0}.form select{cursor:pointer}.form [type=file],.form [type=range]{display:block;line-height:1.25;margin:15px 0 0;width:100%;border-top:1px solid transparent;border-bottom:1px solid transparent;cursor:pointer;padding-bottom:5px;padding-top:5px}.form [type=color],.form [type=image]{cursor:pointer;display:block;margin:15px 0 0}.form [disabled]{cursor:default;opacity:.5;pointer-events:none}.form [readonly]{background-color:#f2f2f2}.scroll-view{overflow:auto;-webkit-overflow-scrolling:touch}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:#777}.text-primary{color:#2680d9}.text-danger{color:#db5757}a.text-danger,a.text-muted,a.text-primary{text-decoration:underline}.text-small{font-size:85%} 2 | /*# sourceMappingURL=mobi.min.css.map */ 3 | -------------------------------------------------------------------------------- /src/css/mobi.css/mobi.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["mobi.css"],"names":[],"mappings":"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","file":"mobi.min.css","sourcesContent":["/*! Mobi.css v2.0.0-beta.1 http://getmobicss.com */\n@charset \"UTF-8\";\nhtml {\n box-sizing: border-box; }\n\n*,\n*::before,\n*::after {\n box-sizing: inherit; }\n\nhtml {\n font-size: 10px;\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%; }\n\nbody {\n background-color: white;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n line-height: 1.5;\n margin: 0; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 30px 0 0; }\n\np,\nblockquote,\ntable,\nhr,\ndl,\nul,\nol,\npre,\naddress,\nfigure {\n margin: 15px 0 0; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 600; }\n\nh1 {\n font-size: 32px; }\n\nh2 {\n font-size: 26px; }\n\nh3 {\n font-size: 22px; }\n\nh4 {\n font-size: 20px; }\n\nh5 {\n font-size: 18px; }\n\nh6 {\n font-size: 16px; }\n\na {\n color: #2680d9;\n text-decoration: none;\n -webkit-text-decoration-skip: objects; }\n a:active, a:hover {\n text-decoration: underline; }\n\nb,\nstrong,\ndt {\n font-weight: 600; }\n\ncode,\nkbd,\nsamp {\n background-color: #f2f2f2;\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 85%;\n padding: 0.2em 0.3em; }\n\npre {\n background-color: #f2f2f2;\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 13px;\n line-height: 1.2;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n padding: 15px; }\n pre code {\n background-color: transparent;\n font-size: 13px;\n padding: 0; }\n\nblockquote {\n border-left: 5px solid #ddd;\n color: #777;\n padding-left: 15px; }\n\nul,\nol {\n padding-left: 30px; }\n\ndt,\ndd,\nol ol,\nul ul,\nol ul,\nul ol {\n margin: 0; }\n\nhr {\n border: 0;\n border-top: 1px solid #ddd; }\n\nsmall {\n font-size: 85%; }\n\nsub,\nsup {\n font-size: 85%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsub {\n bottom: -0.2em; }\n\nsup {\n top: -0.4em; }\n\naddress,\ntime {\n font-style: normal; }\n\nmark {\n background-color: yellow;\n color: #333;\n padding: 0 0.2em; }\n\nrt {\n font-size: 60%; }\n\nabbr[title] {\n border-bottom: 0;\n text-decoration: underline;\n text-decoration: underline dotted; }\n\naudio:not([controls]) {\n display: none;\n height: 0; }\n\nimg {\n max-width: 100%;\n vertical-align: middle; }\n\naudio,\nvideo {\n max-width: 100%; }\n\nfigcaption {\n color: #777;\n font-size: 85%; }\n\n[role=\"button\"] {\n cursor: pointer; }\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput,\nlabel,\nselect,\nsummary,\ntextarea {\n -ms-touch-action: manipulation;\n touch-action: manipulation; }\n\nbutton,\ninput,\nselect,\ntextarea {\n font: inherit; }\n\nbutton,\nhtml [type=button],\n[type=reset],\n[type=submit],\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n appearance: button; }\n\n[type=search] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit; }\n\n[hidden] {\n display: none; }\n\nfieldset {\n border: 1px solid #ddd;\n margin: 15px 0 0;\n padding: 0 15px 15px; }\n\nlegend {\n padding: 0 0.2em; }\n\noptgroup {\n color: #777;\n font-style: normal;\n font-weight: normal; }\n\noption {\n color: #333; }\n\nprogress {\n max-width: 100%; }\n\n.container,\n.container-wider,\n.container-fluid {\n overflow: hidden;\n padding: 0 15px 15px;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1; }\n\n.container {\n max-width: 800px; }\n\n.container-wider {\n max-width: 1200px; }\n\n.flex-left,\n.flex-center,\n.flex-right,\n.flex-top,\n.flex-middle,\n.flex-bottom,\n.flex-vertical {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-flow: row nowrap;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex; }\n\n.flex-left,\n.flex-center,\n.flex-right,\n.flex-top,\n.flex-middle,\n.flex-bottom,\n.flex-vertical.flex-left,\n.flex-vertical.flex-center,\n.flex-vertical.flex-right,\n.flex-vertical.flex-top,\n.flex-vertical.flex-middle,\n.flex-vertical.flex-bottom {\n -webkit-box-align: stretch;\n -webkit-align-items: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n -webkit-box-pack: start;\n -webkit-justify-content: flex-start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n\n.flex-center,\n.flex-vertical.flex-middle {\n -webkit-box-pack: center;\n -webkit-justify-content: center;\n -ms-flex-pack: center;\n justify-content: center; }\n\n.flex-right,\n.flex-vertical.flex-bottom {\n -webkit-box-pack: end;\n -webkit-justify-content: flex-end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n\n.flex-top,\n.flex-vertical.flex-left {\n -webkit-box-align: start;\n -webkit-align-items: flex-start;\n -ms-flex-align: start;\n align-items: flex-start; }\n\n.flex-middle,\n.flex-vertical.flex-center {\n -webkit-box-align: center;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center; }\n\n.flex-bottom,\n.flex-vertical.flex-right {\n -webkit-box-align: end;\n -webkit-align-items: flex-end;\n -ms-flex-align: end;\n align-items: flex-end; }\n\n.units-gap {\n margin-left: -7.5px;\n margin-right: -7.5px; }\n .units-gap > .unit,\n .units-gap > .unit-0,\n .units-gap > .unit-1,\n .units-gap > .unit-1-on-mobile,\n .units-gap > .unit-1-2,\n .units-gap > .unit-1-3,\n .units-gap > .unit-2-3,\n .units-gap > .unit-1-4,\n .units-gap > .unit-3-4 {\n padding-left: 7.5px;\n padding-right: 7.5px; }\n\n.units-gap-big {\n margin-left: -15px;\n margin-right: -15px; }\n .units-gap-big > .unit,\n .units-gap-big > .unit-0,\n .units-gap-big > .unit-1,\n .units-gap-big > .unit-1-on-mobile,\n .units-gap-big > .unit-1-2,\n .units-gap-big > .unit-1-3,\n .units-gap-big > .unit-2-3,\n .units-gap-big > .unit-1-4,\n .units-gap-big > .unit-3-4 {\n padding-left: 15px;\n padding-right: 15px; }\n\n.unit {\n -webkit-flex-basis: 0;\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -webkit-flex-grow: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n\n.unit-1,\n.unit-1-on-mobile,\n.unit-1-2,\n.unit-1-3,\n.unit-2-3,\n.unit-1-4,\n.unit-3-4 {\n -webkit-flex-shrink: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0; }\n\n.unit-1 {\n -webkit-flex-basis: 100%;\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n max-width: 100%; }\n\n.unit-1-2 {\n -webkit-flex-basis: 50%;\n -ms-flex-preferred-size: 50%;\n flex-basis: 50%;\n max-width: 50%; }\n\n.unit-1-3 {\n -webkit-flex-basis: 33.33%;\n -ms-flex-preferred-size: 33.33%;\n flex-basis: 33.33%;\n max-width: 33.33%; }\n\n.unit-2-3 {\n -webkit-flex-basis: 66.67%;\n -ms-flex-preferred-size: 66.67%;\n flex-basis: 66.67%;\n max-width: 66.67%; }\n\n.unit-1-4 {\n -webkit-flex-basis: 25%;\n -ms-flex-preferred-size: 25%;\n flex-basis: 25%;\n max-width: 25%; }\n\n.unit-3-4 {\n -webkit-flex-basis: 75%;\n -ms-flex-preferred-size: 75%;\n flex-basis: 75%;\n max-width: 75%; }\n\n.flex-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -webkit-flex-direction: column;\n -ms-flex-direction: column;\n flex-direction: column; }\n .flex-vertical > .unit,\n .flex-vertical > .unit-0,\n .flex-vertical > .unit-1,\n .flex-vertical > .unit-1-on-mobile,\n .flex-vertical > .unit-1-2,\n .flex-vertical > .unit-1-3,\n .flex-vertical > .unit-2-3,\n .flex-vertical > .unit-1-4,\n .flex-vertical > .unit-3-4 {\n max-width: none; }\n .flex-vertical > .unit-1 {\n max-height: 100%; }\n .flex-vertical > .unit-1-2 {\n max-height: 50%; }\n .flex-vertical > .unit-1-3 {\n max-height: 33.33%; }\n .flex-vertical > .unit-2-3 {\n max-height: 66.67%; }\n .flex-vertical > .unit-1-4 {\n max-height: 25%; }\n .flex-vertical > .unit-3-4 {\n max-height: 75%; }\n\n.flex-wrap {\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap; }\n\n@media (max-width: 767px) {\n .unit-1-on-mobile {\n -webkit-flex-basis: 100%;\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n max-width: 100%; }\n .flex-vertical > .unit-1-on-mobile {\n max-height: 100%; } }\n\n.top-gap-big {\n margin-top: 30px !important; }\n\n.top-gap {\n margin-top: 15px !important; }\n\n.top-gap-0 {\n margin-top: 0 !important; }\n\n@media (max-width: 767px) {\n .hide-on-mobile {\n display: none !important; } }\n\n@media (min-width: 768px) {\n .show-on-mobile {\n display: none !important; } }\n\n.table {\n background-color: white;\n border: 0;\n border-collapse: collapse;\n border-spacing: 0;\n width: 100%; }\n .table caption {\n caption-side: bottom;\n color: #777;\n font-size: 85%;\n padding: 5px;\n text-align: left; }\n .table th,\n .table td {\n border: 0;\n border-bottom: 1px solid #ddd;\n padding: 5px;\n text-align: left; }\n .table th {\n background-color: #f2f2f2;\n font-weight: 600; }\n\n.btn {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n cursor: pointer;\n display: inline-block;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n line-height: 1.25;\n margin: 15px 0 0;\n padding: 5px 10px;\n text-align: center; }\n .btn:hover, .btn:active {\n background-color: #f2f2f2;\n text-decoration: none; }\n .btn[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-primary {\n background-color: #2680d9;\n border-color: #2680d9;\n color: white; }\n .btn-primary:hover, .btn-primary:active {\n background-color: #2273c3; }\n .btn-primary[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-danger {\n background-color: #db5757;\n border-color: #db5757;\n color: white; }\n .btn-danger:hover, .btn-danger:active {\n background-color: #d74242; }\n .btn-danger[disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n\n.btn-block {\n display: block;\n width: 100%; }\n\n.form {\n margin: 0; }\n .form label {\n border: 1px solid transparent;\n cursor: pointer;\n display: block;\n line-height: 1.25;\n margin-top: 15px;\n padding-bottom: 5px;\n padding-top: 5px; }\n .form [type=text],\n .form [type=password],\n .form [type=email],\n .form [type=search],\n .form [type=url],\n .form [type=tel],\n .form [type=number],\n .form textarea,\n .form select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n padding: 5px;\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%; }\n .form [type=text]:focus,\n .form [type=password]:focus,\n .form [type=email]:focus,\n .form [type=search]:focus,\n .form [type=url]:focus,\n .form [type=tel]:focus,\n .form [type=number]:focus,\n .form textarea:focus,\n .form select:focus {\n border-color: #2680d9;\n outline: 0; }\n @media (max-width: 767px) {\n .form [type=time],\n .form [type=week],\n .form [type=month],\n .form [type=date],\n .form [type=datetime-local] {\n margin: 15px 0 0; } }\n @media (min-width: 768px) {\n .form [type=time],\n .form [type=week],\n .form [type=month],\n .form [type=date],\n .form [type=datetime-local] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: white;\n border: 1px solid #ddd;\n border-radius: 3px;\n color: #333;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Hiragino Sans GB\", \"Microsoft Yahei\", \"微软雅黑\", Arial, Helvetica, STHeiti, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n padding: 5px;\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%; }\n .form [type=time]:focus,\n .form [type=week]:focus,\n .form [type=month]:focus,\n .form [type=date]:focus,\n .form [type=datetime-local]:focus {\n border-color: #2680d9;\n outline: 0; } }\n .form [type=checkbox],\n .form [type=radio] {\n cursor: pointer;\n margin: 0 5px 0 0; }\n .form select {\n cursor: pointer; }\n .form [type=file],\n .form [type=range] {\n display: block;\n line-height: 1.25;\n margin: 15px 0 0;\n width: 100%;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n cursor: pointer;\n padding-bottom: 5px;\n padding-top: 5px; }\n .form [type=color],\n .form [type=image] {\n cursor: pointer;\n display: block;\n margin: 15px 0 0; }\n .form [disabled] {\n cursor: default;\n opacity: 0.5;\n pointer-events: none; }\n .form [readonly] {\n background-color: #f2f2f2; }\n\n.scroll-view {\n overflow: auto;\n -webkit-overflow-scrolling: touch; }\n\n.text-left {\n text-align: left; }\n\n.text-center {\n text-align: center; }\n\n.text-right {\n text-align: right; }\n\n.text-muted {\n color: #777; }\n\n.text-primary {\n color: #2680d9; }\n\n.text-danger {\n color: #db5757; }\n\na.text-muted,\na.text-primary,\na.text-danger {\n text-decoration: underline; }\n\n.text-small {\n font-size: 85%; }\n"]} -------------------------------------------------------------------------------- /src/css/site.css: -------------------------------------------------------------------------------- 1 | .site-bookmark-ul { 2 | padding-left: 0; 3 | margin-top: 7.5px; 4 | } 5 | 6 | .site-bookmark-li { 7 | margin-top: 7.5px; 8 | list-style: none; 9 | } 10 | 11 | .site-bookmark-a { 12 | color: #333; 13 | padding: 0 7.5px; 14 | } 15 | 16 | .site-bookmark-a:hover, 17 | .site-bookmark-a:focus, 18 | .site-bookmark-a-focus { 19 | opacity: 1; 20 | text-decoration: none; 21 | background-color: #f2f2f2; 22 | } 23 | 24 | .site-bookmark-a:focus, 25 | .site-bookmark-a-focus { 26 | outline: 3px auto #2680d9; 27 | } 28 | 29 | .site-bookmark-a:focus ~ .site-bookmark-a-focus { 30 | background-color: transparent; 31 | } 32 | 33 | .site-bookmark-img { 34 | margin-right: 5px; 35 | } 36 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/favicon.ico -------------------------------------------------------------------------------- /src/img/asciiflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/asciiflow.png -------------------------------------------------------------------------------- /src/img/chuangzaoshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/chuangzaoshi.png -------------------------------------------------------------------------------- /src/img/cnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/cnode.png -------------------------------------------------------------------------------- /src/img/codepen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/codepen.ico -------------------------------------------------------------------------------- /src/img/domcomp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/domcomp.png -------------------------------------------------------------------------------- /src/img/echo-js.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/echo-js.ico -------------------------------------------------------------------------------- /src/img/favicon-generator.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/favicon-generator.ico -------------------------------------------------------------------------------- /src/img/feweekly.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/feweekly.ico -------------------------------------------------------------------------------- /src/img/gauges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/gauges.png -------------------------------------------------------------------------------- /src/img/github.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/github.ico -------------------------------------------------------------------------------- /src/img/google-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/google-analytics.png -------------------------------------------------------------------------------- /src/img/guanggoo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/guanggoo.ico -------------------------------------------------------------------------------- /src/img/hacker-news.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/hacker-news.ico -------------------------------------------------------------------------------- /src/img/hacpai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/hacpai.png -------------------------------------------------------------------------------- /src/img/hsl-color-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/hsl-color-picker.png -------------------------------------------------------------------------------- /src/img/inbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/inbox.png -------------------------------------------------------------------------------- /src/img/juejin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/juejin.ico -------------------------------------------------------------------------------- /src/img/mobile-friendly-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/mobile-friendly-test.png -------------------------------------------------------------------------------- /src/img/mouto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/mouto.jpg -------------------------------------------------------------------------------- /src/img/name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/name.png -------------------------------------------------------------------------------- /src/img/npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/npm.png -------------------------------------------------------------------------------- /src/img/online-converter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/online-converter.png -------------------------------------------------------------------------------- /src/img/online-photo-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/online-photo-editor.png -------------------------------------------------------------------------------- /src/img/product-hunt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/product-hunt.ico -------------------------------------------------------------------------------- /src/img/reddit.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/reddit.ico -------------------------------------------------------------------------------- /src/img/regexr.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/regexr.ico -------------------------------------------------------------------------------- /src/img/ruby-china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/ruby-china.png -------------------------------------------------------------------------------- /src/img/segmentfault.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/segmentfault.ico -------------------------------------------------------------------------------- /src/img/shuibaco.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/shuibaco.ico -------------------------------------------------------------------------------- /src/img/sketchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/sketchpad.png -------------------------------------------------------------------------------- /src/img/startup-news.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/startup-news.ico -------------------------------------------------------------------------------- /src/img/svg-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/svg-edit.png -------------------------------------------------------------------------------- /src/img/tinypng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/tinypng.png -------------------------------------------------------------------------------- /src/img/toutiao.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/toutiao.ico -------------------------------------------------------------------------------- /src/img/twitter.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/twitter.ico -------------------------------------------------------------------------------- /src/img/unicode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/unicode.png -------------------------------------------------------------------------------- /src/img/unsplash-it.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/unsplash-it.ico -------------------------------------------------------------------------------- /src/img/uzer-me.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/uzer-me.ico -------------------------------------------------------------------------------- /src/img/v2ex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/v2ex.png -------------------------------------------------------------------------------- /src/img/wechat.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/wechat.ico -------------------------------------------------------------------------------- /src/img/weibo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/weibo.ico -------------------------------------------------------------------------------- /src/img/xcatliu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/xcatliu.ico -------------------------------------------------------------------------------- /src/img/yinwang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/yinwang.jpg -------------------------------------------------------------------------------- /src/img/zhihu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/img/zhihu.ico -------------------------------------------------------------------------------- /src/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xcatliu/123/4c467242d158546fa3f91ad2ecf78cfc76623196/src/index.md -------------------------------------------------------------------------------- /src/js/search.js: -------------------------------------------------------------------------------- 1 | /* eslint-env browser */ 2 | /* eslint no-var:0, prefer-arrow-callback:0, func-names:0, vars-on-top:0, no-use-before-define:0 */ 3 | 4 | (function () { 5 | var searchForm = document.getElementById('search-form'); 6 | var searchInput = document.getElementById('search-input'); 7 | var searchStyle = document.getElementById('search-style'); 8 | 9 | document.addEventListener('keyup', handleGlobalKeyup); 10 | searchForm.addEventListener('submit', handleSearchFormSubmit); 11 | searchInput.addEventListener('keyup', handleSearchInputKeyup); 12 | 13 | function handleGlobalKeyup(e) { 14 | if (e.altKey || e.ctrlKey || e.metaKey || document.activeElement === searchInput) { 15 | return; 16 | } 17 | var c = String.fromCharCode(e.keyCode).toLowerCase(); 18 | if (c.match(/\w/)) { 19 | searchInput.focus(); 20 | searchInput.value = c; 21 | handleSearchInputKeyup(); 22 | } 23 | } 24 | 25 | function handleSearchFormSubmit(e) { 26 | e.preventDefault(); 27 | var focusedResult = document.querySelector('.site-bookmark-a-focus'); 28 | if (focusedResult) { 29 | location.href = focusedResult.href; 30 | } 31 | } 32 | 33 | function handleSearchInputKeyup() { 34 | clearTabindex(); 35 | clearFocus(); 36 | 37 | var query = searchInput.value.trim().toLowerCase(); 38 | if (query === '') { 39 | searchStyle.innerHTML = ''; 40 | return; 41 | } 42 | 43 | var splitedQuery = query.split(/\s+/); 44 | 45 | setSearchStyle(splitedQuery); 46 | setTabindex(splitedQuery); 47 | setFocus(splitedQuery); 48 | } 49 | 50 | searchInput.addEventListener('blur', function () { 51 | var focusedResult = document.querySelector('.site-bookmark-a-focus'); 52 | if (focusedResult) { 53 | focusedResult.classList.remove('site-bookmark-a-focus'); 54 | } 55 | }); 56 | 57 | function clearTabindex() { 58 | document.querySelectorAll('[tabindex="2"]').forEach((element) => { 59 | element.setAttribute('tabindex', '9'); 60 | }); 61 | } 62 | 63 | function clearFocus() { 64 | document.querySelectorAll('.site-bookmark-a-focus').forEach((element) => { 65 | element.classList.remove('site-bookmark-a-focus'); 66 | }); 67 | } 68 | 69 | function setSearchStyle(splitedQuery) { 70 | searchStyle.innerHTML = ` 71 | .site-bookmark-category { 72 | display: none; 73 | } 74 | .site-bookmark-a { 75 | opacity: 0.3; 76 | } 77 | ${generateQuerySelectorQuery(splitedQuery)} { 78 | order: -1; 79 | -ms-flex-order: -1; 80 | } 81 | ${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a { 82 | opacity: 1; 83 | } 84 | `; 85 | } 86 | 87 | function setTabindex(splitedQuery) { 88 | var filteredItems = document.querySelectorAll(`${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a`); 89 | 90 | filteredItems.forEach((item) => { 91 | item.setAttribute('tabindex', '2'); 92 | }); 93 | } 94 | 95 | function setFocus(splitedQuery) { 96 | var firstItem = document.querySelector(`${generateQuerySelectorQuery(splitedQuery)} .site-bookmark-a`); 97 | if (firstItem) { 98 | firstItem.classList.add('site-bookmark-a-focus'); 99 | } 100 | } 101 | 102 | function generateQuerySelectorQuery(splitedQuery) { 103 | return splitedQuery.map(query => `[data-name*="${query}"]`).join(''); 104 | } 105 | }()); 106 | --------------------------------------------------------------------------------