resume
1. Setup
- github.dev: A free, online code editor that you’ll be coding directly in the browser
- CodeSwing: An extension that allows you to make edits to the HTML and CSS and see the results immediately
1.1 Creating a repository and opening it in github.dev
- creating a new repository named resume for this project on GitHub, and then opening it in github.dev. Make sure to select Public and to initialize the repository with a README.
- Navigate to your new repository on GitHub.
- Open the repository in github.dev by pressing the
.
key from the repository page, or swap.com
with.dev
in the URL.
1.2 Install CodeSwing
- Open the Extensions toolbar by selecting the Extensions icon from the Activity Bar on the left-hand side of the window.
- In the Search Extensions text box in the upper-right corner, type CodeSwing
- Select Install for CodeSwing
1.3 Turn on Auto Save
Auto Save automatically saves changes to your files, so you don’t have to worry about losing any of your work.
To turn on AutoSave, select the three parallel lines icon on the left-hand side of your github.dev window in the Activity Bar.
Go to File > Auto Save. Your AutoSave is turned on if there is a check mark next to the AutoSave menu item.
2. Create an HTML page
2.1 Create an HTML file with CodeSwing
You will use CodeSwing to create and edit your HTML and CSS in Visual Studio Code. CodeSwing has a variety of templates you can use and includes support for advanced pages as well. Start by creating your first “swing” using the core HTML template.
- Open the Command Palette by selecting the three parallel lines icon in the left-hand side Activity Bar, then navigating to View > Command Palette. You can also quickly open the Command Palette by using the keyboard shortcut Control+Shift+P on a PC, or Command+Shift+P on a Mac.
- Type CodeSwing, then select CodeSwing: Initialize Workspace as Swing.
- Choose the option for Basic: HTML-Only and your new swing will appear, with your HTML file on the left and a browser window on the right.
- This will create an index.html file in your root directory.
IMPORTANT If you accidentally close the wrong windows, you can re-open CodeSwing by navigating to your repository in github.dev, opening the Command Palette with Control+Shift+P (or Command+Shift+P on a Mac), typing CodeSwing, selecting CodeSwing: Open Swing…, and selecting the directory with your files.
You now have the HTML file created for your resume site!
2.2 Create the HTML structure
Create the index.html. Inside the index.html window, add the following code to create the initial structure of your page, replacing Your Name in the
<title>
tag with your name:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<html> <head> <link href="style.css" rel="stylesheet"> <title>Your Name resume</title> </head> <body> <header id="header"> <!-- resume header with your name and title --> <h1>YOUR NAME</h1> <hr> YOUR TITLE (EX: SOFTWARE ENGINEERING STUDENT) <hr> </header> <main> <article id="mainLeft"> <section> <h2>CONTACT</h2> <!-- contact info including social media --> </section> <section> <h2>SKILLS</h2> <!-- your skills --> </section> <section> <h2>EDUCATION</h2> <!-- your education --> </section> </article> <article id="mainRight"> <section> <h2>ABOUT</h2> <!-- about you --> </section> <section> <h2>WORK EXPERIENCE</h2> <!-- your work experience --> </section> </article> </main> </body> </html>
Notice how as you type (or copy and paste), the browser window on the right automatically updates with the information you’ve added.
2.3 Exploring the code
tag | description |
---|---|
html | Container for all HTML in an HTML page. |
head | Contains metadata, or information about the page. |
link | Used to tell the page what CSS stylesheet to use. rel="stylesheet" indicates we are using a stylesheet, and href="style.css" loads style.css (which is the name of the stylesheet we’ll create in the CSS section of the workshop). |
title | Indicates the title of the page to display on the toolbar. This is not displayed on the page itself. Every page you create should have a title. |
body | The contents of the page to be displayed to the user. |
header , main , article , section | These are “semantic” tags. See the description below for more information. |
h1 | A level 1 header. Header tags go from h1 to h6 , with h1 being the highest level, to h6 being the lowest level. These are used to create structure for the outline of the page. |
p | A paragraph tag. Paragraph tags are where the body text of your page goes. |
hr | Creates a horizontal line. The tag stands for “horizontal rule”. |
id | id is an attribute that allows you to assign a unique id for an HTML element. This will come in handy when we style the HTML. |
<!-- comment --> | These are HTML comments. They are useful for making notes or setting reminders to yourself. |
Note: Comments are a great way to take notes as you’re learning HTML. You can put a comment right above a section of code, and describe what the section does. But do remember comments are not hidden from browsers, so don’t store sensitive information in comments as anyone who views the source of your code can read your comments.
3. Adding content to an HTML page
3.1 Creating email and social media links
Inside index.html, and below the comment which reads
<!-- contact info including social media -->
, add the following HTML to add a link to your email, replacing your-email@example.com with your email address:1 2 3 4
<p> <i class="fa fa-envelope" aria-hidden="true"></i> <a href="mailto:your-email@example.com">your-email@example.com</a> </p>
The page automatically updates with your email address
NOTE Notice that there is an
i
tag here - this will eventually contain a little envelope icon. Right now, it just shows up as a square, and that’s because you need to add an icon font to your page. Don’t worry about that for now - we’ll do that in the next section, and that square will magically turn into an envelope.Repeat this for any social media that you want to add. Here are some different icons that you can use for the various social media platforms. Swap out the
class
of thei
element with any of the following values.- fab fa-twitter
- fab fa-linkedin
- fab fa-github
- fab fa-facebook
Similarly, swap out the
href
of eacha
element with the appropriate hyperlink for each social media page, and be sure to change the link text as well. For example, if you want to add your GitHub and LinkedIn links to your resume, the HTML would look something like this:1 2 3 4 5 6 7 8
<p> <i class="fab fa-github" aria-hidden="true"></i> <a href="github.com/gh-username">gh-username</a> </p> <p> <i class="fab fa-linkedin" aria-hidden="true"></i> <a href="linkedin.com/linkedin-username">linkedin-username</a> </p>
3.2 Creating lists
Inside index.html, below the comment which reads
<!-- your work experience -->
, add the following HTML to create the list:1 2 3 4 5 6 7 8 9 10 11 12
<h3>JOB TITLE</h3> <p> Company Name | 2008 - 2010 </p> <p> Describe what you did in this position with one summary sentence and no more than 3 bullet points with specific highlights </p> <ul> <li>Cool accomplishment</li> <li>Cool accomplishment</li> <li>Cool accomplishment</li> </ul>
Swap out JOB TITLE for your previous job title (for example, SOFTWARE ENGINEER).
Change the “Company Name” and date as appropriate.
Add a short description that sums up your responsibilities.
Update the
li
items to add the accomplishments you want to highlight from that work experience.
3.3 Finishing out our resume
Inside index.html, below the comment which reads
<!-- your skills -->
, add the following HTML and include any skills that you have.1
<p>HTML, CSS, GitHub, VS Code...</p>
Below the comment which reads
<!-- your education -->
, add the following HTML for your education information and update the text to represent your education:1 2 3 4 5 6 7
<h3>YOUR MAJOR</h3> <p> Your university or school </p> <p> 2018-2022 </p>
Below the comment which reads
<!-- about you -->
, add the following HTML and update it with a short blurb on who you are and what kind of company you want to work for:1
<p>A brief paragraph about you and what kind of job/company you are looking to work for.</p>
The window updates with your new information
4 Adding style using CSS
4.1 Adding style to a page
Hover over the name of your repository, resume, in the Explorer pane on the left-hand side of your screen, then select the File with + icon. Name the file style.css.
Inside style.css, add the following CSS to choose the font and size
1 2 3 4 5 6
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 12px; max-width: 960px; margin: auto; }
Notice font-family
, which is used to select the font. There are five fonts listed. Because users may not have a particular font installed, CSS offers the ability to fallback to the next font. In this case you’re telling the browser to try Segoe UI first, then Tahoma if that’s not installed, and so on.
There are also a few more rules that apply to everything in the body
tag, which is the whole page:
font-size
- sets the size of the font to 12 pixelsmax-width
- sets a maximum width for your resume so that it doesn’t look strange on huge screens. 960 pixels is a common width for many websites.margin
- sets the margin to auto. When combined with themax-width
property, this centers the content on the screen horizontally.
4.2 Sizing
At the bottom of style.css, add the following…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
h1 { font-size: 3em; letter-spacing: .6em; padding-top: 1em; padding-bottom: 1em; } h2 { font-size: 1.5em; padding-bottom: 1em; } h3 { font-size: 1em; padding-bottom: 1em; }
The page updates with the new sizes.
4.3 Creating a grid
Let’s review the structure of your page:
1
2
3
4
5
6
7
8
9
10
```html
<main>
<article>
Contact info
</article>
<article>
About you & experience
</article>
</main>
```
We want to create two columns, one for the first article
with your contact info, skills, and education, and the second article
with your work experience. Notice how both article
elements are contained inside of a single main
element. We will use the main
element as the container for our grid. We will configure main
to host the grid, and configure two column templates - one for each article.
1
2
3
4
5
6
7
```css
main {
display: grid;
grid-template-columns: 40% 60%;
margin-top: 3em;
}
```
This will split the main
element into two columns. The first top-level element under main
which is an article
will be the first column and will take up 40% of the available space. The second top-level element under main
(also an article
) will take up the remaining 60%.
4.4 Controlling spacing with the box model
Add the remaining style rules to add some padding around the elements on your page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
```css
header {
text-align: center;
margin: auto 2em;
}
section {
margin: auto 1em 4em 2em;
}
i {
margin-right: .5em;
}
p {
margin: .2em auto
}
hr {
border: none;
background-color: lightgray;
height: 1px;
}
h1, h2, h3 {
font-weight: 100;
margin-bottom: 0;
}
```
- We’re centering the text in the
header
element and adding a 2em margin to the left and the right so that the lines from thehr
don’t go all the way to the edge, but have a little padding. - The
section
element is given some margin so that each section (ABOUT, CONTACT, SKILLS) has spacing around it. Thep
element is also given some margin. - The
i
element is given some spacing on the right. These are the icons that we will be adding next. - The
hr
element is turned into a thinner gray line by removing its border and providing a background color and height. - We reduce the
font-weight
or “thickness” of the font of our header tags so that they aren’t so blocky.
4.5 Selecting an element by ID
Notice that each of the article
elements has an id property - “mainLeft” and “mainRight”. We can select these elements by their ID in the CSS and style them. So, to add a border to just the left column, add this final rule to your stylesheet:
1
2
3
4
5
```css
#mainLeft {
border-right: 1px solid lightgray;
}
```
4.6 Add an icon font
An icon font is a font that contains symbols and glyphs instead of letters and numbers. In other words, it’s a font that contains icons! There are many open source/free icon fonts you can use, and one of the most popuplar is called “Font Awesome”. That’s the one we’ll add to our page.
In the index.html file, add the following line to the
head
element…1
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
This will load the Font Awesome icon font. You should now see some nifty icons next to your CONTACT data.
5. Creating your website
5.1 Commit your changes
5.2 Set up GitHub Pages
Next, we’ll need to turn on GitHub Pages for our resume repository.
- Navigate to your repository on GitHub.com, and select Settings, next to the gear icon.
- Select Pages in the left-hand menu.
- Under Source select the main branch of your repository to be the source for your new website. Then, select Save.
- After you select your source, you’ll be notified of the address of your new website. It should look something like your-username.github.io/resume/. Navigate to the page, and check out your live resume website!
6 All files
6.1 index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<html>
<head>
<link href="style.css" rel="stylesheet">
<title>Your name resume</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
</head>
<body>
<header id="header">
<!-- resume header with your name and title -->
<h1>YOUR NAME</h1>
<hr>
YOUR TITLE
<hr>
</header>
<main>
<article id="mainLeft">
<section>
<h2>CONTACT</h2>
<!-- contact info including social media -->
<p>
<i class="fa fa-envelope" aria-hidden="true"></i>
<a href="mailto:your-email@example.com">your-email@example.com</a>
</p>
<p>
<i class="fab fa-github" aria-hidden="true"></i>
<a href="github.com/gh-username">gh-username</a>
</p>
<p>
<i class="fab fa-linkedin" aria-hidden="true"></i>
<a href="linkedin.com/linkedin-username">linkedin-username</a>
</p>
</section>
<section>
<h2>SKILLS</h2>
<!-- your skills -->
<p>HTML, CSS, GitHub, VS Code...</p>
</section>
<section>
<h2>EDUCATION</h2>
<!-- your education -->
<h3>YOUR MAJOR</h3>
<p>
Your university or school
</p>
<p>
2018-2022
</p>
</section>
</article>
<article id="mainRight">
<section>
<h2>ABOUT</h2>
<!-- about you -->
<p>A brief paragraph about you and what kind of company you want to work for.</p>
</section>
<section>
<h2>WORK EXPERIENCE</h2>
<!-- your work experience -->
<h3>JOB TITLE</h3>
<p>
Company Name | 2008 - 2010
</p>
<p>
Describe what you did in this position with one summary sentence and no more than 3 bullet points with specific highlights
</p>
<ul>
<li>Cool accomplishment</li>
<li>Cool accomplishment</li>
<li>Cool accomplishment</li>
</ul>
</section>
</article>
</main>
</body>
</html>
6.2 style.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 12px;
max-width: 960px;
margin: auto;
}
h1 {
font-size: 3em;
letter-spacing: .6em;
padding-top: 1em;
padding-bottom: 1em;
}
h2 {
font-size: 1.5em;
padding-bottom: 1em;
}
h3 {
font-size: 1em;
padding-bottom: 1em;
}
main {
display: grid;
grid-template-columns: 40% 60%;
margin-top: 3em;
}
header {
text-align: center;
margin: auto 2em;
}
section {
margin: auto 1em 4em 2em;
}
i {
margin-right: .5em;
}
p {
margin: .2em auto
}
hr {
border: none;
background-color: lightgray;
height: 1px;
}
h1, h2, h3 {
font-weight: 100;
margin-bottom: 0;
}
#mainLeft {
border-right: 1px solid lightgray;
}
6.3 codeswing.json
1
2
3
4
{
"scripts": [],
"styles": []
}