浏览代码

Merge pull request #105 from pointhi/template_oscar

new template: oscar
Adam Tauber 10 年前
父节点
当前提交
0d80d5d3b4
共有 100 个文件被更改,包括 8156 次插入5 次删除
  1. 2
    0
      Makefile
  2. 1
    5
      searx/engines/youtube.py
  3. 二进制
      searx/static/courgette/img/icon_dailymotion.ico
  4. 二进制
      searx/static/courgette/img/icon_deviantart.ico
  5. 二进制
      searx/static/default/img/icon_dailymotion.ico
  6. 二进制
      searx/static/default/img/icon_deviantart.ico
  7. 915
    0
      searx/static/oscar/css/bootstrap.min.css
  8. 17
    0
      searx/static/oscar/css/oscar.min.css
  9. 二进制
      searx/static/oscar/fonts/glyphicons-halflings-regular.eot
  10. 229
    0
      searx/static/oscar/fonts/glyphicons-halflings-regular.svg
  11. 二进制
      searx/static/oscar/fonts/glyphicons-halflings-regular.ttf
  12. 二进制
      searx/static/oscar/fonts/glyphicons-halflings-regular.woff
  13. 二进制
      searx/static/oscar/img/favicon.png
  14. 2
    0
      searx/static/oscar/img/icons/README.md
  15. 二进制
      searx/static/oscar/img/icons/amazon.png
  16. 二进制
      searx/static/oscar/img/icons/dailymotion.png
  17. 二进制
      searx/static/oscar/img/icons/deviantart.png
  18. 二进制
      searx/static/oscar/img/icons/facebook.png
  19. 二进制
      searx/static/oscar/img/icons/flickr.png
  20. 二进制
      searx/static/oscar/img/icons/github.png
  21. 二进制
      searx/static/oscar/img/icons/soundcloud.png
  22. 二进制
      searx/static/oscar/img/icons/stackoverflow.png
  23. 二进制
      searx/static/oscar/img/icons/twitter.png
  24. 二进制
      searx/static/oscar/img/icons/vimeo.png
  25. 二进制
      searx/static/oscar/img/icons/wikipedia.png
  26. 二进制
      searx/static/oscar/img/icons/youtube.png
  27. 二进制
      searx/static/oscar/img/searx_logo.png
  28. 6
    0
      searx/static/oscar/js/bootstrap.min.js
  29. 4
    0
      searx/static/oscar/js/html5shiv.min.js
  30. 4
    0
      searx/static/oscar/js/jquery-1.11.1.min.js
  31. 5
    0
      searx/static/oscar/js/respond.min.js
  32. 64
    0
      searx/static/oscar/js/scripts.js
  33. 7
    0
      searx/static/oscar/js/typeahead.bundle.min.js
  34. 297
    0
      searx/static/oscar/less/bootstrap/.csscomb.json
  35. 19
    0
      searx/static/oscar/less/bootstrap/.csslintrc
  36. 68
    0
      searx/static/oscar/less/bootstrap/alerts.less
  37. 55
    0
      searx/static/oscar/less/bootstrap/badges.less
  38. 53
    0
      searx/static/oscar/less/bootstrap/bootstrap.less
  39. 26
    0
      searx/static/oscar/less/bootstrap/breadcrumbs.less
  40. 240
    0
      searx/static/oscar/less/bootstrap/button-groups.less
  41. 157
    0
      searx/static/oscar/less/bootstrap/buttons.less
  42. 243
    0
      searx/static/oscar/less/bootstrap/carousel.less
  43. 33
    0
      searx/static/oscar/less/bootstrap/close.less
  44. 68
    0
      searx/static/oscar/less/bootstrap/code.less
  45. 31
    0
      searx/static/oscar/less/bootstrap/component-animations.less
  46. 215
    0
      searx/static/oscar/less/bootstrap/dropdowns.less
  47. 540
    0
      searx/static/oscar/less/bootstrap/forms.less
  48. 233
    0
      searx/static/oscar/less/bootstrap/glyphicons.less
  49. 84
    0
      searx/static/oscar/less/bootstrap/grid.less
  50. 166
    0
      searx/static/oscar/less/bootstrap/input-groups.less
  51. 48
    0
      searx/static/oscar/less/bootstrap/jumbotron.less
  52. 64
    0
      searx/static/oscar/less/bootstrap/labels.less
  53. 131
    0
      searx/static/oscar/less/bootstrap/list-group.less
  54. 56
    0
      searx/static/oscar/less/bootstrap/media.less
  55. 39
    0
      searx/static/oscar/less/bootstrap/mixins.less
  56. 14
    0
      searx/static/oscar/less/bootstrap/mixins/alerts.less
  57. 8
    0
      searx/static/oscar/less/bootstrap/mixins/background-variant.less
  58. 18
    0
      searx/static/oscar/less/bootstrap/mixins/border-radius.less
  59. 50
    0
      searx/static/oscar/less/bootstrap/mixins/buttons.less
  60. 7
    0
      searx/static/oscar/less/bootstrap/mixins/center-block.less
  61. 22
    0
      searx/static/oscar/less/bootstrap/mixins/clearfix.less
  62. 81
    0
      searx/static/oscar/less/bootstrap/mixins/forms.less
  63. 59
    0
      searx/static/oscar/less/bootstrap/mixins/gradients.less
  64. 91
    0
      searx/static/oscar/less/bootstrap/mixins/grid-framework.less
  65. 122
    0
      searx/static/oscar/less/bootstrap/mixins/grid.less
  66. 21
    0
      searx/static/oscar/less/bootstrap/mixins/hide-text.less
  67. 34
    0
      searx/static/oscar/less/bootstrap/mixins/image.less
  68. 12
    0
      searx/static/oscar/less/bootstrap/mixins/labels.less
  69. 29
    0
      searx/static/oscar/less/bootstrap/mixins/list-group.less
  70. 10
    0
      searx/static/oscar/less/bootstrap/mixins/nav-divider.less
  71. 9
    0
      searx/static/oscar/less/bootstrap/mixins/nav-vertical-align.less
  72. 8
    0
      searx/static/oscar/less/bootstrap/mixins/opacity.less
  73. 23
    0
      searx/static/oscar/less/bootstrap/mixins/pagination.less
  74. 24
    0
      searx/static/oscar/less/bootstrap/mixins/panels.less
  75. 10
    0
      searx/static/oscar/less/bootstrap/mixins/progress-bar.less
  76. 8
    0
      searx/static/oscar/less/bootstrap/mixins/reset-filter.less
  77. 6
    0
      searx/static/oscar/less/bootstrap/mixins/resize.less
  78. 15
    0
      searx/static/oscar/less/bootstrap/mixins/responsive-visibility.less
  79. 10
    0
      searx/static/oscar/less/bootstrap/mixins/size.less
  80. 9
    0
      searx/static/oscar/less/bootstrap/mixins/tab-focus.less
  81. 28
    0
      searx/static/oscar/less/bootstrap/mixins/table-row.less
  82. 8
    0
      searx/static/oscar/less/bootstrap/mixins/text-emphasis.less
  83. 8
    0
      searx/static/oscar/less/bootstrap/mixins/text-overflow.less
  84. 224
    0
      searx/static/oscar/less/bootstrap/mixins/vendor-prefixes.less
  85. 150
    0
      searx/static/oscar/less/bootstrap/modals.less
  86. 655
    0
      searx/static/oscar/less/bootstrap/navbar.less
  87. 242
    0
      searx/static/oscar/less/bootstrap/navs.less
  88. 425
    0
      searx/static/oscar/less/bootstrap/normalize.less
  89. 55
    0
      searx/static/oscar/less/bootstrap/pager.less
  90. 88
    0
      searx/static/oscar/less/bootstrap/pagination.less
  91. 243
    0
      searx/static/oscar/less/bootstrap/panels.less
  92. 133
    0
      searx/static/oscar/less/bootstrap/popovers.less
  93. 101
    0
      searx/static/oscar/less/bootstrap/print.less
  94. 105
    0
      searx/static/oscar/less/bootstrap/progress-bars.less
  95. 34
    0
      searx/static/oscar/less/bootstrap/responsive-embed.less
  96. 194
    0
      searx/static/oscar/less/bootstrap/responsive-utilities.less
  97. 150
    0
      searx/static/oscar/less/bootstrap/scaffolding.less
  98. 233
    0
      searx/static/oscar/less/bootstrap/tables.less
  99. 258
    0
      searx/static/oscar/less/bootstrap/theme.less
  100. 0
    0
      searx/static/oscar/less/bootstrap/thumbnails.less

+ 2
- 0
Makefile 查看文件

@@ -45,6 +45,8 @@ minimal: bin/buildout minimal.cfg setup.py
45 45
 
46 46
 styles:
47 47
 	@lessc -x searx/static/default/less/style.less > searx/static/default/css/style.css
48
+	@lessc -x searx/static/oscar/less/bootstrap/bootstrap.less > searx/static/oscar/css/bootstrap.min.css
49
+	@lessc -x searx/static/oscar/less/oscar/oscar.less > searx/static/oscar/css/oscar.min.css
48 50
 
49 51
 locales:
50 52
 	@pybabel compile -d searx/translations

+ 1
- 5
searx/engines/youtube.py 查看文件

@@ -69,12 +69,8 @@ def response(resp):
69 69
 
70 70
         if result['media$group']['media$thumbnail']:
71 71
             thumbnail = result['media$group']['media$thumbnail'][0]['url']
72
-            content += '<a href="{0}" title="{0}" ><img src="{1}" /></a>'.format(url, thumbnail)  # noqa
73 72
 
74
-        if content:
75
-            content += '<br />' + result['content']['$t']
76
-        else:
77
-            content = result['content']['$t']
73
+        content = result['content']['$t']
78 74
 
79 75
         # append result
80 76
         results.append({'url': url,

二进制
searx/static/courgette/img/icon_dailymotion.ico 查看文件


二进制
searx/static/courgette/img/icon_deviantart.ico 查看文件


二进制
searx/static/default/img/icon_dailymotion.ico 查看文件


二进制
searx/static/default/img/icon_deviantart.ico 查看文件


+ 915
- 0
searx/static/oscar/css/bootstrap.min.css
文件差异内容过多而无法显示
查看文件


+ 17
- 0
searx/static/oscar/css/oscar.min.css 查看文件

@@ -0,0 +1,17 @@
1
+html{position:relative;min-height:100%}
2
+body{margin-bottom:80px}
3
+.footer{position:absolute;bottom:0;width:100%;height:60px}
4
+input[type=checkbox]:checked~.label_hide_if_checked{display:none}
5
+input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}
6
+.result-default{clear:both}
7
+.result-images{float:left !important}
8
+.img-thumbnail{margin:5px;max-height:128px;min-height:128px}
9
+.result-videos{clear:both}
10
+.result-torrents{clear:both}
11
+.suggestion_item{margin:2px 5px}
12
+.result_download{margin-right:5px}
13
+#pagination{margin-top:30px;padding-bottom:50px}
14
+.infobox .infobox_part{margin-bottom:20px}
15
+.infobox .infobox_part:last-child{margin-bottom:0}
16
+.search_categories{margin:10px 0;text-transform:capitalize}
17
+.cursor-text{cursor:text !important}

二进制
searx/static/oscar/fonts/glyphicons-halflings-regular.eot 查看文件


+ 229
- 0
searx/static/oscar/fonts/glyphicons-halflings-regular.svg 查看文件

@@ -0,0 +1,229 @@
1
+<?xml version="1.0" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+<svg xmlns="http://www.w3.org/2000/svg">
4
+<metadata></metadata>
5
+<defs>
6
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
7
+<font-face units-per-em="1200" ascent="960" descent="-240" />
8
+<missing-glyph horiz-adv-x="500" />
9
+<glyph />
10
+<glyph />
11
+<glyph unicode="&#xd;" />
12
+<glyph unicode=" " />
13
+<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
14
+<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
15
+<glyph unicode="&#xa0;" />
16
+<glyph unicode="&#x2000;" horiz-adv-x="652" />
17
+<glyph unicode="&#x2001;" horiz-adv-x="1304" />
18
+<glyph unicode="&#x2002;" horiz-adv-x="652" />
19
+<glyph unicode="&#x2003;" horiz-adv-x="1304" />
20
+<glyph unicode="&#x2004;" horiz-adv-x="434" />
21
+<glyph unicode="&#x2005;" horiz-adv-x="326" />
22
+<glyph unicode="&#x2006;" horiz-adv-x="217" />
23
+<glyph unicode="&#x2007;" horiz-adv-x="217" />
24
+<glyph unicode="&#x2008;" horiz-adv-x="163" />
25
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
26
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
27
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
28
+<glyph unicode="&#x205f;" horiz-adv-x="326" />
29
+<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
30
+<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
31
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
32
+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
33
+<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
34
+<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
35
+<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
36
+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
37
+<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
38
+<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
39
+<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
40
+<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
41
+<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
42
+<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
43
+<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
44
+<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
45
+<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
46
+<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
47
+<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
48
+<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
49
+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
50
+<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
51
+<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
52
+<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
53
+<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
54
+<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
55
+<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
56
+<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
57
+<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
58
+<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
59
+<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
60
+<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
61
+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
62
+<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
63
+<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
64
+<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
65
+<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
66
+<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
67
+<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
68
+<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
69
+<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
70
+<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
71
+<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
72
+<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
73
+<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
74
+<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
75
+<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
76
+<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
77
+<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
78
+<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
79
+<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
80
+<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
81
+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
82
+<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
83
+<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
84
+<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
85
+<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
86
+<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
87
+<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
88
+<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
89
+<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
90
+<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
91
+<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
92
+<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
93
+<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
94
+<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
95
+<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
96
+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
97
+<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
98
+<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
99
+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
100
+<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
101
+<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
102
+<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
103
+<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
104
+<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
105
+<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
106
+<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
107
+<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
108
+<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
109
+<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
110
+<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
111
+<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
112
+<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
113
+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
114
+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
115
+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
116
+<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
117
+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
118
+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
119
+<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
120
+<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
121
+<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
122
+<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
123
+<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
124
+<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
125
+<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
126
+<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
127
+<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
128
+<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
129
+<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
130
+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
131
+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
132
+<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
133
+<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
134
+<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
135
+<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
136
+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
137
+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
138
+<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
139
+<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
140
+<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
141
+<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
142
+<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
143
+<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
144
+<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
145
+<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
146
+<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
147
+<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
148
+<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
149
+<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
150
+<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
151
+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
152
+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
153
+<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
154
+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
155
+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
156
+<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
157
+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
158
+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
159
+<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
160
+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
161
+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
162
+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
163
+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
164
+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
165
+<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
166
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
167
+<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
168
+<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
169
+<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
170
+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
171
+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
172
+<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
173
+<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
174
+<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
175
+<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
176
+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
177
+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
178
+<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
179
+<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
180
+<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
181
+<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
182
+<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
183
+<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
184
+<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
185
+<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
186
+<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
187
+<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
188
+<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
189
+<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
190
+<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
191
+<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
192
+<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
193
+<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
194
+<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
195
+<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
196
+<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
197
+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
198
+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
199
+<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
200
+<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
201
+<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
202
+<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
203
+<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
204
+<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
205
+<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
206
+<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
207
+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
208
+<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
209
+<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
210
+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
211
+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
212
+<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
213
+<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
214
+<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
215
+<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
216
+<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
217
+<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
218
+<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
219
+<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
220
+<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
221
+<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
222
+<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
223
+<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
224
+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
225
+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
226
+<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
227
+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
228
+</font>
229
+</defs></svg> 

二进制
searx/static/oscar/fonts/glyphicons-halflings-regular.ttf 查看文件


二进制
searx/static/oscar/fonts/glyphicons-halflings-regular.woff 查看文件


二进制
searx/static/oscar/img/favicon.png 查看文件


+ 2
- 0
searx/static/oscar/img/icons/README.md 查看文件

@@ -0,0 +1,2 @@
1
+Source: http://www.iconspedia.com/pack/flat-gradient-social-icons-4384/
2
+License: Free for non commercial use.

二进制
searx/static/oscar/img/icons/amazon.png 查看文件


二进制
searx/static/oscar/img/icons/dailymotion.png 查看文件


二进制
searx/static/oscar/img/icons/deviantart.png 查看文件


二进制
searx/static/oscar/img/icons/facebook.png 查看文件


二进制
searx/static/oscar/img/icons/flickr.png 查看文件


二进制
searx/static/oscar/img/icons/github.png 查看文件


二进制
searx/static/oscar/img/icons/soundcloud.png 查看文件


二进制
searx/static/oscar/img/icons/stackoverflow.png 查看文件


二进制
searx/static/oscar/img/icons/twitter.png 查看文件


二进制
searx/static/oscar/img/icons/vimeo.png 查看文件


二进制
searx/static/oscar/img/icons/wikipedia.png 查看文件


二进制
searx/static/oscar/img/icons/youtube.png 查看文件


二进制
searx/static/oscar/img/searx_logo.png 查看文件


+ 6
- 0
searx/static/oscar/js/bootstrap.min.js
文件差异内容过多而无法显示
查看文件


+ 4
- 0
searx/static/oscar/js/html5shiv.min.js 查看文件

@@ -0,0 +1,4 @@
1
+/**
2
+* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3
+*/
4
+!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);

+ 4
- 0
searx/static/oscar/js/jquery-1.11.1.min.js
文件差异内容过多而无法显示
查看文件


+ 5
- 0
searx/static/oscar/js/respond.min.js 查看文件

@@ -0,0 +1,5 @@
1
+/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
2
+ * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
3
+ *  */
4
+
5
+!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='&shy;<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);

+ 64
- 0
searx/static/oscar/js/scripts.js 查看文件

@@ -0,0 +1,64 @@
1
+/**
2
+ _                 _       _                  
3
+| |__   ___   ___ | |_ ___| |_ _ __ __ ___  __
4
+| '_ \ / _ \ / _ \| __/ __| __| '__/ _` \ \/ /
5
+| |_) | (_) | (_) | |_\__ | |_| | | (_| |>  < 
6
+|_.__/ \___/ \___/ \__|___/\__|_|  \__,_/_/\_\.js
7
+
8
+*/
9
+
10
+if(searx.autocompleter) {
11
+    searx.searchResults = new Bloodhound({
12
+        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
13
+        queryTokenizer: Bloodhound.tokenizers.whitespace,
14
+        remote: '/autocompleter?q=%QUERY'
15
+    });
16
+    searx.searchResults.initialize();
17
+}
18
+
19
+$(document).ready(function(){
20
+    $('.btn-toggle .btn').click(function() {
21
+        var btnClass = 'btn-' + $(this).data('btn-class');
22
+        var btnLabelDefault = $(this).data('btn-label-default');
23
+        var btnLabelToggled = $(this).data('btn-label-toggled');
24
+        if(btnLabelToggled != '') {
25
+            if($(this).hasClass('btn-default')) {
26
+                
27
+                var html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
28
+            } else {
29
+                var html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
30
+            }
31
+            $(this).html(html);
32
+        }
33
+        $(this).toggleClass(btnClass);
34
+        $(this).toggleClass('btn-default');
35
+    });
36
+
37
+    $('.btn-collapse').click(function() {
38
+        var btnTextCollapsed = $(this).data('btn-text-collapsed');
39
+        var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
40
+        
41
+        if(btnTextCollapsed != '' && btnTextNotCollapsed != '') {
42
+            if($(this).hasClass('collapsed')) {
43
+                var html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
44
+            } else {
45
+                var html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
46
+            }
47
+            $(this).html(html);
48
+        }
49
+    });
50
+    
51
+    $(".select-all-on-click").click(function () {
52
+        $(this).select();
53
+    });
54
+    
55
+    if(searx.autocompleter) {
56
+        $('#q').typeahead(null, {
57
+            name: 'search-results',
58
+            displayKey: function(result) {
59
+                return result;
60
+            },
61
+            source: searx.searchResults.ttAdapter()
62
+        });
63
+    }
64
+});  

+ 7
- 0
searx/static/oscar/js/typeahead.bundle.min.js
文件差异内容过多而无法显示
查看文件


+ 297
- 0
searx/static/oscar/less/bootstrap/.csscomb.json 查看文件

@@ -0,0 +1,297 @@
1
+{
2
+  "always-semicolon": true,
3
+  "block-indent": 2,
4
+  "colon-space": [0, 1],
5
+  "color-case": "lower",
6
+  "color-shorthand": true,
7
+  "combinator-space": true,
8
+  "element-case": "lower",
9
+  "eof-newline": true,
10
+  "leading-zero": false,
11
+  "remove-empty-rulesets": true,
12
+  "rule-indent": 2,
13
+  "stick-brace": " ",
14
+  "strip-spaces": true,
15
+  "unitless-zero": true,
16
+  "vendor-prefix-align": true,
17
+  "sort-order": [
18
+    [
19
+      "position",
20
+      "top",
21
+      "right",
22
+      "bottom",
23
+      "left",
24
+      "z-index",
25
+      "display",
26
+      "float",
27
+      "width",
28
+      "min-width",
29
+      "max-width",
30
+      "height",
31
+      "min-height",
32
+      "max-height",
33
+      "-webkit-box-sizing",
34
+      "-moz-box-sizing",
35
+      "box-sizing",
36
+      "-webkit-appearance",
37
+      "padding",
38
+      "padding-top",
39
+      "padding-right",
40
+      "padding-bottom",
41
+      "padding-left",
42
+      "margin",
43
+      "margin-top",
44
+      "margin-right",
45
+      "margin-bottom",
46
+      "margin-left",
47
+      "overflow",
48
+      "overflow-x",
49
+      "overflow-y",
50
+      "-webkit-overflow-scrolling",
51
+      "-ms-overflow-x",
52
+      "-ms-overflow-y",
53
+      "-ms-overflow-style",
54
+      "clip",
55
+      "clear",
56
+      "font",
57
+      "font-family",
58
+      "font-size",
59
+      "font-style",
60
+      "font-weight",
61
+      "font-variant",
62
+      "font-size-adjust",
63
+      "font-stretch",
64
+      "font-effect",
65
+      "font-emphasize",
66
+      "font-emphasize-position",
67
+      "font-emphasize-style",
68
+      "font-smooth",
69
+      "-webkit-hyphens",
70
+      "-moz-hyphens",
71
+      "hyphens",
72
+      "line-height",
73
+      "color",
74
+      "text-align",
75
+      "-webkit-text-align-last",
76
+      "-moz-text-align-last",
77
+      "-ms-text-align-last",
78
+      "text-align-last",
79
+      "text-emphasis",
80
+      "text-emphasis-color",
81
+      "text-emphasis-style",
82
+      "text-emphasis-position",
83
+      "text-decoration",
84
+      "text-indent",
85
+      "text-justify",
86
+      "text-outline",
87
+      "-ms-text-overflow",
88
+      "text-overflow",
89
+      "text-overflow-ellipsis",
90
+      "text-overflow-mode",
91
+      "text-shadow",
92
+      "text-transform",
93
+      "text-wrap",
94
+      "-webkit-text-size-adjust",
95
+      "-ms-text-size-adjust",
96
+      "letter-spacing",
97
+      "-ms-word-break",
98
+      "word-break",
99
+      "word-spacing",
100
+      "-ms-word-wrap",
101
+      "word-wrap",
102
+      "-moz-tab-size",
103
+      "-o-tab-size",
104
+      "tab-size",
105
+      "white-space",
106
+      "vertical-align",
107
+      "list-style",
108
+      "list-style-position",
109
+      "list-style-type",
110
+      "list-style-image",
111
+      "pointer-events",
112
+      "cursor",
113
+      "visibility",
114
+      "zoom",
115
+      "flex-direction",
116
+      "flex-order",
117
+      "flex-pack",
118
+      "flex-align",
119
+      "table-layout",
120
+      "empty-cells",
121
+      "caption-side",
122
+      "border-spacing",
123
+      "border-collapse",
124
+      "content",
125
+      "quotes",
126
+      "counter-reset",
127
+      "counter-increment",
128
+      "resize",
129
+      "-webkit-user-select",
130
+      "-moz-user-select",
131
+      "-ms-user-select",
132
+      "-o-user-select",
133
+      "user-select",
134
+      "nav-index",
135
+      "nav-up",
136
+      "nav-right",
137
+      "nav-down",
138
+      "nav-left",
139
+      "background",
140
+      "background-color",
141
+      "background-image",
142
+      "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
143
+      "filter:progid:DXImageTransform.Microsoft.gradient",
144
+      "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
145
+      "filter",
146
+      "background-repeat",
147
+      "background-attachment",
148
+      "background-position",
149
+      "background-position-x",
150
+      "background-position-y",
151
+      "-webkit-background-clip",
152
+      "-moz-background-clip",
153
+      "background-clip",
154
+      "background-origin",
155
+      "-webkit-background-size",
156
+      "-moz-background-size",
157
+      "-o-background-size",
158
+      "background-size",
159
+      "border",
160
+      "border-color",
161
+      "border-style",
162
+      "border-width",
163
+      "border-top",
164
+      "border-top-color",
165
+      "border-top-style",
166
+      "border-top-width",
167
+      "border-right",
168
+      "border-right-color",
169
+      "border-right-style",
170
+      "border-right-width",
171
+      "border-bottom",
172
+      "border-bottom-color",
173
+      "border-bottom-style",
174
+      "border-bottom-width",
175
+      "border-left",
176
+      "border-left-color",
177
+      "border-left-style",
178
+      "border-left-width",
179
+      "border-radius",
180
+      "border-top-left-radius",
181
+      "border-top-right-radius",
182
+      "border-bottom-right-radius",
183
+      "border-bottom-left-radius",
184
+      "-webkit-border-image",
185
+      "-moz-border-image",
186
+      "-o-border-image",
187
+      "border-image",
188
+      "-webkit-border-image-source",
189
+      "-moz-border-image-source",
190
+      "-o-border-image-source",
191
+      "border-image-source",
192
+      "-webkit-border-image-slice",
193
+      "-moz-border-image-slice",
194
+      "-o-border-image-slice",
195
+      "border-image-slice",
196
+      "-webkit-border-image-width",
197
+      "-moz-border-image-width",
198
+      "-o-border-image-width",
199
+      "border-image-width",
200
+      "-webkit-border-image-outset",
201
+      "-moz-border-image-outset",
202
+      "-o-border-image-outset",
203
+      "border-image-outset",
204
+      "-webkit-border-image-repeat",
205
+      "-moz-border-image-repeat",
206
+      "-o-border-image-repeat",
207
+      "border-image-repeat",
208
+      "outline",
209
+      "outline-width",
210
+      "outline-style",
211
+      "outline-color",
212
+      "outline-offset",
213
+      "-webkit-box-shadow",
214
+      "-moz-box-shadow",
215
+      "box-shadow",
216
+      "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
217
+      "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
218
+      "opacity",
219
+      "-ms-interpolation-mode",
220
+      "-webkit-transition",
221
+      "-moz-transition",
222
+      "-ms-transition",
223
+      "-o-transition",
224
+      "transition",
225
+      "-webkit-transition-delay",
226
+      "-moz-transition-delay",
227
+      "-ms-transition-delay",
228
+      "-o-transition-delay",
229
+      "transition-delay",
230
+      "-webkit-transition-timing-function",
231
+      "-moz-transition-timing-function",
232
+      "-ms-transition-timing-function",
233
+      "-o-transition-timing-function",
234
+      "transition-timing-function",
235
+      "-webkit-transition-duration",
236
+      "-moz-transition-duration",
237
+      "-ms-transition-duration",
238
+      "-o-transition-duration",
239
+      "transition-duration",
240
+      "-webkit-transition-property",
241
+      "-moz-transition-property",
242
+      "-ms-transition-property",
243
+      "-o-transition-property",
244
+      "transition-property",
245
+      "-webkit-transform",
246
+      "-moz-transform",
247
+      "-ms-transform",
248
+      "-o-transform",
249
+      "transform",
250
+      "-webkit-transform-origin",
251
+      "-moz-transform-origin",
252
+      "-ms-transform-origin",
253
+      "-o-transform-origin",
254
+      "transform-origin",
255
+      "-webkit-animation",
256
+      "-moz-animation",
257
+      "-ms-animation",
258
+      "-o-animation",
259
+      "animation",
260
+      "-webkit-animation-name",
261
+      "-moz-animation-name",
262
+      "-ms-animation-name",
263
+      "-o-animation-name",
264
+      "animation-name",
265
+      "-webkit-animation-duration",
266
+      "-moz-animation-duration",
267
+      "-ms-animation-duration",
268
+      "-o-animation-duration",
269
+      "animation-duration",
270
+      "-webkit-animation-play-state",
271
+      "-moz-animation-play-state",
272
+      "-ms-animation-play-state",
273
+      "-o-animation-play-state",
274
+      "animation-play-state",
275
+      "-webkit-animation-timing-function",
276
+      "-moz-animation-timing-function",
277
+      "-ms-animation-timing-function",
278
+      "-o-animation-timing-function",
279
+      "animation-timing-function",
280
+      "-webkit-animation-delay",
281
+      "-moz-animation-delay",
282
+      "-ms-animation-delay",
283
+      "-o-animation-delay",
284
+      "animation-delay",
285
+      "-webkit-animation-iteration-count",
286
+      "-moz-animation-iteration-count",
287
+      "-ms-animation-iteration-count",
288
+      "-o-animation-iteration-count",
289
+      "animation-iteration-count",
290
+      "-webkit-animation-direction",
291
+      "-moz-animation-direction",
292
+      "-ms-animation-direction",
293
+      "-o-animation-direction",
294
+      "animation-direction"
295
+    ]
296
+  ]
297
+}

+ 19
- 0
searx/static/oscar/less/bootstrap/.csslintrc 查看文件

@@ -0,0 +1,19 @@
1
+{
2
+  "adjoining-classes": false,
3
+  "box-sizing": false,
4
+  "box-model": false,
5
+  "compatible-vendor-prefixes": false,
6
+  "floats": false,
7
+  "font-sizes": false,
8
+  "gradients": false,
9
+  "important": false,
10
+  "known-properties": false,
11
+  "outline-none": false,
12
+  "qualified-headings": false,
13
+  "regex-selectors": false,
14
+  "shorthand": false,
15
+  "text-indent": false,
16
+  "unique-headings": false,
17
+  "universal-selector": false,
18
+  "unqualified-attributes": false
19
+}

+ 68
- 0
searx/static/oscar/less/bootstrap/alerts.less 查看文件

@@ -0,0 +1,68 @@
1
+//
2
+// Alerts
3
+// --------------------------------------------------
4
+
5
+
6
+// Base styles
7
+// -------------------------
8
+
9
+.alert {
10
+  padding: @alert-padding;
11
+  margin-bottom: @line-height-computed;
12
+  border: 1px solid transparent;
13
+  border-radius: @alert-border-radius;
14
+
15
+  // Headings for larger alerts
16
+  h4 {
17
+    margin-top: 0;
18
+    // Specified for the h4 to prevent conflicts of changing @headings-color
19
+    color: inherit;
20
+  }
21
+  // Provide class for links that match alerts
22
+  .alert-link {
23
+    font-weight: @alert-link-font-weight;
24
+  }
25
+
26
+  // Improve alignment and spacing of inner content
27
+  > p,
28
+  > ul {
29
+    margin-bottom: 0;
30
+  }
31
+  > p + p {
32
+    margin-top: 5px;
33
+  }
34
+}
35
+
36
+// Dismissible alerts
37
+//
38
+// Expand the right padding and account for the close button's positioning.
39
+
40
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
41
+.alert-dismissible {
42
+  padding-right: (@alert-padding + 20);
43
+
44
+  // Adjust close link position
45
+  .close {
46
+    position: relative;
47
+    top: -2px;
48
+    right: -21px;
49
+    color: inherit;
50
+  }
51
+}
52
+
53
+// Alternate styles
54
+//
55
+// Generate contextual modifier classes for colorizing the alert.
56
+
57
+.alert-success {
58
+  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
59
+}
60
+.alert-info {
61
+  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
62
+}
63
+.alert-warning {
64
+  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
65
+}
66
+.alert-danger {
67
+  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
68
+}

+ 55
- 0
searx/static/oscar/less/bootstrap/badges.less 查看文件

@@ -0,0 +1,55 @@
1
+//
2
+// Badges
3
+// --------------------------------------------------
4
+
5
+
6
+// Base class
7
+.badge {
8
+  display: inline-block;
9
+  min-width: 10px;
10
+  padding: 3px 7px;
11
+  font-size: @font-size-small;
12
+  font-weight: @badge-font-weight;
13
+  color: @badge-color;
14
+  line-height: @badge-line-height;
15
+  vertical-align: baseline;
16
+  white-space: nowrap;
17
+  text-align: center;
18
+  background-color: @badge-bg;
19
+  border-radius: @badge-border-radius;
20
+
21
+  // Empty badges collapse automatically (not available in IE8)
22
+  &:empty {
23
+    display: none;
24
+  }
25
+
26
+  // Quick fix for badges in buttons
27
+  .btn & {
28
+    position: relative;
29
+    top: -1px;
30
+  }
31
+  .btn-xs & {
32
+    top: 0;
33
+    padding: 1px 5px;
34
+  }
35
+
36
+  // Hover state, but only for links
37
+  a& {
38
+    &:hover,
39
+    &:focus {
40
+      color: @badge-link-hover-color;
41
+      text-decoration: none;
42
+      cursor: pointer;
43
+    }
44
+  }
45
+
46
+  // Account for badges in navs
47
+  a.list-group-item.active > &,
48
+  .nav-pills > .active > a > & {
49
+    color: @badge-active-color;
50
+    background-color: @badge-active-bg;
51
+  }
52
+  .nav-pills > li > a > & {
53
+    margin-left: 3px;
54
+  }
55
+}

+ 53
- 0
searx/static/oscar/less/bootstrap/bootstrap.less 查看文件

@@ -0,0 +1,53 @@
1
+// Core variables and mixins
2
+@import "variables.less";
3
+@import "mixins.less";
4
+
5
+// Reset and dependencies
6
+@import "normalize.less";
7
+@import "print.less";
8
+@import "glyphicons.less";
9
+
10
+// Core CSS
11
+@import "scaffolding.less";
12
+@import "type.less";
13
+@import "code.less";
14
+@import "grid.less";
15
+@import "tables.less";
16
+@import "forms.less";
17
+@import "buttons.less";
18
+
19
+// Components
20
+@import "component-animations.less";
21
+@import "dropdowns.less";
22
+@import "button-groups.less";
23
+@import "input-groups.less";
24
+@import "navs.less";
25
+@import "navbar.less";
26
+@import "breadcrumbs.less";
27
+@import "pagination.less";
28
+@import "pager.less";
29
+@import "labels.less";
30
+@import "badges.less";
31
+@import "jumbotron.less";
32
+@import "thumbnails.less";
33
+@import "alerts.less";
34
+@import "progress-bars.less";
35
+@import "media.less";
36
+@import "list-group.less";
37
+@import "panels.less";
38
+@import "responsive-embed.less";
39
+@import "wells.less";
40
+@import "close.less";
41
+
42
+// Components w/ JavaScript
43
+@import "modals.less";
44
+@import "tooltip.less";
45
+@import "popovers.less";
46
+@import "carousel.less";
47
+
48
+// Utility classes
49
+@import "utilities.less";
50
+@import "responsive-utilities.less";
51
+
52
+// own additions
53
+@import "typeahead.less";

+ 26
- 0
searx/static/oscar/less/bootstrap/breadcrumbs.less 查看文件

@@ -0,0 +1,26 @@
1
+//
2
+// Breadcrumbs
3
+// --------------------------------------------------
4
+
5
+
6
+.breadcrumb {
7
+  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8
+  margin-bottom: @line-height-computed;
9
+  list-style: none;
10
+  background-color: @breadcrumb-bg;
11
+  border-radius: @border-radius-base;
12
+
13
+  > li {
14
+    display: inline-block;
15
+
16
+    + li:before {
17
+      content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18
+      padding: 0 5px;
19
+      color: @breadcrumb-color;
20
+    }
21
+  }
22
+
23
+  > .active {
24
+    color: @breadcrumb-active-color;
25
+  }
26
+}

+ 240
- 0
searx/static/oscar/less/bootstrap/button-groups.less 查看文件

@@ -0,0 +1,240 @@
1
+//
2
+// Button groups
3
+// --------------------------------------------------
4
+
5
+// Make the div behave like a button
6
+.btn-group,
7
+.btn-group-vertical {
8
+  position: relative;
9
+  display: inline-block;
10
+  vertical-align: middle; // match .btn alignment given font-size hack above
11
+  > .btn {
12
+    position: relative;
13
+    float: left;
14
+    // Bring the "active" button to the front
15
+    &:hover,
16
+    &:focus,
17
+    &:active,
18
+    &.active {
19
+      z-index: 2;
20
+    }
21
+    &:focus {
22
+      // Remove focus outline when dropdown JS adds it after closing the menu
23
+      outline: 0;
24
+    }
25
+  }
26
+}
27
+
28
+// Prevent double borders when buttons are next to each other
29
+.btn-group {
30
+  .btn + .btn,
31
+  .btn + .btn-group,
32
+  .btn-group + .btn,
33
+  .btn-group + .btn-group {
34
+    margin-left: -1px;
35
+  }
36
+}
37
+
38
+// Optional: Group multiple button groups together for a toolbar
39
+.btn-toolbar {
40
+  margin-left: -5px; // Offset the first child's margin
41
+  &:extend(.clearfix all);
42
+
43
+  .btn-group,
44
+  .input-group {
45
+    float: left;
46
+  }
47
+  > .btn,
48
+  > .btn-group,
49
+  > .input-group {
50
+    margin-left: 5px;
51
+  }
52
+}
53
+
54
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
55
+  border-radius: 0;
56
+}
57
+
58
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
59
+.btn-group > .btn:first-child {
60
+  margin-left: 0;
61
+  &:not(:last-child):not(.dropdown-toggle) {
62
+    .border-right-radius(0);
63
+  }
64
+}
65
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
66
+.btn-group > .btn:last-child:not(:first-child),
67
+.btn-group > .dropdown-toggle:not(:first-child) {
68
+  .border-left-radius(0);
69
+}
70
+
71
+// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
72
+.btn-group > .btn-group {
73
+  float: left;
74
+}
75
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
76
+  border-radius: 0;
77
+}
78
+.btn-group > .btn-group:first-child {
79
+  > .btn:last-child,
80
+  > .dropdown-toggle {
81
+    .border-right-radius(0);
82
+  }
83
+}
84
+.btn-group > .btn-group:last-child > .btn:first-child {
85
+  .border-left-radius(0);
86
+}
87
+
88
+// On active and open, don't show outline
89
+.btn-group .dropdown-toggle:active,
90
+.btn-group.open .dropdown-toggle {
91
+  outline: 0;
92
+}
93
+
94
+
95
+// Sizing
96
+//
97
+// Remix the default button sizing classes into new ones for easier manipulation.
98
+
99
+.btn-group-xs > .btn { &:extend(.btn-xs); }
100
+.btn-group-sm > .btn { &:extend(.btn-sm); }
101
+.btn-group-lg > .btn { &:extend(.btn-lg); }
102
+
103
+
104
+// Split button dropdowns
105
+// ----------------------
106
+
107
+// Give the line between buttons some depth
108
+.btn-group > .btn + .dropdown-toggle {
109
+  padding-left: 8px;
110
+  padding-right: 8px;
111
+}
112
+.btn-group > .btn-lg + .dropdown-toggle {
113
+  padding-left: 12px;
114
+  padding-right: 12px;
115
+}
116
+
117
+// The clickable button for toggling the menu
118
+// Remove the gradient and set the same inset shadow as the :active state
119
+.btn-group.open .dropdown-toggle {
120
+  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
121
+
122
+  // Show no shadow for `.btn-link` since it has no other button styles.
123
+  &.btn-link {
124
+    .box-shadow(none);
125
+  }
126
+}
127
+
128
+
129
+// Reposition the caret
130
+.btn .caret {
131
+  margin-left: 0;
132
+}
133
+// Carets in other button sizes
134
+.btn-lg .caret {
135
+  border-width: @caret-width-large @caret-width-large 0;
136
+  border-bottom-width: 0;
137
+}
138
+// Upside down carets for .dropup
139
+.dropup .btn-lg .caret {
140
+  border-width: 0 @caret-width-large @caret-width-large;
141
+}
142
+
143
+
144
+// Vertical button groups
145
+// ----------------------
146
+
147
+.btn-group-vertical {
148
+  > .btn,
149
+  > .btn-group,
150
+  > .btn-group > .btn {
151
+    display: block;
152
+    float: none;
153
+    width: 100%;
154
+    max-width: 100%;
155
+  }
156
+
157
+  // Clear floats so dropdown menus can be properly placed
158
+  > .btn-group {
159
+    &:extend(.clearfix all);
160
+    > .btn {
161
+      float: none;
162
+    }
163
+  }
164
+
165
+  > .btn + .btn,
166
+  > .btn + .btn-group,
167
+  > .btn-group + .btn,
168
+  > .btn-group + .btn-group {
169
+    margin-top: -1px;
170
+    margin-left: 0;
171
+  }
172
+}
173
+
174
+.btn-group-vertical > .btn {
175
+  &:not(:first-child):not(:last-child) {
176
+    border-radius: 0;
177
+  }
178
+  &:first-child:not(:last-child) {
179
+    border-top-right-radius: @border-radius-base;
180
+    .border-bottom-radius(0);
181
+  }
182
+  &:last-child:not(:first-child) {
183
+    border-bottom-left-radius: @border-radius-base;
184
+    .border-top-radius(0);
185
+  }
186
+}
187
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
188
+  border-radius: 0;
189
+}
190
+.btn-group-vertical > .btn-group:first-child:not(:last-child) {
191
+  > .btn:last-child,
192
+  > .dropdown-toggle {
193
+    .border-bottom-radius(0);
194
+  }
195
+}
196
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
197
+  .border-top-radius(0);
198
+}
199
+
200
+
201
+
202
+// Justified button groups
203
+// ----------------------
204
+
205
+.btn-group-justified {
206
+  display: table;
207
+  width: 100%;
208
+  table-layout: fixed;
209
+  border-collapse: separate;
210
+  > .btn,
211
+  > .btn-group {
212
+    float: none;
213
+    display: table-cell;
214
+    width: 1%;
215
+  }
216
+  > .btn-group .btn {
217
+    width: 100%;
218
+  }
219
+
220
+  > .btn-group .dropdown-menu {
221
+    left: auto;
222
+  }
223
+}
224
+
225
+
226
+// Checkbox and radio options
227
+//
228
+// In order to support the browser's form validation feedback, powered by the
229
+// `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
230
+// use `display: none;` or `visibility: hidden;` as that also hides the popover.
231
+// This way, we ensure a DOM element is visible to position the popover from.
232
+//
233
+// See https://github.com/twbs/bootstrap/pull/12794 for more.
234
+
235
+[data-toggle="buttons"] > .btn > input[type="radio"],
236
+[data-toggle="buttons"] > .btn > input[type="checkbox"] {
237
+  position: absolute;
238
+  z-index: -1;
239
+  .opacity(0);
240
+}

+ 157
- 0
searx/static/oscar/less/bootstrap/buttons.less 查看文件

@@ -0,0 +1,157 @@
1
+//
2
+// Buttons
3
+// --------------------------------------------------
4
+
5
+
6
+// Base styles
7
+// --------------------------------------------------
8
+
9
+.btn {
10
+  display: inline-block;
11
+  margin-bottom: 0; // For input.btn
12
+  font-weight: @btn-font-weight;
13
+  text-align: center;
14
+  vertical-align: middle;
15
+  cursor: pointer;
16
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
17
+  border: 1px solid transparent;
18
+  white-space: nowrap;
19
+  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
20
+  .user-select(none);
21
+
22
+  &,
23
+  &:active,
24
+  &.active {
25
+    &:focus {
26
+      .tab-focus();
27
+    }
28
+  }
29
+
30
+  &:hover,
31
+  &:focus {
32
+    color: @btn-default-color;
33
+    text-decoration: none;
34
+  }
35
+
36
+  &:active,
37
+  &.active {
38
+    outline: 0;
39
+    background-image: none;
40
+    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
41
+  }
42
+
43
+  &.disabled,
44
+  &[disabled],
45
+  fieldset[disabled] & {
46
+    cursor: not-allowed;
47
+    pointer-events: none; // Future-proof disabling of clicks
48
+    .opacity(.65);
49
+    .box-shadow(none);
50
+  }
51
+}
52
+
53
+
54
+// Alternate buttons
55
+// --------------------------------------------------
56
+
57
+.btn-default {
58
+  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
59
+}
60
+.btn-primary {
61
+  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
62
+}
63
+// Success appears as green
64
+.btn-success {
65
+  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
66
+}
67
+// Info appears as blue-green
68
+.btn-info {
69
+  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
70
+}
71
+// Warning appears as orange
72
+.btn-warning {
73
+  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
74
+}
75
+// Danger and error appear as red
76
+.btn-danger {
77
+  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
78
+}
79
+
80
+
81
+// Link buttons
82
+// -------------------------
83
+
84
+// Make a button look and behave like a link
85
+.btn-link {
86
+  color: @link-color;
87
+  font-weight: normal;
88
+  cursor: pointer;
89
+  border-radius: 0;
90
+
91
+  &,
92
+  &:active,
93
+  &[disabled],
94
+  fieldset[disabled] & {
95
+    background-color: transparent;
96
+    .box-shadow(none);
97
+  }
98
+  &,
99
+  &:hover,
100
+  &:focus,
101
+  &:active {
102
+    border-color: transparent;
103
+  }
104
+  &:hover,
105
+  &:focus {
106
+    color: @link-hover-color;
107
+    text-decoration: underline;
108
+    background-color: transparent;
109
+  }
110
+  &[disabled],
111
+  fieldset[disabled] & {
112
+    &:hover,
113
+    &:focus {
114
+      color: @btn-link-disabled-color;
115
+      text-decoration: none;
116
+    }
117
+  }
118
+}
119
+
120
+
121
+// Button Sizes
122
+// --------------------------------------------------
123
+
124
+.btn-lg {
125
+  // line-height: ensure even-numbered height of button next to large input
126
+  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
127
+}
128
+.btn-sm {
129
+  // line-height: ensure proper height of button next to small input
130
+  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
131
+}
132
+.btn-xs {
133
+  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);
134
+}
135
+
136
+
137
+// Block button
138
+// --------------------------------------------------
139
+
140
+.btn-block {
141
+  display: block;
142
+  width: 100%;
143
+}
144
+
145
+// Vertically space out multiple block buttons
146
+.btn-block + .btn-block {
147
+  margin-top: 5px;
148
+}
149
+
150
+// Specificity overrides
151
+input[type="submit"],
152
+input[type="reset"],
153
+input[type="button"] {
154
+  &.btn-block {
155
+    width: 100%;
156
+  }
157
+}

+ 243
- 0
searx/static/oscar/less/bootstrap/carousel.less 查看文件

@@ -0,0 +1,243 @@
1
+//
2
+// Carousel
3
+// --------------------------------------------------
4
+
5
+
6
+// Wrapper for the slide container and indicators
7
+.carousel {
8
+  position: relative;
9
+}
10
+
11
+.carousel-inner {
12
+  position: relative;
13
+  overflow: hidden;
14
+  width: 100%;
15
+
16
+  > .item {
17
+    display: none;
18
+    position: relative;
19
+    .transition(.6s ease-in-out left);
20
+
21
+    // Account for jankitude on images
22
+    > img,
23
+    > a > img {
24
+      &:extend(.img-responsive);
25
+      line-height: 1;
26
+    }
27
+  }
28
+
29
+  > .active,
30
+  > .next,
31
+  > .prev {
32
+    display: block;
33
+  }
34
+
35
+  > .active {
36
+    left: 0;
37
+  }
38
+
39
+  > .next,
40
+  > .prev {
41
+    position: absolute;
42
+    top: 0;
43
+    width: 100%;
44
+  }
45
+
46
+  > .next {
47
+    left: 100%;
48
+  }
49
+  > .prev {
50
+    left: -100%;
51
+  }
52
+  > .next.left,
53
+  > .prev.right {
54
+    left: 0;
55
+  }
56
+
57
+  > .active.left {
58
+    left: -100%;
59
+  }
60
+  > .active.right {
61
+    left: 100%;
62
+  }
63
+
64
+}
65
+
66
+// Left/right controls for nav
67
+// ---------------------------
68
+
69
+.carousel-control {
70
+  position: absolute;
71
+  top: 0;
72
+  left: 0;
73
+  bottom: 0;
74
+  width: @carousel-control-width;
75
+  .opacity(@carousel-control-opacity);
76
+  font-size: @carousel-control-font-size;
77
+  color: @carousel-control-color;
78
+  text-align: center;
79
+  text-shadow: @carousel-text-shadow;
80
+  // We can't have this transition here because WebKit cancels the carousel
81
+  // animation if you trip this while in the middle of another animation.
82
+
83
+  // Set gradients for backgrounds
84
+  &.left {
85
+    #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
86
+  }
87
+  &.right {
88
+    left: auto;
89
+    right: 0;
90
+    #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
91
+  }
92
+
93
+  // Hover/focus state
94
+  &:hover,
95
+  &:focus {
96
+    outline: 0;
97
+    color: @carousel-control-color;
98
+    text-decoration: none;
99
+    .opacity(.9);
100
+  }
101
+
102
+  // Toggles
103
+  .icon-prev,
104
+  .icon-next,
105
+  .glyphicon-chevron-left,
106
+  .glyphicon-chevron-right {
107
+    position: absolute;
108
+    top: 50%;
109
+    z-index: 5;
110
+    display: inline-block;
111
+  }
112
+  .icon-prev,
113
+  .glyphicon-chevron-left {
114
+    left: 50%;
115
+    margin-left: -10px;
116
+  }
117
+  .icon-next,
118
+  .glyphicon-chevron-right {
119
+    right: 50%;
120
+    margin-right: -10px;
121
+  }
122
+  .icon-prev,
123
+  .icon-next {
124
+    width:  20px;
125
+    height: 20px;
126
+    margin-top: -10px;
127
+    font-family: serif;
128
+  }
129
+
130
+
131
+  .icon-prev {
132
+    &:before {
133
+      content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
134
+    }
135
+  }
136
+  .icon-next {
137
+    &:before {
138
+      content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
139
+    }
140
+  }
141
+}
142
+
143
+// Optional indicator pips
144
+//
145
+// Add an unordered list with the following class and add a list item for each
146
+// slide your carousel holds.
147
+
148
+.carousel-indicators {
149
+  position: absolute;
150
+  bottom: 10px;
151
+  left: 50%;
152
+  z-index: 15;
153
+  width: 60%;
154
+  margin-left: -30%;
155
+  padding-left: 0;
156
+  list-style: none;
157
+  text-align: center;
158
+
159
+  li {
160
+    display: inline-block;
161
+    width:  10px;
162
+    height: 10px;
163
+    margin: 1px;
164
+    text-indent: -999px;
165
+    border: 1px solid @carousel-indicator-border-color;
166
+    border-radius: 10px;
167
+    cursor: pointer;
168
+
169
+    // IE8-9 hack for event handling
170
+    //
171
+    // Internet Explorer 8-9 does not support clicks on elements without a set
172
+    // `background-color`. We cannot use `filter` since that's not viewed as a
173
+    // background color by the browser. Thus, a hack is needed.
174
+    //
175
+    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
176
+    // set alpha transparency for the best results possible.
177
+    background-color: #000 \9; // IE8
178
+    background-color: rgba(0,0,0,0); // IE9
179
+  }
180
+  .active {
181
+    margin: 0;
182
+    width:  12px;
183
+    height: 12px;
184
+    background-color: @carousel-indicator-active-bg;
185
+  }
186
+}
187
+
188
+// Optional captions
189
+// -----------------------------
190
+// Hidden by default for smaller viewports
191
+.carousel-caption {
192
+  position: absolute;
193
+  left: 15%;
194
+  right: 15%;
195
+  bottom: 20px;
196
+  z-index: 10;
197
+  padding-top: 20px;
198
+  padding-bottom: 20px;
199
+  color: @carousel-caption-color;
200
+  text-align: center;
201
+  text-shadow: @carousel-text-shadow;
202
+  & .btn {
203
+    text-shadow: none; // No shadow for button elements in carousel-caption
204
+  }
205
+}
206
+
207
+
208
+// Scale up controls for tablets and up
209
+@media screen and (min-width: @screen-sm-min) {
210
+
211
+  // Scale up the controls a smidge
212
+  .carousel-control {
213
+    .glyphicon-chevron-left,
214
+    .glyphicon-chevron-right,
215
+    .icon-prev,
216
+    .icon-next {
217
+      width: 30px;
218
+      height: 30px;
219
+      margin-top: -15px;
220
+      font-size: 30px;
221
+    }
222
+    .glyphicon-chevron-left,
223
+    .icon-prev {
224
+      margin-left: -15px;
225
+    }
226
+    .glyphicon-chevron-right,
227
+    .icon-next {
228
+      margin-right: -15px;
229
+    }
230
+  }
231
+
232
+  // Show and left align the captions
233
+  .carousel-caption {
234
+    left: 20%;
235
+    right: 20%;
236
+    padding-bottom: 30px;
237
+  }
238
+
239
+  // Move up the indicators
240
+  .carousel-indicators {
241
+    bottom: 20px;
242
+  }
243
+}

+ 33
- 0
searx/static/oscar/less/bootstrap/close.less 查看文件

@@ -0,0 +1,33 @@
1
+//
2
+// Close icons
3
+// --------------------------------------------------
4
+
5
+
6
+.close {
7
+  float: right;
8
+  font-size: (@font-size-base * 1.5);
9
+  font-weight: @close-font-weight;
10
+  line-height: 1;
11
+  color: @close-color;
12
+  text-shadow: @close-text-shadow;
13
+  .opacity(.2);
14
+
15
+  &:hover,
16
+  &:focus {
17
+    color: @close-color;
18
+    text-decoration: none;
19
+    cursor: pointer;
20
+    .opacity(.5);
21
+  }
22
+
23
+  // Additional properties for button version
24
+  // iOS requires the button element instead of an anchor tag.
25
+  // If you want the anchor version, it requires `href="#"`.
26
+  button& {
27
+    padding: 0;
28
+    cursor: pointer;
29
+    background: transparent;
30
+    border: 0;
31
+    -webkit-appearance: none;
32
+  }
33
+}

+ 68
- 0
searx/static/oscar/less/bootstrap/code.less 查看文件

@@ -0,0 +1,68 @@
1
+//
2
+// Code (inline and block)
3
+// --------------------------------------------------
4
+
5
+
6
+// Inline and block code styles
7
+code,
8
+kbd,
9
+pre,
10
+samp {
11
+  font-family: @font-family-monospace;
12
+}
13
+
14
+// Inline code
15
+code {
16
+  padding: 2px 4px;
17
+  font-size: 90%;
18
+  color: @code-color;
19
+  background-color: @code-bg;
20
+  border-radius: @border-radius-base;
21
+}
22
+
23
+// User input typically entered via keyboard
24
+kbd {
25
+  padding: 2px 4px;
26
+  font-size: 90%;
27
+  color: @kbd-color;
28
+  background-color: @kbd-bg;
29
+  border-radius: @border-radius-small;
30
+  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31
+
32
+  kbd {
33
+    padding: 0;
34
+    font-size: 100%;
35
+    box-shadow: none;
36
+  }
37
+}
38
+
39
+// Blocks of code
40
+pre {
41
+  display: block;
42
+  padding: ((@line-height-computed - 1) / 2);
43
+  margin: 0 0 (@line-height-computed / 2);
44
+  font-size: (@font-size-base - 1); // 14px to 13px
45
+  line-height: @line-height-base;
46
+  word-break: break-all;
47
+  word-wrap: break-word;
48
+  color: @pre-color;
49
+  background-color: @pre-bg;
50
+  border: 1px solid @pre-border-color;
51
+  border-radius: @border-radius-base;
52
+
53
+  // Account for some code outputs that place code tags in pre tags
54
+  code {
55
+    padding: 0;
56
+    font-size: inherit;
57
+    color: inherit;
58
+    white-space: pre-wrap;
59
+    background-color: transparent;
60
+    border-radius: 0;
61
+  }
62
+}
63
+
64
+// Enable scrollable blocks of code
65
+.pre-scrollable {
66
+  max-height: @pre-scrollable-max-height;
67
+  overflow-y: scroll;
68
+}

+ 31
- 0
searx/static/oscar/less/bootstrap/component-animations.less 查看文件

@@ -0,0 +1,31 @@
1
+//
2
+// Component animations
3
+// --------------------------------------------------
4
+
5
+// Heads up!
6
+//
7
+// We don't use the `.opacity()` mixin here since it causes a bug with text
8
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9
+
10
+.fade {
11
+  opacity: 0;
12
+  .transition(opacity .15s linear);
13
+  &.in {
14
+    opacity: 1;
15
+  }
16
+}
17
+
18
+.collapse {
19
+  display: none;
20
+
21
+  &.in      { display: block; }
22
+  tr&.in    { display: table-row; }
23
+  tbody&.in { display: table-row-group; }
24
+}
25
+
26
+.collapsing {
27
+  position: relative;
28
+  height: 0;
29
+  overflow: hidden;
30
+  .transition(height .35s ease);
31
+}

+ 215
- 0
searx/static/oscar/less/bootstrap/dropdowns.less 查看文件

@@ -0,0 +1,215 @@
1
+//
2
+// Dropdown menus
3
+// --------------------------------------------------
4
+
5
+
6
+// Dropdown arrow/caret
7
+.caret {
8
+  display: inline-block;
9
+  width: 0;
10
+  height: 0;
11
+  margin-left: 2px;
12
+  vertical-align: middle;
13
+  border-top:   @caret-width-base solid;
14
+  border-right: @caret-width-base solid transparent;
15
+  border-left:  @caret-width-base solid transparent;
16
+}
17
+
18
+// The dropdown wrapper (div)
19
+.dropdown {
20
+  position: relative;
21
+}
22
+
23
+// Prevent the focus on the dropdown toggle when closing dropdowns
24
+.dropdown-toggle:focus {
25
+  outline: 0;
26
+}
27
+
28
+// The dropdown menu (ul)
29
+.dropdown-menu {
30
+  position: absolute;
31
+  top: 100%;
32
+  left: 0;
33
+  z-index: @zindex-dropdown;
34
+  display: none; // none by default, but block on "open" of the menu
35
+  float: left;
36
+  min-width: 160px;
37
+  padding: 5px 0;
38
+  margin: 2px 0 0; // override default ul
39
+  list-style: none;
40
+  font-size: @font-size-base;
41
+  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
42
+  background-color: @dropdown-bg;
43
+  border: 1px solid @dropdown-fallback-border; // IE8 fallback
44
+  border: 1px solid @dropdown-border;
45
+  border-radius: @border-radius-base;
46
+  .box-shadow(0 6px 12px rgba(0,0,0,.175));
47
+  background-clip: padding-box;
48
+
49
+  // Aligns the dropdown menu to right
50
+  //
51
+  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
52
+  &.pull-right {
53
+    right: 0;
54
+    left: auto;
55
+  }
56
+
57
+  // Dividers (basically an hr) within the dropdown
58
+  .divider {
59
+    .nav-divider(@dropdown-divider-bg);
60
+  }
61
+
62
+  // Links within the dropdown menu
63
+  > li > a {
64
+    display: block;
65
+    padding: 3px 20px;
66
+    clear: both;
67
+    font-weight: normal;
68
+    line-height: @line-height-base;
69
+    color: @dropdown-link-color;
70
+    white-space: nowrap; // prevent links from randomly breaking onto new lines
71
+  }
72
+}
73
+
74
+// Hover/Focus state
75
+.dropdown-menu > li > a {
76
+  &:hover,
77
+  &:focus {
78
+    text-decoration: none;
79
+    color: @dropdown-link-hover-color;
80
+    background-color: @dropdown-link-hover-bg;
81
+  }
82
+}
83
+
84
+// Active state
85
+.dropdown-menu > .active > a {
86
+  &,
87
+  &:hover,
88
+  &:focus {
89
+    color: @dropdown-link-active-color;
90
+    text-decoration: none;
91
+    outline: 0;
92
+    background-color: @dropdown-link-active-bg;
93
+  }
94
+}
95
+
96
+// Disabled state
97
+//
98
+// Gray out text and ensure the hover/focus state remains gray
99
+
100
+.dropdown-menu > .disabled > a {
101
+  &,
102
+  &:hover,
103
+  &:focus {
104
+    color: @dropdown-link-disabled-color;
105
+  }
106
+}
107
+// Nuke hover/focus effects
108
+.dropdown-menu > .disabled > a {
109
+  &:hover,
110
+  &:focus {
111
+    text-decoration: none;
112
+    background-color: transparent;
113
+    background-image: none; // Remove CSS gradient
114
+    .reset-filter();
115
+    cursor: not-allowed;
116
+  }
117
+}
118
+
119
+// Open state for the dropdown
120
+.open {
121
+  // Show the menu
122
+  > .dropdown-menu {
123
+    display: block;
124
+  }
125
+
126
+  // Remove the outline when :focus is triggered
127
+  > a {
128
+    outline: 0;
129
+  }
130
+}
131
+
132
+// Menu positioning
133
+//
134
+// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
135
+// menu with the parent.
136
+.dropdown-menu-right {
137
+  left: auto; // Reset the default from `.dropdown-menu`
138
+  right: 0;
139
+}
140
+// With v3, we enabled auto-flipping if you have a dropdown within a right
141
+// aligned nav component. To enable the undoing of that, we provide an override
142
+// to restore the default dropdown menu alignment.
143
+//
144
+// This is only for left-aligning a dropdown menu within a `.navbar-right` or
145
+// `.pull-right` nav component.
146
+.dropdown-menu-left {
147
+  left: 0;
148
+  right: auto;
149
+}
150
+
151
+// Dropdown section headers
152
+.dropdown-header {
153
+  display: block;
154
+  padding: 3px 20px;
155
+  font-size: @font-size-small;
156
+  line-height: @line-height-base;
157
+  color: @dropdown-header-color;
158
+  white-space: nowrap; // as with > li > a
159
+}
160
+
161
+// Backdrop to catch body clicks on mobile, etc.
162
+.dropdown-backdrop {
163
+  position: fixed;
164
+  left: 0;
165
+  right: 0;
166
+  bottom: 0;
167
+  top: 0;
168
+  z-index: (@zindex-dropdown - 10);
169
+}
170
+
171
+// Right aligned dropdowns
172
+.pull-right > .dropdown-menu {
173
+  right: 0;
174
+  left: auto;
175
+}
176
+
177
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
178
+//
179
+// Just add .dropup after the standard .dropdown class and you're set, bro.
180
+// TODO: abstract this so that the navbar fixed styles are not placed here?
181
+
182
+.dropup,
183
+.navbar-fixed-bottom .dropdown {
184
+  // Reverse the caret
185
+  .caret {
186
+    border-top: 0;
187
+    border-bottom: @caret-width-base solid;
188
+    content: "";
189
+  }
190
+  // Different positioning for bottom up menu
191
+  .dropdown-menu {
192
+    top: auto;
193
+    bottom: 100%;
194
+    margin-bottom: 1px;
195
+  }
196
+}
197
+
198
+
199
+// Component alignment
200
+//
201
+// Reiterate per navbar.less and the modified component alignment there.
202
+
203
+@media (min-width: @grid-float-breakpoint) {
204
+  .navbar-right {
205
+    .dropdown-menu {
206
+      .dropdown-menu-right();
207
+    }
208
+    // Necessary for overrides of the default right aligned menu.
209
+    // Will remove come v4 in all likelihood.
210
+    .dropdown-menu-left {
211
+      .dropdown-menu-left();
212
+    }
213
+  }
214
+}
215
+

+ 540
- 0
searx/static/oscar/less/bootstrap/forms.less 查看文件

@@ -0,0 +1,540 @@
1
+//
2
+// Forms
3
+// --------------------------------------------------
4
+
5
+
6
+// Normalize non-controls
7
+//
8
+// Restyle and baseline non-control form elements.
9
+
10
+fieldset {
11
+  padding: 0;
12
+  margin: 0;
13
+  border: 0;
14
+  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
15
+  // so we reset that to ensure it behaves more like a standard block element.
16
+  // See https://github.com/twbs/bootstrap/issues/12359.
17
+  min-width: 0;
18
+}
19
+
20
+legend {
21
+  display: block;
22
+  width: 100%;
23
+  padding: 0;
24
+  margin-bottom: @line-height-computed;
25
+  font-size: (@font-size-base * 1.5);
26
+  line-height: inherit;
27
+  color: @legend-color;
28
+  border: 0;
29
+  border-bottom: 1px solid @legend-border-color;
30
+}
31
+
32
+label {
33
+  display: inline-block;
34
+  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
35
+  margin-bottom: 5px;
36
+  font-weight: bold;
37
+}
38
+
39
+
40
+// Normalize form controls
41
+//
42
+// While most of our form styles require extra classes, some basic normalization
43
+// is required to ensure optimum display with or without those classes to better
44
+// address browser inconsistencies.
45
+
46
+// Override content-box in Normalize (* isn't specific enough)
47
+input[type="search"] {
48
+  .box-sizing(border-box);
49
+}
50
+
51
+// Position radios and checkboxes better
52
+input[type="radio"],
53
+input[type="checkbox"] {
54
+  margin: 4px 0 0;
55
+  margin-top: 1px \9; // IE8-9
56
+  line-height: normal;
57
+}
58
+
59
+// Set the height of file controls to match text inputs
60
+input[type="file"] {
61
+  display: block;
62
+}
63
+
64
+// Make range inputs behave like textual form controls
65
+input[type="range"] {
66
+  display: block;
67
+  width: 100%;
68
+}
69
+
70
+// Make multiple select elements height not fixed
71
+select[multiple],
72
+select[size] {
73
+  height: auto;
74
+}
75
+
76
+// Focus for file, radio, and checkbox
77
+input[type="file"]:focus,
78
+input[type="radio"]:focus,
79
+input[type="checkbox"]:focus {
80
+  .tab-focus();
81
+}
82
+
83
+// Adjust output element
84
+output {
85
+  display: block;
86
+  padding-top: (@padding-base-vertical + 1);
87
+  font-size: @font-size-base;
88
+  line-height: @line-height-base;
89
+  color: @input-color;
90
+}
91
+
92
+
93
+// Common form controls
94
+//
95
+// Shared size and type resets for form controls. Apply `.form-control` to any
96
+// of the following form controls:
97
+//
98
+// select
99
+// textarea
100
+// input[type="text"]
101
+// input[type="password"]
102
+// input[type="datetime"]
103
+// input[type="datetime-local"]
104
+// input[type="date"]
105
+// input[type="month"]
106
+// input[type="time"]
107
+// input[type="week"]
108
+// input[type="number"]
109
+// input[type="email"]
110
+// input[type="url"]
111
+// input[type="search"]
112
+// input[type="tel"]
113
+// input[type="color"]
114
+
115
+.form-control {
116
+  display: block;
117
+  width: 100%;
118
+  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
119
+  padding: @padding-base-vertical @padding-base-horizontal;
120
+  font-size: @font-size-base;
121
+  line-height: @line-height-base;
122
+  color: @input-color;
123
+  background-color: @input-bg;
124
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
125
+  border: 1px solid @input-border;
126
+  border-radius: @input-border-radius;
127
+  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
128
+  .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
129
+
130
+  // Customize the `:focus` state to imitate native WebKit styles.
131
+  .form-control-focus();
132
+
133
+  // Placeholder
134
+  .placeholder();
135
+
136
+  // Disabled and read-only inputs
137
+  //
138
+  // HTML5 says that controls under a fieldset > legend:first-child won't be
139
+  // disabled if the fieldset is disabled. Due to implementation difficulty, we
140
+  // don't honor that edge case; we style them as disabled anyway.
141
+  &[disabled],
142
+  &[readonly],
143
+  fieldset[disabled] & {
144
+    cursor: not-allowed;
145
+    background-color: @input-bg-disabled;
146
+    opacity: 1; // iOS fix for unreadable disabled content
147
+  }
148
+
149
+  // Reset height for `textarea`s
150
+  textarea& {
151
+    height: auto;
152
+  }
153
+}
154
+
155
+
156
+// Search inputs in iOS
157
+//
158
+// This overrides the extra rounded corners on search inputs in iOS so that our
159
+// `.form-control` class can properly style them. Note that this cannot simply
160
+// be added to `.form-control` as it's not specific enough. For details, see
161
+// https://github.com/twbs/bootstrap/issues/11586.
162
+
163
+input[type="search"] {
164
+  -webkit-appearance: none;
165
+}
166
+
167
+
168
+// Special styles for iOS temporal inputs
169
+//
170
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
171
+// text within the input to become vertically misaligned.
172
+// As a workaround, we set a pixel line-height that matches the
173
+// given height of the input. Since this fucks up everything else, we have to
174
+// appropriately reset it for Internet Explorer and the size variations.
175
+
176
+input[type="date"],
177
+input[type="time"],
178
+input[type="datetime-local"],
179
+input[type="month"] {
180
+  line-height: @input-height-base;
181
+  // IE8+ misaligns the text within date inputs, so we reset
182
+  line-height: @line-height-base ~"\0";
183
+
184
+  &.input-sm {
185
+    line-height: @input-height-small;
186
+  }
187
+  &.input-lg {
188
+    line-height: @input-height-large;
189
+  }
190
+}
191
+
192
+
193
+// Form groups
194
+//
195
+// Designed to help with the organization and spacing of vertical forms. For
196
+// horizontal forms, use the predefined grid classes.
197
+
198
+.form-group {
199
+  margin-bottom: 15px;
200
+}
201
+
202
+
203
+// Checkboxes and radios
204
+//
205
+// Indent the labels to position radios/checkboxes as hanging controls.
206
+
207
+.radio,
208
+.checkbox {
209
+  position: relative;
210
+  display: block;
211
+  min-height: @line-height-computed; // clear the floating input if there is no label text
212
+  margin-top: 10px;
213
+  margin-bottom: 10px;
214
+
215
+  label {
216
+    padding-left: 20px;
217
+    margin-bottom: 0;
218
+    font-weight: normal;
219
+    cursor: pointer;
220
+  }
221
+}
222
+.radio input[type="radio"],
223
+.radio-inline input[type="radio"],
224
+.checkbox input[type="checkbox"],
225
+.checkbox-inline input[type="checkbox"] {
226
+  position: absolute;
227
+  margin-left: -20px;
228
+  margin-top: 4px \9;
229
+}
230
+
231
+.radio + .radio,
232
+.checkbox + .checkbox {
233
+  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
234
+}
235
+
236
+// Radios and checkboxes on same line
237
+.radio-inline,
238
+.checkbox-inline {
239
+  display: inline-block;
240
+  padding-left: 20px;
241
+  margin-bottom: 0;
242
+  vertical-align: middle;
243
+  font-weight: normal;
244
+  cursor: pointer;
245
+}
246
+.radio-inline + .radio-inline,
247
+.checkbox-inline + .checkbox-inline {
248
+  margin-top: 0;
249
+  margin-left: 10px; // space out consecutive inline controls
250
+}
251
+
252
+// Apply same disabled cursor tweak as for inputs
253
+// Some special care is needed because <label>s don't inherit their parent's `cursor`.
254
+//
255
+// Note: Neither radios nor checkboxes can be readonly.
256
+input[type="radio"],
257
+input[type="checkbox"] {
258
+  &[disabled],
259
+  &.disabled,
260
+  fieldset[disabled] & {
261
+    cursor: not-allowed;
262
+  }
263
+}
264
+// These classes are used directly on <label>s
265
+.radio-inline,
266
+.checkbox-inline {
267
+  &.disabled,
268
+  fieldset[disabled] & {
269
+    cursor: not-allowed;
270
+  }
271
+}
272
+// These classes are used on elements with <label> descendants
273
+.radio,
274
+.checkbox {
275
+  &.disabled,
276
+  fieldset[disabled] & {
277
+    label {
278
+      cursor: not-allowed;
279
+    }
280
+  }
281
+}
282
+
283
+
284
+// Static form control text
285
+//
286
+// Apply class to a `p` element to make any string of text align with labels in
287
+// a horizontal form layout.
288
+
289
+.form-control-static {
290
+  // Size it appropriately next to real form controls
291
+  padding-top: (@padding-base-vertical + 1);
292
+  padding-bottom: (@padding-base-vertical + 1);
293
+  // Remove default margin from `p`
294
+  margin-bottom: 0;
295
+
296
+  &.input-lg,
297
+  &.input-sm {
298
+    padding-left: 0;
299
+    padding-right: 0;
300
+  }
301
+}
302
+
303
+
304
+// Form control sizing
305
+//
306
+// Build on `.form-control` with modifier classes to decrease or increase the
307
+// height and font-size of form controls.
308
+
309
+.input-sm {
310
+  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
311
+}
312
+
313
+.input-lg {
314
+  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
315
+}
316
+
317
+
318
+// Form control feedback states
319
+//
320
+// Apply contextual and semantic states to individual form controls.
321
+
322
+.has-feedback {
323
+  // Enable absolute positioning
324
+  position: relative;
325
+
326
+  // Ensure icons don't overlap text
327
+  .form-control {
328
+    padding-right: (@input-height-base * 1.25);
329
+  }
330
+}
331
+// Feedback icon (requires .glyphicon classes)
332
+.form-control-feedback {
333
+  position: absolute;
334
+  top: (@line-height-computed + 5); // Height of the `label` and its margin
335
+  right: 0;
336
+  z-index: 2; // Ensure icon is above input groups
337
+  display: block;
338
+  width: @input-height-base;
339
+  height: @input-height-base;
340
+  line-height: @input-height-base;
341
+  text-align: center;
342
+}
343
+.input-lg + .form-control-feedback {
344
+  width: @input-height-large;
345
+  height: @input-height-large;
346
+  line-height: @input-height-large;
347
+}
348
+.input-sm + .form-control-feedback {
349
+  width: @input-height-small;
350
+  height: @input-height-small;
351
+  line-height: @input-height-small;
352
+}
353
+
354
+// Feedback states
355
+.has-success {
356
+  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
357
+}
358
+.has-warning {
359
+  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
360
+}
361
+.has-error {
362
+  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
363
+}
364
+
365
+
366
+// Reposition feedback icon if label is hidden with "screenreader only" state
367
+.has-feedback label.sr-only ~ .form-control-feedback {
368
+  top: 0;
369
+}
370
+
371
+
372
+// Help text
373
+//
374
+// Apply to any element you wish to create light text for placement immediately
375
+// below a form control. Use for general help, formatting, or instructional text.
376
+
377
+.help-block {
378
+  display: block; // account for any element using help-block
379
+  margin-top: 5px;
380
+  margin-bottom: 10px;
381
+  color: lighten(@text-color, 25%); // lighten the text some for contrast
382
+}
383
+
384
+
385
+
386
+// Inline forms
387
+//
388
+// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
389
+// forms begin stacked on extra small (mobile) devices and then go inline when
390
+// viewports reach <768px.
391
+//
392
+// Requires wrapping inputs and labels with `.form-group` for proper display of
393
+// default HTML form controls and our custom form controls (e.g., input groups).
394
+//
395
+// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
396
+
397
+.form-inline {
398
+
399
+  // Kick in the inline
400
+  @media (min-width: @screen-sm-min) {
401
+    // Inline-block all the things for "inline"
402
+    .form-group {
403
+      display: inline-block;
404
+      margin-bottom: 0;
405
+      vertical-align: middle;
406
+    }
407
+
408
+    // In navbar-form, allow folks to *not* use `.form-group`
409
+    .form-control {
410
+      display: inline-block;
411
+      width: auto; // Prevent labels from stacking above inputs in `.form-group`
412
+      vertical-align: middle;
413
+    }
414
+
415
+    .input-group {
416
+      display: inline-table;
417
+      vertical-align: middle;
418
+
419
+      .input-group-addon,
420
+      .input-group-btn,
421
+      .form-control {
422
+        width: auto;
423
+      }
424
+    }
425
+
426
+    // Input groups need that 100% width though
427
+    .input-group > .form-control {
428
+      width: 100%;
429
+    }
430
+
431
+    .control-label {
432
+      margin-bottom: 0;
433
+      vertical-align: middle;
434
+    }
435
+
436
+    // Remove default margin on radios/checkboxes that were used for stacking, and
437
+    // then undo the floating of radios and checkboxes to match (which also avoids
438
+    // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
439
+    .radio,
440
+    .checkbox {
441
+      display: inline-block;
442
+      margin-top: 0;
443
+      margin-bottom: 0;
444
+      vertical-align: middle;
445
+
446
+      label {
447
+        padding-left: 0;
448
+      }
449
+    }
450
+    .radio input[type="radio"],
451
+    .checkbox input[type="checkbox"] {
452
+      position: relative;
453
+      margin-left: 0;
454
+    }
455
+
456
+    // Validation states
457
+    //
458
+    // Reposition the icon because it's now within a grid column and columns have
459
+    // `position: relative;` on them. Also accounts for the grid gutter padding.
460
+    .has-feedback .form-control-feedback {
461
+      top: 0;
462
+    }
463
+  }
464
+}
465
+
466
+
467
+// Horizontal forms
468
+//
469
+// Horizontal forms are built on grid classes and allow you to create forms with
470
+// labels on the left and inputs on the right.
471
+
472
+.form-horizontal {
473
+
474
+  // Consistent vertical alignment of radios and checkboxes
475
+  //
476
+  // Labels also get some reset styles, but that is scoped to a media query below.
477
+  .radio,
478
+  .checkbox,
479
+  .radio-inline,
480
+  .checkbox-inline {
481
+    margin-top: 0;
482
+    margin-bottom: 0;
483
+    padding-top: (@padding-base-vertical + 1); // Default padding plus a border
484
+  }
485
+  // Account for padding we're adding to ensure the alignment and of help text
486
+  // and other content below items
487
+  .radio,
488
+  .checkbox {
489
+    min-height: (@line-height-computed + (@padding-base-vertical + 1));
490
+  }
491
+
492
+  // Make form groups behave like rows
493
+  .form-group {
494
+    .make-row();
495
+  }
496
+
497
+  // Reset spacing and right align labels, but scope to media queries so that
498
+  // labels on narrow viewports stack the same as a default form example.
499
+  @media (min-width: @screen-sm-min) {
500
+    .control-label {
501
+      text-align: right;
502
+      margin-bottom: 0;
503
+      padding-top: (@padding-base-vertical + 1); // Default padding plus a border
504
+    }
505
+  }
506
+
507
+  // Validation states
508
+  //
509
+  // Reposition the icon because it's now within a grid column and columns have
510
+  // `position: relative;` on them. Also accounts for the grid gutter padding.
511
+  .has-feedback .form-control-feedback {
512
+    top: 0;
513
+    right: (@grid-gutter-width / 2);
514
+  }
515
+
516
+  // Form group sizes
517
+  //
518
+  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
519
+  // inputs and labels within a `.form-group`.
520
+  .form-group-lg {
521
+    @media (min-width: @screen-sm-min) {
522
+      .control-label {
523
+        padding-top: ((@padding-large-vertical * @line-height-large) + 1);
524
+      }
525
+    }
526
+    .form-control {
527
+      &:extend(.input-lg);
528
+    }
529
+  }
530
+  .form-group-sm {
531
+    @media (min-width: @screen-sm-min) {
532
+      .control-label {
533
+        padding-top: (@padding-small-vertical + 1);
534
+      }
535
+    }
536
+    .form-control {
537
+      &:extend(.input-sm);
538
+    }
539
+  }
540
+}

+ 233
- 0
searx/static/oscar/less/bootstrap/glyphicons.less 查看文件

@@ -0,0 +1,233 @@
1
+//
2
+// Glyphicons for Bootstrap
3
+//
4
+// Since icons are fonts, they can be placed anywhere text is placed and are
5
+// thus automatically sized to match the surrounding child. To use, create an
6
+// inline element with the appropriate classes, like so:
7
+//
8
+// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
9
+
10
+// Import the fonts
11
+@font-face {
12
+  font-family: 'Glyphicons Halflings';
13
+  src: url('@{icon-font-path}@{icon-font-name}.eot');
14
+  src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
15
+       url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
16
+       url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
17
+       url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
18
+}
19
+
20
+// Catchall baseclass
21
+.glyphicon {
22
+  position: relative;
23
+  top: 1px;
24
+  display: inline-block;
25
+  font-family: 'Glyphicons Halflings';
26
+  font-style: normal;
27
+  font-weight: normal;
28
+  line-height: 1;
29
+  -webkit-font-smoothing: antialiased;
30
+  -moz-osx-font-smoothing: grayscale;
31
+}
32
+
33
+// Individual icons
34
+.glyphicon-asterisk               { &:before { content: "\2a"; } }
35
+.glyphicon-plus                   { &:before { content: "\2b"; } }
36
+.glyphicon-euro                   { &:before { content: "\20ac"; } }
37
+.glyphicon-minus                  { &:before { content: "\2212"; } }
38
+.glyphicon-cloud                  { &:before { content: "\2601"; } }
39
+.glyphicon-envelope               { &:before { content: "\2709"; } }
40
+.glyphicon-pencil                 { &:before { content: "\270f"; } }
41
+.glyphicon-glass                  { &:before { content: "\e001"; } }
42
+.glyphicon-music                  { &:before { content: "\e002"; } }
43
+.glyphicon-search                 { &:before { content: "\e003"; } }
44
+.glyphicon-heart                  { &:before { content: "\e005"; } }
45
+.glyphicon-star                   { &:before { content: "\e006"; } }
46
+.glyphicon-star-empty             { &:before { content: "\e007"; } }
47
+.glyphicon-user                   { &:before { content: "\e008"; } }
48
+.glyphicon-film                   { &:before { content: "\e009"; } }
49
+.glyphicon-th-large               { &:before { content: "\e010"; } }
50
+.glyphicon-th                     { &:before { content: "\e011"; } }
51
+.glyphicon-th-list                { &:before { content: "\e012"; } }
52
+.glyphicon-ok                     { &:before { content: "\e013"; } }
53
+.glyphicon-remove                 { &:before { content: "\e014"; } }
54
+.glyphicon-zoom-in                { &:before { content: "\e015"; } }
55
+.glyphicon-zoom-out               { &:before { content: "\e016"; } }
56
+.glyphicon-off                    { &:before { content: "\e017"; } }
57
+.glyphicon-signal                 { &:before { content: "\e018"; } }
58
+.glyphicon-cog                    { &:before { content: "\e019"; } }
59
+.glyphicon-trash                  { &:before { content: "\e020"; } }
60
+.glyphicon-home                   { &:before { content: "\e021"; } }
61
+.glyphicon-file                   { &:before { content: "\e022"; } }
62
+.glyphicon-time                   { &:before { content: "\e023"; } }
63
+.glyphicon-road                   { &:before { content: "\e024"; } }
64
+.glyphicon-download-alt           { &:before { content: "\e025"; } }
65
+.glyphicon-download               { &:before { content: "\e026"; } }
66
+.glyphicon-upload                 { &:before { content: "\e027"; } }
67
+.glyphicon-inbox                  { &:before { content: "\e028"; } }
68
+.glyphicon-play-circle            { &:before { content: "\e029"; } }
69
+.glyphicon-repeat                 { &:before { content: "\e030"; } }
70
+.glyphicon-refresh                { &:before { content: "\e031"; } }
71
+.glyphicon-list-alt               { &:before { content: "\e032"; } }
72
+.glyphicon-lock                   { &:before { content: "\e033"; } }
73
+.glyphicon-flag                   { &:before { content: "\e034"; } }
74
+.glyphicon-headphones             { &:before { content: "\e035"; } }
75
+.glyphicon-volume-off             { &:before { content: "\e036"; } }
76
+.glyphicon-volume-down            { &:before { content: "\e037"; } }
77
+.glyphicon-volume-up              { &:before { content: "\e038"; } }
78
+.glyphicon-qrcode                 { &:before { content: "\e039"; } }
79
+.glyphicon-barcode                { &:before { content: "\e040"; } }
80
+.glyphicon-tag                    { &:before { content: "\e041"; } }
81
+.glyphicon-tags                   { &:before { content: "\e042"; } }
82
+.glyphicon-book                   { &:before { content: "\e043"; } }
83
+.glyphicon-bookmark               { &:before { content: "\e044"; } }
84
+.glyphicon-print                  { &:before { content: "\e045"; } }
85
+.glyphicon-camera                 { &:before { content: "\e046"; } }
86
+.glyphicon-font                   { &:before { content: "\e047"; } }
87
+.glyphicon-bold                   { &:before { content: "\e048"; } }
88
+.glyphicon-italic                 { &:before { content: "\e049"; } }
89
+.glyphicon-text-height            { &:before { content: "\e050"; } }
90
+.glyphicon-text-width             { &:before { content: "\e051"; } }
91
+.glyphicon-align-left             { &:before { content: "\e052"; } }
92
+.glyphicon-align-center           { &:before { content: "\e053"; } }
93
+.glyphicon-align-right            { &:before { content: "\e054"; } }
94
+.glyphicon-align-justify          { &:before { content: "\e055"; } }
95
+.glyphicon-list                   { &:before { content: "\e056"; } }
96
+.glyphicon-indent-left            { &:before { content: "\e057"; } }
97
+.glyphicon-indent-right           { &:before { content: "\e058"; } }
98
+.glyphicon-facetime-video         { &:before { content: "\e059"; } }
99
+.glyphicon-picture                { &:before { content: "\e060"; } }
100
+.glyphicon-map-marker             { &:before { content: "\e062"; } }
101
+.glyphicon-adjust                 { &:before { content: "\e063"; } }
102
+.glyphicon-tint                   { &:before { content: "\e064"; } }
103
+.glyphicon-edit                   { &:before { content: "\e065"; } }
104
+.glyphicon-share                  { &:before { content: "\e066"; } }
105
+.glyphicon-check                  { &:before { content: "\e067"; } }
106
+.glyphicon-move                   { &:before { content: "\e068"; } }
107
+.glyphicon-step-backward          { &:before { content: "\e069"; } }
108
+.glyphicon-fast-backward          { &:before { content: "\e070"; } }
109
+.glyphicon-backward               { &:before { content: "\e071"; } }
110
+.glyphicon-play                   { &:before { content: "\e072"; } }
111
+.glyphicon-pause                  { &:before { content: "\e073"; } }
112
+.glyphicon-stop                   { &:before { content: "\e074"; } }
113
+.glyphicon-forward                { &:before { content: "\e075"; } }
114
+.glyphicon-fast-forward           { &:before { content: "\e076"; } }
115
+.glyphicon-step-forward           { &:before { content: "\e077"; } }
116
+.glyphicon-eject                  { &:before { content: "\e078"; } }
117
+.glyphicon-chevron-left           { &:before { content: "\e079"; } }
118
+.glyphicon-chevron-right          { &:before { content: "\e080"; } }
119
+.glyphicon-plus-sign              { &:before { content: "\e081"; } }
120
+.glyphicon-minus-sign             { &:before { content: "\e082"; } }
121
+.glyphicon-remove-sign            { &:before { content: "\e083"; } }
122
+.glyphicon-ok-sign                { &:before { content: "\e084"; } }
123
+.glyphicon-question-sign          { &:before { content: "\e085"; } }
124
+.glyphicon-info-sign              { &:before { content: "\e086"; } }
125
+.glyphicon-screenshot             { &:before { content: "\e087"; } }
126
+.glyphicon-remove-circle          { &:before { content: "\e088"; } }
127
+.glyphicon-ok-circle              { &:before { content: "\e089"; } }
128
+.glyphicon-ban-circle             { &:before { content: "\e090"; } }
129
+.glyphicon-arrow-left             { &:before { content: "\e091"; } }
130
+.glyphicon-arrow-right            { &:before { content: "\e092"; } }
131
+.glyphicon-arrow-up               { &:before { content: "\e093"; } }
132
+.glyphicon-arrow-down             { &:before { content: "\e094"; } }
133
+.glyphicon-share-alt              { &:before { content: "\e095"; } }
134
+.glyphicon-resize-full            { &:before { content: "\e096"; } }
135
+.glyphicon-resize-small           { &:before { content: "\e097"; } }
136
+.glyphicon-exclamation-sign       { &:before { content: "\e101"; } }
137
+.glyphicon-gift                   { &:before { content: "\e102"; } }
138
+.glyphicon-leaf                   { &:before { content: "\e103"; } }
139
+.glyphicon-fire                   { &:before { content: "\e104"; } }
140
+.glyphicon-eye-open               { &:before { content: "\e105"; } }
141
+.glyphicon-eye-close              { &:before { content: "\e106"; } }
142
+.glyphicon-warning-sign           { &:before { content: "\e107"; } }
143
+.glyphicon-plane                  { &:before { content: "\e108"; } }
144
+.glyphicon-calendar               { &:before { content: "\e109"; } }
145
+.glyphicon-random                 { &:before { content: "\e110"; } }
146
+.glyphicon-comment                { &:before { content: "\e111"; } }
147
+.glyphicon-magnet                 { &:before { content: "\e112"; } }
148
+.glyphicon-chevron-up             { &:before { content: "\e113"; } }
149
+.glyphicon-chevron-down           { &:before { content: "\e114"; } }
150
+.glyphicon-retweet                { &:before { content: "\e115"; } }
151
+.glyphicon-shopping-cart          { &:before { content: "\e116"; } }
152
+.glyphicon-folder-close           { &:before { content: "\e117"; } }
153
+.glyphicon-folder-open            { &:before { content: "\e118"; } }
154
+.glyphicon-resize-vertical        { &:before { content: "\e119"; } }
155
+.glyphicon-resize-horizontal      { &:before { content: "\e120"; } }
156
+.glyphicon-hdd                    { &:before { content: "\e121"; } }
157
+.glyphicon-bullhorn               { &:before { content: "\e122"; } }
158
+.glyphicon-bell                   { &:before { content: "\e123"; } }
159
+.glyphicon-certificate            { &:before { content: "\e124"; } }
160
+.glyphicon-thumbs-up              { &:before { content: "\e125"; } }
161
+.glyphicon-thumbs-down            { &:before { content: "\e126"; } }
162
+.glyphicon-hand-right             { &:before { content: "\e127"; } }
163
+.glyphicon-hand-left              { &:before { content: "\e128"; } }
164
+.glyphicon-hand-up                { &:before { content: "\e129"; } }
165
+.glyphicon-hand-down              { &:before { content: "\e130"; } }
166
+.glyphicon-circle-arrow-right     { &:before { content: "\e131"; } }
167
+.glyphicon-circle-arrow-left      { &:before { content: "\e132"; } }
168
+.glyphicon-circle-arrow-up        { &:before { content: "\e133"; } }
169
+.glyphicon-circle-arrow-down      { &:before { content: "\e134"; } }
170
+.glyphicon-globe                  { &:before { content: "\e135"; } }
171
+.glyphicon-wrench                 { &:before { content: "\e136"; } }
172
+.glyphicon-tasks                  { &:before { content: "\e137"; } }
173
+.glyphicon-filter                 { &:before { content: "\e138"; } }
174
+.glyphicon-briefcase              { &:before { content: "\e139"; } }
175
+.glyphicon-fullscreen             { &:before { content: "\e140"; } }
176
+.glyphicon-dashboard              { &:before { content: "\e141"; } }
177
+.glyphicon-paperclip              { &:before { content: "\e142"; } }
178
+.glyphicon-heart-empty            { &:before { content: "\e143"; } }
179
+.glyphicon-link                   { &:before { content: "\e144"; } }
180
+.glyphicon-phone                  { &:before { content: "\e145"; } }
181
+.glyphicon-pushpin                { &:before { content: "\e146"; } }
182
+.glyphicon-usd                    { &:before { content: "\e148"; } }
183
+.glyphicon-gbp                    { &:before { content: "\e149"; } }
184
+.glyphicon-sort                   { &:before { content: "\e150"; } }
185
+.glyphicon-sort-by-alphabet       { &:before { content: "\e151"; } }
186
+.glyphicon-sort-by-alphabet-alt   { &:before { content: "\e152"; } }
187
+.glyphicon-sort-by-order          { &:before { content: "\e153"; } }
188
+.glyphicon-sort-by-order-alt      { &:before { content: "\e154"; } }
189
+.glyphicon-sort-by-attributes     { &:before { content: "\e155"; } }
190
+.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
191
+.glyphicon-unchecked              { &:before { content: "\e157"; } }
192
+.glyphicon-expand                 { &:before { content: "\e158"; } }
193
+.glyphicon-collapse-down          { &:before { content: "\e159"; } }
194
+.glyphicon-collapse-up            { &:before { content: "\e160"; } }
195
+.glyphicon-log-in                 { &:before { content: "\e161"; } }
196
+.glyphicon-flash                  { &:before { content: "\e162"; } }
197
+.glyphicon-log-out                { &:before { content: "\e163"; } }
198
+.glyphicon-new-window             { &:before { content: "\e164"; } }
199
+.glyphicon-record                 { &:before { content: "\e165"; } }
200
+.glyphicon-save                   { &:before { content: "\e166"; } }
201
+.glyphicon-open                   { &:before { content: "\e167"; } }
202
+.glyphicon-saved                  { &:before { content: "\e168"; } }
203
+.glyphicon-import                 { &:before { content: "\e169"; } }
204
+.glyphicon-export                 { &:before { content: "\e170"; } }
205
+.glyphicon-send                   { &:before { content: "\e171"; } }
206
+.glyphicon-floppy-disk            { &:before { content: "\e172"; } }
207
+.glyphicon-floppy-saved           { &:before { content: "\e173"; } }
208
+.glyphicon-floppy-remove          { &:before { content: "\e174"; } }
209
+.glyphicon-floppy-save            { &:before { content: "\e175"; } }
210
+.glyphicon-floppy-open            { &:before { content: "\e176"; } }
211
+.glyphicon-credit-card            { &:before { content: "\e177"; } }
212
+.glyphicon-transfer               { &:before { content: "\e178"; } }
213
+.glyphicon-cutlery                { &:before { content: "\e179"; } }
214
+.glyphicon-header                 { &:before { content: "\e180"; } }
215
+.glyphicon-compressed             { &:before { content: "\e181"; } }
216
+.glyphicon-earphone               { &:before { content: "\e182"; } }
217
+.glyphicon-phone-alt              { &:before { content: "\e183"; } }
218
+.glyphicon-tower                  { &:before { content: "\e184"; } }
219
+.glyphicon-stats                  { &:before { content: "\e185"; } }
220
+.glyphicon-sd-video               { &:before { content: "\e186"; } }
221
+.glyphicon-hd-video               { &:before { content: "\e187"; } }
222
+.glyphicon-subtitles              { &:before { content: "\e188"; } }
223
+.glyphicon-sound-stereo           { &:before { content: "\e189"; } }
224
+.glyphicon-sound-dolby            { &:before { content: "\e190"; } }
225
+.glyphicon-sound-5-1              { &:before { content: "\e191"; } }
226
+.glyphicon-sound-6-1              { &:before { content: "\e192"; } }
227
+.glyphicon-sound-7-1              { &:before { content: "\e193"; } }
228
+.glyphicon-copyright-mark         { &:before { content: "\e194"; } }
229
+.glyphicon-registration-mark      { &:before { content: "\e195"; } }
230
+.glyphicon-cloud-download         { &:before { content: "\e197"; } }
231
+.glyphicon-cloud-upload           { &:before { content: "\e198"; } }
232
+.glyphicon-tree-conifer           { &:before { content: "\e199"; } }
233
+.glyphicon-tree-deciduous         { &:before { content: "\e200"; } }

+ 84
- 0
searx/static/oscar/less/bootstrap/grid.less 查看文件

@@ -0,0 +1,84 @@
1
+//
2
+// Grid system
3
+// --------------------------------------------------
4
+
5
+
6
+// Container widths
7
+//
8
+// Set the container width, and override it for fixed navbars in media queries.
9
+
10
+.container {
11
+  .container-fixed();
12
+
13
+  @media (min-width: @screen-sm-min) {
14
+    width: @container-sm;
15
+  }
16
+  @media (min-width: @screen-md-min) {
17
+    width: @container-md;
18
+  }
19
+  @media (min-width: @screen-lg-min) {
20
+    width: @container-lg;
21
+  }
22
+}
23
+
24
+
25
+// Fluid container
26
+//
27
+// Utilizes the mixin meant for fixed width containers, but without any defined
28
+// width for fluid, full width layouts.
29
+
30
+.container-fluid {
31
+  .container-fixed();
32
+}
33
+
34
+
35
+// Row
36
+//
37
+// Rows contain and clear the floats of your columns.
38
+
39
+.row {
40
+  .make-row();
41
+}
42
+
43
+
44
+// Columns
45
+//
46
+// Common styles for small and large grid columns
47
+
48
+.make-grid-columns();
49
+
50
+
51
+// Extra small grid
52
+//
53
+// Columns, offsets, pushes, and pulls for extra small devices like
54
+// smartphones.
55
+
56
+.make-grid(xs);
57
+
58
+
59
+// Small grid
60
+//
61
+// Columns, offsets, pushes, and pulls for the small device range, from phones
62
+// to tablets.
63
+
64
+@media (min-width: @screen-sm-min) {
65
+  .make-grid(sm);
66
+}
67
+
68
+
69
+// Medium grid
70
+//
71
+// Columns, offsets, pushes, and pulls for the desktop device range.
72
+
73
+@media (min-width: @screen-md-min) {
74
+  .make-grid(md);
75
+}
76
+
77
+
78
+// Large grid
79
+//
80
+// Columns, offsets, pushes, and pulls for the large desktop device range.
81
+
82
+@media (min-width: @screen-lg-min) {
83
+  .make-grid(lg);
84
+}

+ 166
- 0
searx/static/oscar/less/bootstrap/input-groups.less 查看文件

@@ -0,0 +1,166 @@
1
+//
2
+// Input groups
3
+// --------------------------------------------------
4
+
5
+// Base styles
6
+// -------------------------
7
+.input-group {
8
+  position: relative; // For dropdowns
9
+  display: table;
10
+  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11
+
12
+  // Undo padding and float of grid classes
13
+  &[class*="col-"] {
14
+    float: none;
15
+    padding-left: 0;
16
+    padding-right: 0;
17
+  }
18
+
19
+  .form-control {
20
+    // Ensure that the input is always above the *appended* addon button for
21
+    // proper border colors.
22
+    position: relative;
23
+    z-index: 2;
24
+
25
+    // IE9 fubars the placeholder attribute in text inputs and the arrows on
26
+    // select elements in input groups. To fix it, we float the input. Details:
27
+    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
28
+    float: left;
29
+
30
+    width: 100%;
31
+    margin-bottom: 0;
32
+  }
33
+}
34
+
35
+// Sizing options
36
+//
37
+// Remix the default form control sizing classes into new ones for easier
38
+// manipulation.
39
+
40
+.input-group-lg > .form-control,
41
+.input-group-lg > .input-group-addon,
42
+.input-group-lg > .input-group-btn > .btn {
43
+  .input-lg();
44
+}
45
+.input-group-sm > .form-control,
46
+.input-group-sm > .input-group-addon,
47
+.input-group-sm > .input-group-btn > .btn {
48
+  .input-sm();
49
+}
50
+
51
+
52
+// Display as table-cell
53
+// -------------------------
54
+.input-group-addon,
55
+.input-group-btn,
56
+.input-group .form-control {
57
+  display: table-cell;
58
+
59
+  &:not(:first-child):not(:last-child) {
60
+    border-radius: 0;
61
+  }
62
+}
63
+// Addon and addon wrapper for buttons
64
+.input-group-addon,
65
+.input-group-btn {
66
+  width: 1%;
67
+  white-space: nowrap;
68
+  vertical-align: middle; // Match the inputs
69
+}
70
+
71
+// Text input groups
72
+// -------------------------
73
+.input-group-addon {
74
+  padding: @padding-base-vertical @padding-base-horizontal;
75
+  font-size: @font-size-base;
76
+  font-weight: normal;
77
+  line-height: 1;
78
+  color: @input-color;
79
+  text-align: center;
80
+  background-color: @input-group-addon-bg;
81
+  border: 1px solid @input-group-addon-border-color;
82
+  border-radius: @border-radius-base;
83
+
84
+  // Sizing
85
+  &.input-sm {
86
+    padding: @padding-small-vertical @padding-small-horizontal;
87
+    font-size: @font-size-small;
88
+    border-radius: @border-radius-small;
89
+  }
90
+  &.input-lg {
91
+    padding: @padding-large-vertical @padding-large-horizontal;
92
+    font-size: @font-size-large;
93
+    border-radius: @border-radius-large;
94
+  }
95
+
96
+  // Nuke default margins from checkboxes and radios to vertically center within.
97
+  input[type="radio"],
98
+  input[type="checkbox"] {
99
+    margin-top: 0;
100
+  }
101
+}
102
+
103
+// Reset rounded corners
104
+.input-group .form-control:first-child,
105
+.input-group-addon:first-child,
106
+.input-group-btn:first-child > .btn,
107
+.input-group-btn:first-child > .btn-group > .btn,
108
+.input-group-btn:first-child > .dropdown-toggle,
109
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
110
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
111
+  .border-right-radius(0);
112
+}
113
+.input-group-addon:first-child {
114
+  border-right: 0;
115
+}
116
+.input-group .form-control:last-child,
117
+.input-group-addon:last-child,
118
+.input-group-btn:last-child > .btn,
119
+.input-group-btn:last-child > .btn-group > .btn,
120
+.input-group-btn:last-child > .dropdown-toggle,
121
+.input-group-btn:first-child > .btn:not(:first-child),
122
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
123
+  .border-left-radius(0);
124
+}
125
+.input-group-addon:last-child {
126
+  border-left: 0;
127
+}
128
+
129
+// Button input groups
130
+// -------------------------
131
+.input-group-btn {
132
+  position: relative;
133
+  // Jankily prevent input button groups from wrapping with `white-space` and
134
+  // `font-size` in combination with `inline-block` on buttons.
135
+  font-size: 0;
136
+  white-space: nowrap;
137
+
138
+  // Negative margin for spacing, position for bringing hovered/focused/actived
139
+  // element above the siblings.
140
+  > .btn {
141
+    position: relative;
142
+    + .btn {
143
+      margin-left: -1px;
144
+    }
145
+    // Bring the "active" button to the front
146
+    &:hover,
147
+    &:focus,
148
+    &:active {
149
+      z-index: 2;
150
+    }
151
+  }
152
+
153
+  // Negative margin to only have a 1px border between the two
154
+  &:first-child {
155
+    > .btn,
156
+    > .btn-group {
157
+      margin-right: -1px;
158
+    }
159
+  }
160
+  &:last-child {
161
+    > .btn,
162
+    > .btn-group {
163
+      margin-left: -1px;
164
+    }
165
+  }
166
+}

+ 48
- 0
searx/static/oscar/less/bootstrap/jumbotron.less 查看文件

@@ -0,0 +1,48 @@
1
+//
2
+// Jumbotron
3
+// --------------------------------------------------
4
+
5
+
6
+.jumbotron {
7
+  padding: @jumbotron-padding;
8
+  margin-bottom: @jumbotron-padding;
9
+  color: @jumbotron-color;
10
+  background-color: @jumbotron-bg;
11
+
12
+  h1,
13
+  .h1 {
14
+    color: @jumbotron-heading-color;
15
+  }
16
+  p {
17
+    margin-bottom: (@jumbotron-padding / 2);
18
+    font-size: @jumbotron-font-size;
19
+    font-weight: 200;
20
+  }
21
+
22
+  > hr {
23
+    border-top-color: darken(@jumbotron-bg, 10%);
24
+  }
25
+
26
+  .container & {
27
+    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
28
+  }
29
+
30
+  .container {
31
+    max-width: 100%;
32
+  }
33
+
34
+  @media screen and (min-width: @screen-sm-min) {
35
+    padding-top:    (@jumbotron-padding * 1.6);
36
+    padding-bottom: (@jumbotron-padding * 1.6);
37
+
38
+    .container & {
39
+      padding-left:  (@jumbotron-padding * 2);
40
+      padding-right: (@jumbotron-padding * 2);
41
+    }
42
+
43
+    h1,
44
+    .h1 {
45
+      font-size: (@font-size-base * 4.5);
46
+    }
47
+  }
48
+}

+ 64
- 0
searx/static/oscar/less/bootstrap/labels.less 查看文件

@@ -0,0 +1,64 @@
1
+//
2
+// Labels
3
+// --------------------------------------------------
4
+
5
+.label {
6
+  display: inline;
7
+  padding: .2em .6em .3em;
8
+  font-size: 75%;
9
+  font-weight: bold;
10
+  line-height: 1;
11
+  color: @label-color;
12
+  text-align: center;
13
+  white-space: nowrap;
14
+  vertical-align: baseline;
15
+  border-radius: .25em;
16
+
17
+  // Add hover effects, but only for links
18
+  a& {
19
+    &:hover,
20
+    &:focus {
21
+      color: @label-link-hover-color;
22
+      text-decoration: none;
23
+      cursor: pointer;
24
+    }
25
+  }
26
+
27
+  // Empty labels collapse automatically (not available in IE8)
28
+  &:empty {
29
+    display: none;
30
+  }
31
+
32
+  // Quick fix for labels in buttons
33
+  .btn & {
34
+    position: relative;
35
+    top: -1px;
36
+  }
37
+}
38
+
39
+// Colors
40
+// Contextual variations (linked labels get darker on :hover)
41
+
42
+.label-default {
43
+  .label-variant(@label-default-bg);
44
+}
45
+
46
+.label-primary {
47
+  .label-variant(@label-primary-bg);
48
+}
49
+
50
+.label-success {
51
+  .label-variant(@label-success-bg);
52
+}
53
+
54
+.label-info {
55
+  .label-variant(@label-info-bg);
56
+}
57
+
58
+.label-warning {
59
+  .label-variant(@label-warning-bg);
60
+}
61
+
62
+.label-danger {
63
+  .label-variant(@label-danger-bg);
64
+}

+ 131
- 0
searx/static/oscar/less/bootstrap/list-group.less 查看文件

@@ -0,0 +1,131 @@
1
+//
2
+// List groups
3
+// --------------------------------------------------
4
+
5
+
6
+// Base class
7
+//
8
+// Easily usable on <ul>, <ol>, or <div>.
9
+
10
+.list-group {
11
+  // No need to set list-style: none; since .list-group-item is block level
12
+  margin-bottom: 20px;
13
+  padding-left: 0; // reset padding because ul and ol
14
+}
15
+
16
+
17
+// Individual list items
18
+//
19
+// Use on `li`s or `div`s within the `.list-group` parent.
20
+
21
+.list-group-item {
22
+  position: relative;
23
+  display: block;
24
+  padding: 10px 15px;
25
+  // Place the border on the list items and negative margin up for better styling
26
+  margin-bottom: -1px;
27
+  background-color: @list-group-bg;
28
+  border: 1px solid @list-group-border;
29
+
30
+  // Round the first and last items
31
+  &:first-child {
32
+    .border-top-radius(@list-group-border-radius);
33
+  }
34
+  &:last-child {
35
+    margin-bottom: 0;
36
+    .border-bottom-radius(@list-group-border-radius);
37
+  }
38
+
39
+  // Align badges within list items
40
+  > .badge {
41
+    float: right;
42
+  }
43
+  > .badge + .badge {
44
+    margin-right: 5px;
45
+  }
46
+}
47
+
48
+
49
+// Linked list items
50
+//
51
+// Use anchor elements instead of `li`s or `div`s to create linked list items.
52
+// Includes an extra `.active` modifier class for showing selected items.
53
+
54
+a.list-group-item {
55
+  color: @list-group-link-color;
56
+
57
+  .list-group-item-heading {
58
+    color: @list-group-link-heading-color;
59
+  }
60
+
61
+  // Hover state
62
+  &:hover,
63
+  &:focus {
64
+    text-decoration: none;
65
+    color: @list-group-link-hover-color;
66
+    background-color: @list-group-hover-bg;
67
+  }
68
+}
69
+
70
+.list-group-item {
71
+  // Disabled state
72
+  &.disabled,
73
+  &.disabled:hover,
74
+  &.disabled:focus {
75
+    background-color: @list-group-disabled-bg;
76
+    color: @list-group-disabled-color;
77
+
78
+    // Force color to inherit for custom content
79
+    .list-group-item-heading {
80
+      color: inherit;
81
+    }
82
+    .list-group-item-text {
83
+      color: @list-group-disabled-text-color;
84
+    }
85
+  }
86
+
87
+  // Active class on item itself, not parent
88
+  &.active,
89
+  &.active:hover,
90
+  &.active:focus {
91
+    z-index: 2; // Place active items above their siblings for proper border styling
92
+    color: @list-group-active-color;
93
+    background-color: @list-group-active-bg;
94
+    border-color: @list-group-active-border;
95
+
96
+    // Force color to inherit for custom content
97
+    .list-group-item-heading,
98
+    .list-group-item-heading > small,
99
+    .list-group-item-heading > .small {
100
+      color: inherit;
101
+    }
102
+    .list-group-item-text {
103
+      color: @list-group-active-text-color;
104
+    }
105
+  }
106
+}
107
+
108
+
109
+// Contextual variants
110
+//
111
+// Add modifier classes to change text and background color on individual items.
112
+// Organizationally, this must come after the `:hover` states.
113
+
114
+.list-group-item-variant(success; @state-success-bg; @state-success-text);
115
+.list-group-item-variant(info; @state-info-bg; @state-info-text);
116
+.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
117
+.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
118
+
119
+
120
+// Custom content options
121
+//
122
+// Extra classes for creating well-formatted content within `.list-group-item`s.
123
+
124
+.list-group-item-heading {
125
+  margin-top: 0;
126
+  margin-bottom: 5px;
127
+}
128
+.list-group-item-text {
129
+  margin-bottom: 0;
130
+  line-height: 1.3;
131
+}

+ 56
- 0
searx/static/oscar/less/bootstrap/media.less 查看文件

@@ -0,0 +1,56 @@
1
+// Media objects
2
+// Source: http://stubbornella.org/content/?p=497
3
+// --------------------------------------------------
4
+
5
+
6
+// Common styles
7
+// -------------------------
8
+
9
+// Clear the floats
10
+.media,
11
+.media-body {
12
+  overflow: hidden;
13
+  zoom: 1;
14
+}
15
+
16
+// Proper spacing between instances of .media
17
+.media,
18
+.media .media {
19
+  margin-top: 15px;
20
+}
21
+.media:first-child {
22
+  margin-top: 0;
23
+}
24
+
25
+// For images and videos, set to block
26
+.media-object {
27
+  display: block;
28
+}
29
+
30
+// Reset margins on headings for tighter default spacing
31
+.media-heading {
32
+  margin: 0 0 5px;
33
+}
34
+
35
+
36
+// Media image alignment
37
+// -------------------------
38
+
39
+.media {
40
+  > .pull-left {
41
+    margin-right: 10px;
42
+  }
43
+  > .pull-right {
44
+    margin-left: 10px;
45
+  }
46
+}
47
+
48
+
49
+// Media list variation
50
+// -------------------------
51
+
52
+// Undo default ul/ol styles
53
+.media-list {
54
+  padding-left: 0;
55
+  list-style: none;
56
+}

+ 39
- 0
searx/static/oscar/less/bootstrap/mixins.less 查看文件

@@ -0,0 +1,39 @@
1
+// Mixins
2
+// --------------------------------------------------
3
+
4
+// Utilities
5
+@import "mixins/hide-text.less";
6
+@import "mixins/opacity.less";
7
+@import "mixins/image.less";
8
+@import "mixins/labels.less";
9
+@import "mixins/reset-filter.less";
10
+@import "mixins/resize.less";
11
+@import "mixins/responsive-visibility.less";
12
+@import "mixins/size.less";
13
+@import "mixins/tab-focus.less";
14
+@import "mixins/text-emphasis.less";
15
+@import "mixins/text-overflow.less";
16
+@import "mixins/vendor-prefixes.less";
17
+
18
+// Components
19
+@import "mixins/alerts.less";
20
+@import "mixins/buttons.less";
21
+@import "mixins/panels.less";
22
+@import "mixins/pagination.less";
23
+@import "mixins/list-group.less";
24
+@import "mixins/nav-divider.less";
25
+@import "mixins/forms.less";
26
+@import "mixins/progress-bar.less";
27
+@import "mixins/table-row.less";
28
+
29
+// Skins
30
+@import "mixins/background-variant.less";
31
+@import "mixins/border-radius.less";
32
+@import "mixins/gradients.less";
33
+
34
+// Layout
35
+@import "mixins/clearfix.less";
36
+@import "mixins/center-block.less";
37
+@import "mixins/nav-vertical-align.less";
38
+@import "mixins/grid-framework.less";
39
+@import "mixins/grid.less";

+ 14
- 0
searx/static/oscar/less/bootstrap/mixins/alerts.less 查看文件

@@ -0,0 +1,14 @@
1
+// Alerts
2
+
3
+.alert-variant(@background; @border; @text-color) {
4
+  background-color: @background;
5
+  border-color: @border;
6
+  color: @text-color;
7
+
8
+  hr {
9
+    border-top-color: darken(@border, 5%);
10
+  }
11
+  .alert-link {
12
+    color: darken(@text-color, 10%);
13
+  }
14
+}

+ 8
- 0
searx/static/oscar/less/bootstrap/mixins/background-variant.less 查看文件

@@ -0,0 +1,8 @@
1
+// Contextual backgrounds
2
+
3
+.bg-variant(@color) {
4
+  background-color: @color;
5
+  a&:hover {
6
+    background-color: darken(@color, 10%);
7
+  }
8
+}

+ 18
- 0
searx/static/oscar/less/bootstrap/mixins/border-radius.less 查看文件

@@ -0,0 +1,18 @@
1
+// Single side border-radius
2
+
3
+.border-top-radius(@radius) {
4
+  border-top-right-radius: @radius;
5
+   border-top-left-radius: @radius;
6
+}
7
+.border-right-radius(@radius) {
8
+  border-bottom-right-radius: @radius;
9
+     border-top-right-radius: @radius;
10
+}
11
+.border-bottom-radius(@radius) {
12
+  border-bottom-right-radius: @radius;
13
+   border-bottom-left-radius: @radius;
14
+}
15
+.border-left-radius(@radius) {
16
+  border-bottom-left-radius: @radius;
17
+     border-top-left-radius: @radius;
18
+}

+ 50
- 0
searx/static/oscar/less/bootstrap/mixins/buttons.less 查看文件

@@ -0,0 +1,50 @@
1
+// Button variants
2
+//
3
+// Easily pump out default styles, as well as :hover, :focus, :active,
4
+// and disabled options for all buttons
5
+
6
+.button-variant(@color; @background; @border) {
7
+  color: @color;
8
+  background-color: @background;
9
+  border-color: @border;
10
+
11
+  &:hover,
12
+  &:focus,
13
+  &:active,
14
+  &.active,
15
+  .open > .dropdown-toggle& {
16
+    color: @color;
17
+    background-color: darken(@background, 10%);
18
+        border-color: darken(@border, 12%);
19
+  }
20
+  &:active,
21
+  &.active,
22
+  .open > .dropdown-toggle& {
23
+    background-image: none;
24
+  }
25
+  &.disabled,
26
+  &[disabled],
27
+  fieldset[disabled] & {
28
+    &,
29
+    &:hover,
30
+    &:focus,
31
+    &:active,
32
+    &.active {
33
+      background-color: @background;
34
+          border-color: @border;
35
+    }
36
+  }
37
+
38
+  .badge {
39
+    color: @background;
40
+    background-color: @color;
41
+  }
42
+}
43
+
44
+// Button sizes
45
+.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
46
+  padding: @padding-vertical @padding-horizontal;
47
+  font-size: @font-size;
48
+  line-height: @line-height;
49
+  border-radius: @border-radius;
50
+}

+ 7
- 0
searx/static/oscar/less/bootstrap/mixins/center-block.less 查看文件

@@ -0,0 +1,7 @@
1
+// Center-align a block level element
2
+
3
+.center-block() {
4
+  display: block;
5
+  margin-left: auto;
6
+  margin-right: auto;
7
+}

+ 22
- 0
searx/static/oscar/less/bootstrap/mixins/clearfix.less 查看文件

@@ -0,0 +1,22 @@
1
+// Clearfix
2
+//
3
+// For modern browsers
4
+// 1. The space content is one way to avoid an Opera bug when the
5
+//    contenteditable attribute is included anywhere else in the document.
6
+//    Otherwise it causes space to appear at the top and bottom of elements
7
+//    that are clearfixed.
8
+// 2. The use of `table` rather than `block` is only necessary if using
9
+//    `:before` to contain the top-margins of child elements.
10
+//
11
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
12
+
13
+.clearfix() {
14
+  &:before,
15
+  &:after {
16
+    content: " "; // 1
17
+    display: table; // 2
18
+  }
19
+  &:after {
20
+    clear: both;
21
+  }
22
+}

+ 81
- 0
searx/static/oscar/less/bootstrap/mixins/forms.less 查看文件

@@ -0,0 +1,81 @@
1
+// Form validation states
2
+//
3
+// Used in forms.less to generate the form validation CSS for warnings, errors,
4
+// and successes.
5
+
6
+.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
7
+  // Color the label and help text
8
+  .help-block,
9
+  .control-label,
10
+  .radio,
11
+  .checkbox,
12
+  .radio-inline,
13
+  .checkbox-inline  {
14
+    color: @text-color;
15
+  }
16
+  // Set the border and box shadow on specific inputs to match
17
+  .form-control {
18
+    border-color: @border-color;
19
+    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
20
+    &:focus {
21
+      border-color: darken(@border-color, 10%);
22
+      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
23
+      .box-shadow(@shadow);
24
+    }
25
+  }
26
+  // Set validation states also for addons
27
+  .input-group-addon {
28
+    color: @text-color;
29
+    border-color: @border-color;
30
+    background-color: @background-color;
31
+  }
32
+  // Optional feedback icon
33
+  .form-control-feedback {
34
+    color: @text-color;
35
+  }
36
+}
37
+
38
+
39
+// Form control focus state
40
+//
41
+// Generate a customized focus state and for any input with the specified color,
42
+// which defaults to the `@input-border-focus` variable.
43
+//
44
+// We highly encourage you to not customize the default value, but instead use
45
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
46
+// WebKit's default styles, but applicable to a wider range of browsers. Its
47
+// usability and accessibility should be taken into account with any change.
48
+//
49
+// Example usage: change the default blue border and shadow to white for better
50
+// contrast against a dark gray background.
51
+.form-control-focus(@color: @input-border-focus) {
52
+  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
53
+  &:focus {
54
+    border-color: @color;
55
+    outline: 0;
56
+    .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
57
+  }
58
+}
59
+
60
+// Form control sizing
61
+//
62
+// Relative text size, padding, and border-radii changes for form controls. For
63
+// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
64
+// element gets special love because it's special, and that's a fact!
65
+.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
66
+  height: @input-height;
67
+  padding: @padding-vertical @padding-horizontal;
68
+  font-size: @font-size;
69
+  line-height: @line-height;
70
+  border-radius: @border-radius;
71
+
72
+  select& {
73
+    height: @input-height;
74
+    line-height: @input-height;
75
+  }
76
+
77
+  textarea&,
78
+  select[multiple]& {
79
+    height: auto;
80
+  }
81
+}

+ 59
- 0
searx/static/oscar/less/bootstrap/mixins/gradients.less 查看文件

@@ -0,0 +1,59 @@
1
+// Gradients
2
+
3
+#gradient {
4
+
5
+  // Horizontal gradient, from left to right
6
+  //
7
+  // Creates two color stops, start and end, by specifying a color and position for each color stop.
8
+  // Color stops are not available in IE9 and below.
9
+  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
10
+    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
11
+    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
12
+    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
13
+    background-repeat: repeat-x;
14
+    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
15
+  }
16
+
17
+  // Vertical gradient, from top to bottom
18
+  //
19
+  // Creates two color stops, start and end, by specifying a color and position for each color stop.
20
+  // Color stops are not available in IE9 and below.
21
+  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
22
+    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+
23
+    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12
24
+    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
25
+    background-repeat: repeat-x;
26
+    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
27
+  }
28
+
29
+  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
30
+    background-repeat: repeat-x;
31
+    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
32
+    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
33
+    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34
+  }
35
+  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
36
+    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
37
+    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
38
+    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
39
+    background-repeat: no-repeat;
40
+    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
41
+  }
42
+  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
43
+    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
44
+    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
45
+    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
46
+    background-repeat: no-repeat;
47
+    filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
48
+  }
49
+  .radial(@inner-color: #555; @outer-color: #333) {
50
+    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
51
+    background-image: radial-gradient(circle, @inner-color, @outer-color);
52
+    background-repeat: no-repeat;
53
+  }
54
+  .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
55
+    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
56
+    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
57
+    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
58
+  }
59
+}

+ 91
- 0
searx/static/oscar/less/bootstrap/mixins/grid-framework.less 查看文件

@@ -0,0 +1,91 @@
1
+// Framework grid generation
2
+//
3
+// Used only by Bootstrap to generate the correct number of grid classes given
4
+// any value of `@grid-columns`.
5
+
6
+.make-grid-columns() {
7
+  // Common styles for all sizes of grid columns, widths 1-12
8
+  .col(@index) when (@index = 1) { // initial
9
+    @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
10
+    .col((@index + 1), @item);
11
+  }
12
+  .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
13
+    @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
14
+    .col((@index + 1), ~"@{list}, @{item}");
15
+  }
16
+  .col(@index, @list) when (@index > @grid-columns) { // terminal
17
+    @{list} {
18
+      position: relative;
19
+      // Prevent columns from collapsing when empty
20
+      min-height: 1px;
21
+      // Inner gutter via padding
22
+      padding-left:  (@grid-gutter-width / 2);
23
+      padding-right: (@grid-gutter-width / 2);
24
+    }
25
+  }
26
+  .col(1); // kickstart it
27
+}
28
+
29
+.float-grid-columns(@class) {
30
+  .col(@index) when (@index = 1) { // initial
31
+    @item: ~".col-@{class}-@{index}";
32
+    .col((@index + 1), @item);
33
+  }
34
+  .col(@index, @list) when (@index =< @grid-columns) { // general
35
+    @item: ~".col-@{class}-@{index}";
36
+    .col((@index + 1), ~"@{list}, @{item}");
37
+  }
38
+  .col(@index, @list) when (@index > @grid-columns) { // terminal
39
+    @{list} {
40
+      float: left;
41
+    }
42
+  }
43
+  .col(1); // kickstart it
44
+}
45
+
46
+.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
47
+  .col-@{class}-@{index} {
48
+    width: percentage((@index / @grid-columns));
49
+  }
50
+}
51
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
52
+  .col-@{class}-push-@{index} {
53
+    left: percentage((@index / @grid-columns));
54
+  }
55
+}
56
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
57
+  .col-@{class}-push-0 {
58
+    left: auto;
59
+  }
60
+}
61
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
62
+  .col-@{class}-pull-@{index} {
63
+    right: percentage((@index / @grid-columns));
64
+  }
65
+}
66
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
67
+  .col-@{class}-pull-0 {
68
+    right: auto;
69
+  }
70
+}
71
+.calc-grid-column(@index, @class, @type) when (@type = offset) {
72
+  .col-@{class}-offset-@{index} {
73
+    margin-left: percentage((@index / @grid-columns));
74
+  }
75
+}
76
+
77
+// Basic looping in LESS
78
+.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
79
+  .calc-grid-column(@index, @class, @type);
80
+  // next iteration
81
+  .loop-grid-columns((@index - 1), @class, @type);
82
+}
83
+
84
+// Create grid for specific class
85
+.make-grid(@class) {
86
+  .float-grid-columns(@class);
87
+  .loop-grid-columns(@grid-columns, @class, width);
88
+  .loop-grid-columns(@grid-columns, @class, pull);
89
+  .loop-grid-columns(@grid-columns, @class, push);
90
+  .loop-grid-columns(@grid-columns, @class, offset);
91
+}

+ 122
- 0
searx/static/oscar/less/bootstrap/mixins/grid.less 查看文件

@@ -0,0 +1,122 @@
1
+// Grid system
2
+//
3
+// Generate semantic grid columns with these mixins.
4
+
5
+// Centered container element
6
+.container-fixed(@gutter: @grid-gutter-width) {
7
+  margin-right: auto;
8
+  margin-left: auto;
9
+  padding-left:  (@gutter / 2);
10
+  padding-right: (@gutter / 2);
11
+  &:extend(.clearfix all);
12
+}
13
+
14
+// Creates a wrapper for a series of columns
15
+.make-row(@gutter: @grid-gutter-width) {
16
+  margin-left:  (@gutter / -2);
17
+  margin-right: (@gutter / -2);
18
+  &:extend(.clearfix all);
19
+}
20
+
21
+// Generate the extra small columns
22
+.make-xs-column(@columns; @gutter: @grid-gutter-width) {
23
+  position: relative;
24
+  float: left;
25
+  width: percentage((@columns / @grid-columns));
26
+  min-height: 1px;
27
+  padding-left:  (@gutter / 2);
28
+  padding-right: (@gutter / 2);
29
+}
30
+.make-xs-column-offset(@columns) {
31
+  margin-left: percentage((@columns / @grid-columns));
32
+}
33
+.make-xs-column-push(@columns) {
34
+  left: percentage((@columns / @grid-columns));
35
+}
36
+.make-xs-column-pull(@columns) {
37
+  right: percentage((@columns / @grid-columns));
38
+}
39
+
40
+// Generate the small columns
41
+.make-sm-column(@columns; @gutter: @grid-gutter-width) {
42
+  position: relative;
43
+  min-height: 1px;
44
+  padding-left:  (@gutter / 2);
45
+  padding-right: (@gutter / 2);
46
+
47
+  @media (min-width: @screen-sm-min) {
48
+    float: left;
49
+    width: percentage((@columns / @grid-columns));
50
+  }
51
+}
52
+.make-sm-column-offset(@columns) {
53
+  @media (min-width: @screen-sm-min) {
54
+    margin-left: percentage((@columns / @grid-columns));
55
+  }
56
+}
57
+.make-sm-column-push(@columns) {
58
+  @media (min-width: @screen-sm-min) {
59
+    left: percentage((@columns / @grid-columns));
60
+  }
61
+}
62
+.make-sm-column-pull(@columns) {
63
+  @media (min-width: @screen-sm-min) {
64
+    right: percentage((@columns / @grid-columns));
65
+  }
66
+}
67
+
68
+// Generate the medium columns
69
+.make-md-column(@columns; @gutter: @grid-gutter-width) {
70
+  position: relative;
71
+  min-height: 1px;
72
+  padding-left:  (@gutter / 2);
73
+  padding-right: (@gutter / 2);
74
+
75
+  @media (min-width: @screen-md-min) {
76
+    float: left;
77
+    width: percentage((@columns / @grid-columns));
78
+  }
79
+}
80
+.make-md-column-offset(@columns) {
81
+  @media (min-width: @screen-md-min) {
82
+    margin-left: percentage((@columns / @grid-columns));
83
+  }
84
+}
85
+.make-md-column-push(@columns) {
86
+  @media (min-width: @screen-md-min) {
87
+    left: percentage((@columns / @grid-columns));
88
+  }
89
+}
90
+.make-md-column-pull(@columns) {
91
+  @media (min-width: @screen-md-min) {
92
+    right: percentage((@columns / @grid-columns));
93
+  }
94
+}
95
+
96
+// Generate the large columns
97
+.make-lg-column(@columns; @gutter: @grid-gutter-width) {
98
+  position: relative;
99
+  min-height: 1px;
100
+  padding-left:  (@gutter / 2);
101
+  padding-right: (@gutter / 2);
102
+
103
+  @media (min-width: @screen-lg-min) {
104
+    float: left;
105
+    width: percentage((@columns / @grid-columns));
106
+  }
107
+}
108
+.make-lg-column-offset(@columns) {
109
+  @media (min-width: @screen-lg-min) {
110
+    margin-left: percentage((@columns / @grid-columns));
111
+  }
112
+}
113
+.make-lg-column-push(@columns) {
114
+  @media (min-width: @screen-lg-min) {
115
+    left: percentage((@columns / @grid-columns));
116
+  }
117
+}
118
+.make-lg-column-pull(@columns) {
119
+  @media (min-width: @screen-lg-min) {
120
+    right: percentage((@columns / @grid-columns));
121
+  }
122
+}

+ 21
- 0
searx/static/oscar/less/bootstrap/mixins/hide-text.less 查看文件

@@ -0,0 +1,21 @@
1
+// CSS image replacement
2
+//
3
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
4
+// mixins being reused as classes with the same name, this doesn't hold up. As
5
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6
+//
7
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8
+
9
+// Deprecated as of v3.0.1 (will be removed in v4)
10
+.hide-text() {
11
+  font: ~"0/0" a;
12
+  color: transparent;
13
+  text-shadow: none;
14
+  background-color: transparent;
15
+  border: 0;
16
+}
17
+
18
+// New mixin to use as of v3.0.1
19
+.text-hide() {
20
+  .hide-text();
21
+}

+ 34
- 0
searx/static/oscar/less/bootstrap/mixins/image.less 查看文件

@@ -0,0 +1,34 @@
1
+// Image Mixins
2
+// - Responsive image
3
+// - Retina image
4
+
5
+
6
+// Responsive image
7
+//
8
+// Keep images from scaling beyond the width of their parents.
9
+.img-responsive(@display: block) {
10
+  display: @display;
11
+  width: 100% \9; // Force IE10 and below to size SVG images correctly
12
+  max-width: 100%; // Part 1: Set a maximum relative to the parent
13
+  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
14
+}
15
+
16
+
17
+// Retina image
18
+//
19
+// Short retina mixin for setting background-image and -size. Note that the
20
+// spelling of `min--moz-device-pixel-ratio` is intentional.
21
+.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
22
+  background-image: url("@{file-1x}");
23
+
24
+  @media
25
+  only screen and (-webkit-min-device-pixel-ratio: 2),
26
+  only screen and (   min--moz-device-pixel-ratio: 2),
27
+  only screen and (     -o-min-device-pixel-ratio: 2/1),
28
+  only screen and (        min-device-pixel-ratio: 2),
29
+  only screen and (                min-resolution: 192dpi),
30
+  only screen and (                min-resolution: 2dppx) {
31
+    background-image: url("@{file-2x}");
32
+    background-size: @width-1x @height-1x;
33
+  }
34
+}

+ 12
- 0
searx/static/oscar/less/bootstrap/mixins/labels.less 查看文件

@@ -0,0 +1,12 @@
1
+// Labels
2
+
3
+.label-variant(@color) {
4
+  background-color: @color;
5
+  
6
+  &[href] {
7
+    &:hover,
8
+    &:focus {
9
+      background-color: darken(@color, 10%);
10
+    }
11
+  }
12
+}

+ 29
- 0
searx/static/oscar/less/bootstrap/mixins/list-group.less 查看文件

@@ -0,0 +1,29 @@
1
+// List Groups
2
+
3
+.list-group-item-variant(@state; @background; @color) {
4
+  .list-group-item-@{state} {
5
+    color: @color;
6
+    background-color: @background;
7
+
8
+    a& {
9
+      color: @color;
10
+
11
+      .list-group-item-heading {
12
+        color: inherit;
13
+      }
14
+
15
+      &:hover,
16
+      &:focus {
17
+        color: @color;
18
+        background-color: darken(@background, 5%);
19
+      }
20
+      &.active,
21
+      &.active:hover,
22
+      &.active:focus {
23
+        color: #fff;
24
+        background-color: @color;
25
+        border-color: @color;
26
+      }
27
+    }
28
+  }
29
+}

+ 10
- 0
searx/static/oscar/less/bootstrap/mixins/nav-divider.less 查看文件

@@ -0,0 +1,10 @@
1
+// Horizontal dividers
2
+//
3
+// Dividers (basically an hr) within dropdowns and nav lists
4
+
5
+.nav-divider(@color: #e5e5e5) {
6
+  height: 1px;
7
+  margin: ((@line-height-computed / 2) - 1) 0;
8
+  overflow: hidden;
9
+  background-color: @color;
10
+}

+ 9
- 0
searx/static/oscar/less/bootstrap/mixins/nav-vertical-align.less 查看文件

@@ -0,0 +1,9 @@
1
+// Navbar vertical align
2
+//
3
+// Vertically center elements in the navbar.
4
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5
+
6
+.navbar-vertical-align(@element-height) {
7
+  margin-top: ((@navbar-height - @element-height) / 2);
8
+  margin-bottom: ((@navbar-height - @element-height) / 2);
9
+}

+ 8
- 0
searx/static/oscar/less/bootstrap/mixins/opacity.less 查看文件

@@ -0,0 +1,8 @@
1
+// Opacity
2
+
3
+.opacity(@opacity) {
4
+  opacity: @opacity;
5
+  // IE8 filter
6
+  @opacity-ie: (@opacity * 100);
7
+  filter: ~"alpha(opacity=@{opacity-ie})";
8
+}

+ 23
- 0
searx/static/oscar/less/bootstrap/mixins/pagination.less 查看文件

@@ -0,0 +1,23 @@
1
+// Pagination
2
+
3
+.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
4
+  > li {
5
+    > a,
6
+    > span {
7
+      padding: @padding-vertical @padding-horizontal;
8
+      font-size: @font-size;
9
+    }
10
+    &:first-child {
11
+      > a,
12
+      > span {
13
+        .border-left-radius(@border-radius);
14
+      }
15
+    }
16
+    &:last-child {
17
+      > a,
18
+      > span {
19
+        .border-right-radius(@border-radius);
20
+      }
21
+    }
22
+  }
23
+}

+ 24
- 0
searx/static/oscar/less/bootstrap/mixins/panels.less 查看文件

@@ -0,0 +1,24 @@
1
+// Panels
2
+
3
+.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4
+  border-color: @border;
5
+
6
+  & > .panel-heading {
7
+    color: @heading-text-color;
8
+    background-color: @heading-bg-color;
9
+    border-color: @heading-border;
10
+
11
+    + .panel-collapse > .panel-body {
12
+      border-top-color: @border;
13
+    }
14
+    .badge {
15
+      color: @heading-bg-color;
16
+      background-color: @heading-text-color;
17
+    }
18
+  }
19
+  & > .panel-footer {
20
+    + .panel-collapse > .panel-body {
21
+      border-bottom-color: @border;
22
+    }
23
+  }
24
+}

+ 10
- 0
searx/static/oscar/less/bootstrap/mixins/progress-bar.less 查看文件

@@ -0,0 +1,10 @@
1
+// Progress bars
2
+
3
+.progress-bar-variant(@color) {
4
+  background-color: @color;
5
+
6
+  // Deprecated parent class requirement as of v3.2.0
7
+  .progress-striped & {
8
+    #gradient > .striped();
9
+  }
10
+}

+ 8
- 0
searx/static/oscar/less/bootstrap/mixins/reset-filter.less 查看文件

@@ -0,0 +1,8 @@
1
+// Reset filters for IE
2
+//
3
+// When you need to remove a gradient background, do not forget to use this to reset
4
+// the IE filter for IE9 and below.
5
+
6
+.reset-filter() {
7
+  filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8
+}

+ 6
- 0
searx/static/oscar/less/bootstrap/mixins/resize.less 查看文件

@@ -0,0 +1,6 @@
1
+// Resize anything
2
+
3
+.resizable(@direction) {
4
+  resize: @direction; // Options: horizontal, vertical, both
5
+  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6
+}

+ 15
- 0
searx/static/oscar/less/bootstrap/mixins/responsive-visibility.less 查看文件

@@ -0,0 +1,15 @@
1
+// Responsive utilities
2
+
3
+//
4
+// More easily include all the states for responsive-utilities.less.
5
+.responsive-visibility() {
6
+  display: block !important;
7
+  table&  { display: table; }
8
+  tr&     { display: table-row !important; }
9
+  th&,
10
+  td&     { display: table-cell !important; }
11
+}
12
+
13
+.responsive-invisibility() {
14
+  display: none !important;
15
+}

+ 10
- 0
searx/static/oscar/less/bootstrap/mixins/size.less 查看文件

@@ -0,0 +1,10 @@
1
+// Sizing shortcuts
2
+
3
+.size(@width; @height) {
4
+  width: @width;
5
+  height: @height;
6
+}
7
+
8
+.square(@size) {
9
+  .size(@size; @size);
10
+}

+ 9
- 0
searx/static/oscar/less/bootstrap/mixins/tab-focus.less 查看文件

@@ -0,0 +1,9 @@
1
+// WebKit-style focus
2
+
3
+.tab-focus() {
4
+  // Default
5
+  outline: thin dotted;
6
+  // WebKit
7
+  outline: 5px auto -webkit-focus-ring-color;
8
+  outline-offset: -2px;
9
+}

+ 28
- 0
searx/static/oscar/less/bootstrap/mixins/table-row.less 查看文件

@@ -0,0 +1,28 @@
1
+// Tables
2
+
3
+.table-row-variant(@state; @background) {
4
+  // Exact selectors below required to override `.table-striped` and prevent
5
+  // inheritance to nested tables.
6
+  .table > thead > tr,
7
+  .table > tbody > tr,
8
+  .table > tfoot > tr {
9
+    > td.@{state},
10
+    > th.@{state},
11
+    &.@{state} > td,
12
+    &.@{state} > th {
13
+      background-color: @background;
14
+    }
15
+  }
16
+
17
+  // Hover states for `.table-hover`
18
+  // Note: this is not available for cells or rows within `thead` or `tfoot`.
19
+  .table-hover > tbody > tr {
20
+    > td.@{state}:hover,
21
+    > th.@{state}:hover,
22
+    &.@{state}:hover > td,
23
+    &:hover > .@{state},
24
+    &.@{state}:hover > th {
25
+      background-color: darken(@background, 5%);
26
+    }
27
+  }
28
+}

+ 8
- 0
searx/static/oscar/less/bootstrap/mixins/text-emphasis.less 查看文件

@@ -0,0 +1,8 @@
1
+// Typography
2
+
3
+.text-emphasis-variant(@color) {
4
+  color: @color;
5
+  a&:hover {
6
+    color: darken(@color, 10%);
7
+  }
8
+}

+ 8
- 0
searx/static/oscar/less/bootstrap/mixins/text-overflow.less 查看文件

@@ -0,0 +1,8 @@
1
+// Text overflow
2
+// Requires inline-block or block for proper styling
3
+
4
+.text-overflow() {
5
+  overflow: hidden;
6
+  text-overflow: ellipsis;
7
+  white-space: nowrap;
8
+}

+ 224
- 0
searx/static/oscar/less/bootstrap/mixins/vendor-prefixes.less 查看文件

@@ -0,0 +1,224 @@
1
+// Vendor Prefixes
2
+//
3
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
4
+// Autoprefixer in our Gruntfile. They will be removed in v4.
5
+
6
+// - Animations
7
+// - Backface visibility
8
+// - Box shadow
9
+// - Box sizing
10
+// - Content columns
11
+// - Hyphens
12
+// - Placeholder text
13
+// - Transformations
14
+// - Transitions
15
+// - User Select
16
+
17
+
18
+// Animations
19
+.animation(@animation) {
20
+  -webkit-animation: @animation;
21
+       -o-animation: @animation;
22
+          animation: @animation;
23
+}
24
+.animation-name(@name) {
25
+  -webkit-animation-name: @name;
26
+          animation-name: @name;
27
+}
28
+.animation-duration(@duration) {
29
+  -webkit-animation-duration: @duration;
30
+          animation-duration: @duration;
31
+}
32
+.animation-timing-function(@timing-function) {
33
+  -webkit-animation-timing-function: @timing-function;
34
+          animation-timing-function: @timing-function;
35
+}
36
+.animation-delay(@delay) {
37
+  -webkit-animation-delay: @delay;
38
+          animation-delay: @delay;
39
+}
40
+.animation-iteration-count(@iteration-count) {
41
+  -webkit-animation-iteration-count: @iteration-count;
42
+          animation-iteration-count: @iteration-count;
43
+}
44
+.animation-direction(@direction) {
45
+  -webkit-animation-direction: @direction;
46
+          animation-direction: @direction;
47
+}
48
+.animation-fill-mode(@fill-mode) {
49
+  -webkit-animation-fill-mode: @fill-mode;
50
+          animation-fill-mode: @fill-mode;
51
+}
52
+
53
+// Backface visibility
54
+// Prevent browsers from flickering when using CSS 3D transforms.
55
+// Default value is `visible`, but can be changed to `hidden`
56
+
57
+.backface-visibility(@visibility){
58
+  -webkit-backface-visibility: @visibility;
59
+     -moz-backface-visibility: @visibility;
60
+          backface-visibility: @visibility;
61
+}
62
+
63
+// Drop shadows
64
+//
65
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
66
+// supported browsers that have box shadow capabilities now support it.
67
+
68
+.box-shadow(@shadow) {
69
+  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
70
+          box-shadow: @shadow;
71
+}
72
+
73
+// Box sizing
74
+.box-sizing(@boxmodel) {
75
+  -webkit-box-sizing: @boxmodel;
76
+     -moz-box-sizing: @boxmodel;
77
+          box-sizing: @boxmodel;
78
+}
79
+
80
+// CSS3 Content Columns
81
+.content-columns(@column-count; @column-gap: @grid-gutter-width) {
82
+  -webkit-column-count: @column-count;
83
+     -moz-column-count: @column-count;
84
+          column-count: @column-count;
85
+  -webkit-column-gap: @column-gap;
86
+     -moz-column-gap: @column-gap;
87
+          column-gap: @column-gap;
88
+}
89
+
90
+// Optional hyphenation
91
+.hyphens(@mode: auto) {
92
+  word-wrap: break-word;
93
+  -webkit-hyphens: @mode;
94
+     -moz-hyphens: @mode;
95
+      -ms-hyphens: @mode; // IE10+
96
+       -o-hyphens: @mode;
97
+          hyphens: @mode;
98
+}
99
+
100
+// Placeholder text
101
+.placeholder(@color: @input-color-placeholder) {
102
+  &::-moz-placeholder           { color: @color;   // Firefox
103
+                                  opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
104
+  &:-ms-input-placeholder       { color: @color; } // Internet Explorer 10+
105
+  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome
106
+}
107
+
108
+// Transformations
109
+.scale(@ratio) {
110
+  -webkit-transform: scale(@ratio);
111
+      -ms-transform: scale(@ratio); // IE9 only
112
+       -o-transform: scale(@ratio);
113
+          transform: scale(@ratio);
114
+}
115
+.scale(@ratioX; @ratioY) {
116
+  -webkit-transform: scale(@ratioX, @ratioY);
117
+      -ms-transform: scale(@ratioX, @ratioY); // IE9 only
118
+       -o-transform: scale(@ratioX, @ratioY);
119
+          transform: scale(@ratioX, @ratioY);
120
+}
121
+.scaleX(@ratio) {
122
+  -webkit-transform: scaleX(@ratio);
123
+      -ms-transform: scaleX(@ratio); // IE9 only
124
+       -o-transform: scaleX(@ratio);
125
+          transform: scaleX(@ratio);
126
+}
127
+.scaleY(@ratio) {
128
+  -webkit-transform: scaleY(@ratio);
129
+      -ms-transform: scaleY(@ratio); // IE9 only
130
+       -o-transform: scaleY(@ratio);
131
+          transform: scaleY(@ratio);
132
+}
133
+.skew(@x; @y) {
134
+  -webkit-transform: skewX(@x) skewY(@y);
135
+      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
136
+       -o-transform: skewX(@x) skewY(@y);
137
+          transform: skewX(@x) skewY(@y);
138
+}
139
+.translate(@x; @y) {
140
+  -webkit-transform: translate(@x, @y);
141
+      -ms-transform: translate(@x, @y); // IE9 only
142
+       -o-transform: translate(@x, @y);
143
+          transform: translate(@x, @y);
144
+}
145
+.translate3d(@x; @y; @z) {
146
+  -webkit-transform: translate3d(@x, @y, @z);
147
+          transform: translate3d(@x, @y, @z);
148
+}
149
+.rotate(@degrees) {
150
+  -webkit-transform: rotate(@degrees);
151
+      -ms-transform: rotate(@degrees); // IE9 only
152
+       -o-transform: rotate(@degrees);
153
+          transform: rotate(@degrees);
154
+}
155
+.rotateX(@degrees) {
156
+  -webkit-transform: rotateX(@degrees);
157
+      -ms-transform: rotateX(@degrees); // IE9 only
158
+       -o-transform: rotateX(@degrees);
159
+          transform: rotateX(@degrees);
160
+}
161
+.rotateY(@degrees) {
162
+  -webkit-transform: rotateY(@degrees);
163
+      -ms-transform: rotateY(@degrees); // IE9 only
164
+       -o-transform: rotateY(@degrees);
165
+          transform: rotateY(@degrees);
166
+}
167
+.perspective(@perspective) {
168
+  -webkit-perspective: @perspective;
169
+     -moz-perspective: @perspective;
170
+          perspective: @perspective;
171
+}
172
+.perspective-origin(@perspective) {
173
+  -webkit-perspective-origin: @perspective;
174
+     -moz-perspective-origin: @perspective;
175
+          perspective-origin: @perspective;
176
+}
177
+.transform-origin(@origin) {
178
+  -webkit-transform-origin: @origin;
179
+     -moz-transform-origin: @origin;
180
+      -ms-transform-origin: @origin; // IE9 only
181
+          transform-origin: @origin;
182
+}
183
+
184
+
185
+// Transitions
186
+
187
+.transition(@transition) {
188
+  -webkit-transition: @transition;
189
+       -o-transition: @transition;
190
+          transition: @transition;
191
+}
192
+.transition-property(@transition-property) {
193
+  -webkit-transition-property: @transition-property;
194
+          transition-property: @transition-property;
195
+}
196
+.transition-delay(@transition-delay) {
197
+  -webkit-transition-delay: @transition-delay;
198
+          transition-delay: @transition-delay;
199
+}
200
+.transition-duration(@transition-duration) {
201
+  -webkit-transition-duration: @transition-duration;
202
+          transition-duration: @transition-duration;
203
+}
204
+.transition-timing-function(@timing-function) {
205
+  -webkit-transition-timing-function: @timing-function;
206
+          transition-timing-function: @timing-function;
207
+}
208
+.transition-transform(@transition) {
209
+  -webkit-transition: -webkit-transform @transition;
210
+     -moz-transition: -moz-transform @transition;
211
+       -o-transition: -o-transform @transition;
212
+          transition: transform @transition;
213
+}
214
+
215
+
216
+// User select
217
+// For selecting text on the page
218
+
219
+.user-select(@select) {
220
+  -webkit-user-select: @select;
221
+     -moz-user-select: @select;
222
+      -ms-user-select: @select; // IE10+
223
+          user-select: @select;
224
+}

+ 150
- 0
searx/static/oscar/less/bootstrap/modals.less 查看文件

@@ -0,0 +1,150 @@
1
+//
2
+// Modals
3
+// --------------------------------------------------
4
+
5
+// .modal-open      - body class for killing the scroll
6
+// .modal           - container to scroll within
7
+// .modal-dialog    - positioning shell for the actual modal
8
+// .modal-content   - actual modal w/ bg and corners and shit
9
+
10
+// Kill the scroll on the body
11
+.modal-open {
12
+  overflow: hidden;
13
+}
14
+
15
+// Container that the modal scrolls within
16
+.modal {
17
+  display: none;
18
+  overflow: hidden;
19
+  position: fixed;
20
+  top: 0;
21
+  right: 0;
22
+  bottom: 0;
23
+  left: 0;
24
+  z-index: @zindex-modal;
25
+  -webkit-overflow-scrolling: touch;
26
+
27
+  // Prevent Chrome on Windows from adding a focus outline. For details, see
28
+  // https://github.com/twbs/bootstrap/pull/10951.
29
+  outline: 0;
30
+
31
+  // When fading in the modal, animate it to slide down
32
+  &.fade .modal-dialog {
33
+    .translate3d(0, -25%, 0);
34
+    .transition-transform(~"0.3s ease-out");
35
+  }
36
+  &.in .modal-dialog { .translate3d(0, 0, 0) }
37
+}
38
+.modal-open .modal {
39
+  overflow-x: hidden;
40
+  overflow-y: auto;
41
+}
42
+
43
+// Shell div to position the modal with bottom padding
44
+.modal-dialog {
45
+  position: relative;
46
+  width: auto;
47
+  margin: 10px;
48
+}
49
+
50
+// Actual modal
51
+.modal-content {
52
+  position: relative;
53
+  background-color: @modal-content-bg;
54
+  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
55
+  border: 1px solid @modal-content-border-color;
56
+  border-radius: @border-radius-large;
57
+  .box-shadow(0 3px 9px rgba(0,0,0,.5));
58
+  background-clip: padding-box;
59
+  // Remove focus outline from opened modal
60
+  outline: 0;
61
+}
62
+
63
+// Modal background
64
+.modal-backdrop {
65
+  position: fixed;
66
+  top: 0;
67
+  right: 0;
68
+  bottom: 0;
69
+  left: 0;
70
+  z-index: @zindex-modal-background;
71
+  background-color: @modal-backdrop-bg;
72
+  // Fade for backdrop
73
+  &.fade { .opacity(0); }
74
+  &.in { .opacity(@modal-backdrop-opacity); }
75
+}
76
+
77
+// Modal header
78
+// Top section of the modal w/ title and dismiss
79
+.modal-header {
80
+  padding: @modal-title-padding;
81
+  border-bottom: 1px solid @modal-header-border-color;
82
+  min-height: (@modal-title-padding + @modal-title-line-height);
83
+}
84
+// Close icon
85
+.modal-header .close {
86
+  margin-top: -2px;
87
+}
88
+
89
+// Title text within header
90
+.modal-title {
91
+  margin: 0;
92
+  line-height: @modal-title-line-height;
93
+}
94
+
95
+// Modal body
96
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
97
+.modal-body {
98
+  position: relative;
99
+  padding: @modal-inner-padding;
100
+}
101
+
102
+// Footer (for actions)
103
+.modal-footer {
104
+  padding: @modal-inner-padding;
105
+  text-align: right; // right align buttons
106
+  border-top: 1px solid @modal-footer-border-color;
107
+  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
108
+
109
+  // Properly space out buttons
110
+  .btn + .btn {
111
+    margin-left: 5px;
112
+    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
113
+  }
114
+  // but override that for button groups
115
+  .btn-group .btn + .btn {
116
+    margin-left: -1px;
117
+  }
118
+  // and override it for block buttons as well
119
+  .btn-block + .btn-block {
120
+    margin-left: 0;
121
+  }
122
+}
123
+
124
+// Measure scrollbar width for padding body during modal show/hide
125
+.modal-scrollbar-measure {
126
+  position: absolute;
127
+  top: -9999px;
128
+  width: 50px;
129
+  height: 50px;
130
+  overflow: scroll;
131
+}
132
+
133
+// Scale up the modal
134
+@media (min-width: @screen-sm-min) {
135
+  // Automatically set modal's width for larger viewports
136
+  .modal-dialog {
137
+    width: @modal-md;
138
+    margin: 30px auto;
139
+  }
140
+  .modal-content {
141
+    .box-shadow(0 5px 15px rgba(0,0,0,.5));
142
+  }
143
+
144
+  // Modal sizes
145
+  .modal-sm { width: @modal-sm; }
146
+}
147
+
148
+@media (min-width: @screen-md-min) {
149
+  .modal-lg { width: @modal-lg; }
150
+}

+ 655
- 0
searx/static/oscar/less/bootstrap/navbar.less 查看文件

@@ -0,0 +1,655 @@
1
+//
2
+// Navbars
3
+// --------------------------------------------------
4
+
5
+
6
+// Wrapper and base class
7
+//
8
+// Provide a static navbar from which we expand to create full-width, fixed, and
9
+// other navbar variations.
10
+
11
+.navbar {
12
+  position: relative;
13
+  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14
+  margin-bottom: @navbar-margin-bottom;
15
+  border: 1px solid transparent;
16
+
17
+  // Prevent floats from breaking the navbar
18
+  &:extend(.clearfix all);
19
+
20
+  @media (min-width: @grid-float-breakpoint) {
21
+    border-radius: @navbar-border-radius;
22
+  }
23
+}
24
+
25
+
26
+// Navbar heading
27
+//
28
+// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29
+// styling of responsive aspects.
30
+
31
+.navbar-header {
32
+  &:extend(.clearfix all);
33
+
34
+  @media (min-width: @grid-float-breakpoint) {
35
+    float: left;
36
+  }
37
+}
38
+
39
+
40
+// Navbar collapse (body)
41
+//
42
+// Group your navbar content into this for easy collapsing and expanding across
43
+// various device sizes. By default, this content is collapsed when <768px, but
44
+// will expand past that for a horizontal display.
45
+//
46
+// To start (on mobile devices) the navbar links, forms, and buttons are stacked
47
+// vertically and include a `max-height` to overflow in case you have too much
48
+// content for the user's viewport.
49
+
50
+.navbar-collapse {
51
+  overflow-x: visible;
52
+  padding-right: @navbar-padding-horizontal;
53
+  padding-left:  @navbar-padding-horizontal;
54
+  border-top: 1px solid transparent;
55
+  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
56
+  &:extend(.clearfix all);
57
+  -webkit-overflow-scrolling: touch;
58
+
59
+  &.in {
60
+    overflow-y: auto;
61
+  }
62
+
63
+  @media (min-width: @grid-float-breakpoint) {
64
+    width: auto;
65
+    border-top: 0;
66
+    box-shadow: none;
67
+
68
+    &.collapse {
69
+      display: block !important;
70
+      height: auto !important;
71
+      padding-bottom: 0; // Override default setting
72
+      overflow: visible !important;
73
+    }
74
+
75
+    &.in {
76
+      overflow-y: visible;
77
+    }
78
+
79
+    // Undo the collapse side padding for navbars with containers to ensure
80
+    // alignment of right-aligned contents.
81
+    .navbar-fixed-top &,
82
+    .navbar-static-top &,
83
+    .navbar-fixed-bottom & {
84
+      padding-left: 0;
85
+      padding-right: 0;
86
+    }
87
+  }
88
+}
89
+
90
+.navbar-fixed-top,
91
+.navbar-fixed-bottom {
92
+  .navbar-collapse {
93
+    max-height: @navbar-collapse-max-height;
94
+
95
+    @media (max-width: @screen-xs-min) and (orientation: landscape) {
96
+      max-height: 200px;
97
+    }
98
+  }
99
+}
100
+
101
+
102
+// Both navbar header and collapse
103
+//
104
+// When a container is present, change the behavior of the header and collapse.
105
+
106
+.container,
107
+.container-fluid {
108
+  > .navbar-header,
109
+  > .navbar-collapse {
110
+    margin-right: -@navbar-padding-horizontal;
111
+    margin-left:  -@navbar-padding-horizontal;
112
+
113
+    @media (min-width: @grid-float-breakpoint) {
114
+      margin-right: 0;
115
+      margin-left:  0;
116
+    }
117
+  }
118
+}
119
+
120
+
121
+//
122
+// Navbar alignment options
123
+//
124
+// Display the navbar across the entirety of the page or fixed it to the top or
125
+// bottom of the page.
126
+
127
+// Static top (unfixed, but 100% wide) navbar
128
+.navbar-static-top {
129
+  z-index: @zindex-navbar;
130
+  border-width: 0 0 1px;
131
+
132
+  @media (min-width: @grid-float-breakpoint) {
133
+    border-radius: 0;
134
+  }
135
+}
136
+
137
+// Fix the top/bottom navbars when screen real estate supports it
138
+.navbar-fixed-top,
139
+.navbar-fixed-bottom {
140
+  position: fixed;
141
+  right: 0;
142
+  left: 0;
143
+  z-index: @zindex-navbar-fixed;
144
+  .translate3d(0, 0, 0);
145
+
146
+  // Undo the rounded corners
147
+  @media (min-width: @grid-float-breakpoint) {
148
+    border-radius: 0;
149
+  }
150
+}
151
+.navbar-fixed-top {
152
+  top: 0;
153
+  border-width: 0 0 1px;
154
+}
155
+.navbar-fixed-bottom {
156
+  bottom: 0;
157
+  margin-bottom: 0; // override .navbar defaults
158
+  border-width: 1px 0 0;
159
+}
160
+
161
+
162
+// Brand/project name
163
+
164
+.navbar-brand {
165
+  float: left;
166
+  padding: @navbar-padding-vertical @navbar-padding-horizontal;
167
+  font-size: @font-size-large;
168
+  line-height: @line-height-computed;
169
+  height: @navbar-height;
170
+
171
+  &:hover,
172
+  &:focus {
173
+    text-decoration: none;
174
+  }
175
+
176
+  @media (min-width: @grid-float-breakpoint) {
177
+    .navbar > .container &,
178
+    .navbar > .container-fluid & {
179
+      margin-left: -@navbar-padding-horizontal;
180
+    }
181
+  }
182
+}
183
+
184
+
185
+// Navbar toggle
186
+//
187
+// Custom button for toggling the `.navbar-collapse`, powered by the collapse
188
+// JavaScript plugin.
189
+
190
+.navbar-toggle {
191
+  position: relative;
192
+  float: right;
193
+  margin-right: @navbar-padding-horizontal;
194
+  padding: 9px 10px;
195
+  .navbar-vertical-align(34px);
196
+  background-color: transparent;
197
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
198
+  border: 1px solid transparent;
199
+  border-radius: @border-radius-base;
200
+
201
+  // We remove the `outline` here, but later compensate by attaching `:hover`
202
+  // styles to `:focus`.
203
+  &:focus {
204
+    outline: 0;
205
+  }
206
+
207
+  // Bars
208
+  .icon-bar {
209
+    display: block;
210
+    width: 22px;
211
+    height: 2px;
212
+    border-radius: 1px;
213
+  }
214
+  .icon-bar + .icon-bar {
215
+    margin-top: 4px;
216
+  }
217
+
218
+  @media (min-width: @grid-float-breakpoint) {
219
+    display: none;
220
+  }
221
+}
222
+
223
+
224
+// Navbar nav links
225
+//
226
+// Builds on top of the `.nav` components with its own modifier class to make
227
+// the nav the full height of the horizontal nav (above 768px).
228
+
229
+.navbar-nav {
230
+  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
231
+
232
+  > li > a {
233
+    padding-top:    10px;
234
+    padding-bottom: 10px;
235
+    line-height: @line-height-computed;
236
+  }
237
+
238
+  @media (max-width: @grid-float-breakpoint-max) {
239
+    // Dropdowns get custom display when collapsed
240
+    .open .dropdown-menu {
241
+      position: static;
242
+      float: none;
243
+      width: auto;
244
+      margin-top: 0;
245
+      background-color: transparent;
246
+      border: 0;
247
+      box-shadow: none;
248
+      > li > a,
249
+      .dropdown-header {
250
+        padding: 5px 15px 5px 25px;
251
+      }
252
+      > li > a {
253
+        line-height: @line-height-computed;
254
+        &:hover,
255
+        &:focus {
256
+          background-image: none;
257
+        }
258
+      }
259
+    }
260
+  }
261
+
262
+  // Uncollapse the nav
263
+  @media (min-width: @grid-float-breakpoint) {
264
+    float: left;
265
+    margin: 0;
266
+
267
+    > li {
268
+      float: left;
269
+      > a {
270
+        padding-top:    @navbar-padding-vertical;
271
+        padding-bottom: @navbar-padding-vertical;
272
+      }
273
+    }
274
+
275
+    &.navbar-right:last-child {
276
+      margin-right: -@navbar-padding-horizontal;
277
+    }
278
+  }
279
+}
280
+
281
+
282
+// Component alignment
283
+//
284
+// Repurpose the pull utilities as their own navbar utilities to avoid specificity
285
+// issues with parents and chaining. Only do this when the navbar is uncollapsed
286
+// though so that navbar contents properly stack and align in mobile.
287
+
288
+@media (min-width: @grid-float-breakpoint) {
289
+  .navbar-left  { .pull-left(); }
290
+  .navbar-right { .pull-right(); }
291
+}
292
+
293
+
294
+// Navbar form
295
+//
296
+// Extension of the `.form-inline` with some extra flavor for optimum display in
297
+// our navbars.
298
+
299
+.navbar-form {
300
+  margin-left: -@navbar-padding-horizontal;
301
+  margin-right: -@navbar-padding-horizontal;
302
+  padding: 10px @navbar-padding-horizontal;
303
+  border-top: 1px solid transparent;
304
+  border-bottom: 1px solid transparent;
305
+  @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
306
+  .box-shadow(@shadow);
307
+
308
+  // Mixin behavior for optimum display
309
+  .form-inline();
310
+
311
+  .form-group {
312
+    @media (max-width: @grid-float-breakpoint-max) {
313
+      margin-bottom: 5px;
314
+    }
315
+  }
316
+
317
+  // Vertically center in expanded, horizontal navbar
318
+  .navbar-vertical-align(@input-height-base);
319
+
320
+  // Undo 100% width for pull classes
321
+  @media (min-width: @grid-float-breakpoint) {
322
+    width: auto;
323
+    border: 0;
324
+    margin-left: 0;
325
+    margin-right: 0;
326
+    padding-top: 0;
327
+    padding-bottom: 0;
328
+    .box-shadow(none);
329
+
330
+    // Outdent the form if last child to line up with content down the page
331
+    &.navbar-right:last-child {
332
+      margin-right: -@navbar-padding-horizontal;
333
+    }
334
+  }
335
+}
336
+
337
+
338
+// Dropdown menus
339
+
340
+// Menu position and menu carets
341
+.navbar-nav > li > .dropdown-menu {
342
+  margin-top: 0;
343
+  .border-top-radius(0);
344
+}
345
+// Menu position and menu caret support for dropups via extra dropup class
346
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
347
+  .border-bottom-radius(0);
348
+}
349
+
350
+
351
+// Buttons in navbars
352
+//
353
+// Vertically center a button within a navbar (when *not* in a form).
354
+
355
+.navbar-btn {
356
+  .navbar-vertical-align(@input-height-base);
357
+
358
+  &.btn-sm {
359
+    .navbar-vertical-align(@input-height-small);
360
+  }
361
+  &.btn-xs {
362
+    .navbar-vertical-align(22);
363
+  }
364
+}
365
+
366
+
367
+// Text in navbars
368
+//
369
+// Add a class to make any element properly align itself vertically within the navbars.
370
+
371
+.navbar-text {
372
+  .navbar-vertical-align(@line-height-computed);
373
+
374
+  @media (min-width: @grid-float-breakpoint) {
375
+    float: left;
376
+    margin-left: @navbar-padding-horizontal;
377
+    margin-right: @navbar-padding-horizontal;
378
+
379
+    // Outdent the form if last child to line up with content down the page
380
+    &.navbar-right:last-child {
381
+      margin-right: 0;
382
+    }
383
+  }
384
+}
385
+
386
+// Alternate navbars
387
+// --------------------------------------------------
388
+
389
+// Default navbar
390
+.navbar-default {
391
+  background-color: @navbar-default-bg;
392
+  border-color: @navbar-default-border;
393
+
394
+  .navbar-brand {
395
+    color: @navbar-default-brand-color;
396
+    &:hover,
397
+    &:focus {
398
+      color: @navbar-default-brand-hover-color;
399
+      background-color: @navbar-default-brand-hover-bg;
400
+    }
401
+  }
402
+
403
+  .navbar-text {
404
+    color: @navbar-default-color;
405
+  }
406
+
407
+  .navbar-nav {
408
+    > li > a {
409
+      color: @navbar-default-link-color;
410
+
411
+      &:hover,
412
+      &:focus {
413
+        color: @navbar-default-link-hover-color;
414
+        background-color: @navbar-default-link-hover-bg;
415
+      }
416
+    }
417
+    > .active > a {
418
+      &,
419
+      &:hover,
420
+      &:focus {
421
+        color: @navbar-default-link-active-color;
422
+        background-color: @navbar-default-link-active-bg;
423
+      }
424
+    }
425
+    > .disabled > a {
426
+      &,
427
+      &:hover,
428
+      &:focus {
429
+        color: @navbar-default-link-disabled-color;
430
+        background-color: @navbar-default-link-disabled-bg;
431
+      }
432
+    }
433
+  }
434
+
435
+  .navbar-toggle {
436
+    border-color: @navbar-default-toggle-border-color;
437
+    &:hover,
438
+    &:focus {
439
+      background-color: @navbar-default-toggle-hover-bg;
440
+    }
441
+    .icon-bar {
442
+      background-color: @navbar-default-toggle-icon-bar-bg;
443
+    }
444
+  }
445
+
446
+  .navbar-collapse,
447
+  .navbar-form {
448
+    border-color: @navbar-default-border;
449
+  }
450
+
451
+  // Dropdown menu items
452
+  .navbar-nav {
453
+    // Remove background color from open dropdown
454
+    > .open > a {
455
+      &,
456
+      &:hover,
457
+      &:focus {
458
+        background-color: @navbar-default-link-active-bg;
459
+        color: @navbar-default-link-active-color;
460
+      }
461
+    }
462
+
463
+    @media (max-width: @grid-float-breakpoint-max) {
464
+      // Dropdowns get custom display when collapsed
465
+      .open .dropdown-menu {
466
+        > li > a {
467
+          color: @navbar-default-link-color;
468
+          &:hover,
469
+          &:focus {
470
+            color: @navbar-default-link-hover-color;
471
+            background-color: @navbar-default-link-hover-bg;
472
+          }
473
+        }
474
+        > .active > a {
475
+          &,
476
+          &:hover,
477
+          &:focus {
478
+            color: @navbar-default-link-active-color;
479
+            background-color: @navbar-default-link-active-bg;
480
+          }
481
+        }
482
+        > .disabled > a {
483
+          &,
484
+          &:hover,
485
+          &:focus {
486
+            color: @navbar-default-link-disabled-color;
487
+            background-color: @navbar-default-link-disabled-bg;
488
+          }
489
+        }
490
+      }
491
+    }
492
+  }
493
+
494
+
495
+  // Links in navbars
496
+  //
497
+  // Add a class to ensure links outside the navbar nav are colored correctly.
498
+
499
+  .navbar-link {
500
+    color: @navbar-default-link-color;
501
+    &:hover {
502
+      color: @navbar-default-link-hover-color;
503
+    }
504
+  }
505
+
506
+  .btn-link {
507
+    color: @navbar-default-link-color;
508
+    &:hover,
509
+    &:focus {
510
+      color: @navbar-default-link-hover-color;
511
+    }
512
+    &[disabled],
513
+    fieldset[disabled] & {
514
+      &:hover,
515
+      &:focus {
516
+        color: @navbar-default-link-disabled-color;
517
+      }
518
+    }
519
+  }
520
+}
521
+
522
+// Inverse navbar
523
+
524
+.navbar-inverse {
525
+  background-color: @navbar-inverse-bg;
526
+  border-color: @navbar-inverse-border;
527
+
528
+  .navbar-brand {
529
+    color: @navbar-inverse-brand-color;
530
+    &:hover,
531
+    &:focus {
532
+      color: @navbar-inverse-brand-hover-color;
533
+      background-color: @navbar-inverse-brand-hover-bg;
534
+    }
535
+  }
536
+
537
+  .navbar-text {
538
+    color: @navbar-inverse-color;
539
+  }
540
+
541
+  .navbar-nav {
542
+    > li > a {
543
+      color: @navbar-inverse-link-color;
544
+
545
+      &:hover,
546
+      &:focus {
547
+        color: @navbar-inverse-link-hover-color;
548
+        background-color: @navbar-inverse-link-hover-bg;
549
+      }
550
+    }
551
+    > .active > a {
552
+      &,
553
+      &:hover,
554
+      &:focus {
555
+        color: @navbar-inverse-link-active-color;
556
+        background-color: @navbar-inverse-link-active-bg;
557
+      }
558
+    }
559
+    > .disabled > a {
560
+      &,
561
+      &:hover,
562
+      &:focus {
563
+        color: @navbar-inverse-link-disabled-color;
564
+        background-color: @navbar-inverse-link-disabled-bg;
565
+      }
566
+    }
567
+  }
568
+
569
+  // Darken the responsive nav toggle
570
+  .navbar-toggle {
571
+    border-color: @navbar-inverse-toggle-border-color;
572
+    &:hover,
573
+    &:focus {
574
+      background-color: @navbar-inverse-toggle-hover-bg;
575
+    }
576
+    .icon-bar {
577
+      background-color: @navbar-inverse-toggle-icon-bar-bg;
578
+    }
579
+  }
580
+
581
+  .navbar-collapse,
582
+  .navbar-form {
583
+    border-color: darken(@navbar-inverse-bg, 7%);
584
+  }
585
+
586
+  // Dropdowns
587
+  .navbar-nav {
588
+    > .open > a {
589
+      &,
590
+      &:hover,
591
+      &:focus {
592
+        background-color: @navbar-inverse-link-active-bg;
593
+        color: @navbar-inverse-link-active-color;
594
+      }
595
+    }
596
+
597
+    @media (max-width: @grid-float-breakpoint-max) {
598
+      // Dropdowns get custom display
599
+      .open .dropdown-menu {
600
+        > .dropdown-header {
601
+          border-color: @navbar-inverse-border;
602
+        }
603
+        .divider {
604
+          background-color: @navbar-inverse-border;
605
+        }
606
+        > li > a {
607
+          color: @navbar-inverse-link-color;
608
+          &:hover,
609
+          &:focus {
610
+            color: @navbar-inverse-link-hover-color;
611
+            background-color: @navbar-inverse-link-hover-bg;
612
+          }
613
+        }
614
+        > .active > a {
615
+          &,
616
+          &:hover,
617
+          &:focus {
618
+            color: @navbar-inverse-link-active-color;
619
+            background-color: @navbar-inverse-link-active-bg;
620
+          }
621
+        }
622
+        > .disabled > a {
623
+          &,
624
+          &:hover,
625
+          &:focus {
626
+            color: @navbar-inverse-link-disabled-color;
627
+            background-color: @navbar-inverse-link-disabled-bg;
628
+          }
629
+        }
630
+      }
631
+    }
632
+  }
633
+
634
+  .navbar-link {
635
+    color: @navbar-inverse-link-color;
636
+    &:hover {
637
+      color: @navbar-inverse-link-hover-color;
638
+    }
639
+  }
640
+
641
+  .btn-link {
642
+    color: @navbar-inverse-link-color;
643
+    &:hover,
644
+    &:focus {
645
+      color: @navbar-inverse-link-hover-color;
646
+    }
647
+    &[disabled],
648
+    fieldset[disabled] & {
649
+      &:hover,
650
+      &:focus {
651
+        color: @navbar-inverse-link-disabled-color;
652
+      }
653
+    }
654
+  }
655
+}

+ 242
- 0
searx/static/oscar/less/bootstrap/navs.less 查看文件

@@ -0,0 +1,242 @@
1
+//
2
+// Navs
3
+// --------------------------------------------------
4
+
5
+
6
+// Base class
7
+// --------------------------------------------------
8
+
9
+.nav {
10
+  margin-bottom: 0;
11
+  padding-left: 0; // Override default ul/ol
12
+  list-style: none;
13
+  &:extend(.clearfix all);
14
+
15
+  > li {
16
+    position: relative;
17
+    display: block;
18
+
19
+    > a {
20
+      position: relative;
21
+      display: block;
22
+      padding: @nav-link-padding;
23
+      &:hover,
24
+      &:focus {
25
+        text-decoration: none;
26
+        background-color: @nav-link-hover-bg;
27
+      }
28
+    }
29
+
30
+    // Disabled state sets text to gray and nukes hover/tab effects
31
+    &.disabled > a {
32
+      color: @nav-disabled-link-color;
33
+
34
+      &:hover,
35
+      &:focus {
36
+        color: @nav-disabled-link-hover-color;
37
+        text-decoration: none;
38
+        background-color: transparent;
39
+        cursor: not-allowed;
40
+      }
41
+    }
42
+  }
43
+
44
+  // Open dropdowns
45
+  .open > a {
46
+    &,
47
+    &:hover,
48
+    &:focus {
49
+      background-color: @nav-link-hover-bg;
50
+      border-color: @link-color;
51
+    }
52
+  }
53
+
54
+  // Nav dividers (deprecated with v3.0.1)
55
+  //
56
+  // This should have been removed in v3 with the dropping of `.nav-list`, but
57
+  // we missed it. We don't currently support this anywhere, but in the interest
58
+  // of maintaining backward compatibility in case you use it, it's deprecated.
59
+  .nav-divider {
60
+    .nav-divider();
61
+  }
62
+
63
+  // Prevent IE8 from misplacing imgs
64
+  //
65
+  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
66
+  > li > a > img {
67
+    max-width: none;
68
+  }
69
+}
70
+
71
+
72
+// Tabs
73
+// -------------------------
74
+
75
+// Give the tabs something to sit on
76
+.nav-tabs {
77
+  border-bottom: 1px solid @nav-tabs-border-color;
78
+  > li {
79
+    float: left;
80
+    // Make the list-items overlay the bottom border
81
+    margin-bottom: -1px;
82
+
83
+    // Actual tabs (as links)
84
+    > a {
85
+      margin-right: 2px;
86
+      line-height: @line-height-base;
87
+      border: 1px solid transparent;
88
+      border-radius: @border-radius-base @border-radius-base 0 0;
89
+      &:hover {
90
+        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
91
+      }
92
+    }
93
+
94
+    // Active state, and its :hover to override normal :hover
95
+    &.active > a {
96
+      &,
97
+      &:hover,
98
+      &:focus {
99
+        color: @nav-tabs-active-link-hover-color;
100
+        background-color: @nav-tabs-active-link-hover-bg;
101
+        border: 1px solid @nav-tabs-active-link-hover-border-color;
102
+        border-bottom-color: transparent;
103
+        cursor: default;
104
+      }
105
+    }
106
+  }
107
+  // pulling this in mainly for less shorthand
108
+  &.nav-justified {
109
+    .nav-justified();
110
+    .nav-tabs-justified();
111
+  }
112
+}
113
+
114
+
115
+// Pills
116
+// -------------------------
117
+.nav-pills {
118
+  > li {
119
+    float: left;
120
+
121
+    // Links rendered as pills
122
+    > a {
123
+      border-radius: @nav-pills-border-radius;
124
+    }
125
+    + li {
126
+      margin-left: 2px;
127
+    }
128
+
129
+    // Active state
130
+    &.active > a {
131
+      &,
132
+      &:hover,
133
+      &:focus {
134
+        color: @nav-pills-active-link-hover-color;
135
+        background-color: @nav-pills-active-link-hover-bg;
136
+      }
137
+    }
138
+  }
139
+}
140
+
141
+
142
+// Stacked pills
143
+.nav-stacked {
144
+  > li {
145
+    float: none;
146
+    + li {
147
+      margin-top: 2px;
148
+      margin-left: 0; // no need for this gap between nav items
149
+    }
150
+  }
151
+}
152
+
153
+
154
+// Nav variations
155
+// --------------------------------------------------
156
+
157
+// Justified nav links
158
+// -------------------------
159
+
160
+.nav-justified {
161
+  width: 100%;
162
+
163
+  > li {
164
+    float: none;
165
+    > a {
166
+      text-align: center;
167
+      margin-bottom: 5px;
168
+    }
169
+  }
170
+
171
+  > .dropdown .dropdown-menu {
172
+    top: auto;
173
+    left: auto;
174
+  }
175
+
176
+  @media (min-width: @screen-sm-min) {
177
+    > li {
178
+      display: table-cell;
179
+      width: 1%;
180
+      > a {
181
+        margin-bottom: 0;
182
+      }
183
+    }
184
+  }
185
+}
186
+
187
+// Move borders to anchors instead of bottom of list
188
+//
189
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
190
+.nav-tabs-justified {
191
+  border-bottom: 0;
192
+
193
+  > li > a {
194
+    // Override margin from .nav-tabs
195
+    margin-right: 0;
196
+    border-radius: @border-radius-base;
197
+  }
198
+
199
+  > .active > a,
200
+  > .active > a:hover,
201
+  > .active > a:focus {
202
+    border: 1px solid @nav-tabs-justified-link-border-color;
203
+  }
204
+
205
+  @media (min-width: @screen-sm-min) {
206
+    > li > a {
207
+      border-bottom: 1px solid @nav-tabs-justified-link-border-color;
208
+      border-radius: @border-radius-base @border-radius-base 0 0;
209
+    }
210
+    > .active > a,
211
+    > .active > a:hover,
212
+    > .active > a:focus {
213
+      border-bottom-color: @nav-tabs-justified-active-link-border-color;
214
+    }
215
+  }
216
+}
217
+
218
+
219
+// Tabbable tabs
220
+// -------------------------
221
+
222
+// Hide tabbable panes to start, show them when `.active`
223
+.tab-content {
224
+  > .tab-pane {
225
+    display: none;
226
+  }
227
+  > .active {
228
+    display: block;
229
+  }
230
+}
231
+
232
+
233
+// Dropdowns
234
+// -------------------------
235
+
236
+// Specific dropdowns
237
+.nav-tabs .dropdown-menu {
238
+  // make dropdown border overlap tab border
239
+  margin-top: -1px;
240
+  // Remove the top rounded corners here since there is a hard edge above the menu
241
+  .border-top-radius(0);
242
+}

+ 425
- 0
searx/static/oscar/less/bootstrap/normalize.less 查看文件

@@ -0,0 +1,425 @@
1
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
2
+
3
+//
4
+// 1. Set default font family to sans-serif.
5
+// 2. Prevent iOS text size adjust after orientation change, without disabling
6
+//    user zoom.
7
+//
8
+
9
+html {
10
+  font-family: sans-serif; // 1
11
+  -ms-text-size-adjust: 100%; // 2
12
+  -webkit-text-size-adjust: 100%; // 2
13
+}
14
+
15
+//
16
+// Remove default margin.
17
+//
18
+
19
+body {
20
+  margin: 0;
21
+}
22
+
23
+// HTML5 display definitions
24
+// ==========================================================================
25
+
26
+//
27
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+// Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
29
+// Correct `block` display not defined for `main` in IE 11.
30
+//
31
+
32
+article,
33
+aside,
34
+details,
35
+figcaption,
36
+figure,
37
+footer,
38
+header,
39
+hgroup,
40
+main,
41
+nav,
42
+section,
43
+summary {
44
+  display: block;
45
+}
46
+
47
+//
48
+// 1. Correct `inline-block` display not defined in IE 8/9.
49
+// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
50
+//
51
+
52
+audio,
53
+canvas,
54
+progress,
55
+video {
56
+  display: inline-block; // 1
57
+  vertical-align: baseline; // 2
58
+}
59
+
60
+//
61
+// Prevent modern browsers from displaying `audio` without controls.
62
+// Remove excess height in iOS 5 devices.
63
+//
64
+
65
+audio:not([controls]) {
66
+  display: none;
67
+  height: 0;
68
+}
69
+
70
+//
71
+// Address `[hidden]` styling not present in IE 8/9/10.
72
+// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
73
+//
74
+
75
+[hidden],
76
+template {
77
+  display: none;
78
+}
79
+
80
+// Links
81
+// ==========================================================================
82
+
83
+//
84
+// Remove the gray background color from active links in IE 10.
85
+//
86
+
87
+a {
88
+  background: transparent;
89
+}
90
+
91
+//
92
+// Improve readability when focused and also mouse hovered in all browsers.
93
+//
94
+
95
+a:active,
96
+a:hover {
97
+  outline: 0;
98
+}
99
+
100
+// Text-level semantics
101
+// ==========================================================================
102
+
103
+//
104
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
105
+//
106
+
107
+abbr[title] {
108
+  border-bottom: 1px dotted;
109
+}
110
+
111
+//
112
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
113
+//
114
+
115
+b,
116
+strong {
117
+  font-weight: bold;
118
+}
119
+
120
+//
121
+// Address styling not present in Safari and Chrome.
122
+//
123
+
124
+dfn {
125
+  font-style: italic;
126
+}
127
+
128
+//
129
+// Address variable `h1` font-size and margin within `section` and `article`
130
+// contexts in Firefox 4+, Safari, and Chrome.
131
+//
132
+
133
+h1 {
134
+  font-size: 2em;
135
+  margin: 0.67em 0;
136
+}
137
+
138
+//
139
+// Address styling not present in IE 8/9.
140
+//
141
+
142
+mark {
143
+  background: #ff0;
144
+  color: #000;
145
+}
146
+
147
+//
148
+// Address inconsistent and variable font size in all browsers.
149
+//
150
+
151
+small {
152
+  font-size: 80%;
153
+}
154
+
155
+//
156
+// Prevent `sub` and `sup` affecting `line-height` in all browsers.
157
+//
158
+
159
+sub,
160
+sup {
161
+  font-size: 75%;
162
+  line-height: 0;
163
+  position: relative;
164
+  vertical-align: baseline;
165
+}
166
+
167
+sup {
168
+  top: -0.5em;
169
+}
170
+
171
+sub {
172
+  bottom: -0.25em;
173
+}
174
+
175
+// Embedded content
176
+// ==========================================================================
177
+
178
+//
179
+// Remove border when inside `a` element in IE 8/9/10.
180
+//
181
+
182
+img {
183
+  border: 0;
184
+}
185
+
186
+//
187
+// Correct overflow not hidden in IE 9/10/11.
188
+//
189
+
190
+svg:not(:root) {
191
+  overflow: hidden;
192
+}
193
+
194
+// Grouping content
195
+// ==========================================================================
196
+
197
+//
198
+// Address margin not present in IE 8/9 and Safari.
199
+//
200
+
201
+figure {
202
+  margin: 1em 40px;
203
+}
204
+
205
+//
206
+// Address differences between Firefox and other browsers.
207
+//
208
+
209
+hr {
210
+  -moz-box-sizing: content-box;
211
+  box-sizing: content-box;
212
+  height: 0;
213
+}
214
+
215
+//
216
+// Contain overflow in all browsers.
217
+//
218
+
219
+pre {
220
+  overflow: auto;
221
+}
222
+
223
+//
224
+// Address odd `em`-unit font size rendering in all browsers.
225
+//
226
+
227
+code,
228
+kbd,
229
+pre,
230
+samp {
231
+  font-family: monospace, monospace;
232
+  font-size: 1em;
233
+}
234
+
235
+// Forms
236
+// ==========================================================================
237
+
238
+//
239
+// Known limitation: by default, Chrome and Safari on OS X allow very limited
240
+// styling of `select`, unless a `border` property is set.
241
+//
242
+
243
+//
244
+// 1. Correct color not being inherited.
245
+//    Known issue: affects color of disabled elements.
246
+// 2. Correct font properties not being inherited.
247
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
248
+//
249
+
250
+button,
251
+input,
252
+optgroup,
253
+select,
254
+textarea {
255
+  color: inherit; // 1
256
+  font: inherit; // 2
257
+  margin: 0; // 3
258
+}
259
+
260
+//
261
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
262
+//
263
+
264
+button {
265
+  overflow: visible;
266
+}
267
+
268
+//
269
+// Address inconsistent `text-transform` inheritance for `button` and `select`.
270
+// All other form control elements do not inherit `text-transform` values.
271
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
272
+// Correct `select` style inheritance in Firefox.
273
+//
274
+
275
+button,
276
+select {
277
+  text-transform: none;
278
+}
279
+
280
+//
281
+// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
282
+//    and `video` controls.
283
+// 2. Correct inability to style clickable `input` types in iOS.
284
+// 3. Improve usability and consistency of cursor style between image-type
285
+//    `input` and others.
286
+//
287
+
288
+button,
289
+html input[type="button"], // 1
290
+input[type="reset"],
291
+input[type="submit"] {
292
+  -webkit-appearance: button; // 2
293
+  cursor: pointer; // 3
294
+}
295
+
296
+//
297
+// Re-set default cursor for disabled elements.
298
+//
299
+
300
+button[disabled],
301
+html input[disabled] {
302
+  cursor: default;
303
+}
304
+
305
+//
306
+// Remove inner padding and border in Firefox 4+.
307
+//
308
+
309
+button::-moz-focus-inner,
310
+input::-moz-focus-inner {
311
+  border: 0;
312
+  padding: 0;
313
+}
314
+
315
+//
316
+// Address Firefox 4+ setting `line-height` on `input` using `!important` in
317
+// the UA stylesheet.
318
+//
319
+
320
+input {
321
+  line-height: normal;
322
+}
323
+
324
+//
325
+// It's recommended that you don't attempt to style these elements.
326
+// Firefox's implementation doesn't respect box-sizing, padding, or width.
327
+//
328
+// 1. Address box sizing set to `content-box` in IE 8/9/10.
329
+// 2. Remove excess padding in IE 8/9/10.
330
+//
331
+
332
+input[type="checkbox"],
333
+input[type="radio"] {
334
+  box-sizing: border-box; // 1
335
+  padding: 0; // 2
336
+}
337
+
338
+//
339
+// Fix the cursor style for Chrome's increment/decrement buttons. For certain
340
+// `font-size` values of the `input`, it causes the cursor style of the
341
+// decrement button to change from `default` to `text`.
342
+//
343
+
344
+input[type="number"]::-webkit-inner-spin-button,
345
+input[type="number"]::-webkit-outer-spin-button {
346
+  height: auto;
347
+}
348
+
349
+//
350
+// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
351
+// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
352
+//    (include `-moz` to future-proof).
353
+//
354
+
355
+input[type="search"] {
356
+  -webkit-appearance: textfield; // 1
357
+  -moz-box-sizing: content-box;
358
+  -webkit-box-sizing: content-box; // 2
359
+  box-sizing: content-box;
360
+}
361
+
362
+//
363
+// Remove inner padding and search cancel button in Safari and Chrome on OS X.
364
+// Safari (but not Chrome) clips the cancel button when the search input has
365
+// padding (and `textfield` appearance).
366
+//
367
+
368
+input[type="search"]::-webkit-search-cancel-button,
369
+input[type="search"]::-webkit-search-decoration {
370
+  -webkit-appearance: none;
371
+}
372
+
373
+//
374
+// Define consistent border, margin, and padding.
375
+//
376
+
377
+fieldset {
378
+  border: 1px solid #c0c0c0;
379
+  margin: 0 2px;
380
+  padding: 0.35em 0.625em 0.75em;
381
+}
382
+
383
+//
384
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
385
+// 2. Remove padding so people aren't caught out if they zero out fieldsets.
386
+//
387
+
388
+legend {
389
+  border: 0; // 1
390
+  padding: 0; // 2
391
+}
392
+
393
+//
394
+// Remove default vertical scrollbar in IE 8/9/10/11.
395
+//
396
+
397
+textarea {
398
+  overflow: auto;
399
+}
400
+
401
+//
402
+// Don't inherit the `font-weight` (applied by a rule above).
403
+// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
404
+//
405
+
406
+optgroup {
407
+  font-weight: bold;
408
+}
409
+
410
+// Tables
411
+// ==========================================================================
412
+
413
+//
414
+// Remove most spacing between table cells.
415
+//
416
+
417
+table {
418
+  border-collapse: collapse;
419
+  border-spacing: 0;
420
+}
421
+
422
+td,
423
+th {
424
+  padding: 0;
425
+}

+ 55
- 0
searx/static/oscar/less/bootstrap/pager.less 查看文件

@@ -0,0 +1,55 @@
1
+//
2
+// Pager pagination
3
+// --------------------------------------------------
4
+
5
+
6
+.pager {
7
+  padding-left: 0;
8
+  margin: @line-height-computed 0;
9
+  list-style: none;
10
+  text-align: center;
11
+  &:extend(.clearfix all);
12
+  li {
13
+    display: inline;
14
+    > a,
15
+    > span {
16
+      display: inline-block;
17
+      padding: 5px 14px;
18
+      background-color: @pager-bg;
19
+      border: 1px solid @pager-border;
20
+      border-radius: @pager-border-radius;
21
+    }
22
+
23
+    > a:hover,
24
+    > a:focus {
25
+      text-decoration: none;
26
+      background-color: @pager-hover-bg;
27
+    }
28
+  }
29
+
30
+  .next {
31
+    > a,
32
+    > span {
33
+      float: right;
34
+    }
35
+  }
36
+
37
+  .previous {
38
+    > a,
39
+    > span {
40
+      float: left;
41
+    }
42
+  }
43
+
44
+  .disabled {
45
+    > a,
46
+    > a:hover,
47
+    > a:focus,
48
+    > span {
49
+      color: @pager-disabled-color;
50
+      background-color: @pager-bg;
51
+      cursor: not-allowed;
52
+    }
53
+  }
54
+
55
+}

+ 88
- 0
searx/static/oscar/less/bootstrap/pagination.less 查看文件

@@ -0,0 +1,88 @@
1
+//
2
+// Pagination (multiple pages)
3
+// --------------------------------------------------
4
+.pagination {
5
+  display: inline-block;
6
+  padding-left: 0;
7
+  margin: @line-height-computed 0;
8
+  border-radius: @border-radius-base;
9
+
10
+  > li {
11
+    display: inline; // Remove list-style and block-level defaults
12
+    > a,
13
+    > span {
14
+      position: relative;
15
+      float: left; // Collapse white-space
16
+      padding: @padding-base-vertical @padding-base-horizontal;
17
+      line-height: @line-height-base;
18
+      text-decoration: none;
19
+      color: @pagination-color;
20
+      background-color: @pagination-bg;
21
+      border: 1px solid @pagination-border;
22
+      margin-left: -1px;
23
+    }
24
+    &:first-child {
25
+      > a,
26
+      > span {
27
+        margin-left: 0;
28
+        .border-left-radius(@border-radius-base);
29
+      }
30
+    }
31
+    &:last-child {
32
+      > a,
33
+      > span {
34
+        .border-right-radius(@border-radius-base);
35
+      }
36
+    }
37
+  }
38
+
39
+  > li > a,
40
+  > li > span {
41
+    &:hover,
42
+    &:focus {
43
+      color: @pagination-hover-color;
44
+      background-color: @pagination-hover-bg;
45
+      border-color: @pagination-hover-border;
46
+    }
47
+  }
48
+
49
+  > .active > a,
50
+  > .active > span {
51
+    &,
52
+    &:hover,
53
+    &:focus {
54
+      z-index: 2;
55
+      color: @pagination-active-color;
56
+      background-color: @pagination-active-bg;
57
+      border-color: @pagination-active-border;
58
+      cursor: default;
59
+    }
60
+  }
61
+
62
+  > .disabled {
63
+    > span,
64
+    > span:hover,
65
+    > span:focus,
66
+    > a,
67
+    > a:hover,
68
+    > a:focus {
69
+      color: @pagination-disabled-color;
70
+      background-color: @pagination-disabled-bg;
71
+      border-color: @pagination-disabled-border;
72
+      cursor: not-allowed;
73
+    }
74
+  }
75
+}
76
+
77
+// Sizing
78
+// --------------------------------------------------
79
+
80
+// Large
81
+.pagination-lg {
82
+  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
83
+}
84
+
85
+// Small
86
+.pagination-sm {
87
+  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
88
+}

+ 243
- 0
searx/static/oscar/less/bootstrap/panels.less 查看文件

@@ -0,0 +1,243 @@
1
+//
2
+// Panels
3
+// --------------------------------------------------
4
+
5
+
6
+// Base class
7
+.panel {
8
+  margin-bottom: @line-height-computed;
9
+  background-color: @panel-bg;
10
+  border: 1px solid transparent;
11
+  border-radius: @panel-border-radius;
12
+  .box-shadow(0 1px 1px rgba(0,0,0,.05));
13
+}
14
+
15
+// Panel contents
16
+.panel-body {
17
+  padding: @panel-body-padding;
18
+  &:extend(.clearfix all);
19
+}
20
+
21
+// Optional heading
22
+.panel-heading {
23
+  padding: @panel-heading-padding;
24
+  border-bottom: 1px solid transparent;
25
+  .border-top-radius((@panel-border-radius - 1));
26
+
27
+  > .dropdown .dropdown-toggle {
28
+    color: inherit;
29
+  }
30
+}
31
+
32
+// Within heading, strip any `h*` tag of its default margins for spacing.
33
+.panel-title {
34
+  margin-top: 0;
35
+  margin-bottom: 0;
36
+  font-size: ceil((@font-size-base * 1.125));
37
+  color: inherit;
38
+
39
+  > a {
40
+    color: inherit;
41
+  }
42
+}
43
+
44
+// Optional footer (stays gray in every modifier class)
45
+.panel-footer {
46
+  padding: @panel-footer-padding;
47
+  background-color: @panel-footer-bg;
48
+  border-top: 1px solid @panel-inner-border;
49
+  .border-bottom-radius((@panel-border-radius - 1));
50
+}
51
+
52
+
53
+// List groups in panels
54
+//
55
+// By default, space out list group content from panel headings to account for
56
+// any kind of custom content between the two.
57
+
58
+.panel {
59
+  > .list-group {
60
+    margin-bottom: 0;
61
+
62
+    .list-group-item {
63
+      border-width: 1px 0;
64
+      border-radius: 0;
65
+    }
66
+
67
+    // Add border top radius for first one
68
+    &:first-child {
69
+      .list-group-item:first-child {
70
+        border-top: 0;
71
+        .border-top-radius((@panel-border-radius - 1));
72
+      }
73
+    }
74
+    // Add border bottom radius for last one
75
+    &:last-child {
76
+      .list-group-item:last-child {
77
+        border-bottom: 0;
78
+        .border-bottom-radius((@panel-border-radius - 1));
79
+      }
80
+    }
81
+  }
82
+}
83
+// Collapse space between when there's no additional content.
84
+.panel-heading + .list-group {
85
+  .list-group-item:first-child {
86
+    border-top-width: 0;
87
+  }
88
+}
89
+.list-group + .panel-footer {
90
+  border-top-width: 0;
91
+}
92
+
93
+// Tables in panels
94
+//
95
+// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
96
+// watch it go full width.
97
+
98
+.panel {
99
+  > .table,
100
+  > .table-responsive > .table,
101
+  > .panel-collapse > .table {
102
+    margin-bottom: 0;
103
+  }
104
+  // Add border top radius for first one
105
+  > .table:first-child,
106
+  > .table-responsive:first-child > .table:first-child {
107
+    .border-top-radius((@panel-border-radius - 1));
108
+
109
+    > thead:first-child,
110
+    > tbody:first-child {
111
+      > tr:first-child {
112
+        td:first-child,
113
+        th:first-child {
114
+          border-top-left-radius: (@panel-border-radius - 1);
115
+        }
116
+        td:last-child,
117
+        th:last-child {
118
+          border-top-right-radius: (@panel-border-radius - 1);
119
+        }
120
+      }
121
+    }
122
+  }
123
+  // Add border bottom radius for last one
124
+  > .table:last-child,
125
+  > .table-responsive:last-child > .table:last-child {
126
+    .border-bottom-radius((@panel-border-radius - 1));
127
+
128
+    > tbody:last-child,
129
+    > tfoot:last-child {
130
+      > tr:last-child {
131
+        td:first-child,
132
+        th:first-child {
133
+          border-bottom-left-radius: (@panel-border-radius - 1);
134
+        }
135
+        td:last-child,
136
+        th:last-child {
137
+          border-bottom-right-radius: (@panel-border-radius - 1);
138
+        }
139
+      }
140
+    }
141
+  }
142
+  > .panel-body + .table,
143
+  > .panel-body + .table-responsive {
144
+    border-top: 1px solid @table-border-color;
145
+  }
146
+  > .table > tbody:first-child > tr:first-child th,
147
+  > .table > tbody:first-child > tr:first-child td {
148
+    border-top: 0;
149
+  }
150
+  > .table-bordered,
151
+  > .table-responsive > .table-bordered {
152
+    border: 0;
153
+    > thead,
154
+    > tbody,
155
+    > tfoot {
156
+      > tr {
157
+        > th:first-child,
158
+        > td:first-child {
159
+          border-left: 0;
160
+        }
161
+        > th:last-child,
162
+        > td:last-child {
163
+          border-right: 0;
164
+        }
165
+      }
166
+    }
167
+    > thead,
168
+    > tbody {
169
+      > tr:first-child {
170
+        > td,
171
+        > th {
172
+          border-bottom: 0;
173
+        }
174
+      }
175
+    }
176
+    > tbody,
177
+    > tfoot {
178
+      > tr:last-child {
179
+        > td,
180
+        > th {
181
+          border-bottom: 0;
182
+        }
183
+      }
184
+    }
185
+  }
186
+  > .table-responsive {
187
+    border: 0;
188
+    margin-bottom: 0;
189
+  }
190
+}
191
+
192
+
193
+// Collapsable panels (aka, accordion)
194
+//
195
+// Wrap a series of panels in `.panel-group` to turn them into an accordion with
196
+// the help of our collapse JavaScript plugin.
197
+
198
+.panel-group {
199
+  margin-bottom: @line-height-computed;
200
+
201
+  // Tighten up margin so it's only between panels
202
+  .panel {
203
+    margin-bottom: 0;
204
+    border-radius: @panel-border-radius;
205
+    + .panel {
206
+      margin-top: 5px;
207
+    }
208
+  }
209
+
210
+  .panel-heading {
211
+    border-bottom: 0;
212
+    + .panel-collapse > .panel-body {
213
+      border-top: 1px solid @panel-inner-border;
214
+    }
215
+  }
216
+  .panel-footer {
217
+    border-top: 0;
218
+    + .panel-collapse .panel-body {
219
+      border-bottom: 1px solid @panel-inner-border;
220
+    }
221
+  }
222
+}
223
+
224
+
225
+// Contextual variations
226
+.panel-default {
227
+  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
228
+}
229
+.panel-primary {
230
+  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
231
+}
232
+.panel-success {
233
+  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
234
+}
235
+.panel-info {
236
+  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
237
+}
238
+.panel-warning {
239
+  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
240
+}
241
+.panel-danger {
242
+  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
243
+}

+ 133
- 0
searx/static/oscar/less/bootstrap/popovers.less 查看文件

@@ -0,0 +1,133 @@
1
+//
2
+// Popovers
3
+// --------------------------------------------------
4
+
5
+
6
+.popover {
7
+  position: absolute;
8
+  top: 0;
9
+  left: 0;
10
+  z-index: @zindex-popover;
11
+  display: none;
12
+  max-width: @popover-max-width;
13
+  padding: 1px;
14
+  text-align: left; // Reset given new insertion method
15
+  background-color: @popover-bg;
16
+  background-clip: padding-box;
17
+  border: 1px solid @popover-fallback-border-color;
18
+  border: 1px solid @popover-border-color;
19
+  border-radius: @border-radius-large;
20
+  .box-shadow(0 5px 10px rgba(0,0,0,.2));
21
+
22
+  // Overrides for proper insertion
23
+  white-space: normal;
24
+
25
+  // Offset the popover to account for the popover arrow
26
+  &.top     { margin-top: -@popover-arrow-width; }
27
+  &.right   { margin-left: @popover-arrow-width; }
28
+  &.bottom  { margin-top: @popover-arrow-width; }
29
+  &.left    { margin-left: -@popover-arrow-width; }
30
+}
31
+
32
+.popover-title {
33
+  margin: 0; // reset heading margin
34
+  padding: 8px 14px;
35
+  font-size: @font-size-base;
36
+  font-weight: normal;
37
+  line-height: 18px;
38
+  background-color: @popover-title-bg;
39
+  border-bottom: 1px solid darken(@popover-title-bg, 5%);
40
+  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
41
+}
42
+
43
+.popover-content {
44
+  padding: 9px 14px;
45
+}
46
+
47
+// Arrows
48
+//
49
+// .arrow is outer, .arrow:after is inner
50
+
51
+.popover > .arrow {
52
+  &,
53
+  &:after {
54
+    position: absolute;
55
+    display: block;
56
+    width: 0;
57
+    height: 0;
58
+    border-color: transparent;
59
+    border-style: solid;
60
+  }
61
+}
62
+.popover > .arrow {
63
+  border-width: @popover-arrow-outer-width;
64
+}
65
+.popover > .arrow:after {
66
+  border-width: @popover-arrow-width;
67
+  content: "";
68
+}
69
+
70
+.popover {
71
+  &.top > .arrow {
72
+    left: 50%;
73
+    margin-left: -@popover-arrow-outer-width;
74
+    border-bottom-width: 0;
75
+    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
76
+    border-top-color: @popover-arrow-outer-color;
77
+    bottom: -@popover-arrow-outer-width;
78
+    &:after {
79
+      content: " ";
80
+      bottom: 1px;
81
+      margin-left: -@popover-arrow-width;
82
+      border-bottom-width: 0;
83
+      border-top-color: @popover-arrow-color;
84
+    }
85
+  }
86
+  &.right > .arrow {
87
+    top: 50%;
88
+    left: -@popover-arrow-outer-width;
89
+    margin-top: -@popover-arrow-outer-width;
90
+    border-left-width: 0;
91
+    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
92
+    border-right-color: @popover-arrow-outer-color;
93
+    &:after {
94
+      content: " ";
95
+      left: 1px;
96
+      bottom: -@popover-arrow-width;
97
+      border-left-width: 0;
98
+      border-right-color: @popover-arrow-color;
99
+    }
100
+  }
101
+  &.bottom > .arrow {
102
+    left: 50%;
103
+    margin-left: -@popover-arrow-outer-width;
104
+    border-top-width: 0;
105
+    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
106
+    border-bottom-color: @popover-arrow-outer-color;
107
+    top: -@popover-arrow-outer-width;
108
+    &:after {
109
+      content: " ";
110
+      top: 1px;
111
+      margin-left: -@popover-arrow-width;
112
+      border-top-width: 0;
113
+      border-bottom-color: @popover-arrow-color;
114
+    }
115
+  }
116
+
117
+  &.left > .arrow {
118
+    top: 50%;
119
+    right: -@popover-arrow-outer-width;
120
+    margin-top: -@popover-arrow-outer-width;
121
+    border-right-width: 0;
122
+    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
123
+    border-left-color: @popover-arrow-outer-color;
124
+    &:after {
125
+      content: " ";
126
+      right: 1px;
127
+      border-right-width: 0;
128
+      border-left-color: @popover-arrow-color;
129
+      bottom: -@popover-arrow-width;
130
+    }
131
+  }
132
+
133
+}

+ 101
- 0
searx/static/oscar/less/bootstrap/print.less 查看文件

@@ -0,0 +1,101 @@
1
+//
2
+// Basic print styles
3
+// --------------------------------------------------
4
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
5
+
6
+@media print {
7
+
8
+  * {
9
+    text-shadow: none !important;
10
+    color: #000 !important; // Black prints faster: h5bp.com/s
11
+    background: transparent !important;
12
+    box-shadow: none !important;
13
+  }
14
+
15
+  a,
16
+  a:visited {
17
+    text-decoration: underline;
18
+  }
19
+
20
+  a[href]:after {
21
+    content: " (" attr(href) ")";
22
+  }
23
+
24
+  abbr[title]:after {
25
+    content: " (" attr(title) ")";
26
+  }
27
+
28
+  // Don't show links for images, or javascript/internal links
29
+  a[href^="javascript:"]:after,
30
+  a[href^="#"]:after {
31
+    content: "";
32
+  }
33
+
34
+  pre,
35
+  blockquote {
36
+    border: 1px solid #999;
37
+    page-break-inside: avoid;
38
+  }
39
+
40
+  thead {
41
+    display: table-header-group; // h5bp.com/t
42
+  }
43
+
44
+  tr,
45
+  img {
46
+    page-break-inside: avoid;
47
+  }
48
+
49
+  img {
50
+    max-width: 100% !important;
51
+  }
52
+
53
+  p,
54
+  h2,
55
+  h3 {
56
+    orphans: 3;
57
+    widows: 3;
58
+  }
59
+
60
+  h2,
61
+  h3 {
62
+    page-break-after: avoid;
63
+  }
64
+
65
+  // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
66
+  // Once fixed, we can just straight up remove this.
67
+  select {
68
+    background: #fff !important;
69
+  }
70
+
71
+  // Bootstrap components
72
+  .navbar {
73
+    display: none;
74
+  }
75
+  .table {
76
+    td,
77
+    th {
78
+      background-color: #fff !important;
79
+    }
80
+  }
81
+  .btn,
82
+  .dropup > .btn {
83
+    > .caret {
84
+      border-top-color: #000 !important;
85
+    }
86
+  }
87
+  .label {
88
+    border: 1px solid #000;
89
+  }
90
+
91
+  .table {
92
+    border-collapse: collapse !important;
93
+  }
94
+  .table-bordered {
95
+    th,
96
+    td {
97
+      border: 1px solid #ddd !important;
98
+    }
99
+  }
100
+
101
+}

+ 105
- 0
searx/static/oscar/less/bootstrap/progress-bars.less 查看文件

@@ -0,0 +1,105 @@
1
+//
2
+// Progress bars
3
+// --------------------------------------------------
4
+
5
+
6
+// Bar animations
7
+// -------------------------
8
+
9
+// WebKit
10
+@-webkit-keyframes progress-bar-stripes {
11
+  from  { background-position: 40px 0; }
12
+  to    { background-position: 0 0; }
13
+}
14
+
15
+// Spec and IE10+
16
+@keyframes progress-bar-stripes {
17
+  from  { background-position: 40px 0; }
18
+  to    { background-position: 0 0; }
19
+}
20
+
21
+
22
+
23
+// Bar itself
24
+// -------------------------
25
+
26
+// Outer container
27
+.progress {
28
+  overflow: hidden;
29
+  height: @line-height-computed;
30
+  margin-bottom: @line-height-computed;
31
+  background-color: @progress-bg;
32
+  border-radius: @border-radius-base;
33
+  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
34
+}
35
+
36
+// Bar of progress
37
+.progress-bar {
38
+  float: left;
39
+  width: 0%;
40
+  height: 100%;
41
+  font-size: @font-size-small;
42
+  line-height: @line-height-computed;
43
+  color: @progress-bar-color;
44
+  text-align: center;
45
+  background-color: @progress-bar-bg;
46
+  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
47
+  .transition(width .6s ease);
48
+}
49
+
50
+// Striped bars
51
+//
52
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
53
+// `.progress-bar-striped` class, which you just add to an existing
54
+// `.progress-bar`.
55
+.progress-striped .progress-bar,
56
+.progress-bar-striped {
57
+  #gradient > .striped();
58
+  background-size: 40px 40px;
59
+}
60
+
61
+// Call animation for the active one
62
+//
63
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
64
+// `.progress-bar.active` approach.
65
+.progress.active .progress-bar,
66
+.progress-bar.active {
67
+  .animation(progress-bar-stripes 2s linear infinite);
68
+}
69
+
70
+// Account for lower percentages
71
+.progress-bar {
72
+  &[aria-valuenow="1"],
73
+  &[aria-valuenow="2"] {
74
+    min-width: 30px;
75
+  }
76
+
77
+  &[aria-valuenow="0"] {
78
+    color: @gray-light;
79
+    min-width: 30px;
80
+    background-color: transparent;
81
+    background-image: none;
82
+    box-shadow: none;
83
+  }
84
+}
85
+
86
+
87
+
88
+// Variations
89
+// -------------------------
90
+
91
+.progress-bar-success {
92
+  .progress-bar-variant(@progress-bar-success-bg);
93
+}
94
+
95
+.progress-bar-info {
96
+  .progress-bar-variant(@progress-bar-info-bg);
97
+}
98
+
99
+.progress-bar-warning {
100
+  .progress-bar-variant(@progress-bar-warning-bg);
101
+}
102
+
103
+.progress-bar-danger {
104
+  .progress-bar-variant(@progress-bar-danger-bg);
105
+}

+ 34
- 0
searx/static/oscar/less/bootstrap/responsive-embed.less 查看文件

@@ -0,0 +1,34 @@
1
+// Embeds responsive
2
+//
3
+// Credit: Nicolas Gallagher and SUIT CSS.
4
+
5
+.embed-responsive {
6
+  position: relative;
7
+  display: block;
8
+  height: 0;
9
+  padding: 0;
10
+  overflow: hidden;
11
+
12
+  .embed-responsive-item,
13
+  iframe,
14
+  embed,
15
+  object {
16
+    position: absolute;
17
+    top: 0;
18
+    left: 0;
19
+    bottom: 0;
20
+    height: 100%;
21
+    width: 100%;
22
+    border: 0;
23
+  }
24
+
25
+  // Modifier class for 16:9 aspect ratio
26
+  &.embed-responsive-16by9 {
27
+    padding-bottom: 56.25%;
28
+  }
29
+
30
+  // Modifier class for 4:3 aspect ratio
31
+  &.embed-responsive-4by3 {
32
+    padding-bottom: 75%;
33
+  }
34
+}

+ 194
- 0
searx/static/oscar/less/bootstrap/responsive-utilities.less 查看文件

@@ -0,0 +1,194 @@
1
+//
2
+// Responsive: Utility classes
3
+// --------------------------------------------------
4
+
5
+
6
+// IE10 in Windows (Phone) 8
7
+//
8
+// Support for responsive views via media queries is kind of borked in IE10, for
9
+// Surface/desktop in split view and for Windows Phone 8. This particular fix
10
+// must be accompanied by a snippet of JavaScript to sniff the user agent and
11
+// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
12
+// our Getting Started page for more information on this bug.
13
+//
14
+// For more information, see the following:
15
+//
16
+// Issue: https://github.com/twbs/bootstrap/issues/10497
17
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
18
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
19
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
20
+
21
+@-ms-viewport {
22
+  width: device-width;
23
+}
24
+
25
+
26
+// Visibility utilities
27
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
28
+.visible-xs,
29
+.visible-sm,
30
+.visible-md,
31
+.visible-lg {
32
+  .responsive-invisibility();
33
+}
34
+
35
+.visible-xs-block,
36
+.visible-xs-inline,
37
+.visible-xs-inline-block,
38
+.visible-sm-block,
39
+.visible-sm-inline,
40
+.visible-sm-inline-block,
41
+.visible-md-block,
42
+.visible-md-inline,
43
+.visible-md-inline-block,
44
+.visible-lg-block,
45
+.visible-lg-inline,
46
+.visible-lg-inline-block {
47
+  display: none !important;
48
+}
49
+
50
+.visible-xs {
51
+  @media (max-width: @screen-xs-max) {
52
+    .responsive-visibility();
53
+  }
54
+}
55
+.visible-xs-block {
56
+  @media (max-width: @screen-xs-max) {
57
+    display: block !important;
58
+  }
59
+}
60
+.visible-xs-inline {
61
+  @media (max-width: @screen-xs-max) {
62
+    display: inline !important;
63
+  }
64
+}
65
+.visible-xs-inline-block {
66
+  @media (max-width: @screen-xs-max) {
67
+    display: inline-block !important;
68
+  }
69
+}
70
+
71
+.visible-sm {
72
+  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
73
+    .responsive-visibility();
74
+  }
75
+}
76
+.visible-sm-block {
77
+  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
78
+    display: block !important;
79
+  }
80
+}
81
+.visible-sm-inline {
82
+  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
83
+    display: inline !important;
84
+  }
85
+}
86
+.visible-sm-inline-block {
87
+  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
88
+    display: inline-block !important;
89
+  }
90
+}
91
+
92
+.visible-md {
93
+  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
94
+    .responsive-visibility();
95
+  }
96
+}
97
+.visible-md-block {
98
+  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
99
+    display: block !important;
100
+  }
101
+}
102
+.visible-md-inline {
103
+  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
104
+    display: inline !important;
105
+  }
106
+}
107
+.visible-md-inline-block {
108
+  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
109
+    display: inline-block !important;
110
+  }
111
+}
112
+
113
+.visible-lg {
114
+  @media (min-width: @screen-lg-min) {
115
+    .responsive-visibility();
116
+  }
117
+}
118
+.visible-lg-block {
119
+  @media (min-width: @screen-lg-min) {
120
+    display: block !important;
121
+  }
122
+}
123
+.visible-lg-inline {
124
+  @media (min-width: @screen-lg-min) {
125
+    display: inline !important;
126
+  }
127
+}
128
+.visible-lg-inline-block {
129
+  @media (min-width: @screen-lg-min) {
130
+    display: inline-block !important;
131
+  }
132
+}
133
+
134
+.hidden-xs {
135
+  @media (max-width: @screen-xs-max) {
136
+    .responsive-invisibility();
137
+  }
138
+}
139
+.hidden-sm {
140
+  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
141
+    .responsive-invisibility();
142
+  }
143
+}
144
+.hidden-md {
145
+  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
146
+    .responsive-invisibility();
147
+  }
148
+}
149
+.hidden-lg {
150
+  @media (min-width: @screen-lg-min) {
151
+    .responsive-invisibility();
152
+  }
153
+}
154
+
155
+
156
+// Print utilities
157
+//
158
+// Media queries are placed on the inside to be mixin-friendly.
159
+
160
+// Note: Deprecated .visible-print as of v3.2.0
161
+.visible-print {
162
+  .responsive-invisibility();
163
+
164
+  @media print {
165
+    .responsive-visibility();
166
+  }
167
+}
168
+.visible-print-block {
169
+  display: none !important;
170
+
171
+  @media print {
172
+    display: block !important;
173
+  }
174
+}
175
+.visible-print-inline {
176
+  display: none !important;
177
+
178
+  @media print {
179
+    display: inline !important;
180
+  }
181
+}
182
+.visible-print-inline-block {
183
+  display: none !important;
184
+
185
+  @media print {
186
+    display: inline-block !important;
187
+  }
188
+}
189
+
190
+.hidden-print {
191
+  @media print {
192
+    .responsive-invisibility();
193
+  }
194
+}

+ 150
- 0
searx/static/oscar/less/bootstrap/scaffolding.less 查看文件

@@ -0,0 +1,150 @@
1
+//
2
+// Scaffolding
3
+// --------------------------------------------------
4
+
5
+
6
+// Reset the box-sizing
7
+//
8
+// Heads up! This reset may cause conflicts with some third-party widgets.
9
+// For recommendations on resolving such conflicts, see
10
+// http://getbootstrap.com/getting-started/#third-box-sizing
11
+* {
12
+  .box-sizing(border-box);
13
+}
14
+*:before,
15
+*:after {
16
+  .box-sizing(border-box);
17
+}
18
+
19
+
20
+// Body reset
21
+
22
+html {
23
+  font-size: 10px;
24
+  -webkit-tap-highlight-color: rgba(0,0,0,0);
25
+}
26
+
27
+body {
28
+  font-family: @font-family-base;
29
+  font-size: @font-size-base;
30
+  line-height: @line-height-base;
31
+  color: @text-color;
32
+  background-color: @body-bg;
33
+}
34
+
35
+// Reset fonts for relevant elements
36
+input,
37
+button,
38
+select,
39
+textarea {
40
+  font-family: inherit;
41
+  font-size: inherit;
42
+  line-height: inherit;
43
+}
44
+
45
+
46
+// Links
47
+
48
+a {
49
+  color: @link-color;
50
+  text-decoration: none;
51
+
52
+  &:hover,
53
+  &:focus {
54
+    color: @link-hover-color;
55
+    text-decoration: underline;
56
+  }
57
+
58
+  &:focus {
59
+    .tab-focus();
60
+  }
61
+}
62
+
63
+
64
+// Figures
65
+//
66
+// We reset this here because previously Normalize had no `figure` margins. This
67
+// ensures we don't break anyone's use of the element.
68
+
69
+figure {
70
+  margin: 0;
71
+}
72
+
73
+
74
+// Images
75
+
76
+img {
77
+  vertical-align: middle;
78
+}
79
+
80
+// Responsive images (ensure images don't scale beyond their parents)
81
+.img-responsive {
82
+  .img-responsive();
83
+}
84
+
85
+// Rounded corners
86
+.img-rounded {
87
+  border-radius: @border-radius-large;
88
+}
89
+
90
+// Image thumbnails
91
+//
92
+// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
93
+.img-thumbnail {
94
+  padding: @thumbnail-padding;
95
+  line-height: @line-height-base;
96
+  background-color: @thumbnail-bg;
97
+  border: 1px solid @thumbnail-border;
98
+  border-radius: @thumbnail-border-radius;
99
+  .transition(all .2s ease-in-out);
100
+
101
+  // Keep them at most 100% wide
102
+  .img-responsive(inline-block);
103
+}
104
+
105
+// Perfect circle
106
+.img-circle {
107
+  border-radius: 50%; // set radius in percents
108
+}
109
+
110
+
111
+// Horizontal rules
112
+
113
+hr {
114
+  margin-top:    @line-height-computed;
115
+  margin-bottom: @line-height-computed;
116
+  border: 0;
117
+  border-top: 1px solid @hr-border;
118
+}
119
+
120
+
121
+// Only display content to screen readers
122
+//
123
+// See: http://a11yproject.com/posts/how-to-hide-content/
124
+
125
+.sr-only {
126
+  position: absolute;
127
+  width: 1px;
128
+  height: 1px;
129
+  margin: -1px;
130
+  padding: 0;
131
+  overflow: hidden;
132
+  clip: rect(0,0,0,0);
133
+  border: 0;
134
+}
135
+
136
+// Use in conjunction with .sr-only to only display content when it's focused.
137
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
138
+// Credit: HTML5 Boilerplate
139
+
140
+.sr-only-focusable {
141
+  &:active,
142
+  &:focus {
143
+    position: static;
144
+    width: auto;
145
+    height: auto;
146
+    margin: 0;
147
+    overflow: visible;
148
+    clip: auto;
149
+  }
150
+}

+ 233
- 0
searx/static/oscar/less/bootstrap/tables.less 查看文件

@@ -0,0 +1,233 @@
1
+//
2
+// Tables
3
+// --------------------------------------------------
4
+
5
+
6
+table {
7
+  background-color: @table-bg;
8
+}
9
+th {
10
+  text-align: left;
11
+}
12
+
13
+
14
+// Baseline styles
15
+
16
+.table {
17
+  width: 100%;
18
+  max-width: 100%;
19
+  margin-bottom: @line-height-computed;
20
+  // Cells
21
+  > thead,
22
+  > tbody,
23
+  > tfoot {
24
+    > tr {
25
+      > th,
26
+      > td {
27
+        padding: @table-cell-padding;
28
+        line-height: @line-height-base;
29
+        vertical-align: top;
30
+        border-top: 1px solid @table-border-color;
31
+      }
32
+    }
33
+  }
34
+  // Bottom align for column headings
35
+  > thead > tr > th {
36
+    vertical-align: bottom;
37
+    border-bottom: 2px solid @table-border-color;
38
+  }
39
+  // Remove top border from thead by default
40
+  > caption + thead,
41
+  > colgroup + thead,
42
+  > thead:first-child {
43
+    > tr:first-child {
44
+      > th,
45
+      > td {
46
+        border-top: 0;
47
+      }
48
+    }
49
+  }
50
+  // Account for multiple tbody instances
51
+  > tbody + tbody {
52
+    border-top: 2px solid @table-border-color;
53
+  }
54
+
55
+  // Nesting
56
+  .table {
57
+    background-color: @body-bg;
58
+  }
59
+}
60
+
61
+
62
+// Condensed table w/ half padding
63
+
64
+.table-condensed {
65
+  > thead,
66
+  > tbody,
67
+  > tfoot {
68
+    > tr {
69
+      > th,
70
+      > td {
71
+        padding: @table-condensed-cell-padding;
72
+      }
73
+    }
74
+  }
75
+}
76
+
77
+
78
+// Bordered version
79
+//
80
+// Add borders all around the table and between all the columns.
81
+
82
+.table-bordered {
83
+  border: 1px solid @table-border-color;
84
+  > thead,
85
+  > tbody,
86
+  > tfoot {
87
+    > tr {
88
+      > th,
89
+      > td {
90
+        border: 1px solid @table-border-color;
91
+      }
92
+    }
93
+  }
94
+  > thead > tr {
95
+    > th,
96
+    > td {
97
+      border-bottom-width: 2px;
98
+    }
99
+  }
100
+}
101
+
102
+
103
+// Zebra-striping
104
+//
105
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
106
+
107
+.table-striped {
108
+  > tbody > tr:nth-child(odd) {
109
+    > td,
110
+    > th {
111
+      background-color: @table-bg-accent;
112
+    }
113
+  }
114
+}
115
+
116
+
117
+// Hover effect
118
+//
119
+// Placed here since it has to come after the potential zebra striping
120
+
121
+.table-hover {
122
+  > tbody > tr:hover {
123
+    > td,
124
+    > th {
125
+      background-color: @table-bg-hover;
126
+    }
127
+  }
128
+}
129
+
130
+
131
+// Table cell sizing
132
+//
133
+// Reset default table behavior
134
+
135
+table col[class*="col-"] {
136
+  position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
137
+  float: none;
138
+  display: table-column;
139
+}
140
+table {
141
+  td,
142
+  th {
143
+    &[class*="col-"] {
144
+      position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
145
+      float: none;
146
+      display: table-cell;
147
+    }
148
+  }
149
+}
150
+
151
+
152
+// Table backgrounds
153
+//
154
+// Exact selectors below required to override `.table-striped` and prevent
155
+// inheritance to nested tables.
156
+
157
+// Generate the contextual variants
158
+.table-row-variant(active; @table-bg-active);
159
+.table-row-variant(success; @state-success-bg);
160
+.table-row-variant(info; @state-info-bg);
161
+.table-row-variant(warning; @state-warning-bg);
162
+.table-row-variant(danger; @state-danger-bg);
163
+
164
+
165
+// Responsive tables
166
+//
167
+// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
168
+// by enabling horizontal scrolling. Only applies <768px. Everything above that
169
+// will display normally.
170
+
171
+.table-responsive {
172
+  @media screen and (max-width: @screen-xs-max) {
173
+    width: 100%;
174
+    margin-bottom: (@line-height-computed * 0.75);
175
+    overflow-y: hidden;
176
+    overflow-x: auto;
177
+    -ms-overflow-style: -ms-autohiding-scrollbar;
178
+    border: 1px solid @table-border-color;
179
+    -webkit-overflow-scrolling: touch;
180
+
181
+    // Tighten up spacing
182
+    > .table {
183
+      margin-bottom: 0;
184
+
185
+      // Ensure the content doesn't wrap
186
+      > thead,
187
+      > tbody,
188
+      > tfoot {
189
+        > tr {
190
+          > th,
191
+          > td {
192
+            white-space: nowrap;
193
+          }
194
+        }
195
+      }
196
+    }
197
+
198
+    // Special overrides for the bordered tables
199
+    > .table-bordered {
200
+      border: 0;
201
+
202
+      // Nuke the appropriate borders so that the parent can handle them
203
+      > thead,
204
+      > tbody,
205
+      > tfoot {
206
+        > tr {
207
+          > th:first-child,
208
+          > td:first-child {
209
+            border-left: 0;
210
+          }
211
+          > th:last-child,
212
+          > td:last-child {
213
+            border-right: 0;
214
+          }
215
+        }
216
+      }
217
+
218
+      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
219
+      // chances are there will be only one `tr` in a `thead` and that would
220
+      // remove the border altogether.
221
+      > tbody,
222
+      > tfoot {
223
+        > tr:last-child {
224
+          > th,
225
+          > td {
226
+            border-bottom: 0;
227
+          }
228
+        }
229
+      }
230
+
231
+    }
232
+  }
233
+}

+ 258
- 0
searx/static/oscar/less/bootstrap/theme.less 查看文件

@@ -0,0 +1,258 @@
1
+
2
+//
3
+// Load core variables and mixins
4
+// --------------------------------------------------
5
+
6
+@import "variables.less";
7
+@import "mixins.less";
8
+
9
+
10
+
11
+//
12
+// Buttons
13
+// --------------------------------------------------
14
+
15
+// Common styles
16
+.btn-default,
17
+.btn-primary,
18
+.btn-success,
19
+.btn-info,
20
+.btn-warning,
21
+.btn-danger {
22
+  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
23
+  @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
24
+  .box-shadow(@shadow);
25
+
26
+  // Reset the shadow
27
+  &:active,
28
+  &.active {
29
+    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
30
+  }
31
+}
32
+
33
+// Mixin for generating new styles
34
+.btn-styles(@btn-color: #555) {
35
+  #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
36
+  .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
37
+  background-repeat: repeat-x;
38
+  border-color: darken(@btn-color, 14%);
39
+
40
+  &:hover,
41
+  &:focus  {
42
+    background-color: darken(@btn-color, 12%);
43
+    background-position: 0 -15px;
44
+  }
45
+
46
+  &:active,
47
+  &.active {
48
+    background-color: darken(@btn-color, 12%);
49
+    border-color: darken(@btn-color, 14%);
50
+  }
51
+
52
+  &:disabled,
53
+  &[disabled] {
54
+    background-color: darken(@btn-color, 12%);
55
+    background-image: none;
56
+  }
57
+}
58
+
59
+// Common styles
60
+.btn {
61
+  // Remove the gradient for the pressed/active state
62
+  &:active,
63
+  &.active {
64
+    background-image: none;
65
+  }
66
+}
67
+
68
+// Apply the mixin to the buttons
69
+.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
70
+.btn-primary { .btn-styles(@btn-primary-bg); }
71
+.btn-success { .btn-styles(@btn-success-bg); }
72
+.btn-info    { .btn-styles(@btn-info-bg); }
73
+.btn-warning { .btn-styles(@btn-warning-bg); }
74
+.btn-danger  { .btn-styles(@btn-danger-bg); }
75
+
76
+
77
+
78
+//
79
+// Images
80
+// --------------------------------------------------
81
+
82
+.thumbnail,
83
+.img-thumbnail {
84
+  .box-shadow(0 1px 2px rgba(0,0,0,.075));
85
+}
86
+
87
+
88
+
89
+//
90
+// Dropdowns
91
+// --------------------------------------------------
92
+
93
+.dropdown-menu > li > a:hover,
94
+.dropdown-menu > li > a:focus {
95
+  #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
96
+  background-color: darken(@dropdown-link-hover-bg, 5%);
97
+}
98
+.dropdown-menu > .active > a,
99
+.dropdown-menu > .active > a:hover,
100
+.dropdown-menu > .active > a:focus {
101
+  #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
102
+  background-color: darken(@dropdown-link-active-bg, 5%);
103
+}
104
+
105
+
106
+
107
+//
108
+// Navbar
109
+// --------------------------------------------------
110
+
111
+// Default navbar
112
+.navbar-default {
113
+  #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
114
+  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
115
+  border-radius: @navbar-border-radius;
116
+  @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
117
+  .box-shadow(@shadow);
118
+
119
+  .navbar-nav > .active > a {
120
+    #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));
121
+    .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
122
+  }
123
+}
124
+.navbar-brand,
125
+.navbar-nav > li > a {
126
+  text-shadow: 0 1px 0 rgba(255,255,255,.25);
127
+}
128
+
129
+// Inverted navbar
130
+.navbar-inverse {
131
+  #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
132
+  .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
133
+
134
+  .navbar-nav > .active > a {
135
+    #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));
136
+    .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
137
+  }
138
+
139
+  .navbar-brand,
140
+  .navbar-nav > li > a {
141
+    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
142
+  }
143
+}
144
+
145
+// Undo rounded corners in static and fixed navbars
146
+.navbar-static-top,
147
+.navbar-fixed-top,
148
+.navbar-fixed-bottom {
149
+  border-radius: 0;
150
+}
151
+
152
+
153
+
154
+//
155
+// Alerts
156
+// --------------------------------------------------
157
+
158
+// Common styles
159
+.alert {
160
+  text-shadow: 0 1px 0 rgba(255,255,255,.2);
161
+  @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
162
+  .box-shadow(@shadow);
163
+}
164
+
165
+// Mixin for generating new styles
166
+.alert-styles(@color) {
167
+  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
168
+  border-color: darken(@color, 15%);
169
+}
170
+
171
+// Apply the mixin to the alerts
172
+.alert-success    { .alert-styles(@alert-success-bg); }
173
+.alert-info       { .alert-styles(@alert-info-bg); }
174
+.alert-warning    { .alert-styles(@alert-warning-bg); }
175
+.alert-danger     { .alert-styles(@alert-danger-bg); }
176
+
177
+
178
+
179
+//
180
+// Progress bars
181
+// --------------------------------------------------
182
+
183
+// Give the progress background some depth
184
+.progress {
185
+  #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
186
+}
187
+
188
+// Mixin for generating new styles
189
+.progress-bar-styles(@color) {
190
+  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
191
+}
192
+
193
+// Apply the mixin to the progress bars
194
+.progress-bar            { .progress-bar-styles(@progress-bar-bg); }
195
+.progress-bar-success    { .progress-bar-styles(@progress-bar-success-bg); }
196
+.progress-bar-info       { .progress-bar-styles(@progress-bar-info-bg); }
197
+.progress-bar-warning    { .progress-bar-styles(@progress-bar-warning-bg); }
198
+.progress-bar-danger     { .progress-bar-styles(@progress-bar-danger-bg); }
199
+
200
+// Reset the striped class because our mixins don't do multiple gradients and
201
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
202
+.progress-bar-striped {
203
+  #gradient > .striped();
204
+}
205
+
206
+
207
+//
208
+// List groups
209
+// --------------------------------------------------
210
+
211
+.list-group {
212
+  border-radius: @border-radius-base;
213
+  .box-shadow(0 1px 2px rgba(0,0,0,.075));
214
+}
215
+.list-group-item.active,
216
+.list-group-item.active:hover,
217
+.list-group-item.active:focus {
218
+  text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
219
+  #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
220
+  border-color: darken(@list-group-active-border, 7.5%);
221
+}
222
+
223
+
224
+
225
+//
226
+// Panels
227
+// --------------------------------------------------
228
+
229
+// Common styles
230
+.panel {
231
+  .box-shadow(0 1px 2px rgba(0,0,0,.05));
232
+}
233
+
234
+// Mixin for generating new styles
235
+.panel-heading-styles(@color) {
236
+  #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
237
+}
238
+
239
+// Apply the mixin to the panel headings only
240
+.panel-default > .panel-heading   { .panel-heading-styles(@panel-default-heading-bg); }
241
+.panel-primary > .panel-heading   { .panel-heading-styles(@panel-primary-heading-bg); }
242
+.panel-success > .panel-heading   { .panel-heading-styles(@panel-success-heading-bg); }
243
+.panel-info > .panel-heading      { .panel-heading-styles(@panel-info-heading-bg); }
244
+.panel-warning > .panel-heading   { .panel-heading-styles(@panel-warning-heading-bg); }
245
+.panel-danger > .panel-heading    { .panel-heading-styles(@panel-danger-heading-bg); }
246
+
247
+
248
+
249
+//
250
+// Wells
251
+// --------------------------------------------------
252
+
253
+.well {
254
+  #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
255
+  border-color: darken(@well-bg, 10%);
256
+  @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
257
+  .box-shadow(@shadow);
258
+}

+ 0
- 0
searx/static/oscar/less/bootstrap/thumbnails.less 查看文件


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