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.

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