.common-gantt { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: row; align-items: self-start; color: #747a81; * { box-sizing: border-box; } .gantt-left { flex-grow: 0; flex-shrink: 0; height: 100%; background-color: #ffffff; position: relative; display: flex; flex-direction: column; &:after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 1px; background-color: rgba(237, 241, 242, 0.75); } .gantt-title { display: flex; align-items: center; height: 76px; flex-grow: 0; flex-shrink: 0; background-color: #F9FAFB; padding-left: 12px; padding-top: 26px; overflow: hidden; .gantt-title-text { flex: 1; line-height: 22px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; } .gantt-title-right { flex-shrink: 0; } } .gantt-item { transform: translateZ(0); max-height: 100%; overflow: auto; &::-webkit-scrollbar { display: none; } > li { height: 40px; border-bottom: 1px solid rgba(237, 241, 242, 0.75); position: relative; display: flex; align-items: center; padding-left: 12px; &:hover { .item-icon { display: flex; } } .item-overdue { flex-grow: 0; flex-shrink: 0; color: #ffffff; margin-right: 4px; background-color: #ff0000; padding: 1px 3px; border-radius: 3px; font-size: 12px; line-height: 18px; } .item-title { flex: 1; padding-right: 12px; cursor: default; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; &.complete { text-decoration: line-through; } &.overdue { font-weight: 600; } } .item-icon { display: none; align-items: center; justify-content: center; width: 32px; margin-right: 2px; font-size: 16px; color: #888888; } } } } .gantt-right { flex: 1; height: 100%; background-color: #ffffff; position: relative; overflow: hidden; .gantt-size { position: absolute; top: 76px; left: 0; z-index: 2; overflow: hidden; cursor: pointer; user-select: none; padding: 8px 14px; background: rgba(255, 255, 255, 0.502); transition: all 250ms; box-shadow: 0 0 0 rgba(0, 0, 0, 0); border-bottom-right-radius: 9px; &:hover { box-shadow: 0 0 6px rgba(0, 0, 0, 0.15); background: #fff; } > i { font-size: 20px; } } .gantt-chart { position: absolute; top: 0; left: 0; right: 0; bottom: 0; transform: translateZ(0); .gantt-month { display: flex; align-items: center; position: absolute; top: 0; left: 0; right: 0; z-index: 1; height: 26px; line-height: 20px; font-size: 14px; background-color: #F9FAFB; > li { flex-grow: 0; flex-shrink: 0; height: 100%; position: relative; overflow: hidden; &:after { content: ""; position: absolute; top: 0; right: 0; width: 1px; height: 100%; background-color: rgba(237, 241, 242, 0.75); } .month-format { overflow: hidden; white-space: nowrap; padding: 6px 6px 0; } } } .gantt-date { display: flex; align-items: center; position: absolute; top: 26px; left: 0; right: 0; bottom: 0; z-index: 2; cursor: move; &:before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 50px; background-color: #F9FAFB; } > li { flex-grow: 0; flex-shrink: 0; list-style: none; height: 100%; position: relative; overflow: hidden; &:after { content: ""; position: absolute; top: 0; right: 0; width: 1px; height: 100%; background-color: rgba(237, 241, 242, 0.75); } .date-format { overflow: hidden; white-space: nowrap; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 44px; .format-day { line-height: 28px; font-size: 18px; } .format-week { line-height: 16px; font-weight: 300; font-size: 13px; } } } } .gantt-timeline { position: absolute; top: 76px; left: 0; right: 0; bottom: 0; z-index: 3; overflow-x: hidden; overflow-y: auto; > li { cursor: default; height: 40px; border-bottom: 1px solid rgba(237, 241, 242, 0.75); position: relative; .timeline-item { position: absolute; top: 0; touch-action: none; pointer-events: auto; padding: 4px; margin-top: 4px; background: #e74c3c; border-radius: 18px; color: #fff; display: flex; align-items: center; will-change: contents; height: 32px; .timeline-title { touch-action: none; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-left: 4px; margin-right: 10px; } .timeline-resizer { height: 22px; touch-action: none; width: 8px; background: rgba(255, 255, 255, 0.1); cursor: ew-resize; flex-shrink: 0; will-change: visibility; position: absolute; top: 5px; right: 5px; } } } } } } }