progress.html 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. ---
  2. layout: default
  3. title: Progress
  4. page-header: Progress
  5. page-menu: base.progress
  6. permalink: progress.html
  7. ---
  8. <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-3">
  9. <div class="col">
  10. <div class="card">
  11. <div class="card-body">
  12. <h3 class="card-title">Default</h3>
  13. <div class="space-y">
  14. {% include "ui/progress.html" value="0" %}
  15. {% include "ui/progress.html" value="20" %}
  16. {% include "ui/progress.html" value="40" %}
  17. {% include "ui/progress.html" value="100" %}
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. <div class="col">
  23. <div class="card">
  24. <div class="card-body">
  25. <h3 class="card-title">With value</h3>
  26. <div class="space-y">
  27. {% include "ui/progress.html" value="10" show-value size="lg" %}
  28. {% include "ui/progress.html" value="20" show-value size="lg" %}
  29. {% include "ui/progress.html" value="90" show-value size="lg" %}
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="col">
  35. <div class="card">
  36. <div class="card-body">
  37. <h3 class="card-title">Colors</h3>
  38. <div class="space-y">
  39. {% include "ui/progress.html" color="blue" value="20" %}
  40. {% include "ui/progress.html" color="green" value="40" %}
  41. {% include "ui/progress.html" color="yellow" value="60" %}
  42. {% include "ui/progress.html" color="red" value="80" %}
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="col">
  48. <div class="card">
  49. <div class="card-body">
  50. <h3 class="card-title">Sizes</h3>
  51. <div class="space-y">
  52. {% include "ui/progress.html" value="20" size="sm" %}
  53. {% include "ui/progress.html" value="40" %}
  54. {% include "ui/progress.html" value="60" size="lg" %}
  55. {% include "ui/progress.html" value="80" size="xl" %}
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="col">
  61. <div class="card">
  62. <div class="card-body">
  63. <h3 class="card-title">Indeterminate</h3>
  64. <div class="space-y">
  65. {% include "ui/progress.html" indeterminate=true %}
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="col">
  71. <div class="card">
  72. <div class="card-body">
  73. <h3 class="card-title">Multiple values</h3>
  74. <div class="space-y">
  75. {% include "ui/progress.html" values="20,30,10" %}
  76. {% include "ui/progress.html" values="10,20,30,40" class="progress-separated" %}
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="col">
  82. <div class="card">
  83. <div class="card-body">
  84. <h3 class="card-title">Striped</h3>
  85. <div class="space-y">
  86. {% include "ui/progress.html" color="blue" value="20" striped %}
  87. {% include "ui/progress.html" color="green" value="40" striped %}
  88. {% include "ui/progress.html" color="yellow" value="60" striped %}
  89. {% include "ui/progress.html" color="red" value="80" striped %}
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="col">
  95. <div class="card">
  96. <div class="card-body">
  97. <h3 class="card-title">Animated</h3>
  98. <div class="space-y">
  99. {% include "ui/progress.html" value="20" striped animated %}
  100. {% include "ui/progress.html" value="40" color="green" striped animated %}
  101. {% include "ui/progress.html" value="60" color="yellow" striped animated %}
  102. {% include "ui/progress.html" value="80" color="red" striped animated %}
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="col">
  108. <div class="card">
  109. <div class="card-body">
  110. <h3 class="card-title">
  111. Animated with JavaScript
  112. </h3>
  113. <div class="row align-items-center g-0">
  114. <div class="col">
  115. {% include "ui/progress.html" value="0" id="progress-animated" %}
  116. </div>
  117. <div class="col-2 text-end" id="progress-animated-value">
  118. 0%
  119. </div>
  120. </div>
  121. <div class="btn-list mt-3">
  122. <button class="btn btn-sm" id="progress-animated-0">0%</button>
  123. <button class="btn btn-sm" id="progress-animated-10">10%</button>
  124. <button class="btn btn-sm" id="progress-animated-50">50%</button>
  125. <button class="btn btn-sm" id="progress-animated-100">100%</button>
  126. <button class="btn btn-sm ms-3" id="progress-animated-minus-10">-10%</button>
  127. <button class="btn btn-sm" id="progress-animated-add-10">+10%</button>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <div class="col">
  133. <div class="card">
  134. <div class="card-body">
  135. <h3 class="card-title">
  136. Steps Progress
  137. </h3>
  138. <div class="space-y">
  139. {% include "ui/progress-steps.html" count=3 %}
  140. {% include "ui/progress-steps.html" count=5 active=4 %}
  141. {% include "ui/progress-steps.html" count=10 color="red" %}
  142. {% include "ui/progress-steps.html" count=8 color="green" active=8 %}
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="col">
  148. <div class="card">
  149. <div class="card-body">
  150. <h3 class="card-title">
  151. Progress Background
  152. </h3>
  153. <div class="space-y">
  154. {% include "ui/progressbg.html" value="85" text="Poland" show-value=true %}
  155. {% include "ui/progressbg.html" value="65" text="Germany" show-value=true %}
  156. {% include "ui/progressbg.html" value="45" text="United States" show-value=true %}
  157. {% include "ui/progressbg.html" value="25" text="France" show-value=true %}
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <div class="col">
  163. <div class="card">
  164. <div class="card-body">
  165. <h3 class="card-title">
  166. Progress Background Colors
  167. </h3>
  168. <div class="space-y">
  169. {% include "ui/progressbg.html" value="75" text="Success" color="success-lt" show-value=true %}
  170. {% include "ui/progressbg.html" value="60" text="Warning" color="warning-lt" show-value=true %}
  171. {% include "ui/progressbg.html" value="40" text="Danger" color="danger-lt" show-value=true %}
  172. {% include "ui/progressbg.html" value="90" text="Info" color="info-lt" show-value=true %}
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. <div class="col">
  178. <div class="card">
  179. <div class="card-body">
  180. <h3 class="card-title">
  181. Progress Description
  182. </h3>
  183. <div class="space-y">
  184. {% include "ui/progress-description.html" label="Project completion" value="85" color="green" %}
  185. {% include "ui/progress-description.html" label="Storage usage" description="2.4GB of 5GB" value="48" color="blue" %}
  186. {% include "ui/progress-description.html" label="Download progress" value="75" color="yellow" %}
  187. {% include "ui/progress-description.html" label="Skills assessment" description="HTML/CSS" value="92" color="red" %}
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. <div class="col">
  193. <div class="card">
  194. <div class="card-body">
  195. <h3 class="card-title">
  196. Progress Description Sizes
  197. </h3>
  198. <div class="space-y">
  199. {% include "ui/progress-description.html" label="Small progress" value="60" size="sm" color="blue" %}
  200. {% include "ui/progress-description.html" label="Default progress" value="70" color="green" %}
  201. {% include "ui/progress-description.html" label="Large progress" value="80" size="lg" color="orange" %}
  202. {% include "ui/progress-description.html" label="Extra large" value="90" size="xl" color="purple" %}
  203. </div>
  204. </div>
  205. </div>
  206. </div>
  207. </div>
  208. {% capture_script -%}
  209. <!-- BEGIN SCRIPT OF ANIMATION -->
  210. <script>
  211. /*
  212. This script is for animation of the last progress bar
  213. It increases the progress bar value by a random amount every 2 seconds until it reaches 100%
  214. When it reaches 100%, it changes the color to green and stops the animation
  215. This is just a demo script to show how to animate the progress bar. You can modify it as needed.
  216. */
  217. document.addEventListener("DOMContentLoaded", function () {
  218. var width = 0;
  219. var setWidth = function(w) {
  220. width = Math.min(Math.max(w, 0), 100);
  221. progress.querySelector('.progress-bar').style.width = width + '%';
  222. progress.querySelector('.progress-bar').setAttribute('aria-valuenow', width);
  223. document.getElementById('progress-animated-value').innerText = width + '%';
  224. if (width >= 100) {
  225. progress.querySelector('.progress-bar').classList.add('bg-green');
  226. } else {
  227. progress.querySelector('.progress-bar').classList.remove('bg-green');
  228. }
  229. }
  230. var progress = document.getElementById('progress-animated');
  231. var increment = 0;
  232. var interval = setInterval(function () {
  233. increment = Math.ceil(Math.random() * 10);
  234. setWidth(width + increment);
  235. if (width >= 100) {
  236. clearInterval(interval);
  237. }
  238. }, 2000);
  239. document.getElementById('progress-animated-0').addEventListener('click', function() {
  240. setWidth(0);
  241. });
  242. document.getElementById('progress-animated-add-10').addEventListener('click', function() {
  243. setWidth(width + 10);
  244. });
  245. document.getElementById('progress-animated-minus-10').addEventListener('click', function() {
  246. setWidth(width - 10);
  247. });
  248. document.getElementById('progress-animated-100').addEventListener('click', function() {
  249. setWidth(100);
  250. });
  251. });
  252. </script>
  253. <!-- END SCRIPT OF ANIMATION -->
  254. {%- endcapture_script -%}