global.css 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. html#stylus #header *:not(#\1transition-suppressor) {
  2. /* This suppresses a bug in all? browsers: they apply transitions during page load.
  3. * Using an increased specificity to override sane selectors in user styles.
  4. * Using \1 to simplify js code because \0 is converted to \xFFFD per spec. */
  5. transition: none !important;
  6. }
  7. body {
  8. font: normal 12px Arial, system-ui, sans-serif;
  9. }
  10. body:lang(ja) {
  11. font-family: Arial, 'Meiryo UI', 'MS Gothic', system-ui, sans-serif;
  12. }
  13. body:lang(zh-CN) {
  14. font-family: Arial, 'Microsoft YaHei UI', 'Microsoft YaHei', system-ui, sans-serif;
  15. }
  16. body:lang(zh-TW),
  17. body:lang(zh-HK) {
  18. font-family: Arial, 'Microsoft JhengHei UI', 'Microsoft JhengHei', system-ui, sans-serif;
  19. }
  20. button {
  21. -webkit-appearance: none;
  22. -moz-appearance: none;
  23. user-select: none;
  24. max-width: 100%;
  25. white-space: nowrap;
  26. overflow: hidden;
  27. text-overflow: ellipsis;
  28. padding: 2px 7px;
  29. border: 1px solid hsl(0, 0%, 62%);
  30. font: inherit;
  31. font-size: 13px;
  32. color: #000;
  33. background-color: hsl(0, 0%, 100%);
  34. background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXTHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QwGBBwIHvKt6QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAL0lEQVQI12NoaGgQZ2JgYGBkYmBgYGZiYGBggrMY4VxsYsyoskQQCB2MWAxAMhkADVECDhlW9CoAAAAASUVORK5CYII=');
  35. background-repeat: repeat-x;
  36. background-size: 100% 100%;
  37. transition: background-color .25s, border-color .25s;
  38. }
  39. button:not(:disabled):hover {
  40. background-color: hsl(0, 0%, 95%);
  41. border-color: hsl(0, 0%, 52%);
  42. }
  43. button:active {
  44. background-color: hsl(0, 0%, 95%);
  45. border-color: hsl(0, 0%, 52%);
  46. background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAYAAADtlXTHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QwJARIWJNZvuQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAMElEQVQI12NoaGgIZmJgYPjLxMDA8I+JgYHhP5z1Dy7xH5X7jxQCzWQ0A9DEILYBABm5HtJk2jPHAAAAAElFTkSuQmCC');
  47. background-repeat: repeat-x;
  48. background-size: 100% 100%;
  49. }
  50. /* For some odd reason these hovers appear lighter than all other button hovers in every browser */
  51. #message-box-buttons button:not(:disabled):hover {
  52. background-color: hsl(0, 0%, 90%);
  53. border-color: hsl(0, 0%, 50%);
  54. }
  55. input {
  56. font: inherit;
  57. border: 1px solid hsl(0, 0%, 66%);
  58. transition: border-color .1s, box-shadow .1s;
  59. }
  60. input:not([type]),
  61. input[type=search] {
  62. background: #fff;
  63. color: #000;
  64. height: 22px;
  65. min-height: 22px!important;
  66. line-height: 22px;
  67. padding: 0 3px;
  68. border: 1px solid hsl(0, 0%, 66%);
  69. }
  70. .svg-icon {
  71. cursor: pointer;
  72. vertical-align: middle;
  73. transition: fill .5s;
  74. width: 20px;
  75. height: 20px;
  76. fill: #666;
  77. }
  78. .svg-icon:hover {
  79. fill: #000;
  80. }
  81. .svg-icon.info {
  82. width: 14px;
  83. height: 16px;
  84. margin-left: .5ex;
  85. }
  86. .svg-icon.config {
  87. width: 16px;
  88. height: 16px;
  89. }
  90. .svg-icon.checked {
  91. position: absolute;
  92. height: 8px;
  93. width: 8px;
  94. display: none;
  95. fill: #000;
  96. margin: 2px 0 0 2px;
  97. }
  98. input[type="checkbox"]:not(.slider):checked + .svg-icon.checked {
  99. display: inline-flex;
  100. transition: fill .1s;
  101. }
  102. input[type="checkbox"]:not(.slider) {
  103. -webkit-appearance: none;
  104. -moz-appearance: none;
  105. position: absolute;
  106. left: 0;
  107. top: 0;
  108. border: 1px solid hsl(0, 0%, 46%);
  109. height: 12px;
  110. width: 12px;
  111. display: inline-flex;
  112. border-radius: 2px;
  113. background-color: hsla(0, 0%, 0%, .1);
  114. margin: 0;
  115. transition: background-color .1s, border-color .1s;
  116. }
  117. input[type="checkbox"]:not(.slider):hover {
  118. border-color: hsl(0, 0%, 32%);
  119. background-color: hsl(0, 0%, 82%);
  120. }
  121. input[type="checkbox"]:not(.slider):checked + .svg-icon.checked {
  122. position: absolute;
  123. top: 0;
  124. left: 0;
  125. pointer-events: none;
  126. }
  127. input[type="checkbox"]:not(.slider):disabled {
  128. background-color: transparent;
  129. border-color: hsl(0, 0%, 50%);
  130. }
  131. input[type="checkbox"]:not(.slider):disabled + .svg-icon.checked {
  132. fill: hsl(0, 0%, 50%);
  133. }
  134. input[type="checkbox"]:not(.slider):disabled + .svg-icon.checked + span {
  135. color: hsl(0, 0%, 50%);
  136. }
  137. label {
  138. transition: color .1s;
  139. }
  140. select {
  141. -moz-appearance: none;
  142. -webkit-appearance: none;
  143. height: 22px;
  144. font: inherit;
  145. color: #000;
  146. background-color: transparent;
  147. border: 1px solid hsl(0, 0%, 66%);
  148. padding: 0 20px 0 6px;
  149. transition: color .5s;
  150. }
  151. .select-wrapper,
  152. .select-resizer {
  153. display: inline-flex!important;
  154. cursor: default;
  155. position: relative;
  156. }
  157. .svg-icon.select-arrow {
  158. pointer-events: none;
  159. cursor: default;
  160. display: inline-flex;
  161. height: 14px;
  162. width: 14px;
  163. fill: #000;
  164. position: absolute;
  165. top: 4px;
  166. right: 4px;
  167. transition: fill .5s;
  168. }
  169. input[type="radio"] {
  170. -webkit-appearance: none;
  171. -moz-appearance: none;
  172. background: hsl(0, 0%, 88%);
  173. border-radius: 50%;
  174. border: 1px solid hsl(0, 0%, 60%);
  175. cursor: default;
  176. height: 13px;
  177. width: 13px;
  178. position: relative;
  179. }
  180. input[type="radio"]:after {
  181. content: '';
  182. background-color: transparent;
  183. transform: scale(0);
  184. transform-origin: 50% 50%;
  185. transition: background-color .5s, transform .5s;
  186. border-radius: 50%;
  187. height: 7px;
  188. width: 7px;
  189. left: 2px;
  190. top: 2px;
  191. position: absolute;
  192. }
  193. input[type="radio"]:checked:after {
  194. background-color: hsl(0, 0%, 30%);
  195. transform: scale(1);
  196. }
  197. /* restore disabled state dimming */
  198. button:disabled,
  199. select:disabled,
  200. option:disabled,
  201. select[disabled] > option {
  202. color: graytext;
  203. }
  204. select:disabled + .select-arrow,
  205. select[disabled] + .select-arrow {
  206. fill: hsl(0, 0%, 50%);
  207. }
  208. summary {
  209. -moz-user-select: none;
  210. user-select: none;
  211. }
  212. /* global stuff we use everywhere */
  213. .hidden {
  214. display: none !important;
  215. }
  216. :focus,
  217. .CodeMirror-focused,
  218. /* Allowing click outline on text/search inputs and textareas */
  219. textarea[data-focused-via-click]:focus,
  220. input:not([type])[data-focused-via-click]:focus, /* same as "text" */
  221. input[type="text"][data-focused-via-click]:focus,
  222. input[type="search"][data-focused-via-click]:focus,
  223. input[type="number"][data-focused-via-click]:focus {
  224. /* Using box-shadow instead of the ugly outline in new Chrome */
  225. outline: none;
  226. box-shadow: 0 0 0 1px hsl(180, 100%, 38%), 0 0 3px hsla(180, 100%, 60%, .5);
  227. }
  228. [data-focused-via-click] :focus,
  229. [data-focused-via-click]:focus {
  230. outline: none;
  231. box-shadow: none;
  232. }
  233. @supports (-moz-appearance: none) {
  234. .moz-appearance-bug .svg-icon.checked,
  235. .moz-appearance-bug .onoffswitch input,
  236. .moz-appearance-bug input[type="radio"]:after {
  237. display: none !important;
  238. }
  239. .moz-appearance-bug input[type="checkbox"] {
  240. -moz-appearance: checkbox !important;
  241. }
  242. .moz-appearance-bug input[type="radio"] {
  243. -moz-appearance: radio !important;
  244. }
  245. .firefox select {
  246. padding: 0 20px 0 2px;
  247. line-height: 22px!important;
  248. }
  249. svg {
  250. transform: scale(1); /* de-blur */
  251. }
  252. /* We can customize everything about number inputs except arrows. They're horrible in Linux FF, so we'll hide them unless hovered or focused. */
  253. .firefox.non-windows input[type="number"] {
  254. -moz-appearance: textfield;
  255. background: #fff;
  256. color: #000;
  257. border: 1px solid hsl(0, 0%, 66%);
  258. }
  259. .firefox.non-windows input[type="number"]:not(:disabled):hover,
  260. .firefox.non-windows input[type="number"]:focus {
  261. -moz-appearance: number-input;
  262. }
  263. .firefox.non-windows input[type="color"] {
  264. background: #fff;
  265. border: 1px solid hsl(0, 0%, 66%);
  266. padding: 4px;
  267. }
  268. /* Firefox cannot handle fractions in font-size */
  269. .firefox button:not(.install) {
  270. line-height: 13px;
  271. padding: 3px 7px;
  272. }
  273. .firefox.moz-appearance-bug button:not(.install) {
  274. padding: 2px 4px;
  275. }
  276. }