path.css 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. .path-box {
  2. width: 100%;
  3. height: 100%;
  4. background: #e2f6f3; }
  5. .path-box .carousel {
  6. height: 100%;
  7. display: flex;
  8. flex-direction: column;
  9. justify-content: center;
  10. align-items: center; }
  11. .path-box .carousel .carousel-inner {
  12. width: 89%;
  13. height: auto; }
  14. .path-box .carousel .carousel-control {
  15. width: 4.5%; }
  16. .path-box .carousel .carousel-control.carousel-control-prev {
  17. background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.2)); }
  18. .path-box .carousel .carousel-control.carousel-control-next {
  19. background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.1)); }
  20. .path-box .round-box {
  21. position: relative;
  22. width: 100%;
  23. height: auto;
  24. display: flex;
  25. justify-content: center;
  26. padding-bottom: 20px;
  27. --nodeW: 50px;
  28. --color: #5ed0bd;
  29. --color: #70ad47; }
  30. .path-box .round-box .line-v {
  31. height: calc(100% - 15px - var(--nodeW));
  32. width: 10px;
  33. background-color: var(--color);
  34. position: absolute;
  35. top: var(--nodeW);
  36. left: calc(50% - 4px);
  37. z-index: 0; }
  38. .path-box .round-box .line-v:before {
  39. content: "";
  40. position: absolute;
  41. border-left: 10px solid transparent;
  42. border-right: 10px solid transparent;
  43. border-top: 20px solid var(--color);
  44. left: -5px;
  45. bottom: -15px; }
  46. .path-box .round-box .round-node {
  47. position: relative;
  48. width: var(--nodeW);
  49. height: var(--nodeW);
  50. border-radius: 50%;
  51. color: #fff;
  52. border: 1px solid var(--color);
  53. background: var(--color);
  54. display: flex;
  55. justify-content: center;
  56. align-items: center;
  57. z-index: 1; }
  58. .path-box .round-box .round-node.start-node {
  59. width: auto;
  60. height: calc(var(--nodeW) - 10px);
  61. white-space: nowrap;
  62. padding: 5px 20px;
  63. border-radius: 4px; }
  64. .path-box .round-box .round-node.start-node:before {
  65. border: none; }
  66. .path-box .round-box .sfb-box {
  67. width: 42%;
  68. min-height: 100px;
  69. border: 2px solid var(--color);
  70. border-radius: 5px;
  71. padding: 0;
  72. margin-top: 10px;
  73. --w: calc(4%);
  74. --sw: 170px;
  75. --margin: calc(var(--w)); }
  76. .path-box .round-box .sfb-box:before {
  77. content: "";
  78. position: absolute;
  79. background: var(--color);
  80. width: var(--w);
  81. height: 10px;
  82. top: calc(var(--nodeW)/2 - 5px); }
  83. .path-box .round-box .sfb-box .sfb-title {
  84. width: 100%;
  85. text-align: center;
  86. font-size: 1rem;
  87. font-weight: 600;
  88. padding: 5px 0;
  89. border-bottom: 1px solid var(--color);
  90. color: #fff;
  91. background: var(--color);
  92. border-bottom: 1px solid var(--color); }
  93. .path-box .round-box .sfb-box .sbf-body {
  94. padding: 5px 10px; }
  95. .path-box .round-box .sfb-box .sbf-body .sf-box {
  96. width: 100%;
  97. border: 1px solid var(--color);
  98. border-radius: 3px;
  99. margin: 5px 0;
  100. display: flex;
  101. border-radius: 20px; }
  102. .path-box .round-box .sfb-box .sbf-body .sf-box .sf-name {
  103. padding: 5px 10px;
  104. background: var(--color);
  105. width: 40%;
  106. max-width: 250px;
  107. text-align: center;
  108. color: #eee;
  109. white-space: nowrap;
  110. overflow: hidden;
  111. text-overflow: ellipsis;
  112. border-radius: 20px; }
  113. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box {
  114. width: 60%;
  115. display: flex;
  116. justify-content: center;
  117. align-items: center;
  118. border-radius: 0 20px 20px 0; }
  119. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node {
  120. position: relative;
  121. width: 20px;
  122. height: 20px;
  123. border-radius: 50%;
  124. border: 2px solid var(--color);
  125. background: var(--color);
  126. --line: 20px;
  127. margin: 0 calc(var(--line)/2); }
  128. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node:before {
  129. content: "";
  130. position: absolute;
  131. border-top: 5px solid transparent;
  132. border-bottom: 5px solid transparent;
  133. border-left: 10px solid var(--color);
  134. left: -10px;
  135. top: 4px; }
  136. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node:after {
  137. content: "";
  138. position: absolute;
  139. height: 5px;
  140. width: calc(var(--line) - 5px);
  141. left: 100%;
  142. background: var(--color);
  143. top: 6px; }
  144. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node:first-child:before {
  145. border: none; }
  146. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node:last-child:after {
  147. background: transparent; }
  148. .path-box .round-box .sfb-box .sbf-body .sf-box .fn-box .node:last-child:not(.end) {
  149. background: transparent; }
  150. .path-box .round-box .sfb-box.left {
  151. margin-right: var(--margin); }
  152. .path-box .round-box .sfb-box.left:before {
  153. right: calc(50% + var(--nodeW)/2); }
  154. .path-box .round-box .sfb-box.right {
  155. margin-left: var(--margin); }
  156. .path-box .round-box .sfb-box.right:before {
  157. left: calc(50% + var(--nodeW)/2); }
  158. .path-box .round-box:first-child {
  159. padding-bottom: 40px; }
  160. .path-box .round-box:first-child .line-v {
  161. height: calc(100% - 15px - var(--nodeW) + 10px);
  162. top: calc(var(--nodeW) - 10px); }
  163. .path-box .round-box.start {
  164. --color: #00817e; }
  165. .path-box .round-box.start .sfb-box .sbf-body .sf-box {
  166. background: #5ed0bd; }
  167. .path-box .round-box.end {
  168. --color: #4472c4; }
  169. .path-box .round-box.end .sfb-box .sbf-body .sf-box {
  170. background: #bdcde9; }