boardBody.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498
  1. .board-wrapper {
  2. position: absolute;
  3. left: 0;
  4. right: 0;
  5. top: 0;
  6. bottom: 0;
  7. overflow-x: hidden;
  8. overflow-y: hidden;
  9. width: 100%;
  10. min-width: 100%;
  11. }
  12. /* When zoom is 50% or lower, ensure full width like content */
  13. .board-wrapper[style*="transform: scale(0.5)"] {
  14. width: 100% !important;
  15. max-width: 100% !important;
  16. margin: 0 !important;
  17. }
  18. .board-wrapper[style*="transform: scale(0.4)"] {
  19. width: 100% !important;
  20. max-width: 100% !important;
  21. margin: 0 !important;
  22. }
  23. .board-wrapper[style*="transform: scale(0.3)"] {
  24. width: 100% !important;
  25. max-width: 100% !important;
  26. margin: 0 !important;
  27. }
  28. .board-wrapper .board-canvas {
  29. position: absolute;
  30. left: 0;
  31. right: 0;
  32. top: 0;
  33. bottom: 0;
  34. transition: margin 0.1s;
  35. overflow-y: auto;
  36. width: 100%;
  37. min-width: 100%;
  38. }
  39. /* Ensure horizontal scrollbar is visible for high zoom levels */
  40. .board-wrapper .board-canvas[style*="overflow-x: auto"] {
  41. overflow-x: auto !important;
  42. overflow-y: auto !important;
  43. }
  44. /* Style the scrollbar for better visibility */
  45. .board-wrapper .board-canvas::-webkit-scrollbar {
  46. height: 12px;
  47. width: 12px;
  48. }
  49. .board-wrapper .board-canvas::-webkit-scrollbar-track {
  50. background: #f1f1f1;
  51. border-radius: 6px;
  52. }
  53. .board-wrapper .board-canvas::-webkit-scrollbar-thumb {
  54. background: #888;
  55. border-radius: 6px;
  56. }
  57. .board-wrapper .board-canvas::-webkit-scrollbar-thumb:hover {
  58. background: #555;
  59. }
  60. /* Ensure content area can scroll horizontally for high zoom levels */
  61. #content[style*="overflow-x: auto"] {
  62. overflow-x: auto !important;
  63. overflow-y: auto !important;
  64. }
  65. /* Style content area scrollbar */
  66. #content::-webkit-scrollbar {
  67. height: 12px;
  68. width: 12px;
  69. }
  70. #content::-webkit-scrollbar-track {
  71. background: #f1f1f1;
  72. border-radius: 6px;
  73. }
  74. #content::-webkit-scrollbar-thumb {
  75. background: #888;
  76. border-radius: 6px;
  77. }
  78. #content::-webkit-scrollbar-thumb:hover {
  79. background: #555;
  80. }
  81. /* Ensure scrollbars are always visible for high zoom levels */
  82. #content[style*="overflow-x: auto"] {
  83. position: relative;
  84. }
  85. #content[style*="overflow-x: auto"]::-webkit-scrollbar {
  86. height: 12px;
  87. width: 12px;
  88. }
  89. /* Force vertical scrollbar to always be visible */
  90. #content[style*="overflow-y: auto"] {
  91. overflow-y: scroll !important;
  92. }
  93. /* Mobile - make all text 2x bigger inside #content by default (icons stay same size) */
  94. @media screen and (max-width: 800px),
  95. screen and (max-device-width: 800px),
  96. screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 800px),
  97. screen and (max-width: 800px) and (orientation: portrait),
  98. screen and (max-width: 800px) and (orientation: landscape) {
  99. #content {
  100. font-size: 2em !important; /* 2x bigger base font size for content area */
  101. }
  102. /* Make all text elements 2x bigger */
  103. #content h1, #content h2, #content h3, #content h4, #content h5, #content h6,
  104. #content p, #content span, #content div, #content a, #content button,
  105. #content .minicard, #content .list-header-name, #content .board-header-btn,
  106. #content .card-title, #content .card-details, #content .card-description,
  107. #content .swimlane-header, #content .list-title, #content .card-text,
  108. #content .member, #content .member-name, #content .member-initials,
  109. #content .checklist-item, #content .checklist-title, #content .comment,
  110. #content .activity, #content .activity-text, #content .activity-time,
  111. #content .board-title, #content .board-description, #content .list-name,
  112. #content .card-text, #content .card-title, #content .card-description,
  113. #content .swimlane-title, #content .swimlane-description,
  114. #content .board-header-title, #content .board-header-description,
  115. #content .card-detail-title, #content .card-detail-description,
  116. #content .list-header-title, #content .list-header-description,
  117. #content .swimlane-header-title, #content .swimlane-header-description,
  118. #content .minicard-title, #content .minicard-description,
  119. #content .card-comment, #content .card-comment-text,
  120. #content .checklist-item-text, #content .checklist-item-title,
  121. #content .activity-item, #content .activity-item-text,
  122. #content .board-member, #content .board-member-name,
  123. #content .team-member, #content .team-member-name,
  124. #content .org-member, #content .org-member-name,
  125. #content .template-member, #content .template-member-name,
  126. #content .user-name, #content .user-email, #content .user-role,
  127. #content .setting-title, #content .setting-description,
  128. #content .popup-title, #content .popup-description,
  129. #content .modal-title, #content .modal-description,
  130. #content .notification-title, #content .notification-text,
  131. #content .announcement-title, #content .announcement-text,
  132. #content .offline-warning-title, #content .offline-warning-text,
  133. #content .error-title, #content .error-text,
  134. #content .success-title, #content .success-text,
  135. #content .info-title, #content .info-text,
  136. #content .warning-title, #content .warning-text {
  137. font-size: 1em !important; /* Use inherited 2x scaling */
  138. }
  139. /* Keep icons the same size (don't scale them) */
  140. #content .fa, #content .icon, #content i {
  141. font-size: 1em !important; /* Keep original icon size */
  142. }
  143. /* Reset specific icon sizes to prevent double scaling */
  144. #content .fa-home, #content .fa-bars, #content .fa-search,
  145. #content .fa-bell, #content .fa-user, #content .fa-cog,
  146. #content .fa-plus, #content .fa-minus, #content .fa-edit,
  147. #content .fa-trash, #content .fa-save, #content .fa-cancel,
  148. #content .fa-arrow-left, #content .fa-arrow-right,
  149. #content .fa-arrow-up, #content .fa-arrow-down,
  150. #content .fa-check, #content .fa-times, #content .fa-close,
  151. #content .fa-star, #content .fa-heart, #content .fa-thumbs-up,
  152. #content .fa-thumbs-down, #content .fa-comment, #content .fa-reply,
  153. #content .fa-share, #content .fa-download, #content .fa-upload,
  154. #content .fa-copy, #content .fa-paste, #content .fa-cut,
  155. #content .fa-undo, #content .fa-redo, #content .fa-refresh,
  156. #content .fa-sync, #content .fa-spinner, #content .fa-loading,
  157. #content .fa-info, #content .fa-question, #content .fa-exclamation,
  158. #content .fa-warning, #content .fa-error, #content .fa-success,
  159. #content .fa-check-circle, #content .fa-times-circle,
  160. #content .fa-exclamation-circle, #content .fa-question-circle,
  161. #content .fa-info-circle, #content .fa-warning-circle,
  162. #content .fa-error-circle, #content .fa-success-circle {
  163. font-size: 1em !important; /* Keep original icon size */
  164. }
  165. }
  166. /* Fallback for iPhone devices using JavaScript detection */
  167. .iphone-device #content {
  168. font-size: 2em !important; /* 2x bigger base font size for content area */
  169. }
  170. .iphone-device #content h1, .iphone-device #content h2, .iphone-device #content h3, .iphone-device #content h4, .iphone-device #content h5, .iphone-device #content h6,
  171. .iphone-device #content p, .iphone-device #content span, .iphone-device #content div, .iphone-device #content a, .iphone-device #content button,
  172. .iphone-device #content .minicard, .iphone-device #content .list-header-name, .iphone-device #content .board-header-btn,
  173. .iphone-device #content .card-title, .iphone-device #content .card-details, .iphone-device #content .card-description,
  174. .iphone-device #content .swimlane-header, .iphone-device #content .list-title, .iphone-device #content .card-text,
  175. .iphone-device #content .member, .iphone-device #content .member-name, .iphone-device #content .member-initials,
  176. .iphone-device #content .checklist-item, .iphone-device #content .checklist-title, .iphone-device #content .comment,
  177. .iphone-device #content .activity, .iphone-device #content .activity-text, .iphone-device #content .activity-time,
  178. .iphone-device #content .board-title, .iphone-device #content .board-description, .iphone-device #content .list-name,
  179. .iphone-device #content .card-text, .iphone-device #content .card-title, .iphone-device #content .card-description,
  180. .iphone-device #content .swimlane-title, .iphone-device #content .swimlane-description,
  181. .iphone-device #content .board-header-title, .iphone-device #content .board-header-description,
  182. .iphone-device #content .card-detail-title, .iphone-device #content .card-detail-description,
  183. .iphone-device #content .list-header-title, .iphone-device #content .list-header-description,
  184. .iphone-device #content .swimlane-header-title, .iphone-device #content .swimlane-header-description,
  185. .iphone-device #content .minicard-title, .iphone-device #content .minicard-description,
  186. .iphone-device #content .card-comment, .iphone-device #content .card-comment-text,
  187. .iphone-device #content .checklist-item-text, .iphone-device #content .checklist-item-title,
  188. .iphone-device #content .activity-item, .iphone-device #content .activity-item-text,
  189. .iphone-device #content .board-member, .iphone-device #content .board-member-name,
  190. .iphone-device #content .team-member, .iphone-device #content .team-member-name,
  191. .iphone-device #content .org-member, .iphone-device #content .org-member-name,
  192. .iphone-device #content .template-member, .iphone-device #content .template-member-name,
  193. .iphone-device #content .user-name, .iphone-device #content .user-email, .iphone-device #content .user-role,
  194. .iphone-device #content .setting-title, .iphone-device #content .setting-description,
  195. .iphone-device #content .popup-title, .iphone-device #content .popup-description,
  196. .iphone-device #content .modal-title, .iphone-device #content .modal-description,
  197. .iphone-device #content .notification-title, .iphone-device #content .notification-text,
  198. .iphone-device #content .announcement-title, .iphone-device #content .announcement-text,
  199. .iphone-device #content .offline-warning-title, .iphone-device #content .offline-warning-text,
  200. .iphone-device #content .error-title, .iphone-device #content .error-text,
  201. .iphone-device #content .success-title, .iphone-device #content .success-text,
  202. .iphone-device #content .info-title, .iphone-device #content .info-text,
  203. .iphone-device #content .warning-title, .iphone-device #content .warning-text {
  204. font-size: 1em !important; /* Use inherited 2x scaling */
  205. }
  206. /* Keep icons the same size for iPhone devices */
  207. .iphone-device #content .fa, .iphone-device #content .icon, .iphone-device #content i {
  208. font-size: 1em !important; /* Keep original icon size */
  209. }
  210. /* Ensure scrollbars are positioned correctly */
  211. #content[style*="overflow-x: auto"]::-webkit-scrollbar:vertical {
  212. width: 12px;
  213. }
  214. #content[style*="overflow-x: auto"]::-webkit-scrollbar:horizontal {
  215. height: 12px;
  216. }
  217. /* Force both scrollbars to always be visible for high zoom levels */
  218. #content[style*="overflow-x: auto"][style*="overflow-y: auto"] {
  219. overflow-x: scroll !important;
  220. overflow-y: scroll !important;
  221. }
  222. /* Ensure the right scrollbar is always visible on the inner right edge */
  223. #content[style*="overflow-y: auto"] {
  224. scrollbar-gutter: stable;
  225. }
  226. .board-wrapper .board-canvas .board-overlay {
  227. position: fixed;
  228. left: 0;
  229. right: 0;
  230. top: 0;
  231. bottom: 0;
  232. top: -100px;
  233. right: -400px;
  234. background: #000;
  235. opacity: 0.33;
  236. animation: fadeIn 0.2s;
  237. z-index: 16;
  238. }
  239. .board-wrapper .board-canvas.is-dragging-active .open-minicard-composer,
  240. .board-wrapper .board-canvas.is-dragging-active .minicard-wrapper.is-checked {
  241. display: none;
  242. }
  243. /* Mobile view styles - applied when isMiniScreen is true (iPhone, etc.) */
  244. .board-wrapper.mobile-view {
  245. width: 100% !important;
  246. min-width: 100% !important;
  247. left: 0 !important;
  248. right: 0 !important;
  249. }
  250. .board-wrapper.mobile-view .board-canvas {
  251. width: 100% !important;
  252. min-width: 100% !important;
  253. left: 0 !important;
  254. right: 0 !important;
  255. }
  256. .board-wrapper.mobile-view .board-canvas.mobile-view .swimlane {
  257. border-bottom: 1px solid #ccc;
  258. display: flex;
  259. flex-direction: column;
  260. margin: 0;
  261. padding: 0;
  262. overflow-x: hidden;
  263. overflow-y: auto;
  264. width: 100%;
  265. min-width: 100%;
  266. }
  267. @media screen and (max-width: 800px) {
  268. .board-wrapper {
  269. width: 100% !important;
  270. min-width: 100% !important;
  271. left: 0 !important;
  272. right: 0 !important;
  273. }
  274. .board-wrapper .board-canvas {
  275. width: 100% !important;
  276. min-width: 100% !important;
  277. left: 0 !important;
  278. right: 0 !important;
  279. }
  280. .board-wrapper .board-canvas .swimlane {
  281. border-bottom: 1px solid #ccc;
  282. display: flex;
  283. flex-direction: column;
  284. margin: 0;
  285. padding: 0;
  286. overflow-x: hidden;
  287. overflow-y: auto;
  288. width: 100%;
  289. min-width: 100%;
  290. }
  291. }
  292. .calendar-event-green {
  293. background: #3cb500 !important;
  294. border-color: #2a8000;
  295. color: #fff !important;
  296. }
  297. .calendar-event-yellow {
  298. background: #fad900 !important;
  299. border-color: #c7ac00;
  300. color: #000 !important;
  301. }
  302. .calendar-event-orange {
  303. background: #ff9f19 !important;
  304. border-color: #cc7c14;
  305. color: #000 !important;
  306. }
  307. .calendar-event-red {
  308. background: #eb4646 !important;
  309. border-color: #b83737;
  310. color: #fff !important;
  311. }
  312. .calendar-event-purple {
  313. background: #a632db !important;
  314. border-color: #7d26a6;
  315. color: #fff !important;
  316. }
  317. .calendar-event-blue {
  318. background: #0079bf !important;
  319. border-color: #005a8a;
  320. color: #fff !important;
  321. }
  322. .calendar-event-pink {
  323. background: #ff78cb !important;
  324. border-color: #cc62a3;
  325. color: #000 !important;
  326. }
  327. .calendar-event-sky {
  328. background: #00c2e0 !important;
  329. border-color: #0094ab;
  330. color: #fff !important;
  331. }
  332. .calendar-event-black {
  333. background: #4d4d4d !important;
  334. border-color: #1a1a1a;
  335. color: #fff !important;
  336. }
  337. .calendar-event-lime {
  338. background: #51e898 !important;
  339. border-color: #3eb375;
  340. color: #000 !important;
  341. }
  342. .calendar-event-silver {
  343. background: #c0c0c0 !important;
  344. border-color: #8c8c8c;
  345. color: #000 !important;
  346. }
  347. .calendar-event-peachpuff {
  348. background: #ffdab9 !important;
  349. border-color: #ccaf95;
  350. color: #000 !important;
  351. }
  352. .calendar-event-crimson {
  353. background: #dc143c !important;
  354. border-color: #a8112f;
  355. color: #fff !important;
  356. }
  357. .calendar-event-plum {
  358. background: #dda0dd !important;
  359. border-color: #a87ba8;
  360. color: #000 !important;
  361. }
  362. .calendar-event-darkgreen {
  363. background: #006400 !important;
  364. border-color: #003000;
  365. color: #fff !important;
  366. }
  367. .calendar-event-slateblue {
  368. background: #6a5acd !important;
  369. border-color: #4f4399;
  370. color: #fff !important;
  371. }
  372. .calendar-event-magenta {
  373. background: #f0f !important;
  374. border-color: #c0c;
  375. color: #fff !important;
  376. }
  377. .calendar-event-gold {
  378. background: #ffd700 !important;
  379. border-color: #ca0;
  380. color: #000 !important;
  381. }
  382. .calendar-event-navy {
  383. background: #000080 !important;
  384. border-color: #003;
  385. color: #fff !important;
  386. }
  387. .calendar-event-gray {
  388. background: #808080 !important;
  389. border-color: #333;
  390. color: #fff !important;
  391. }
  392. .calendar-event-saddlebrown {
  393. background: #8b4513 !important;
  394. border-color: #572b0c;
  395. color: #fff !important;
  396. }
  397. .calendar-event-paleturquoise {
  398. background: #afeeee !important;
  399. border-color: #8ababa;
  400. color: #000 !important;
  401. }
  402. .calendar-event-mistyrose {
  403. background: #ffe4e1 !important;
  404. border-color: #ccb8b6;
  405. color: #000 !important;
  406. }
  407. .calendar-event-indigo {
  408. background: #4b0082 !important;
  409. border-color: #2b004d;
  410. color: #fff !important;
  411. }
  412. /* Modal Styles */
  413. .modal {
  414. display: none;
  415. position: fixed;
  416. top: 50%;
  417. left: 50%;
  418. transform: translate(-50%, -50%);
  419. z-index: 9999;
  420. background-color: rgba(0, 0, 0, 0.5);
  421. width: 100%;
  422. height: 100%;
  423. }
  424. .modal-dialog {
  425. display: flex;
  426. justify-content: center;
  427. align-items: center;
  428. height: 25%; /* Adjust the height to make it smaller */
  429. position: relative;
  430. margin: 10% auto; /* This margin will help center the modal vertically */
  431. max-width: 400px; /* Adjust the max-width to make it smaller */
  432. background-color: #fff;
  433. border-radius: 5px;
  434. box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  435. }
  436. .modal-header {
  437. display: flex;
  438. justify-content: center;
  439. align-items: center;
  440. padding-bottom: 1px;
  441. border-bottom: 1px solid #ccc;
  442. }
  443. .modal-title {
  444. display: flex;
  445. justify-content: center;
  446. align-items: center;
  447. margin: 0;
  448. font-size: 18px;
  449. }
  450. .modal-footer {
  451. display: flex;
  452. justify-content: center;
  453. align-items: center;
  454. padding-top: 4px;
  455. border-top: 1px solid #ccc;
  456. }
  457. .close {
  458. display: flex;
  459. justify-content: center;
  460. align-items: center;
  461. position: absolute;
  462. top: 5px;
  463. right: 5px;
  464. font-size: 25px;
  465. cursor: pointer;
  466. }