1.dwtimeline { 2 display: flow-root; 3 /* Timeline markers - Circle: max 2 signs, Ellipsis: 3-4 signs 4 Custom property's: 5 Standard vertical: 6 --4sizewidth: 25px; Circle 25px Ellipsis 50px 7 --4sizeright: -17px; Circle -17px Ellipsis -29px 8 Small screen vertical: 9 --4sizesmallleft40: 40px; Circle 40px Ellipsis 60px 10 --4sizesmallleft50: 50px; Circle 50px Ellipsis 70px 11 --4sizesmallleft4: 4px; Circle 4px Ellipsis -10px 12 Standard horizontal: 13 --4sizewidthhorz: 20px; Circle 20px Ellipsis 50px 14 --4sizerighthorz: -14px; Circle -14px Ellipsis -29px 15 */ 16 --4sizewidth: 25px; 17 --4sizeright: -17px; 18 --4sizesmallleft40: 40px; 19 --4sizesmallleft50: 50px; 20 --4sizesmallleft4: 4px; 21 --4sizewidthhorz: 20px; 22 --4sizerighthorz: -14px; 23} 24 25/* The actual timeline (the vertical ruler) */ 26.timeline-vert { 27 box-sizing: border-box; 28 position: relative; 29 max-width: 1200px; 30 margin: 0 auto; 31} 32 33/* The actual timeline (the vertical ruler) */ 34.timeline-vert::after { 35 content: ''; 36 position: absolute; 37 width: 6px; 38 background-color: @ini_text; 39 top: 0; 40 bottom: 0; 41 left: 50%; 42 margin-left: -3px; 43} 44 45/* Container around content */ 46.container-vert { 47 padding: 10px 40px; 48 position: relative; 49 background-color: inherit; 50 width: 50%; 51 box-sizing: border-box; 52 margin-left: unset; 53 margin-right: unset; 54} 55 56/* The circles on the timeline */ 57.container-vert.tl-left::before, .container-vert.tl-right::before { 58 content: attr(data-point); 59 display: inline-block; 60 position: absolute; 61 width: var(--4sizewidth); 62 height: 25px; 63 right: var(--4sizeright); 64 font-size: 1.2em; 65 font-weight: unset; 66 text-align: center; 67 line-height: 1.5em; 68 background-color: @ini_background; 69 border: 4px solid @ini_link; 70 top: 15px; 71 border-radius: 50%; 72 z-index: 1; 73 box-sizing: unset; 74 color: @ini_link; 75} 76 77/* invert color on timeline point on hover */ 78.container-vert.tl-left:hover::before, .container-vert.tl-right:hover::before { 79 background-color: @ini_link; 80 color: @ini_background; 81} 82 83/* Place the container to the left */ 84.container-vert.tl-left { 85 left: 0; 86} 87 88/* Place the container to the right */ 89.container-vert.tl-right { 90 left: 50%; 91} 92 93/* Place the container to center */ 94.container-vert.tl-top, .container-vert.tl-bottom { 95 padding: 0; 96 width: 30%; 97 z-index: 1; 98 margin: 10px auto; 99 text-align: center; 100} 101 102/* Add arrows to the top container (pointing down) */ 103.container-vert.tl-top::after { 104 content: ''; 105 height: 0; 106 position: absolute; 107 top: 100%; 108 left: 50%; 109 width: 0; 110 margin-left: -10px; 111 z-index: 1; 112 border: medium solid @ini_background_neu; 113 border-width: 10px 10px 0px 10px; 114 border-color: @ini_background_neu transparent transparent transparent; 115} 116 117/* Add arrows to the bottom container (pointing up) */ 118.container-vert.tl-bottom::after { 119 content: ''; 120 height: 0; 121 position: absolute; 122 bottom: 100%; 123 left: 50%; 124 width: 0; 125 margin-left: -10px; 126 z-index: 1; 127 border: medium solid @ini_background_neu; 128 border-width: 0px 10px 10px 10px; 129 border-color: transparent transparent @ini_background_neu transparent; 130} 131 132 133/* Add arrows to the left container (pointing right) */ 134.container-vert.tl-left::after { 135 content: ''; 136 height: 0; 137 position: absolute; 138 top: 22px; 139 width: 0; 140 z-index: 1; 141 right: 30px; 142 border: medium solid @ini_background_neu; 143 border-width: 10px 0 10px 10px; 144 border-color: transparent transparent transparent @ini_background_neu; 145} 146 147/* Add arrows to the right container (pointing left) */ 148.container-vert.tl-right::after { 149 content: ''; 150 height: 0; 151 position: absolute; 152 top: 22px; 153 width: 0; 154 z-index: 1; 155 left: 31px; 156 border: medium solid white; 157 border-width: 10px 10px 10px 0; 158 border-color: transparent @ini_background_neu transparent transparent; 159} 160 161/* Fix the circle for containers on the right side */ 162.container-vert.tl-right::before { 163 left: var(--4sizeright); 164} 165 166/* The actual content */ 167.tlcontent { 168 padding: 10px 10px; 169 background-color: @ini_background_neu; 170 position: relative; 171 border-radius: 6px; 172 color: @ini_text; 173 white-space: normal; 174 text-align: unset; 175} 176 177/* description of milestone, removed <h3> */ 178.msdesc { 179 font-weight: bold; 180 font-size: 1.1em; 181 padding: 5px; 182 text-align: center; 183 color: @ini_text; 184} 185 186/* Titles of timeline and milestones, removed <h2> */ 187.mstitle, .tltitle { 188 font-weight: bold; 189 font-size: 1.4em; 190 padding: 5px; 191 color: @ini_text; 192} 193 194/* fix for space arround paragraph */ 195.mstitle > p { 196 margin-bottom: 0; 197} 198 199/* set the Header to left or */ 200.container-vert.tl-left .tlcontent .mstitle { 201 text-align: right; 202} 203 204/* right */ 205.container-vert.tl-right .tlcontent .mstitle { 206 text-align: left; 207} 208 209/* Horizontal TimeLine */ 210.timeline-horz { 211 box-sizing: border-box; 212 white-space: nowrap; 213 overflow-x: scroll; 214 padding: 30px 0 10px 0; 215 position: relative; 216 margin: 0 auto; 217} 218 219/* The actual timeline (the horizontal ruler) */ 220.timeline-horz-line { 221 height: 4px; 222 background: @ini_background_neu; 223 width: 100%; 224 position: relative; 225 top: 16px; 226} 227 228/* a smaller bottom container */ 229.container-horz { 230 display: inline-block; 231 vertical-align: top; 232 padding: 10px 10px 10px 10px; 233 position: relative; 234 background-color: inherit; 235 width: 33%; 236 margin-left: -2px; 237 margin-right: -2px; 238 text-align: center; 239 box-sizing: border-box; 240} 241 242/* The circles on the timeline at top of container*/ 243.container-horz::before { 244 content: attr(data-point); 245 position: absolute; 246 width: var(--4sizewidthhorz); 247 height: 20px; 248 font-size: 1em; 249 font-weight: unset; 250 text-align: center; 251 line-height: 20px; 252 background-color: @ini_background; 253 border: 3px solid @ini_link; 254 color: @ini_link; 255 top: -30px; 256 left: 50%; 257 margin-left: var(--4sizerighthorz); 258 border-radius: 50%; 259 z-index: 1; 260 box-sizing: unset; 261} 262 263/* invert color on timeline point on hover */ 264.container-horz:hover::before { 265 background-color: @ini_link; 266 color: @ini_background; 267} 268 269/* Add arrows to the container (pointing up) */ 270.container-horz::after { 271 content: ''; 272 height: 0; 273 position: absolute; 274 bottom: 100%; 275 left: 50%; 276 width: 0; 277 margin-left: -10px; 278 margin-bottom: -10px; 279 z-index: 1; 280 border: medium solid @ini_background_neu; 281 border-width: 0 10px 10px 10px; 282 border-color: transparent transparent @ini_background_neu transparent; 283} 284 285/* Media queries - Responsive timeline on screens less than 600px wide */ 286 287@media (max-width: 600px) { 288 /* Place the timeline to the left */ 289 .timeline::after { 290 left: 31px; 291 } 292 293 .timeline-vert { 294 left: 0; 295 } 296 297 /* Full-width containers */ 298 .container-vert { 299 width: 100% !important; 300 padding-left: var(--4sizesmallleft50) !important; 301 padding-right: 10px !important; 302 } 303 304 /* Make sure that all arrows are pointing leftwards */ 305 .container-vert::before { 306 left: var(--4sizesmallleft40); 307 border: medium solid @ini_background_alt; 308 border-width: 10px 10px 10px 0; 309 border-color: transparent @ini_background_alt transparent transparent; 310 } 311 312 .timeline-vert::after { 313 left: 20px; 314 } 315 316 /* Make sure all circles are at the same spot */ 317 .container-vert.tl-left::after, .container-vert.tl-right::after { 318 left: 15px; 319 } 320 321 /* Make all right containers behave like the left ones */ 322 .container-vert.tl-right { 323 left: 0; 324 } 325 326 .container-vert.tl-left::before { 327 left: var(--4sizesmallleft4); 328 } 329 330 .container-vert.tl-right { 331 left: 0; 332 } 333 334 .container-vert.tl-right::before { 335 left: var(--4sizesmallleft4); 336 } 337 338 .container-vert.tl-right::after { 339 left: var(--4sizesmallleft40); 340 } 341 342 .container-vert.tl-left::after { 343 left: var(--4sizesmallleft40); 344 border: medium solid white; 345 border-width: 10px 10px 10px 0; 346 border-color: transparent #ddd transparent transparent; 347 } 348 349 .container-vert .mstitle { 350 text-align: center !important; 351 } 352 353 .container-vert.tl-top { 354 padding-left: 0 !important; 355 padding-right: 0 !important; 356 } 357 358 .container-vert.tl-top::after { 359 left: 20px; 360 } 361 362 .container-vert.tl-top .tlcontent { 363 border-radius: 6px 6px 6px 6px; 364 } 365 366 .container-vert.tl-bottom { 367 padding-left: 0 !important; 368 padding-right: 0 !important; 369 } 370 371 .tl-bottom .tlcontent { 372 border-radius: 6px 6px 6px 6px; 373 } 374 375 .container-vert.tl-bottom::after { 376 left: 20px; 377 } 378} 379 380/* dwtimeline: error message */ 381@dwtl-error-accent: #e03131; // Akzent (rot) 382@dwtl-error-bg: #fff5f5; // zartes Rot 383@dwtl-error-border: #f2c8c8; // helle Kontur 384@dwtl-error-text: #7a1f1f; // gut lesbar auf hell 385 386.plugin_dwtimeline_error { 387 display: block; 388 margin: 0.8em 0; 389 padding: 0.75em 0.9em; 390 background: @dwtl-error-bg; 391 color: @dwtl-error-text; 392 border: 1px solid @dwtl-error-border; 393 border-left: 4px solid @dwtl-error-accent; 394 border-radius: 4px; 395 line-height: 1.45; 396 font-size: 0.95em; 397 398 a { 399 color: inherit; 400 text-decoration: underline; 401 } 402} 403 404/* dwtimeline: error message Dark Mode */ 405@media (prefers-color-scheme: dark) { 406 .plugin_dwtimeline_error { 407 @dwtl-dark-bg: fadeout(@dwtl-error-accent, 85%); // sehr transparentes Rot 408 @dwtl-dark-border: fadeout(@dwtl-error-accent, 55%); 409 @dwtl-dark-text: mix(#fff, @dwtl-error-accent, 85%); 410 411 background: @dwtl-dark-bg; 412 border-color: @dwtl-dark-border; 413 color: @dwtl-dark-text; 414 } 415}