$theme: 'default'; $text: #343A40; $subtext: #707070; $offtext: #B0B0B0; $modesttext: #969696; $line: #6C757D; $offline: #DDDDDD; $activeline: #DC3545; $background: #FFFFFF; $invertbg: #121212; $striped1: #F7F7F7; $striped2: #F0F0F0; $active: #F73333; $marker: #2C7CFF; /*! * jQuery Timeline Plugin * ------------------------ * Version: 2.1.3 * Coded by: ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT */ @charset "UTF-8"; /* ---------------------------------------------------------------------------- * Common style * ---------------------------------------------------------------------------- */ .timeline-events { display: none; visibility: hidden; position: asolute; left: -9999px; top: -9999px; width: 0; height: 0; opacity: 0; z-index: -9999; } .jqtl-hide { display: none; visibility: hidden; opacity: 0; } .jqtl-align-self-left { clear: both; float: left; display: inline-block; text-align: left; align-self: left; } .jqtl-align-self-right { clear: both; float: right; display: inline-block; text-align: right; align-self: right; } .jqtl-align-self-center { clear: both; display: inline-block; text-align: center; align-self: center; } /* ---------------------------------------------------------------------------- * Headline style * ---------------------------------------------------------------------------- */ .jqtl-headline { width: auto; margin-top: 0.25em; margin-bottom: 0.25em; padding-left: 0.25em; padding-right: 0.25em; } .jqtl-headline-wrapper { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; } .jqtl-timeline-title { margin: 0; align-self: center; font-size: 1.4286em; font-weight: 600; color: $text; } .jqtl-range-meta { margin: 0; align-self: center; font-size: 0.8571em; color: $subtext; } .jqtl-range-span { position: relative; display: inline-block; margin-left: calc(1em / 4); margin-right: calc(1em / 4); width: 1em; height: 1em; &::before { content: "\2013"; position: absolute; left: 20%; top: calc(50% - 0.5rem); font-size: 1rem; color: $offtext; } } /* ---------------------------------------------------------------------------- * Body container style * ---------------------------------------------------------------------------- */ .jqtl-container { position: relative; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; border: solid 1px $offline; overflow-x: auto; overflow-y: hidden; background-color: $background; box-sizing: content-box; *, ::after, ::before { box-sizing: inherit !important; } } .jqtl-hide-scrollbar { -ms-overflow-style: -ms-autohiding-scrollbar; } .jqtl-hide-scrollbar::-webkit-scrollbar { display: none; } .jqtl-main { position: relative; cursor: ew-resize; /* all-scroll; move; */ } /* ---------------------------------------------------------------------------- * Ruler style * ---------------------------------------------------------------------------- */ .jqtl-ruler-top, .jqtl-ruler-bottom { position: relative; outline: solid 1px $offline; overflow: hidden; z-index: 20; } .jqtl-ruler-bg-top, .jqtl-ruler-bg-bottom { position: relative; z-index: 21; } .jqtl-ruler-top { bottom: 0; } .jqtl-ruler-bottom { top: 0; } .jqtl-ruler-content-top, .jqtl-ruler-content-bottom { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; padding: 0; display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; z-index: 22; } .jqtl-ruler-line-rows { position: relative; margin: 0; padding: 0; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; &:nth-child(even) { background-color: rgba($striped1, 0.25); } } .jqtl-ruler-line-item { position: relative; margin: 0; padding: 0; min-width: 0; text-align: center; align-self: center; font-family: "Courier New", monospace !important; color: $subtext; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; border: 0; outline: 0; span { display: inline-block; } } .jqtl-rli-left { text-align: left; align-self: left !important; } .jqtl-ruler-line-item:nth-child(even) { background-color: rgba($striped2, 0.25); } /* ---------------------------------------------------------------------------- * Event container style * ---------------------------------------------------------------------------- */ .jqtl-event-container { position: relative; outline: solid 1px $offline; z-index: 1; } .jqtl-bg-grid { position: relative; z-index: 2; } .jqtl-relation-lines, .jqtl-events { position: absolute; display: block; left: 0; top: 0; width: 100%; height: 100%; transition: all 0.3s; } .jqtl-relation-lines { visibility: hidden; opacity: 0; z-index: 3; &[data-state="shown"] { visibility: visible; opacity: 1; } } .jqtl-events { overflow-x: hidden; visibility: hidden; opacity: 0; z-index: 4; &[data-state="shown"] { visibility: visible; opacity: 1; } } /* ---------------------------------------------------------------------------- * One event style * ---------------------------------------------------------------------------- */ .jqtl-event-node { /* bar type */ position: absolute; display: flex; justify-content: flex-start; align-items: center; align-content: center; padding-left: 0; padding-right: 0; border-radius: 2px; overflow: hidden; visibility: visible; opacity: 1; z-index: 7; cursor: pointer; transition: all 0.3s ease; &:not(.jqtl-event-type-pointer) { &.active { color: $background; background-color: $active; } } } .jqtl-event-label, .jqtl-event-node > * { /*flex-grow: 1;*/ align-self: center; width: max-content; max-width: 100%; min-width: 0; padding-left: 0.5em; padding-right: 0.5em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; font-size: 1rem; /* Defaults to 16px */ } .jqtl-event-thumbnail { margin-right: 4px; border-radius: 3px; transition: all 0.5s ease; } .jqtl-event-node { &:hover { color: $background; background-color: $active; &::after { z-index: 6; background-color: rgba($invertbg, 0.1); } .jqtl-event-thumbnail { opacity: 0.75; } } &::before { content: attr(data-meta); position: absolute; right: 4px; top: 2px; text-align: right; font-size: 0.625rem; /* Defaults to 10px */ color: $modesttext; } &::after { content: ''; position: absolute; display: block; z-index: 6; top: 0; right: 0; bottom: 0; left: 0; border-radius: 2px; background-color: transparent; transition: all 0.5s ease; } } /* pointer type */ .jqtl-event-node.jqtl-event-type-pointer { padding: 0; border-radius: 50%; border: solid 3px $line; background-image: none; background-repeat: no-repeat; background-size: cover; background-position: center center; transition: all 0.1s linear; &.active { border-color: $activeline !important; } &:hover { border-color: $activeline; } &::after { transition: all .1s linear; } &> .jqtl-event-label { display: none; } &> .jqtl-event-thumbnail { display: none; } } /* ---------------------------------------------------------------------------- * Sidebar index style * ---------------------------------------------------------------------------- */ .jqtl-side-index { position: relative; left: 0; display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; align-items: center; width: max-content; outline: solid 1px $offline; z-index: 25; &> [class^="jqtl-side-index-"] { padding: 0; width: 100%; font-size: 14px; vertical-align: middle; border-bottom: dotted 1px $offline; background-color: $background; white-space: nowrap; } .jqtl-side-index-item { position: relative; display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; align-items: center; &::before, &::after { display: inline-block; content: ''; } &:nth-child(odd) { background-color: $striped1; } &:first-child { border-top: solid 1px $offline; } img { position: relative; display: inline-block; margin-right: 0.5rem; height: calc(100% - 6px); width: auto; text-align: left; vertical-align: middle; } } .jqtl-side-index-margin { outline: solid 1px $offline; &:first-child { border-bottom: solid 1px $offline; } &:last-child { border-top: solid 1px $offline; border-bottom: 0; } } } .jqtl-sticky-left { position: -webkit-sticky; position: sticky; } .jqtl-overlay { background-color: rgba($background, 0.65) !important; &:nth-child(odd) { background-color: rgba($striped1, 0.45) !important; } } /* ---------------------------------------------------------------------------- * Event Viewer * ---------------------------------------------------------------------------- */ .jqtl-event-view, .timeline-event-view { position: relative; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; align-items: center; align-content: space-between; transition: all 0.5s ease; } .jqtl-event-image-wrapper { flex-order: 0; flex-grow: 1; align-self: center; } .jqtl-event-image { width: 100%; height: auto; } .jqtl-event-title { flex-order: 0; flex-grow: 1; align-self: flex-start; padding: 1rem; &> .event-content { color: $offtext; } } .jqtl-event-content { flex-order: 0; flex-grow: 1; align-self: stretch; padding: 1rem; } .jqtl-event-meta { flex-order: 0; flex-grow: 1; align-self: flex-end; padding: 0.5rem 1rem; } /* ---------------------------------------------------------------------------- * Present Time Marker * ---------------------------------------------------------------------------- */ .jqtl-present-time { position: absolute; left: -9999px; top: -9999px; width: 1px; border-left: dotted 1px $marker; z-index: 21; &::before, &::after { content: ''; position: absolute; border-radius: 50%; width: 5px; height: 5px; background-color: $marker; z-index: 22; } &::before { top: calc(5px / -2); left: -3px; } &::after { bottom: calc(5px / -2); left: -3px; } } /* ---------------------------------------------------------------------------- * Footer style * ---------------------------------------------------------------------------- */ .jqtl-footer { margin: 0.25em 0; padding: 0 0.25em; width: auto; display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: space-between; align-items: center; .jqtl-range-meta { width: 100%; } .jqtl-footer-content { width: 100%; text-align: center; } } /* ---------------------------------------------------------------------------- * Builtin Loader style * ---------------------------------------------------------------------------- */ .jqtl-loader { position: absolute; display: block; visibility: hidden; top: 0; left: 0; width: 100%; height: 100%; margin: auto; opacity: 0; z-index: 30; transition: all 0.3s; &[data-state^=show] { visibility: visible; opacity: 1; } &[data-state^=hid] { visibility: hidden; opacity: 0; } } /* Wave Type */ .jqtl-loading { position: relative; top: 50%; left: 50%; margin: auto; span { display: block; bottom: 0px; width: 9px; height: 5px; background: rgba($text, 0.15); position: absolute; animation: loader 1.5s infinite ease-in-out; &:nth-child(2) { left: 11px; animation-delay: 0.2s; } &:nth-child(3) { left: 22px; animation-delay: 0.4s; } &:nth-child(4) { left: 33px; animation-delay: 0.6s; } &:nth-child(5) { left: 44px; animation-delay: 0.8s; } } } @keyframes loader { 0% { height: 5px; transform: translateY(0px); background: rgba($text, 0.15); } 25% { height: 30px; transform: translateY(15px); background: rgba($text, 0.3); } 50% { height: 5px; transform: translateY(0px); background: rgba($text, 0.15); } 100% { height: 5px; transform: translateY(0px); background: rgba($text, 0.15); } } /* ---------------------------------------------------------------------------- * Others * ---------------------------------------------------------------------------- */ #jqtl-str-ruler { position: absolute; left: -9999px; top: -9999px; visibility: hidden; white-space: nowrap; } .jqtl-icon { position: relative; display: inline-block; margin-top: auto; margin-bottom: auto; min-width: 1em; min-height: 1em; width: 1.25em; height: 1.25em; vertical-align: middle; text-align: center; background-image: url("data:image/svg+xml;utf-8,"); background-size: contain; background-position: center center; background-repeat: no-repeat; }