Resources
Table of Contents
Text Editors ⤒
Text editors are very much a matter of taste.
That's fine, because there are numerous text editors suitable for front-end development, both free and paid. A good text editor will:
- Have syntax highlighting (color coding).
- Help you with tabbing and closing tags.
- Support code folding, to collapse and expand sections of code.
- Edit multiple lines at once.
- Include autocompletion for tag names, attributes and CSS rules.
- Offer powerful find and replace functionality, including grep/regex.
- Possibly handle FTP as well, so you can sync and upload your files to your server from right inside the program.
The industry standard of late is Visual Studio Code, which is feature-full, free, and available on all platforms. Paid programs all have a free trial period though, so try a few once you're comfortable with CSS. Most of the time I personally use BBEdit or Vim, depending on the task.
App | Platform | Notes |
BBEdit | mac only | Paid with generous free-for-life partial feature set. Excellent general purpose text editor with a suite of HTML specific features. Powerful find and replace functionality with clear documentation. One of the oldest actively developed mac apps, going back to 1989. |
Visual Studio Code | win/mac | Free. Microsoft's free IDE for development in a multitude of languages. VSCode can be overwhelming at first because it includes many features we don't need for HTML/CSS, but it's incredibly popular among web developers. |
Nova | mac only | Paid, free trial. Thoughtfully crafted editor with lots of features and top-notch FTP functionality for working with remote servers. |
Sublime Text | win/mac | Paid. Free to evaluate but nags to purchase. Highly functional and customizable for advanced users. |
Notepad++ | win only | Free. A very good windows-only option. |
UltraEdit | win/mac | Paid (subscription model). Another good option particularly for windows users. |
Finally, a note about Adobe Dreamweaver, which is installed on all of the lab computers as part of the Adobe suite. Dreamweaver is much better in recent versions, but it focuses heavily on templating and tooling that can be confusing for beginners. Avoid using Dreamweaver for this class.
Helpful Links ⤒
- Can I Use - Check the current browser support for any CSS property or HTML feature.
- Mozilla Developer Network (MDN) - Incredibly comprehensive documentation, with examples and compatibility tables. Most often when looking up definitions or usage of something in HTML or CSS, I simply search "MDN <term>" for the answer.
- HTML Validator - Check your HTML syntax using this W3C tool.
- CSS Validator - Check your CSS syntax using this W3C tool.
- W3 Counter - Global Browser and Platform Market Share
- statcounter - Global Browser and Platform Market Share
- Chrome CSS Usage - CSS Feature Usage based on Chrome's anonymous usage statistics
Browser Developer Tools
One of the greatest things about the web is that you can freely poke around at the code for any web page.
All the major browsers nowadays have a sophisticated collection of built in developer tools that are extremely useful. When activated, they usually open as a pane within your browser window, but can easily pop out into their own window if needed.
They make all of a web page's source code easily viewable, and you can even edit and preview certain code changes live in the browser.
Tip: Don't get too far ahead of yourself editing code in the browser. Get in the habit of switching to your text editor and updating your code after every couple of changes. Once you refresh the page in the browser, everything goes back to its original state!
Browser | Where to find tools |
Firefox | Built-in developer tools under Tools > Web Developer > [ Inspector ] |
Chrome | View > Developer > Developer Tools |
Safari | First, enable "Show Develop menu in menu bar" from the Advanced tab of Safari's Preferences. You'll then find it under: Develop > Show Web Inspector. Remote debugging on iPhones is enabled when the phone is connected to a trusted computer. |
MDN has a good instructional article on how to Examine and edit CSS in the Firefox dev tools (the other browsers are similar).
Find and Replace (PRCE/Grep/Regexp) ⤒
Regular expressions are an extremely powerful tool for finding and transforming text. Learning regular expressions in depth is definitely beyond the scope of our class, but here are some of the most common and useful character classes. Don't forget to turn on the checkbox for grep/regexp in the find and replace dialog of your text editor.
BBEdit's help manual has an excellent section on regular expressions if you're interested in learning more. It is linked for quick access from the table of contents page under Help > BBEdit Help. In versions >13.0, BBEdit also has a "grep playground" that helps you learn by live preview, and predefined examples.
Pattern | Matches |
^ |
Beginning of line |
$ |
End of line |
\n |
Newline |
\t |
Tab character |
\d |
Digit |
\w |
Word character (letter or digit) |
. (dot) |
Any non-whitespace character |
* |
Matches zero or more of the preceding character or character class. For example, \d* matches zero or more digits. |
+ |
Matches one or more of the preceding character or character class. For example, \t+ matches one or more tab characters. |
Screenshots ⤒
Oftentimes it's useful to take a picture of exactly what's displayed on your screen. Fortunately this is easy to do on both Macs and PCs, via keyboard shortcuts or screen capture applications included with macOS and Windows.
On a mac:
Macs have an app called Screenshot.app which lets you take images or videos of the screen, a given window, or a cropped selection.
Shortcut | Type of Screenshot |
cmd + shift + 5 |
Open Screenshot.app |
cmd + shift + 3 |
Whole screen |
cmd + shift + 4 |
Click and drag to capture a portion of the screen. While dragging, use shift, option, or spacebar to change the way the selection moves. |
cmd + shift + 4, spacebar |
Choose a window to take a picture of. Hold option while taking the screenshot to capture the window without its shadow. |
Screenshots are saved to the desktop. Full Apple help article on screenshots here.
On a PC:
Most PCs running Windows 10 have a tool called the Snip and Sketch. Open the start menu and search.
Shortcut | Type of Screenshot |
PrtScn |
"Print Screen" or similar abbreviation, takes a picture of the whole screen and copies to the clipboard. Hint: The New Document dialog in photoshop automatically sizes to the contents of your clipboard. |
win + PrtScn |
Windows 8.1 and 10 only - take a picture of the whole screen, and save automatically to a file. Creates a folder called "Screenshots" in your Pictures folder. |
alt + PrtScn |
Copies a picture of the currently active window to the clipboard. |
win + alt + PrtScn |
Capture a single window. |
win + shift + s |
Click and drag to capture a portion of the screen. |
Full Microsoft help article on screenshots here. If you take a lot of screenshots or have advanced workflow needs, try ShareX!
If you need to take a screenshot of an entire web page, Firefox and Chrome dev tools both have options for taking a single screenshot of the entire current page.
Monospace Fonts
Below are a selection of beautiful, modern monospaced fonts for coding and writing. None of these are bitmap fonts, and several have variable font variants.
As always, check the licensing terms before distributing, uploading, or publishing content using these fonts. They are all, however, free to use on your personal computer and text editor of choice.
Here's an article comparing several of these to Fira Code (2023).
Open Source
- Fira Code - This is a forked version of Fira Mono. It includes code specific ligatures and a slanted variant that come text editors are capable of displaying. This is a very popular coding font.
- Commit Mono - "an anonymous and neutral coding font" with many Open Type features and "smart kerning", which shifts letters within their monospace block for better readability.
- Victor Mono - "Slender, crisp, narrow"
- Cascadia Code - Microsoft's new default monospace font.
- Inconsolata - A humanist monospace font, my personal favorite.
- Recursive - A highly versatile variable font with a monospace axis.
- Hack - Also available on Adobe Fonts
- IBM Plex - Also available on Adobe Fonts
- iA Writer fonts - Based on IBM Plex, monospace and duospace variants. Also, variable font versions.
- Source Code Pro - Look for it in Adobe Fonts, or download from Github or Google Fonts
- JetBrains Mono
- Anonymous Pro
- mplus - Also available through Adobe Fonts
Closed Source
- SF Mono (Apple) - Installed on macOS systems but only available in Terminal and Xcode by default. You can download and install it "proper" from Apple, or get the ligaturized version on Github.
- Operator - from Hoefler&Co. Beautifully designed typeface for people who write code.
VSCode Color Themes
Outside of the themes that ship by default with VSCode, here's my personally curated collection of 3rd party color themes.
- Tomorrow and Tomorrow Night
- Base16 Themes (large collection)
- Night Owl
- Nord
- Cobalt2
- Monokai Pro - the only one here that isn't free. Very nice though. Includes icon set.
Javascript Plugins and Libraries
There are tons of javascript plugins and libraries to add all sorts of functionality to your web sites. Some have to be paired with jQuery, and some can function on their own. Here are a few useful and popular plugins:
Plugin/Library | Is jQuery required? | Description |
Lightbox | Yes | Classic image popup effect |
Fancybox | Yes | Lightbox, but different style of animation. A better alternative to Popup js |
Swiper | No | Interactive carousels and slideshows. Highly customizable, highly recommended. |
Micromodal | No | Keyboard friendly modal dialogs |
Waypoints | No | Trigger actions based on scroll position |
ScrollTrigger | No | Same as Waypoints |
Magic Grid | No | Masonry layout. Maybe more modern and performant than Masonry js? |
scrollTo | Yes | Animate scrolling the viewport to a specific element or position |
HTML Entities ⤒
How do I put quotes between quotes without closing my quotes?!
HTML code obviously uses a handful of characters that have special meanings. < >
for tags, ""
for attributes, etc.
But what happens when you want to literally display those characters on your web page, when they would otherwise be interpreted as code? And what about symbols and characters that we don't have keyboard keys for, like accented letters, special currencies, or greek letters?
Every unicode character has a code number, and many of them have an abbreviated name. These are called HTML Entities, or character references. Instead of typing the character that you want directly in your code, you use the named or numbered reference to that symbol.
An ampersand &
tells the browser you're entering a character reference, and the reference terminated with a semicolon ;
.
For example, this doesn't display the way you probably want in a browser:
<p>Only one of these spaces will show up.</p>
But this does.
<p>But these spaces will.</p>
Here are the symbols you may need to "escape" when you want them to display rather than be interpreted as code. I threw in a few other common ones as well.
Symbol | Name | Entity | Number |
non-breaking space | |
  |
|
& | ampersand | & |
& |
< | less than | < |
< |
> | greater than | > |
> |
" | straight double quote | " |
" |
' | apostrophe | ' |
' |
© | copyright symbol | © |
© |
– | en dash (you can just type this) | – |
– |
— | em dash | — |
— |
“ | left double quote | “ |
“ |
” | right double quote | ” |
” |
Here is a very useful complete character reference from the W3C, and more information on Wikipedia.
Useful Mac Apps ⤒
Type | App | Notes |
Application launchers + power tools | Alfred | Powerful and user friendly application launcher. Spotlight + web search + app integrations in one search bar. Global keyboard shortcuts. Create custom workflows to speed up repetitive tasks. |
Quicksilver | Very similar feature set to Alfred. Open source. Uses an object -> action -> arguments setup that is less intuitive at the start, but more customizable. This app becomes more useful the further you dig into its extensive settings. | |
BetterTouchTool | Primarily, this is a tool for custom trackpad and mouse gestures, but this app can do so much more. This app has a positively overwhelming set of custom actions, and even bundles window snapping and an iOS remote control for your computer!. | |
TextExpander | Advanced autocomplete and text replacement across your whole mac. Great for situations where you type similar strings of text very often (e.g. email templates). | |
Menu bar sanity | Bartender | Organize and hide menu bar icons. Very polished. |
Vanilla | Same as Bartender, but cheaper simpler. | |
Backup | SuperDuper! | Local cloning and bootable backups. Don't let the lack of flashy web site fool you, this app is very much under active development. Simple UI and backups that just work. |
Carbon Copy Cloner | Local cloning and bootable backups. Similar feature set to SuperDuper! | |
Backblaze | Affordable online backup with unlimited storage. Native mac app is a big plus. 30 day retention policy for deleted files. Does not back up network shares. | |
Crashplan | Affordable online backup with unlimited storage. Allows backup of network shares and can retain deleted files indefinitely. Client app runs on java which is... not ideal. | |
Window snapping | Moom | |
Magnet | ||
Divvy | ||
Spectacle | ||
BetterSnapTool | Highly customizable. All of this app's functionality is included as part of BetterTouchTool. | |
Hard drive utilities | DaisyDisk | Beautiful, intuitive visual chart to quickly see what's taking up space on any mounted disk. |
Blackmagic Disk Speed Test | Test the performance of any mounted disk. | |
Keyboard shortcuts | CheatSheet | Hold CMD key for a list of the current app's available keyboard shortcuts. |
Activity and battery monitors | iStat Menus | Customizable menu bar activity monitor. Also includes weather and clock widgets. Integrates closely with Bartender. |
coconut Battery | iStat has battery statistics, but this app will also show the battery health and status of connected iOS devices. | |
Calculators | Soulver | Calculator crossed with a spreadsheet. Hard to explain but very cool. |
Spotlight | Calculator and unit conversion built in! | |
Do not disturb | Muzzle | Automatically turns on do not disturb to silence notifications while screensharing or presenting. |
App management | AppCleaner | For uninstalling apps and scooping up their related files. |