Next JS React Bootstrap || Tutorial || Design mobile ready responsive apps
Aug 15, 2023
Next JS React Bootstrap || Tutorial || Design mobile ready responsive apps
The ultimate bootstrap 5.2 tutorial. You start as a beginner and come out as an expert with live project and one page tutorial. Hi Logical People, this is an exhaustive tutorial to make you an expert in designing 100% mobile ready responsive apps. We start our journey by understanding the fundamentals and then we start using it as a standalone project and subsequently build a live project from scratch. Learn: ✔️ How to Get started ? ✔️ How to use (install) bootstrap as standalone project and with NEXT JS / React ✔️ How to setup VS Code for NEXTJS with typescript ✔️ How to create a responsive Navbar with hamburger icon ✔️ How to correctly import bootstrap in NEXTJS / React ✔️ Grid and NavBar in bootstrap with example ⭐️ Course Contents ⭐️ ⌨️ (0:00:00) Hello Logical People ⌨️ (0:00:22) Why Bootstrap ⌨️ (0:03:25) How to Get started ⌨️ (0:04:51) Bootstrap on a standalone project ⌨️ (0:10:33) Understanding YoutTube, LinkedIn, and AirBnb ⌨️ (0:16:07) VS Code IDE setup for NEXT JS and Bootstrap ⌨️ (0:21:03) Understanding the wireframe/Layout using MSPaint ⌨️ (0:24:27) Containers class ⌨️ (0:26:37) Live Project ⌨️ (0:28:36) Navbar ⌨️ (0:38:18) How to use icons (Bonus) ⌨️ (0:40:27) Main Banner- with spacing, margin and padding. ⌨️ (0:45:56) File Upload banner. How to create rows, cols, grids, and form controls. ⌨️ (1:00:14) How to center align a div (d-flex justify-content-center) ⌨️ (1:08:59) Cards with advance JSX syntax and map function on list ⌨️ (1:19:44) Designing a responsive footer ⌨️ (1:29:15) Closing Bootstrap 5: https://getbootstrap.com/ NEXTJS: https://nextjs.org/docs/getting-started NODE JS: https://nodejs.org/en/ VS CODE: https://code.visualstudio.com/ Next JS / React Fundamental series: • Next JS Tutorial || The ultimate gui… #bootstrap #nextjs #reactbootstrap
Content
0.199 -> Hey Logical People, GKV here.
4.519 -> in this tutorial we will learn
everything that you need to know
8.359 -> to to start building awesome looking
websites with the help of latest Bootstrap.
15.319 -> But I think the first question, the obvious
question that comes to mind is this.
19.719 -> Why on this green Beautiful!! earth should
you care for Bootstrap? And I think it's a
25.479 -> fair question and it's important to answer this
question before starting with this tutorial.
30.919 -> Number one: because everyone else is using it. I
know for a fact that LinkedIn, Twitter, Spotify,
36.919 -> AirBnb everybody is using Bootstrap.
40.279 -> Second reason is that it's 100 free. So you
don't have to pay any royalty to anyone.
46.119 -> And the third reason is that the front-end
developers are paid really well. I believe
50.519 -> that if you want to learn a front-end development
framework, Bootstrap is the one to go for and if
57.879 -> that is not enough motivation for you why don't
you come with me and I want to show you something.
63.159 -> I have arranged two websites for you. The
first one is called the 'biguglywebsite.com'.
68.599 -> Imagine that you Google something and you land
up to a website that looks something like this
72.919 -> or remotely like this. Something like this.
Would you ever, like literally ever go and
79.079 -> do any kind of business with this website and I
think the answer is obviously no. And now look
85.399 -> at this website 'speechai.com'. When you look
at this this app, this looks far more cleaner,
92.919 -> super minimalistic, and it looks bit more
engaging. You can actually see different contents
98.759 -> and separators sections and you know color
contrast and things like that. So let's get
106.039 -> started. So before we get started, I want
you to remember how you learned to ride a
112.439 -> bike. Like literally close your eyes and think
about the first time that you were able to rode
117.559 -> a bike. Did someone, you know maybe your mom or
your dad just asked you to hop on and try it?
123.319 -> Or you did or you did something radical? And when
I say radical I'm looking at this. Not that dude.
130.759 -> So before riding a bicycle did you
actually go about and learn about pedals?
136.439 -> chains? cranks? Did you learn about
maintaining balance for forward motion?
141.639 -> Or did you went ahead and got an advanced degree
in circular motion? or got a phd in physics?
147.079 -> And if answer to all those questions is NO,
then you are on a right tutorial because we
152.759 -> will not learn Bootstrap the way
you see on the screen right now.
156.279 -> But we will learn Bootstrap this way, which
means that we're gonna do things and I am we're
162.279 -> gonna we're gonna approach a problem and we're
gonna learn the tools along the way as and when
166.759 -> required. And I would I would argue that not for
just this tutorial but anything that you want to
172.279 -> learn in life, you should follow this approach.
Because this gives you a holistic picture and
177.479 -> it gives, it it helps you understand the 'WHY'
purpose of doing something, rather than just
182.519 -> mugging up the concepts and then not able to use
that or apply that in real projects. Beautiful!!
189.479 -> I think with that the first question that comes
to mind is how do I get started? And as and as
194.759 -> always we're gonna go to Google and look for how
how the hell do we get started with Bootstrap?
203.079 -> So I'm going to go to Google and I'll search for
Bootstrap 5. Because 5 is the latest version of
208.119 -> Bootstrap. If you click on this, the first link
that appears it will take you to basically get
213.479 -> started page and there's let me zoom in a little
bit so there's a lot there's a lot of information
219.159 -> um for getting started with Bootstrap.
It's the world's most popular framework for
223.479 -> building a responsive mobile first website blah
blah blah, but the quickest way to get started
229.799 -> is what they are emphasizing here. So the
Bootstrap offers two things. Number one is css
236.759 -> which basically gives the styling to
any page so the way you see the button
241.879 -> you know the colors the padding the spacing when
you click on it the way it moves the mouse over
249.239 -> effects everything comes from the css. And
Bootstrap also comes with a bundle of Javascript.
256.199 -> Now this Javascript helps us a lot of
things that are related to programming.
259.399 -> For example, when you click on a button this
dialog box opens up, when you click on this button
265.239 -> something opens up on the screen as an overlay
so these effects come via Javascript. So when you
270.439 -> click on this button this overlay goes back so all
these effects needs to be handled by Javascript.
277.559 -> Again just for a quick quick
pointer css is for styling
282.359 -> and Javascript for you know functionality
that needs some sort of programming.
291.079 -> So the first thing that I really want to
talk about is, how to use a Bootstrap on a
294.679 -> standalone project? Just to give you like 100%
concrete understanding of how Bootstrap works?
302.199 -> It's important to understand how Bootstrap
can be installed on a standalone project?
307.639 -> What I have done, I've arranged a test project
for you and as you can see on this test project we
314.679 -> have nothing much going on. The couple of things
that we have is this meta tag which is important
320.439 -> because with this meta tag Bootstrap understands
that okay everything needs to be device
327.639 -> dependent. Then I've given it a some give it some
title so this is just plain 'test.html' page.
336.359 -> And what I will do, I'm gonna go and delete this
340.199 -> I'm gonna delete this as well. I'm gonna
save it and what we will do we will go and
349.479 -> open this code in a browser. Just to see how this
looks? So here you go, this is my 'test.html'
356.839 -> and you can see that we have hello world. So
I'm gonna go back to Bootstrap.com and I'm
362.839 -> gonna copy the css from this. Like that. I'm
gonna paste it in the head section like this.
370.919 -> Now I want to style this head in a way
that it should look a little bit better.
375.879 -> Um maybe some padding, maybe
some styling and to do that
379.799 -> I'm gonna I'm gonna look for the documentation
that we have received from Bootstrap.
388.039 -> So if I go here and I say look at layout I've
got something called containers and okay.
398.919 -> It says, our default container class is
responsive fixed with container something
403.559 -> like that. So I'm just going to copy this
and we'll see if this class works for us.
409.959 -> I'm going to cut the hello world
here I'm going to paste here.
414.439 -> Save it and if we go back to our test.html and
refresh the page now you see that it got some
423.639 -> sort of styling. It it moved to the top which
is good and now let's see what else can we do.
433.239 -> Um I know for the fact that in the helpers we have
got colors and in utility we have got backgrounds
439.559 -> and borders. So I just want to play around
with this for a while. So I want I want to
443.239 -> see if I can give some background to this div
and in the documentation they are saying that
448.999 -> this is how you can apply, this is how you
can apply background. Okay. So I'm gonna go
455.799 -> back to background color I'm gonna copy um maybe
this one bg-light so I'm gonna go and copy this
466.359 -> come back here and I'm gonna paste it
and I'm gonna copy this as well I'm gonna
473.639 -> say hello world here. Now if I go back to
my test.html and refresh. Now you see that
480.279 -> we have got a div which I've got a light
background and this looks pretty nice.
487.799 -> I can go here and I can also say, for example,
dark save. Come back and refresh. Now this
494.679 -> the div becomes dark and I can have a text as
light. Refresh. So this is how you can do styling.
503.799 -> There's much more that we can that we're gonna
learn about Bootstrap but this is the starting
509.239 -> point that I wanted to show you. There's one
more thing that I want to highlight. Is if I
514.119 -> click on this device toolbar you see that how
nicely everything wraps up on a smaller device
522.999 -> so you see that the way the moment
I start scrolling through the
528.119 -> through the window size the text size and the
dimension and the floating and every styling
533.639 -> adjust itself accordingly. Kinda nice Right?
Now, let's look at one of the components that I
541.479 -> wanted to emphasize and that would be if I go to
components here and maybe I will go for a card.
551.559 -> This card looks good, so
I'm gonna copy everything.
554.999 -> I'm gonna put it in the container
so that it's also responsive.
561.639 -> Save it, refresh. now you see that we have a card
566.039 -> inside a container and just to
distinguish I'm gonna say bg
572.759 -> maybe light. So that we have a background for this
container. Here you go. I hope you're able to see
580.119 -> some difference. Now if I go here and I start
changing the screen size you should notice
586.759 -> how card is able to readjust its height width and
that's the beauty of using Bootstrap. Beautiful!!
595.639 -> I like it. And from here we're gonna stop using
Bootstrap as a standalone and next we're gonna
602.199 -> talk about how to use Bootstrap on a Next JS
or a react project. So I'm gonna see you there.
611.879 -> All right moving on to the next chapter and
where we will learn how to use Bootstrap
616.999 -> with next chairs or react framework or you can
extend this to any framework you like before
624.679 -> that I just want to give you a quick reminder
this is the methodology we're gonna follow
634.679 -> So now, before jumping into the coding and
understanding how Bootstrap is designed, let's
640.439 -> go and look at a couple of websites that you know
uses Bootstrap and try and understand their layout
646.519 -> and how things are how they design their app
right? So I have opened youtube in incognito mode
653.479 -> and I'm surprised to see what people are watching
in Canada anyway. So if you look at youtube,
660.519 -> it has a header section on top and then there
is sub header where you can do filtering
667.319 -> and then on the left side we have
a menu bar a vertical menu and
674.359 -> on in in the mid section we have all
the content that youtube want us to
678.039 -> see okay? I've also opened linkedin and if you go
to linkedin you would notice that linkedin also
685.639 -> has a header or a menu bar however the difference
between youtube's menu and linkedin's menu is that
691.959 -> youtube menu is static so if you scroll down
the page the menu or the layout does not change
696.999 -> it stays where it is however on linkedin
the menu goes scroll with the scroller.
704.519 -> Linkedin is designed little bit differently
compared to youtube of course so you see that
708.279 -> we have a header and then we have a section where
you can technically log in and then we have our
713.479 -> image which kind of depicts what linkedin is then
we have another section then we have next section
720.279 -> another section so they have designed they have
they have divided their website into different
724.439 -> sections which is okay and then at the end we have
a footer. I've also opened airbnb and you should
731.319 -> notice that airbnb also has a header then they
have sub filters if you scroll down you will see
737.719 -> that the header stays or it becomes static on the
top and then the content starts scrolling we also
744.439 -> have a small menu bar which opens something like
this and we've got couple of filters. Beautiful!!
751.399 -> So here are the topics that I noted from
youtube: it has a header which is static,
755.959 -> they have a left menu, they have a top
right sign in button and content in between.
761.959 -> Airbnb is almost like youtube: they've got a
header, they have a search bar, they've got a menu
768.119 -> and they have main content and I've also marked
down that their content looks like they have this
775.559 -> hair, they have this cards available different
cards right that we just saw a moment ago.
784.359 -> Excuse me, then. We've got LinkedIn and LinkedIn
got header which is not static something different
789.959 -> and then they've got few banners
and pages and then they have footer
794.039 -> with that understanding I would like to go back
to Bootstrap and can we use Bootstrap to do all
801.879 -> this? So I'm at the Bootstrap homepage. I'm gonna
go to components and if I open my notepad again.
810.919 -> the one thing that is common for
everything that they have a header.
815.959 -> sometimes static sometimes not and the
header is also called a navigation bar
824.039 -> or or as they call it navbar
830.279 -> If I go back to Bootstrap and we look for
components that are provided by Bootstrap to us,
836.199 -> I see there's something called navs and tabs. So
this provides us kind of navigation styling, okay?
846.599 -> which is good they've got different tabs
852.199 -> this is not where something which we are
not interested in let's look at nav bar
859.079 -> Now, this is something that I might be interested
in. It looks quite reasonable and quite relatable
865.959 -> to what we have, for example, here. Right, we
have a navbar. We have options, YouTube sign in,
872.919 -> and things like that. Okay, so we can provide that
because we can customize this navbar basically
879.719 -> okay there there are a few other styles
I can put image with tag with text
887.079 -> So you can scroll through the pages. I've done
this before, so I'm going to go back to responsive
890.919 -> behavior and I'm interested in this kind of nav.
But what this does is, so if I press ctrl+shift+I
899.399 -> and if I go to responsive behavior and I start
903.319 -> scrolling the window, you see that this navbar
collapses into a nice looking um button.
910.999 -> And if you remember that's what YouTube is also
doing. So this is something which we would like
915.079 -> to have. So that's one component that I
think would be useful for us. Beautiful!!
925.479 -> The other things all these websites have is a left
menu, sign in button, and then they have content.
932.359 -> So let's see what else we have here. We also have
buttons, so I think we can use buttons to create
938.999 -> sign in and login buttons, which is good. We
have looked through the cards, so I think we can
945.879 -> use cards to display different things. They also
have carousels, which basically works something
953.239 -> like this: So if you have moving content and
you would like it to slide through, that is
957.639 -> something which we can use. And there are a bunch
of other things that we're gonna have a look at
967.799 -> And now let's set up our project. So I've created
a folder and inside I've opened that folder.
976.519 -> What I would like to do is I would like
to click on this address bar and type cmd
980.519 -> and press enter. This should
open a command window for me.
985.319 -> And I'm going to go to Google and I'm going
to say "Next JS installation with typescript."
994.519 -> And I'm going to copy this command. If
you're not sure what this command is,
997.559 -> I have created another video
which you should watch.
1000.759 -> I recommend that because that will give you an
understanding of what this code and project setup
1005.639 -> is doing. So press enter and now it's going to
ask me about a couple of details. I'm going to
1011.319 -> quickly give that and I'm going to come back once
everything is updated. Lovely! So everything has
1017.879 -> been downloaded. I'm gonna close this window and
I'm gonna open my project in visual studio code
1023.879 -> again. If you if you're not sure how to do this,
please go and watch the video that we created in
1029.239 -> this playlist. So here is my visual studio code.
I'm going to click on file, click on open folder.
1037.239 -> Here's the folder where I created the next
project. Make sure you select this folder.
1041.639 -> You don't have to go inside this folder. You
just select this folder and click on select
1045.559 -> folder. Wow! That's a lot of select folder
in one statement! Beautiful!! So your visual
1051.959 -> studio should look something like this.
Click on terminal, click on new terminal,
1056.919 -> and here we're gonna write a command to starter
to spin up a server. So I'm gonna say npm run dev.
1066.279 -> Back. I'm going to go to my browser. I'm
going to open a new tab and I'm going to say
1070.679 -> localhost:3000. Press enter and if you did
everything correctly you should see a page
1076.919 -> which looks something like this. If you see this
you have done everything the way it should be
1082.199 -> so a pat on the back. And from here we're going
to start our Bootstrap journey with nextgears.
1088.199 -> First thing that I normally like to do is I go to
pages. I select this index and I delete this. And
1094.439 -> you can clear the content manually which is
fine but I just like to delete it myself.
1102.279 -> And now I'm going to go to pages. I'm
going to create this file again, index.tsx.
1106.919 -> And I'll say const next page equals to
1112.839 -> return what do I want to return I want
to say in h1 I want to say hello world
1124.199 -> Now, as always, we always export this component
1128.119 -> so that next is able to find this component
and render it for us. Beautiful!! You might
1134.439 -> have noticed that when I click on control
s so when I saved this file my code got
1140.439 -> restructured it become much more pretty and that's
because I'm using an extension called prettier
1146.359 -> and if you don't have it you need to click on this
extensions search for prettier P R E T T I E R and
1156.679 -> The extension should look something like
this. Again, we have created a video for that
1161.719 -> in the basics playlist. If I would recommend
that you go and check that out. Beautiful!! So,
1167.639 -> with that going back to my index page, I'm
gonna refresh the page and we got the hello
1172.599 -> world lovely. And from here from here we would
really like to you know and go and create our own
1178.599 -> website our own responsive apps using Bootstrap
and for that I have identified a really nice
1186.679 -> app that I use. It's called speech with ai.
It's using Bootstrap because I created this
1191.879 -> and then you can see we have clear segmentation
in terms of um banners images sections
1199.719 -> and you know all these fancy stuff that should
be there. If I press ctrl shift I and open my
1206.679 -> console and I start changing the width you
see that how the content aligns itself into
1212.839 -> into much more readable format. Beautiful!! And I
think to learn Bootstrap I'm gonna replicate this
1219.799 -> website in front of you and you're gonna you're
gonna love it you're gonna love the journey.
1225.879 -> Perfect. And now moving forward and trying to
replicate this website there's one thing that
1230.519 -> I would like to do is open my favorite tool of
all time and that would be wait for the drum roll
1242.839 -> that's ms paint I know I know and some
people don't like it but I kind of love it
1248.199 -> love it because it's a really good
scratch bag to you know conceptualize
1253.239 -> conceptualize different topics into really
meaningful and you know understandable chunks.
1262.999 -> so if you go back to YouTube you'll see that
this is what we were looking at this is what we
1266.839 -> referenced a moment ago and what I want you to pay
attention to is the way the website is structured
1274.199 -> and I'm going to draw a parallel
of YouTube in my ms pane so.
1281.879 -> this is YouTube right on top we have got
something like this and inside we have got YouTube
1293.719 -> and we have got a search
bar and we have got a button
1300.919 -> and we have got a mic then we
have got sign in right and then
1308.279 -> here we have another box for all the
menu items here we have got another
1315.319 -> section where we have all these filters then we
have this big section inside that big section
1323.959 -> we have a lot of smaller sections like that
1330.199 -> it's not like 100 accurate
representation but you get the gist
1336.759 -> now with this if you compare YouTube with this or
for example if you go to LinkedIn if you try and
1343.159 -> compare this with LinkedIn it's pretty much the
same here is the LinkedIn and we've got the header
1353.719 -> and we've got a section and in that section
1357.239 -> we have got the login section
and then we have got an image
1361.959 -> then we have got another section
which says explore then we got
1365.239 -> another sanction to find the right job and so on
1370.759 -> the reason I'm doing this video is
to give you an understanding that
1374.199 -> this is a very simple geometry so if you
look at this this outer section is a box
1381.479 -> and I am gonna fill this box
with a color let's say light blue
1387.319 -> Okay, then we've got another box which is
this. Then we got another box which is this.
1394.039 -> Then we've got another box which is this. Then we
got another box which is this. And then we've got
1399.799 -> many other boxes which look like this. And
with this, we should understand that the
1405.879 -> core concept of using Bootstrap is to design
everything into different grids into different
1411.159 -> rows and into different columns. For example,
what I want to emphasize is if you look at.
1420.039 -> If you look at this, I'm going to take another
color. This is a is one row and inside that row
1427.639 -> we have one column. This is one row and this
whole thing is also certainly I'm pretty sure
1436.519 -> is also another row. So we got a big row
inside that we have got a smaller row and
1440.839 -> in that row we got three columns. Then we have
a new row and in that row we have three columns
1447.479 -> and so on and that's all it
is. It's rows and columns.
1450.759 -> That's all it is and with that understanding
with that super fundamental understanding,
1456.679 -> let's go and look at the Bootstrap that if
Bootstrap can help us with rows and columns
1466.759 -> Fortunately, Bootstrap does provide us
with containers. If you read through,
1473.479 -> I highly recommend that you go and
read through it if you have time.
1477.159 -> However, in this tutorial, I'm going to give
you all the understanding that you need to have
1481.239 -> in order to you know build any responsive app
that you like. So Bootstrap technically comes
1487.559 -> with technically comes with a lot of classes. The
one class that you see here is container. What
1493.079 -> this means is we're going to we're going to see
this in super practical. We're going to copy this.
1497.959 -> I come to my index page. I'm going to say
##here and just so you know that
1505.239 -> is the keyword in Javascript. Therefore we
say class name. And here I'm going to say
1510.919 -> hello world. And just to distinguish this
from other elements, I'm going to say bg.
1519.079 -> Warning. I'm going to come to this class in a
while, but just understand that this class gives
1524.679 -> a background of warning color to this div. Okay,
if you come back here, if I refresh the page,
1534.039 -> this does not work because of course we did
not include Bootstrap into our into our project
1540.919 -> and we started using Bootstrap. So let's do that
first. All right, so let's fix the blunder we made
1547.479 -> that I made in the last video. So I'm going to
go back to Bootstrap and click on get started
1555.159 -> and go to download. And here we have different
ways of using Bootstrap in a project. We have seen
1562.999 -> this version, the standalone version. Now
we're going to look at the npm version.
1567.639 -> So, in order to install Bootstrap in our project
all we need to do is we have to run this command
1573.399 -> in our project. So I'm going to copy that, come
back to visual studio, stop the running server,
1578.999 -> paste it, and I'm going to say --save so that
this dependency is saved in my package.json.
1585.399 -> Beautiful!! So that is done and dusted. So
now let's see how we can include Bootstrap
1591.559 -> in our project. There are multiple ways
of including Bootstrap in our project, but
1597.559 -> the right way of doing it is including the
css styling in the app component. So import
1606.439 -> Bootstrap/distribution/css/Bootstrap.css
like that. Save it. If you're not sure
1618.359 -> why we are importing Bootstrap in the app
component, and in a nutshell that's because
1624.199 -> my app is the root app that gets initialized
or gets mounted on the web app when next year's
1633.319 -> project is started again. If you're not if
you want to go into the details check the
1638.679 -> video that we created in the basics playlist
and we want to move on with this this import.
1645.719 -> So, since we have imported Bootstrap
here, I'm going to run my server
1650.679 -> and there you go got hello world in a container
and that container is yellow in color.
1658.119 -> Beautiful!! So now go back to Bootstrap
and we were in layout and container.
1667.079 -> Another class which is quite
useful in my experience is
1675.319 -> container of course but container
fluid and here I'm gonna say success
1684.519 -> Now you see the difference. Now, if you go back
and try and draw in parallel what LinkedIn has
1689.399 -> done, if you see here the LinkedIn's menu
starts from a point and ends at a point,
1694.919 -> seems like they are using container and YouTube
seems like they're using container fluid
1701.399 -> so something to keep in mind anyway. I'm going to
close this because we're going to focus on speech
1707.559 -> aI and we're going to try and replicate speech aI
and hopefully we're going to pick a lot of things
1713.879 -> about Bootstrap. I'm gonna learn
a lot of things about Bootstrap
1718.439 -> lovely. Before that, I just want to give you
a quick reminder this is the methodology we're
1723.719 -> gonna follow. So, with that and let me close this
with that, we're gonna step into our very first
1732.599 -> header. So, if you look at
the header that our spgI has,
1737.079 -> so let's see if we can find that in Bootstrap
somewhere. So we know in components we can go
1743.639 -> to nav bars and we want the responsive
behavior of course and we want this one
1753.079 -> so let's just
1756.759 -> no we want this one with the brand name
shown to the left and toggler on the right
1760.919 -> so let's copy this
1764.439 -> we're gonna create a new folder called components
1770.439 -> and inside this I'm going to call it navbar.tstsx
1775.399 -> like that and here we'll create a component
1783.119 -> navbar
1784.119 -> we're gonna return
1788.519 -> and we always export it's export default
1794.199 -> Navbar like that now? React is complaining that
they don't know what class is, so we'll say class
1800.999 -> equals to last name. Place everything for input,
it's saying that it has no corresponding closing
1809.719 -> tags, so let's give it a closing tag. For tab
index we need to put it this way like that and
1819.719 -> that's it. Now if I save everything should
get pretty thanks to our prettier extension
1828.759 -> Now, what we need to do is go to the index page.
I'm going to remove all of this and I'm going to
1834.679 -> just include the nav bar component in my index
page. And that needs to be imported like this.
1841.479 -> In general, visual studio will do it automatically
for you, but if it does not do it, either you have
1847.079 -> not exported your component like this, or, um, you
just need to do it manually. It's not able to find
1854.679 -> it. Nevertheless, now if I go back and I refresh,
you might see that the page looks little bit
1863.719 -> over fetched. That's because I have zoomed in so
that you can have a better view, but that's how it
1869.719 -> is, right? So 150. Now we want to customize this
nav bar, so how do we do that? We go to nav bar
1878.839 -> And we're going to start looking into
the I'm gonna remove these tags so that
1883.239 -> we have more space. So I'm gonna look into a
couple of classes that are being used here.
1890.039 -> It's saying navbar and it's saying navbar
expand lg. Fine, it says snap bar light and
1895.799 -> background as light. These guys are using
a different color. I think I'm not gonna go
1900.199 -> into the color combination. So I'm gonna just
keep it keep it dark or light. So I'm gonna say
1906.279 -> my dab my nav bar should be of dark color and
background should also be dark. If I save it
1914.439 -> I've got a dark background nice. If I press
ctrl shift I and if I go to mobile mode
1922.039 -> you will see that everything everything works
perfectly. There's one thing that you might have
1928.759 -> noticed that when I click on this button the
menu bar doesn't appear and that is because we
1935.559 -> have missed one thing. So if you go back to get
started and go to download and if you remember,
1942.279 -> Bootstrap provides us two things one is css for
styling which we have got so everything is styled.
1950.439 -> Bootstrap also provides um a Javascript file for
all these you know functionalities of clicking a
1956.919 -> button and how do we enable that well we need
to include that just like we included our css.
1964.039 -> And the correct way and the right way of
importing Bootstrap Javascript is not like this.
1971.159 -> The reason uh you're not supposed to
import Bootstrap like this I mean it
1975.719 -> wanna it's gonna work so if I go back
and click here now it's working. However
1982.039 -> few of the components in the in Bootstrap needs or
requires a window object that is provided by the
1989.319 -> browser we therefore we need to wait until this
component is mounted and has been initialized
1997.239 -> 100 percent and to wait until then
we use the hook called use effect
2002.519 -> and this use effect hook needs to
be imported from react like this.
2007.159 -> And again if you're not familiar with use effect
I would recommend that you go back to the basics
2014.359 -> playlist and have a go on how use effect works.
With that in place I'm going to close this and
2021.479 -> this should work the way it was. Beautiful!!
now let's go and customize couple of things here
2028.519 -> and for our purpose we don't need a search
bar for sure so coming back here I'm gonna
2034.679 -> go and look for the search bar which is this
one so I don't need that I'm gonna remove that
2042.599 -> nice we also need home link and
disabled so let's remove that as well
2049.239 -> we don't need disabled
2052.599 -> we don't need home
2056.519 -> and you know what we're gonna keep the
home I'm gonna remove everything else
2061.239 -> like that and for navbar home we can use
2067.159 -> a branding so let's say
2070.919 -> let's say we say speech ai
2074.359 -> like that and I'm just gonna remove this as well
because we don't need it that we've got speech aI
2080.919 -> and at the moment this is a reference however
um I know this is a Bootstrap class therefore
2087.239 -> I'm not going to change this but what we should
be doing we should be doing something like this
2096.039 -> this is the best practice of
2101.479 -> this is the best practice of using next
2114.279 -> What we have done is we have wrapped we have
created a button which, with the text of speech
2118.679 -> aI and we have wrapped that with a link component
provided by next needs to be imported like this
2125.799 -> and of course we need to give it a
class so let's do that we will say
2133.079 -> "now it's a button and if you click on
it it should take you to the home page
2138.359 -> okay perfect um if you go back again to the speech
aI so they've got branding and then they've got
2146.599 -> get started button so let's try and put that
2151.479 -> technically we don't need this button because
this is the button that gets enabled you know
2156.919 -> when you see this toggler so we're going to
remove this as well because we don't need it
2162.199 -> and here we're gonna create another button
type will be us button and we will say login
2175.239 -> and this should have a class
name of button and button doc
2183.399 -> like that and there couple of things that
are missing right now and let's have a look
2188.279 -> so this button is okay but I just can't see it I
can't distinguish this as a button whereas these
2195.799 -> guys can because obviously they have a different
background but for me it's not being so awesome so
2201.159 -> let's go to Bootstrap and see what can we do with
buttons so going to components going to buttons
2209.239 -> we've got different types of colors right now
we are using the dark button but apparently we
2214.039 -> can use primary secondary and so many how about I
try a light one designing designing an app is also
2227.159 -> a lot of testing so I think this looks
good and don't worry if this looks a
2230.679 -> little bigger because I'm zoomed in so if
you reset this should go back to the normal
2236.359 -> and what else can we do with
button let's have a look
2240.039 -> I can have also a button which looks something
like this this also looks quite interesting
2244.919 -> maybe instead of light button I
can use maybe I can use this one
2252.119 -> save
2254.679 -> now this doesn't work here because
of the background this is okay
2260.199 -> we got size we got large
button so if you add a class
2263.959 -> something like this a button will become bigger
2268.879 -> you see however what I am interested
in I'm interested in a small button
2275.399 -> I'm going to use something like this
2279.479 -> nice again if I reset everything this should
become a smaller button and this looks good with
2286.359 -> that I'm happy but as always I tend to give lot of
bonus during my tutorials so let's go for a bonus
2299.399 -> if you scroll up for the Bootstrap you
will find icons if you click on icons
2304.679 -> there's a there's a lot of icons
that you can use in Bootstrap
2308.599 -> now how do we use it super simple copy this go
back to terminal I'm gonna start a new terminal
2318.759 -> paste it and I'll say save reason I opened
a new terminal is because I did not want to
2325.319 -> kill my server
2330.199 -> so I'm going to wait for it
2333.799 -> once everything is downloaded and
installed I'm going to close this
2338.759 -> And the way we include Bootstrap CSS, we also need
to include Bootstrap icons like this. Save it.
2349.319 -> Process. Now we've got a lot of options.
So, for example, if I look for login,
2354.999 -> but this box arrow in right, click on this and on
the right you can actually copy everything that
2360.599 -> you have here. And they have given some examples.
For example, you can use these icons in a heading,
2366.199 -> inside a button without button without text,
in an input group and things like that.
2372.679 -> Okay, I'm going to go back inside the
login button. I'm going to copy paste this.
2377.319 -> Cut everything. Paste it here. And as you know
2381.639 -> it should be class name, so I'm going to
replace it. Save it. Now going back to our app
2388.599 -> nice I've got really nice looking button
with icons Beautiful!! I think with that our
2395.959 -> our nav bar is ready and I kind of like it
2401.319 -> now look back to his pcI and what they have
done next they've got a banner section this
2406.599 -> you know sections like this normally are
called banners and what I can see is they
2412.519 -> have two things on the left they have some
text and on the right they've got this image
2418.999 -> let's see if we can find
something like that on Bootstrap
2422.199 -> so if we go here and we start scrolling
through the components provided by Bootstrap
2433.239 -> Let's have a look. If you go for collapse and
that's not the one I know, I have seen this
2439.479 -> somewhere. I think if we go to example and if I
go to maybe in carousel there, it is there you
2449.319 -> go. So, in order to use this, we probably
need to build this ourselves and I'm gonna
2456.279 -> do what most of the artists do when I steal
it. So right click and go to view page source.
2463.159 -> I'm gonna find this where this section is
2467.399 -> and there it is. What I'm going to
do, I'm going to copy everything
2475.079 -> I just want to read through it so
2480.279 -> let's copy this two of these
2484.919 -> come back and create a new component and we're
gonna call it main banner.tsx first in banner
2501.639 -> paste everything will always say export default
2508.279 -> main banner now let's do a couple of
cleaning class should be class name good
2518.039 -> and this needs to have an ending
that also needs to have an ending
2527.399 -> Then we save it and then everything should align
the way it should. Beautiful!! Now let's go to
2534.679 -> index and we're gonna call this component so I'm
gonna say main panel like that and it should be
2541.799 -> imported like this. If it's not automatically
imported, you need to import it like this.
2547.879 -> Going back to our page, okay this looks good
but there are few things that we need to tweak.
2554.599 -> I mean overall we got pretty good pretty
good deal right? Copying from there,
2559.799 -> so let's see what we can do in order to fix this.
2563.639 -> Now, honestly speaking, to fix this we need couple
of things. We we can see that this is way too on
2569.719 -> the left and way too much on the right and same
goes for this section. And to to learn that,
2576.439 -> let's go and see what Bootstrap has to offer in
terms of margins and paddings and you know in
2582.519 -> general cleaning things to do that I'm going
to go to Google. I'm going to say Bootstrap
2588.519 -> margin like that. I'm going to open this and yeah
take me to the latest version. So it seems like
2598.279 -> spacing is designed inside the utilities so I'm
going to close this. I'm going to go back to
2605.479 -> latest Bootstrap. I'm going to go to utilities and
we're going to go to spacing and it says margin
2611.879 -> and padding. So what they're saying is we can
set margin to any class or any row or any column
2620.199 -> by saying by using the class m and
then if we want to select a sides like
2626.839 -> if we want to have a margin from top
or padding from top we have to say t
2632.039 -> this is from bottom this is from start this is
from end and this for the horizontal one and
2637.079 -> this is for the or the vertical ones and this
is how we decide how much margin do we want
2644.279 -> so with one two three and four. So for example
you can technically go and say p2 which means
2652.839 -> for this div I want a padding of two. So let's
see if that works for us. I'm going to copy that
2660.999 -> um
2664.839 -> one more thing before we jump into that as you
can see this is one thing is actually a row and
2675.239 -> for this row we want that everything that's
inside this row should have some sort of padding
2682.599 -> all right so let's go and
do that we're going to say
2685.879 -> padding of 2 and save it now it looks a little
bit better so now it's not going all the way
2691.799 -> to the end it's not sticking to the top
and it's also better from the right side
2698.359 -> maybe if I increase this go to five I like
it better when I have a padding of five
2706.279 -> and maybe we can do the same for
this one so I'm gonna copy this
2711.639 -> and I'm gonna say
2715.239 -> for this row I want a padding of five there
you go now this looks much nicer and as you
2721.639 -> know that you can put your details
here and if you go back to speech aI
2727.159 -> these guys are using using a text and an
image so we can do the same we can go to
2732.199 -> our code and this is the row that we don't want
I'm going to delete this save it oops I'm sorry
2742.999 -> this is the row that we
don't want and there you go
2749.799 -> Beautiful!!
2752.359 -> moving on to the next section of speech aI we
have already implemented this banner section
2759.319 -> now let's see how we can build
another banner that looks like this
2764.839 -> there are a couple of things that I think we
should look for so when I look at this section I
2771.239 -> see that they have got they've got a file button
to choose a file there seems like an icon here
2778.999 -> and same goes for this one
right and then we have a button
2786.039 -> this seems like we have a section which
looks like a div but it also has some
2791.239 -> sort of shadow at the end and seems like it
also has a border all right um let's see if
2797.639 -> we can find these things on our on Bootstrap
and how we can create this using Bootstrap
2805.719 -> So, there are multiple ways to basically
look for these things. For example, you can
2811.799 -> use the search button here. I find it useful
sometimes, but not as useful as it should be.
2817.799 -> So, let's see and figure out if we can find
something like shadow. There it is. Okay,
2824.359 -> so here's the div that has no shadow. This has
a small shadow, regular one, and a large one.
2831.959 -> And here are the code to basically create
shadows. So, if you look, it's a simple div
2837.959 -> and it's the class is shadow lg.
2841.639 -> Um, that's it. Okay, that sounds comforting.
Let's move to our vs code and create a component.
2848.759 -> We'll call it load file dot tsx. And as
always, you're gonna create a component
2862.839 -> I am from upload file what
do we do we always export
2868.919 -> it Beautiful!! in the index page we would like
to import this so let's import upload file
2883.079 -> Should be uploaded like this. Lovely! Going back
to our app at localhost, we see that we have got
2892.279 -> this. So let's create let's create a div that
will look something like this. It has a heading.
2900.039 -> It also has it also have another heading. So
let's try and create those. So if you remember
2906.679 -> from our Beautiful!! image everything that you
see on the screen is either a row and a column
2912.759 -> within it or some some combination of that. So
this is what we will try to create here when we
2919.479 -> want to replicate this section. So I I'm gonna say
this whole thing the white background is a row and
2925.079 -> this and the background here should be a column
because we only have one row and one column.
2930.679 -> So let's try and do that. So we'll say
div row and then we're gonna say div
2936.439 -> last name as column I'll say I am from column
2944.519 -> Okay, nothing has changed because visually it
does not change much. And now I would like to
2950.759 -> go and take a deeper dive in how rows and
columns are designed in Bootstraps. I'll
2955.879 -> go to layout. I'll go to grades and this is
how it works in a in a row in a column way.
2963.239 -> So you create a div with row and within the row
you can create multiple columns. Let me try that
2971.799 -> copy this
2974.999 -> and I know this for a fact
I'm going to write it here
2981.159 -> all with
2983.639 -> equal
2994.039 -> The way it works in Bootstrap is, in a given row,
2997.639 -> let's do one more thing so that it's much more
visible. We're gonna give a background of,
3002.039 -> let's say, red to this row so that we know,
okay, we have one row and within that row we
3007.879 -> have three different columns and all of them all
of them should be of same width because that's
3013.079 -> how Bootstrap divides the available area between
different columns. Okay, I'm gonna do couple of
3021.159 -> things just for the aesthetics point of view so
that it's easier for you to see on the screen.
3031.319 -> So that's how Bootstrap divides different
column and how do we know that these columns
3034.999 -> are of same width and that should be simple. Let's
give a background to each div we're gonna say
3041.239 -> ring so it should be yellow.
3048.599 -> Primary this should be blue and info this should
be it should be of teal color. We see that we have
3056.919 -> different columns with diff equal widths. If
you're not sure right now that how this color
3062.199 -> how did I go for these colors um you can find
these in utilities and in backgrounds and they
3069.079 -> have this they have told which class represents
which color. Okay coming back to layout and grades
3075.639 -> so that's how columns look but there's one thing
that is missing here that we have no idea how
3081.159 -> how big the row is and that is because the
column is basically overlapping the row.
3088.359 -> So what we can do one more thing that we learned
we can apply a padding and we want padding from
3095.079 -> the top maybe three with what this will do this
will make sure that all the columns start after
3104.839 -> a padding of three in the row. Similarly you can
say padding from bottom and let's say that is one
3113.319 -> so you'll see that we got some padding from the
bottom and that padding is actually equals to
3117.879 -> like one and from top is three again you guessed
it padding from start I could I could say two and
3127.799 -> I could say padding from end I could say 5 like
that um need to check why we don't have a padding
3135.639 -> from the starting so going back to Bootstrap
and this should be in utilities and spacing
3145.399 -> Padding from the start that
is padding from the left,
3149.559 -> and we could use one, two, three, one, two, three.
3153.799 -> Going to say, "Padding from the top is three,
which you can see here. Padding from the bottom
3158.999 -> is one. Padding from the starting is three,
and from the ending we can have, I don't know,
3163.799 -> maybe five." Now you see that we got padding
from all the sides of different amount.
3171.319 -> If you want, you can combine padding in the y
direction. We're saying padding in y, and that
3176.679 -> should be 5. Now we've got five padding from
top and bottom. Similarly, you can say padding
3183.479 -> in the x direction should be, I don't know, four.
Then you've got four padding from left and from
3189.959 -> the right. Okay, so that's the first thing to
understand. The second thing that I would like to
3196.999 -> emphasize is that Bootstrap provides 12 columns
in one row. What that means is, conceptually,
3204.599 -> this column (I could say take a width of
one), and I could say take a width of three,
3210.839 -> then take a width of eight. Eight plus three
is eleven plus one is twelve. If I save it
3217.879 -> now, you will see that the columns have
changed their width. So the first column
3222.039 -> is of width 1, the second column is of width
3, and the last one is of width 8, which also
3228.759 -> means that if you don't define a width here, the
remaining width will be provided to this column.
3234.999 -> Okay, beautiful! With this, you should now be able
to understand that you should be able to create
3241.879 -> any geometry you like. So I can say the class
name another row inside this, and I can say div
3248.119 -> class name column. Let's say column width
is 6. I am column 1, and I can copy this.
3255.719 -> I can paste it again, and I can say I'm column
two. Now, um, let's give it a let's give it some.
3264.439 -> For this column, I'm gonna say
margin. I'm gonna say margin from
3267.639 -> x to, and this one again
margin from x should be two.
3275.959 -> And I'm going to reduce the size of the column
so that it's able to adjust itself in one row.
3281.319 -> Last but not least, I also
want to give some border.
3284.679 -> These classes can be easily found on the Bootstrap
website. Give it another color, so we'll say bg
3291.399 -> secondary. So now you see we have one row which
is of red color. Then we have three columns:
3297.639 -> yellow, blue, and teal. And inside the third,
inside the third column, we have another row
3304.039 -> which has two columns. And obviously, you
can expand this to any level that you like
3311.799 -> and have multiple columns within this
3316.279 -> because we have misspelled this class, therefore
we were not seeing any border. But here you go.
3321.719 -> And now, if going back to our awesome example
from ms paint, now you should be able to draw a
3327.559 -> parallel with rows and columns. So, for example,
on the YouTube website, the left section was a
3332.599 -> row, and this row was a big one. And then we have
another row here in the middle. We have one row,
3339.559 -> and within that row we have multiple rows. And
within each row, we have different columns. So as
3344.679 -> long as you understand this concept, you should
be able to design any website that you like.
3350.519 -> Beautiful! Okay, moving on. Of speech aI, and
then we see that okay you've got one row with no
3356.999 -> background, so background is white. And within
that one row, we have one column, and in that
3362.839 -> column we have couple of items. If you're not
sure what this is, you can press ctrl+shift+I,
3367.399 -> click on this element icon, and then you click on
any item that you like, and this will show you the
3376.199 -> this will show you the html code of that
section. So you see that this is a row,
3379.799 -> and within that row we have a
column, and inside a column we have
3383.879 -> an h5 tag, a p tag, and another div. And
that div has couple of items inside that
3392.039 -> that's another way of you know understanding
things stealing things copying things
3398.039 -> all right so let's do that for our
our project as well so what I want is
3406.999 -> I want
3410.359 -> want one row I don't want it to be danger
in color I want padding from all the side
3415.959 -> and I want padding to be five and I want another
divs I want to call it as a column inside
3428.439 -> now going back to Bootstrap I also want some
components so for example these guys are having um
3435.239 -> a select button a file choose button and
those are the things we can find under form
3439.879 -> or you can also go and search here for example
3445.159 -> and select and that will take you basically here
and now Bootstrap gives up gives us a couple of
3452.999 -> options to you know design our our elements
you can have different sizes different types
3462.279 -> This is what they're using, but we're not
interested in this one because that's not
3465.639 -> how speech AI looks. Speech AI seems to have
an icon, and then they have a then they have a
3471.479 -> HTML bar control, so let's have a look how
we can find that. Got radios and checks,
3479.319 -> okay fair enough, and I like this one so if you
want to use this sometime you can go for it.
3487.719 -> Input groups, that's it. This is what
we need, basically, right? This is what
3492.679 -> it looks like. These guys are using, so let's
try and use that. So I'm going to copy this
3500.839 -> and I'll just paste it here just so just so I
3503.879 -> can see how this looks and full h
plus should be equal to last name
3513.479 -> and input text should have an ending
3518.519 -> going back to our localhost this looks this looks
good first thing that we need is we need a select
3524.599 -> button so let's copy that I'm going to paste
it here and just want to verify the class name
3532.759 -> so this should be form control
3537.719 -> and this should be okay let's have a look
3544.599 -> okay yeah that's what we
need now instead of this icon
3548.999 -> we want to have a different icon and we
already know how to do that so we will go to
3555.479 -> Bootstrap we'll open icons and within
the icons we're gonna look for share
3564.679 -> I like share fill copy that
3569.639 -> and paste it
3573.319 -> there you go Beautiful!!
3577.959 -> Perfect. With that, we are able to get
a nice looking dropbox. Um, in our case,
3585.319 -> so if you look here, this one is a bit more
centered and smaller compared to what we have.
3591.319 -> And we can also achieve that by saying I want
this column width to be equals to 7 for example.
3597.559 -> I don't want it to be super big. So now you
see that this column let's give it a background
3605.079 -> this column is only seven with wider
it's not going all the way until here
3611.239 -> and there's one more thing missing which
is this is not center aligned no problem
3618.599 -> step 5
3622.759 -> center division and
3628.039 -> They've given some examples of how to
manipulate the directions, and we are
3633.559 -> not interested in these. They were interested in
this third one, so I'm going to copy this class
3642.599 -> and I'm going to paste it in the row
section. So understand what this is saying:
3647.079 -> this is saying that within this row,
center everything. So this becomes a child,
3654.359 -> this column becomes a child for this row, and then
this child will be center aligned. So let's have
3659.559 -> a look. Beautiful!! I like it. Um, I also like to
give some padding within this, within this column,
3668.759 -> so that we have some space. This is looking
nice now. Let's go back to Bootstrap.
3673.799 -> Let's look for border, and border is just a
simple class saying border, so we can copy that
3685.639 -> and we should be able to paste it in the column.
3689.239 -> And we also learned that you
can give it a shadow like this.
3697.639 -> Lovely. Let's remove the danger, so now we've
got the shadow, we've got a nice looking div.
3705.799 -> Beautiful!! Let's have a look what else these
guys are doing. So they have some text here.
3711.399 -> We can also put some text, so how do we
do that within this div? I want to say h5,
3718.999 -> and I'm gonna copy everything right here.
3724.839 -> Nice. And so theirs looks better
than ours, and that's because
3731.879 -> they're on a normal zoom level
than we are on 200%. Good. Um,
3739.319 -> we would like this to be centered as well, and
we can again go to Bootstrap and search for font.
3750.439 -> Excel, press 5 here, font center, open this.
3757.559 -> Now they have given couple of classes that we
can work around, and these classes could be found
3761.319 -> under utilities and text, and they are saying if
you use this class, your text will be centered.
3769.479 -> And how do we want that? We could give it to h5,
3776.439 -> and then everything becomes centered,
but I wanted to give this to
3781.399 -> a column itself because we're going
to put more text within the columns
3785.479 -> like this and this, and I want everything
to be centered. Okay, nice. Ours
3792.439 -> looks little bit bold. I don't want it to
be bold because these guys don't have it
3796.999 -> as bold. Again going back to Bootstrap, within
the text, I think we should be able to find it,
3802.759 -> so I'm just going to scroll a little bit. They
have a lot of a lot of classes here: font size,
3808.999 -> font weight, and italic. There you go. And I want
font to be normal. I don't want it to be bold
3817.559 -> so I'll just say
3820.679 -> maybe
3822.999 -> maybe I'll give it a class here I
want and I want font wait to be normal
3833.399 -> good this is good next thing I see that they have
got some sort of yellow thing so let's copy this
3842.279 -> and we're gonna create a paragraph
I'm gonna paste this save it
3848.759 -> at this and it's not yellow as of now let's see
3853.239 -> if Bootstrap has something for
us or we can do a custom color
3858.999 -> um okay if I remember from when
we were inspecting this element
3865.399 -> I did find a class so let's try and do that again
3870.679 -> there it is they are using mark
so I think we can also do that
3875.879 -> we can wrap everything the mark this should
give us nice yellow looking feel there you go
3887.079 -> what else are they doing they have another text
and they're saying upload now and listen to a
3892.919 -> book so let's create another heading I'm going
to say h3 I'm going to give it a class name of
3900.279 -> font weight normal paste it we know that this
is an icon so let's find an icon for ourself
3912.039 -> coming back to I can and we need
sound on wave that's what we need copy
3923.079 -> and paste it here
3929.639 -> bit of a space so that all distinguishable
okay looking good and we can give it a color
3936.439 -> how do we get give color to anything well we know
in Bootstrap that we have classes for colors so
3942.519 -> if I go to utility go to bear sorry background
I know that these are the colors but these are
3949.639 -> the colors for the background and I'm pretty
sure there should be colors for text as well
3957.639 -> if not here we can Google it
but I know that so I can just
3960.679 -> type it here and you can trust me that this
is how it works so you can say text yes
3968.599 -> this will make sure that everything
becomes as a success color class
3972.999 -> lovely um I think there's one more thing left
so if we go here and see they've got this um
3983.239 -> they've got this another html element which is
3988.999 -> which is basically input type and type is file
we're gonna copy this paste it and now we need
4020.439 -> okay there you go
4024.679 -> so if I reset the zoom
4028.359 -> this is how it looks and I kinda like it click on
it select a file if you want last thing we need
4034.999 -> uh we need a button here and we are a master of
that we already know how to do that let's do that
4041.879 -> within the column so we'll say button type
of course is button and we'll say listen now
4054.759 -> and it should have some classes so it should be a
button class of course and we need a button to be
4059.559 -> dark save it and there you go and of course
we need an icon so I'm gonna copy this
4066.199 -> is this the icon now this where's the icon there
it is you copy this and paste it in the button cut
4076.039 -> it here save it lovely and that's how it is and
they're using a different icon but it's okay you
4083.959 -> can use the same icon and that's how you design
your upload section Beautiful!! all right guys
4095.079 -> we have implemented the upload feature
now let's go and look for the next
4101.399 -> section that speech aI has
and that seems to be check out
4106.039 -> the reasons I think I'm not going to implement
this because if you go up you see that
4114.439 -> the checkout section is
actually almost equal into the
4118.999 -> to the banner section it's just that you need to
switch the image and text to the left and right
4124.919 -> depending upon the row count so I'm pretty sure
you should you will be able to do it yourself
4131.559 -> and now I want to jump on check out what
they are saying to the testimonial section
4136.999 -> and this seems interesting because this
have a couple of things that we would
4141.399 -> like to use and again this definitely is one
row so if you go back to our awesome image
4149.799 -> this is one row and within one row we have three
different cards and now if we go to Bootstrap
4160.759 -> search for cards we have seen this before so
therefore I'm just looking for the cards directly
4167.319 -> most certainly we have used the same thing
so I think I'm just gonna use this and
4173.399 -> but before using that which we should also
notice that they have three different cards
4178.279 -> and if I remember correctly
there's something called
4183.639 -> card groups what card group does is it
groups certain number of cards in one
4189.799 -> column and depending upon depending depending upon
the screen size they they rearrange themselves
4198.679 -> like this and I think this is the one I would
like to use so I'm going to copy this go back to
4206.679 -> vs code go to components create new file we'll
call it testimonials dot tsx fonts testimonials
4220.279 -> return
4225.559 -> the thing and then what do we do religiously
we always export default b component like that
4234.919 -> now let's change let's replace the class with
4242.279 -> last name of course
4246.119 -> image should have an ending tag so let's do that
4258.679 -> lovely last but not least go to index
page and we're gonna import this component
4268.039 -> like this you need to import it like this and
I'm gonna put couple of you know break statements
4275.079 -> so that we have a better view
4279.239 -> nice going back to testimonials couple of
things that you might notice that this section
4286.519 -> is equivalent to this section so we have different
columns and all of them are technically identical
4300.119 -> so what we can do is we can say const
4305.479 -> and say const
4308.999 -> testimonials and that will be a list
in this list we will have a dictionary
4314.279 -> the first thing we will have will be card title
4318.839 -> we'll call it title one second thing we need
is card description we'll say card description
4331.879 -> and of course we need an image
4335.159 -> so we will say card image as img1 we have not
imported this yet we're gonna do that in a moment
4346.199 -> what I have done also is I've created a
folder called images and inside that there's a
4350.839 -> folder called testimonial and within
that folder we got four different images
4355.159 -> so what I would do I would import
all of those so I'll say import imv1
4364.359 -> from one folder up inside
images testimonials one dot jpg
4374.679 -> like that I'm gonna duplicate that two three four
4380.839 -> two three four fine I'm gonna copy this
4390.199 -> and I'm gonna duplicate this four times now
reason I'm doing this that this is a hard-coded
4395.799 -> list agreed however in the real life you might
fetch this from a database so it won't be as
4404.279 -> as big a list as you see here this might
be few lines of code Beautiful!! we got a
4409.239 -> row and within that row um we got couple of
columns so let's try and do this dynamically
4417.559 -> and we will say we will write a jsx
and we will say testimonials dot map
4428.679 -> okay so what we have done we are saying
hey I have a list why don't you map
4435.079 -> this function on each of that item in the
list okay this is an anonymous function
4440.119 -> if you're not sure how this works
check out our basic playlist
4443.399 -> which you will get all the details the
map function will get one item at a time
4448.759 -> so we'll say testimonial and it will also get an
index of that item and here we want to say return
4458.439 -> what do we want to return we want to
return a column so copy this paste it here
4465.239 -> probably we don't need this because
they're only returning one item
4471.159 -> lovely and now what we can do
we can go here and we can delete
4478.999 -> can delete all the columns like that
what do we have right now we have a
4483.719 -> row and then we are dynamically creating
columns within that row okay Beautiful!!
4490.759 -> now we have an image and we need to change
the source and we can say for this object
4499.639 -> it should be an image to card image and we
created just just a moment ago like this
4508.119 -> and within that card image there
should be a source like this
4516.599 -> good for a given testimonial
4522.599 -> there should be a title
and for a given testimonial
4529.159 -> it should be a description like that
4533.639 -> again a quick recap we created a list
and each in the list we have a dictionary
4541.079 -> each dictionary have identical
items title description and image
4545.959 -> and in general this will be this you
will receive via some database okay
4553.239 -> save it go back to your localhost and you
should you should see something like this
4560.039 -> title 1 title 2 title 3 and title 4.
I like it and if I change the width
4568.119 -> this should become responsive okay lovely I
would like to do some padding from the right
4575.159 -> on the top and maybe reduce the
size so let's see how we can do that
4581.319 -> here I could say padding all around should
be five now we got some padding nice
4587.799 -> now as you can see these guys have three cards
in a row and let's see if we can also do the
4594.999 -> same so I'm going to go to Bootstrap and
if you scroll down you'll figure out that
4600.439 -> if we change this class we should have fourth
which would have fourth card wrapped up in the row
4607.799 -> so what we can do is I can I can copy this go
back here and I could say something like this
4618.919 -> what we are saying is in general we only want one
column however when whenever we are on a bigger
4624.359 -> screen screen bigger than medium size we would
like to have three items in a row so let's see
4629.879 -> if that works nice and this this works pretty
nice for a for us what we can do is we can go
4636.599 -> here and we can remove the fourth one so that
it matches with what we have on the speech aI
4644.039 -> now they have a different background color and
to differentiate that we can also give it a
4647.959 -> color we can say bg and secondary for example
and we got a nice looking background here
4657.319 -> nice um I think I'm gonna do alternate
so if this is white this should be
4662.759 -> gray and this should be white so let's
follow that I'm gonna cut this save it
4667.959 -> back to upload and I will give this
row a background of gray like this
4677.479 -> you see that some of the features are not
looking so good now so maybe we can go here
4684.359 -> and just remove the remove the success okay
there's one more thing on Bootstrap that we can do
4691.559 -> is we can set some transparency so if we go
down look for utilities go for background
4705.399 -> it looks like we are on an
older version of Bootstrap
4708.999 -> I'm gonna go to 5.2 and in
the 5.2 in the background
4716.039 -> there's a class called
opacity so I could copy this
4723.719 -> and paste it here now the background should
have the opacity of 10 I think now it looks
4728.919 -> better compared to what we had before and
that's how you can play around with it okay
4734.839 -> lovely now let's see what do what
do they have as a second section
4740.439 -> they've got reading superpowers again this
is nothing different than what you have
4745.399 -> already seen here or maybe in this section
so all you need to do you need to run a loop
4752.039 -> and create one row with two columns left right
another row right left another row left right
4762.679 -> and similarly I would I would argue
that the pricing section is looks the
4767.399 -> same and what I would like to do is
I would like to create a footer now
4772.999 -> so that you know we can close
this tutorial on on a high note
4776.839 -> and with a happy feeling so let's try and do this
4784.559 -> um I'm gonna go to components
probably I'll close all of this
4788.759 -> I'll go back to component I'll create a new
component called footer dot tsx I'll say cons
4797.559 -> host footer requester
4805.879 -> now we are a pro of it so we'll say div
last name of course has to be low we need
4810.599 -> some padding from all around for time being
we'll give it bg secondary oh you know what
4821.159 -> like this save it and never ever
forget to export for default
4831.799 -> save it index page after testimonial we're
gonna say footer and that's how you import it
4840.119 -> like this going back to our app we should
have a nice looking footer I like it
4848.039 -> now we can remove these break points because we
don't need it anymore and that's how our that's
4853.879 -> how our footer looks lovely so inside
the footer it seems like they have a
4859.719 -> row which has a border then they I'm pretty sure
these are three columns and this is another row so
4868.679 -> even if you are not sure I'm 100 sure that
you can do this on your own so let's try
4873.319 -> and do this we want to have one column we'll say
dave last name column give it a border like this
4885.079 -> we got a column which is obviously of zero
height but we have got a column here and
4890.359 -> again going back to our awesome image you should
now understand that we have we can have one row
4896.359 -> within that row we can have one column and within
that column we can have another row that's what
4901.319 -> we're gonna do here we're gonna say div class name
as a row and we'll say div class name is column
4912.759 -> I'm going to copy this and
here we're going to say e
4918.999 -> dress
4921.399 -> addresses toronto and we will say
everything inside this should have a text
4928.999 -> that should be of light color
like this copy paste and paste
4939.879 -> phone should be plus 1 647 832
4946.039 -> of course I'm not giving my real phone number
best iterate gmail.com maybe or whatever
4956.119 -> save it
4958.919 -> and come back
4963.159 -> lovely we've got this
4966.439 -> what we could also do we could say
I want padding from y directions
4970.679 -> to be full so we have some
space in this in this row
4976.759 -> nice so let's copy this and paste it again now
we only need one column and we're gonna say
4987.239 -> all rights reserved
4991.639 -> like that and there you go
4995.719 -> and this is how you basically create a
responsive Beautiful!! websites using Bootstrap
5005.879 -> and you can add as many sections as you like
I'm gonna reset the zoom so that we can see how
5010.679 -> it looks on a 100 zoom right of course these guys
have used the icons so and you already know how to
5019.159 -> do that you can just go to Bootstrap go for icons
and look for different icons for example location
5026.119 -> view alt fill simply copy this come
back here and you can say I don't know
5039.879 -> like that so you can do that you can customize
it as much as you like I can switch to mobile
5046.039 -> mode and you would see that everything becomes
super responsive this section does not look
5051.559 -> good and let's see how we can fix that cars are
looking nice footer is looking really good and
5057.079 -> this section is also not looking good because
the phone number and email is getting congested
5062.279 -> first fix the footer and once we fix the footer
you would also understand how to fix this section
5070.839 -> so what's happening is on a smaller screen
this is still taking a column width of 4
5076.759 -> because we have 3 columns and 12 divided by
3 is 4. however what we would like to do is
5082.919 -> whenever we are we are on a smaller
screen we would like this to take
5087.319 -> the whole column and once we are on a large
screen this should shrink back to you know smaller
5093.799 -> columns and let's see how we can do that so going
back to Bootstrap maybe Google how to switch
5103.719 -> to 100 percent column width
5111.399 -> w id gh on mobile using Bootstrap
5120.599 -> we go to grid section read systems
5125.319 -> so it tells us that let's see there it is
5131.399 -> so it tells us that whenever
we put column minus something
5137.799 -> at that point the container will
change it change its class interesting
5145.319 -> okay so let's see how we can do that
5151.559 -> there you go so you're saying that using a
single set of column sm class you can create
5156.199 -> a basic grid system that stacks out stacked and
become horizontal on a small breakpoint so if I
5162.839 -> if I go here before that I just want to give
you a quick reminder this is the methodology
5169.319 -> we're going to follow and try and change the
width you see that the column becomes stacked
5177.319 -> like this and that's it that's technically
what that's technically what we also want
5183.079 -> so let's copy this
5186.999 -> go back here we're gonna say okay this is
a column which is good but this should be a
5192.039 -> column of width 4 when we are on medium size
whenever we are on size which is less than
5199.639 -> medium let's make it a let's make it a whole
column going back now you see that the screen
5207.319 -> size is smaller than medium and everything
comes in a new line or a new column so okay
5213.559 -> when we change the size things become in different
columns and when we have more space this becomes
5220.839 -> column width of four and with that understanding
I think you should be able to fix this issue
5226.679 -> that this is coming super super squeezed in and
if you pay attention that's happening because
5232.519 -> of the padding that we have applied from the
left and right so let's see how we can fix that
5238.679 -> with this kind of understanding we need to go
to upload files we are saying padding of five
5247.079 -> let's remove this first and
then let's see how it looks
5251.719 -> okay little bit better but not 100 awesome
5258.839 -> okay and that's also because of the reason that
we are using column seven so if I go here and I
5264.199 -> remove this I make it a full full column now this
looks much better again going back to the footer
5270.759 -> and trying to use this knowledge what we want
to say is we want to say hey make it a column
5276.199 -> of width 7 only when we are on a screen greater
than of medium size otherwise keep it as it is
5284.359 -> so now if I scroll here we the
moment we go to medium size screen
5290.279 -> this section becomes a column of width
seven so that's first thing first
5294.839 -> now we lost the padding let's fix that as well so
we want to say in general we would like to have a
5301.879 -> padding of one however whenever we are on a bigger
screen I would like to have a padding of five
5312.519 -> like this
5317.559 -> so in general padding of 1
otherwise I want padding of 5
5322.439 -> nice and I think we can copy this and
put the same thing within the column
5329.239 -> now everything becomes super nice so we have
a padding of 5 from the row and fretting of 5
5334.519 -> here from the column now if we switch back to
smaller screen it becomes padding of only one
5340.999 -> which is still not too awesome so I would say
5345.079 -> it's just a matter of playing around and
seeing what what makes more sense for your app
5351.879 -> but so far I think this looks good and
with this I hope that you learned a lot
5356.919 -> and I hope that you were able to actually
conceptualize everything that is there
5361.719 -> to get started with Bootstrap and I think I hope
you are excited because I am super excited because
5366.999 -> when I first learned Bootstrap it blew my
mind I was like wow this is so amazing I mean
5371.399 -> now I can create awesome looking apps um you know
without even spending so much time if you learn
5377.719 -> something today then please go ahead and like the
video and of course please subscribe the channel
5385.239 -> if possible share it with someone who
you think might benefit from this video
5390.119 -> and as always in case you face any issue
do let me know in the comment section
5394.439 -> and I will try to help you
and now it's officially done
Source: https://www.youtube.com/watch?v=Uobih7_2E7s