timeline.scss 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. @use 'mixins/mixins' as *;
  2. @use 'mixins/var' as *;
  3. @use 'common/var' as *;
  4. @mixin alternate-padding {
  5. padding-left: 20px;
  6. padding-right: 20px;
  7. }
  8. @mixin alternate-wrapper-start {
  9. .#{$namespace}-timeline-item__wrapper {
  10. width: calc(50% - 28px);
  11. left: calc(50% - getCssVar('timeline-node-size-large') / 2);
  12. padding-left: 28px;
  13. }
  14. }
  15. @mixin alternate-wrapper-end {
  16. .#{$namespace}-timeline-item__wrapper {
  17. width: calc(50% - 28px + getCssVar('timeline-node-size-large') / 2);
  18. text-align: right;
  19. padding-right: 28px;
  20. }
  21. }
  22. @include b(timeline) {
  23. @include set-component-css-var('timeline', $timeline);
  24. }
  25. @include b(timeline) {
  26. margin: 0;
  27. font-size: getCssVar('font-size', 'base');
  28. list-style: none;
  29. .#{$namespace}-timeline-item:last-child {
  30. .#{$namespace}-timeline-item__tail {
  31. display: none;
  32. }
  33. }
  34. .#{$namespace}-timeline-item__center {
  35. display: flex;
  36. align-items: center;
  37. .#{$namespace}-timeline-item__wrapper {
  38. width: 100%;
  39. }
  40. .#{$namespace}-timeline-item__tail {
  41. top: 0;
  42. }
  43. }
  44. .#{$namespace}-timeline-item__center:first-child {
  45. .#{$namespace}-timeline-item__tail {
  46. height: calc(50% + 10px);
  47. top: calc(50% - 10px);
  48. }
  49. }
  50. .#{$namespace}-timeline-item__center:last-child {
  51. .#{$namespace}-timeline-item__tail {
  52. display: block;
  53. height: calc(50% - 10px);
  54. }
  55. }
  56. @include when(start) {
  57. padding-left: 40px;
  58. padding-right: 0;
  59. }
  60. @include when(end) {
  61. padding-left: 0;
  62. padding-right: 40px;
  63. }
  64. @include when(alternate) {
  65. @include alternate-padding;
  66. .#{$namespace}-timeline-item:nth-child(2n + 1) {
  67. @include alternate-wrapper-start;
  68. }
  69. .#{$namespace}-timeline-item:nth-child(2n) {
  70. @include alternate-wrapper-end;
  71. }
  72. }
  73. @include when(alternate-reverse) {
  74. @include alternate-padding;
  75. .#{$namespace}-timeline-item:nth-child(2n + 1) {
  76. @include alternate-wrapper-end;
  77. }
  78. .#{$namespace}-timeline-item:nth-child(2n) {
  79. @include alternate-wrapper-start;
  80. }
  81. }
  82. }