You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

504 lines
8.5 KiB

  1. .column__wrapper {
  2. display: flex;
  3. flex: 1 1 auto;
  4. position: relative;
  5. }
  6. .columns-area {
  7. display: flex;
  8. flex: 1 1 auto;
  9. flex-direction: row;
  10. justify-content: flex-start;
  11. overflow-x: auto;
  12. position: relative;
  13. }
  14. @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
  15. .columns-area {
  16. padding: 10px;
  17. }
  18. .react-swipeable-view-container .columns-area {
  19. height: calc(100% - 20px) !important;
  20. }
  21. }
  22. .react-swipeable-view-container {
  23. &,
  24. .columns-area,
  25. .column {
  26. height: 100%;
  27. }
  28. }
  29. .react-swipeable-view-container > * {
  30. display: flex;
  31. align-items: center;
  32. justify-content: center;
  33. height: 100%;
  34. }
  35. .column {
  36. width: 330px;
  37. position: relative;
  38. box-sizing: border-box;
  39. display: flex;
  40. flex-direction: column;
  41. > .scrollable {
  42. background: $ui-base-color;
  43. }
  44. }
  45. .ui {
  46. flex: 0 0 auto;
  47. display: flex;
  48. flex-direction: column;
  49. width: 100%;
  50. height: 100%;
  51. background: darken($ui-base-color, 7%);
  52. }
  53. .column {
  54. overflow: hidden;
  55. }
  56. @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
  57. .tabs-bar {
  58. margin: 0;
  59. }
  60. }
  61. :root { // Overrides .wide stylings for mobile view
  62. @include single-column('screen and (max-width: 630px)', $parent: null) {
  63. .column {
  64. flex: auto;
  65. width: 100%;
  66. min-width: 0;
  67. max-width: none;
  68. padding: 0;
  69. }
  70. .columns-area {
  71. flex-direction: column;
  72. }
  73. .search__input,
  74. .autosuggest-textarea__textarea {
  75. font-size: 16px;
  76. }
  77. }
  78. }
  79. @include multi-columns('screen and (min-width: 631px)', $parent: null) {
  80. .columns-area {
  81. padding: 0;
  82. }
  83. .column {
  84. flex: 0 0 auto;
  85. padding: 10px;
  86. padding-left: 5px;
  87. padding-right: 5px;
  88. &:first-child {
  89. padding-left: 10px;
  90. }
  91. &:last-child {
  92. padding-right: 10px;
  93. }
  94. }
  95. .columns-area > div {
  96. .column {
  97. padding-left: 5px;
  98. padding-right: 5px;
  99. }
  100. }
  101. }
  102. .column-back-button {
  103. background: lighten($ui-base-color, 4%);
  104. color: $highlight-text-color;
  105. cursor: pointer;
  106. flex: 0 0 auto;
  107. font-size: 16px;
  108. border: 0;
  109. text-align: unset;
  110. padding: 15px;
  111. margin: 0;
  112. z-index: 3;
  113. &:hover {
  114. text-decoration: underline;
  115. }
  116. }
  117. .column-header__back-button {
  118. background: lighten($ui-base-color, 4%);
  119. border: 0;
  120. font-family: inherit;
  121. color: $highlight-text-color;
  122. cursor: pointer;
  123. flex: 0 0 auto;
  124. font-size: 16px;
  125. padding: 0 5px 0 0;
  126. z-index: 3;
  127. &:hover {
  128. text-decoration: underline;
  129. }
  130. &:last-child {
  131. padding: 0 15px 0 0;
  132. }
  133. }
  134. .column-back-button__icon {
  135. display: inline-block;
  136. margin-right: 5px;
  137. }
  138. .column-back-button--slim {
  139. position: relative;
  140. }
  141. .column-back-button--slim-button {
  142. cursor: pointer;
  143. flex: 0 0 auto;
  144. font-size: 16px;
  145. padding: 15px;
  146. position: absolute;
  147. right: 0;
  148. top: -48px;
  149. }
  150. .column-link {
  151. background: lighten($ui-base-color, 8%);
  152. color: $primary-text-color;
  153. display: block;
  154. font-size: 16px;
  155. padding: 15px;
  156. text-decoration: none;
  157. &:hover {
  158. background: lighten($ui-base-color, 11%);
  159. }
  160. }
  161. .column-link__icon {
  162. display: inline-block;
  163. margin-right: 5px;
  164. }
  165. .column-subheading {
  166. background: $ui-base-color;
  167. color: $dark-text-color;
  168. padding: 8px 20px;
  169. font-size: 12px;
  170. font-weight: 500;
  171. text-transform: uppercase;
  172. cursor: default;
  173. }
  174. .column-header__wrapper {
  175. position: relative;
  176. flex: 0 0 auto;
  177. &.active {
  178. &::before {
  179. display: block;
  180. content: "";
  181. position: absolute;
  182. top: 35px;
  183. left: 0;
  184. right: 0;
  185. margin: 0 auto;
  186. width: 60%;
  187. pointer-events: none;
  188. height: 28px;
  189. z-index: 1;
  190. background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
  191. }
  192. }
  193. }
  194. .column-header {
  195. display: flex;
  196. font-size: 16px;
  197. background: lighten($ui-base-color, 4%);
  198. flex: 0 0 auto;
  199. cursor: pointer;
  200. position: relative;
  201. z-index: 2;
  202. outline: 0;
  203. overflow: hidden;
  204. & > button {
  205. margin: 0;
  206. border: none;
  207. padding: 15px;
  208. color: inherit;
  209. background: transparent;
  210. font: inherit;
  211. text-align: left;
  212. text-overflow: ellipsis;
  213. overflow: hidden;
  214. white-space: nowrap;
  215. flex: 1;
  216. }
  217. & > .column-header__back-button {
  218. color: $highlight-text-color;
  219. }
  220. &.active {
  221. box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
  222. .column-header__icon {
  223. color: $highlight-text-color;
  224. text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
  225. }
  226. }
  227. &:focus,
  228. &:active {
  229. outline: 0;
  230. }
  231. }
  232. .column {
  233. width: 330px;
  234. position: relative;
  235. box-sizing: border-box;
  236. display: flex;
  237. flex-direction: column;
  238. overflow: hidden;
  239. .wide & {
  240. flex: auto;
  241. min-width: 330px;
  242. max-width: 400px;
  243. }
  244. > .scrollable {
  245. background: $ui-base-color;
  246. }
  247. }
  248. .column-header__buttons {
  249. height: 48px;
  250. display: flex;
  251. margin-left: 0;
  252. }
  253. .column-header__links .text-btn {
  254. margin-right: 10px;
  255. }
  256. .column-header__button {
  257. background: lighten($ui-base-color, 4%);
  258. border: 0;
  259. color: $darker-text-color;
  260. cursor: pointer;
  261. font-size: 16px;
  262. padding: 0 15px;
  263. &:hover {
  264. color: lighten($darker-text-color, 7%);
  265. }
  266. &.active {
  267. color: $primary-text-color;
  268. background: lighten($ui-base-color, 8%);
  269. &:hover {
  270. color: $primary-text-color;
  271. background: lighten($ui-base-color, 8%);
  272. }
  273. }
  274. // glitch - added focus ring for keyboard navigation
  275. &:focus {
  276. text-shadow: 0 0 4px darken($ui-highlight-color, 5%);
  277. }
  278. }
  279. .column-header__notif-cleaning-buttons {
  280. display: flex;
  281. align-items: stretch;
  282. justify-content: space-around;
  283. button {
  284. @extend .column-header__button;
  285. background: transparent;
  286. text-align: center;
  287. padding: 10px 0;
  288. white-space: pre-wrap;
  289. }
  290. b {
  291. font-weight: bold;
  292. }
  293. }
  294. // The notifs drawer with no padding to have more space for the buttons
  295. .column-header__collapsible-inner.nopad-drawer {
  296. padding: 0;
  297. }
  298. .column-header__collapsible {
  299. max-height: 70vh;
  300. overflow: hidden;
  301. overflow-y: auto;
  302. color: $darker-text-color;
  303. transition: max-height 150ms ease-in-out, opacity 300ms linear;
  304. opacity: 1;
  305. &.collapsed {
  306. max-height: 0;
  307. opacity: 0.5;
  308. }
  309. &.animating {
  310. overflow-y: hidden;
  311. }
  312. hr {
  313. height: 0;
  314. background: transparent;
  315. border: 0;
  316. border-top: 1px solid lighten($ui-base-color, 12%);
  317. margin: 10px 0;
  318. }
  319. // notif cleaning drawer
  320. &.ncd {
  321. transition: none;
  322. &.collapsed {
  323. max-height: 0;
  324. opacity: 0.7;
  325. }
  326. }
  327. }
  328. .column-header__collapsible-inner {
  329. background: lighten($ui-base-color, 8%);
  330. padding: 15px;
  331. }
  332. .column-header__setting-btn {
  333. &:hover {
  334. color: $darker-text-color;
  335. text-decoration: underline;
  336. }
  337. }
  338. .column-header__setting-arrows {
  339. float: right;
  340. .column-header__setting-btn {
  341. padding: 0 10px;
  342. &:last-child {
  343. padding-right: 0;
  344. }
  345. }
  346. }
  347. .column-header__title {
  348. display: inline-block;
  349. text-overflow: ellipsis;
  350. overflow: hidden;
  351. white-space: nowrap;
  352. flex: 1;
  353. }
  354. .column-header__icon {
  355. display: inline-block;
  356. margin-right: 5px;
  357. }
  358. .empty-column-indicator,
  359. .error-column {
  360. color: $dark-text-color;
  361. background: $ui-base-color;
  362. text-align: center;
  363. padding: 20px;
  364. font-size: 15px;
  365. font-weight: 400;
  366. cursor: default;
  367. display: flex;
  368. flex: 1 1 auto;
  369. align-items: center;
  370. justify-content: center;
  371. @supports(display: grid) { // hack to fix Chrome <57
  372. contain: strict;
  373. }
  374. a {
  375. color: $highlight-text-color;
  376. text-decoration: none;
  377. &:hover {
  378. text-decoration: underline;
  379. }
  380. }
  381. }
  382. .error-column {
  383. flex-direction: column;
  384. }
  385. // more fixes for the navbar-under mode
  386. @mixin fix-margins-for-navbar-under {
  387. .tabs-bar {
  388. margin-top: 0 !important;
  389. margin-bottom: -6px !important;
  390. }
  391. }
  392. .single-column.navbar-under {
  393. @include fix-margins-for-navbar-under;
  394. }
  395. .auto-columns.navbar-under {
  396. @media screen and (max-width: 360px) {
  397. @include fix-margins-for-navbar-under;
  398. }
  399. }
  400. .auto-columns.navbar-under .react-swipeable-view-container .columns-area,
  401. .single-column.navbar-under .react-swipeable-view-container .columns-area {
  402. @media screen and (max-width: 360px) {
  403. height: 100% !important;
  404. }
  405. }
  406. .column-inline-form {
  407. padding: 7px 15px;
  408. padding-right: 5px;
  409. display: flex;
  410. justify-content: flex-start;
  411. align-items: center;
  412. background: lighten($ui-base-color, 4%);
  413. label {
  414. flex: 1 1 auto;
  415. input {
  416. width: 100%;
  417. margin-bottom: 6px;
  418. &:focus {
  419. outline: 0;
  420. }
  421. }
  422. }
  423. .icon-button {
  424. flex: 0 0 auto;
  425. margin-left: 5px;
  426. }
  427. }