.timeline { --timeline-background-color: #f3f3f3; --timeline-shadow-color: #00000080; --timeline-post-line-color: #eadd2c; --timeline-post-line-shadow: 2px 1px 10px -1px var(--timeline-shadow-color); --timeline-post-card-background-color: rgb(255, 255, 255); --timeline-post-card-shadow: 4px 2px 10px -2px var(--timeline-shadow-color); --timeline-post-card-border-radius: 10px; --timeline-post-text-color: #000000; } .timeline { z-index: 0; position: relative; width: 100%; background-color: var(--timeline-background-color); } @keyframes timeline-line-node { to { box-shadow: 0 0 20px 3px var(--cru-primary-l1-color); } } @keyframes timeline-line-node-current { to { box-shadow: 0 0 20px 3px var(--cru-primary-enhance-l1-color); } } @keyframes timeline-line-node-loading { to { box-shadow: 0 0 20px 3px var(--cru-primary-l1-color); } } @keyframes timeline-line-node-loading-edge { from { transform: rotate(0turn); } to { transform: rotate(1turn); } } @keyframes timeline-top-loading-enter { from { transform: translate(0, -100%); } } @keyframes timeline-post-enter { from { transform: translate(0, 100%); opacity: 0; } to { opacity: 1; } } .timeline-top-loading-enter { animation: 1s timeline-top-loading-enter; } .timeline-line { display: flex; flex-direction: column; align-items: center; width: 30px; position: absolute; z-index: 1; left: 2em; top: 0; bottom: 0; transition: left 0.5s; } @media (max-width: 575.98px) { .timeline-line { left: 1em; } } .timeline-line .segment { width: 12px; background: var(--cru-primary-color); } .timeline-line .segment.start { height: 1.8em; flex: 0 0 auto; } .timeline-line .segment.end { flex: 1 1 auto; } .timeline-line .segment.current-end { height: 2em; flex: 0 0 auto; background: linear-gradient(var(--cru-primary-enhance-color), white); } .timeline-line .node-container { flex: 0 0 auto; position: relative; width: 18px; height: 18px; } .timeline-line .node { width: 24px; height: 24px; position: absolute; background: var(--cru-primary-color); left: -3px; top: -3px; border-radius: 50%; box-sizing: border-box; z-index: 1; animation: 1s infinite alternate; animation-name: timeline-line-node; } .timeline-line .node-loading-edge { color: var(--cru-primary-color); width: 38px; height: 38px; position: absolute; left: -10px; top: -10px; box-sizing: border-box; z-index: 2; animation: 1.5s linear infinite timeline-line-node-loading-edge; } .timeline-line.current .segment.start { background: linear-gradient(var(--cru-primary-color), var(--cru-primary-enhance-color)); } .timeline-line.current .segment.end { background: var(--cru-primary-enhance-color); } .timeline-line.current .node { background: var(--cru-primary-enhance-color); animation-name: timeline-line-node-current; } .timeline-line.loading .node { background: var(--cru-primary-color); animation-name: timeline-line-node-loading; } .timeline-content-image { max-width: 80%; max-height: 200px; } .timeline-post-item-options-mask { background: rgba(255, 255, 255, 0.85); z-index: 100; position: absolute; left: 0; right: 0; top: 0; bottom: 0; display: flex; justify-content: space-around; align-items: center; border-radius: var(--cru-card-border-radius); } .timeline-sync-state-badge { font-size: 0.8em; padding: 3px 8px; border-radius: 5px; background: #e8fbff; } .timeline-sync-state-badge-pin { display: inline-block; width: 0.4em; height: 0.4em; border-radius: 50%; vertical-align: middle; margin-right: 0.6em; } .timeline-top { position: sticky; top: 56px; }