Why should you have a portfolio?
As a developer, you need to ways to showcase your skills to potential employers. There's no better way of doing this than a dedicated portfolio page. It gives you full control of how you'd like to present yourself.
In this course, the brilliant teacher Kevin Powell will take you through every single step of building a neat-looking portfolio website. You'll also learn to customize it to suit your personal style. Towards the end of the course, Kevin shows you how to deploy the site to DigitalOcean, so that you will end up with a live website upon completing the course!
The site is built without using any web frameworks, so the only prerequisites for this course are basic HTML and CSS skills.
Introduction
00:02
hello my name is Kevin and just in case
you don't know me normally you can find
me over on my own YouTube channel where
I talk mostly about CSS with weekly tips
tricks and tutorials
I am so extremely excited to be here on
free code cams channel to bring you this
tutorial where we're gonna be looking at
how to build out at this page now this
page has a lot of fun things to build
out and we're gonna have a lot of fun
with it because for me I'm a CSS
evangelist I love CSS and one of my big
goals with this not only is to build up
this cool page with you but I also
hoping to not only show you some of the
cool things you can do with CSS we're
gonna have a cool page we're gonna see
some cool CSS stuff but I'm also CSS
gets a bad rap and a big goal of mine is
to help you see the light a little bit
I'm a big fan of it I'm hoping my
enthusiasm comes through and wears off
on you a little bit and helps you fall
in love with the CSS and see that maybe
it's not as bad as you might have
thought it was if you're one of those
you know if you get a little frustrated
by it every now and then we're gonna be
building this out with just some plain
old HTML and CSS and a little bit of
JavaScript and near the end it's a
really simple build I'm structuring this
way it's all gonna be static files but I
want to allow you to do what you want
with it so if you're so if you're coming
from like reactor view and you're
looking for a portfolio up you can take
everything you're learning in this and
apply it to making something like that
or maybe you want to just up the game a
little bit with a static site generator
you want to build this with Jekyll or
upgrade it with a lemony or something
like that and just make something really
cool I want to leave the door open for
as many people as possible so whether
you're just trying to get something
together you're just comfortable with
HTML and CSS we'll be good to go but if
you do have these you know if you do
want to take this and do something
bigger with it or bring in the languages
that you know you should have no problem
at all doing that now one thing that's
really important before we get into it
though is I am assuming you already know
a little bit of HTML and CSS this is not
an introduction to HTML and CSS it's for
people who've already started using it
in your building your portfolio now so
hopefully you've done a little bit of
stuff along the way to put into that
portfolio so we are going to be looking
at using flexbox
and grid and custom properties and doing
lots of fun things and while we're doing
it I'm going to do my best to explain
why I'm choosing these all
chins and how they're working at all of
that they're not in-depth tutorials into
any of those topics because then this
would just drag out forever we do want
to keep it as concise as we can I'm not
gonna skim through it too much but I'm
assuming you already have some knowledge
on these topics know if you've never
used one of those things like custom
properties our grid before don't let
that scare you away they're not that
scary they're not that complicated and
hopefully they are a nice introduction
in this project for you to get started
with them and you could take what you
learn here and start applying it outside
of this project as well now if you want
to be able to access this project you
can use the link that you're seeing
right here on the screen right now that
link will bring you to an Adobe XD file
and I want to show you a few things with
that file so let's go and take a look at
it right now
so when you click that link you're gonna
be brought to this page right here where
you're gonna see the mobile and desktop
options to look at so you can choose the
one you want to look at let's go check
the mobile one out first now one thing I
don't like about this is it brings you
to this comet view so if you want to
leave me a comment you're more than
welcome to but you can see here it's
even flashing at us it's telling us that
we want to come and look at this specs
one here now if I go in the specs you
can see I can see the colors that I've
used so I get the hex codes of stuff you
want you can see the fonts that I've
used the font weights that I've used and
all of that information and you can come
through and look through everything
there is in here you can click on things
to get information you can copy the text
that I've used you can get the text
properties the font sizes of individual
things everything you need for all of it
is here now there's obviously like the
top and the left property hopefully
you're not going to be using those or
even the width and the height and all of
that but you can get the individual
properties actually we should have been
looking up here you can see the font the
weight the size all of that stuff and if
ever you need to go back you click on
portfolio website and then we can go and
look over here at the full screen
version of it and you can get all the
different things that you need to get
from that so nice and easy to do and
you'll also right now it's not set up
you'll also be able to download the
assets from all of this as well so if
you want the images that I've used yours
but ideally you'd be using your own
images anyway and not necessarily be
since this would be your portfolio site
but if you want the sizes or stuff like
that
the links should unlock all of that for
you and you should be able to download
the assets if you want them so now we
know everything we need to know to get
started
what are we waiting for it let's go
Setting things up HTML
04:33
all right so here we are about to start
a project I'm so excited because I love
starting new projects so what we're
going to be doing in this is just
setting the very basics of it up and one
part of that just really quickly is I
have supplied all of the images here in
the images folder so those are the ones
I will be using if you don't want to be
following along within scrim but you
want to be doing this on your own and
your own code editor or having your own
files what you can do it is in your
script editor you can click on the
little gear icon that you see there when
you click on that you'll get some
options one of them is to download the
zip and when you download that it will
give you all of the images along with
any code that I have on the screen when
you hit that download zip so if you do
want to download it later on when I have
some work done to compare to what you've
done you can also do that if you run
into any issues or something like that
if you are coding it on your own or if
you work completely in the screen but
editor and then you want to download all
the files at the end you can do that
this could be something you're doing
with your own images you don't have to
be using mine if you know if this is for
your portfolio please use your own
images and set everything up the way you
want to be setting it up and so we do
have a few things we're going to have to
do to start this up so the basic
document structure here we're going to
need our doctype HTML and we need an
HTML open and HTML closed just like that
now if you want you can also come on
your HTML and set the language to be
English or if you're setting up your
site for another language of course you
can go ahead and do that to whatever
language your website is in it's not a
hundred percent essential to do that but
it does help things know what a language
your website is in of course we're going
to need a head so we can do our open and
closed head and we're going to need a
body and we can close our body like that
so for the rest of this video we're
going to be working in the head and then
in the next one we'll graduate off into
the body of our document so if we come
and look here the first thing I'm gonna
do is a meta tag for the car set utf-8
that's just pretty much standard and
there is one more meta tag we're going
to need here which is our viewport so a
name is equal to viewport and we're
going to do some content in here and our
content is going to be equal to width
equals the vise with comma initial scale
is equal to 1.0 this is to make sure
that your website actually functions
properly on small devices as well as big
ones if you do not include this and you
open your website on a phone or a tablet
or any other mobile device it will be
like the desktop site zoomed out on your
phone which will just look terrible so
this just ensures that everything will
work responsibly and everything will be
great and here we can do our title I can
calling mine dev Jane port folio web
site the last couple of things that I'm
gonna do here is I'm gonna add a couple
of links one of them is going to be to
normalize which this is actually already
brought in by scrim buffs if you're
downloading through that little gear
icon that I showed you it will come it
generally comes with a normalize in
there already because scrim but by
default users normalize if you don't
know what normalized is it's a CSS file
that pretty much helps even out all the
differences between the different
browsers because there's not huge ones
but there are some differences between
them still it irons out some bugs tries
to make them all behave in the same way
it just makes it a little bit easier to
have the website looking the same in all
of our browsers and the other thing that
I'm gonna bring in right now is the link
to font awesome so you can actually copy
this directly from the scrim editor here
but both of these I have got from CDN
j-s com
so if you want to get other links to
things you can always do that now I have
linked to the all thing here of font
awesome I'm not going to be doing a deep
dive into what font awesome is but we
are using it for the social icons down
at the bottom you only really need to
access the brands one but I'm putting
the all here just in case on your site
you do want to have access to more of
them but if you only need the brands you
could always change that over either go
to font awesome they'll give you a
unique link views that's for if you only
want the brands or of course from CDN
Jas you can also get that brands link
we're also going to need to get into the
google fonts as well as our own CSS file
has added links here as well I'm not
going to be doing that I'm gonna wait
until we're writing our own CSS before
we go ahead and do that so because we
will be waiting until then to put both
of those in for an
we are completely done we're going to be
moving into the body setting up the
header in the next video I look forward
to seeing you there
09:06
right so here's the entire project that
we will be building and just as a
reminder you can access everything you
need for this by clicking the link that
is on the screen right now that will
bring you to the Adobe XD sort of link
file thing that I have so it gives you
access to all the text the colors the
font information and font sizes the font
families all of that if you want to
follow along with how I've set it up but
of course you can just follow along with
what I'm doing as well but it can also
make it so you can see it on your screen
while we're coding because that can be
convenient if not I have also broken the
different sections down into different
slides that I'll be referencing back to
as I'm coding things up but for this
first one where we're doing the header
only the header has the logo and the
navigation in it which is hidden away
right now so I'm not going to be opening
this up too often in this video but both
of those are there and again if you do
need to get that link I'm going to link
to it in the description of every video
so if ever you didn't click on it or you
close the tab you'll easily be able to
access it again
so let's come in here into my body and
the first thing we will do is put in a
header and I'll close that header off
and inside of my header we're going to
have a couple of things I'm going to a
div class of logo and close div and
inside of there I'm gonna put an image
SRC is going to go to my image folder
dev Jane dot PNG and I'm gonna put an
alt tag on this so it's for my alt text
I'm going to leave a blank though and a
lot of people think that if you have alt
you have to put something on it you need
to have the alt there it's important
that you have your alternative text but
if it's something decorative and a logo
it's generally decorative you can have
that just as a blank alt like that it is
perfectly fine you don't need to put
logo because if the person here's logo
it doesn't help them if they cannot see
it in the first place so we can just
leave it like that there is no problem
whatsoever and then let's come down to
here and I put this in a div because
maybe you want to set this up as an SVG
or do other things with it so you know
we could do a lot of different things
and by we're always styling the div that
it's inside maybe this is text there's
different options that you can do I am
trying to make this as template as
possible the next thing we need in here
is a button I'm gonna give this a class
of nav toggle because
name sort of speaks for itself that's
going to be the toggle button that we
can click on to open and close our
navigation and I will give it an area
label of toggle navigation because
there's no label for it there's no text
that tells us what this button is being
used for so it is important to put an
area label on there to help out a little
bit for accessibility reasons and inside
of that I am going to do a span class of
hamburger close span there's nothing
actually in there it's a blank it's just
gonna be something we're going to style
up and make it look like our hamburger
because we're gonna animate that and do
some fun things with it as well last but
not least in our header we're gonna have
our nav itself and I give this a class
of nav and you might say that's a little
redundant and it kind of is but it's the
way I like to work so we're going to
stick with it if you don't want to have
it you don't need it but when I'm
writing my CSS for the most part I like
to be selecting classes and just single
classes I'm gonna make a couple of
exceptions in here for say the logo
maybe and a few other things yet you're
gonna see that I do like putting my
classes on everything and I'm gonna be
using a system called them as well and
so it would be nav double underscore
list and I realized that that might
drive some people a little bit crazy
having the double underscore there the
reason I'm doing a double underscore is
with the BEM system this is saying that
my this list is a Cub component of my
navigation here I will also never nav
items are not links everything is gonna
have a class and it's gonna it just
makes it a little bit easier when you're
reading the CSS later to know if
something belongs as part of something
bigger or is it a modification of
something you're gonna see we're gonna
have a few examples of that throughout
this project and it's maybe a little bit
longer to do a double underscore we're
gonna have times where there's a double
- but it is a choice that I'm making
very specifically because AI do think
them is I'd like them but I also think
it's going to make it easy if you want
to go into the CSS later to modify it to
quickly be able to identify what you
want to change and to be able to change
it very fast so in here we're going to
have our li so li class will be a nav
item and then in there we can have our
links a href we're gonna set these all
up after so I'm just going to leave it
as a hashed
at the moment and that first one can be
our home section and I'm just going to
copy this paste paste paste just like
that and obviously if you wanted to add
or remove sections from this it would be
very very easy to do and for our header
that is everything that we need so in
the next video we will explore the
introduction section or that main
section that has the picture with the
name in it look forward to seeing you
there
Intro Section
14:03
all right so I've decided we're going to
be doing the intro section as well as
this because both of them are relatively
simple so we're going to do both of
those in one shot before moving on to
the next one looking at here it might
look a little bit complicated but you
know with the green bar you might be
laying how are you gonna do that don't
worry about that looking at it we just
need to know what are the different
pieces of content we have here so let's
come here I'm gonna put a comment at the
top this is gonna be introduction I'm
just to try and make it a little bit
easier and it could be a bigger comment
if you wanted to and we're gonna do a
section on this so section class is
equal to intro and I'm also going to
give this an ID of home you don't the ID
could be different but it's what we're
eventually going to set these up and
actually we're here so we might as well
do it we can set my link of home right
away to work on that so it's the only
reason I'm putting an ID on it I
personally don't use IDs for styling
things I only use IDs for anchors like
this or sometimes for JavaScript
functionality and some other stuff but I
use my classes for styling I use IDs for
anchoring because that's sort of what
they're good for and clothes section in
this section we have a couple of things
we're gonna have our h1 I will give this
a class and remember I told you
everything is going to have a class on
it so it is gonna have a class of
section title because it is a title of
my section but I'm also going to be
modifying that a little bit so we're
also going to call it my section title
intro and I realize again that that's a
little bit long people might not like
writing all of this and them is a choice
that I am making but in this case I do
think is a worthwhile case because it
makes it really obvious what's going on
so the double hyphen here is saying that
it's a modifier class so it's going to
modify this section title to be a little
bit different from the default section
title because there are some changes
that we do need to make to that so in my
section title intro we do have a bit of
text in here so most of it I'm going to
copy and paste but for now I'm just
gonna write hi I am because here we do
need our strong tag it's a short bit of
text Jane Smith and close strong and we
can whoops
there's my close of my h1 there
and then we can come in with a paragraph
class is equal to section subtitle and
I'm going to do a section subtitle intro
because it's going to need some
modifications on there and we can say
front and Dev closed paragraph and last
but not least we do need the picture so
we have an image the image is in our
image folder and the name of it is dev
Jane 0 1 so they have Jane 0 1 dot jpg
again you can feel free to replace these
with your own pictures at different
dimensions on these pictures should work
okay but if you do want to use it just
download everything you can check the
dimensions on the picture itself and you
should be good to go and that is it for
that section
so let's come down and do the next one
here which will be my services I like
having just a comments at the top of
things or sometimes if we have lots of
closed divs I might put some comments to
say what those are actually closing not
that it's hard to navigate but it just
gives you a little visual clue when
you're scrolling through a whole bunch
of stuff where a new section of content
is starting so here we can do my section
class equals my services could just be
services I guess and we'll do that for
the ID services we can come back up into
my links or my my links here for my
navigation and add service is there so
this is going to link with the ID down
here and we can close that section off
and inside that section
let's just go quick take a quick look at
what we want just we have a title with a
little underscore on it so that's going
to be another little modifier class
because we're just going to do that as a
pseudo element on the title and then we
need three columns and a button down at
the bottom we can have an h2 class is
equal to section title and that will be
a section title services what I do
close h2 and so that's the me the title
the we can control the color the
underline with the pseudo-element all on
there and then we need to have three
columns so for the three columns here
I'm going to do a div class services so
that's going to help us create the three
divs are the three columns that we need
and inside each one of those I will have
a div class called serve this so that's
my individual service we can close that
div and inside each one of those will
have an h3 close h3 and each one will
also have a paragraph I'm going to put a
comment here
close close service because we will have
a whole bunch of divs and the indenting
on that is a little off so copy paste
paste and I'll come through and do the
text on that off screen afterward we do
I forgot to close my services so we can
say that that's my close services and
then here I need to have an a href is
equal to I don't know what we'll call it
yet there'll be my work we can probably
just call it work and then the class
will be equal to BTN and close a and in
there my work so that is the structure
that we are going to need for that
section when we're off screen I will
come through and put all the text in so
when you start the next video everything
will be exactly the same but the text
will be there and we can continue on
with the next section we have in the
site
19:58
all of the text is in
forgot the closing paragraph so those
are also there now and we can move on to
the next section of our site so that one
will be it's just call it about me and
let's go take a look at what we're going
to need for this one so just like the
title up above it is pretty simple there
might be a few things in here you may
not be sure about but the overall
organization and structure of this one
is pretty simple
the next one will be two so we're just
going to finish off all the HTML in this
one because there isn't too much to do
and then we can get into the fun part
which is our CSS so here we need a new
section class will be about me and we
can give it the ID just equal to about I
am Canadian so boot boot me
let's might as well come up right now
and a link that about and I think this
one will just call it work so we'll put
that in right away that's where that
we've already had that set up for our
link there so that is good closed
section and inside this section what do
we have we have another title so h2
we're going to see this a lot class is
equal to section title and then section
title about this one is who I am
close h2 we will throw our paragraph on
here for a subtitle so class is equal to
section subtitle and section subtitle
about closed a closed paragraph some
people like using headings as subtitles
but in general it's kind of frowned upon
a heading sort of the next level of
content so you have your age to then if
you had like a sub section to your h2
and yet of several h3 that would make
sense a little bit like here we have our
what I do is the section and then we
have subsections we have design and
development we have e-commerce we have
WordPress so by having those different
sections in here that's more what a
heading is used for it's less a title
and then a subtitle so just using a
class on a paragraph is generally a
little bit of a better way to do it you
could also if you wanted to actually put
in a new header and closed header for
each one of these sections for every
single section like that as well
so you're saying this is the header for
that section I'm not going to bother
with that but if you wanted to it's you
know it's very valid to work that way as
well so in there we have that and then
I'm gonna have one more thing I'm never
div class equals we'll call it a vote me
body so it's like a subsection once
again that's why we have the double
underscore here we have about me and
then this is a subsection to that so or
it's a component of my about me so I'm
putting a div all right that's why we
have the double underscore there and
then in that div we're gonna put in the
paragraph or we have two paragraphs of
text closed paragraph this is important
that and you know you could technically
get up to five paragraphs in here or
have only one paragraph if you wanted to
and it wouldn't cause any issues
whatsoever but it's important that we
group it all together just to be able to
handle exactly where it's going to go
inside of this section and then after
that we have one more thing we're gonna
need which is our image I don't know if
it's really a bus but we'll stick with
that and that's image def Jane dot zero
two dot jpg there we go so that is good
closed section and as I mentioned we're
gonna finish off all of the HTML for
this one so this is going to be my work
my work this one's gonna be pretty
simple so sir section class will equal
my work ID we said would be work so in
here we'll once again we're going to
need our h2 class equals section title I
don't know if we're going to need to
have a modifier class on that so I'm
going to leave it like that right now we
might need one to change the color of it
because the color of this one is going
to be white and that's a little bit
different hmm we're gonna see but and
actually I'm looking at it now because
these have a background on them and this
one doesn't we might be coming back in
here to make some small changes later on
but for now let's leave it like this and
also I haven't put any text I'll do that
off-screen so you don't have to see me
copying and pasting class is
equal to section subtitle and the part
that's gonna be the most important here
is we're gonna put in a div class I'm
going to give this a class of portfolio
inside the portfolio we're gonna have
each one of them is going to be an a
we're going to replace the href on this
eventually but for now we'll just put a
hash tag with a class of portfolio
portfolio for folio double underscore
item because it's the individual item
close a and then inside each one of
those links we will have an image SRC
I'll put the first one pork vote
you can't spell portfolio today port
folio 0 1 JPEG alt I'm going to leave
blank for now but that could be
something you fill in on your own if you
want to put a little description of what
the project is and the class on each one
of these will be portfolio double
underscore IMG because it's the
portfolio image portfolio portfolio item
0 1 I'm gonna speed this up as I do it
because I think a little comment on each
one of these will make it easier when
you're setting everything up alright so
that is done let's hit save because I
haven't saved yet and let's see
hopefully everything is actually showing
up on here so it looks like everything
is there we didn't get any errors my
images are all loading in so we're off
to a good start on all of that I'm going
to close that off because we don't
really need it right now and last but
not least footer awesome we're right at
the end the footer is pretty
straightforward so we do footer close
footer and in here we're gonna have a
couple of things we need in href of male
2 I'm gonna hello at Jane dev with it
we'll put a comment down here ahead
class is also going to be footer link
and that can just say hello at Jane dev
close a we play replays with your email
address right so there you can just make
sure that this and this here are your
own email address if you are planning on
using this for your own a site you well
we have a class of social
social List clothes ul I'm not doing
this as like a footer thing and I'm bill
this is my footer link and actually that
should be a double underscore on there
I'm not doing this because technically
it could be something that could be used
in other places it doesn't necessarily
have to be in the footer so I'm not
calling it like footer social list or
something like that but it could be if
you wanted it to
we're gonna have an Li with an A in it
close a close L I the list item itself
will have a class you guessed it of
social so she'll list item to me a lot
like our navigation class is equal to
social list link this is a place where
you could have another class on this
also of like unstyled lists that you
could use for both of them and just
remove you know because both of them
there's a lot of similarities between
the two lists and then on top of that
they'll have some modifications to it so
if you wanted to take that approach to
it instead of the way I'm doing it here
that would be perfectly acceptable and
result in a little bit drier code in the
long run so I'd be all for that for now
let's put some eight reps on these
they're just gonna go to the generic
site so I'm gonna speed this up well I
put them all on alright and there we go
and you'll see for now just put an ABC
we should have a D on that last one what
did I do wrong
I put the D in the wrong spot so ABCD as
the links because when I put in the font
awesome and I bring I'll explain a
little bit of how that's working just in
case you want to change it out for your
own icons so when we do the footer I'll
go into more detail on that for now that
is everything we will probably be
jumping back into the HTML a little bit
as we write our CSS just in case there's
a thing or two along the way that we
need to add but for the most part that
is done that is the structure of
everything we need so from there we can
go ahead and start styling this up the
fun parts are starting in the next video
Setting up the Custom Properties and General Styles
28:43
actually styling things up which is
always the most fun if you want to get
the different font information the
weights the colors the sizes all of that
and the colors in general that I used in
this you can click here once again to
get to that Adobe XD link now do you get
started on this in this video we're just
gonna be setting up some of the general
things I'm gonna be doing a lot of CSS
custom properties in here if you're not
super familiar with them they're going
to make sense pretty quickly
so we're gonna be starting with that
we're going to be setting up our basic
fonts and getting all of that set up in
this one so the first thing we need to
do is actually create a CSS file so if
you're in your own code editor you can
do that how you're used to doing if
you're following along here in scrim ba'
you can right click in scrim be' where
it says files and you can make a new
file there and actually before I do that
I'm gonna make a new folder called CSS
and then inside my new CSS folder I'm
gonna make a new file called style dot
CSS and we can get started in here but
before I write anything nothing will
show up because we're not linked so I'm
gonna come down here and link to my own
CSS file CSS and just so we can make
sure that it's all working
why don't we come into there and say
body background is red and see if that
worked so I'll save that file I'll save
the changes I made there and now we can
see that my body is definitely coming in
as red so that is fantastic there really
quickly before we move on you might have
noticed there was a white background on
that if you did download these images
and you want to follow along with
exactly these ones you might have to
download again just there was a weird
white box on that that had a bit of a
extra spacing on it because of the
shadow that I put on I have removed it
it is updated I'm really sorry about
that but you can grab the new images now
if you are following along but again I'm
assuming that you're doing this using
your own images to replace these ones
but that has been fixed so if you want
to download the images again you can do
that so rate once again and we can now
get rid of our body background read on
that hit save and we can see that that
his disappears now before we actually
start writing any CSS I I'm going to do
one more thing where I'm going to come
in here and put a link to the google
fonts that I used in my document or in
my design so update these with your own
fonts if you
you now if you like the fonts I've used
these are the ones I'm gonna be using
the first one is the source saws the
code version which is the mono spaced
font that was here I only use the
regular but I want to make it really
easy for you to update so if you did
want to switch this out for like for 300
or the 500 or whatever it is you can
just update the numbers here or add new
numbers to it and the same thing I'm
using the light and the black but if
ever you need it more you could just
change those numbers or you can go over
to google fonts to switch this out
completely with the ones you want to be
using we're also using a whole bunch of
custom properties so it's gonna make it
really easy for you to update this all
the fonts throughout the whole site but
you might have to just switch out that
link right there with the fonts you want
to be using to do it um so coming into
here the very first thing I am gonna do
is a star comma star before comma star
after um to set up my box sizing border
box because I do that on every single
project
it just makes our life so much easier if
you're not too sure about box-sizing
border box it's just changing how
padding is calculated to make it within
a width instead of adding on to the
total width of something it just makes
our lives so much easier when we're
setting things up the other thing I'm do
is come on here on my route to set up
some custom properties so the first
thing I'm do is have a font family of if
this was my own project I probably call
it font family size and then font family
code or font family mono or something
like that because I do want this to be
something that could be used for other
purposes I am going to call this font
family primary and a font family
secondary just in case you end up using
different fonts from what I'm using in
here I do think that makes the most
sense to do so my primary one is my
source sauce pro so we can bring that in
right there and my code is that one
right there I'm just copying and pasting
these directly from google fonts the
next thing I'm going to do is setup my
font weight so I'm gonna have a font
weight of regular which is gonna be my
308 font oops that should have a double
- and here font weight of bold
which will be my 900 now if you're not
used to custom properties you haven't
used them this is not like them where
I'm doing this out of you know just for
fun this is how custom properties do you
have to work with the double - on here
we're gonna have a color of a background
which is just going to be my FFF will
have a color text which is my 30 30 30
actually a lot of time I do that but I'm
gonna call this color light color dark
because again we might want to be doing
this you might want to change these
colors around for your own design and a
color accent which is my 16 e 0 B D
which is the main greenish color that I
use throughout this whole site I'm going
to set up some font sizes I'm going to
say a font size of h1 a3 R M I always
set my font sizes in REMS font size h2
2.25 REM font size H 3 will be 1 point 1
sorry 1 of 2 5 REM these are all things
I calculated already based on my mock-up
and just playing around a little bit
with it will stick with one REM on my
body and the nice thing with font sizes
are the nice thing with um if you've
ever used something like SAS where
you've set up using variables variables
are awesome they're amazing but these
CSS native ones are great because you
can actually change them within a media
query which was not something you could
do inside of SAS or less or any of those
other ones you might have been using I'm
gonna be setting up a pretty generic
media query here of 800 pixels but I do
think it works well for this design but
it could be something that you could
look at changing in your own if you find
that it's not working but I think it's
gonna work well for what we're doing
here and what I'm going to do is
redefine my font sizes here to make them
bigger at larger screen sizes
so wherever font size h2 3.75 REM font
size H 3 will be 1.5 m and my font size
body will be 1.125 REM and that way at
once we hit this we don't have to
redefine it within our actual CSS these
are being redefined here so everything
should just magically change for us as
long as it's been properly setup using
those so that we can come all the way to
here and I can just put custom
properties update these for your
design and whoops that's I'm so used to
we need comments that look like this
there we go
custom properties there we go and then
we can do general styles so in my
general styles what are we going to do
let's just make some room here and then
come back up so the first thing we're
gonna select our body and notice that
the background down here of var color
like so let's hit save and the nice
thing with this with the custom property
is now if you decide to change the color
of it so you can see right now we have
the white background on there but if I
change this to let's say accent it's
going to change the background color to
everything to accent like that where the
accent color is coming in or if we
change it to dark we can quickly change
the color scheme of our whole site so
let's bring that back up to light for
now and then so we have light on there
our color will be our VAR color dark so
if you needed to change anything you can
just invert that no less and you'd have
a dark color scheme which we're going to
sort of be using when we get down to
that at least to change the font colors
or when we get to my work area we can
easily set that dark background on it
just like that
other things on here we're going to want
to set we do have a margin of zero we'll
put our font family on here we're gonna
put our VAR font family primary on there
we're going to have our font size of our
font size body and now you can sort of
see where that FS rfw and all of that
that I used along the way why I did it
I'm gonna line height I use a one point
six as sort of a default line height
that I like to use on everything so hit
save and we come back we should see a
lot of those things coming in the fonts
are working and a few other things we're
getting there we are almost done with
the general setup another general thing
that I like to do is just setting my
images to have a display a block which
gets rid of some issues that sometimes
come up with images and also setting a
max width of 100% on them just so they
don't grow bigger and overflow at the
side of their parents next up we're
going to come and just set up our basic
type typography
just a word I have way too much trouble
pronouncing sometimes we're not prancing
but spelling for something I write a lot
so we're never h1 h2 and h3 are all
gonna have a line height a line height
of we're going to try 1.1 and adjust
from there but because they're gonna be
a bigger font sizes in general if they
break on two lines they definitely need
the smaller line height on them and I'm
gonna put a margin of 0 for now that
might have to get revisited but in
general the headings you want to get rid
of the margins and maybe keep a bit of a
margin top maybe a small margin bottom
but we're just gonna do a bit of a reset
on there and then I'm h1 I'm gonna set a
font size a var and we're gonna do our
font size h1 and you can probably guess
what we're gonna do for the other ones
I'm just going to copy this actually and
we can set that up with an h2 and that
is an h3 and over here we can have our
age - and my h3 so if we save that we
come take a look we should have some
nice big font sizes everywhere except
hmm that's really small let's just go
take a look I forgot to put Ram here 4.5
nothing will not work so we'll have a
nice big font size at large screen sizes
but when we get to the smaller ones you
can see it's automatically adjusting
when I change my screen size and if we
come lower down on the site again we
should see those titles get bigger and
smaller automatically with our media
queries so that is really really cool
one of the things I love about custom
properties they do take a little bit
more time to actually set up but then
once you're using things and creating
things man he just go so so much faster
so I think we're gonna end this one here
we're gonna skip over the header and the
navigation for now we're going to come
back to that in a little bit because for
now I just want to start doing the
general typography but for our section
titles and subtitles and then we'll sort
of go through the site a little bit from
there
Styling the titles and subtitles
39:23
all right so as I mentioned we're gonna
do a little bit more typography here in
EV our section title we'll give this a
little bit of styling which at the
moment I'm not sure if we need to do
much on it and we're gonna have our
section subtitle I'm gonna start with
the subtitle because there's a bit more
of an I'm gonna play with that first and
then go back into the other one to
modify it a little bit so our subtitle
here is gonna have a margin of 0 just
because I think it makes our life a lot
easier because remember we didn't do it
as an h3 this is actually a paragraph
and because it's a paragraph the font
size on it we do have to modify so the
font size will be my bar font size h3
and you can again start seeing where
these variables can be handy you don't
have to remember the pixel value you
don't have to worry about the media
queries or anything like that it just is
going to work and then we had our
section subtitle intro we also add the
section subtitle about that had similar
styling on them or they both had a
background color on them of the VAR
color accent and the font family for
both of those will be my VAR font family
secondary they'll probably going to need
a little bit of padding on them but
we'll come back to the padding in a
little bit umm we're gonna have to play
and modify a lot on these as time goes
just to get them to line up properly in
the spaces let's just go take a look and
see I think that's working out pretty
nicely actually with how it is right now
I'm actually really happy with it I'm
just gonna play with the spacing on it a
little little bit just to see because I
think it's a little bit tight compared
to what the original design was but it's
not too bad you can see here the comma
is actually touching that so I think
what we'll do is on my section title
we'll give it a little bit of a margin
bottom of like 0.25 M that'll probably
be enough to push it off especially if
it's a large font size I always do
margins and padding on my text using M s
I think it's the best thing it's
relative to the font size that way and
you can sort of work with it so I think
that's really really cool and handy here
since we're dealing with our section
titles everything on my I like to keep
all my typography together which is why
I'm working this way
I'm gonna say a font the font family
should be my font not my font family
sorry my font weight on this one should
be the regular which is awesome except
this obviously shouldn't because that
should have a strong on it let me just
double check did I put that I do have
that on there so let's go and fix that
since this should be saying strong dude
your drew typography I'm gonna do it up
here I know it's sort of a typography
but strong it's a bit of a generic thing
font weight is var font-weight:bold
there we go so we have that working now
the question is I'm gonna cheat a little
bit this isn't something I normally do
or very often do but I'm going to
actually take my this and say that the
strong tag that's nested in there is
display:block just so the jane smith
always ends up on its own line instead
of sometimes being on a different line
like that so i'm not a big fan of using
compound selectors but every now and
then once you know the rules you're
allowed to break them sometimes so this
is one of those times where i think it
is perfectly fine to go in there and
break it the font size on this does look
a little bit smaller than what the
original design called for so i might
play with that but we'll play around
with the overall look and if we still
find that it's too small maybe we could
even change both of them to be the h2
size instead anyway we'll see we'll come
back to that once the design is starting
to come together a little bit but
looking at the small screen size is
honestly we're getting close already to
what we need there's not a ton of work
that needs to be done at the small
screens to get everything here to work
obviously these need some fixing up and
overall there is some work to be done
but we are getting close so what we're
gonna do is we're gonna end this video
here and then in the next video we are
going to go in and set up the grid for
this and make this work Epple small and
large screens
Setting up the intro section
43:40
now I know you might be wondering why
we're not doing the navigation first but
I'm gonna come back to the navigation at
the end and set that whole thing up
because we're gonna be getting into a
little bit of JavaScript and stuff to
get that working so I'd rather just
stick to CSS for now finish everything
else come back style that and then add
the JavaScript right at the very end so
here what we can do is let's set up a
bit of a comment so we'll say intro
section and we can start styling it up
so the first thing to do is I'm going to
give it a position of relative I'm not
sure but I think we're gonna have some
absolute positioning coming onto here so
I'm doing that is a bit of a precursor
for that lets you know we have I'm
actually gonna say we're gonna turn this
off but let's just say for now I'm going
to say an Ave has a display of none just
so it doesn't really get in the way too
much we'll keep our logo at the top even
though that does have to be smaller but
at least it'll give us a bit of a better
idea of how everything is going to be
looking once everything comes together
at these smaller screen sizes and I
think actually I'm gonna come up before
we do anything else
typography I'm gonna come here to like
my general stylings and I'm actually
going to give my sections a generic
padding so padding will be let's start
with say 5m top and bottom 2m left and
right the tool might be a little bit big
at small screen sizes but we're gonna
start with that and see what it does the
main idea here is it's just going to
keep things from touching the side of
the screen when we don't want them to so
I'm actually not minding that except the
line height here I'm actually gonna
shrink that down to one because I find
the spacing on the lines was way too
much I think that is looking not bad but
obviously we need to add a little bit of
spacing on the bottom of that because it
is stuck on to there so that is my
section title my subtitle they're both
going to need the spacing so I think we
can add our margin bottom here of 1m
just to give us that nice little space
and it's small screen sizes I don't mind
that too much this does need a box
shadow we're gonna come and do that
afterward though and more we do need
this to change is once we get into our
media queries here and when we start
changing this for the larger screen
sizes I know I set the fonts
to change at 800 I'm gonna set this to
change its 600 though my stance on when
media queries should come in 600 as
again this is a bit of a generic thing
your text might change your images might
change you're going to play around with
it a little bit so I'm doing 600 is a
bit of a generic one I like designing
from you know 300 and up 600 and up and
900 and up tend to be some nice generic
ones instead of focusing on specific
devices but your mileage may vary with
all of that so the first thing I do is
actually
now we're going to define a display of
grid on here and we're gonna set up a
grid I do like using let's say grid
template areas I do like I love my grid
template areas so in my grid template
areas here I'm gonna go on another line
just because I find it makes it a little
bit easier and we're gonna say title and
then on the next one we're gonna do an
image and subtitle like that and then we
can say my grid template columns will be
men do a min content so it's going to
try and shrink that down as small as it
can we're gonna set our image up so
hopefully that doesn't actually
disappear because that is for my image
and then my text will be set to max
content to try and make that as big as
possible now obviously we need to get
things actually lining up where we want
them to be because that's gonna cause a
little bit of an issue so let's start
off with my intro image which I didn't
actually put a clasp on so here we can
do clasp is equal to intro image that
will help sorry about that so our intro
image will be our grid area of IMG um
and as I was a little worried about that
means my image is actually going to
disappear so let's fix that um we're
gonna actually say this has a min width
of 250 pixels just so it never
disappears and that's much better but
now my text is stuck to the side there
which is no good so here we can do
a column gap of 1m just to create that
spacing that we want and the subtitle we
might not actually be able to use but
we're gonna leave it there anyway so
that is nice the only problem is we
don't want to be stuck there we want it
to stick in the middle so I am also
going to do a width of min content which
should shrink it down and then give it a
margin of zero Auto and so it should
match the width of the whole div well or
the section will match the content
that's inside of it and the zero auto
will keep it nice and centered when
we're at these bigger screen sizes so we
can see that it is working nicely but
the front end Dev we have a bit of a
problem where it is stretching there so
that was my section subtitle intro now
this is where things get a little dicey
because should this be here or should it
be up in the typography section I'm
gonna argue that it should be here
because we're pertaining to layout right
now or not pertaining to the type if you
think it makes more sense to leave it
all in one spot together I completely
agree with you and you can go ahead and
do that but because we're only worrying
about layout right now I'm keeping this
part of this stuff down here where the
rest of my intro layout content is so
for this I'm gonna start by doing in a
line self as start which will stop it
from stretching down and it sort of fits
in to that area a little bit nicer and
I'm also now going to say that my grid
column is negative 1 over 1 which will
have it stretch the whole length and
going all the way across which is great
except now it's going underneath this
because by default they don't want to
overlap so to get around that
overlapping issue we can are not the
lack of wanting to overlap I should say
we can do a grid row of two because we
have our grid row of 1 our grid Row 1
line and then our two so it's in there
now our text is there we want it on this
side so we can also do a simple text
align to the right I notice that we're
pertaining to layout more but at least
there we go it is starting to work and
starting to come together now my
original plan to get
this to go underneath like that was
actually to use absolute positioning
it's absolute positioning the grid work
fantastically together but I think we
can actually pull this off with relative
positioning and of having to avoid
absolute positioning sometimes is a good
idea so what I'm thinking is on here we
can do a position of relative but my
left is gonna be negative 2m and if we
go take a look see that's pulled this
over so that's giving us that space here
maybe that's a little bit too much so
maybe we can do like a negative 1.5 and
I think that'd be probably a little bit
closer perfect
the only problem now is the width won't
match and this is where if you did use
absolute positioning and say left is
negative 1.5 and you could say right and
zero and it's gonna line up perfectly we
can't actually do that when we're using
relative positioning but we can do a
little cheat and I love doing things
let's not cheat it's what these types of
things were made for so my width is
gonna be a calc of 100% plus 1.5 m and
that should make the width be 100% plus
1.5 m and then it lights everything up
nice and perfectly so I think that's
really cool and fun I love doing stuff
like that um so that's working I think
it's pretty straightforward too by
having these together and usually I've
wit near the top but I do think it means
like keeping these together means them
makes them work better and I'm gonna
increase the padding a little bit but I
think we're gonna want to do this on
both of them so let's just come all the
way up here we set a background on that
so I think I'm gonna set my padding here
padding of say 0.25 M when I am let's
just see what that ends up looking like
yeah perfect so I like that now it's not
lining up like my design where I matched
that but obviously if the title changed
I did front-end dev but say you wanted a
different title
I could actually break it a little bit
where it's actually gonna go underneath
the image I'm a tad so I think instead
of changing that if you wanted to play
with the font size you could very easily
play with it but I'm gonna keep it as
this smaller font size because it's
going to give people more room if they
had a longer title without breaking it
I think that where the media queries
here are would prevent someone unless he
had a really long title from this
becoming an issue so the last thing for
now is we're gonna stick it underneath
and add that box shadow onto there so
let's go and take a look at how we can
do that putting it underneath is going
to be easy enough I'm actually just
gonna come on the image and give this a
position of relative and that should be
enough but we can also just to be safe
give it as that index of two just so we
know that it's coming up on top and now
for the Box shadow I like doing
complicated box shadows because they can
be a little bit nicer looking so what
I'm actually going to do because we do
want to use it in more than one place
I'm going to come up to my custom
properties here and create a box shadow
here so I'm just going to call it BS
which could be a number of things but it
will be box shadow and we're gonna do
one it's give me a small offset so 0.25
M 0.25 M so that's to the right end down
just a little bit the blur will be a
0.75 M and we'll give it in our GB a of
zero zero 0.25 except that should be our
GB and that should be good so now we can
come down and put it on our image but we
don't want to put it on this one we want
to put it on our image at all sizes so
I'm gonna do my intro image out here and
give it a box shadow of var vs and that
should start by giving us a nice subtle
shadow it I think just like that it
looks good but I like always coming in
and adding a little bit to my shadows so
I'm gonna do a comma and then I'm gonna
break this onto a second line but if you
don't want to you don't have to it can
continue right after the shadow is layer
on it so if you're doing more than one
shadow you can always start with the
bigger one first and then like smaller
ones after because it's coming sort of
closer to us if that makes sense the
blur will be smaller as well and rgba 0
0 0.15 and don't forget your M here so
the difference between the two of them
will be very subtle but it just gives
you a bit of a darker shadow that's a
little bit closer it's layering things
and then the next one's a little bit
lighter so it can be a
little bit more realistic if you look at
things like material design they often
have two three shadows deep just to help
increase the realism of their shadows so
there we go I think that's looking
really really cool
it never gets too big too wide but
that's alright and then you know as we
go so it's a nice little focus point it
shrinks down and then it shrinks once
again and this bar going all the way
across like that to me works well at the
small screen sizes but if that's bugging
you and you really don't want it to do
that we could come in at our small
screen sizes if this was just a
display:inline-block because then what
that's going to do is it's going to set
the width to be the size of itself so
then here we can see it's fitting
exactly itself and then at the big
screen sizes it will jump back to what
we had so you know what I think for the
small screen size is I'm gonna leave it
like that but if you'd rather adjust
that to something a little bit different
by all means you know if you rather that
bigger bar that matches the image size
that is perfectly fine too that is if
for this one in the next video we will
jump down into this next what I do
section and style that went up it should
not be too much work and then we can
keep on going we'll style our button at
the same time since we haven't done that
yet
Styling the services section
55:59
alright here we go with the services or
what I do section which isn't too
complicated to do if we go and look at
it right now and it's not gonna be all
in place yet but we can see that our
text is sort of coming there and we get
to the bigger screen sizes we just need
to break across on all three so let's
start by setting the colors up first so
my services I'm going to give this a
background color of we'll do our VAR
color dark and a color of our color
light to start things off I know we have
a background image on this as well I
always set a background color and then a
background image afterward because if
the background image ever fails first
one reason or another it's always good
to be able to get them so we want to go
back a step go to our images and then it
was called services eg JPEG and we can
see there we go it is coming in with
that going to do a background size of
cover to make sure that it never repeats
itself and I think that should be pretty
good actually we can see that it is
coming in nicely just like that it is a
little bit bright and so if you ever you
know you want to we could always do a
background Len mode on here too of a
multiply just to help darken the whole
thing up we're sort of losing the image
maybe more than we want so we could play
with the background color or the image
I'm actually going to leave it like this
because to me it's more important that
the text is super readable even if it
means the background is a bit darker
than what you intended it to be whereas
here you can see it was like in that
example that I had so it's up to you
whether you want this multiply on or off
you know you can play with the color
this is where you could say instead of
color dark we do color accent and then
you'd actually get like that green color
that's coming through so it really
depends on the layout that you're doing
it could be a fun a fun thing to play
around with but I'm gonna I think leave
it like this for now and again the
reason we put both the color and the
image is just in case the image doesn't
load for some reason at least people
will still be able to read the text I
also always do my background color and
image and size if I need it as longhand
instead of the shorthand property
because the background shorthand drives
me
crazy I like short hands that save me
time and I can put them in any order and
the background one I tend to find breaks
things more than anything else I'm also
going to throw a text-align:center on
this whole thing because everything on
this on small and large screens is
centered so that is great the section
title services was a little bit unique
um so I'm gonna stay here for now
section title serve this is because the
color of it is my VAR color accent we're
going to need a bit more by a margin on
it I think but before we do the margin
I'm just gonna give it a position of
relative because I have the pseudo
element that I want to put on it so it's
my let's just copy this because it's a
little bit faster and my after so that's
I'm going to use my suit element just to
create this light line that's coming in
right there so it's nice and easy to do
we just have to do a Content so if you
don't know too much about custom about
custom properties I was going to say
about pseudo elements is you need to
give them a content or they will not
appear and either display block or
position I'm gonna say display block
this time width of about 25 percent a
height of 1 pixel margin of 0.5 M so
it's gonna give us some space on the top
auto left and right and 1 M on the
bottom and this is why I didn't put any
margins on my title itself because I
think most of the spacing that I need I
can have my pseudo element creating for
me and of course we need a background on
here we could do two different things
we'll do in my var color light though
the other option you could have if you
always want it to match the title of the
services is we could put that to current
color so if it's current color it's
going to match this color that we have
on the text there I don't know if I like
that 25% we might set a set width on
that instead of like 3 M just to have a
nice little set width so now it's green
and green I prefer that actually if it's
white so I'm going to switch that back
but if you do current color whatever
color you
decide to put for this this will
automatically match no matter what bar
color like I think is going to look a
little bit nicer we're going to lower
the opacity on it to opacity of 0.5 just
so it doesn't stand out as much it
should be a little design element maybe
even 0.25 will be enough it should be
more of a design element than something
that's really in our face that we can
really see so there we go I think that
is good maybe it could be a little
smaller but I think it looks nice how it
is I'm gonna leave it just like that
let's move it to two as I said that now
into the smaller screens it was a little
bit too big so there we go so at the
small screens it is done we still have
to style our button but the layout for
this part is completely done and if we
go up to the bigger screens well that's
where we need it to break into multiple
columns so what I'm going to do is we're
going to start with a media query we
might have to come back up min-width I'm
gonna do my 800 pixels again and let's
do my services gets a display oops this
play flex on it so that should make
three columns right away mostly neva de
max with max width of say a thousand
pixels and a margin of 0 auto these
thousand pixel max width that I'm
putting on that is a bit of a guess at
this stage but I think it's going to
work nicely where I can't reven get to
their brace on my screen size right now
but it's just going to stop things from
oh it is we're getting there right
around there which is pretty much
perfect the only thing is we do need a
little bit of space between our serve
individual services so this is where we
could say that if I have a service plus
a service we can have a margin left I'm
trying to think service plus the service
margin yet left was right of say to em
I'm also going to I'm wondering if they
should have a width on them or not let's
just set that like that and let's just
go take a look there we go we have a bit
of space between them now they're no
longer touching if you don't know about
this the plus Combinator that I did it's
saying it the sibling so it's going to
look at this one and it's gonna look at
this one so it's ignoring this but it
goes
the sibling so it was their sibling yes
it's adding emergent on the left and
then this one is the sibling so it's
adding the margin to the left of that
and then there's no more so it's not
adding it to any other ones and this one
is not getting a margin left so it
doesn't create this giant space on the
left side of that that we don't want to
have so that is perfection and then it
sort of like adding a gap and when I do
you know with the grid we have gap
flexbox gap is coming it's in Firefox
but it's not any other ones yet
so we're sort of stuck doing it like
that so that's working well I think on
small screens this is working but then
we get to these bigger screens like here
the length of the text is a little bit
too long so what I am going to do is
here before we get to our media query
I'm gonna say the individual service
also as a max width of we'll try 500 and
with that we'll need a margin of zero
Auto to keep it centered as well and if
we go take a look now I think that's a
little bit better it's just stopping it
from getting too big and it shouldn't
affect it at this size because they're
never actually getting bigger than 500
pixels so there we go
I think that's working nicely and then
click it's working nicely there so I'm
just gonna worry about my button now and
this is you do have the choice a little
bit here I'm not I'm gonna leave this
here because again it's mostly dealing
with layout but I guess this one you
could argue should be up with my
typography I'm a little weird how I
guess I work in that I'm wondering if I
should group it all together but I am
going to go all the way up to here for
my dot BTN
so usually for my buttons I usually have
designs that have more than one button
so I'm sorry buttons but in this case I
only had the one button to style up so
all my Styles are going on here
inline-block
padding can be 0.5 m 1.5 m it just sort
of gives it its size the background will
be my VAR color accent the color itself
so the text color can be colored a dark
text decoration since it can be set on a
link will be none I'm also going to do
curse or point
this is in case you ever do put it on a
button instead of putting it on a link
that's important to have fun sighs I'm
gonna shrink it down a little bit
because I think it was a bit too big I
don't have a custom property for that
we're just gonna shrink it here you into
a text transform uppercase so it's
always capitalized and if you ever do
all cap text it can help letter spacing
to do letter spacing on something to
help spread them out a little bit we're
speaking of typography font weight I
think I use my bar font-weight:bold on
this and then we can also look at my
transition I'm gonna do a transition on
my transforms 200 milliseconds ease in
out and the reason whoops in these in
doubt the reason that I'm putting that
on there is because on my etn hover I
want to put a transform of scale 1.1 so
when we do hover on my button it will
get bigger and smaller the only thing is
my transition transform not transfrom
and there we go now there we go now we
can have a nice little transition when
we hover on top of it ha but there is
another thing I want to do and I'm
actually gonna do this on all my links
and on everything really
so drew drew drew where should we put it
we'll do it right here before my buttons
I'm gonna say everything when it has a
focus state is going to get an outline
on it outline will become let's say 3
pixels solid bar color accent so this is
going to apply to my button but it's
also going to apply to other things now
the only problem with it is it doesn't
really jump out at you and you tab on to
that right so you can see if I'm here in
a tab it gets a little bit bigger so to
really make sure people can notice it
I'm also going to do an outline offset
of say 3 pixels so if I'm here in a tab
it highlights that I am tabbed on it so
it's not a hover State it's really just
for my focus State
which is a little bit different grabs
the attention a little bit more than my
hover might do so that is what I'm gonna
do for all my focus this will be on my
links it'll be on other things we're
gonna leave it just like that because
I'll talk more about it once we start
getting to our links and a few other
things I'm gonna come down one last
detail though what I don't like now is
how close everything is like how close
my button is to everything else there I
could add a margin top to my button but
I do want to think that maybe this would
be something that would be working in
like the real world or on other things
and actually here I think I wrote see my
work we're gonna change my button a
little bit I did 1.5 let's make this
like 2.5 because my button was quite a
bit wider so I think that'll work better
for my padding and I'm gonna come to my
section how's it looking at the small
screens probably the same problem it's a
little bit where it's a little bit it's
way too tight so on my dot services
plural margin bottom of 2m actually I'm
gonna bring that up it like 4m because I
had quite a bit of space it balances out
between this space in this space I think
that looks a lot better and so it's
looking a lot better the only problem is
my margins disappearing here because
over here I did a margin:0 auto so I'm
gonna have to change that to be a margin
left of auto and a margin-right:auto
just so it doesn't overwrite that margin
bottom along the way and so it's always
sitting at that same spacing SuperDuper
that section is all done I'm super happy
with it and so now we can move on to
this next section
The About Me Section
01:08:52
okay so we're gonna be doing the who I
am or the ability section in this video
and we're going to be using grid once
again for it a little bit like we did up
above its me a super similar grid but
we're flipping it around a little bit
because if you remember when we did that
the image is on the left side and then
smaller and then this area will be quite
a bit wider than the other one and
obviously the image is on the other side
but that doesn't change things up too
much um so let's start off just with me
about me I think what we're going to do
for now is just give it a max width of a
thousand pixels like we did on this
section above will give it a margin of
zero Auto to keep it that centered and
let's go take a look to see if that's
had any impact on things so the small
screen sizes we should be okay and then
when we get to the larger one at one
point it does max out on the size so the
line length is quite long now but since
we're gonna be making that into two
columns I think it will look perfection
and so let's take a look it's right
around here now it depends on the size
of the image we use obviously on how
that's going to work out but we want to
build it our media query I think will do
the same that we did previously so add
media or I just realized I did am 800
pixels for the services I'm gonna go
with a 600 again for here so 600 pixels
I'd said in the another video that I
usually do like a 6 9 in this case the
800 just seemed to work better as a
break point for when this would
switchover than 900 if you prefer things
all switching at similar levels you
could definitely bring that up to a 9 I
just find it we're sort of wasting
screen space you know we can go to 3
columns around the 800 pixel point some
people like having really set media
queries I don't use a lot of media
queries I sort of do one per section
maybe two per section so you can also
deal with really big screens sometimes
you need to make some changes but I like
having media queries that deal with my
layout more than I have media queries
that just fill in with the set sizes I
think it makes a lot more sense and I
think this one's you know once we get to
about the 600 pixels we can break that
off into the two columns and it will
work really really well alright so in
this media query I'm going to set my
about me
and we're going to set up a display grid
on here and my grid template columns and
my grid template columns are in d1 fr4
the main area and then for my image
itself I think for the moment they're
going to lock it in at like 200 pixels
maybe we'll play around with that number
a little bit but 200 I think will match
pretty well with the design that we have
it's going to let the image be bigger
than that at different screen sizes it
could be a number that you change for
your own layout depending on the image
that you want to use and I am using
pixels here and I am actually using
pixels in my media queries as well as
you might have noticed you might be
wondering about that some people try to
avoid pixels I do avoid them in my font
sizes as you've seen I use my REMS I use
REMS for font sizes because it is if a
user has set a custom font size for
their browser because they want things
to be bigger it does allow that to work
things you may denote nicely but there's
nothing wrong with using say a pixel
value on a max width it's not going to
cause any issues we're gonna need a gap
on that but let's set things up a little
bit now in the last one I did use my
grid template areas but let's go just
take a look quickly here and how we set
it up so we have about me I didn't once
again I didn't give my image at class
which was what I was thinking I'm gonna
do it about me image because we do want
to start by placing that one where we
want about me image and that one I'm
going to give a grid row last time I did
it with grid template areas this time
I'm going to say I'm gonna say 1 over
negative 1 which means it's starting at
the top and ending at the last row
automatically and my grid column will
start at grid at column line 2
so that should fix that up we also want
my we want the section title about is
going to be a grid column of 1 and
actually we can do that for my that was
my subtitle we're gonna do the same
thing for our section title so we have
both of those looks at save I just have
a little typo down here let's change
that to be a semicolon and going
get out title is okay see this is where
great area sometimes make things easier
and why I like to use them in general
once again even though we're not going
to be able to use a grid area for this
one since its overlapping it could
overall be a little bit easier than
using line numbers um it also makes it
easier as a template for people to
change things around so why don't we set
that up with some grid Tim grid template
areas so we can have our title and the
image next to it and I like putting
these all in the next line in indenting
it just because it makes it easier to
overlap each one the next would be my
subtitle and my image and the last one
would be my text and my image I'm gonna
go back on this actually and we can say
that this is my grid area title the
image will be grid area image and it
really does make it a lot easier to
manipulate this if you wanted to change
your grid just by changing how the grid
template areas are set up I'm gonna
already see that it's much following
pretty much in line with what we want it
to be doing which is awesome and at the
small screen sizes it's working out
nicely and only we get to the larger
screen it breaks into the two columns a
little bit more work to be done still on
this but I'm gonna also add in here a
grid yap a grade column gap i don't want
to create any gaps on my rows so my grid
column gap will go with like a 2m maybe
this time the 1m could work nicely but i
like keeping a bit of space on there so
that looks good on my image i'm also
gonna add we can come actually up to
here about me image you know at our box
shadow box shadow bar
this is where it becomes nice the first
time you set up a custom property it can
seem like a waste of time but as soon as
you reuse it it is super handy so there
we go my section subtitle about we're
going to want to give that a grid a
column of 1 over negative 1 so it goes
from one side all the way over to the
other side and grid row of two to keep
it in the right place
so there we go now it is going
underneath my image right there so this
one's going to take a little bit more
playing around with and how we're gonna
set it up to make sure that text doesn't
go underneath the image like it is doing
now it's not terribly complicated and if
you do have an issue up top with how
that's working you could always use the
same method up there to fix it so what
we're going to do first
let's give it a position of relative and
we can do this very similar to what we
did last time I'm gonna give it a left
of negative to em and I'm gonna give it
a width of calc 100% in this case I'm
actually into a plus for em and that's
the reason I'm doing it like this is
because I do want it to stick out both
sides a little bit maybe that's gonna be
a bit too much it works here but it's
going to cause some issues there but we
do want it to stay out both sides so by
doing it this way it's going to stick
out both sides which is cool but we will
have to build in the padding to fix that
so padding can be I'm just trying to
think to em for both sides so padding
left of to em but then the padding right
actually padding left will be to em the
padding right I'm gonna do calc of 200
pixels plus 2m and what that's going to
do is make it so my text we have oh this
is all padding on this side now so the
text will never touch the image you can
see it's getting really close but it's
not clicking now we have the 2m there
I'm actually going to boost this up to
4m and what that's doing so now when we
look at it and what it's doing is its
setting it up so the text can never go
into the image so on this side we have
our 2m then we have the 200 pixels and
then I had a grid gap of 2 m so I'm
pretty much in the 4 is the conclusion
of both of those so the text will never
once we set it up will never go
underneath that image so that can come
in handy if you go to a smaller screen
size and we get this where it's breaking
over onto lines or if you have a long
title you had a short title it's not
going to change anything in the long run
my only issue is that this isn't really
working right now with how we've set
things up so what I'm actually going to
do for now is my padding-left
now my left will be negative one this is
going to be plus two and this is going
to go back down to one I think we can
leave that one if we really wanted to we
could change that number to a three but
I think I'll leave it as a fork because
I don't think it's gonna get in the way
and that's just going to make sure it is
sticking out but the reason I put the
padding on that side is so all the text
is actually lining up if you don't like
that and you don't like the fact that
it's sticking off obviously you can play
around with that number a little bit but
at least now it's working better at the
other sizes with the 1m instead of the
2m because we have 2m of padding it
gives it room that it can still live
inside without causing any overflow and
then obviously at the small screens we
don't have anything to worry about so
that is looking pretty good but what I
want to do is one last thing we do want
to reposition it on top of my image I'm
just gonna come here onto my image and
give this a position:relative which
should fix the issue but once again I'll
give it as that index of two just to
make sure that it's always on top and
there we go
so it should be working out great um the
thing that's nice about this is because
of the way the image is going to be
calculated like if we had longer text
here it's just gonna keep flowing down
it's not gonna actually break anything
it's not gonna cause any issues but if
you had really short text it's also
gonna work and shouldn't have any issues
and that's one of the reasons why I
included this inside one div if you
remember when we set it up we did that
as an about me body and it's important
that it's in this body because it's only
gonna create one row where so if any
additional content needs to go inside
this body if you include extra
paragraphs through outside of that it's
gonna keep creating new rows in the grid
and it could actually impact the way
that the image is working I don't know
if it would actually break anything but
pretty much all the content itself will
have to go inside of that body area just
to ensure that it's one row so nothing
breaks along the way and that is that
area all wrapped up so in the next video
we will move on to the next one
The Portfolio
01:19:54
so we're going to be doing the portfolio
section we're gonna be using grid for
this one as well and one nice thing with
it is in this example image I only have
six pieces in the code I have I have ten
and it's one that should be flexible and
be able to grow or shrink depending on
the screen size and we shouldn't need
any media queries for this one this is
one of my favorite functions of grid so
if we just look really fast our markup
before we start doing anything and we
look at how we did this I have the we
have the basic my work area and then we
have the portfolio itself and in each
portfolio we have a portfolio item and a
portfolio image so if I come back to
here and let's create a new section so
that was my work we do want to give this
the background color of bar color dark I
will just say color is bar color light
even though the title will have to
change colors I did forget to put this
so a selection of my range of work sorry
about that
so there we go it is there we can also
just throw it to make our life as easy
as possible we can throw a
text-align:center on here as well
because that's the only text that we
will have now obviously the colors
aren't quite matching and this one
should be bold on the bottom so I think
what I didn't do was give these their
own classes and just by doing that I can
say that my I don't really need the the
first one but my section subtitle work
color can be my VAR color accent and my
font weight can be var font-weight:bold
now these are really just typography
there's nothing but layout really on
these I will add a margin bottom to it
margin bottom of 1m just to help with
the spacing a little bit maybe we can
bring that up to two actually this one
if you wanted to argue because it's all
typography and it has nothing to do with
layout purposes it could come up and
live with all of this stuff here and so
just like I did with these ones I think
I'll leave that one right there
for my portfolio no portfolio we're
going to do a display of grid on here
we're going to do a grid template
columns and this is where the fun starts
on my grid template columns what we're
going to do is a repeat so if you don't
know repeats say we do 3 comma 1 fr it's
automatically gonna make three columns
so if we go and look we have three
columns there and it's working out
really nicely and if I bring that up to
a four it's automatically gonna make
four columns and right away that makes
for something that's really easily
interchangeable which is really really
cool but what's even better here is auto
fit in a case like this but the thing
with Auto fit is you can't just use
something like one fr you have to use a
min/max
which sets a minimum and maximum value
the minimum is really up to you I'm
gonna say it's about 300 pixels and a
maximum of one fr so it'll grow to the
size that it needs to so it means each
grid has a minimum size of 300 pixels
but if we if it has room to get bigger
it will so let's go take a look and see
what this does so it means at larger
screens it works but when we get to
smaller sizes
oh it's automatically gone down to two
and then at even smaller sizes it will
automatically drop down to one and if
you had very big screen sizes it would
just keep growing and growing and
growing so there is a chance you might
also want to set a max width on this but
it really depends on you I'm going to
leave this off but if you wanted to have
a maximum width just to prevent it from
being this one long string that goes all
the way across it is a choice if you set
um X width also just keep it a margin of
zero Auto to keep it centered on the
screen but I think it's going to work
perfectly like this it does mean because
I have ten items that the one downside
is sometimes you will end up with like
one item that's left over at the end
whereas you know now it's working really
well with nine items but if I made it
nine and then it goes down to the two
column layout well then you're you know
you'd have one empty one here so it
really depends on the setup and how you
want to do all of that but overall very
simple nice and easy to do and it's very
very flexible depending you know you
could have a hundred pieces in there you
could have five pieces in there
always going to work so that should work
out nicely alright so now what we want
to do is add a little bit of a hover
effect so the first thing I'm actually
gonna do is take my portfolio item and
I'm a portfolio item we're gonna give it
a background of our accent you might be
going what's the point of that we're not
going to see it you're right you will
not see them my portfolio items
obviously have an image on top so we
will not see that color but we're gonna
play around with that a little bit now
so what we're gonna say is that my
portfolio image we're gonna set a
transition on this so transition we're
gonna transition to things a transform
we're gonna do this one kind of slowly
so we'll do 750 milliseconds which is
pretty slow for me and we'll do a cubic
Bezier because we're gonna be fancy here
and a really nice one to start with is
0.5 but not 0.5 0.5 comma 0 comma point
5 comma 1 it's a really nice curve very
similar to an ease in out but a little
bit more subtle so that will be for my
transforms and then I'm going to do a
actually we can put each one of these on
the line is we're gonna have two
different ones so after this one we're
going to put a comma and we're also
going to transform the opacity of it
this one will be a little bit faster so
the opacity will transform over 250
milliseconds and this one will just be a
linear transition and so with that done
I'm just going to copy my portfolio
image and we can come down into here and
my portfolio image however we want to
give this a transform on the scale I
will go up to like at 1.2 we're gonna
come back and forth a little bit
once you set this up we'll change the
opacity to like a point 75 and I'm also
and so let's go and take a look at what
that's going to do so now we can see
that when I hover on top the green color
is going to show through and it's gonna
grow and shrink but obviously that looks
kind of weird right that it's expanding
like that we don't really want it to do
that because that looks super awkward so
on my portfolio item I'm also going to
do an overflow of hidden
so now if we go take a look when it
grows it's just growing within that box
and it won't overflow out so I think
that makes a lot more sense and works
much much better and we get that little
color coming through on each one you
could play with the opacity a little bit
if you wanted it to more of the green to
come through we could definitely have
more of the green comes through and
because these are links we will be able
to tab onto them but you can see it is
doing that outline that I wanted it to
have so if we want the tabbing to have a
similar type of effect we can't actually
focus on the image itself we can only
focus on the link and then have the
image inside of it and be modified so
what we can do is we can keep the same
effect on here but for this one it's
going to be for my portfolio item so if
my portfolio item comes into focus we
want the embedded or the embedded the
child the portfolio portfolio image so
the child there to change so now if we
come and take a look when I tab on you
can see that the tab is also affecting
it now the problem is where the outline
is does look kind of awkward now if we
want to fix that issue with the focus we
will actually have to change one other
thing here and that would be my
portfolio item focus just on the when
that focuses the position will become
relative and the Zed index for that will
become a two we can't do that on the
image itself because it's the image is
inside of the portfolio item so by doing
this it should there we go
pops out in front and the focus the like
green bar if you don't want the green
bar you could obviously turn it off as
well but I'm going to be keeping that
it's gonna be a very consistent through
my whole site in having that so I don't
mind that it's there but if you don't
really like it for this one because it's
obviously jumping so much when we hover
on top I think it would be okay to get
rid of it but for all the other ones I
would keep some sort of focus State so
that's it for the portfolio area here we
will design a page for our portfolio
items as well but we're not there yet
let's finish this page off first
Adding the Social Icons with Font Awesome
01:28:43
part of the site we're going to be doing
the footer which is really
straightforward but we're going to be
using font awesome for it if you've used
font awesome before you can skip this
video in the next one we're going to be
really setting it up and styling things
but if you've never used font awesome
before it's really easy to use you can
go to their website which is font
awesome com there's a link to it in the
description of this scrim but as well
and what you want to do is you want to
click on the icons this is because I've
already set it up to be using their
icons if you're using it on your own
site and you haven't got that link yet
you can click on the start for free
instead give them your email address
they're gonna send you the link to be
using but then in this case we're just
gonna be clicking on icons and it's
gonna bring in to their list of icons
now for font awesome there is a free set
of icons available and a paid set the
free ones are still thousands to choose
from but if you are willing to pay for
more you get access to up to 7,000 of
them which is a lot of icons that you
can use in this case we're only gonna be
using the brands icons so there you can
see on the left side you can sort by the
different styles of them and the solid
are the only ones that are available for
free in general but if you do want to
get the brands you'll click on that it's
only gonna bring up the brands or
offered what's actually easier to do is
just a search for the brand you want so
if you wanted Twitter or github or
whatever else
dribble Facebook anything you want just
run a search for it and you should be
able to find it once you found the icon
you want you can click on it so you're
just literally click on the icon it will
bring you to a page that looks like this
and all you need to do is click on that
where it shows you how you're gonna grab
it and the cool thing with that is it
should automatically copy it from your
you know copy it from there and then you
can paste it too directly into your site
so I'm gonna do that really fast just to
show you how it works and now obviously
you can't see me over on their site but
what I'm gonna do is will come down all
the way to the footer here I have my
list items let's clean this up a little
bit to make it a little bit easier to
read there we go so that's a little bit
easier to read we can get rid of our a
or B or C and our D and here inside my
link so I'm in between the opening and
closing a I'm going to paste this in and
just to make it easier to read we'll put
that on its own line as well just like
that so
there we have my fab so its font awesome
brand fa b and then font awesome and
it's the code pen so if we go and take a
look all the way down at the bottom it
has changed it over to the code pen icon
so I'm quickly going to bring in the
other ones and now you can see that they
are all there and that they're all
working so that is really cool it's a
really nice easy way to bring social
icons into your site if ever you need
them and you're gonna see in the next
video when we style this up it works
just like a font so all we need to do is
set a font size a font family all of
that stuff and our icons should be
coming in nope and everything will be
looking really really awesome so we'll
see in that video where we style this up
01:31:43
thing up our foot or now so let's create
a little comment to say we're in our
footer one thing I'm going to do right
away is actually come and give this a
class I know you might say it's
redundant of footer just like I did on
my nav so just because I generally like
styling everything as much as possible
with a class on it so I'll put a
background on this now I'm gonna do a
1:1 one here I'm not going to use a
custom variable it's just almost black
and not pure black but almost black so
the footer will always be dark if you
want to change it obviously we can
change that individually but for the
color here I will use my accent color
for the text my text aligned will be
centered and we'll put a little bit of
padding on this not as big as on our
other sections but something like that
should work out nicely the other thing I
want to do on my footer is I obviously
want the color of my links to come
through so I could choose my footer link
and my social list links individually
this is one of those times where I might
just do something like this and say the
color is inherit for everything any link
that might end up in my footer so I
don't have to worry about it at all if
we go take a look we can see now that
everything is styled up it has the
colors we want on it the layout
obviously needs some fixing up but we're
getting there just realised image in dev
that's okay
so footer a that is good the next thing
to do is say my footer link link and
hover and my social social I'm gonna
give them both an opacity of like 0.7 so
if we go and take a look at it now we
can see that when we're hovering on top
it just gives us a nice little subtle
hover hover effect and the reason we
want to do that if we tab on it you can
see it's actually really highlighting it
and you might be saying well that
doesn't look as nice alright I want to
keep that nice little subtle effect for
tab navigation the reason I like having
a focus state that's different and this
is something more recently changed but
it's when we tab through we can see that
it is working it's really highlighting
but we don't you know it we don't know
where it's gonna bring us next and if
it's a really subtle effect where it's
just this that's happening you might not
even realize when the page jumped down
to select something
when we tab onto it we don't always
realize what's being selected if it's a
little subtle effect like an opacity
change whereas if there's a big box
that's surrounding something I do think
it makes it a little bit more obvious
what's happening so that's one of the
reasons I'm going to keep that focus
state just like that I think we're
actually going to do two different
things here on my footer links we're
gonna do our color of inherit we're also
going to say a text-decoration:none just
to turn them off as a default but then
what we can also have is on my footer
link hover not list footer link pepper
if we want to we can do a text
Declaration of underline just to bring
it back on so when we're off here we
don't see it but you know it's a double
little whammy just to make it a little
bit more obvious that it is something
that we are interacting with it I'm
gonna come up to here just because I
like keeping my hover States sort of
separate or underneath so my footer link
we're also gonna want to change the font
size on this one so the font size of
this can become my variable font size h3
so it'll be big but not too big and we
font-weight will also become my variable
font-weight:bold so now we can see that
it is I think looking a little bit
better we can see that it's nice bold
it's a little bit bigger so that is
looking awesome let's come on to my
social list now and for this one we want
a list style of none because we don't
want the bullets we want a display of
flex which is gonna put them next to
each other and age defy content of
center to put them right in the middle
and I'm also going to add a margin on
this just to space it out a little bit
and padding of zero because the default
padding when we get off center so let's
go take a look and there we go it is
looking out right but obviously they're
all jammed in and a little bit too close
to one another so we can come up and say
that my social list items I'm gonna give
them a bit of margin margin of zero top
and bottom but we can add like a point
5m left and right and on my social list
link's I'm also going to give them a bit
of padding of say 0.5 M just so it makes
it easier to press on them if you're
using your finger or something like that
there is a bit of space around them that
we can click on so that makes that a
little bit easier and I think we can
probably make them a little bit bigger
as well they're kind of tiny right now
so you know what maybe we could do is
actually move this we can move that all
the way up here just to my footer itself
and say everything inside the footer
should have that bigger font size on it
so there we go it will boost the the
font size of those icons with it and one
of the nice things with font awesome and
I think that is looking at really really
good and dandy I'm super happy with that
except I just realized one thing I have
a margin top and bottom coming on those
which means it's sort of setting things
off so my social List margin top zero
zero we want a margin bottom of zero on
the social list just so it doesn't add
empty space underneath for nothing so
now it should look a little bit more
balanced overall and there we have it so
we've got all the way to the bottom the
site now in the next video we're gonna
come all the way back up to the top
where we're going to be doing our
navigation and getting Bette to work and
getting at this page all wrapped up we
will be breaking the navigation over a
couple of videos because we will have to
do a little bit of JavaScript for that
as well
Setting up the Navigation Styles
01:37:28
so if you remember way back when I
turned nav display:none on just to get
it out of our way and obviously we don't
want that so I'm gonna delete that so we
can actually get started on this
navigation and getting it working now
one of the reasons I left the navigation
to the end is the navigation is a simple
enough element is offi
is often one of the ones that actually
takes the most styling to set up and can
sometimes be a little bit long to do
really um so the very first thing I'm
going to do is just say my logo has a
max width I'm gonna say 150 pixels but
obviously you can modify that to your
own I might even say 100 pixels and you
can modify that to control the size of
your logo also it doesn't have to be a
PNG you can bring in an SVG and that
should work fantastically as well and
might even be a little bit better so
that is setting in that up nicely so on
my header itself we're going to set this
up as a display of Flex because we want
that to be on the left and we want my
button to shoot shoot on over to the
right so on that display flex we're also
going to do a justified content space
between which we'll spread them out
properly and we're going to do a bit of
padding on this of say 1m on all the
sides just so nothing is touching now
that does mean a big screen sizes the
logo will be stuck to the left and
eventually our hamburger a little button
this guy here is going to go over to
there now for the navigation itself
we're going to be jumping around a
little bit on this one just you know so
my nav I'm gonna give this a position of
fixed which is going to pull it out of
the flow and is going to make things a
little bit better but now you can see
the button that we're going to be using
has jumped to where we want that button
to be and this is sort of in a fixed
spot so now as I scroll it's coming with
us it's not going to stay like that it's
not going to be a fixed navigation in
that sense but you're gonna see shortly
how this is actually going to work so
the buttons in the right place we're
gonna devote an own video to the button
itself and because we want to get a
hamburger in there we're gonna have a
little animation on it
I just want to get the navigation itself
set up so on my nav the position fixed
is good but we're also going to give
this a background of our color dark and
the
color itself will give it a var of color
light which won't do much yet but we're
gonna we're going to fix that because
right now everything is a link in there
I'm going to say the top of zero bottom
of zero left of zero and a right of zero
so that means it's going to fill up the
entire screen and we're gonna give it a
Zed index of 100 to pull it in front of
everything else so this is when the
navigation is open it's gonna cover our
whole screen even if you scroll or do
anything you're always going to see your
navigation and then when we close it it
will disappear I'm gonna be doing we're
gonna have two different states so what
I'm gonna do is it transform of
translate X we're just gonna move it off
to the left and my translate X is gonna
be a hundred percent so if that's on you
can see that whoa it's gone where'd it
go
um so actually it for now let's just put
that 250 just not 550 so you can see
what that's doing is it's moving it over
50% of its self so it's always based on
its own width but its width is a hundred
percent so it's a hundred percent of the
viewport so if I do a hundred percent it
moves the entire thing off of the screen
so I'm doing a hundred percent to move
it off completely now for now I'm gonna
leave that at zero but eventually just
we can actually style it up and we can
see what we're doing but eventually that
will be changed and we're gonna add a
transition on here of the transform 250
fifty milliseconds and to be consistent
we'll use our cubic Bezier and on this
once again we'll do 8 point 5 comma 0
comma 0.5 comma 1 because again it's a
nice it's very similar to easing out if
you'd rather use the easing out you
definitely could we have our nav list so
then I have list we're gonna want this
to have a let me think a display of flex
and not 4 or actually before we do that
let's say list style is none I'm gonna
do a display of flex but it's gonna
they're still going to stay on top of
each other it's just because we have a
few extra things we can add to this so
we'll give it a height of a hundred
percent so it actually has the height
that we want it to and this is where
right now because of the display flex
they're going next to each other we
can't really see them very well so it's
just
really fast and just we can see what's
going on nav link so we can see our
items are going next to each other
because it's display flex but now what
I'm going to do is my Flex Direction
will become column which sort of puts it
back to how it was you might be going
what's the point of that
but the nice cool thing with this is
then we can use our justify content
space evenly and it's gonna space them
evenly in that vertical space like that
and then all we need to do is set in a
line items center go to spell it right
and then everything ends up bang in the
middle just like that now there is some
extra spacing on that so I'm also going
to say that margin of 0 padding:0 which
should fix any weird issues with the
alignment that we were just having on
the nav links since we're here we're
gonna give them the font weight of our
font-weight:bold we'll also give them
the font size let's make them bigger var
font size h2 if you had a whole bunch of
links on here you may not you may whoops
I had a double var on there sorry about
that
and you might want to avoid the h2 it is
quite big maybe it is too big actually
but I think it works it's very
in-your-face though but if you want to
step that down to an h3 and you could do
that or if you wanted to set your custom
size on it as well
we could do that but I'm gonna leave it
with that big bold in-your-face style of
the h2 and you can decide if you'd
rather something else and we're also
gonna say the text decoration is going
to be set to none for those ones we can
add in our nav link hover for the hover
I think all will do is color of our
color accent and just leave it like that
so if we hover on top we can see it's
working or if we tab through you can see
that that outline is coming through on
the focus state that we set for
everything so fantastic I think that's
looking really nice and good for that
but this is the stage where I am going
to do all I'm gonna do for now actually
is come back
set this back to 100% to hide it away so
it's hidden off the screen and in the
next video what we'll do is we'll style
up our button and then we'll actually
get our button working so when we click
it the menu will slide in and out
Creating the Hamburger
01:44:25
right so for the hamburger I'm gonna
bring all of that down right after the
nav right here and we can start working
on the hamburger itself now there are
other ways of doing a hamburger I'm
gonna do it the more complicated way the
only reason I'm doing this is because it
opens up some extra possibilities in
terms of what we can do with it to add
little animations and have fun with it
because all the different pieces will be
animatable and individual instead of it
just being a single icon but it's up to
you if you'd rather just bring in a
single icon put it there and leave it
like that that's completely fine but you
know I think this would be a lot more
fun so if remember we had a class of
hamburger so what I'm going to start
with is doing our background I'm gonna
give it the background of our color dark
again if maybe you change your color
scheme and you want it to go along with
your color scheme it will be useful I'm
gonna give it a width of 2 m and I may
have a height of just 3 pixels will give
it a border radius to border-radius
I'll do 1 M which is just like a massive
number but because it's going to work
and I'm gonna give it a display of bul
Ock not black block because by default
it was a span which is in line and I
just want to make sure that we don't run
into any issues with it and I'm gonna
give it a position of relative because
we're gonna be using pseudo elements
with absolute positioning and this will
make our life much easier so if we come
and take a look we can see inside my
button now I have that black line that
is showing up so that is part one of our
hamburger for the next two parts we will
be using pseudo elements so hamburger
before and dot hamburger after and just
like this pseudo element that we used
last time the first thing we want to do
is give it some content for the content
will be blank again pseudo elements will
not work unless you do give them some
content the position in this case will
be absolute so I don't have to declare a
position a display a block like I did
last time because I have position
absolute it's either giving it a
position or giving it a display property
is required we're going to say a left of
zero and a right of zero and that's
going to mean it matches the width of
our other one again that's because I
have positioned relative here if not it
would have been relative to the whole
screen and we'd have a huge bar going
all
across the background we do need to set
so far color dark we have a lot of
similarities actually here so I'm gonna
break some of this off we're going to
refactor on-the-fly here let's copy all
this and paste it right there and what
I'm going to actually do is add dot
hamburger here because they're all gonna
have this this this and this and even
the display:block so we can we don't
need to display block on the other ones
so I'm gonna grab all of that and put it
here so we don't have to repeat
ourselves twice they're always gonna
have the same color same width same
height that is and the same border
radius so that means I don't need my
background color here and there we go so
that is perfect and we will eventually
be giving these all a transition as well
because we need things to be moving
around a little bit so I'm actually
gonna put that here as well
transition transform we'll start with
250 and just an ease in out they're
gonna be pretty simple animations so I
don't know if we need that fancy cubic
Bezier or not oh I forgot my comma right
here so that's gonna break everything
there we go so it looks the same as it
did before and the reason is these are
pretty much just gonna be hiding it
underneath what we already have so what
I'm gonna do is say my hamburger before
is going to have a top of 6 pixels and
my hamburger after is going to have a
bottom of 6 pixels and the reason I'm
doing 6 is because we have a height of 3
so it's another height of 3 and empty
space of 3 and then we'll have the rest
of the hamburger and just like that you
can see we're starting to get a little
hamburger icon thing coming in there
isn't that cool so it does take a little
bit of setup to do it but again I do
personally think that it is worth doing
the next thing I'm going to do in here
is let's get come all the way up to here
my hamburger so I my nav toggle as well
which is the button itself this I'm
going to add a little bit of padding to
it 0.25 M
and I'm gonna give it a background of
transparent to make it disappear and I'm
going to give it a border of zero so my
border is turned off and there we go
we're left with our little hamburger
icon right there one thing is it does
not have a hover state on it I know you
can't see the little hand icons
yourselves when I do this but when
you're testing it you should be able to
so on the nav toggle I'm also gonna add
a cursor of pointer or else there is no
little hand icon for the people when
they hover on top of it which can be a
little bit strange and I did point to
five em we can probably do 0.5 M on that
padding and not have it affect anything
on terms of its positioning just to give
us a bit more room that we can actually
click on in that overall area so I think
we'll do that for my nav toggle now
another thing I'm going to do for my nav
toggle is I'm gonna give it a
position:absolute which is going to sort
of ruin things but then I'm going to say
that the right is zero and it should
pull it back to exactly where it was
almost it's not including the padding on
there actually so we can say the right
so I'll do a 1 M on there which is the
same as the padding that I put so to
keep the distance where we want it to be
and if you want to be really safe you
could also say a top of one M the reason
I'm doing this is because I'm also gonna
give it as that index that's really
really big so you might remember we had
our navigation coming in front of
everything so when I do that when I had
my nav open remember this is going down
to a zero I want to make sure that my
button actually stays in front of that
you know it's hard to see now you can't
see it that it's there but I cuz the
color is the same as my background color
but I promise you it is and that's
really important so that's the reason
I'm doing that is because we want to
always have that button available to us
so let's bring that back up to or even
you know while we're here just to prove
it to you let's change this to color
accent just for a second and then we can
bring that back up to zero so you can
see that that is there so by being
position:absolute and having a hires
that index we know that it's coming all
the way in front now there's this
problem that we're going to come around
and fix soon but for now
all of this is starting to come together
but let's bring this back up to 100%
pretty much we need to add in the
functionality with the JavaScript now to
actually get that to open and close so
we're going to go ahead and do that in
the next video
Adding the JS
01:51:18
all right so whatever
added in index.js file already here in a
JavaScript folder so what we're going to
need to do is come into our document and
add a script SRC j/s slash index dot if
you have a script close script and now
we can actually start doing something
with it so if we come into here now we
do need to do a few things in here so
the first thing I'm do is create a
constant nav toggle which is going to
look for my document query selector and
we called it nav talked our goal and I
also want to get let's just leave it
like that for now I'm going to say our
nav toggle add event listener click when
we click we want to do a function so I'm
gonna use an arrow function here and we
want the document body class list toggle
and we're in a toggle a class that we
haven't created yet called nav open by
doing that it's going to mean every time
we click on the our button it should add
that class and to test to see if this is
actually working or not what we're going
to do is we're gonna come over to my CSS
file here and let's create nav I'm gonna
come all the way after all this nav
stuff yeah I'm gonna come all the way
after all my navigation stuff here but
we're gonna stick right here MSA nav
open background is red so again this is
on the navigation this is adding this
class to the body itself so if we come
and take a look and if I click on that
the body itself is getting a red
background on it and if I click again it
should toggle that off and all of that
disappears so it is turning on and off
just like that so that is awesome and
fantastic that it is working so I know
my JavaScript is working so I don't so
instead of changing the background to
red though we have some other things
that we want to do so my nav open itself
we're not going to be doing anything
with what we're gonna be doing a lot of
things that are inside of here so the
first one that we're going to do is my
nav itself so if the nav is opened the
nav itself is going
to get the transform translate X of 0 so
what that means is when we click that it
slides out when I click again it slides
back in so we've added that
functionality in and we can see it's
working out fantastically it's going in
and out and then I can click on my links
so that's really cool now there is one
problem if I click on a link it's
actually going to bring me to that part
of the page because you can see it's
scrolled down if I go to my work it's
scrolling down further but I can't close
it because the my icon has disappeared
and ideally when we click on it it would
just disappear anyway it would close
itself when we click on that but we're
going to add that functionality in a
second for now though what I'm gonna do
is with my nav open my nav toggle is
going to switch from a position absolute
to a position of fixed and the reason
I'm having it switch is because I don't
want it to always be position fixed
because I don't want it to scroll with
the sight so now if I click that if I
scroll we still keep this in view but
then if we go back to here it Scrolls
out of view with the rest of my header
so that is perfect and that means if I
click on about me and then I close it
you can see it actually brought me to
the right point in my site which is cool
so we're off to a good start now where
the really fun things also can come in
is we can do our nav open dot hamburger
and I'm gonna do a transform on this of
rotate and we're gonna rotate it point 6
to 5 turns so turn like that you can
also do with this in degrees but I
learned about the turn unit and I like
showing people that it exists so this is
in a Sun one so I can turn it so now
what's gonna happen when let's scroll
back up when I click you can see it's
rotating around now that might seem
really really strange why would I be
doing that well what I also want to do
is my nav open dot hamburger will do my
hamburger after we'll just get a opacity
of 0 so it's just going to disappear but
more importantly will be my nav open
hamburger before because what we're
going to do with this is we're actually
going to rotate it rotate
oops not rotate transform rotate 90
degrees now we do have to do a second
transform on this but you're going to
see that what that's doing is it's
pretty much turning it into an X so you
can see when it click and so that's kind
of fun right but the X isn't really
working right now because of the way
it's positioned so here I'm just gonna
put a space and do a translate X and the
amount is the I'm going to do negative
six pixels because we're you know we
were offset by six so moving it back by
six pixels and it gives us a nice X so
now when we do that way it looks like
that and then when I click it's gonna
fly around and making these X like that
you know what originally I had this as
black but I think I'm actually going to
keep it with this color so it's always
going to be working like that so there
we go my hamburger is working everything
is good the only problem with it is now
if I click on my work it doesn't
actually do what we wanted to it brings
us there but we want this to also close
so we're in the right place right away
so to do that we're going to come back
to our JavaScript so to do that we are
going to need to get each individual
link up here so we're gonna create that
this will be a map we'll call it a nav
links and it will be our document dot
query selector so this creates a node
list create create selector all where
it's going to find all the nav nav link
so it should find all of them so if we
go and take a look now or now what we
can do is we can say are and have links
dot for each so for all of them we have
for each link inside of there we are
going to do a function so just like
before we're going to need to create a
event listener so on each link we're
gonna add an event listener for a click
and if somebody clicks once again we
will do a function we'll use an arrow
function again and so here we can say
that our document.body dot class list
but at this time it's if toggling it
we're just going to remove our tab open
from the class list and the reason I
want to simply remove it instead of
doing anything else with it is
because I think it's really important
just in case we somehow get it clicked
or activated when it's off screen we
don't want it to somehow open I don't
think that's really a possibility but
why take the chance here we're just
always removing the class of nav open
instead of toggling it because the only
way we should be able to click it is if
it's already open in the first place yes
so let's hit save on that and we should
be able to see if we come up we can open
it if I click out here nothing's
happening but if I click on my services
it brings us to my services and it's
closed so again we can bring up go to my
work and we're in the my work section
already and it's closing just like that
so it's added a little bit of
functionality that we can do when we
want to move around in there so just
like that that is all done you know I
think it's looking pretty good now
there's one last thing I want to do
while we're here when we go to the
different sections or let's say I come
and I click on this button it's just
jumping to that section which isn't the
best user experience so I'm gonna come
over to my stylesheet here I'm gonna go
all the way up to the top we can do that
right here under my general styles on my
HTML element I'm gonna add in scroll
behavior smooth and it's a nice easy way
without JavaScript to add smooth
scrolling to a site so let's come back
up and now that I'm here if I click on
my work it Scrolls down there
automatically so that's really really
cool and if I come up and I go under one
of these links and I knew about me you
can see it's scrolling down as that
closes so if you had other links
somewhere else it would automatically
just add some smooth scrolling just with
native CSS which is really really
awesome now I did have some trouble with
this in my own in here with the scrim
editor when I'm recording it doesn't
seem to be an issue and I'm not
recording and I've never seen an issue
with this outside of the scrim redditor
so for now or in future videos you may
see that it's commented out just make
sure you comment it back on in case you
run in if you want to have that enabled
on your own site if you download from
the final version of this in it just in
case you're worrying about browser
support a we're already using grid and
custom properties but if ever you run
into a browser that doesn't support it
for some reason it's just going to jump
down and have the same behavior that it
did before so it's not gonna cause any
issues whatsoever and
yeah I think everything is coming
together this page is all wrapped up now
everything is working fantastically so
all we have left to do is create the
other page so in the next video we're
going to look at doing that it's not
going to be anything that is too
complicated and then we're gonna be able
to wrap this up move on over to digital
ocean and get this baby online
Creating the Portfolio Item Page
02:00:31
okay so for this page what I've already
done is I've copied my index type HTML
and made a new file here portfolio item
ml and I've deleted everything in there
this would act as the template file that
you could use to build out all your
different portfolio items to put a bit
of information on them I've deleted
everything the only thing I've kept is
my header and my footer but what we're
actually going to do is come back into
here and copy this intro section as well
and we're going to leave the intro
section here but I wanted to copy and
paste it just to take a look at how I'm
gonna do this so the here I'd put the
title I'm going to keep this strong
thing going of my project and then this
could just be and the image here I'm
going to change to the image that we
were originally using so we'll just do
port folio 0 1 JPEG it's gonna work out
perfectly there obviously the alt is
going to be a little bit different so
we'll get rid of that so if we come and
take a look at what that looks like we
can see it right here it's just putting
the picture instead of the picture of
yourself that you might have had and
everything else should be working fine
we've already done all the CSS for that
so it should be working no matter what
screen size or anything like that we're
on now where things are a little bit
different is we do need a new section
over here I'm actually going to take
this idea of home off we are gonna have
to update these links as well in a
second over here what we're gonna do is
we're going to add a couple of things so
I'm going to add a div class of we'll
call it portfolio item individual it's a
long name but I want it to be super
clear what is being used for it's not
gonna have too much styling on it in
here we're gonna have a couple of things
so we're just gonna have let's put in a
paragraph we're gonna put in an image
and I've brought in a new image to use
for this one so if we come in look in
our images folder you will find a
portfolio details JPEG that I brought in
just for this page so that is our image
folder and then portfolio details J jpg
I'll put a blank alt because I don't
know what the pictures you will be using
are and we don't need a class on that I
don't think we need to put one we can
always add one on and I'm gonna put a
couple more paragraph
down here below it and I'm just gonna
copy some filler text to use yeah so if
I hit save on that and we come take a
look you can see it is coming together
we have a nice big image going a long
way across which i think is looking cool
now we're gonna modify this a little bit
because the text obviously isn't gonna
work if it's like that and we're getting
but you know overall I think it is
actually working out pretty well
so we're gonna do a couple of
interesting things here on this
portfolio item individual so let's go
into my CSS and I'm gonna include this
all the way down at the bottom I can
come and put a new comment portfolio
item individual and we can style that up
a little bit so what I'm going to do is
like on the other ones we'll give it a
bit of padding so we can do a padding of
we'll leave the top and the bottom with
I'm gonna leave the top with nothing so
we're going to do a zero for the top
with a 2m for the left and right and
maybe we'll do a 2m also on the bottom
just to give it a bit of space away from
the footer and what I'm also gonna do
I'm gonna give this a max width of a
thousand pixels because it is a standard
that we've used in a couple of other
places in the site and with a max width
there we also want to do a margin of
zero Auto and just like that we've sort
of finished what we need to do here I
don't want to do anything too fancy we
can keep the nice title area and then
here we fall into these nice big images
with some description of what your
project actually is you get throw as
many images in there as you want and if
you do find the text is getting too long
you could change the max width on that
or we could come in and say the same
class but our paragraphs inside of there
and give them a max width of like 800
pixels maybe and you can play with that
number what it's going to do is just
give you something like this where the
images will be wider in general I like
doing things like that because it makes
it a little bit easier to read text when
it's not too long and I might even
shrink that down to like 600 and if we
do that we can also give this a margin
in left of auto and a margin right of
auto I'm not doing a margin:0 auto or
something like that because I want to
keep the top and bottom margins the
default margins that were already on my
paragraphs because it means we're
getting the spacing where it would take
those off so it's sort of folk
our text we can have bigger images that
break out of that a little bit and then
we still have our regular paragraphs
that describe the project a little bit
the more text you have the more you can
describe a project don't just talk about
what you know what the project was but
talk about what you did on the project
and why that was a good thing the more
details you can put and the more
information you can give on the insights
of your project instead of on the actual
project itself the better that could be
but this will set the template for you
to have a nice simple page that you can
use for your portfolio items the one
thing we do want to make sure is if we
click here we can actually go back to
pages that we want to go back onto so
what I'm going to do is the home I'm
just gonna set to be index.html and I'm
gonna copy this and paste it there but
leaving the hash tag at the end and the
reason I'm doing that is because now
we're on my individual project if I
click here and I go to home it'll bring
me back to here but what I've done is
I've put the links to all of these just
to go to that page if I click here and I
go to about me it's going to bring me to
the about part of that page so it's
always going to go back to the right
place if somebody looks at portfolio
item and then they decide they want to
go look at something else they can get
to that section really really easily
without any fuss
so right now as I mentioned I've put the
links to all of them going to this one
template page but that would be up to
you now to populate as many portfolio
pages as you need and to set all of that
up for your different portfolio items
and that is it we are done with this
template everything is good and dandy
and working fantastically and that is it
for now that the website is all put
together it's ready to go so in the next
video we're going to be talking about
the next steps and how you can start
getting this online
Customizing Your Page
02:06:44
all right so way to look at how we can
customize the fonts the colors and
different things with this site so we'll
start off with the fonts then we move
into the colors it's all super easy to
customize so let's say you found some
new fonts on google fonts so that's what
I have done and I have a new link I'm
going to update this link with my new
one just remember you have to do it on
all your pages don't just do it on the
one so I update that link there and then
I'm gonna go over to my CSS and over
here in my CSS I can update my font
families so I'm gonna put Roboto as my
secondary here and then I have Laura
that I'm gonna bring in as my primary so
if I just do that my font weights are
gonna switch over to 400 and 700 because
those are the weights that I brought in
and just like that we can see that it is
updated the fonts throughout the whole
site super and nice and easily really
quickly everything will be updated
because they were all set up to be using
those font families and using those
custom properties and just like that we
can also update our colors super super
easily so let's say you don't like that
green that's not your brand color I can
come on to my color accent and update
that one to a red color and just like
that anywhere that was using it in the
site has now switched on over to use
that red color and of course if you
wanted to switch the entire theme I did
use a light and a dark but technically
you could come in here and do something
like this and it would invert your color
scheme throughout the whole site so now
it has become a dark site I can't see my
logo anymore but everything else should
be working there'd be a few little
updates that we'd have to make in a
couple places for the dark theme to work
or this not really even a dark theme
it's an inverted theme from what I had
but overall you can see that it's really
really quick and easy to make these
changes to the site and everything will
be running super well and super easily
so if ever you want to customize stuff
play with the box shadows play with the
font sizing all of it all you have to do
is play with these custom properties and
that you are good to go your design is
your own design after that so have some
fun with it make it your own
and then we're gonna be looking at how
we can get this up on digital ocean
DigitalOcean Droplets: what they are and how to set one up
02:08:46
in this video we're going to be
exploring digital ocean droplets we're
gonna be seeing what a droplet actually
is and how you can get one up and
running so what is a droplet
this is directly from their website they
say that digital ocean droplets are
Linux based virtual machines that run on
top of virtualized Hardware each droplet
you create is a new server you can use
either standalone or as part of a larger
cloud-based infrastructure now that
might sound a little bit confusing but
really they're pretty simple and how
they work they're essentially virtual
servers that can host your website when
web apps they're extremely easy to use
they're fast and easy to set up and
destroy which means that if you set one
up you just want to test something out
you do a little bit of work on it and
you want to get rid of it right away
after you can do it right away it would
take seconds to destroy one if you don't
want to have it anymore
they come with an automatic firewall
security is really easy with digital
ocean and they do really emphasize a lot
when it comes to making sure that things
are as safe as possible
either both extremely customizable and
super flexible so when you're setting it
up you can really customize all the
different settings you need for it but
they're flexible in the sense that you
can make changes to it once it's set up
you don't have to destroy it and create
a new one just because you need to make
a few changes to what you already had
you can just modify your existing one
and one of the best things about them is
you only pay for exactly what you're
using so it can you know if you use if
you spin one up you only run it for like
15 minutes you're not paying a monthly
fee like you might with another web
hosting company where you just locked
yourself in to a year when you you're
only paying for your droplets that
you're currently using if you're not
running any droplets you're not paying
you fire one up you get rid of it you
only paid for that three seconds it was
up there that's all you're actually
paying for now how do we set up a
droplet it is relatively easy to do what
you don't want to do is create your
account first and it used the link that
is in the description to get your free
$50 credit so you can use that towards
testing everything out before you start
jumping in now when you first create
your account it's also going to ask you
to make your first project once you've
made your first project you can just
click here on droplets if you're not
sure about setting up your project don't
worry about it too much it's gonna ask
you some really basic questions and
you'll be all set up and ready to go and
you can always create new projects as
many as you need to inside a digital
ocean so once you're logged in you're
ready to go
you can click on droplets on the side
here and there's a nice big button that
should say create droplet because you
won't have any droplets yet when you get
there you're gonna run into this and
this can seem a little bit intimidating
if you've never had to look at this
before because they are running on Linux
so you have to choose your distribution
of Linux that you want and choose your
plan and your pricing and all of that
and you might be looking at this point I
don't know what distribution of Linux
that I want because I've never really
had to worry about that before that's
completely fine they do make our life a
little bit easier what I'm going to
suggest you do is instead of worrying
about the distributions right now is
click on where it says marketplace the
marketplace is a whole bunch of setups
that are sort of pre created everything
is lined up it has all the different
things you're going to need so you can
choose from here you'll see here are the
recommended for you they do have a
wordpress one there so if you want to
spin up a word price a wordpress really
fast and quickly you just click on that
and there'll be a few more steps at this
stage of the what I'm going to do is
suggest that we go and click on where it
says see all marketplace apps that's
going to show us all the available ones
if you scroll down you can see there's a
hundred and ten results there's a whole
bunch of stuff in there so if you know
exactly what you want you might find
something that is perfect for your needs
maybe you just want a nodejs server
because for this case we're gonna go
with a lamp stack so limp and you might
have heard of lamp which is Linux Apache
MySQL and PHP now we're gonna go with
limp so instead of Apache it's running
nginx because I'm doing it with static
files it is gonna run a little bit
faster so we're really not sure which
one to pick we can go with a follow
along with this one for now but if you
have a certain build that you want go
and look through their marketplace they
might have something exactly that's
gonna meet your needs once you do that
it's gonna bring you to this page where
it's just gonna give you more
information on what this marketplace LEM
stack is so it's showing you all the
different software that it's going to be
installing we're not even worried that
it's bringing us you know we don't even
really need the MySQL or PHP right now
but we're coming with everything it's
pre setup it's ready to go right out of
the box so now we can just click on
create Olymp droplet and when we click
that it's going to bring us back to this
screen where a used to have the Linux
distributions along the top but now it's
brought us back it's replaced that with
saying that we're using our LEM stack
here and then it's gonna ask us to
choose a plan now if you're doing
something that's a really big site or
you need something really
cific you might want to go into one of
these performance plans and if you're
not sure which one you want you can go
with help me choose for now we're gonna
go with the starter standard one here
this is perfect for something like ours
which is a static site right now or even
things like blogs and web apps all of
that this is a great place to start if
ever you need to make a change as I said
it is very flexible once you've chosen
the starter planner that's already going
to be selected by default we want to go
into the pricing and by default the
pricing is set to the $40.00 a month
early on I would suggest scroll all the
way over and go with the $5 per month
one it's probably all you're gonna need
at the beginning unless you know you're
going with something that where you're
gonna need a little bit more than that
so you can see it's giving us one CPU
it's giving us an SSD with 25 gigabytes
of space and it's giving us a thousand
gigabytes of transfer I think starting
off that is perfectly fine you get what
you pay for so if you need something
more powerful or more space you can
always work your way up now if all you
need is more SSD space but you don't
need more transfer or a more powerful
CPU you can go to add block storage and
add volume so you can just add SSD space
so you can just add a hard drive space
that way it's where you're adding on to
there but you're not getting anything
else so it can balance out the pricing a
little bit if that's the only extra
thing that you need and once you've
added your block storage if you need it
we won't in this case you can then
choose a data center region I went with
Toronto because I'm in Montreal so it's
close to me you can just choose any of
the ones around the world that they have
just choose something close to you and
you're good to go and then it's gonna
also ask you to select additional
options if you want private networking
ipv6 user data and monitoring it's up to
you if you want any of them for now
we're gonna skip those and we're going
to come down to the authentification now
here the default is one-time password
we're gonna leave it on one-time
password and SSH key is a lot more
secure so if it's something that's going
to be a client site or even your
personal site in the long run it could
be worth setting up but for the time
being we're gonna go with a one-time
password because it's faster and simpler
to set up and you can always switch to
an SSH key later on it's you're not
stuck with this you're not stuck with
your one-time password if you do want to
change to the SSH key later and the last
thing after that we're getting right
near the end we need to choose how many
droplets we want so by default it's one
we're good with one and we want to
choose a hostname so it's a random
string of characters
change it to what you want it to be and
it's just so you can remember them by
your droplet name can only contain so
you just want to make it something you
can remember it by so just give it a
name that makes sense to you and if you
want to add any tags you can you're
gonna select the project
you only have one project so just attach
it to that project and you can add
backups if you want backups or system
level backups taken once a week and each
one is retained for four weeks and they
always cost twenty percent of the
droplet price so because ours is five
dollars a month it would cost us an
extra $1 per month now if you're gonna
be working on git and say you're on
github or something like that and every
time you push to your master it's
automatically building out your site
that's really awesome that's cool and
that's sort of keeping track of
everything anyway but backups are always
a good thing to have especially if it's
something like a client site or your own
personal site if it's your client site
or your portfolio site and you want to
make sure that nothing ever goes wrong I
strongly encourage you to have a backup
because in this day and age and at that
price I think it is quite affordable
next I'm going to do is click on create
droplet and that's gonna bring us to
this screen where you're gonna see the
little progress bar going along it
generally takes under a minute to create
your droplet so that blue progress bar
will slowly make its way across and then
you'll get this where it disappears and
you're gonna get your IP address this is
where your site is your site is at that
address as soon as you see this you
could technically go and visit it
there's not much to see there right now
so instead of going to visit it what I'd
encourage you to do is click on where it
says my portfolio when we click on my
portfolio it's going to bring us into
this screen and what we're gonna want to
do is click where it says console
because one thing we have to do before
we can do anything else is we need to
reset our password when we signed up for
a one-time password it's going to email
us that password that the password has
to be reset the first time you put it in
so when we click on the console here
it's actually going to open a console in
the browser in a new window you could be
doing this if you're on Mac through
terminal or if you're on PC through
PowerShell or Commander or something
like that but you know we have this
built in it's the nice simple terminal
that's just it's directly connected to
your droplet so it's gonna ask you for
your login and it will ask you for your
password you should have received an
email that's going to have both of those
things so you'll see your IP address
your username and your password I don't
mind showing you my password because as
I said it has to be reset as soon as you
put it in the user name will always be
route so you can put in route where your
login name goes and then it's gonna ask
for your password I would come buddy
here I would copy it so command select
it command or control C and then you
come over to here and you paste it in
with if you're on a PC control V or if
you're on a Mac command a V and that's
gonna paste it in
now when you paste it in it's not gonna
look like anything happened because it
stays blank that's fine
just hit Enter or return and it's gonna
go to the next step
it's a password they're trying to make
it stay confidential so they don't show
it on the screen when you're entering
your passwords in a terminal once you
put the password in it's gonna say
you're required to change your password
immediately so right away it's gonna ask
for your current password so just
command V again and paste it in there
and then it's gonna ask for your new
passwords you type in a new password
once again as you're typing it it's
gonna look it's just gonna be blank it's
gonna look like there's nothing there
that's completely fine just keep on
going it's gonna ask you to retype it
again just to make sure you spelled
everything right and as soon as you've
done that it's gonna give you a little
message saying that everything is pretty
much good to go and you can close this
window down once you've done that if you
visit your IP address after that you're
going to see something that looks like
this so it's not very exciting it's
saying please login your droplet to
configure the Lemp installation and now
we want to get our site up on here
instead of seeing a screen like this so
we're going to look at how we can do
that in the next video
DigitalOcean Droplets Uploading files via FTP
02:19:04
all right so let's see how we can put
our files onto our droplet we're gonna
be doing it with an FTP client so some
FTP software that you might want to use
there's FileZilla cyberduck or fetch you
can click on any of these here it's
gonna bring you right to their website
fetch is probably the easiest one to use
but it is Mac only the interface is the
cleanest and simplest one so if you're
on Mac maybe you'd want to go with fetch
for this though I am gonna be using
FileZilla I am on PC I want to do
something that both PC and Mac users
could follow along with so I am using
FileZilla but it's always the same thing
and there's other FTP clients out there
as well it's not just these three use
whichever one you want the interface
might be a little bit different but the
information is the same no matter which
one you are using so here I have
FileZilla opened and what I'm gonna want
to do is click on this weird little icon
that's in the left here and what that's
going to do is it's going to open my
site manager inside my site manager I
clicked on new site just to create a
site I called it a deal for digitalocean
portfolio and then I came over to my
protocol and I changed it to SFTP which
is the SSH File Transfer Protocol and
then here I need to put in my host and
my port number the host is just going to
be your IP address and the port we're
gonna use is 22 which is for the SFTP if
you wanted to go into a regular FTP you
could use port 80 it's gonna ask for
your on my login type I'm saying ask for
password that was where was I'm gonna
leave it like that in my user I'm gonna
put in root right there once I put in my
user name there I can just click on
connect all the way down here and it's
gonna pop up with something that looks
like this it's saying unknown host key
the server's host key is unknowing you
have you have no guarantee that the
server is the computer you think it is
and it's showing the fingerprint for
there and this is just saying are you
sure you're connecting to the right
place we can't be a hundred percent sure
because the key is an unknown key this
is because we haven't set it up with SSH
we can for now just click on always
trust this host because we know so we're
adding that to our cache click that and
click OK then it's going to ask you for
your password so you put in your
password that you just created in the
terminal in the last video and it's
gonna log you into your droplet now the
way FileZilla works is everything on the
left here is my computer and everything
on the right here is my droplet this is
all the different things that are in my
droplet a lot of this got created
because I went with the LEM
stacks who had created a whole bunch of
stuff that's already in here now by then
when you start with you might be inside
your root folder so you might have to
take a step back and then once you've
taken that step back you're gonna want
to find the VAR folder so it's var var
folder once you're inside the var folder
you're going to want to look for a WW
folder and then once you find the WWWF
it should only be one thing in there
which is the HTML folder click on that
HTML folder and you should see that
there's an index file in there and that
is it and what we want to do is we want
to replace that index dot HTML file with
our own files so I've downloaded mine
from scrim but if you want to follow
along with exactly that at the moment
and download from scrim by itself I'm
gonna do that at the very end of this
video we'll look at how we can do that
so what I did is I downloaded everything
from scrim but I opened up the folder I
unzipped it and then I grabbed all the
files I needed it was everything except
for the normalize and the readme if you
put those up there it's not gonna cause
any problem but we don't need those
files we might so there's no reason to
put them online so I grabbed those I
literally just dragged over to here you
can see that it's there I let go and
it's gonna tell me that there's already
index.html do I want to replace it yes I
do
and with in probably under a second
everything was uploaded once it was all
uploaded I went back to here I hit
refresh so this is just on the IP
address I was on I hit refresh and bang
just like that my site is up here it's
live and it is available for anybody to
see it's as easy as that to get a site
up on a digitalocean droplet now if you
do want to download from scrim but you
just go to the very last video but just
make sure you scroll all the way to the
end because wherever you are in the
video it's gonna download that state so
make sure you're at the end of the last
video where we're creating the website
and if you go to the little gear icon
you can scroll you can go down to where
it says download zip click on that and
it's gonna download all the files for
you so if you want to test it out and
put everything else and put it all up
there or then make maybe make your own
changes to it and then put it up there
you can go ahead and do that