1. First, we need fresh reactjs setup, and for that, we need to run below commands into out terminal, and also we should have latest node version installed on our system:
npx create-react-app my-awesome-project
cd my-awesome-project
npm start
2. Now we need to run below commands into our project terminal to get bootstrap and related modules into our reactjs application:
npm install [email protected] --save
npm start //For start project again
3. Finally for the main output, we need to add below code into our my-awesome-project/src/App.js file or if you have fresh setup then you can replace my-awesome-project/src/App.js file code with below code:
import React from 'react';
import './App.css';
import 'bootstrap/dist/css/bootstrap.min.css';
function App() {
return (
<div>
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="card card-lg">
<h6 class="card-header">
This Week
</h6>
<div class="card-body">
<div class="user-activity">
<div class="media">
<div class="media-img-wrap">
<div class="avatar avatar-sm">
<img src="https://bootdey.com/img/Content/avatar/avatar2.png" alt="user" class="avatar-img rounded-circle" />
</div>
</div>
<div class="media-body">
<div>
<span class="d-block mb-5"><span class="font-weight-500 text-dark text-capitalize">Laura Thompson</span><span class="pl-5">joined josh groben team.</span></span>
<span class="d-block font-13 mb-30">3 hours ago</span>
</div>
<div class="card d-inline-block w-sm-360p">
<div class="card-body">
<div class="d-flex flex-wrap">
<img class="d-86 rounded mb-15 mr-15" src="https://bootdey.com/img/Content/avatar/avatar1.png" alt="thumb" />
<div class="w-65">
<h6 class="mb-5">Team Josh Groben</h6>
<p>A fan club for josh groben songs</p>
<div class="avatar-group avatar-group-sm avatar-group-overlapped mt-10">
<div class="avatar">
<img src="https://bootdey.com/img/Content/avatar/avatar1.png" alt="user" class="avatar-img rounded-circle" />
</div>
<div class="avatar">
<img src="https://bootdey.com/img/Content/avatar/avatar2.png" alt="user" class="avatar-img rounded-circle" />
</div>
<div class="avatar">
<img src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="user" class="avatar-img rounded-circle" />
</div>
<div class="avatar">
<img src="https://bootdey.com/img/Content/avatar/avatar4.png" alt="user" class="avatar-img rounded-circle" />
</div>
<div class="avatar">
<span class="avatar-text avatar-text-green rounded-circle">
<span class="initial-wrap"><span>87+</span></span>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="card-footer text-muted justify-content-between">
<div><span class="text-dark">7,120</span> Members (87 new)</div>
<button class="btn btn-xs btn-primary ml-15 w-sm-100p">join</button>
</div>
</div>
</div>
</div>
<div class="media">
<div class="media-img-wrap">
<div class="avatar avatar-sm">
<img src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="user" class="avatar-img rounded-circle" />
</div>
</div>
<div class="media-body">
<div class="d-flex align-items-start">
<div>
<span class="d-block mb-5"><span class="font-weight-500 text-dark text-capitalize">Meayme Fletcher</span><span class="pl-5">liked photos</span></span>
<span class="d-block font-13 mb-30">6 hours ago</span>
</div>
<button class="btn btn-sm btn-primary ml-auto">follow</button>
</div>
<div class="d-flex flex-wrap">
<a href="#/" class="w-sm-150p w-80p mr-10 mb-10">
<img class="img-fluid rounded" src="https://bootdey.com/img/Content/avatar/avatar6.png" alt="Card image cap" />
</a>
<a href="#/" class="w-sm-150p w-80p mr-10 mb-10">
<img class="img-fluid rounded" src="https://bootdey.com/img/Content/avatar/avatar2.png" alt="Card image cap" />
</a>
<a href="#/" class="w-sm-150p w-80p mr-10 mb-10">
<img class="img-fluid rounded" src="https://bootdey.com/img/Content/avatar/avatar4.png" alt="Card image cap" />
</a>
<a href="#/" class="w-sm-150p w-80p mr-10 mb-10">
<img class="img-fluid rounded" src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="Card image cap" />
</a>
</div>
</div>
</div>
<div class="media">
<div class="media-img-wrap">
<div class="avatar avatar-sm">
<img src="https://bootdey.com/img/Content/avatar/avatar4.png" alt="user" class="avatar-img rounded-circle" />
</div>
</div>
<div class="media-body">
<div>
<span class="d-block mb-5">
<span class="font-weight-500 text-dark text-capitalize">Billy Flowers</span>
<span class="pl-5">
lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century who is thought to have
scrambled.
</span>
</span>
<span class="d-block font-13">1 day ago</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card card-lg">
<h6 class="card-header">
This Month
</h6>
<div class="card-body">
<div class="user-activity">
<div class="media pb-0">
<div class="media-img-wrap">
<div class="avatar avatar-sm">
<img src="https://bootdey.com/img/Content/avatar/avatar1.png" alt="user" class="avatar-img rounded-circle" />
</div>
</div>
<div class="media-body">
<div>
<span class="d-block mb-5">
<span class="font-weight-500 text-dark text-capitalize">Morgan Freeman</span><span class="pl-5">Until recently, the prevailing view assumed lorem ipsum was born as a nonsense text.</span>
<a href="#/" class="d-block word-break mt-5">https://.net/user/hencework/portfolio</a>
</span>
<span class="d-block font-13">32 days ago</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
);
}
export default App;
4. Now we need to add below code into our my-awesome-project/src/App.css file :
body{
background:#f5f5f5;
margin-top:20px;
}
/*Activity*/
.user-activity .media {
position: relative;
padding-bottom: 20px;
margin-left: 20px;
}
.user-activity .media .media-img-wrap {
position: absolute;
left: -20px;
}
.user-activity .media:after {
content: "";
position: absolute;
width: 1px;
height: calc(100% - 77px);
background: #eaecec;
top: 60px;
}
.user-activity .media .media-body {
border-bottom: 1px solid #eaecec;
padding-bottom: 30px;
margin-left: 40px;
min-width: 0;
}
.user-activity .media:last-child .media-body {
border-bottom: none;
}
.user-activity.user-activity-sm .media {
padding-bottom: 10px;
margin-left: 16px;
}
.avatar-group {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
}
.mt-10 {
margin-top: 10px !important;
}
.avatar-group.avatar-group-sm.avatar-group-overlapped .avatar {
margin-right: -10px;
}
.avatar-group.avatar-group-sm .avatar {
font-size: .6rem;
width: 2rem;
height: 2rem;
}
.avatar-group.avatar-group-overlapped .avatar {
margin-right: -13px;
}
@media (min-width: 576px){
.w-sm-150p {
width: 150px !important;
}
}
.w-80p {
width: 80px !important;
}
.mr-10 {
margin-right: 10px !important;
}
.mb-10 {
margin-bottom: 10px !important;
}
.user-activity.user-activity-sm .media .media-img-wrap {
left: -16px;
}
.user-activity.user-activity-sm .media:after {
height: calc(100% - 47px);
top: 40px;
}
.user-activity.user-activity-sm .media .media-body {
padding-bottom: 10px;
margin-left: 30px;
}
@media (max-width: 576px) {
.user-activity .media .media-body {
margin-left: 35px;
}
}
.user-activity .media .media-img-wrap {
position: absolute;
left: -20px;
}
.avatar.avatar-sm {
font-size: .9rem;
width: 2.625rem;
height: 2.625rem;
}
.avatar {
font-size: 1rem;
position: relative;
display: inline-block;
width: 3.875rem;
height: 3.875rem;
}
.avatar .avatar-img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.card {
border: none;
box-shadow: none;
margin-bottom: 20px;
}
@media (min-width: 576px){
.w-sm-360p {
width: 360px !important;
}
}
.font-weight-500 {
font-weight: 500 !important;
}
.text-dark {
color: #324148 !important;
}
.card.card-lg .card-header, .card.card-lg .card-footer {
padding: .9rem 1.5rem;
}
.card .card-header {
background: transparent;
border: none;
}
.card.card-lg .card-header, .card.card-lg .card-footer {
padding: .9rem 1.5rem;
}
.card .card-footer {
background: transparent;
border-color: #eaecec;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}