content logo

React Progress Bars:

React Progress Bar with Sharp Corners and Loading Effects

If you have a website, it is better to change its design. This code is the React Progress Bar with Sharp Corners and Loading Effects with a beautiful design. With the help of the following Progress Bar Loading Effect, you are able to represent your progression to your viewers with a beautiful theme. As the following code has a simple design, you can utilize it easily for all kinds of websites. So, download this Responsive Progress Bar for free and apply it on your website to engage your audiences.

We have provided the preview of this React Progress Bar Code below so that you can enjoy it. This preview shows the mentioned code beautifully, and you can realize its attraction. This Progress Bar Effect has a black background with white writings. The title has a larger font size, and other items are located down. You can see the amount of percentage of each item next to it, and there is a field at the bottom of each item. The amount percentage of each item is presented in red color. The more percentage you see, the more red the color contains areas of the field.

#

Progress Bar Loading Effect

#

Responsive Progress Bar

#

React Progress Bar Code

#

Progress Bar with Effect

<!-- This script got from frontendfreecode.com -->
<div id='app'></div><a style="font-size: 8pt; text-decoration: none" target="_blank" href="http://frontendfreecode.com">Free Frontend</a>
                                                                            
@import url('https://fonts.googleapis.com/css?family=Roboto:300');
body {
  background-color: #292929;
  color: white;
  font-family: 'Roboto', sans-serif;
}
.progress-line__outer {
  display: flex;
  margin: 15px auto;
}
const SKILLS_LIST = [
{
  label: 'HTML5/CSS3 - 95%',
  percentage: '95%' },
{
  label: 'ES6 / 95%',
  percentage: '95%' },
{
  label: 'React/Redux - 95%',
  percentage: '95%' },
{
  label: 'Angular - 50%',
  percentage: '50%' },
{
  label: 'Wordpress - 80%',
  percentage: '80%' },
{
  label: 'Webpack/Gulp - 90%',
  percentage: '90%' },
{
  label: 'Cypress/Mocha/Enzyme - 95%',
  percentage: '95%' }];
console.log(SKILLS_LIST);
const ProgressLine = ({ label, percentage, barBg, progresBg, barHeight }) => {
  const [widths, setWidths] = React.useState(0);
  React.useEffect(() => {
    requestAnimationFrame(() => setWidths(percentage));
  }, [percentage]);
  return /*#__PURE__*/(
    React.createElement("section", { className: "progress-line" }, /*#__PURE__*/
    React.createElement("span", { className: "progress-line__label" }, label), /*#__PURE__*/
    React.createElement("div", {
      className: "progress-line__outer",
      style: {
        background: barBg,
        height: `${barHeight}px` } }, /*#__PURE__*/
    React.createElement("div", {
      className: "progress-line__inner",
      style: {
        width: widths,
        background: progresBg,
        transition: 'width 2s' } }))));
};
const Skills = () => /*#__PURE__*/
React.createElement("section", { className: "container" }, /*#__PURE__*/
React.createElement("div", { className: "row" }, /*#__PURE__*/
React.createElement("div", { className: "col-12 pt-5" }, /*#__PURE__*/
React.createElement("h1", null, "React Loading bars"))), /*#__PURE__*/
React.createElement("div", { className: "row" }, /*#__PURE__*/
React.createElement("div", { className: "col-12 py-5" },
SKILLS_LIST.map((skill, index) => /*#__PURE__*/ // index: static values
React.createElement(ProgressLine, {
  key: index,
  barHeight: "15",
  barBg: "#efefef",
  progresBg: "rgba(255, 82, 82, .7)",
  label: skill.label,
  percentage: skill.percentage })))));
ReactDOM.render( /*#__PURE__*/React.createElement(Skills, null), document.getElementById('app'));
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react/16.13.0/umd/react.production.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.0/umd/react-dom.production.min.js'></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- This script got from frontendfreecode.com -->

<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react/16.13.0/umd/react.production.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.0/umd/react-dom.production.min.js'></script>
<style>
@import url('https://fonts.googleapis.com/css?family=Roboto:300');
body {
  background-color: #292929;
  color: white;
  font-family: 'Roboto', sans-serif;
}
.progress-line__outer {
  display: flex;
  margin: 15px auto;
}
</style>

</head>
<body>
<div id='app'></div><div id="bcl"><a style="font-size:8pt;text-decoration:none;" href="http://www.devanswer.com">Free Frontend</a></div>
<script>
const SKILLS_LIST = [
{
  label: 'HTML5/CSS3 - 95%',
  percentage: '95%' },
{
  label: 'ES6 / 95%',
  percentage: '95%' },
{
  label: 'React/Redux - 95%',
  percentage: '95%' },
{
  label: 'Angular - 50%',
  percentage: '50%' },
{
  label: 'Wordpress - 80%',
  percentage: '80%' },
{
  label: 'Webpack/Gulp - 90%',
  percentage: '90%' },
{
  label: 'Cypress/Mocha/Enzyme - 95%',
  percentage: '95%' }];
console.log(SKILLS_LIST);
const ProgressLine = ({ label, percentage, barBg, progresBg, barHeight }) => {
  const [widths, setWidths] = React.useState(0);
  React.useEffect(() => {
    requestAnimationFrame(() => setWidths(percentage));
  }, [percentage]);
  return /*#__PURE__*/(
    React.createElement("section", { className: "progress-line" }, /*#__PURE__*/
    React.createElement("span", { className: "progress-line__label" }, label), /*#__PURE__*/
    React.createElement("div", {
      className: "progress-line__outer",
      style: {
        background: barBg,
        height: `${barHeight}px` } }, /*#__PURE__*/
    React.createElement("div", {
      className: "progress-line__inner",
      style: {
        width: widths,
        background: progresBg,
        transition: 'width 2s' } }))));
};
const Skills = () => /*#__PURE__*/
React.createElement("section", { className: "container" }, /*#__PURE__*/
React.createElement("div", { className: "row" }, /*#__PURE__*/
React.createElement("div", { className: "col-12 pt-5" }, /*#__PURE__*/
React.createElement("h1", null, "React Loading bars"))), /*#__PURE__*/
React.createElement("div", { className: "row" }, /*#__PURE__*/
React.createElement("div", { className: "col-12 py-5" },
SKILLS_LIST.map((skill, index) => /*#__PURE__*/ // index: static values
React.createElement(ProgressLine, {
  key: index,
  barHeight: "15",
  barBg: "#efefef",
  progresBg: "rgba(255, 82, 82, .7)",
  label: skill.label,
  percentage: skill.percentage })))));
ReactDOM.render( /*#__PURE__*/React.createElement(Skills, null), document.getElementById('app'));
</script>

</body>
</html>
Preview