path.css 4.8 KB

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