Learn the fundamentals of web development by building real websites with HTML, CSS, and JavaScript. This course takes you from complete beginner to creating your own personal website.
Learn to structure web pages with HTML - the foundation of every website.
HTML (HyperText Markup Language) is the skeleton of every website. In this lesson, you'll learn how to structure content using HTML tags and build a recipe page that demonstrates key concepts.
HTML uses "tags" to tell the browser how to display content. Tags are written inside angle brackets
like <tag>. Most tags come in pairs - an opening tag and a closing tag.
For example: <h1>Hello World</h1> creates a large heading that says "Hello World".
Learn more: W3Schools HTML Tutorial | MDN HTML Documentation
Let's create a complete recipe page that demonstrates all the key HTML elements. This project will include headings, paragraphs, lists, images, links, and different sections.
Click to open Jippity's Home Page in a new tab.
In the big input box, type Create an HTML recipe page and press enter.
Ask Jippity to create the basic structure with a title and description:
Create an HTML page with an h1 heading "My Favorite Recipe", an h2 subheading "Chocolate Chip Cookies", and a paragraph describing why you love this recipe
Click Insert This Code! and Run to see your page!
Now let's add a list of ingredients using <ul> (unordered list) tags. This creates
bulleted lists - perfect for ingredients!
Ask Jippity:
Add an h3 heading "Ingredients" and an unordered list with 5-7 cookie ingredients like flour, sugar, butter, eggs, chocolate chips
Learn more about lists: W3Schools Lists
Instructions should be in order, so we'll use <ol> (ordered list) tags. This creates
numbered lists - perfect for step-by-step instructions!
Ask Jippity:
Add an h3 heading "Instructions" and an ordered list with 4-5 steps to make the cookies, like "Preheat oven to 375°F", "Mix dry ingredients", etc.
Let's add an image to make the page more appealing. You have two options:
Option 1: Use a free image from the web
Ask Jippity to add an image using this URL:
Add an image of chocolate chip cookies above the ingredients section using this URL: https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Chocolate_chip_cookies_stack.jpg/1920px-Chocolate_chip_cookies_stack.jpg
This image is from Wikimedia Commons and is free to use (CC0 license).
Option 2: Upload your own image
Assets button on the top menu barUpload to upload your image from your computerAdd the image I just uploaded above the ingredients sectionLearn more: W3Schools Images
<div> tags are containers that help organize your content into sections.
They're essential for structuring and styling pages later.
Ask Jippity:
Wrap the ingredients section in a div with class "ingredients-section" and the instructions in a div with class "instructions-section"
Learn more: MDN div Element
Let's add some links using the <a> tag at the bottom of the page.
Ask Jippity:
Add an h3 heading "More Recipes" and add 3 links to other recipe websites or cooking resources
Try adding these additional HTML elements to enhance your recipe page:
<em> - Emphasize text (italics) for cooking tips<strong> - Bold text for important warnings like "Do not overbake!"<hr> - Horizontal line to separate sections<br> - Line break within paragraphsAsk Jippity:
Add a horizontal line between the ingredients and instructions, and make the word "Preheat" bold in the first instruction
Here's a reference of the HTML tags you've learned:
<h1> to <h6> - Headings (h1 is largest, h6 is smallest)<p> - Paragraphs of text<ul> and <li> - Unordered (bulleted) lists<ol> and <li> - Ordered (numbered) lists<a href="url"> - Links to other pages<img src="url" alt="description"> - Images<div> - Container for grouping content<span> - Inline container for small bits of text<strong> - Bold/important text<em> - Emphasized/italic text<hr> - Horizontal divider line<table>, <tr>, and <td> tags<dl>)Now that you've built your recipe page with Jippity's help, it's time to practice editing HTML on your own! This will help you understand how HTML works and build your confidence as a web developer.
Step 1: Open your HTML file
Click on index.html in the file tree on the top menu of the editor. You'll see all the HTML code that makes your recipe page work!
Step 2: Try these challenges (without using the AI assistant):
<h2> tag with "Chocolate Chip Cookies" and change it to a different cookie name like "Peanut Butter Cookies" or "Oatmeal Raisin Cookies"<ul> section with ingredients. Add a new <li> tag with an ingredient like "1 teaspoon vanilla extract"<ol> section with instructions. Add a new <li> with a step like "Let cookies cool on the baking sheet for 5 minutes"</body> tag), add:
<h3>Tips</h3> <p>For chewier cookies, slightly underbake them!</p><a href="url">Website Name</a><strong> tags to make it bold<br> somewhere in a paragraph to create a line breakStep 3: Test your changes
After each change, click the Run button to see your updates! If something doesn't look right, check your HTML tags - did you remember to close them with </tag>?
Step 4: Advanced Challenge
Try adding a completely new section on your own:
<h3> heading called "Reviews"<p> with a fake review like "These cookies are amazing! - Chef Bob"<div class="reviews-section"></div>Remember: Making mistakes is part of learning! If something breaks, you can always ask Jippity for help, or use the undo button. The more you practice editing HTML directly, the more comfortable you'll become!
Reach out to us at [email protected] for feedback or questions.
Make your web pages beautiful with CSS - colors, fonts, layouts, and more!
CSS (Cascading Style Sheets) is what makes websites look good. While HTML provides structure, CSS adds color, spacing, fonts, and layout to create beautiful designs.
CSS works by selecting HTML elements and applying styles to them. For example, you can make all headings blue, or give paragraphs a specific font size.
CSS is written in the format: selector { property: value; }
Learn more: W3Schools CSS Tutorial | MDN CSS Documentation
In this project, you'll style a profile card that demonstrates the CSS box model, borders, colors, and layout. You'll learn how padding, margins, and borders work together to create professional designs.
Start with a basic HTML structure. Ask Jippity:
Create an HTML page with a div class "card" containing an h2 with a name, a paragraph with a job title, and another paragraph with a short bio
Let's start styling! We'll add colors and fonts to make it look better.
Ask Jippity:
Add CSS to give the body a light gray background. Make the card background white.
You can use color names (like "blue" or "red") or hex codes (like "#FF5733" for orange).
Learn more: W3Schools Colors
To use custom fonts in Jippity, you need to load them from the Asset Library and define them using @font-face.
First, open the Asset Library:
Assets button on the top menu barAsset LibraryNow ask Jippity to load the font in your CSS (for example, if you chose Playwrite):
Add @font-face to load the Playwrite font using @asset("Playwrite"), then apply it to the body using font-family: 'Playwrite'
The CSS will look like this:
@font-face { font-family: 'Playwrite'; src: url(@asset("Playwrite")) format('truetype'); }
Learn more: W3Schools Custom Fonts | MDN @font-face
Every HTML element is a box! The CSS box model has four parts:
Learn more: W3Schools Box Model
Padding adds space inside the card, making the content less cramped.
Ask Jippity:
Add 30 pixels of padding to the card class
See how the card looks better with breathing room inside?
Borders create visual boundaries around elements. Let's add a border to our card.
Ask Jippity:
Add a 2 pixel solid gray border to the card
Learn more: W3Schools Borders
The border-radius property creates rounded corners, making designs look modern and polished.
Ask Jippity:
Add a border radius of 10 pixels to the card to give it rounded corners
Margins add space outside elements. We'll use margins to center the card on the page.
Ask Jippity:
Give the card a width of 400 pixels, and use "margin: 50px auto" to center it horizontally and add space at the top
Shadows add depth and make elements appear to float above the page.
Ask Jippity:
Add a box shadow to the card: "0 4px 8px rgba(0,0,0,0.5)"
Learn more: W3Schools Box Shadow
Now let's create different sections with different styling to see the box model in action.
Ask Jippity:
Add three div sections inside the card with classes "header", "content", and "footer". Give header a blue background with white text and 15px padding. Give footer a light gray background with 10px padding. Add 20px margin between sections.
Classes let you style specific elements differently. The class selector uses a dot: .className
Ask Jippity:
Create a class called "highlight-box" with a yellow background, 2px solid orange border, 15px padding, and 10px margin. Apply it to one paragraph.
Learn more: W3Schools CSS Selectors
Hover effects make your page interactive. Elements can change appearance when you mouse over them.
Ask Jippity:
Make the card grow slightly and increase the shadow when you hover over it. Use "transform: scale(1.02)" and a larger box shadow with a smooth transition.
Learn more: W3Schools Transitions
Flexbox is a powerful way to arrange elements in rows or columns.
Ask Jippity:
Create a div with class "skills-container" that uses flexbox to display 4 skill boxes in a row with spacing between them. Each skill box should have padding, borders, and background colors.
Learn more: W3Schools Flexbox
Here are essential CSS properties you've learned:
color - Text colorbackground-color - Background colorfont-size - Size of text (e.g., 16px, 1.2em)font-family - Font typeface (e.g., 'Playwrite', 'Arial', sans-serif)@font-face - Load custom fonts from Asset Librarymargin - Space outside an elementpadding - Space inside an elementborder - Border around an elementborder-radius - Rounded cornerswidth and height - Size of an elementbox-shadow - Shadow effectdisplay - How an element is displayed (block, inline, flex, grid)transform - Modify element appearance (scale, rotate, etc.)transition - Smooth animation between statesReach out to us at [email protected] for feedback or questions.
Bring your web pages to life with JavaScript - the programming language of the web!
JavaScript (JS) makes websites interactive. While HTML provides structure and CSS adds style, JavaScript adds behavior - things happen when you click buttons, fill out forms, or interact with the page.
JavaScript is a programming language that runs in your web browser. It can:
Learn more: W3Schools JavaScript Tutorial | MDN JavaScript Guide
Think of building a website like building a house:
Why can't we just use HTML? HTML is a markup language, not a programming language. This means HTML can only describe what content should appear on a page - it can't make decisions, do calculations, or respond to user actions.
HTML has important limitations:
JavaScript solves all of these problems! It can read HTML content, modify it, and react to user interactions in real-time.
JavaScript "talks to" HTML through something called the DOM (Document Object Model). The DOM is like a map of your HTML page that JavaScript can read and modify.
Here's what happens when you click a button:
<button>Click Me</button>Example: In your upcoming trivia quiz, HTML creates the question text and answer buttons. But only JavaScript can check if your answer is correct, keep track of your score, and decide what to show next!
In this project, you'll build an interactive trivia quiz that demonstrates variables, conditional statements, functions, and most importantly - localStorage to save and display high scores even after closing the browser!
Start a new project on Jippity. Ask Jippity:
Create an HTML page for a trivia quiz with a title, a container for questions, and a score display
Variables store information. We'll use a variable to keep track of the player's current score.
Ask Jippity:
Add JavaScript with a variable called "score" that starts at 0, and display it on the page
Learn more: W3Schools Variables
Let's add multiple choice quiz questions. We'll start with one question to understand the structure.
Ask Jippity:
Create a quiz question "What is the capital of France?" with 4 buttons for answers: Paris, London, Berlin, Madrid. Only Paris is correct.
JavaScript uses if/else statements to make decisions. When a player clicks an answer,
we'll check if it's correct.
Ask Jippity:
When the player clicks an answer button, check if it's correct. If correct, add 10 points to the score and display "Correct!". If wrong, display "Incorrect, try again!"
Learn more: W3Schools If/Else
Arrays let you store lists of data. We'll create an array of quiz questions so we can easily add more.
Ask Jippity:
Create an array with 5 trivia questions, each with a question, 4 possible answers, and the correct answer. Display them one at a time.
Learn more: W3Schools Arrays
Functions are reusable blocks of code. Let's create functions to handle displaying questions and checking answers.
Ask Jippity:
Create a function called "displayQuestion" that shows the next question, and a function called "checkAnswer" that checks if the selected answer is correct and updates the score
Learn more: W3Schools Functions
Now let's add the ability to move from one question to the next after answering.
Ask Jippity:
After answering a question correctly, automatically show the next question. After all 5 questions, show a "Game Over" message with the final score.
This is the exciting part! localStorage lets you save data in the browser that persists even after closing the page. We'll use it to save high scores.
localStorage is like a storage box in the browser where you can save and retrieve data using keys.
Ask Jippity:
When the game ends, use localStorage to save the player's score if it's higher than the previous high score. Display "New High Score!" if they beat it, or "High Score: [number]" showing the best score.
Learn more: W3Schools localStorage | MDN localStorage
When the page loads, we should check localStorage and display the high score if one exists.
Ask Jippity:
When the page loads, check localStorage for a saved high score and display it at the top of the page. If no high score exists yet, display "High Score: 0"
Let's add a button to restart the quiz and another to clear the high score.
Ask Jippity:
Add two buttons: "Play Again" which resets the score and restarts the quiz, and "Clear High Score" which removes the high score from localStorage and resets it to 0
Make the quiz more engaging by changing colors when answers are correct or incorrect.
Ask Jippity:
When a correct answer is clicked, make that button turn green for 1 second. When an incorrect answer is clicked, make it turn red for 1 second.
Throughout this project, you've been using the DOM (Document Object Model) to change the web page. Key methods include:
document.getElementById() - Select an element by its IDdocument.querySelector() - Select an element by CSS selectorelement.innerHTML - Change the HTML content of an elementelement.textContent - Change just the text of an elementelement.style.property - Change CSS styleselement.addEventListener() - Listen for events like clicksLearn more: W3Schools DOM
localStorage is incredibly useful for saving data in the browser:
localStorage.setItem('key', 'value') - Save datalocalStorage.getItem('key') - Retrieve datalocalStorage.removeItem('key') - Delete datalocalStorage.clear() - Delete all dataImportant: localStorage can only store strings. For numbers, convert them:
localStorage.setItem('score', score.toString())parseInt(localStorage.getItem('score'))JavaScript libraries are collections of pre-written code that make complex tasks easier. One of the most popular libraries on Jippity is p5.js - a creative coding library perfect for making animations, games, and interactive art!
Learn more: p5.js Official Website | p5.js Reference
p5.js makes it easy to:
p5.js is built into Jippity! When you start a new project, you can choose to use p5.js. Ask Jippity:
Create a p5.js sketch with a canvas
Jippity will set up the basic structure with two important functions:
setup() - Runs once when the program starts (create canvas, set initial values)draw() - Runs repeatedly, many times per second (create animations)Let's create a simple drawing with shapes and colors. Ask Jippity:
Create a p5.js sketch that draws a blue circle in the center of a 400x400 canvas
You'll see code using p5.js functions like:
createCanvas(width, height) - Create the drawing areabackground(color) - Set the background colorfill(color) - Set the fill color for shapescircle(x, y, diameter) - Draw a circlerect(x, y, width, height) - Draw a rectanglep5.js has built-in variables that track the mouse position. Ask Jippity:
Make the circle follow the mouse cursor using mouseX and mouseY
p5.js provides helpful variables:
mouseX and mouseY - Current mouse positionmouseIsPressed - True when mouse button is held downkey - The most recent key pressedwidth and height - Canvas dimensionsBecause draw() runs continuously, you can create animations by changing values over time.
Ask Jippity:
Create a bouncing ball animation that bounces off the edges of the canvas
p5.js is perfect for making games! Try creating a simple catching game:
Create a game where a circle moves left and right with arrow keys to catch falling objects
p5.js has many more features to explore:
loadImage() and image()text() and textSize()rotate() and scale()random() for unpredictable effectsmap(), constrain(), and dist()Learn more: p5.js Learn | Coding Train p5.js Tutorials
While p5.js is great for creative coding, there are many other JavaScript libraries you might encounter:
Why use libraries? Libraries save time by providing tested, optimized code for common tasks. Instead of writing hundreds of lines to create a game engine, you can use a library and focus on making your game unique!
Challenge: Use localStorage to save the quiz state, so if a player closes the browser mid-game, they can resume where they left off!
Reach out to us at [email protected] for feedback or questions.
Put it all together - create a professional personal website showcasing who you are!
Now that you've learned HTML, CSS, and JavaScript, it's time to create your own personal website! This will be a portfolio site that showcases your interests, projects, and skills.
Before coding, let's plan what your website will include. A good personal website typically has:
Think about:
Start a new project on Jippity. Let's create the basic structure with all the sections.
Ask Jippity:
Create an HTML personal website with sections for: About Me, My Projects, Skills, and Contact. Include a navigation menu at the top that links to each section.
Now personalize it with your own information. Ask Jippity to add:
Use a prompt like:
In the About section, add my name [Your Name] and a paragraph saying I'm learning web development and love [your interests]. Add placeholder projects in the Projects section.
Now make it look professional and unique! Ask Jippity to style your website:
Style my website with a modern design: use a [color] color scheme, make the navigation sticky at the top, add hover effects to links, and use clean spacing between sections
Continue refining the design:
Images make your site more personal and engaging. You can add:
Use the Asset Library or ask Jippity:
Add placeholder images for my projects and add icons next to my skills
Make your site dynamic! Here are some ideas:
Smooth Scrolling Navigation
Make the navigation links smoothly scroll to each section when clicked
Dark Mode Toggle
Add a button that switches between light mode and dark mode
Your website should look good on phones, tablets, and computers. Ask Jippity:
Make my website responsive so it looks good on mobile devices. Stack sections vertically on small screens and adjust font sizes.
Review your website and make final improvements:
Once you're happy with your website, it's time to share it!
Click the Title button above the chat, and update your website title to something
like "My Personal Website" or "[Your Name]'s Portfolio". Add a description.
To publish your website, add a thumbnail screenshot, then click Publish to make it
appear in the Projects tab.
Click View Project Page to see your live website, then use the
Embed/Share button to copy the link and share it with friends and family!
Congratulations! You've built a complete personal website using HTML, CSS, and JavaScript. This is just the beginning of your web development journey. Here's what you can learn next:
Keep building, keep learning, and most importantly - have fun creating for the web!
Reach out to us at [email protected] for feedback or questions.