
Understand what SVG is, how vector graphics differ from raster images, and why scalable SVGs are ideal for logos and icons. Learn inline SVG, styling shapes, and JavaScript interactivity.
Explore three common ways to use svgs: inline svg, image tag, and css background, and learn to create a rectangle with width, height, and fill, plus simple javascript-based manipulation.
Learn to render rectangles and circles with code, control their position using x and y coordinates, define size with width, height, and radius, and apply fill and stroke colors.
Create lines in web apps using simple coordinates, start and end points, and stroke width. Set stroke color to black or gold to shape simple designs.
Explore how to set SVG width and height and use viewBox to zoom and crop regions. Practice shaping rectangles and circles with varied fills to see the viewBox effect.
Use the polygon element to draw shapes by listing points as x,y coordinates, connect them with lines, fill the interior, and apply stroke for triangles and other polygons.
Add and close multiple polygons by specifying coordinates, then create an inner triangle with white fill and a black stroke using example points such as 50 200 and 200 100.
Explore drawing complex polygons with svga by defining points to form a star, enabling stroke and fill to reveal lines and shapes, and experiment with abstract art.
Explore how the view box attribute controls zoom and display by adjusting x, y, width, and height, and how it relates to the viewport for scaling.
Explore how viewBox attributes enable SVGs to scale with the viewing window by removing explicit width and height, allowing auto-resizing and zooming within the viewport.
Explore the path element and its d attribute, using M, L, H, and V commands with absolute or relative coordinates to define the starting point and craft complex shapes.
Continue exploring path elements by grouping shapes with the G keyword and adding multiple paths inside 300 by 300, using the Z command and a CSS class like upper to set teal fill.
Explore Bezier curves in paths using the c command to form cubic curves with start, end, and two control points; visualize the curve with guide points.
Master Bezier curves by composing shapes and charts through curve logic and adjustable control points, creating smooth squiggly lines, and applying stroke and fill settings for visuals.
Learn how to build more complex Bezier curves in SVG using path d, cubic 'C' commands, and successive 's' reflections, then optionally add lines to shape intricate graphics.
Explore SVG arcs in JavaScript by using the path 'a' command with rx and ry radii, x-axis rotation, and the large-arc and sweep flags to draw circular or elliptical curves.
Explore SVG edit, an online SVG editor, to create simple SVGs, adjust fills and text, and export as SVG or PNG; note that complex shapes are hard to code.
Style inline svg to target parts with css transitions and animations. Group foliage with a g element, hover to change color, and apply wind-like transforms with fixed height and width.
Explore loading scalable vector graphics in an img tag or as a background, export SVG assets, and control sizing with inline styles to build dynamic, text-heavy logos and web UI.
Learn to use SVG as a responsive background image with CSS and media queries, scale with percentage widths, and set explicit heights for crisp, centered backgrounds.
Render a circle on top of existing SVG elements and generate multiple red circles with JavaScript by grouping them and constraining placement within the outer rectangle for tree-like structures.
Create pine trees by exporting a triangle path, grouping it as pine, and using SVGA's use with xlink to place 20 trees at random coordinates.
Learn to procedurally generate trees in SVG by cloning a base pine element, randomizing x and y coordinates, and adjusting transforms to create varied sizes within bounds.
Refactor your JavaScript project by removing unused code and consolidating repeated logic, extract a getRandom function, and implement a remove all pine trees button that cleans up the dom.
Leverage data-y-axis attributes to store y coordinates and access them with element.dataset.yAxis for sorting by y axis, enabling reusable tree rendering.
Refactor repetitive DOM attribute assignments by introducing a reusable setAttributes function that uses a for-in loop to iterate over object keys and applies attributes like class and data-y-axis to elements.
Implement client-side saving of SVGA as an SPG file by wiring a save button and file name input, creating a blob, and triggering a browser download.
Create and download an SVG file from blob data using object URLs, a dynamic download link, and a delayed revoke of the URL to release resources.
Learn to save your app art as a png file by drawing on a canvas, creating a downloadable image, and adding a name validation check for unnamed files.
This lecture demonstrates refactoring image download logic into a reusable function, wiring up buttons with data-format attributes to download svg or png images via blob creation, conversion, and cleanup.
Refactor a function to do one thing, convert to a draft format, return the draft, and trigger a download after arrival, using callback and promise patterns with an SVGA URL.
Refactor three image-related functions into a single object with methods like save image, convert to png, and download image, ensuring correct this binding and streamlined event handling.
Refactor the main functionality into a tree generator object initialized on dom content loaded, encapsulating variables to create oak and pine trees sorted by y axis on the terrain.
Continue refactoring by turning the attributes function into a method, using this and indentation. Encapsulate randomization and order by y axis in the object, test with pine and oak trees.
Test cross-browser compatibility for Chrome, Safari, and Firefox, fix syntax and data attribute issues, ensure proper layering, and verify exports to SVG and PNG across browsers.
Intermediate coders learn to ensure the dom is loaded before accessing elements by placing event listeners in a domcontentloaded handler, ensuring scripts run after the dom parses.
Apply resets and box-sizing border-box, center the main container using margin auto at 80vw, and style buttons with hover and active feedback for a clean, responsive ui.
Adjust button widths and input alignment for full-width use, then implement media queries to improve mobile responsiveness. Center controls and use flex wrap to reflow with breakpoints.
Apply responsive CSS tweaks: adjust margins, set button widths to 80vw, and add a 575px breakpoint with inherit widths to resize inputs properly across browsers.
Refactor JavaScript for intermediate coders by conditionally setting dimensions based on format, preventing unwanted width and height when downloading as PMG, and streamline DOM handling with forEach and event listeners.
Add a size reset button to reset width and height inputs for maintaining aspect ratio, refine modal button interactions, and ensure consistent behavior across browsers.
Conclude the web app project by enabling a cursor pointer on hover for visual feedback. Tinker with different backgrounds, objects, animations, and aspect ratio preservation to extend the project.
Get here - source files from the projects of this section.
learn practical react fundamentals, keep components simple and small, use functional components, manage state with props or move the state up to a parent, and debug with browser console errors.
Create a simple React app by rendering content into a root div, enable JSX, and build reusable components—class components and stateless functional components—using props to pass data.
Pin webpack and webpack dev server to version 1 to align with the course setup, and verify dependencies in package.json to prevent breaking changes and ensure consistent development.
Learn to set up React on your machine, install essential packages like React, React DOM, Webpack, and Babel, configure bundling, and transpile ES6 code for web apps.
Learn to invoke JavaScript functions within a web app, define a name mapper function, map data with keys, and return results using direct function calls and dev tools feedback.
Get here - the source files from this section!
Explore how the virtual DOM in React updates only changed parts of the DOM to boost performance. Compare function components and class components, and see rendering with ReactDOM.render using props.
Explore ES6 class components in React, using render, state, and a name mapper to produce JSX elements. Set up a webpack dev server with content base public to enable reload.
Learn to structure a React app by splitting logic into components, organizing files in a components folder, and exporting and importing them for a simple main app with live reload.
Split the welcome component into its own file, import it, and pass data via props to demonstrate how React components nest and share data top-down.
Learn how to validate props in React components using PropTypes, default props, and custom validators to ensure correct types, required fields, and safe defaults.
Get here - the source files from this section!
Explore how state works in React by building a stateful layout component, initializing with constructor, updating via setState, and observing downward data flow and efficient re-renders with the virtual DOM.
Split a timer into subcomponents and place state in the parent, using uni-directional data flow and props to drive header and button components, with the timer starting on mount.
Get here - the source files from this section!
Explore how React handles events and prevents default behavior, while learning to mock data, pass it via props, and render a name list by mapping over data with keys.
Explore simple event handling in JavaScript and React, turning anchors into links with on click and preventing default behavior. Learn binding this, handling form submissions, and inspecting event targets.
Explore how web apps capture and display values by binding event listeners to JavaScript events—from change, focus, blur, and key press to touch—updating state on the fly in React.
Get here - the source files from this section!
Explains client-side routing challenges with direct URLs, and how to enable history API fallback or hash history in webpack dev server to load index.html and render routes like /timer.
Create a front page component named home and wire an index route to load it by default on page load, using a layout with header, footer, and navigation links.
Learn to implement nested routes in a JavaScript web app by using path parameters (id) to render a name profile from a names list, and fix root-relative loading.
Link user profiles by matching IDs to names with simple JavaScript and react router links, and render navigable profile links.
Build a name profile and enable back navigation with the browser history and history API. Render user data conditionally (name, email, city, catchphrase) and handle missing users gracefully.
Explore customizing back navigation in a web app by using a click handler with browser history push or replacing a button with a link to named routes like /names.
Explore inline styles in React by using a style object to mimic the active class, and compare inline styling with external stylesheets, noting advantages and disadvantages of each approach.
Refactor your app by extracting the navigation into a reusable NavList component, wiring it with props, children, and the spread operator, to support dynamic links and an active class name.
Get here - the source files from this section!
Refactor a React app by extracting a header into its own component and adding a dedicated footer for cleaner imports and modular structure.
Refactor to improve code organization by moving components into dedicated folders (name list, timer, home, 404) and updating imports, ensuring the app remains functional.
Install faker with npm and import it to generate data in the project. Map the products array into card-like divs with keys, displaying name, price, color, and description.
Move the products array into a shared module and export it as default, then initialize state with these products to render a product profile by id using react-router links.
Add images to a web app by integrating the product profile, embedding image sources, and generating placeholder content with faker, including optional inline styling.
Reuse the product profile component across home and product pages by passing an id prop, randomizing selections from the product data, and linking to individual product routes.
Use pure CSSA as a grid system to organize information into responsive grids, adjusting to screen size with media break points, and automatically resizing images via the pure image class.
Write modular CSS in React by scoping styles to components with CSS modules. Configure webpack with style-loader and css-loader, import component CSS, and apply local hashed class names.
Explore CSSA styling in a component-based workflow, creating a CSSA file, injecting and importing styles, and applying name classes with backgrounds; enable camelCase in the loader and adjust the config.
Add a menu to the navigation bar by building a full-width header, styling with modular CSS, and aligning links with flexbox while managing the active state for clarity.
Apply margins and styling to the product list, set explicit width and height, center text, remove bullets, add a border, and implement a hover scale with a short transition.
Format the product profile page by placing the image beside the text and adjusting margins, using the pure cssa framework for a responsive layout.
Extract css to a separate file and keep the plugin ready for future use, then verify the app runs in the web pack production setup while css styles remain injected.
Get here - the source files from this section!
"This guy knows his stuff. Really good course. Has a ton of content! I watch this all the time. His SVG knowledge is impressive. I also liked the React stuff." - Daniel S.
Do you want to take the next steps in your web development career or programming hobby? This course is for you.
This course is project-based so you will not be learning a bunch of useless coding practices. At the end of this course you will have real world apps to use in your portfolio. We feel that project based training content is the best way to get from A to B. Taking this course means that you learn practical, employable skills immediately.
In Part 1, you will learn hands-on how to create SVG animations in the browser using HTML & CSS. Together with your expert instructor Chris Veillette of Mammoth Interactive, you will:
Recognize why you should use SVGs for web development.
Create SVG shapes.
Embed SVG on a web page.
Make a landscape scene entirely with code!
In Part 2, you will master the fundamentals of React and Redux by developing apps. You will learn how to do all of the following, and more!
Lay out a web app in a logical way
Use JSX, a pre-processor that adds XML syntax to JavaScript
Build a single-page app using React Router
Code in ES6 and JavaScript
Use webpack, a bundler for code
Transition from webpack 1.0 to webpack 2.0
Write modular CSS
Use Redux, a predictable state container for JavaScript apps
Refactor code (alter code to make it simpler and more efficient)
Fix bugs and handle errors
The beauty of taking an online course like this is the ability to replay any of the lectures at any time. There is no time limit or final tests. You get to learn at your own pace with a practical model method of learning.
One of the best features is that you can watch the courses at any speed you want. This means you can speed up the or slow down the video if you want to.
You can use the projects you build in this course to add to your LinkedIn profile. Give your portfolio fuel to take your career to the next level.
Learning how to code is a great way to jump in a new career or enhance your current career. Coding is the new math and learning how to code will propel you forward for any situation.
Learn it today and get a head start for tomorrow. People who can master technology will rule the future.