App.scss 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891
  1. @import './_variables.scss';
  2. #app {
  3. min-height: 100vh;
  4. max-width: 100%;
  5. overflow: hidden;
  6. }
  7. .app-bg-wrapper {
  8. position: fixed;
  9. z-index: -1;
  10. height: 100%;
  11. left: 0;
  12. right: -20px;
  13. background-size: cover;
  14. background-repeat: no-repeat;
  15. background-color: var(--wallpaper);
  16. background-image: var(--body-background-image);
  17. background-position: 50% 50px;
  18. }
  19. i[class^='icon-'] {
  20. user-select: none;
  21. }
  22. h4 {
  23. margin: 0;
  24. }
  25. #content {
  26. box-sizing: border-box;
  27. padding-top: 60px;
  28. margin: auto;
  29. min-height: 100vh;
  30. max-width: 980px;
  31. align-content: flex-start;
  32. }
  33. .underlay {
  34. background-color: rgba(0,0,0,0.15);
  35. background-color: var(--underlay, rgba(0,0,0,0.15));
  36. }
  37. .text-center {
  38. text-align: center;
  39. }
  40. html {
  41. font-size: 14px;
  42. }
  43. body {
  44. overscroll-behavior-y: none;
  45. font-family: sans-serif;
  46. font-family: var(--interfaceFont, sans-serif);
  47. margin: 0;
  48. color: $fallback--text;
  49. color: var(--text, $fallback--text);
  50. max-width: 100vw;
  51. overflow-x: hidden;
  52. -webkit-font-smoothing: antialiased;
  53. -moz-osx-font-smoothing: grayscale;
  54. &.hidden {
  55. display: none;
  56. }
  57. }
  58. a {
  59. text-decoration: none;
  60. color: $fallback--link;
  61. color: var(--link, $fallback--link);
  62. }
  63. .button-default {
  64. user-select: none;
  65. color: $fallback--text;
  66. color: var(--btnText, $fallback--text);
  67. background-color: $fallback--fg;
  68. background-color: var(--btn, $fallback--fg);
  69. border: none;
  70. border-radius: $fallback--btnRadius;
  71. border-radius: var(--btnRadius, $fallback--btnRadius);
  72. cursor: pointer;
  73. box-shadow: $fallback--buttonShadow;
  74. box-shadow: var(--buttonShadow);
  75. font-size: 14px;
  76. font-family: sans-serif;
  77. font-family: var(--interfaceFont, sans-serif);
  78. &.-sublime {
  79. background: transparent;
  80. }
  81. i[class*=icon-],
  82. .svg-inline--fa {
  83. color: $fallback--text;
  84. color: var(--btnText, $fallback--text);
  85. }
  86. &::-moz-focus-inner {
  87. border: none;
  88. }
  89. &:hover {
  90. box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3);
  91. box-shadow: var(--buttonHoverShadow);
  92. }
  93. &:active {
  94. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.3), 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset;
  95. box-shadow: var(--buttonPressedShadow);
  96. color: $fallback--text;
  97. color: var(--btnPressedText, $fallback--text);
  98. background-color: $fallback--fg;
  99. background-color: var(--btnPressed, $fallback--fg);
  100. svg,
  101. i {
  102. color: $fallback--text;
  103. color: var(--btnPressedText, $fallback--text);
  104. }
  105. }
  106. &:disabled {
  107. cursor: not-allowed;
  108. color: $fallback--text;
  109. color: var(--btnDisabledText, $fallback--text);
  110. background-color: $fallback--fg;
  111. background-color: var(--btnDisabled, $fallback--fg);
  112. svg,
  113. i {
  114. color: $fallback--text;
  115. color: var(--btnDisabledText, $fallback--text);
  116. }
  117. }
  118. &.toggled {
  119. color: $fallback--text;
  120. color: var(--btnToggledText, $fallback--text);
  121. background-color: $fallback--fg;
  122. background-color: var(--btnToggled, $fallback--fg);
  123. box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.3), 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset;
  124. box-shadow: var(--buttonPressedShadow);
  125. svg,
  126. i {
  127. color: $fallback--text;
  128. color: var(--btnToggledText, $fallback--text);
  129. }
  130. }
  131. &.danger {
  132. // TODO: add better color variable
  133. color: $fallback--text;
  134. color: var(--alertErrorPanelText, $fallback--text);
  135. background-color: $fallback--alertError;
  136. background-color: var(--alertError, $fallback--alertError);
  137. }
  138. }
  139. .button-unstyled {
  140. background: none;
  141. border: none;
  142. outline: none;
  143. display: inline;
  144. text-align: initial;
  145. font-size: 100%;
  146. font-family: inherit;
  147. padding: 0;
  148. line-height: unset;
  149. cursor: pointer;
  150. box-sizing: content-box;
  151. color: inherit;
  152. &.-link {
  153. color: $fallback--link;
  154. color: var(--link, $fallback--link);
  155. }
  156. &.-fullwidth {
  157. width: 100%;
  158. }
  159. &.-hover-highlight {
  160. &:hover svg {
  161. color: $fallback--lightText;
  162. color: var(--lightText, $fallback--lightText);
  163. }
  164. }
  165. }
  166. input, textarea, .input {
  167. &.unstyled {
  168. border-radius: 0;
  169. background: none;
  170. box-shadow: none;
  171. height: unset;
  172. }
  173. border: none;
  174. border-radius: $fallback--inputRadius;
  175. border-radius: var(--inputRadius, $fallback--inputRadius);
  176. box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px 0px 2px 0px rgba(0, 0, 0, 1) inset;
  177. box-shadow: var(--inputShadow);
  178. background-color: $fallback--fg;
  179. background-color: var(--input, $fallback--fg);
  180. color: $fallback--lightText;
  181. color: var(--inputText, $fallback--lightText);
  182. font-family: sans-serif;
  183. font-family: var(--inputFont, sans-serif);
  184. font-size: 14px;
  185. margin: 0;
  186. box-sizing: border-box;
  187. display: inline-block;
  188. position: relative;
  189. height: 28px;
  190. line-height: 16px;
  191. hyphens: none;
  192. padding: 8px .5em;
  193. &:disabled, &[disabled=disabled], &.disabled {
  194. cursor: not-allowed;
  195. opacity: 0.5;
  196. }
  197. &[type=range] {
  198. background: none;
  199. border: none;
  200. margin: 0;
  201. box-shadow: none;
  202. flex: 1;
  203. }
  204. &[type=radio] {
  205. display: none;
  206. &:checked + label::before {
  207. box-shadow: 0px 0px 2px black inset, 0px 0px 0px 4px $fallback--fg inset;
  208. box-shadow: var(--inputShadow), 0px 0px 0px 4px var(--fg, $fallback--fg) inset;
  209. background-color: var(--accent, $fallback--link);
  210. }
  211. &:disabled {
  212. &,
  213. & + label,
  214. & + label::before {
  215. opacity: .5;
  216. }
  217. }
  218. + label::before {
  219. flex-shrink: 0;
  220. display: inline-block;
  221. content: '';
  222. transition: box-shadow 200ms;
  223. width: 1.1em;
  224. height: 1.1em;
  225. border-radius: 100%; // Radio buttons should always be circle
  226. box-shadow: 0px 0px 2px black inset;
  227. box-shadow: var(--inputShadow);
  228. margin-right: .5em;
  229. background-color: $fallback--fg;
  230. background-color: var(--input, $fallback--fg);
  231. vertical-align: top;
  232. text-align: center;
  233. line-height: 1.1em;
  234. font-size: 1.1em;
  235. box-sizing: border-box;
  236. color: transparent;
  237. overflow: hidden;
  238. box-sizing: border-box;
  239. }
  240. }
  241. &[type=checkbox] {
  242. display: none;
  243. &:checked + label::before {
  244. color: $fallback--text;
  245. color: var(--inputText, $fallback--text);
  246. }
  247. &:disabled {
  248. &,
  249. & + label,
  250. & + label::before {
  251. opacity: .5;
  252. }
  253. }
  254. + label::before {
  255. flex-shrink: 0;
  256. display: inline-block;
  257. content: '✓';
  258. transition: color 200ms;
  259. width: 1.1em;
  260. height: 1.1em;
  261. border-radius: $fallback--checkboxRadius;
  262. border-radius: var(--checkboxRadius, $fallback--checkboxRadius);
  263. box-shadow: 0px 0px 2px black inset;
  264. box-shadow: var(--inputShadow);
  265. margin-right: .5em;
  266. background-color: $fallback--fg;
  267. background-color: var(--input, $fallback--fg);
  268. vertical-align: top;
  269. text-align: center;
  270. line-height: 1.1em;
  271. font-size: 1.1em;
  272. box-sizing: border-box;
  273. color: transparent;
  274. overflow: hidden;
  275. box-sizing: border-box;
  276. }
  277. }
  278. &.resize-height {
  279. resize: vertical;
  280. }
  281. }
  282. option {
  283. color: $fallback--text;
  284. color: var(--text, $fallback--text);
  285. background-color: $fallback--bg;
  286. background-color: var(--bg, $fallback--bg);
  287. }
  288. .hide-number-spinner {
  289. -moz-appearance: textfield;
  290. &[type=number]::-webkit-inner-spin-button,
  291. &[type=number]::-webkit-outer-spin-button {
  292. opacity: 0;
  293. display: none;
  294. }
  295. }
  296. i[class*=icon-], .svg-inline--fa {
  297. color: $fallback--icon;
  298. color: var(--icon, $fallback--icon);
  299. }
  300. .btn-block {
  301. display: block;
  302. width: 100%;
  303. }
  304. .btn-group {
  305. position: relative;
  306. display: inline-flex;
  307. vertical-align: middle;
  308. button {
  309. position: relative;
  310. flex: 1 1 auto;
  311. &:not(:last-child) {
  312. border-top-right-radius: 0;
  313. border-bottom-right-radius: 0;
  314. }
  315. &:not(:first-child) {
  316. border-top-left-radius: 0;
  317. border-bottom-left-radius: 0;
  318. }
  319. }
  320. }
  321. .container {
  322. display: flex;
  323. flex-wrap: wrap;
  324. margin: 0;
  325. padding: 0 10px 0 10px;
  326. }
  327. .auto-size {
  328. flex: 1
  329. }
  330. main-router {
  331. flex: 1;
  332. }
  333. .status.compact {
  334. color: rgba(0, 0, 0, 0.42);
  335. font-weight: 300;
  336. p {
  337. margin: 0;
  338. font-size: 0.8em
  339. }
  340. }
  341. /* Panel */
  342. .panel {
  343. display: flex;
  344. position: relative;
  345. flex-direction: column;
  346. margin: 0.5em;
  347. background-color: $fallback--bg;
  348. background-color: var(--bg, $fallback--bg);
  349. &::after, & {
  350. border-radius: $fallback--panelRadius;
  351. border-radius: var(--panelRadius, $fallback--panelRadius);
  352. }
  353. &::after {
  354. content: '';
  355. position: absolute;
  356. top: 0;
  357. bottom: 0;
  358. left: 0;
  359. right: 0;
  360. pointer-events: none;
  361. box-shadow: 1px 1px 4px rgba(0,0,0,.6);
  362. box-shadow: var(--panelShadow);
  363. }
  364. }
  365. .panel-body:empty::before {
  366. content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations
  367. display: block;
  368. margin: 1em;
  369. text-align: center;
  370. }
  371. .panel-heading {
  372. display: flex;
  373. flex: none;
  374. border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;
  375. border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;
  376. background-size: cover;
  377. padding: .6em .6em;
  378. text-align: left;
  379. line-height: 28px;
  380. color: var(--panelText);
  381. background-color: $fallback--fg;
  382. background-color: var(--panel, $fallback--fg);
  383. align-items: baseline;
  384. box-shadow: var(--panelHeaderShadow);
  385. .title {
  386. flex: 1 0 auto;
  387. font-size: 1.3em;
  388. }
  389. .faint {
  390. background-color: transparent;
  391. color: $fallback--faint;
  392. color: var(--panelFaint, $fallback--faint);
  393. }
  394. .faint-link {
  395. color: $fallback--faint;
  396. color: var(--faintLink, $fallback--faint);
  397. }
  398. .alert {
  399. white-space: nowrap;
  400. text-overflow: ellipsis;
  401. overflow-x: hidden;
  402. }
  403. .button-default,
  404. .alert {
  405. // height: 100%;
  406. line-height: 21px;
  407. min-height: 0;
  408. box-sizing: border-box;
  409. margin: 0;
  410. margin-left: .5em;
  411. min-width: 1px;
  412. align-self: stretch;
  413. }
  414. .button-default {
  415. flex-shrink: 0;
  416. &,
  417. i[class*=icon-] {
  418. color: $fallback--text;
  419. color: var(--btnPanelText, $fallback--text);
  420. }
  421. &:active {
  422. background-color: $fallback--fg;
  423. background-color: var(--btnPressedPanel, $fallback--fg);
  424. color: $fallback--text;
  425. color: var(--btnPressedPanelText, $fallback--text);
  426. }
  427. &:disabled {
  428. color: $fallback--text;
  429. color: var(--btnDisabledPanelText, $fallback--text);
  430. }
  431. &.toggled {
  432. color: $fallback--text;
  433. color: var(--btnToggledPanelText, $fallback--text);
  434. }
  435. }
  436. a,
  437. .-link {
  438. color: $fallback--link;
  439. color: var(--panelLink, $fallback--link)
  440. }
  441. }
  442. .panel-heading.stub {
  443. border-radius: $fallback--panelRadius;
  444. border-radius: var(--panelRadius, $fallback--panelRadius);
  445. }
  446. /* TODO Should remove timeline-footer from here when we refactor panels into
  447. * separate component and utilize slots
  448. */
  449. .panel-footer, .timeline-footer {
  450. display: flex;
  451. border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;
  452. border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);
  453. flex: none;
  454. padding: 0.6em 0.6em;
  455. text-align: left;
  456. line-height: 28px;
  457. align-items: baseline;
  458. border-width: 1px 0 0 0;
  459. border-style: solid;
  460. border-color: var(--border, $fallback--border);
  461. .faint {
  462. color: $fallback--faint;
  463. color: var(--panelFaint, $fallback--faint);
  464. }
  465. a,
  466. .-link {
  467. color: $fallback--link;
  468. color: var(--panelLink, $fallback--link);
  469. }
  470. }
  471. .panel-body > p {
  472. line-height: 18px;
  473. padding: 1em;
  474. margin: 0;
  475. }
  476. .container > * {
  477. min-width: 0px;
  478. }
  479. .fa {
  480. color: grey;
  481. }
  482. nav {
  483. z-index: 1000;
  484. color: var(--topBarText);
  485. background-color: $fallback--fg;
  486. background-color: var(--topBar, $fallback--fg);
  487. color: $fallback--faint;
  488. color: var(--faint, $fallback--faint);
  489. box-shadow: 0px 0px 4px rgba(0,0,0,.6);
  490. box-shadow: var(--topBarShadow);
  491. box-sizing: border-box;
  492. }
  493. .fade-enter-active, .fade-leave-active {
  494. transition: opacity .2s
  495. }
  496. .fade-enter, .fade-leave-active {
  497. opacity: 0
  498. }
  499. .main {
  500. flex-basis: 50%;
  501. flex-grow: 1;
  502. flex-shrink: 1;
  503. }
  504. .sidebar-bounds {
  505. flex: 0;
  506. flex-basis: 35%;
  507. }
  508. .sidebar-flexer {
  509. flex: 1;
  510. flex-basis: 345px;
  511. width: 365px;
  512. }
  513. .mobile-shown {
  514. display: none;
  515. }
  516. @media all and (min-width: 800px) {
  517. body {
  518. overflow-y: scroll;
  519. }
  520. .sidebar-bounds {
  521. overflow: hidden;
  522. max-height: 100vh;
  523. width: 345px;
  524. position: fixed;
  525. margin-top: -10px;
  526. .sidebar-scroller {
  527. height: 96vh;
  528. width: 365px;
  529. padding-top: 10px;
  530. padding-right: 50px;
  531. overflow-x: hidden;
  532. overflow-y: scroll;
  533. }
  534. .sidebar {
  535. width: 345px;
  536. }
  537. }
  538. .sidebar-flexer {
  539. max-height: 96vh;
  540. flex-shrink: 0;
  541. flex-grow: 0;
  542. }
  543. }
  544. .badge {
  545. box-sizing: border-box;
  546. display: inline-block;
  547. border-radius: 99px;
  548. max-width: 10em;
  549. min-width: 1.7em;
  550. height: 1.3em;
  551. padding: 0.15em 0.15em;
  552. vertical-align: middle;
  553. font-weight: normal;
  554. font-style: normal;
  555. font-size: 0.9em;
  556. line-height: 1;
  557. text-align: center;
  558. white-space: nowrap;
  559. overflow: hidden;
  560. text-overflow: ellipsis;
  561. &.badge-notification {
  562. background-color: $fallback--cRed;
  563. background-color: var(--badgeNotification, $fallback--cRed);
  564. color: white;
  565. color: var(--badgeNotificationText, white);
  566. }
  567. }
  568. .alert {
  569. margin: 0.35em;
  570. padding: 0.25em;
  571. border-radius: $fallback--tooltipRadius;
  572. border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
  573. min-height: 28px;
  574. line-height: 28px;
  575. &.error {
  576. background-color: $fallback--alertError;
  577. background-color: var(--alertError, $fallback--alertError);
  578. color: $fallback--text;
  579. color: var(--alertErrorText, $fallback--text);
  580. .panel-heading & {
  581. color: $fallback--text;
  582. color: var(--alertErrorPanelText, $fallback--text);
  583. }
  584. }
  585. &.warning {
  586. background-color: $fallback--alertWarning;
  587. background-color: var(--alertWarning, $fallback--alertWarning);
  588. color: $fallback--text;
  589. color: var(--alertWarningText, $fallback--text);
  590. .panel-heading & {
  591. color: $fallback--text;
  592. color: var(--alertWarningPanelText, $fallback--text);
  593. }
  594. }
  595. &.success {
  596. background-color: var(--alertSuccess, $fallback--alertWarning);
  597. color: var(--alertSuccessText, $fallback--text);
  598. .panel-heading & {
  599. color: var(--alertSuccessPanelText, $fallback--text);
  600. }
  601. }
  602. }
  603. .faint {
  604. color: $fallback--faint;
  605. color: var(--faint, $fallback--faint);
  606. }
  607. .faint-link {
  608. color: $fallback--faint;
  609. color: var(--faint, $fallback--faint);
  610. &:hover {
  611. text-decoration: underline;
  612. }
  613. }
  614. .visibility-notice {
  615. padding: .5em;
  616. border: 1px solid $fallback--faint;
  617. border: 1px solid var(--faint, $fallback--faint);
  618. border-radius: $fallback--inputRadius;
  619. border-radius: var(--inputRadius, $fallback--inputRadius);
  620. }
  621. .notice-dismissible {
  622. padding-right: 4rem;
  623. position: relative;
  624. .dismiss {
  625. position: absolute;
  626. top: 0;
  627. right: 0;
  628. padding: .5em;
  629. color: inherit;
  630. }
  631. }
  632. .fa-scale-110 {
  633. &.svg-inline--fa {
  634. font-size: 1.1em;
  635. }
  636. }
  637. .fa-old-padding {
  638. &.svg-inline--fa {
  639. padding: 0 0.3em;
  640. }
  641. }
  642. @keyframes shakeError {
  643. 0% {
  644. transform: translateX(0);
  645. }
  646. 15% {
  647. transform: translateX(0.375rem);
  648. }
  649. 30% {
  650. transform: translateX(-0.375rem);
  651. }
  652. 45% {
  653. transform: translateX(0.375rem);
  654. }
  655. 60% {
  656. transform: translateX(-0.375rem);
  657. }
  658. 75% {
  659. transform: translateX(0.375rem);
  660. }
  661. 90% {
  662. transform: translateX(-0.375rem);
  663. }
  664. 100% {
  665. transform: translateX(0);
  666. }
  667. }
  668. @media all and (max-width: 800px) {
  669. .mobile-hidden {
  670. display: none;
  671. }
  672. .panel-switcher {
  673. display: flex;
  674. }
  675. .container {
  676. padding: 0;
  677. }
  678. .panel {
  679. margin: 0.5em 0 0.5em 0;
  680. }
  681. .menu-button {
  682. display: block;
  683. margin-right: 0.8em;
  684. }
  685. .main {
  686. margin-bottom: 7em;
  687. }
  688. }
  689. .setting-list,
  690. .option-list{
  691. list-style-type: none;
  692. padding-left: 2em;
  693. li {
  694. margin-bottom: 0.5em;
  695. }
  696. .suboptions {
  697. margin-top: 0.3em
  698. }
  699. }
  700. .login-hint {
  701. text-align: center;
  702. @media all and (min-width: 801px) {
  703. display: none;
  704. }
  705. a {
  706. display: inline-block;
  707. padding: 1em 0px;
  708. width: 100%;
  709. }
  710. }
  711. .btn.button-default {
  712. min-height: 28px;
  713. }
  714. .animate-spin {
  715. animation: spin 2s infinite linear;
  716. display: inline-block;
  717. }
  718. @keyframes spin {
  719. 0% {
  720. transform: rotate(0deg);
  721. }
  722. 100% {
  723. transform: rotate(359deg);
  724. }
  725. }
  726. .new-status-notification {
  727. position: relative;
  728. font-size: 1.1em;
  729. z-index: 1;
  730. flex: 1;
  731. }
  732. .chat-layout {
  733. // Needed for smoother chat navigation in the desktop Safari (otherwise the chat layout "jumps" as the chat opens).
  734. overflow: hidden;
  735. height: 100%;
  736. // Get rid of scrollbar on body as scrolling happens on different element
  737. body {
  738. overflow: hidden;
  739. }
  740. // Ensures the fixed position of the mobile browser bars on scroll up / down events.
  741. // Prevents the mobile browser bars from overlapping or hiding the message posting form.
  742. @media all and (max-width: 800px) {
  743. body {
  744. height: 100%;
  745. }
  746. #app {
  747. height: 100%;
  748. overflow: hidden;
  749. min-height: auto;
  750. }
  751. #app_bg_wrapper {
  752. overflow: hidden;
  753. }
  754. .main {
  755. overflow: hidden;
  756. height: 100%;
  757. }
  758. #content {
  759. padding-top: 0;
  760. height: 100%;
  761. overflow: visible;
  762. }
  763. }
  764. }