← Back to Web Development

Web Development Glossary

Key terms from the Web Development course, linked to the lesson that introduces each one.

5,060 terms.

#

`:active`
Applies the moment the user presses down on the element, before releasing.
Lesson 125Pseudo-Classes: :hover, :focus, :activeLesson 510Triggering Transitions with State Changes
`:focus`
Activates when the element receives keyboard focus (usually by pressing Tab) or is clicked.
Lesson 125Pseudo-Classes: :hover, :focus, :activeLesson 510Triggering Transitions with State Changes
`:hover`
Triggers when the user's mouse cursor is *over* the element (hovering).
Lesson 125Pseudo-Classes: :hover, :focus, :activeLesson 510Triggering Transitions with State Changes
`.arrayBuffer()`
– Reads the body as raw binary data (returns an ArrayBuffer)
Lesson 850Request Body MethodsLesson 856Response Body Methods
`.blob()`
– Reads the body as binary data (returns a Blob object)
Lesson 850Request Body MethodsLesson 856Response Body Methods
`.formData()`
– Parses the body as form data (returns a FormData object)
Lesson 850Request Body MethodsLesson 856Response Body Methods
`.json()`
– Parses the body as JSON and returns a JavaScript object
Lesson 850Request Body MethodsLesson 856Response Body Methods
`.text()`
– Reads the body as plain text (a string)
Lesson 850Request Body MethodsLesson 856Response Body Methods
`<footer>`
Footer information like copyright, links, contact details
Lesson 998Document Structure: Header, Nav, Main, FooterLesson 1067HTML5 Landmark Regions
`<header>`
The introductory content, typically containing site branding and top-level navigation
Lesson 998Document Structure: Header, Nav, Main, FooterLesson 1067HTML5 Landmark Regions
`<main>`
The primary content of the page (there should be only one per page)
Lesson 998Document Structure: Header, Nav, Main, FooterLesson 1067HTML5 Landmark Regions
`Access-Control-Allow-Origin`
header is how the server tells the browser, "Yes, this origin is allowed to read my response.
Lesson 863Access-Control-Allow-Origin HeaderLesson 864Credentials and CORS
`animationend`
– Fires when an animation completes naturally
Lesson 527Animation Events in JavaScriptLesson 742Animation and Transition Events
`animationiteration`
– Fires each time a looping animation restarts (except the first iteration)
Lesson 527Animation Events in JavaScriptLesson 742Animation and Transition Events
`animationstart`
– Fires when an animation begins (after any `animation-delay`)
Lesson 527Animation Events in JavaScriptLesson 742Animation and Transition Events
`aria-atomic="false"`
(default): Only changed content is announced
Lesson 1027aria-atomic and aria-relevantLesson 1113aria-atomic for Complete Updates
`aria-labelledby`
when you genuinely have a visual design constraint (like icon-only buttons in a tight toolbar) but want to avoid creating divergent experiences.
Lesson 1135When NOT to Use Visually Hidden ContentLesson 1177ARIA Attributes for Tab Components
`aria-live="off"`
(or removing the attribute) turns off announcements entirely.
Lesson 1112aria-live Attribute ValuesLesson 1208Live Region Strategies
`auto-fit`
creates tracks only for existing items, then *collapses* any empty ones to zero width.
Lesson 337Auto-Fill vs Auto-Fit: When to Use EachLesson 368Responsive Grid Without Media Queries
`border-color`
sets the border hue using any color format you've learned (keywords, hex, RGB, HSL):
Lesson 199Border Width, Style, and ColorLesson 542Properties That Trigger Repaint
`console.warn()`
Warnings that deserve attention (like low battery alerts)
Lesson 2186Console.log() and Basic Output MethodsLesson 2244console.warn and console.error
`dragenter`
Fires when a dragged element enters the drop zone
Lesson 739Drag and Drop EventsLesson 2677The dragenter and dragover Events
`dragover`
Fires continuously while hovering over the drop zone (must call `preventDefault()` to allow dropping)
Lesson 739Drag and Drop EventsLesson 2677The dragenter and dragover Events
`ease-in-out`
– Similar to `ease`, but with more pronounced slow starts and ends.
Lesson 504The transition-timing-function PropertyLesson 519The animation-timing-function
`event.code`
tells you the *physical key location* on the keyboard, regardless of keyboard layout or modifiers.
Lesson 732KeyboardEvent Properties: key, code, and ModifiersLesson 751Keyboard Event Properties: key, code, and keyCode
`event.currentTarget`
the element where the **listener is attached** (the element running the event handler)
Lesson 722Event Target vs currentTargetLesson 749event.target vs event.currentTarget
`event.target`
the element where the event **originated** (the actual element clicked, typed into, etc.
Lesson 722Event Target vs currentTargetLesson 749event.target vs event.currentTarget
`fallback`
A middle ground: brief blocking period (~100ms), then show fallback.
Lesson 567The font-display PropertyLesson 1272The font-display Property Overview
`false`
No source maps (production default when unspecified).
Lesson 1395Source Maps for DebuggingLesson 1798Fallback Behavior for New Pages
`image`
A representative image URL (required by Google for rich results)
Lesson 1858Article Schema for Blog PostsLesson 1859Product Schema for E-commerce
`initial-scale=1.0`
sets the starting zoom level to 100% (one CSS pixel equals one device pixel)
Lesson 83Viewport Configuration for Responsive DesignLesson 1829The Viewport Meta Tag
`Lax`
Cookie sent with top-level navigation (clicking links) but not with cross-site POST requests.
Lesson 1597Secure and SameSite Cookie FlagsLesson 2931Secure Cookies: Secure and SameSite Flags
`linear`
– The animation moves at a constant speed from start to finish.
Lesson 504The transition-timing-function PropertyLesson 519The animation-timing-function
`loading="auto"`
(or omitting the attribute entirely) leaves the decision to the browser.
Lesson 1251Eager vs Lazy vs Auto LoadingLesson 1952Native Image Lazy Loading with loading="lazy"
`loading="eager"`
explicitly tells the browser to download the image immediately, regardless of where it appears on the page.
Lesson 1251Eager vs Lazy vs Auto LoadingLesson 1952Native Image Lazy Loading with loading="lazy"
`loading="lazy"`
tells the browser to wait before downloading the image until it's needed (typically when it's about to enter the viewport).
Lesson 1251Eager vs Lazy vs Auto LoadingLesson 1952Native Image Lazy Loading with loading="lazy"
`localStorage`
Data persists indefinitely until explicitly deleted (like a permanent sticky note)
Lesson 770The Web Storage APILesson 1569Token-Based Authentication Flow
`method`
The HTTP method to use, typically `GET` or `POST` (remember these from earlier lessons!
Lesson 91The <form> Element and Form SubmissionLesson 831The Request Object and Request Configuration
`nowrap`
Collapses whitespace but prevents wrapping—text stays on one line
Lesson 175White Space and Text WrappingLesson 271flex-wrap: Controlling Line Breaking
`onsuccess`
event fires when the connection is ready to use, giving you access to the database through `event.
Lesson 784Opening a Database ConnectionLesson 795Error Handling and Success Callbacks
`optional`
Ultra-brief blocking (~100ms), then the browser decides whether to use the custom font based on connection speed.
Lesson 567The font-display PropertyLesson 1272The font-display Property Overview
`patternMismatch`
True when the value doesn't match the `pattern` attribute's regex.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`plugins`
Lets you add official or third-party Tailwind plugins for extra utilities.
Lesson 607Tailwind Configuration FileLesson 1372The vite.config.js File
`rangeOverflow`
True when a number exceeds the `max` attribute.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`rangeUnderflow`
True when a number is below the `min` attribute.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`requestIdleCallback`
lets you queue non-essential work to run only when the browser has spare time, typically during those brief moments between frames when nothing urgent needs attention.
Lesson 1988Using requestIdleCallback for Non-Critical WorkLesson 2074Deferring Non-Critical Work
`response.ok`
A boolean that's `true` if the status code is in the 200–299 range (success), `false` otherwise.
Lesson 828The Response Object: Properties and Status HandlingLesson 854Response Status and StatusText
`response.statusText`
A human-readable message corresponding to the status code (e.
Lesson 828The Response Object: Properties and Status HandlingLesson 854Response Status and StatusText
`role="combobox"`
on the input/button that triggers the dropdown
Lesson 930Select and Combobox PatternsLesson 931Autocomplete and Search Patterns
`SameSite=None`
Allows cookies to be sent with all cross-site requests.
Lesson 804SameSite Attribute for CSRF ProtectionLesson 2913SameSite Cookies and CSRF Protection
`sessionStorage`
Data disappears when the browser tab closes (like a temporary notepad)
Lesson 770The Web Storage APILesson 1569Token-Based Authentication Flow
`step`
How much the value changes when using arrows (default is `1`)
Lesson 94Number and Range InputsLesson 1024aria-current: Indicating Active Items
`stepMismatch`
True when a number doesn't align with the `step` attribute (e.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`stretch`
(default) — Items expand to fill the container's cross-axis height/width.
Lesson 259Cross Axis Alignment with align-itemsLesson 278align-content: Multi-Line Cross Axis Distribution
`submit`
fires when a form is submitted (button click or Enter key)
Lesson 733Form Events: submit, change, inputLesson 766Delegating Form Events
`swap`
Show fallback text immediately, then swap in the custom font when ready.
Lesson 567The font-display PropertyLesson 1272The font-display Property Overview
`toLocaleString()`
uses built-in locale-aware formats without memorizing tokens:
Lesson 2742Luxon: Formatting and LocalizationLesson 2757The toLocaleString Family of Methods
`tooLong`
True when the value exceeds `maxlength` (only possible programmatically, since browsers block typing past the limit).
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`tooShort`
True when the value is shorter than `minlength`.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`typeMismatch`
True when the value doesn't match the input's type (e.
Lesson 903Validity Properties ExplainedLesson 913Validity State Properties
`width=device-width`
sets the page width to match the device's actual screen width (not a fake 980px)
Lesson 83Viewport Configuration for Responsive DesignLesson 378The Viewport Meta TagLesson 1829The Viewport Meta Tag
10-100x faster
than JavaScript bundlers on real-world projects.
Lesson 1400esbuild: The Speed ChampionLesson 1403Turbopack and the Rust Wave
204 No Content
Resource updated successfully, but the server returns no body (more efficient when the client already knows the result)
Lesson 1485PUT: Replacing ResourcesLesson 1487DELETE: Removing ResourcesLesson 14882xx Success Status CodesLesson 1494Status Code Response Bodies

A

AAA level
(stricter): **7:1** for normal text, **4.
Lesson 186Color Contrast and Readability
Abort the network request
via `AbortController.
Lesson 2722Upload Cancellation and Cleanup
Aborted
Something failed (fires `onerror` or `onabort`)
Lesson 788Transactions: Read, Write, and Lifecycle
About page
Every 86400 seconds/24 hours (rarely changes)
Lesson 1802Content Freshness vs Build Time Trade-offs
Above-the-fold content
hydrates immediately (visible on page load)
Lesson 1751Progressive Hydration
Above-the-fold images
The hero image or logo should load immediately (use `loading="eager"` or omit the attribute)
Lesson 1250The loading='lazy' Attribute
Absolute expiration
Hard cutoff regardless of activity (for sensitive operations)
Lesson 1570Session Storage and Management
Absolute positioning
anchors an element relative to its **nearest positioned ancestor** (an ancestor with `position: relative`, `absolute`, or `fixed`).
Lesson 221Fixed vs Absolute Positioning
absolute units
measurements that always represent the same physical or screen size, regardless of parent elements or user settings.
Lesson 154Absolute Units: px, pt, cm, mm, inLesson 168Font Size: Absolute and Relative Units
Accelerates time-to-interactive
Browser focuses on what's immediately visible
Lesson 1951What is Lazy Loading and Why It Matters
Accept
Tells the server what format you want back
Lesson 1500Setting Request Headers with Fetch
Accept-Encoding
header is your browser's way of saying "I can digest these compression formats.
Lesson 2134Content-Encoding and Accept-Encoding Headers
Accept-Language header or navigator.languages
(browser/system settings)
Lesson 2502Fallback Chains for Locale Resolution
Accepted categories
Verify their cookies appear and scripts execute
Lesson 2974Testing and Auditing Cookie Consent
Accepts permission requirements
as props (e.
Lesson 1632Component-Level Access Control
Accessibility barriers
for screen readers navigating malformed structure
Lesson 1446Why Lint HTML? Catching Errors Early
Accessibility Insights
includes a "Tab Stops" feature that numbers elements as you tab
Lesson 1053Testing Tab Order Without a Mouse
Accessibility pane
(often alongside Computed, Layout, and Event Listeners tabs).
Lesson 2184Accessibility Tree Inspection
accessibility tree
the structure assistive technologies use to navigate your page—while keeping them visually present.
Lesson 1023aria-hidden: Removing from Accessibility TreeLesson 2184Accessibility Tree Inspection
Accessibility violations
Missing `alt` text, improper heading hierarchy, inadequate ARIA labels
Lesson 1446Why Lint HTML? Catching Errors Early
Accessible Rich Internet Applications
.
Lesson 1012What is ARIA and When Do You Need It?
Accessible to all developers
Everyone understands `font-weight`
Lesson 1290Standard Properties vs Variation Settings
Accordion-style expansion
For navigation menus, expanding sections inline (without overlays) can feel more intuitive than trying to maintain desktop-style flyouts.
Lesson 1171Mobile-Friendly Dropdown Patterns
Action buttons
Add visible or visually-hidden buttons near draggable items (e.
Lesson 1207Drag and Drop AccessibilityLesson 2352Notification Actions and Click Handling
Action-oriented
Use verbs like "Learn," "Discover," "Get," or "Find"
Lesson 1826The Meta Description Tag
Action-Oriented Labels
Use "Continue with Google" or "Sign in with GitHub" rather than just "Google"—makes the action explicit.
Lesson 1624Social Login UI Patterns
Actionable when possible
"We're aware of the issue and working to fix it.
Lesson 1680Server Error Messages (5xx)
Activation phase
Once all tabs close (or `skipWaiting()` is called), the new service worker activates and runs cleanup
Lesson 2423Precache Update Flow
Activation state
Current phase in the lifecycle
Lesson 2238Service Worker Registration and Lifecycle
Active maintenance
Recent commits and security patches
Lesson 1626OAuth Libraries and Security Best Practices
Active Mixed Content
(scripts, stylesheets, iframes, XHR/fetch requests) is **blocked automatically**.
Lesson 2928Mixed Content: Blocking and Warnings
Active use
– Percentage rollouts, A/B testing, targeting
Lesson 2828Flag Lifecycle and Technical Debt
Activity feeds
Social updates, notifications
Lesson 1117Log Role for Sequential Updates
Actual value
(hex codes, pixel values)
Lesson 1368Theme Documentation and Design Tokens
Actual vs. Target
Bars for actual values, Line for goals
Lesson 2647Recharts Composition Patterns
Add `loading="lazy"`
to the actual image
Lesson 2034Native Lazy Loading with Placeholders
Add a new class
that contains the `background-image` CSS rule
Lesson 1256Lazy Loading Background Images
Add before animation
Set `will-change` just before animating, then remove it afterward:
Lesson 2596The Composite Layer Strategy
Add complexity gradually
larger screens get *additional* rules, not replacement rules
Lesson 380Mobile-First Philosophy
Add the domain
to your deployment platform's settings
Lesson 1812Custom Domains and DNS
Add the loaded class
when the element becomes visible
Lesson 1956Lazy Loading Background Images
Add timing delays
before removing toasts from the DOM—give screen readers time to announce before the element disappears (typically 150-200ms minimum after visual dismissal).
Lesson 1119Toast Notification Patterns
Add to home screen
capabilities require HTTPS
Lesson 2933Service Workers Require HTTPS
Add variable font support
Use `@supports` to override with variable fonts only where supported
Lesson 1292Browser Support and Fallbacks
Adding
resources (`add()`, `addAll()`, `put()`)
Lesson 2386Service Worker Cache API Fundamentals
Adding elements
After editing HTML or duplicating, new elements appear immediately in the rendered page.
Lesson 2178Adding and Removing Elements
Additive changes first
Add new object stores/indexes without removing old ones
Lesson 796IndexedDB Wrappers and Best Practices
Adjacent Sibling (`+`)
Selects *only* the very next sibling immediately following the element
Lesson 124Combinators: Adjacent and General Sibling
Adjusting alignment
Fine-tune positioning when an element needs to break out of its normal flow slightly.
Lesson 149Negative Margins
Adjusting grid layouts
when optional sections have no data
Lesson 453:empty for Conditional Content Display
Admin
Full system access, user management, configuration
Lesson 1628Role-Based Access Control (RBAC) Fundamentals
Adobe Fonts
(formerly Typekit) offers variable fonts to Creative Cloud subscribers.
Lesson 581Finding and Loading Variable Fonts
Advanced easing
Custom bezier curves, bounce, elastic effects beyond CSS's limited easing functions
Lesson 2546GSAP Overview and Why Use It
After 60 seconds
The *next* user still gets the cached version, but triggers a background rebuild
Lesson 1796Configuring Revalidation Intervals
After data loads
– When resource-specific permissions arrive from the API
Lesson 1639Permission Checking Fundamentals
After demonstrating value
Let users experience your app first
Lesson 2346Permission Best Practices and Timing
After explicit opt-in
Show a custom UI explaining benefits *before* triggering the browser's permission prompt
Lesson 2346Permission Best Practices and Timing
After generation
The newly-generated page is cached as a static file for all future visitors
Lesson 1789Fallback Pages and On-Demand Generation
After meaningful interaction
User completed a task (searched products, read an article, created something)
Lesson 2360Strategic Prompt Timing
Age Gates
are the first line of defense.
Lesson 2961Children's Privacy and Age Verification
AggregateRating
schema markup that tells search engines exactly what people think about your product or service.
Lesson 1863Review and Rating Schema
Aggregation
Combine nearby values at certain zoom levels
Lesson 2612SVG Performance Considerations
Aggressive minification
Removes whitespace, shortens variable names
Lesson 1393Development vs Production Mode
Airplane Mode
provides a true system-level offline test.
Lesson 2332Testing Offline Experiences
Alert
Assertive, interrupts immediately → "Connection lost.
Lesson 1116Alert Role for Urgent Messages
Alert you immediately
when performance drops below thresholds
Lesson 1927Performance Monitoring Services
ALIAS/ANAME
Like CNAME but works for root domains
Lesson 1812Custom Domains and DNS
Aliases
let you rename fields in the response so they don't collide.
Lesson 1527Aliases and FragmentsLesson 1534Aliases for Multiple Queries
Align items
vertically or horizontally without complex positioning tricks
Lesson 253What is Flexbox and Why Use It
Alignment tricks
Use `align-items: center` to keep labels vertically centered with taller inputs like textareas, and `justify-content: space-between` to push labels and inputs to opposite ends if needed.
Lesson 302Form Layouts with Flexbox
All caches
Right-click "Cache Storage" and choose "Delete All"
Lesson 2439Clearing Cache Storage
All dependencies audited
for known XSS vulnerabilities
Lesson 2906XSS Prevention Checklist
All heading levels
(h1–h6) with actual content, not just "Heading 1"
Lesson 594Documentation and Type Specimens
All storage is cleared
once the private session ends—nothing carries over to normal browsing
Lesson 781Privacy Modes and Storage
Allocates 200px
to the first column (fixed)
Lesson 328Mixing fr Units with Fixed Sizes
Allow
Explicitly permits access (useful for allowing specific files within a disallowed directory)
Lesson 1873Robots.txt Fundamentals
Allow or redirect
render the page if authorized, otherwise redirect to a login or error page
Lesson 1631Route Protection with Role Checks
Allowlist approach
Store valid refresh tokens in a database with user ID and expiration.
Lesson 1613Refresh Token Revocation
alpha channels
when you want transparent backgrounds but solid text, or vice versa.
Lesson 184Alpha Transparency and OpacityLesson 192Background Color and Transparency
ALPN
(Application-Layer Protocol Negotiation) during the TLS handshake to determine which HTTP version to use.
Lesson 2130Detecting and Leveraging HTTP/2 and HTTP/3
Already loaded
System fonts (Arial, Georgia) need no preloading
Lesson 1295When to Preload Fonts vs When Not To
Already-compressed formats
(JPEG, PNG, MP4): Little to no benefit—don't bother
Lesson 2132Gzip Compression AlgorithmLesson 2135What to Compress and What Not to Compress
Also dangerous
An attacker who can control strings passed to `eval()` can execute arbitrary code.
Lesson 2853CSP Source Keywords: 'self', 'unsafe-inline', 'unsafe-eval'
Alt Attributes
Rules ensure every `<img>` has an `alt` attribute.
Lesson 1449Accessibility Rules in HTML Linters
Alt+S
is safer than just **S** because the latter would interfere with typing.
Lesson 1096Keyboard Shortcut Handlers
Always call `event.preventDefault()`
in the drop handler, or the browser will try to navigate to the dropped file instead of letting your code handle it.
Lesson 2678The drop Event and DataTransfer
Always start here
These properties are:
Lesson 1290Standard Properties vs Variation Settings
Always Update Critical Assets
Lesson 2385Lifecycle Best Practices
Always-on server instances
(EC2, DigitalOcean droplets, traditional VPS)
Lesson 1728Infrastructure and Hosting Requirements
Ambiguous times
When clocks "fall back" (3:00 AM → 2:00 AM), times between 2:00 and 3:00 occur *twice*.
Lesson 2734Daylight Saving Time Edge Cases
Analytics
Google Analytics, tracking user behavior
Lesson 2966Essential vs Non-Essential Cookies
Analytics Crawlers
Google Analytics, SEMrush, and other marketing tools need to read page content to track conversions and user paths.
Lesson 1759Marketing and Landing Pages
Analytics/Performance
Measure traffic, user behavior, site performance
Lesson 2969Granular Cookie Category Controls
Analytics/tracking scripts
`Network-Only` — not critical, and old data is worthless.
Lesson 2394Choosing the Right Strategy per Resource
Analyze bundles
– understand what code is where in your build reports
Lesson 1420Chunk Naming and Output
Analyze content similarity
Compare keywords, titles, or descriptions
Lesson 1787Related Content and Computed Fields
Analyze offline
using specialized tools
Lesson 2210Export and Analyze HAR Files
Ancestor
any node above (parent, grandparent, etc.
Lesson 663The DOM Tree Structure
Ancestor filtering
Toggle "Ancestors" to see if parent elements are interfering with event flow
Lesson 2185Event Listeners Panel
Angular
Angular's CLI includes template linting via `@angular-eslint`
Lesson 1450Linting HTML in Templates and Components
Animates anything
Not just CSS properties—SVG attributes, canvas values, JavaScript objects
Lesson 2560GSAP vs CSS Animations
Animations
Elements moving without proper transforms
Lesson 1895Cumulative Layout Shift (CLS) Explained
Annotations
Call out specific data points with explanatory text
Lesson 2608SVG Text and Labels in Charts
Announce it immediately
using `aria-live` or role attributes
Lesson 1120Form Validation Announcements
Announce zero results
Users need to know when nothing matched
Lesson 1122Search Result Announcements
Announcement order
Does content announce in a logical sequence?
Lesson 1099Why Screen Reader Testing is Essential
Anonymous tracking
collects data with *no identifiers whatsoever*.
Lesson 2980Anonymous vs Pseudonymous Tracking
Any conceptual entity
`/search`, `/dashboard`, `/settings`
Lesson 1471Resources and Resource Identifiers
ApexCharts
delivers feature-rich, modern charts with extensive built-in interactivity—zooming, tooltips, drill- downs—out of the box.
Lesson 2643Overview of Popular Charting LibrariesLesson 2649Updating Charts with Live Data
API Access
Your app uses the token to call APIs on the user's behalf
Lesson 1615OAuth 2.0 Flow Overview
API Call Duration
Which backend requests are dragging performance down
Lesson 2816Performance Monitoring Integration
API calls
Monitor request frequency during development
Lesson 2250console.count and console.countReset
API data
(feeds, user profiles): `Network-First` or `Stale-While-Revalidate` — needs to be current but should have offline fallback.
Lesson 2394Choosing the Right Strategy per Resource
API gateway
handling authentication and rate limiting
Lesson 1479Layered System Architecture
API Key
For public API access limits and tracking
Lesson 1503Authorization Header Patterns
API keys
or authentication tokens for secure access
Lesson 1781Headless CMS Integration Fundamentals
API or service
hosting the protected data.
Lesson 1616OAuth Roles and Terminology
APIs
expose data and functionality in a standard format (usually REST or GraphQL)
Lesson 1817Decoupling Frontend from BackendLesson 2540Content Negotiation vs Explicit URLs
Apollo Client
shines in large, complex applications.
Lesson 1565When to Use Which Client
App Shell
(HTML, core CSS/JS): `Cache-First` — these rarely change and are essential for the app to render.
Lesson 2394Choosing the Right Strategy per Resource
App Shell Components
are your top priority.
Lesson 2418Precaching Static Assets
Append results
Add new items to the existing list (don't replace)
Lesson 1513Load More Button Pattern
Application → Service Workers
section shows your worker's state, scope, and update status.
Lesson 2414Debugging Workbox in DevToolsLesson 2438Update on Reload and Skip Waiting
Application > Cookies
in DevTools.
Lesson 2236Cookie Management and Debugging
Application menus
contain commands that execute actions within the current page—like "Copy," "Delete," or "Export.
Lesson 1169Navigation Menus vs Application Menus
Application mode
`role="application"` tells screen readers to pass all keyboard events to your JavaScript instead of using their normal document navigation
Lesson 1036ARIA for Application-Like InterfacesLesson 1165Menu and Menuitem Roles
Apply cross-field logic
(end > start)
Lesson 920Custom Validation for Complex Inputs
Apply heavy CSS blur
to make it look soft and intentional
Lesson 2031Blur-Up Technique Implementation
Apply the adjustment
using the `size-adjust` property you learned previously
Lesson 1304Matching Font Aspect Ratios
Apply the initial class
to elements in your HTML
Lesson 1956Lazy Loading Background Images
Applying theme classes
at the root level (like `<body class="theme-brand-a">`) that change which custom properties are active
Lesson 653Multi-Theme Architecture Patterns
Approval Time
| Days/weeks | Instant |
Lesson 2364Installation and Distribution Models
Apps handling media files
like images or audio
Lesson 782What is IndexedDB and When to Use It
Arbitrary values
`w-[247px]`, `w-[80%]`, `w-[50vw]` (exact custom sizes)
Lesson 619Sizing: Width and Height
Arbitrary variants
let you write these one-off conditions directly in your class names using square brackets.
Lesson 642Arbitrary Variants
Archive
network behavior for compliance or auditing
Lesson 2210Export and Analyze HAR Files
ARIA
stands for **Accessible Rich Internet Applications**.
Lesson 1012What is ARIA and When Do You Need It?
ARIA Authoring Practices
guidance for composite widgets.
Lesson 1073Arrow Key Navigation Patterns
ARIA Validity
Linters verify that `role` attributes are valid and that ARIA attributes like `aria-label` or `aria- labelledby` are used correctly and only on elements that support them.
Lesson 1449Accessibility Rules in HTML Linters
ArrayBuffer
represents raw binary data in JavaScript—think of it as a fixed-length container of bytes with no inherent structure.
Lesson 2691Reading Files as ArrayBuffer
Arrow Down/Up
Moves focus between accordion headers
Lesson 1183Keyboard Support for Accordions
Arrow keys move focus
– JavaScript listens for `ArrowUp`, `ArrowDown`, `ArrowLeft`, `ArrowRight`
Lesson 1073Arrow Key Navigation Patterns
Arrow Left
Collapse an expanded node or move to parent
Lesson 1201Tree View Pattern
Arrow Left/Down
Decrease value
Lesson 1205Slider and Range Controls
Arrow Right
Expand a collapsed node or move to first child
Lesson 1201Tree View Pattern
Arrow Right/Up
Increase value
Lesson 1205Slider and Range Controls
Arrow Up/Down
Move between visible nodes
Lesson 1201Tree View Pattern
Article
, **Event**, *and* **LocalBusiness** schemas all at once.
Lesson 1866Multiple Schemas on One Page
Ascent
is the distance from the baseline (where letters sit) to the top of the tallest characters.
Lesson 1302Measuring Font Metrics: Ascent, Descent, and Line GapLesson 1314Matching Fallback Font Metrics
Asian languages
(Chinese, Japanese, Korean):
Lesson 1286Language-Specific Subsetting Strategies
Aspect ratio boxes
using `padding-top` percentage tricks (though modern CSS `aspect-ratio` is cleaner)
Lesson 2027Why Placeholders MatterLesson 2036Choosing the Right Strategy
Assertions
specific metrics like First Contentful Paint < 2s or Total Bundle Size < 300KB
Lesson 2231Lighthouse CI for Continuous Monitoring
Asset Modules
, eliminating the need for separate loaders:
Lesson 1391File and Asset Loaders
Asset transformations
Images get optimized, styles get processed, all transparently
Lesson 1402Parcel: Zero Configuration Bundling
Assets referenced by HTML
directly, not through JavaScript imports
Lesson 1379Public Directory and Static Assets
Assigns 1 part
to column 2 and **2 parts** to column 3
Lesson 328Mixing fr Units with Fixed Sizes
Assume success
and mark the file as complete once upload finishes
Lesson 2720Upload with Optimistic UI Updates
Astro
Islands architecture with zero-JS-by-default, hydrating only interactive components
Lesson 1755Hydration in Different Frameworks
Asymmetric Designs
Decorative elements like diagonal cuts, ribbon corners, or wave patterns don't auto-flip.
Lesson 2526RTL-Specific Edge Cases
async
Order delivery, continue your day, cook **the moment it arrives** (even mid-task)
Lesson 2792async vs defer AttributesLesson 2800Script Loading Best Practices
Async validation
Server-side checks (like username availability) that need complete context
Lesson 918Field-Level vs Form-Level Validation
Asynchronous
Unlike `localStorage`'s synchronous API, IndexedDB operations don't block the main thread, keeping your UI responsive.
Lesson 782What is IndexedDB and When to Use ItLesson 783IndexedDB vs localStorage: Key DifferencesLesson 850Request Body MethodsLesson 1919Performance Observer API
At build time
Generate only your most critical pages (homepage, popular routes)
Lesson 1789Fallback Pages and On-Demand Generation
At least 128 bits
(16 bytes) of cryptographically random data
Lesson 2855Generating Secure Nonces
At the document level
one main footer for the entire page
Lesson 53The <footer> Element
At the same time
CSS, JavaScript, and images all start downloading
Lesson 2168Serial vs Parallel Request Patterns
Atomic CSS
philosophy you learned earlier, but emphasizes pragmatic utilities over truly atomic (one- property) classes.
Lesson 605What is Utility-First CSS
Attacker crafts URL
`https://site.
Lesson 2893Reflected XSS Attacks
Attacker gains access
to cookies, tokens, or performs actions as the victim
Lesson 2893Reflected XSS Attacks
Attempt token refresh
– If using refresh tokens, try obtaining a new access token silently
Lesson 1657Understanding 401 UnauthorizedLesson 1663Token Refresh on 401
Attribute selectors
let you write CSS rules that match elements based on any HTML attribute and its value.
Lesson 122Attribute SelectorsLesson 137Selector Performance ConsiderationsLesson 642Arbitrary Variants
attribution
Context about what caused it (often limited for security)
Lesson 1986Identifying Long Tasks with Performance APILesson 2070The Long Tasks API
Audit before installing
Check `package.
Lesson 2952Post-Install Scripts and Security Risks
Audit Trail
Refresh token usage can be logged server-side, tracking when and where new access tokens are issued.
Lesson 1605Why Refresh Tokens Exist
Audit your actual usage
do you need 20 functions or just 3?
Lesson 2744Tree-Shaking and Bundle Size
Australia
references WCAG in its Disability Discrimination Act
Lesson 991Legal Requirements and Standards Compliance
Authenticate connections
before accepting them—verify user identity
Lesson 881WebSocket Security Considerations
Author bios
at the end of articles
Lesson 52The <aside> Element
Authorization Code
The server redirects back to your app with a temporary code (not a token yet!
Lesson 1615OAuth 2.0 Flow Overview
Authorization Code Flow
(from lesson 1617), scopes are included in the initial authorization request:
Lesson 1619OAuth Scopes and Permissions
Auto Rename Tag
When you change an opening tag like `<div>`, the closing `</div>` updates automatically
Lesson 1462VS Code Extensions for Web Development
Auto-detection
When Parcel encounters an import, it automatically determines the correct loader (CSS, images, TypeScript, etc.
Lesson 1402Parcel: Zero Configuration Bundling
Auto-margin trick
on the button (`margin-top: auto`) pushes it to the bottom
Lesson 305Pricing Table Pattern
Auto-rotation steals control
When content automatically advances every few seconds, users who read slowly, use screen readers, or need extra time to process information may miss content entirely.
Lesson 1187Why Carousels Are Challenging for Accessibility
Automated Accessibility Tools
Lesson 1210Testing Complex Widgets
Automated end-to-end tests
Use tools like Puppeteer to script the update flow—install V1, trigger an update, verify V2 activates, and confirm old caches are removed.
Lesson 2435Testing Service Worker Updates
Automated Tests
Write integration tests that simulate both legitimate and malicious scenarios.
Lesson 2916Testing CSRF Protection
Automated XSS testing
in CI/CD pipeline
Lesson 2906XSS Prevention Checklist
Automatic
The browser manages retry logic, timing, and network detection
Lesson 2333What is Background Sync and Why It Matters
Automatic deployments
on every push
Lesson 1810GitHub Pages
Automatic pausing
when tab is inactive (saves battery!
Lesson 2597requestAnimationFrame for Smooth Timing
Automatic retry
Network timeouts, temporary API failures, or loading errors that might resolve themselves.
Lesson 1673Reset and Recovery Mechanisms
Automatic role
Browsers assign the correct `dialog` role, so screen readers announce it properly
Lesson 1149The <dialog> Element Fundamentals
Automatic scoping
prevents style conflicts without class naming conventions like BEM
Lesson 602CSS-in-JS Philosophies
Automatic staggering
Children animate in sequence without manual delay calculations
Lesson 2567Variants for Complex Orchestration
Automatic updates
Services may optimize files as formats improve
Lesson 561Self-Hosting vs. Font Services
Autonomous elements
stand alone—they're brand-new HTML tags that don't inherit from any existing element (except the base `HTMLElement`).
Lesson 2454Autonomous vs Customized Built-in Elements
AVIF
create dramatically smaller files than JPEG or PNG—sometimes 30-50% smaller—which means faster page loads.
Lesson 424Modern Image Formats with PictureLesson 1246Format Selection Strategy
Avoid
using it for standard axes (`'wght'`, `'wdth'`, `'slnt'`) unless you have no choice—it overrides the entire variation string and doesn't cascade well.
Lesson 1290Standard Properties vs Variation SettingsLesson 1326BEM in HTML: Class Application Patterns
Avoid animating
`width`, `height`, `top`, `left`, `margin`—these force expensive layout recalculations.
Lesson 539Transform Performance Best Practices
Avoid dangerous patterns
Don't use GET requests for state-changing operations
Lesson 2907What is CSRF and Why Frontend Matters
Avoid humor
when the error is serious (data loss, payment failures)
Lesson 1684Tone and Voice in Error Messages
Avoid importScripts()
and its limitations
Lesson 2095Workers with Module Scripts
Avoid it
when the visual order needs to match the HTML order for accessibility—screen readers follow the DOM, not visual placement.
Lesson 322Grid Auto-Flow: row, column, and dense
Avoid location-based names
that tie the block to one place:
Lesson 1321BEM Block Naming
Avoid Over-Granularity
Don't wrap every single component.
Lesson 1669Positioning Error Boundaries in the Component Tree
Avoid over-using it
Each prefetch consumes resources and bandwidth.
Lesson 1962DNS Prefetch for Domain Resolution
Avoid PII When Possible
Personally Identifiable Information (names, emails, addresses, IP addresses) carries heavy legal and ethical weight.
Lesson 2979Minimizing Data Collection
Avoid presentational names
that describe how it looks:
Lesson 1321BEM Block Naming
Avoid reserved names
that could conflict with HTML parsing (e.
Lesson 2447Custom Element Naming Requirements
Avoid sensitive data
Remember, JWTs are encoded (not encrypted)—anyone can decode them.
Lesson 1582Custom Claims and Payload Design
Avoid spaces
Use hyphens (`team-photo-800w.
Lesson 1224Image Source Naming Conventions
Avoid transitioning `all`
in production; specify exact properties for better performance
Lesson 512Common Transition Patterns and Best Practices
Avoid unnecessary alpha channels
If your image doesn't need transparency, use JPEG or a format without alpha support to save bytes.
Lesson 1998PNG: Transparency and Quality
Avoid unnecessary FormData rebuilds
in loops—create once, append multiple items.
Lesson 895FormData Best Practices
Avoids duplication
The visible text serves as the accessible name
Lesson 1020aria-labelledby: Referencing Existing Labels
axe DevTools
(browser extension) automatically scans your page and lists ARIA violations with explanations.
Lesson 1028ARIA Validation and Testing ToolsLesson 1053Testing Tab Order Without a MouseLesson 1098Testing Focus Management
Axis labels
Position text near tick marks using calculated coordinates
Lesson 2608SVG Text and Labels in Charts

B

Backdrop Interaction
Unlike desktop where clicking the backdrop is common, mobile users might accidentally tap it while scrolling.
Lesson 1161Mobile Modal Patterns
backend
(the server) are completely separate concerns that communicate only through a defined interface —the REST API.
Lesson 1474Client-Server SeparationLesson 1817Decoupling Frontend from Backend
Backend teams
can optimize databases, change languages, or refactor logic—without touching the frontend
Lesson 1474Client-Server Separation
Backend-Only Storage
Refresh token stays on the server (in Redis, database).
Lesson 1600Refresh Token Storage Strategy
Background
Regenerates page with fresh data (seconds)
Lesson 1795Stale-While-Revalidate Pattern
Background and borders
of the stacking context element itself (the "canvas")
Lesson 232Stacking Order Within a Context
Background colors
Won't extend to match neighboring columns automatically
Lesson 242Float Layout Limitations
Background Sync API
to queue uploads.
Lesson 2721Background Upload with Service Workers
Background updates
"New messages received," "Connection restored"
Lesson 1707Toast Notification Patterns and Use Cases
Bad
`alt="A woman with brown hair wearing a blue shirt and jeans standing in front of a white brick wall holding a silver laptop computer with a smile on her face"`
Lesson 1147Common Alt Text MistakesLesson 1237Accessibility Considerations with PictureLesson 1676Error Message AnatomyLesson 1677Network Error Messages
Bad (interleaved reads/writes)
Lesson 2063Batch DOM Reads and Writes
Bad practice
Fetching all fields "just in case"
Lesson 1545Best Practices for Query Design
Bad practices
Inline styles instead of CSS, missing semantic elements
Lesson 1446Why Lint HTML? Catching Errors Early
Balanced
"We couldn't save your changes because the email field is empty.
Lesson 1684Tone and Voice in Error Messages
Bandwidth
Users pay for data they don't need
Lesson 1212The Resolution Switching Problem
Bandwidth Consumption
Oversized images waste users' data plans and server bandwidth.
Lesson 1995Why Image Optimization Matters for Performance
Bandwidth Waste
Over-pushing can actually slow down initial render by delaying more critical resources
Lesson 2121HTTP/2 Server Push
Banning patterns
Deprecated components, inline styles in certain contexts
Lesson 1451Custom HTML Linting Rules
Base font size
(body text) scales fluidly
Lesson 408Building a Fluid Type Scale
Base name
Describes the image content (`hero`, `product-photo`, `team-header`)
Lesson 1224Image Source Naming Conventions
Base styles for mobile
means writing your default CSS as if you're designing for a smartphone—no media queries yet.
Lesson 381Base Styles for MobileLesson 389Progressive Enhancement Strategy
Base64 VLQ-encoded
(Variable Length Quantity).
Lesson 2279Source Map File Format and Structure
baseline
is the invisible line that letters "sit" on—the bottom of most lowercase letters (excluding descenders like in *g* or *p*).
Lesson 277align-items: baseline Alignment for TypographyLesson 282flex-basis: Setting Initial Item SizeLesson 2005Progressive vs Baseline Encoding
Baseline comparisons
flag regressions by comparing against previous builds
Lesson 2231Lighthouse CI for Continuous Monitoring
Baseline conversion rate
Tests with very low conversion rates need longer runs
Lesson 2827Statistical Significance and Sample Size
Baseline encoding
saves image data sequentially from top to bottom.
Lesson 2005Progressive vs Baseline Encoding
Basic forensic protection
against casual disk examination
Lesson 1601Token Encryption at Rest
Basic placement
(original size):
Lesson 2624Drawing Images
Basic UI elements
straightforward colors like `white` backgrounds or `black` text
Lesson 180Color Keywords and Named Colors
Batch processing
Use ImageOptim for folders of images before committing
Lesson 2003Compression Tools and Techniques
Battery
Processing large images drains power
Lesson 1212The Resolution Switching Problem
Battery drains faster
processing and resizing huge images
Lesson 2007Responsive Images: Why Resolution Switching Matters
Battle-Tested Strategies
The caching patterns you've learned (cache-first, network-first, stale-while-revalidate) come pre- built, optimized, and debugged by Google's team.
Lesson 2404What is Workbox and Why Use It
BCP 47
specification (Best Current Practice 47).
Lesson 2496Understanding Locales and Language Tags
BDI
means **Bi-Directional Isolate**.
Lesson 78Text Direction and Language
BDO
stands for **Bi-Directional Override**.
Lesson 78Text Direction and Language
Be careful with `_blank`
New tabs can confuse users
Lesson 72Hyperlinks Fundamentals
Be clear and concise
Aim for one sentence when possible.
Lesson 1138Writing Descriptive Alt Text
Be consistent
Don't mix `product-sm.
Lesson 1224Image Source Naming Conventions
Be transparent upfront
about what you track and why
Lesson 2982Building Trust Through Privacy-First Design
Bearer
For authenticated user sessions and OAuth flows
Lesson 1503Authorization Header Patterns
Become fixed
When its top edge would scroll past the viewport's top (0px from the top)
Lesson 222Sticky Positioning Fundamentals
Before rendering user content
Use `DOMPurify` to clean HTML before inserting via `innerHTML`
Lesson 2905Validating and Sanitizing Input
Before storing in localStorage
Strip scripts that could execute when data is retrieved
Lesson 2905Validating and Sanitizing Input
Before URL construction
Encode user input used in query parameters or paths
Lesson 2905Validating and Sanitizing Input
Before user actions
– When deciding to show/enable buttons
Lesson 1639Permission Checking Fundamentals
Before/After Comparison
Record a page load without hints, then with hints enabled.
Lesson 1972Measuring Resource Hint Impact
Before/After Testing
Load a page without `srcset`, note total image KB transferred, then add `srcset` and compare
Lesson 1226Performance Impact of srcset
Behavioral profiling
and personalization
Lesson 2954User Consent Requirements
Below 60
Visible blocky artifacts, use sparingly
Lesson 1997JPEG: When and How to Use It
Below the fold
Fonts used in footers, comments, or sections users won't see immediately
Lesson 1295When to Preload Fonts vs When Not ToLesson 1942Component-Based Code Splitting
Below-the-fold components
hydrate when scrolled into view
Lesson 1751Progressive Hydration
Below-the-fold images
Any image not immediately visible on page load
Lesson 1250The loading='lazy' Attribute
BEM components
encapsulate a UI piece with all its structural styles and variations.
Lesson 1328Utility Classes vs BEM Components
Benefits
Faster development once utilities are established, extreme consistency across a project, smaller CSS bundles (utilities are reused everywhere), and easier maintenance when changes are localized to markup.
Lesson 600Atomic CSS and Utility-First ApproachesLesson 602CSS-in-JS PhilosophiesLesson 2037SVG Basics and Inline vs External
Best
"You don't have permission to view this page.
Lesson 1676Error Message Anatomy
Best of both worlds
SSG + `stale-while-revalidate` serves cached content instantly while updating behind the scenes
Lesson 1727Data Freshness Trade-offs
Best performance (modern browsers)
AVIF first choice, WebP second choice
Lesson 2002Format Selection Decision Tree
Best practices for titles
Lesson 84The <title> Element
Best-effort
Default storage that browsers *may* delete under disk pressure (low space, LRU eviction)
Lesson 2241Storage Quota and Usage Analysis
Beta groups
Test with willing early adopters
Lesson 2823Targeting and Segmentation
Better
"You don't have permission to view this page.
Lesson 1676Error Message Anatomy
Better cache control
You decide expiration headers
Lesson 2051Self-Hosting Third-Party Resources
Better caching efficiency
(one file to cache instead of many)
Lesson 579Variable Font Performance Benefits
Better error handling
Try/catch blocks replace `.
Lesson 796IndexedDB Wrappers and Best Practices
Better error messages
More verbose warnings and stack traces
Lesson 1393Development vs Production Mode
Better for SPAs
Can be dynamically updated without re-rendering DOM
Lesson 1855JSON-LD vs Microdata vs RDFa
Better global reach
Equal performance for users worldwide
Lesson 2156What is a CDN and Why Use One
Better memory efficiency
The browser doesn't choke on massive arrays
Lesson 1507Why Pagination Matters
Better mobile performance
when switching networks (connection migration)
Lesson 2127HTTP/3 and QUIC Protocol
Better organization
All event logic lives in your JavaScript files
Lesson 719Inline vs addEventListener
Better perceived performance
something visible while JS loads
Lesson 1744Hydration vs. Client-Side Rendering
Better progress reporting
Show fine-grained progress across the entire file
Lesson 2717Chunked Upload for Large Files
Better readability
at every screen size, not just at breakpoint widths
Lesson 405Understanding Fluid Typography
Better retention
as trust builds over time
Lesson 2982Building Trust Through Privacy-First Design
Better scalability
– Your API can handle more users
Lesson 1478Cacheability Constraint
Better SEO
Search engines receive fully-formed HTML to index
Lesson 1718What is Server-Side Rendering (SSR)?
Better TBT scores
– Fewer long tasks during initial load means lower blocking time
Lesson 1991Optimizing JavaScript Execution with Code Splitting
Better UX for all
Clear navigation, good contrast, and logical structure help everyone
Lesson 987What is Web Accessibility and Why It Matters
Bidirectional interaction
→ WebSockets with sync pattern
Lesson 883Real-Time Data Patterns
BigQuery
Query the raw dataset for deeper analysis
Lesson 1926Chrome User Experience Report (CrUX)
Blackboxing
tells the debugger to treat certain files or folders as "invisible" during stepping operations.
Lesson 2275Blackboxing Third-Party Code
Blends two images
together with a percentage:
Lesson 484url() and Image Functions
Blink
Used by Chrome, Edge, Opera, and Brave
Lesson 18The Rendering Engine
Bloated JavaScript bundles
– Hundreds of kilobytes of code that could be split or tree-shaken
Lesson 2202Identifying Slow Resources
Block access entirely
to data collection features
Lesson 2961Children's Privacy and Age Verification
Block all forms
`form-action 'none'` (useful for static content sites)
Lesson 2851The form-action Directive
Block axis
Runs vertically (top to bottom by default) — this defines your rows
Lesson 314The Grid Axis: Rows and ColumnsLesson 458Block and Inline Axes
Block or Allow
If the resource violates the policy, the browser blocks it and logs a violation to the console
Lesson 2840How CSP Works in Browsers
Block rendering
if not loaded with `async` or `defer`
Lesson 2047The Performance Cost of Third-Party Scripts
Block-level boxes
in normal flow (your regular `<div>` elements)
Lesson 232Stacking Order Within a Context
Block-level elements
(like `<div>`, `<p>`, `<h1>`) stack vertically, one on top of another.
Lesson 207What is Normal Flow?Lesson 208Block-Level Elements in Normal FlowLesson 210Inline-Block Display
Block, Element, Modifier
three distinct parts that work together to describe your component structure in a self- documenting way.
Lesson 1320BEM Fundamentals: Block, Element, Modifier
Blocking resources
– CSS or synchronous JavaScript that prevents other requests from starting
Lesson 2166Understanding Request Waterfalls
Blocking scripts
– Synchronous resources that freeze page rendering
Lesson 2202Identifying Slow Resources
Blocking time
Resources preventing page interaction
Lesson 2173Measuring and Improving Waterfall Metrics
Blocklist approach
Store only revoked token IDs.
Lesson 1613Refresh Token Revocation
Blocks non-consented scripts
automatically or provides APIs to check consent status
Lesson 2973Consent Management Platforms (CMPs)
Blocks the request
until the page is fully generated server-side, then serves it.
Lesson 1774Fallback Strategies
Blog posts
Every 3600 seconds/1 hour (content rarely changes after publishing)
Lesson 1802Content Freshness vs Build Time Trade-offs
Blogs and Content Sites
Lesson 1776When to Use SSG
Blogs and news sites
with periodic publishing schedules fit naturally.
Lesson 1822When Jamstack Fits Best
Blur
it heavily with CSS to hide pixelation
Lesson 2029Low-Quality Image Placeholders (LQIP)
Blur radius
(optional): How soft the shadow edges are (0 = sharp, higher = softer)
Lesson 176Text ShadowLesson 205Text Shadow
Blur-radius
(optional): Controls how soft or sharp the shadow appears.
Lesson 202Box Shadow Basics
Body copy variations
at different sizes with sample paragraphs
Lesson 594Documentation and Type Specimens
Body text
Typically cap between `20px–24px` for comfortable reading
Lesson 410Preventing Overly Large Text
Bookmarkable content
where users must return to the same language version reliably
Lesson 2540Content Negotiation vs Explicit URLs
Bookmarkable URLs
for specific views
Lesson 975Client-Side Routing Fundamentals
Bootstrap 5
offers RTL support via a separate compiled stylesheet (`bootstrap.
Lesson 2527RTL in CSS Frameworks
Border styles
and corner radii
Lesson 2650Theming and Custom Styles
Border-box
The entire package is guaranteed to be 12 inches.
Lesson 140Content Box vs Border Box
Bottom detail pane
Click any request to see headers, preview, response, timing breakdown, and cookies.
Lesson 2196Network Panel Overview and Interface
Bottom sheets
Menus that slide up from the screen bottom work naturally with thumb reach and feel native on mobile devices.
Lesson 1171Mobile-Friendly Dropdown Patterns
Bottom-Up tab
(below the chart): Groups time by function name, showing which functions consumed the most total time across your recording.
Lesson 2069Identifying Long Tasks in DevTools
Bottom-Up View
Flips the perspective—it groups time by the *leaf* functions (the ones doing the actual work) regardless of how they were called.
Lesson 2220CPU Profiling and Bottom-Up View
Bottom/Right negative margins
pull *following elements* closer to the current element
Lesson 149Negative Margins
Box-sizing fix
Remember that padding adds to width.
Lesson 385Avoiding Horizontal Scroll
Bracket notation
lets you watch dynamic keys or array indices.
Lesson 2272Watching Object Properties and Nested Values
Bracket Pair Colorizer
(or built-in bracket colorization): Color-codes matching brackets so nested code is easier to parse visually
Lesson 1462VS Code Extensions for Web Development
Brand consistency
Your company's signature typeface appears exactly as intended
Lesson 558Introduction to Web Fonts
Breach detection
If both the legitimate user and an attacker try to use different versions of the refresh token, the server can detect suspicious activity and revoke all tokens for that session.
Lesson 1611Token Rotation on Refresh
BreadcrumbList
schema is structured data that explicitly tells search engines about this navigation hierarchy, often resulting in those helpful breadcrumb links appearing directly in Google search results (like "Home > Products > Shoes").
Lesson 1860Breadcrumb Schema for Navigation
Breadcrumbs
(console logs, network requests, UI interactions before the error)
Lesson 2287Error Monitoring Services
Break it down
Even complex inputs eventually submit simple form values.
Lesson 920Custom Validation for Complex Inputs
Breakdown by type
How much localStorage, IndexedDB, Cache Storage, etc.
Lesson 2241Storage Quota and Usage Analysis
Brief, non-interactive content only
if users need to interact, use a popover or dialog instead
Lesson 1204Tooltip Pattern
Broad reach matters most
– You need one codebase serving web, mobile, and desktop users
Lesson 2370When to Choose PWA vs Native
Broadcast Channel API
to send messages between your service worker and all open tabs whenever a cached resource is updated.
Lesson 2411Broadcast Updates for Cache Changes
Broken functionality
JavaScript in old tabs might call APIs the new worker handles differently
Lesson 2377skipWaiting() to Bypass Waiting
Broken roving tabindex
Multiple items remain `tabindex="0"` simultaneously, creating duplicate tab stops.
Lesson 1086Testing Custom Navigation
Brotli (br)
Modern algorithm with better compression than gzip, especially for text files
Lesson 2131Understanding HTTP Compression Basics
Browser
Your window to the web (Chrome, Firefox, Safari)
Lesson 1What is the Internet?
Browser advertises support
The browser sends an `Accept-Encoding` header listing compression algorithms it understands (e.
Lesson 2131Understanding HTTP Compression Basics
Browser caches
the resource along with that timestamp
Lesson 2145Last-Modified Header
Browser caching
Popular fonts (like Google's) might already be cached by visitors
Lesson 561Self-Hosting vs. Font ServicesLesson 1483GET: Retrieving Resources
Browser cleanup
When disk space is scarce, browsers may automatically purge Cache API or even IndexedDB
Lesson 823Persistence and Durability
Browser crashes
Eventually, the tab or browser may run out of memory entirely
Lesson 2107What Are Memory Leaks and Why They Matter
Browser Decision
Stores the file and notes how long it can be reused
Lesson 2141HTTP Caching Fundamentals
Browser decompresses
The browser automatically decompresses the file before using it
Lesson 2131Understanding HTTP Compression Basics
Browser developer tools
can help debug sitemap fetch issues
Lesson 1876Testing and Validating Sitemaps and Robots.txt
Browser DevTools
have built-in accessibility inspectors (Chrome, Firefox, Edge) that show you the accessibility tree —how assistive technologies "see" your page.
Lesson 1028ARIA Validation and Testing ToolsLesson 1063Testing Focus Visibility
Browser DevTools Coverage Tool
Lesson 1974Identifying Critical CSS
Browser DevTools Network Tab
Compare file sizes loaded on different viewport widths
Lesson 1226Performance Impact of srcset
Browser DevTools Performance Tab
lets you record a page load and see the exact JavaScript tasks running during hydration.
Lesson 1756Measuring Hydration Performance
Browser differences
Safari, Chrome Mobile, and Samsung Internet all render differently
Lesson 387Testing on Real Devices
Browser Events
page load, window resize, scroll
Lesson 716What Are DOM Events?
Browser executes
the injected script immediately
Lesson 2893Reflected XSS Attacks
Browser extensions
Look for `chrome-extension://` or `moz-extension://` URIs—often false positives
Lesson 2870Analyzing CSP Violation Reports
Browser Process
The manager—handles the address bar, bookmarks, and coordinates everything
Lesson 17Browser Architecture Overview
Browser renders the page
it reads the HTML and displays it on your screen
Lesson 15Putting It All Together: A Complete Page Load
Browser stores
Cookie saved automatically
Lesson 1568Cookie-Based Authentication Flow
Browser Stores It
Your browser saves that cookie locally.
Lesson 797What Are Cookies and How They Work
Browser support is critical
While modern browsers support logical properties well, legacy browsers (IE11) don't.
Lesson 465When to Use Logical vs Physical Properties
Browser uses cache
The cached version is still valid
Lesson 2145Last-Modified Header
Browser vulnerabilities
XSS attacks can easily grab tokens from URLs
Lesson 1618Implicit Flow and Why to Avoid It
Browser-friendly
Uses standard HTTP, which browsers understand natively
Lesson 1470What is REST and Why It Matters
Browsers
can provide better default behaviors
Lesson 39HTML's Role: Document Structure and Semantics
BrowserStack
let you test on hundreds of real devices remotely through your browser.
Lesson 387Testing on Real Devices
Budget
Cloudflare's free tier vs.
Lesson 2159Popular CDN Providers
Budget for initial load
0KB (lazy-load or require user interaction)
Lesson 1934Image and Media Asset Budgets
Bug fixes are critical
and can't wait for users to close tabs
Lesson 2428The skipWaiting Pattern
Build
The workflow installs dependencies and runs your build command (like `npm run build`)
Lesson 1810GitHub Pages
Build a custom endpoint
that receives reports and stores them in a database:
Lesson 2872Collecting and Monitoring Reports
Build artifacts
Compiled output in `dist/` or `build/`
Lesson 1434Ignoring Files with .eslintignore
Build automation
Use Sharp in your bundler/CI pipeline for consistent optimization
Lesson 2003Compression Tools and Techniques
Build Caching
Cache intermediate build artifacts—processed images, compiled Markdown, transformed data.
Lesson 1788Build Performance with Large Datasets
Build Command
The terminal command that compiles your site.
Lesson 1813Build Configuration
Build hooks
that trigger rebuilds when content changes
Lesson 1781Headless CMS Integration Fundamentals
Build once
Author components using vanilla Custom Elements or a lightweight abstraction like Lit
Lesson 2487Design System Distribution
Build times are acceptable
for your deployment workflow
Lesson 1793Choosing Between Full SSG and Hybrid Approaches
Build-time checks
that fail your CI/CD pipeline if coverage drops below a threshold
Lesson 2536Translation Coverage and Missing Key Detection
Build-time scanning
A plugin or custom script parses your HTML files
Lesson 2865Build Tools and Automatic Hash Generation
Build-time variables
get baked into your static files during the build process.
Lesson 1811Environment Variables
Building a library
Rollup excels at creating clean, tree-shakeable output.
Lesson 1408Choosing the Right Bundler
Building an application
Vite offers the best developer experience with fast HMR and modern defaults.
Lesson 1408Choosing the Right Bundler
Building reusable components
A card component with `padding-block: 1rem; padding-inline: 2rem;` works correctly whether users read left-to-right or right-to-left.
Lesson 465When to Use Logical vs Physical Properties
Builds a tree structure
that mirrors the cascade and inheritance rules of CSS
Lesson 22Parsing CSS into the CSSOM
Built-In Cache Management
Features like cache expiration, size limits, and versioned caching are handled automatically with simple configuration options.
Lesson 2404What is Workbox and Why Use It
Built-in presets
like `"eslint:recommended"` (the official starter set)
Lesson 1429Extending Configurations
Built-in types
`Date`, `RegExp`, `Map`, `Set`, `ArrayBuffer`, `Blob`, `File`
Lesson 2088Structured Clone Algorithm and Data Transfer
Bundle your own code
, but carefully consider whether to bundle third-party scripts.
Lesson 2800Script Loading Best Practices
Bundled and code-split
chunks for optimal loading
Lesson 1380Building for Production with Vite
Bundles JavaScript and CSS
for interactivity and styling
Lesson 1722The SSG Build and Delivery Process
Button clicks
Before executing the click handler
Lesson 1641Checking Permissions Before Actions
Buttons (`<button>`)
perform actions — submit forms, open modals, toggle visibility, or trigger JavaScript functions.
Lesson 1002Buttons vs Links: Choosing Correctly
Buttons with only icons
A `<button>` element is perfectly semantic, but if it contains only an icon (like a magnifying glass), screen readers can't describe its purpose.
Lesson 1033Enhancing Incomplete Native Elements
By class name
(elements sharing characteristics)
Lesson 674Understanding Element Selection
By complex patterns
(using CSS-style selectors)
Lesson 674Understanding Element Selection
By content type
separate sitemaps for products, blog posts, category pages
Lesson 1872Sitemap Index Files for Large Sites
By date
monthly or yearly archives (sitemap-2024-01.
Lesson 1872Sitemap Index Files for Large Sites
By language
different sitemaps for each locale
Lesson 1872Sitemap Index Files for Large Sites
By tag type
(all elements of one kind)
Lesson 674Understanding Element Selection
By unique identifier
(like a street address)
Lesson 674Understanding Element Selection
Bypass for network
Skip the service worker temporarily, letting all requests go directly to the network (essential for debugging cache issues)
Lesson 2238Service Worker Registration and LifecycleLesson 2322Testing Service Workers LocallyLesson 2436DevTools Service Worker Panel

C

C (Chroma)
Color intensity/saturation (0 = gray, higher = vibrant)
Lesson 493LCH and OKLCH: Perceptually Uniform Color Models
Cache Hit Rate
The percentage of requests served from cache.
Lesson 2403Analytics and Cache Performance Monitoring
Cache Hit Rates
Measure how often users get cached pages versus triggering regenerations.
Lesson 1805Monitoring and Debugging ISR
Cache Ignorance
The server doesn't know what's already in the browser cache, potentially pushing resources the client already has
Lesson 2121HTTP/2 Server Push
Cache Key Normalization
CDNs should normalize the `Accept-Encoding` header in cache keys—otherwise you'd get separate cache entries for `gzip, deflate` vs `gzip` vs `gzip, deflate, br`, fragmenting your cache and reducing hit rates.
Lesson 2140Compression and CDN Configuration
Cache Management
You can inspect, update, or clean up cached resources in response to user actions or app state changes.
Lesson 818Cache API Outside Service Workers
Cache Miss Rate
Requests that bypassed cache and hit the network.
Lesson 2403Analytics and Cache Performance Monitoring
Cache responds instantly
with the stored version
Lesson 2154Stale-While-Revalidate Strategy
Cache Size
Monitor how much storage you're consuming.
Lesson 2403Analytics and Cache Performance Monitoring
Cache Storage API
gives service workers direct control over a browser-managed cache separate from HTTP caching.
Lesson 2151Service Worker Cache API
Cache Then Network
strategy is like checking your pantry for dinner ingredients *while* simultaneously ordering fresh groceries for delivery.
Lesson 2392Cache Then Network Strategy
Cache version conflicts
Check if old cache versions are still present
Lesson 2425Debugging Cache Strategies
Cache-Control
is your primary tool.
Lesson 2161Cache Control Headers for CDNs
Cache-Control headers
Set short max-age values for translation files while using ETags for efficient revalidation.
Lesson 2535Managing Translation Updates in Production
Cache-First Strategy
(also called "Cache, falling back to network") checks the Service Worker cache *first* for every request.
Lesson 2152Cache-First StrategyLesson 2153Network-First StrategyLesson 2387Cache-First Strategy
Cacheability Constraint
requires that every response from the server clearly label itself as either *cacheable* or *non- cacheable*.
Lesson 1478Cacheability Constraint
Cacheable
Tools can cache query structures separately from their values
Lesson 1532Query Arguments and Variables
Cached content
Static assets serve from memory at scale without hitting your origin
Lesson 2157CDN Performance Benefits
CacheFirst
checks the cache before making network requests.
Lesson 2408Built-In Caching Strategies
CacheOnly
serves exclusively from cache, never touching the network.
Lesson 2408Built-In Caching Strategies
Caching navigation requests
without fallbacks traps users on broken pages
Lesson 2443Common Service Worker Pitfalls
Calculate
which items should be visible based on scroll position
Lesson 2098Virtual Scrolling Fundamentals
Calculate angles
Convert each data value into a percentage of the total, then multiply by 360° (or 2π radians)
Lesson 2607Creating Pie and Donut Charts
Calculate chunks
Divide the file size by your chosen chunk size (e.
Lesson 2717Chunked Upload for Large Files
Calculate cumulative positions
(item 0 at 0px, item 1 at 0+height₀, item 2 at 0+height₀+height₁, etc.
Lesson 2101Variable-Height Item Virtualization
Calculate dimensions
when you know only one measurement
Lesson 1261Understanding Aspect Ratio in Web Design
Calculate override percentages
to make the fallback match the web font
Lesson 1314Matching Fallback Font Metrics
Calculate the adjustment factor
Divide the web font's ratio by the fallback's ratio
Lesson 1304Matching Font Aspect Ratios
Calculates remaining space
(container width minus 200px)
Lesson 328Mixing fr Units with Fixed Sizes
Calculates specificity
to know which styles win when rules conflict
Lesson 22Parsing CSS into the CSSOM
Calibre
, and **New Relic** provide ongoing surveillance—like having a security camera instead of taking occasional photos.
Lesson 1927Performance Monitoring Services
Call `.focus()` programmatically
after the route transition completes
Lesson 1091Route Change Focus Management
call stack
which function called which, all the way back to the starting point.
Lesson 2191Console.trace() and Stack TracesLesson 2270The Call Stack and Stack Frames
Call Stack panel
shows you the entire chain of function calls.
Lesson 2270The Call Stack and Stack Frames
Call Tree View
Shows the execution flow from top-level functions down to nested calls.
Lesson 2220CPU Profiling and Bottom-Up View
Call-to-action
"Upgrade to Pro" or "Request access from your manager" buttons guide users forward
Lesson 1652Placeholder Content for Unauthorized Users
Calls itself
on each child element
Lesson 712Walking the DOM Tree Recursively
Can it display AVIF
Yes → use `photo.
Lesson 424Modern Image Formats with Picture
Can it display WebP
Yes → use `photo.
Lesson 424Modern Image Formats with Picture
Canada
uses WCAG through the Accessible Canada Act
Lesson 991Legal Requirements and Standards Compliance
Cancel
Stop retrying and return control
Lesson 1694User Feedback During Retries
Cancel all pending requests
immediately using abort controllers or your HTTP client's cancellation mechanism
Lesson 1664Preventing Repeated 401/403 Requests
canonical URL
is the preferred, "official" version of a page that you declare when duplicate or very similar content exists at multiple URLs.
Lesson 1846What is a Canonical URL?Lesson 1850Canonical URLs vs 301 Redirects
Captive Portals
Hotel or coffee shop WiFi that requires login will show as "online" even though you can't reach any external servers yet.
Lesson 1699Limitations of Browser Offline Detection
Captures user choices
(accept all, reject all, customize by category)
Lesson 2973Consent Management Platforms (CMPs)
Capturing form state
before language change
Lesson 2512Handling Language Change in Forms
Card type control
Using `summary_large_image` instead of default `summary`
Lesson 1842Twitter Cards vs Open Graph Fallbacks
Cascade-friendly
You can override them independently
Lesson 1290Standard Properties vs Variation Settings
Categories
Choose what to audit—Performance, Accessibility, Best Practices, SEO, PWA
Lesson 2224Running Lighthouse in Chrome DevTools
Category
Essential, Analytics, Marketing, etc.
Lesson 2972Cookie Policy Pages and Transparency
Category-first
`--color-brand-500`, `--space-md`, `--font-heading-xl`
Lesson 1368Theme Documentation and Design Tokens
CCPA
(California Consumer Privacy Act) mandate explicit consent and disclosure for most cookies beyond strictly necessary ones.
Lesson 2965Cookie Consent Legal Requirements
CDN benefits
Global distribution often means faster delivery
Lesson 561Self-Hosting vs. Font Services
CDN Edge Delivery
Static files can be cached at CDN edge locations worldwide.
Lesson 1723SSG Performance Characteristics
Center content
both horizontally and vertically with minimal code
Lesson 253What is Flexbox and Why Use It
Centering
a single element or group
Lesson 309Flexbox vs Grid Decision
Centralized control
Change one parent's state to trigger animations throughout a component tree
Lesson 2567Variants for Complex Orchestration
Centralized session store
All servers share one Redis/database (adds network overhead and a single point of failure)
Lesson 1575Scalability Considerations
Centralizing theme definitions
in your configuration using the theme function to reference reusable values
Lesson 653Multi-Theme Architecture Patterns
Challenges
HTML becomes more verbose, there's a learning curve for your utility naming system, and it requires discipline to avoid recreating the same utility patterns repeatedly.
Lesson 600Atomic CSS and Utility-First Approaches
Change the image URL
(add a query parameter: `image.
Lesson 1845Social Sharing Best Practices
Change without notice
, potentially introducing performance regressions
Lesson 2047The Performance Cost of Third-Party Scripts
Character encoding declarations
(how text is interpreted)
Lesson 81The <head> Element Structure
Character ranges
(basic ASCII vs.
Lesson 1283What is Font Subsetting
Character widths
(a narrower "a" vs a wider "a")
Lesson 1301Why Fallback Font Matching Matters
Chart.js
is the lightweight champion—simple, canvas-based, and perfect for common chart types without heavy customization needs.
Lesson 2643Overview of Popular Charting LibrariesLesson 2649Updating Charts with Live Data
Chat applications
New messages arrive one at a time
Lesson 1117Log Role for Sequential Updates
Chat widgets
Show a chat icon that loads the full chat library only when clicked
Lesson 2050Script Loading Facades
Check against an allowlist
of permitted extensions
Lesson 2699File Extension Validation
Check application state
– Review the DOM, network requests, and storage at this precise moment
Lesson 2253What Are Breakpoints and Why Use Them
Check authorization
Does the user have permission to view this route?
Lesson 982Route Guards and Navigation Hooks
Check browser console
Framework warnings usually point to the mismatched element
Lesson 1746Hydration Mismatch Errors
Check cache first
using the Cache API
Lesson 2152Cache-First Strategy
Check completion
Hide button if no more data exists
Lesson 1513Load More Button Pattern
Check dependencies
a clean package can still import malicious sub-dependencies
Lesson 2947Reviewing Package Source Code
Check each menu item
against required permissions
Lesson 1654Menu and Navigation Filtering
Check focus visibility
at every step—can you always see where you are?
Lesson 1098Testing Focus Management
Check for context
– Does the alt text make sense with the text before and after it?
Lesson 1146Testing Alt Text with Screen Readers
Check the cache first
for a matching request
Lesson 2386Service Worker Cache API Fundamentals
Check the Console
for violation reports after each page load
Lesson 2881CSP Header Testing and Debugging
Check the parent chain
Walk up the DOM tree from your problem element.
Lesson 235Debugging Stacking Issues
Check timing issues
add small delays if announcements are missed
Lesson 1125Testing Announcements Across Screen Readers
Check WCAG success criteria
(does it meet standards?
Lesson 1038Testing Without ARIA First
Check your analytics first
Look at actual browser usage data from your user base.
Lesson 2495Browser Support and Polyfill Considerations
Check your bundle analyzer
to verify tree-shaking worked
Lesson 2744Tree-Shaking and Bundle Size
Checkboxes
Users can select *multiple* options (like toppings on a pizza)
Lesson 96Checkbox and Radio InputsLesson 897The required Attribute
Checkboxes for selective clearing
Unregistered service workers, localStorage, IndexedDB, cookies, cache storage
Lesson 2242Clear Storage and Testing Fresh States
Chevrons and carets
pointing left or right
Lesson 2521Icons and Visual Elements in RTL
Choose the right variant
Use PNG-8 for simple graphics when smooth transparency isn't critical.
Lesson 1998PNG: Transparency and Quality
Choose your modern replacement
Lesson 244Migrating from Float Layouts
Chrome DevTools Performance Panel
gives you frame-by-frame analysis.
Lesson 1318Testing and Measuring Font-Related CLS
Chunk delivery intervals
how smoothly chunks arrive (gaps create visual stuttering)
Lesson 1740Streaming Metrics
Chunk size matters
Aim for chunks between 20-50KB after compression.
Lesson 1950Code Splitting Trade-offs and Best Practices
Chunked uploading
means dividing a large `File` object into sequential slices using the `Blob.
Lesson 2717Chunked Upload for Large Files
CI/CD automation
Add validation to your build pipeline to catch errors before deployment:
Lesson 1452Integrating with W3C Validator
Circular layouts
Use `cos()` and `sin()` to position items around a circle's circumference.
Lesson 489Math Functions: sin(), cos(), tan(), and Trigonometry
Class declaration
You extend `HTMLButtonElement` instead of `HTMLElement`
Lesson 2453Extending Built-in Elements
Class selectors
Reusable styles for groups of elements (most common)
Lesson 121Basic Selectors: Type, Class, and ID
Classes, attributes, and pseudo-classes
(0,0,1,0) - Moderate power
Lesson 132Specificity Order: Inline, IDs, Classes, Elements
Classes, attributes, pseudo-classes
10 points each
Lesson 135Calculating Specificity in Complex Selectors
Clean edges
The container's padding remains undisturbed
Lesson 279gap: Modern Spacing Between Flex Items
Clean output
No wrapper code bloat—just your functions
Lesson 1401Rollup: The Library Bundler
Clean up old cookies
Remove expired or unused cookies with `removeItem` patterns
Lesson 805Cookie Size Limitations
Clean up on success
Remove successfully sent requests from the queue
Lesson 2401Background Sync for Failed Requests
Cleaner code
Animation logic lives in reusable objects instead of scattered inline props
Lesson 2567Variants for Complex Orchestration
Cleanup
– Eventually stop reading from old storage and remove legacy code
Lesson 1604Migrating Between Storage Strategies
Clear all authentication state
– Remove both access and refresh tokens from storage (cookies, memory, wherever you keep them)
Lesson 1610Handling Failed Refresh Attempts
Clear Branding
Use official brand colors and logos (Google blue, Facebook blue, GitHub black).
Lesson 1624Social Login UI Patterns
Clear categorization
distinguish between strictly necessary, functional, analytics, and advertising cookies
Lesson 2965Cookie Consent Legal Requirements
Clear contracts
Custom element APIs define exactly what properties/attributes each boundary accepts
Lesson 2489Micro-Frontend Architecture Boundaries
Clear documentation
Especially for error handling
Lesson 1626OAuth Libraries and Security Best Practices
Clear exit mechanism
Let editors return to the public view
Lesson 1792Preview Modes for Draft Content
Clear explanation
Tell users exactly what happened: "We couldn't find that page" is better than cryptic codes.
Lesson 1681Not Found and Resource Errors
Clear labels
explaining what each category does
Lesson 2969Granular Cookie Category Controls
Clear messaging
"You don't have permission to access this resource" is better than "Error 403" or technical jargon.
Lesson 1662Handling 403: Access Denied UILesson 1702Offline UI Indicators
Clear object store
Remove all records
Lesson 2235IndexedDB Inspection and Debugging
Clear site data button
The nuclear option that wipes everything checked
Lesson 2242Clear Storage and Testing Fresh States
Clear stored credentials
– Remove invalid tokens from storage to prevent repeated failed requests
Lesson 1657Understanding 401 Unauthorized
Clear the flag
only after successfully refreshing the token or redirecting to login
Lesson 1664Preventing Repeated 401/403 Requests
Clear upload queues
if handling multiple files
Lesson 2722Upload Cancellation and Cleanup
Clear validity
when the relationship becomes valid
Lesson 920Custom Validation for Complex Inputs
Clearfix dance
Every float container needs clearing (those clearfix techniques you learned)
Lesson 242Float Layout Limitations
Clears
all cache storage associated with those workers
Lesson 2440Unregister and Hard Reload
Click any frame
to jump to that function's context.
Lesson 2270The Call Stack and Stack Frames
client
(app) requests access, the **authorization server** issues tokens, and the **resource server** protects and serves the data.
Lesson 1616OAuth Roles and TerminologyLesson 2539Path-Based Locale Routing
Client errors (4xx)
usually mean retrying won't help:
Lesson 1687Understanding When to Retry Network Requests
Client ID
(public identifier) and **Client Secret** (confidential key).
Lesson 1620Social Login Integration Basics
Client initiates
Browser sends a special HTTP request with `Upgrade: websocket` header
Lesson 877WebSocket Fundamentals
Client Secret
(confidential key).
Lesson 1620Social Login Integration Basics
Client stores the token
typically in `localStorage`, `sessionStorage`, or memory
Lesson 1569Token-Based Authentication Flow
Client-side evaluation
means your JavaScript code in the browser fetches flag configurations and decides which features to show.
Lesson 2820Client-Side vs Server-Side Feature Flags
Clients
– How many pages are currently controlled
Lesson 2436DevTools Service Worker Panel
Clipping and scaling
(grab a section of the source image):
Lesson 2624Drawing Images
Cloaking risk
Serving drastically different content to bots versus users violates search engine guidelines— content must be equivalent
Lesson 1881Dynamic Rendering and Bot Detection
Clock dependency
If the server clock is wrong, or the client's clock differs from the server's, caching breaks
Lesson 2143Expires Header
Clone requests
Make copies with small modifications
Lesson 846Creating Request Objects
Clone the template
in your component's constructor or `connectedCallback`
Lesson 2485Templates and Slots Pattern: Reusable Component Markup
Close system matches
(`Helvetica Neue` on macOS/iOS)
Lesson 569Fallback Font Stacks
Close the widget
(hide the element, update state)
Lesson 1083Escape Key Handling
Closed Mode
prevents external access by making the `shadowRoot` property return `null`.
Lesson 2462Open vs Closed Shadow DOM
Closing modals
Focus should return to the element that triggered the modal
Lesson 1087Focus Management Fundamentals
Closure
appears if your function is nested inside another—these are "captured" variables from parent functions
Lesson 2273Using the Scope Panel to Inspect Variables
Closure scope
Variables from outer functions that the current function has access to
Lesson 2273Using the Scope Panel to Inspect Variables
Closures
that unintentionally hold references to large objects
Lesson 2107What Are Memory Leaks and Why They Matter
Cloudflare Pages
Manage through the dashboard under Settings → Environment Variables
Lesson 1811Environment VariablesLesson 1823Jamstack Ecosystem and Platforms
CLS (Cumulative Layout Shift)
Images without dimensions cause layout shifts as they load, destroying your CLS score
Lesson 1995Why Image Optimization Matters for Performance
CLS measures visual stability
how much content unexpectedly moves around as the page loads.
Lesson 1888The Three Core Web Vitals: LCP, FID, and CLS
Cluster
Groups items horizontally with wrapping and equal gaps.
Lesson 1336The Objects Layer: Layout Primitives and Structure
CNAME Record
Points your domain to another domain (common for `www` subdomain)
Lesson 1812Custom Domains and DNSLesson 2160CDN Configuration Basics
Code snippets
the class names or CSS needed to apply each style
Lesson 594Documentation and Type Specimens
Code splitting
divides your JavaScript bundle into multiple smaller "chunks.
Lesson 1939What is Code Splitting and Why It Matters
Code Transformation
Through loaders and plugins, Webpack can transform TypeScript to JavaScript, compile Sass to CSS, optimize images, and much more — all during the bundling process.
Lesson 1387What is Webpack and Why Use It
Cognitive disabilities
Users with conditions affecting memory or attention benefit from clear, consistent layouts
Lesson 987What is Web Accessibility and Why It Matters
Cognitive overload
Automatic motion can be distracting for users with attention disorders or vestibular conditions.
Lesson 1187Why Carousels Are Challenging for Accessibility
Cold starts
measure how long it takes to boot up your dev server from scratch (like turning on a computer).
Lesson 1405Comparing Build TimesLesson 1738Server Response Time
Collapsed or hidden sections
hydrate only when expanded
Lesson 1751Progressive Hydration
Collects
all unique categories/tags across your content
Lesson 1786Taxonomy and Category Pages
Collects metadata
like last modification dates from your data
Lesson 1871Generating Sitemaps Automatically
Color coding
Use amber/yellow for offline (not red—it's not an error, just a status)
Lesson 1702Offline UI IndicatorsLesson 1917Reading Performance Flame Charts
Color Highlight
Shows actual colors inline when you write `#3498db` or `rgb(52, 152, 219)`
Lesson 1462VS Code Extensions for Web Development
Color palettes
for data series, backgrounds, and grid lines
Lesson 2650Theming and Custom Styles
Color scales
For mapping data to color palettes
Lesson 2630Scales: Mapping Data to Visual Properties
Column headers
for day names (Mon, Tue, Wed.
Lesson 1206Date Picker Pattern
Combine `skipWaiting()` with `clients.claim()`
Lesson 2385Lifecycle Best Practices
Combine into Render Tree
→ The browser merges the DOM and CSSOM to create a "render tree" containing only the visible elements with their styles
Lesson 20The Critical Rendering Path
Combine them
Merges structure and style to create a "render tree"
Lesson 18The Rendering Engine
Combine with `object-fit`
to control how images fill their reserved space
Lesson 1270Cumulative Layout Shift (CLS) and Images
Combining Defenses
Layer CSRF protections by using `SameSite` cookies (lesson 2913) alongside token-based verification.
Lesson 2915CSRF Protection in SPAs
Combining sources
Merging data from localStorage, user input, and uploaded files into one request
Lesson 892Creating FormData Without Forms
Combining with report-only
Use `Content-Security-Policy` (enforcing) alongside `Content-Security-Policy-Report-Only` (monitoring)
Lesson 2877Multiple CSP Headers and Policies
Command-line validation
Install `vnu` (the Nu Html Checker, which powers the W3C validator):
Lesson 1452Integrating with W3C Validator
Comment Nodes
(type 8) represent HTML comments (`<!
Lesson 664Node Types in the DOM
Commit
Type a message in the text box at the top and click the checkmark to commit staged changes
Lesson 1468Git Integration and Source Control Panel
Commit the formatted code
to version control
Lesson 1455Installing and Running Prettier
Common chunk splitting
goes further: extracting code shared *across multiple routes* into a separate bundle.
Lesson 1948Vendor and Common Chunk Splitting
Common placeholder techniques
Lesson 2027Why Placeholders Matter
Communicate with servers
Fetch new data in the background (though you haven't learned the details yet)
Lesson 41JavaScript's Role: Adding Interactivity
Community Activity
Check commit frequency, number of contributors, and whether pull requests are reviewed and merged.
Lesson 2946Evaluating Package Health Before Installing
Community packages
like `"eslint-config-airbnb"` or `"eslint-config-standard"`
Lesson 1429Extending Configurations
Community plugins
solve countless other needs, from markdown processing to image optimization to Progressive Web App support.
Lesson 1383Vite Plugins
Compare
different sessions side-by-side
Lesson 2210Export and Analyze HAR Files
Compare competitors
by running parallel tests against their sites
Lesson 1927Performance Monitoring Services
Compare contexts, not elements
If Element A (with `z-index: 9999`) won't appear above Element B (with `z-index: 1`), check their *parents*.
Lesson 235Debugging Stacking Issues
Compare it
against the route's required roles
Lesson 1631Route Protection with Role Checks
Compare sources
View the initial HTML source vs.
Lesson 1746Hydration Mismatch Errors
Comparing multiple objects
with the same structure (like API responses)
Lesson 2188Console.table() for Structured Data
Comparison charts
Product features, pricing tiers
Lesson 120When to Use Tables vs. CSS Grid
Compensating for padding
Pull an element back into alignment after padding pushed it away.
Lesson 149Negative Margins
Complete control
over every visual element and interaction
Lesson 2642D3 vs Higher-Level Charting Libraries
Completing multi-step processes
After submitting a form step, focus should move to the next step or confirmation message
Lesson 1087Focus Management Fundamentals
Completion states
"20 results loaded"
Lesson 1133Loading and Status Messages
Complex calculations
Calculate angles, slopes, or geometric patterns mathematically rather than guessing values.
Lesson 489Math Functions: sin(), cos(), tan(), and Trigonometry
Complex collaboration
→ WebSockets sync pattern
Lesson 883Real-Time Data Patterns
Complex color gradients
and soft transitions
Lesson 1240JPEG: Lossy Compression for Photographs
Complex components
Coordinate multiple visual changes across icons, text, and backgrounds simultaneously.
Lesson 638Group Hover and Focus
Complex configuration
Modern development needed simpler defaults
Lesson 1369What Vite Is and Why It Exists
Complex data relationships
requiring indexing and querying
Lesson 782What is IndexedDB and When to Use It
Complex data transformations
using scales, generators, and layouts
Lesson 2642D3 vs Higher-Level Charting Libraries
Complex legacy projects
benefit from Webpack's mature ecosystem.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
Complex operations become simple
Want to add 3 months to a date while respecting month-end boundaries?
Lesson 2735Why Use Date Libraries Over Native Date
Complex sequencing
Staggered animations, timelines with precise control over delays and overlaps
Lesson 2546GSAP Overview and Why Use ItLesson 2560GSAP vs CSS Animations
Complex widget relationships
Nested menus, collapsible tree structures, or tab panels with dynamic content
Lesson 1036ARIA for Application-Like Interfaces
Complex widgets
like these demand more than Tab:
Lesson 1072When Custom Navigation is Needed
Complex, Nested Data Requirements
Lesson 1555When GraphQL Shines
Complexity
Requires careful configuration to push only what's beneficial
Lesson 2121HTTP/2 Server Push
Component mount
– When a component first loads
Lesson 1639Permission Checking Fundamentals
Component portability
means everything needed travels together
Lesson 602CSS-in-JS Philosophies
Component-based approaches
(like BEM or OOCSS) group related styles into reusable classes:
Lesson 654Utility-First vs Component-Based CSS: Understanding the Trade-offs
Component-based responsive design
means building components that respond to *their own container* using container queries, not the viewport.
Lesson 439Component-Based Responsive Design
Component-by-component refactoring
Pick isolated components (buttons, cards, headers) and convert them one at a time.
Lesson 660Migration Strategies: Adding Tailwind to Existing Projects
Component-level access control
means creating wrapper components that check permissions and only render their children if the user has the required role.
Lesson 1632Component-Level Access Control
Component-level styles
(like a card or button) often benefit from BEM's naming clarity:
Lesson 604Mixing Methodologies Pragmatically
Component-relative sizing
`em` (contextual)
Lesson 159Absolute vs Relative: Choosing the Right Unit
Components layer
is where you build the recognizable, reusable pieces of your user interface.
Lesson 1337The Components Layer: UI Patterns and Widgets
Compositing
happens when the browser has multiple layers and needs to combine them in the correct order to produce the final image you see.
Lesson 2217Paint and Composite Layers
compositor thread
a separate processing lane that runs independently of the main JavaScript thread.
Lesson 2587CSS Animation Performance BenefitsLesson 2591Understanding the 60fps Target
Compress data
Use shorter key names (`u` instead of `userName`)
Lesson 805Cookie Size Limitations
Compressed assets
ready for deployment
Lesson 1380Building for Production with Vite
Compression Bypass Rules
Configure which file types bypass compression (already-compressed images, videos) to avoid wasting edge server CPU.
Lesson 2140Compression and CDN Configuration
Compression/Decompression
Unpacking zip files or compressing data before sending to servers.
Lesson 2094Real-World Use Cases: Heavy Computation
Compromised CDNs
Malicious code injected into third-party resources
Lesson 842Request Integrity and Subresource Integrity
Compromising maintainer accounts
to publish malicious updates
Lesson 2943Understanding Supply Chain Attacks
Computed fields
are values calculated during the build process by analyzing your content data—they're not stored in your CMS, but generated on the fly from existing information.
Lesson 1787Related Content and Computed Fields
Computed Properties
The final accessibility role, name, description, and value the browser exposes
Lesson 2184Accessibility Tree Inspection
Computed tab
shows the final, calculated values for every CSS property—the browser's definitive answer after resolving inheritance, cascading, and specificity.
Lesson 2179Inspecting and Modifying CSS PropertiesLesson 2183Computed Tab and Final Styles
Con
Significantly increases your JavaScript bundle size (often 50–200% larger)
Lesson 2281Inline vs External Source Maps
Concatenating files
(bundling multiple CSS/JS files into one) to reduce request count
Lesson 2119HTTP/1.1 Limitations and Connection Management
Conditional Breakpoints
to pause only when specific async conditions are met (like a particular response status).
Lesson 2266Breakpoints in Async CodeLesson 2267Breakpoint Strategies for Different Scenarios
Conditional loading
means your analytics code only initializes after the user grants permission—no tracking happens until they say "yes.
Lesson 2788Consent Management for AnalyticsLesson 2793Dynamic Script Loading with JavaScript
Conditional rendering during hydration
means deliberately showing *nothing* or a placeholder on the server, then revealing browser- specific content only after hydration completes.
Lesson 1748Conditional Rendering During Hydration
Conditional sampling
Only profile when performance thresholds are crossed
Lesson 2294Performance Profiling in Production
Conditionally rendered
(admin panels visible only to certain users)
Lesson 1942Component-Based Code Splitting
Conditionally renders children
if the user qualifies
Lesson 1632Component-Level Access Control
Configuration in `.stylelintrc.json`
Lesson 1442Integrating with Prettier
Configuration object
how to track items and what animations to use
Lesson 2576useTransition for Mounting/Unmounting
Configuration required
These features aren't always enabled by default—you must explicitly configure them.
Lesson 2884CSS-in-JS and CSP Compatibility
Configure DNS records
at your registrar to point to your hosting provider
Lesson 1812Custom Domains and DNS
Conic gradients
rotate around a center point like a pie chart or rainbow wheel, changing colors as they sweep in a circle.
Lesson 190Gradients: Radial and Conic
Connect with `aria-describedby`
on the trigger element (not `aria-labelledby`—tooltips supplement, they don't replace labels)
Lesson 1204Tooltip Pattern
Connection
– establishing TCP/TLS connections
Lesson 2166Understanding Request Waterfalls
Connection established
The HTTP connection transforms into a persistent WebSocket connection
Lesson 877WebSocket Fundamentals
Connection time
– Establishing the TCP/SSL connection
Lesson 1907Time to First Byte (TTFB)
Connection Timing
Look at individual resource rows.
Lesson 1972Measuring Resource Hint Impact
Connection/DNS time
Should shrink toward zero with hints
Lesson 1972Measuring Resource Hint Impact
Connections
XHR and fetch requests to disallowed endpoints
Lesson 2840How CSP Works in Browsers
Consent before tracking
Users must opt-in to non-essential cookies
Lesson 2780Privacy-First Analytics Philosophy
Consent Management Platform
is a third-party service that handles the entire lifecycle of user consent—displaying banners, capturing preferences, storing choices, and blocking scripts accordingly.
Lesson 2973Consent Management Platforms (CMPs)
Conservative Updates
Avoid breaking changes in service worker updates when possible.
Lesson 2381Handling Version Mismatches
Consider app criticality
Banking apps might justify more frequent checks; a recipe site probably doesn't.
Lesson 2434Update Frequency Best Practices
Consider rendering order
The browser paints from bottom to top in document order.
Lesson 2612SVG Performance Considerations
Consider your users
Are they mostly on fast connections (desktop, fiber)?
Lesson 1950Code Splitting Trade-offs and Best Practices
Consistency is everything
Your baseline is only valuable if you can recreate the same test environment later:
Lesson 1928Establishing Performance Baselines
Consistent 60fps
Even with dozens of simultaneous animations across different properties
Lesson 2546GSAP Overview and Why Use It
Consistent cross-browser behavior
No vendor prefix worries
Lesson 2560GSAP vs CSS Animations
Consistent naming
creates predictability.
Lesson 1368Theme Documentation and Design Tokens
Consistent parsing
No more browser-specific quirks when parsing date strings—libraries provide reliable, predictable parsing.
Lesson 2735Why Use Date Libraries Over Native Date
Consistent styling
across multiple charts with minimal configuration
Lesson 2642D3 vs Higher-Level Charting Libraries
Consolidate messages
Instead of announcing "Item added, Item added, Item added," wait and announce "3 items added.
Lesson 1124Avoiding Announcement Spam
Constraint validation
is the browser's built-in system that automatically checks whether form inputs meet specific requirements *before* the form is submitted.
Lesson 896What is Constraint Validation?
Construct the CSSOM
CSS is parsed into a CSS Object Model, a tree structure mapping styles to elements.
Lesson 1973Understanding Critical Rendering Path
Construct the DOM
The browser parses HTML markup into a Document Object Model tree, representing the structure of your page.
Lesson 1973Understanding Critical Rendering Path
Construct the new URL
with the target locale (`/fr/products/123`)
Lesson 2510Redirecting Based on Language Change
Constructor
Set up initial state and prepare your element
Lesson 2445Defining a Custom Element Class
Consume anywhere
React devs use `<company-button>`, Vue devs use `<company-button>`, Angular devs use `<company-button>`—identical markup, identical behavior
Lesson 2487Design System Distribution
Container height
the visible viewport height
Lesson 2099Calculating Visible Range
Container orchestration
(Docker, Kubernetes)
Lesson 1728Infrastructure and Hosting Requirements
Container queries
let you style an element based on the size of its *parent container*, not the viewport.
Lesson 430What Are Container Queries?
Container queries solve this
by letting elements respond to their *parent container's* size instead.
Lesson 2656Container Queries for Chart Layouts
Container-edge wrapping
When an inline element reaches the right edge of its parent container, it wraps to the next line— just like text wrapping in a word processor.
Lesson 209Inline Elements in Normal Flow
Contains
`[class*="btn"]` matches when the attribute *contains* the text anywhere
Lesson 122Attribute Selectors
Content changes frequently
Delegation handles new elements automatically—no need to rebind listeners after DOM updates.
Lesson 767Delegation vs Direct Binding
Content changes infrequently
SSG with periodic rebuilds gives blazing speed with acceptable staleness
Lesson 1727Data Freshness Trade-offs
Content Delivery Network (CDN)
a network of servers distributed globally.
Lesson 1722The SSG Build and Delivery ProcessLesson 2156What is a CDN and Why Use One
Content editors
manage content in the CMS interface (Contentful, Sanity, Strapi)
Lesson 1781Headless CMS Integration Fundamentals
Content is sequential
or meant to be read in order (use headings and natural flow)
Lesson 1175Tabs Pattern Overview and When to Use Them
Content is syndicated
across multiple domains but you don't control redirects
Lesson 1850Canonical URLs vs 301 Redirects
Content is very short
(not worth the cognitive load of switching)
Lesson 1175Tabs Pattern Overview and When to Use Them
Content negotiation
`Vary: Accept-Encoding` is the most common—cache separate compressed and uncompressed versions.
Lesson 2149Vary HeaderLesson 2497The Accept-Language HeaderLesson 2540Content Negotiation vs Explicit URLs
Content restrictions
(regional licensing)
Lesson 2503Geolocation vs Language Detection
Content should determine layout
When you want items to wrap naturally based on their size and available space, Flexbox's content- driven approach shines.
Lesson 377When to Choose Grid Over Flexbox
Content translation
(articles, product descriptions)
Lesson 2503Geolocation vs Language Detection
Content updates
A news article or product page has changed on the server
Lesson 813Deleting Cached Entries
Content-box
The 12 inches measures only the pizza itself.
Lesson 140Content Box vs Border Box
Content-first websites
like news sites, blogs, documentation portals, and online magazines should think twice about SPAs.
Lesson 1886When to Avoid SPAs for SEO
Content-focused experience
– Your app primarily displays information rather than using device hardware extensively
Lesson 2370When to Choose PWA vs Native
Content-heavy sites
are Jamstack's sweet spot.
Lesson 1822When Jamstack Fits Best
Content-Type
(if used) must be `application/x-www-form-urlencoded`, `multipart/form-data`, or `text/plain`
Lesson 861Simple vs Preflight RequestsLesson 1500Setting Request Headers with Fetch
Content-Type Header
Tells the server the format (e.
Lesson 1484POST: Creating Resources
Context
what the data represents
Lesson 1144Alt Text for Charts and Graphs
Context and relationships
`<label>` properly associates text with form inputs
Lesson 997Why Semantic HTML Matters for Accessibility
Context gets lost
Screen reader users may not understand which slide they're on, how many slides exist, or how to navigate between them without explicit ARIA labels and roles.
Lesson 1187Why Carousels Are Challenging for Accessibility
Context matters
banking apps need shorter windows than a blog comment system
Lesson 1583JWT Expiration and the exp Claim
Context menu actions
Before displaying or executing options
Lesson 1641Checking Permissions Before Actions
Context menus
Provide keyboard-accessible menus with movement options
Lesson 1207Drag and Drop Accessibility
Context preservation
Show enough information (titles, categories) so users understand what they're missing without exposing sensitive data
Lesson 1652Placeholder Content for Unauthorized Users
Context-specific triggers
In a recipe app, after they've saved their third recipe
Lesson 2360Strategic Prompt Timing
Continue
Repeat until no `next_cursor` is returned (end of data)
Lesson 1509Cursor-Based Pagination
Continuous Reading
Insert + Down arrow (NVDA) or Control + Option + A (VoiceOver) reads from current position to the end
Lesson 1103Basic Screen Reader Navigation Commands
Continuously
Performance isn't a one-time fix.
Lesson 1914Performance Measurement Overview
contract
as long as the endpoints, HTTP methods, and response formats remain consistent, both sides stay decoupled.
Lesson 1474Client-Server SeparationLesson 2955Legal Bases for Data Processing
Control caching logic
You decide what to cache and when, unlike browser HTTP caching which follows server headers
Lesson 809What is the Cache API and Why It Matters
Control overflow
When content *must* extend beyond its container (like a wide data table), use `overflow-x`:
Lesson 385Avoiding Horizontal Scroll
Control the entire sequence
with one play/pause/restart command
Lesson 2553GSAP Timelines Basics
Control the experience
across all browsers
Lesson 1277font-display: auto Behavior
Convenience
Simple `<link>` tag, no file management
Lesson 561Self-Hosting vs. Font Services
Conversion
Encourage upgrades or role requests
Lesson 1652Placeholder Content for Unauthorized Users
Conversion events
Goal completions like purchases, sign-ups, downloads, or any action you define as valuable.
Lesson 2779Understanding Analytics and User Behavior Tracking
Convert precaching lists
If you manually cache arrays of URLs during the `install` event, extract those into a manifest.
Lesson 2415Migration from Manual Service Workers
Convert to coordinates
Use `Math.
Lesson 2607Creating Pie and Donut Charts
Cook on order
(fallback): Less common dishes made when requested, then kept warm
Lesson 1799ISR with Dynamic Routes
Cookie name
The exact identifier (e.
Lesson 2972Cookie Policy Pages and Transparency
Cookie sent
Server responds with `Set-Cookie` header containing session ID
Lesson 1568Cookie-Based Authentication Flow
Cookie-stored preference
(persists across sessions)
Lesson 2502Fallback Chains for Locale Resolution
Coordinates
Length values (`px`, `%`, etc.
Lesson 533Transform Origin Point
Copy as cURL
Creates a command-line instruction you can paste into your terminal
Lesson 2205Copying and Replaying Requests
Copy as fetch
Generates JavaScript code using the Fetch API
Lesson 2205Copying and Replaying Requests
Copy as Node.js fetch
Similar, but formatted for Node.
Lesson 2205Copying and Replaying Requests
Copy those specific rules
into a new file or `<style>` block
Lesson 1975Extracting Critical CSS Manually
Core CSS and JavaScript
files that power your main interface should always be precached.
Lesson 2418Precaching Static Assets
Core functionality
(remembering cart contents, preference cookies)
Lesson 2960Legitimate Interest vs Consent
Core JavaScript
All standard built-ins (Array, Object, Promise, etc.
Lesson 2090Worker Scope and Available APIs
Core Web Vital
that quantifies how much your page's main thread is blocked during the critical loading period.
Lesson 2075Total Blocking Time (TBT) Metric
Core Web Vitals
LCP, FID/INP, CLS scores
Lesson 1928Establishing Performance Baselines
Core Web Vitals Hit
Images directly affect the metrics you've been tracking:
Lesson 1995Why Image Optimization Matters for Performance
Correct approach
Each paginated page should typically be self-referencing canonical, unless the content truly duplicates page 1.
Lesson 1851Common Canonical URL Mistakes
Correlation with Errors
Did that error happen during an already-slow operation?
Lesson 2816Performance Monitoring Integration
Correlation with frame drops
(when GC runs during animations)
Lesson 2219Memory Allocation and Garbage Collection
CORS (Cross-Origin Resource Sharing)
is the mechanism that allows servers to explicitly permit cross-origin requests.
Lesson 860What is CORS and Why It Exists
CORS-enabled
for cross-origin requests
Lesson 1845Social Sharing Best Practices
Cost optimization
You can negotiate better rates and dynamically route traffic to the most cost-effective provider based on volume tiers or regional pricing.
Lesson 2164Multi-CDN Strategies
Coverage
tab to see unused resources initially loaded.
Lesson 1960Measuring Lazy Loading Impact
CPU cycles
for rendering on every request
Lesson 1764Cost and Infrastructure Considerations
CPU usage
Color-coded sections show what type of work consumed time (scripting, rendering, painting)
Lesson 2211Performance Panel Overview and Recording
Crawl budget
is the number of pages Googlebot will crawl on your site within a given timeframe.
Lesson 1878Googlebot's JavaScript Rendering
Create
the element with `createElement`
Lesson 689Creating Elements with createElement
Create a code challenge
Hash the verifier with SHA-256 and base64-encode it
Lesson 1623PKCE for Public Clients
Create animations
Move elements, fade things in/out, or create complex visual effects
Lesson 41JavaScript's Role: Adding Interactivity
Create choreographed sequences
where one change follows another
Lesson 506The transition-delay Property
Create events that bubble
Use `new MouseEvent()` or `new Event()` with `bubbles: true`
Lesson 769Testing Delegated Event Handlers
Create polish
without complex animation code
Lesson 501Introduction to CSS Transitions
Create predictable, testable behavior
for your users
Lesson 1277font-display: auto Behavior
Create responsive layouts
where items automatically adjust their size and order
Lesson 253What is Flexbox and Why Use It
Create responsive type scales
by adjusting `wght` and `wdth` axes based on viewport size
Lesson 582Variable Fonts in Design Systems
Create the Render Tree
The browser combines DOM and CSSOM, calculating which elements are visible and their computed styles.
Lesson 1973Understanding Critical Rendering Path
Creates a flex container
the element with `display: flex` becomes the parent coordinator
Lesson 254Enabling Flexbox with display: flex
Creating a Blob
from that string with MIME type `'text/javascript'`
Lesson 2092Inline Workers with Blob URLs
Creating new elements
Right-click any element in the Elements panel and choose "Edit as HTML.
Lesson 2178Adding and Removing Elements
Creation
– Flag added for rollout or experiment
Lesson 2828Flag Lifecycle and Technical Debt
Critical above-the-fold images
should use `loading='eager'` or omit the `loading` attribute entirely (which defaults to eager behavior).
Lesson 1252Lazy Loading and Above-the-Fold Images
Critical and above-the-fold
Your main heading font that appears immediately when the page loads
Lesson 1295When to Preload Fonts vs When Not To
Critical precached assets
that you know will always be in cache (app shell, offline page)
Lesson 2390Cache-Only Strategy
Critical rule
Only variables prefixed with `VITE_` are exposed to your client-side code.
Lesson 1378Environment Variables in Vite
Critical vs Non-Critical
Ask yourself: "If this fails, should the whole page break?
Lesson 1669Positioning Error Boundaries in the Component Tree
Critters
(from GoogleChromeLabs) is specifically designed for build tools like Webpack.
Lesson 1976Critical CSS Extraction Tools
Crop intelligently
when using art direction (different crops for mobile vs desktop)
Lesson 1261Understanding Aspect Ratio in Web Design
Cross-browser consistency
GSAP normalizes browser quirks automatically
Lesson 2546GSAP Overview and Why Use It
Cross-device thinking
Don't assume mouse-only interactions.
Lesson 745Event Type Selection and Best Practices
Cross-domain canonical
If you republish content from another site:
Lesson 1847The rel="canonical" Link Element
Cross-domain canonicals
solve this by pointing from the republished page to the original source, even when they're on completely different domains.
Lesson 1849Cross-Domain Canonicals
Cross-field dependencies
When validating against multiple fields (like confirming a password matches or checking dates are in order)
Lesson 918Field-Level vs Form-Level Validation
Cross-Origin Requests
Simulate an attack from a different domain using tools like Postman or curl.
Lesson 2916Testing CSRF Protection
Cross-platform consistency
The same token approach works identically across iOS, Android, web, desktop apps, and IoT devices.
Lesson 1576Mobile and Native App Authentication
Cross-Site Request Forgery (CSRF)
attacks by controlling when browsers send cookies with cross-origin requests.
Lesson 1597Secure and SameSite Cookie Flags
Cross-Site Scripting (XSS)
CSP blocks inline scripts and `eval()` by default, forcing all JavaScript to come from approved external files.
Lesson 2839What is Content Security Policy?Lesson 2892What is XSS and Why It Matters
Cross-site tracking
and fingerprinting
Lesson 2954User Consent Requirements
CrUX API
Programmatic access to metrics
Lesson 1926Chrome User Experience Report (CrUX)
CrUX Dashboard
Pre-built Data Studio dashboards
Lesson 1926Chrome User Experience Report (CrUX)
CSP hashes
provide a way to whitelist *specific, unchanging* inline code by calculating a cryptographic hash of its exact content.
Lesson 2859Understanding CSP Hashes
CSP header configured
with strict directives
Lesson 2906XSS Prevention Checklist
CSP violation reports monitored
regularly
Lesson 2906XSS Prevention Checklist
CSP's `upgrade-insecure-requests` directive
(which you learned earlier) automatically upgrades HTTP requests to HTTPS, but it's a *safety net*, not a replacement for proper source updates.
Lesson 2929Upgrading Resources to HTTPS
CSR (Client-Side Rendering)
fetches data *after* the page loads in the browser.
Lesson 1727Data Freshness Trade-offs
CSR Approach
Browser downloads JavaScript, executes it, fetches data, *then* renders the largest content element.
Lesson 1732Largest Contentful Paint (LCP)
CSR Fallbacks
For heavily personalized pages (like dashboards), consider pure client-side rendering.
Lesson 1763SSR and Authentication Requirements
CSRF attacks
unless additional protections are used.
Lesson 1593Token Storage Options Overview
CSRF attacks fail
because a malicious site cannot force your browser to add custom headers to cross-origin requests.
Lesson 1573Bearer Token Authentication
CSRF Tokens
Generate a unique, unpredictable token for each session or request.
Lesson 1572CSRF Vulnerability in Cookie Auth
CSS and JavaScript
with hashed filenames (like `app.
Lesson 2399Handling Different Content Types
CSS Custom Properties
, commonly called **CSS variables**, are entities you define in your CSS that hold specific values you can reuse throughout your stylesheet.
Lesson 467What are CSS Custom Properties?Lesson 1332The Settings Layer: Design Tokens and Variables
CSS enhancement
Makes everything look polished and organized, but if CSS fails to load, the HTML still functions.
Lesson 42Progressive Enhancement Philosophy
CSS isolation
Styles defined in the shadow DOM don't leak out, and external styles (mostly) don't leak in.
Lesson 2460Shadow DOM vs Light DOM
CSS Keyframes
give you more control for complex animations like sliding in from the side with a bounce:
Lesson 1710Animation and Transitions for Toasts
CSS minifiers
to compress files dramatically.
Lesson 1381Production Build Optimizations
CSS nightmares
Styling behaved completely differently
Lesson 29The Browser Wars and Their Legacy
CSS over inline attributes
Define reusable styles in `<style>` blocks rather than inline attributes—fewer bytes, better caching, faster parsing.
Lesson 2612SVG Performance Considerations
CSS Peek
Jump directly to CSS definitions from your HTML—click a class name and see where it's styled
Lesson 1462VS Code Extensions for Web Development
CSS pixels
are abstract reference units that browsers use for consistent sizing.
Lesson 379Device Pixels vs CSS Pixels
CSS reset
, where you zero out default browser styles.
Lesson 130The Universal Selector and Its Uses
CSS Resets
aggressively strip away all browser defaults, setting everything to zero.
Lesson 1334The Generic Layer: Resets and Normalize
CSS Transitions
work great for simple enter/exit effects.
Lesson 1710Animation and Transitions for Toasts
CSS variables
, are entities you define in your CSS that hold specific values you can reuse throughout your stylesheet.
Lesson 467What are CSS Custom Properties?
CSS-in-JS
(like styled-components) keeps styles in JavaScript, enabling dynamic styling based on props.
Lesson 1350CSS Modules vs Other Approaches
CSS-level control
over image delivery—no JavaScript needed.
Lesson 484url() and Image Functions
CSSStyleDeclaration
interface, which every element's `style` object implements.
Lesson 476Custom Properties and JavaScript
Ctrl+Arrow
moves focus without changing selection, **Space** toggles selection
Lesson 1200Listbox Pattern
Culling
Only render shapes visible in the viewport
Lesson 2612SVG Performance Considerations
Currency display
(defaulting to local currency)
Lesson 2503Geolocation vs Language Detection
Currency formatting
uses `NumberFormat` with style options:
Lesson 2534Date, Number, and Currency Formatting
Current position
as they navigate ("4 of 8")
Lesson 1001Lists: Ordered, Unordered, and Description
Curve generators
control *how* the connecting lines between data points are drawn.
Lesson 2635Area and Curve Generators
Custom
Define your own speeds and latency
Lesson 2203Network Throttling for Testing
Custom actions in URLs
`/api/users/123/activate` instead of a state change via `PATCH`
Lesson 1481RESTful vs REST-ish APIs
Custom controls
(elements with `tabindex="0"`) need especially clear indicators since their interactive nature isn't obvious:
Lesson 1060Focus Styles for Different Element Types
Custom dimensions
and **user properties** let you attach this context to your analytics data, enabling powerful segmentation like "How do premium users navigate differently than free users?
Lesson 2786Custom Dimension and User Properties
Custom domains
supported
Lesson 1810GitHub Pages
custom events
to signal anything meaningful in your application—like "user-logged-in" or "cart-updated".
Lesson 744Custom Events: Creating and DispatchingLesson 2782Event Tracking Fundamentals
Custom frameworks
require manual configuration: generate logical property utilities (`margin-inline-start` instead of `margin-left`) or build a compilation step that creates RTL-specific stylesheets with flipped directional properties.
Lesson 2527RTL in CSS Frameworks
custom headers
(anything beyond simple headers like `Accept`, `Content-Type`, or `Accept-Language` with limited values), the browser must ask the server for permission first.
Lesson 865Custom Headers and PreflightLesson 1504Custom Headers and API Conventions
Custom interactions
A grid of cells that users can navigate with arrow keys needs `role="grid"` and `role="gridcell"`
Lesson 1036ARIA for Application-Like Interfaces
Custom listboxes
Arrow keys to select items, not Tab through each
Lesson 1072When Custom Navigation is Needed
Custom logging
lets you track which resources are cached or served from cache.
Lesson 2412Custom Plugins and Middleware
Custom Logic
Hook in with `setCustomValidity()` for business rules
Lesson 911Understanding Constraint Validation API
Custom media queries
`[@media(orientation:landscape)]:hidden`
Lesson 642Arbitrary Variants
Custom methods
Define unique behaviors specific to your element
Lesson 2445Defining a Custom Element Class
Custom metrics
can measure cache hit rates or response times by combining multiple callbacks.
Lesson 2412Custom Plugins and Middleware
Custom Monitoring Solutions
(like Real User Monitoring tools) offer:
Lesson 2232Lighthouse Limitations and Complementary Tools
Custom properties
are real CSS that browsers understand natively and can be manipulated at runtime
Lesson 467What are CSS Custom Properties?Lesson 477Custom Properties vs Preprocessor Variables
Customize
it (add content, attributes, classes)
Lesson 689Creating Elements with createElement
Cyrillic languages
(Russian, Ukrainian):
Lesson 1286Language-Specific Subsetting Strategies

D

Dangerous APIs avoided
`eval()`, `Function()`, `setTimeout(string)`, `setInterval(string)`
Lesson 2906XSS Prevention Checklist
Dashboard data
where seeing something immediately beats waiting for perfection
Lesson 2392Cache Then Network Strategy
Dashboard reports
showing coverage percentages per locale
Lesson 2536Translation Coverage and Missing Key Detection
Data collected
What information it contains
Lesson 2972Cookie Policy Pages and Transparency
Data costs
for users on metered connections
Lesson 1935Total Page Weight Budgets
Data Fetching Efficiency
Make one bulk API request instead of thousands of individual calls.
Lesson 1788Build Performance with Large Datasets
Data grids/tables
Arrow keys for two-dimensional cell navigation
Lesson 1072When Custom Navigation is Needed
Data labels
Place values above bars or next to data points
Lesson 2608SVG Text and Labels in Charts
data layer
is a JavaScript object (often named `dataLayer`) that acts as a single source of truth for all tracking data on your site.
Lesson 2790Analytics Data Layer PatternsLesson 2801What is a Tag Manager and Why Use OneLesson 2806Data Layer Implementation
Data minimization
Only collect what's necessary
Lesson 2780Privacy-First Analytics Philosophy
Data Parsing
Converting large CSV files to JSON, parsing complex XML documents, or processing spreadsheet data.
Lesson 2094Real-World Use Cases: Heavy Computation
Data portability
Users can request their data in a usable format
Lesson 2953Understanding GDPR and CCPA Fundamentals
Data Sync
Native apps often use proprietary sync engines or platform SDKs (like CloudKit or Firebase).
Lesson 2368Offline Capabilities Comparison
Data tables
Apply `overflow-x: auto` to make wide tables scrollable without affecting the page's vertical scroll.
Lesson 246overflow-x and overflow-y for directional controlLesson 1110Creating a Screen Reader Testing Checklist
Data theft
Access sensitive information visible on the page
Lesson 2892What is XSS and Why It Matters
Date format complexity
Requires precise HTTP-date formatting
Lesson 2143Expires Header
date-fns
treats dates as immutable and provides pure functions that always return new values instead of mutating existing dates.
Lesson 2736date-fns: Philosophy and InstallationLesson 2744Tree-Shaking and Bundle SizeLesson 2746Migrating from Moment.js
Date/number formatting
(when tied to language conventions)
Lesson 2503Geolocation vs Language Detection
DDoS mitigation
Many CDNs include traffic filtering and rate limiting
Lesson 2157CDN Performance Benefits
Dead code elimination
removes unused styles automatically during bundling
Lesson 602CSS-in-JS Philosophies
Debounce
Search inputs, form validation, window resize handlers (wait for final size)
Lesson 1989Debouncing and Throttling Event HandlersLesson 2064Debouncing and Throttling Events
Debounce announcements
Wait until the user finishes an action (like typing) before announcing the result.
Lesson 1124Avoiding Announcement Spam
Debounce the resize handler
to avoid excessive recalculations
Lesson 2641Responsive D3 Charts
Debug faster
– seeing `vendor-react.
Lesson 1420Chunk Naming and Output
Debugging data transformations
where you need to spot differences quickly
Lesson 2188Console.table() for Structured Data
Debugging metadata
(request IDs, trace contexts)
Lesson 1504Custom Headers and API Conventions
Declaration Order
rules organize properties logically.
Lesson 1439Common Stylelint Rules
Declarative Nature
You describe the target state; React Spring figures out how to get there smoothly.
Lesson 2573React Spring Core Concepts
Decorative icons
when text already conveys the meaning
Lesson 1023aria-hidden: Removing from Accessibility Tree
Decorative motion
enhances aesthetics but doesn't affect comprehension.
Lesson 555Essential Motion vs Decorative Motion
Decorative or rare
Special fonts used only in small UI elements
Lesson 1295When to Preload Fonts vs When Not To
Decorative text
that's part of the visual design, not core content
Lesson 1273font-display: block Strategy
Decouple deployment from release
You can deploy code to production with features "hidden" behind disabled flags, then enable them later without redeploying.
Lesson 2819What Are Feature Flags and Why Use Them
deep clone
copies the entire subtree: all nested elements, text content, and attributes.
Lesson 700Cloning Elements with cloneNodeLesson 2475Cloning Template Content with content.cloneNode()
Deep integration
with SVG manipulation or the enter-update-exit pattern
Lesson 2642D3 vs Higher-Level Charting Libraries
Deep linking
External links can point directly to specific filtered states.
Lesson 1518URL State Management
Defacement
Alter page content to spread misinformation
Lesson 2892What is XSS and Why It Matters
Default focus style
for standard interactive elements (buttons, links)
Lesson 1062Focus Rings in Design Systems
Defense in depth
Layer policies from different configuration sources (application + infrastructure)
Lesson 2877Multiple CSP Headers and Policies
Defensive permission checks
wait for verification before rendering anything.
Lesson 1647Optimistic vs Defensive Permission Checks
Defer browser-specific content
Use `useEffect` (runs only on client, after hydration) for anything that depends on `window`, `document`, or browser APIs
Lesson 1747Avoiding Hydration Mismatches
Defer critical rendering
Use `async` or `defer` attributes so third-party scripts don't block HTML parsing.
Lesson 2829Embedding Third-Party Scripts Safely
Defer dynamic content
Render time-sensitive or browser-specific content only after hydration completes
Lesson 1746Hydration Mismatch Errors
Define fallback stacks
Choose system fonts that match your web font's metrics to minimize layout shift
Lesson 572Web Font Best Practices Checklist
Define precise weight tokens
instead of jumping from 400 to 700—use `625` for subheadings
Lesson 582Variable Fonts in Design Systems
Define structure once
in a `<template>` with `<slot>` placeholders
Lesson 2485Templates and Slots Pattern: Reusable Component Markup
Define two CSS classes
one without the background image (initial state) and one with it (loaded state)
Lesson 1956Lazy Loading Background Images
Degrade gracefully
Disable features that depend on the missing script
Lesson 2797Error Handling for External Scripts
Delete database
Clear all data for testing
Lesson 2235IndexedDB Inspection and Debugging
Delete My Account
(right to be forgotten)
Lesson 2964Privacy Settings Dashboard
Delete record
Remove individual entries
Lesson 2235IndexedDB Inspection and Debugging
Deleting content
When a user deletes an item in a list, focus should move to a logical nearby element (the next item, previous item, or a parent container)
Lesson 1087Focus Management Fundamentals
Deleting records
uses the `delete()` method, which removes a record by its key.
Lesson 791Updating and Deleting Records
Dependencies
"Don't send this stream until that one completes"
Lesson 2123Stream Prioritization in HTTP/2
Dependency Management
Webpack analyzes your code's `import` and `require` statements to understand which files depend on which.
Lesson 1387What is Webpack and Why Use It
Dependency path
(how it entered your project)
Lesson 2944Reading npm Audit Reports
Deploy
These pre-built HTML, CSS, and JavaScript files are uploaded to a hosting service or CDN
Lesson 1721What is Static Site Generation (SSG)?Lesson 1810GitHub Pages
Deprecated elements
Using outdated tags like `<font>` or `<center>`
Lesson 1446Why Lint HTML? Catching Errors Early
Depth limiting
is simpler: the server counts how many levels deep a query nests and rejects anything beyond a maximum depth (commonly 5-10 levels).
Lesson 1544Query Complexity and Depth Limiting
Descendant
any node below (child, grandchild, etc.
Lesson 663The DOM Tree Structure
Descent
is the distance below the baseline, reserved for letters that hang down like 'g', 'y', or 'p'.
Lesson 1302Measuring Font Metrics: Ascent, Descent, and Line GapLesson 1314Matching Fallback Font Metrics
Description lists
(`<dl>`) pair terms (`<dt>`) with definitions (`<dd>`), perfect for glossaries or metadata.
Lesson 1001Lists: Ordered, Unordered, and Description
Descriptions and keywords
(for search engines)
Lesson 81The <head> Element Structure
Deserializing (String → Object)
Lesson 775Storing Complex Data with JSON
Design freedom
Thousands of typefaces beyond the basic system fonts
Lesson 558Introduction to Web Fonts
Design Phase
Accessibility starts with wireframes and mockups.
Lesson 994Accessibility in the Development Lifecycle
Design System Components
Build your button library, form controls, or data visualization widgets as Web Components.
Lesson 2494Hybrid Approach with Frameworks
Desired confidence level
Higher confidence requires more data
Lesson 2827Statistical Significance and Sample Size
Desktop (1200px wide)
Show the full horizontal group shot
Lesson 1227Understanding Art Direction in Responsive Images
Desktop licenses
typically allow you to install fonts on your computer for creating graphics, but *not* for web embedding via `@font-face`.
Lesson 563Font Licensing and Legal Considerations
Desktop-First (max-width)
Start with styles for large screens, then add media queries that apply *when the screen is at most* a certain width.
Lesson 392min-width vs max-width Strategies
Detached DOM nodes
still referenced in JavaScript
Lesson 2107What Are Memory Leaks and Why They Matter
Detailed source maps
Easy debugging that maps back to original source files
Lesson 1393Development vs Production Mode
Detect location
from IP addresses or request headers
Lesson 1762Geographic and Personalized Content
Detect the error
(check response status or error message)
Lesson 2911CSRF Tokens in Form Submissions
Detect the failure
When a `fetch()` in your Service Worker fails (network error, timeout, or user offline), catch that error
Lesson 2401Background Sync for Failed Requests
Detect the update
Listen for the `updatefound` event on your service worker registration, and watch for the new worker entering the `installed` state while an old one is still active (meaning it's waiting).
Lesson 2430Prompting Users for Updates
Detect the user agent
in your server middleware
Lesson 1881Dynamic Rendering and Bot Detection
Detect trigger
Use Intersection Observer for visibility or click handlers for interaction
Lesson 2799Lazy Loading Third-Party Widgets
Detecting Online/Offline State
techniques you learned, then retrieve and replay all queued requests.
Lesson 2329Queue Failed Requests
Detection
If the *old* refresh token is used again, the server knows something is wrong—either:
Lesson 2924Refresh Token Rotation
Detects the change
through its built-in file watcher
Lesson 1374Hot Module Replacement (HMR) in Vite
Developer experience focus
If your team values quick iteration and simple setup over maximum control, modern tools remove Webpack's learning curve.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
Development complexity
You'll need conditional loading logic
Lesson 2495Browser Support and Polyfill Considerations
Development configuration example
Lesson 1349Naming Hash Configuration
Development detection
Allow HTTP only in local development environments
Lesson 2932Detecting HTTPS in JavaScript
Development Experience
Combined with features like hot module replacement, Webpack creates a smooth development workflow.
Lesson 1387What is Webpack and Why Use It
Development Phase
As you build features—whether forms, navigation, or interactive components—you apply semantic HTML, ARIA attributes, and keyboard support from day one.
Lesson 994Accessibility in the Development Lifecycle
Development-time validation
of assumptions
Lesson 2192Console.assert() for Runtime Checks
Device
Desktop or Mobile (this affects viewport size and simulated hardware)
Lesson 2224Running Lighthouse in Chrome DevTools
Device fingerprinting
creates a unique identifier based on device characteristics like browser version, screen resolution, installed fonts, timezone, and other semi-stable attributes.
Lesson 2925Fingerprinting and Token Binding
Device fingerprints
created from browser characteristics, screen resolution, installed fonts, and timezone settings can uniquely identify users across sessions.
Lesson 2956Personal Data in the Frontend
Device pixels
(also called physical pixels or hardware pixels) are the actual tiny lights built into your screen.
Lesson 379Device Pixels vs CSS Pixels
Device-specific content
`Vary: User-Agent` (use cautiously—creates many cache entries).
Lesson 2149Vary Header
DevTools first
Resize through all your breakpoints slowly, watching for layout breaks
Lesson 404Testing Media Queries Across Devices
DevTools Network Throttling
lets you simulate different network speeds and conditions.
Lesson 2332Testing Offline Experiences
DevTools-only helpers
that give you shorthand methods for common debugging tasks, especially DOM querying.
Lesson 2194Console Utilities and $ Shortcuts
Diagnostics
provide additional context about your page's behavior but don't directly translate to time savings.
Lesson 2226Interpreting Opportunities and Diagnostics
dialog
is a conversation window that opens on top of your main content.
Lesson 1148Dialog vs Modal: Semantic DifferencesLesson 1206Date Picker Pattern
Dialog headings
that announce content to screen readers
Lesson 1046tabindex='-1' for Programmatic Focus
Dialogs/Modals
Focus trapping and context need explicit markup
Lesson 1032ARIA for Complex Interactive Widgets
Different Background Colors
Lesson 1063Testing Focus Visibility
Different HTML tags
Features worked in one browser but not the other
Lesson 29The Browser Wars and Their Legacy
Different locales, different rules
Lesson 2771Intl.NumberFormat Basics
Direct assignment
(replaces defaults completely)
Lesson 611Extending the Default Theme
Direct binding
means calling `addEventListener()` on each element individually.
Lesson 767Delegation vs Direct Binding
Direct Cache Reads
Your app can check the cache first before making network requests, implementing your own cache-first strategy without a service worker.
Lesson 818Cache API Outside Service Workers
Directive Matching
The browser finds the relevant directive (`script-src`, `img-src`, etc.
Lesson 2840How CSP Works in Browsers
directives
(instructions) that tell browsers and intermediary caches exactly how to handle your resources.
Lesson 2142Cache-Control DirectivesLesson 2874CSP Header Format and Syntax
Disabled State
The button is visible but grayed out and unresponsive.
Lesson 1655Action Button StatesLesson 2969Granular Cookie Category Controls
Disabling vs Removing
Disabling a breakpoint keeps it in place but stops execution from pausing there.
Lesson 2264Disabling and Managing Breakpoints
Disallow
Blocks crawlers from accessing specified paths
Lesson 1873Robots.txt Fundamentals
Discard it
never store or reuse it for future requests
Lesson 2858Nonce Lifecycle and Reuse
Disclosure widgets
reveal/hide content using `aria-expanded` on a button
Lesson 1172Disclosure Widgets vs True Menus
Disconnect your mouse
(literally unplug it) to avoid cheating
Lesson 1098Testing Focus Management
Discovers all routes
by scanning your pages directory or querying your content source
Lesson 1871Generating Sitemaps Automatically
Discovery
| Curated search | Open web |
Lesson 2364Installation and Distribution Models
Discovery through search matters
– Users should find you via Google, not just app stores
Lesson 2370When to Choose PWA vs Native
Dismiss
Hide the notification but continue retrying in background
Lesson 1694User Feedback During Retries
Dismissal Patterns
If users repeatedly dismiss your prompt, that's a signal your timing or messaging needs adjustment.
Lesson 2361Install Analytics and Metrics
Dismissibility
Let users close toasts, but keep persistent indicators visible
Lesson 1702Offline UI Indicators
Dismissible with Escape key
for keyboard users
Lesson 1204Tooltip Pattern
Dispatch on child elements
Call `dispatchEvent()` on the actual target element
Lesson 769Testing Delegated Event Handlers
Display
It renders everything visually on your screen as the webpage you see
Lesson 16What is a Web Browser?Lesson 911Understanding Constraint Validation API
Display a fallback placeholder
– Show a generic image or icon indicating the content failed
Lesson 2025Handling Failed Lazy Load Requests
Display the error visually
near the problematic field
Lesson 1120Form Validation Announcements
Display violations inline
with colored underlines (red for errors, yellow for warnings)
Lesson 1464Inline Error Highlighting with ESLint
Display-P3
is a wider color space that can display about **25% more colors** than sRGB.
Lesson 491Understanding Color Spaces: sRGB, Display-P3, and Beyond
Displays the consent banner
with legally compliant wording and UI
Lesson 2973Consent Management Platforms (CMPs)
Distribute space
evenly between elements, even when their sizes aren't fixed
Lesson 253What is Flexbox and Why Use It
Distributed load
Traffic spreads across dozens or hundreds of edge servers
Lesson 2157CDN Performance Benefits
Distribution
Install third-party plugins via npm
Lesson 651Plugin System Basics
Divides that leftover space
into 3 parts (1 + 2 = 3)
Lesson 328Mixing fr Units with Fixed Sizes
DNS
`domainLookupEnd - domainLookupStart`
Lesson 1918Navigation Timing API
DNS (Domain Name System)
acts like the internet's phone book—it translates human-readable domain names into server IP addresses.
Lesson 1812Custom Domains and DNS
DNS lookup happens
your browser asks DNS servers "What's the IP address for example.
Lesson 15Putting It All Together: A Complete Page Load
DNS lookup time
– Translating the domain name to an IP address
Lesson 1907Time to First Byte (TTFB)
DNS prefetch
(which resolves domain names), prefetch actually downloads complete resources like JavaScript files, CSS, images, or even entire HTML documents.
Lesson 1964Prefetch for Future Navigation
DNS server
"What's the IP address for `example.
Lesson 4DNS: The Phone Book of the Internet
DNS-prefetch
Third-party domains you'll definitely access (analytics, fonts, APIs)
Lesson 88Preloading and Resource HintsLesson 1961Understanding Resource Hints Overview
Do allow
essential functionality like authentication and security
Lesson 2977Respecting Do Not Track and Global Privacy Control
Do Not Track (DNT)
An older header (`DNT: 1`) indicating the user doesn't want to be tracked.
Lesson 2977Respecting Do Not Track and Global Privacy Control
Do Not Track signals
Must honor browser-level privacy preferences
Lesson 2953Understanding GDPR and CCPA Fundamentals
Document differences
note which readers need workarounds
Lesson 1125Testing Announcements Across Screen Readers
Document expiration dates
when creating flags.
Lesson 2828Flag Lifecycle and Technical Debt
Document Nodes
(type 9) represent the entire document itself — the root of the DOM tree.
Lesson 664Node Types in the DOM
Document Object Model
is a programming interface that represents your HTML document as a tree of objects.
Lesson 662What is the DOM and Why It Exists
Document Object Model (DOM)
a tree-like structure of objects that represents your webpage.
Lesson 21Parsing HTML into the DOM
Document outline makes sense
Could someone understand the page structure from headings alone?
Lesson 1104Heading Navigation and Structure Testing
Document schemas
Keep a changelog of what each version contains
Lesson 796IndexedDB Wrappers and Best Practices
Document State
Information about scroll position, form values, and other page conditions
Lesson 961The History Stack and Navigation States
Document Structure
Headings create a logical outline of your content.
Lesson 65Headings Hierarchy (h1-h6)Lesson 1110Creating a Screen Reader Testing Checklist
Document structure roles
organize content (`heading`, `list`, `table`)
Lesson 1014ARIA Roles: Defining Element PurposeLesson 1017Document Structure Roles
Document Type Declaration
(or DOCTYPE) is the very first line you write in an HTML file.
Lesson 79The Document Type Declaration
Documentation
Longer intervals (hours/days) since content rarely changes
Lesson 1796Configuring Revalidation Intervals
Documentation Quality
Poor or missing documentation often correlates with poor code quality and security practices.
Lesson 2946Evaluating Package Health Before Installing
Documented
(prove when/how consent was given)
Lesson 2954User Consent Requirements
Documented consent
you must keep records of when and how consent was obtained
Lesson 2965Cookie Consent Legal Requirements
Does something
with the current element (log it, modify it, collect data, etc.
Lesson 712Walking the DOM Tree Recursively
DOM Breakpoints
on elements that multiple async operations modify to see which code path reaches them first.
Lesson 2267Breakpoint Strategies for Different Scenarios
DOM Construction
As it parses, it builds the DOM tree node by node
Lesson 672The Critical Rendering Path
DOM Processing
`domInteractive - domLoading`
Lesson 1918Navigation Timing API
DOM to be ready
or depend on each other.
Lesson 2048async vs defer for Script Loading
DOM tree
(Document Object Model) that you're familiar with, and the **accessibility tree**—a simplified version containing only the information assistive technologies like screen readers need.
Lesson 2184Accessibility Tree Inspection
DOM Update Sequencing
matters too.
Lesson 1118Announcement Timing and Delays
DOM-based
Each element is accessible to screen readers and can be styled with CSS
Lesson 2601SVG Fundamentals for Data Visualization
DOM-dependent scripts
or scripts that must run in order
Lesson 2792async vs defer Attributes
Domain and Range
Every scale has two key components:
Lesson 2630Scales: Mapping Data to Visual Properties
Domain Name System (DNS)
is like a massive phone book for the Internet.
Lesson 4DNS: The Phone Book of the Internet
Domain set explicitly
Cookie is sent to that domain *and all subdomains* (`Domain=example.
Lesson 1602Domain and Path Restrictions for Cookies
Domain URLs
Specific trusted CDNs or third-party sources
Lesson 2842The script-src Directive
DOMContentLoaded
fires when the HTML document has been completely parsed and the DOM tree is built, but *before* images, stylesheets, and other external resources finish loading.
Lesson 738Window and Document Events: load, DOMContentLoaded, resize
DOMContentLoaded time
(should improve)
Lesson 1960Measuring Lazy Loading Impact
DOMPurify
is the gold-standard library for client-side HTML sanitization.
Lesson 2904DOMPurify for HTML Sanitization
DOMPurify (or equivalent) sanitizes
any HTML from users
Lesson 2906XSS Prevention Checklist
Don't break functionality
Your component must work perfectly even if animations are disabled.
Lesson 1185Animated Transitions and Accessibility
Don't build
behavioral profiles for personalization
Lesson 2977Respecting Do Not Track and Global Privacy Control
Don't collect personal data
– No tracking across sites or building user profiles
Lesson 2785Privacy-Focused Alternatives
Don't deploy them publicly
Keep source maps off your production server entirely, using them only locally or in staging environments.
Lesson 2282Production Source Maps: Security and Privacy
Don't hardcode redirect URIs
Register exact URIs with providers and validate them server-side—mismatches create open redirect vulnerabilities.
Lesson 1626OAuth Libraries and Security Best Practices
Don't lazy-load critical images
Above-the-fold images, logos, and key product images should load immediately for both users and crawlers.
Lesson 1257Lazy Loading and SEO Considerations
Don't load
non-essential tracking scripts (Google Analytics, Facebook Pixel)
Lesson 2977Respecting Do Not Track and Global Privacy Control
Don't move focus
to the toast itself.
Lesson 1119Toast Notification Patterns
Don't overuse it
Applying `will-change` to every element or leaving it on permanently wastes memory.
Lesson 544The will-change PropertyLesson 1963Preconnect for Early Connections
Don't self-host
when the CDN offers significant edge network benefits, shared cache hits across sites, or automatic updates are critical (security patches).
Lesson 2051Self-Hosting Third-Party Resources
Don't share
user data with third-party advertisers
Lesson 2977Respecting Do Not Track and Global Privacy Control
Don't skip levels
don't jump from `<h2>` to `<h4>` without an `<h3>` in between
Lesson 999Heading Hierarchy and Page Outline
Don't spam
Consider debouncing rapid updates (wait ~300ms after typing stops)
Lesson 1122Search Result Announcements
Don't use cookies
– No consent banners required in most jurisdictions
Lesson 2785Privacy-Focused Alternatives
Don't use it
for critical above-the-fold content or your Largest Contentful Paint (LCP) image—those should load immediately with `loading="eager"` (or no attribute, since eager is the default).
Lesson 2017Native Lazy Loading with loading Attribute
Don't use it for
arbitrary addresses mentioned in your content (like "the store is located at.
Lesson 1010Address Element for Contact Information
Dot notation
works for simple, known property names.
Lesson 2272Watching Object Properties and Nested Values
Double-check package names
before installing (especially popular libraries)
Lesson 2951Scoped Packages and Registry Security
Double-Submit Cookie Pattern
Send the CSRF token both as a cookie and as a request parameter—the server verifies they match.
Lesson 1572CSRF Vulnerability in Cookie Auth
Download Counts
Weekly downloads signal community trust and usage.
Lesson 2946Evaluating Package Health Before Installing
Download the script
, often without compression optimizations
Lesson 2047The Performance Cost of Third-Party Scripts
Download unpredictably
, since you don't control their servers or caching
Lesson 2047The Performance Cost of Third-Party Scripts
Download your custom font
in the background
Lesson 1274font-display: swap Strategy
Downloads in parallel
, then executes **immediately when ready** (pausing the parser if still running).
Lesson 2048async vs defer for Script Loading
Downside
If users have many tabs or slow connections, forcing them to "visit" every tab while arrowing through can be annoying or performance-heavy.
Lesson 1180Automatic vs Manual Tab Activation
DPR of 1
1 CSS pixel = 1 device pixel (older displays)
Lesson 379Device Pixels vs CSS Pixels
DPR of 2
1 CSS pixel = 4 device pixels (2×2 grid) — common on modern phones
Lesson 379Device Pixels vs CSS Pixels
DPR of 3
1 CSS pixel = 9 device pixels (3×3 grid) — high-end displays
Lesson 379Device Pixels vs CSS Pixels
Drag the viewport
or select preset device sizes
Lesson 413Testing Fluid Typography
Drag-and-drop
interfaces with no button-based alternatives
Lesson 1196Touch Gesture Accessibility Considerations
Dramatic effects
`1s` to `3s` (deliberate and attention-grabbing)
Lesson 503The transition-duration Property
Draw the arc
Use SVG's `M` (move), `A` (arc), and `L` (line) path commands to create each slice
Lesson 2607Creating Pie and Donut Charts
Dropdown menus
Arrow keys to navigate menu items, Escape to close
Lesson 1072When Custom Navigation is Needed
DSN
(Data Source Name) is your unique project identifier from Sentry's dashboard.
Lesson 2810Setting Up Sentry for Frontend
Dual interaction modes
typing to search/filter and keyboard navigation to browse options
Lesson 1198Combobox Pattern Fundamentals
Dual-mode patterns
Implement both drag-drop AND keyboard shortcuts (like arrow keys + modifier keys)
Lesson 1207Drag and Drop Accessibility
Dual-read period
– Your auth logic checks both locations for tokens, preferring the new one if present
Lesson 1604Migrating Between Storage Strategies
Duplicate content
shown for visual emphasis but redundant aurally
Lesson 1023aria-hidden: Removing from Accessibility Tree
Duplicate data
Don't repeat the same schema multiple times unnecessarily
Lesson 1868Structured Data Best Practices and Common Mistakes
Duplicate dependencies
Multiple chunks containing the same code that should be in a shared vendor bundle
Lesson 1949Analyzing Bundle Size and Split Points
Duplicate work
server renders, then client re-renders to hydrate
Lesson 1744Hydration vs. Client-Side Rendering
Duration vs Physics
Where GSAP or CSS animations specify "animate over 300ms," React Spring says "animate with tension: 170, friction: 26.
Lesson 2573React Spring Core Concepts
During Development (Lab)
Use tools like Lighthouse or WebPageTest in controlled environments to catch issues early.
Lesson 1914Performance Measurement Overview
During revalidation
Here's the magic.
Lesson 1801ISR Performance Characteristics
Dynamic changes
Do live regions actually announce updates naturally?
Lesson 1099Why Screen Reader Testing is Essential
Dynamic compression
means your server compresses files on-the-fly for each request.
Lesson 2137Pre-Compression vs Dynamic Compression
Dynamic fetching
Replace build-time data queries with request-time queries
Lesson 1792Preview Modes for Draft Content
Dynamic forms
Building requests from user interactions spread across multiple UI elements
Lesson 892Creating FormData Without Forms
Dynamic generation
Create hundreds of utilities from a simple loop
Lesson 651Plugin System Basics
Dynamic imports
load modules on-demand using the `import()` function syntax.
Lesson 1940Static vs Dynamic ImportsLesson 1941Route-Based Code Splitting
Dynamic personalization
without origin latency: Show different content based on user location, device, or cookies—all processed at the edge.
Lesson 2163CDN Edge Functions and Workers
Dynamic styling
using JavaScript variables and props becomes seamless
Lesson 602CSS-in-JS Philosophies
Dynamic Table
A session-specific table that remembers headers you've sent before.
Lesson 2122HTTP/2 Header Compression with HPACK
Dynamic values
Animating to values you don't know until runtime (CSS requires predefined keyframes)
Lesson 2546GSAP Overview and Why Use It
Dynamic, personalized content
(dashboards, user profiles, feeds) often needs **CSR** or **SSR** depending on SEO requirements.
Lesson 1729Choosing the Right Rendering Strategy
Dynamically inject the script
when conditions are met
Lesson 2049Lazy Loading Third-Party Scripts
Dynamically injected content
Ads, embeds, or banners that push existing content
Lesson 1895Cumulative Layout Shift (CLS) Explained
Dynamically load
Use the dynamic script loading techniques you learned in lesson 2793
Lesson 2799Lazy Loading Third-Party Widgets

E

E-commerce
Static product pages, dynamic cart and availability
Lesson 1778Hybrid ApproachesLesson 2782Event Tracking Fundamentals
Early, synchronous resources
that must complete before rendering starts
Lesson 2167Critical Path Analysis
Ease of testing
Quickly swap fonts during design without downloading files
Lesson 561Self-Hosting vs. Font Services
Easier logout
Delete the token from secure storage—done.
Lesson 1576Mobile and Native App Authentication
Easier to maintain
Update data without touching presentation markup
Lesson 1855JSON-LD vs Microdata vs RDFa
Easily accessible
linked in footers, during signup, and in settings
Lesson 2981Transparent Data Practices
Easy removal
Use `removeEventListener()` when needed
Lesson 719Inline vs addEventListener
Easy theming
by overriding component variables
Lesson 1367Component-Level Theme Variables
Easy to maintain
Living alongside your styles
Lesson 2560GSAP vs CSS Animations
Easy withdrawal
consent can be withdrawn as easily as it was given
Lesson 2965Cookie Consent Legal Requirements
ECMAScript
the official specification that defines how the language should work.
Lesson 33JavaScript's Creation and Standardization as ECMAScript
Edge Compression
Many CDNs offer "edge compression" that compresses at their servers.
Lesson 2140Compression and CDN Configuration
Edge functions
transform that warehouse into a mini factory—it can now *modify* the contents before shipping them out.
Lesson 2163CDN Edge Functions and Workers
Edge Rendering
Use edge functions close to users to handle authentication and rendering, reducing geographic latency.
Lesson 1763SSR and Authentication Requirements
Education
Explain what the feature does and why it's valuable
Lesson 1652Placeholder Content for Unauthorized Users
Efficient memory management
Go's garbage collector is optimized for throughput, and the language encourages efficient memory usage patterns
Lesson 1400esbuild: The Speed Champion
Efficient tree-shaking
Users of your library get minimal bundle sizes
Lesson 1401Rollup: The Library Bundler
Element interface
(only work on element nodes):
Lesson 666Elements vs Nodes
Element List
Insert + F7 (NVDA) or Control + Option + U (VoiceOver) shows all headings, links, or landmarks
Lesson 1103Basic Screen Reader Navigation Commands
Element Nodes
(type 1) represent HTML tags like `<div>`, `<p>`, or `<button>`.
Lesson 664Node Types in the DOM
Element selector
Targets all elements of a type → `p { color: blue; }` styles all paragraphs
Lesson 3IP Addresses and Domain Names
Elements and pseudo-elements
(0,0,0,1) - Least powerful
Lesson 132Specificity Order: Inline, IDs, Classes, Elements
Elements are added/removed dynamically
(user-generated content, infinite scrolling)
Lesson 767Delegation vs Direct Binding
Elements Layer
sits right after Generic (resets/normalize) and establishes default styling for plain HTML tags— those without any classes attached.
Lesson 1335The Elements Layer: Unclassed HTML Styling
Elements with `tabindex="0"`
(though this is an override, not native)
Lesson 1043Natively Focusable Elements
Elements/Inspector Panel
See the actual DOM tree structure we discussed—every HTML element, its attributes, and how it's nested.
Lesson 26Browser Developer Tools
Eliminates head-of-line blocking
across streams
Lesson 2127HTTP/3 and QUIC Protocol
Email
Human-readable contact (hash if privacy-sensitive)
Lesson 2814User Context and Session Data
Email link
`href="mailto:hello@example.
Lesson 72Hyperlinks Fundamentals
Embed a tiny image
(usually 20-40 pixels wide, under 1KB)
Lesson 2031Blur-Up Technique Implementation
Embedded iframes
Maps, videos, or widgets lower on the page
Lesson 1250The loading='lazy' Attribute
Emergency kill switch
If a feature causes problems in production, disable it immediately without rolling back your entire deployment.
Lesson 2819What Are Feature Flags and Why Use Them
Emerging markets/3G
250–500 KB
Lesson 1935Total Page Weight Budgets
Emit events upward
to notify parents of changes
Lesson 2491Leaf vs Container Components
Encapsulation
Keep complex CSS logic organized and maintainable
Lesson 651Plugin System Basics
Encode CSS metacharacters
Escape characters like `{`, `}`, `;`, `\`, quotes, parentheses, and angle brackets
Lesson 2900CSS Context Encoding
EncodingError
Data URL length exceeds browser limits
Lesson 2696FileReader Error Handling
Encryption
means all data between browser and server is scrambled using strong cryptography.
Lesson 2927Why HTTPS is Essential for Modern Web Apps
Enforce standards
across team contributions
Lesson 1924Lighthouse CLI and CI Integration
Enforcing team conventions
Required classes, specific attribute formats
Lesson 1451Custom HTML Linting Rules
Engagement
time on page, content interactions, search queries
Lesson 2782Event Tracking Fundamentals
Engagement metrics
Clicks, button interactions, form submissions, scroll depth, time spent on specific sections, and video play rates.
Lesson 2779Understanding Analytics and User Behavior Tracking
Ensure data consistency
Server and client must receive identical initial data
Lesson 1746Hydration Mismatch Errors
Ensuring discoverability
Pages with few internal links or deep in your site hierarchy might otherwise be missed
Lesson 1869What is a Sitemap and Why It Matters
Enterprise constraints
sometimes dictate tooling choices.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
Enterprise SPA (high-sensitivity data)
Lesson 1603Token Storage Best Practices by Use Case
Entire cache
Right-click a cache name and select "Delete"
Lesson 2439Clearing Cache Storage
Environment data
(URL, release version, custom tags)
Lesson 2287Error Monitoring Services
Environment differences
Server might have different data or configuration than what's loaded client-side.
Lesson 1746Hydration Mismatch Errors
EOT
(Embedded OpenType) was Microsoft's proprietary format, only needed for IE6-8.
Lesson 560Font File Formats: WOFF2, WOFF, TTF, EOT
Equal flexible items
`flex: 1` (same as `flex: 1 1 0`) makes all items grow equally from zero basis.
Lesson 291Combining Item Properties Effectively
Error boundaries
act like `try-catch` blocks for your component tree, but they work *declaratively* rather than imperatively.
Lesson 1666Error Boundary Concept in Component SystemsLesson 1947Error Boundaries for Failed Chunk Loading
Error Handling
Network failures shouldn't block form submission permanently.
Lesson 916Async Validation Patterns
Error messages
that need immediate attention
Lesson 1046tabindex='-1' for Programmatic Focus
Error messages are clear
When validation fails, users should hear what went wrong
Lesson 1106Forms Mode and Input Testing
Error Monitoring Services
to confirm error rates drop
Lesson 2295Rollback and Hotfix Workflows
Error responses
Don't keep caching failed requests
Lesson 813Deleting Cached Entries
Error state focus
(combining validation with focus)
Lesson 1062Focus Rings in Design Systems
Error/debug consoles
Sequential system messages
Lesson 1117Log Role for Sequential Updates
errors
(must fix), **warnings** (should review), and **info messages** (suggestions).
Lesson 1452Integrating with W3C ValidatorLesson 2244console.warn and console.error
Escape backslashes
(`\` → `\\`)
Lesson 2898JavaScript Context Encoding
Escape key
should still work to close the modal (native `<dialog>` elements handle this automatically with `showModal()`).
Lesson 1151Focus Trapping in Modals
Escape key handling
The dialog closes automatically when users press Escape
Lesson 1149The <dialog> Element Fundamentals
Escape newlines
(`\n` → `\\n`)
Lesson 2898JavaScript Context Encoding
Escape other control characters
(tabs, carriage returns, etc.
Lesson 2898JavaScript Context Encoding
Escape quotes
(`"` → `\"`, `'` → `\'`)
Lesson 2898JavaScript Context Encoding
ESLint extension
Shows linting errors and warnings directly in your editor (connects with the ESLint setup you learned earlier)
Lesson 1462VS Code Extensions for Web Development
ESM bundles
for modern JavaScript projects
Lesson 1385Library Mode in Vite
ESM-native development
means serving JavaScript modules directly to the browser without bundling them first during development.
Lesson 1404ESM-Native Development
essential
for responsive design—it's the foundation that allows your page to adapt naturally to different screen sizes.
Lesson 83Viewport Configuration for Responsive DesignLesson 2966Essential vs Non-Essential Cookies
Essential for core functionality
Your app shell, main CSS, critical JavaScript
Lesson 2416Understanding Precaching
Essential Images
like your logo, icons, and critical UI graphics should be precached.
Lesson 2418Precaching Static Assets
Essential motion
is animation that communicates important information or aids understanding.
Lesson 555Essential Motion vs Decorative Motion
Essential security features
(fraud detection, preventing abuse)
Lesson 2960Legitimate Interest vs Consent
Establish a z-index scale
early: Reserve ranges like 1-10 for minor overlays, 100-200 for dropdowns, and 1000+ for modals.
Lesson 236Practical Stacking Patterns
Establish connections
(TCP handshake, TLS negotiation)
Lesson 2047The Performance Cost of Third-Party Scripts
ETag
(entity tag) is a unique identifier the server sends in a response header that represents a specific version of a resource—like a fingerprint.
Lesson 1506Conditional Requests with ETag and If-None-MatchLesson 2144ETag and ValidationLesson 2161Cache Control Headers for CDNs
Ethical tracking
collects only what's necessary to improve your service—like counting page views, measuring load times, or understanding which features users engage with most.
Lesson 2975Understanding Ethical vs Invasive Tracking
Event
, *and* **LocalBusiness** schemas all at once.
Lesson 1866Multiple Schemas on One Page
Event bubbling
describes how, after an event fires on the target element, it "bubbles up" through each parent element in the DOM tree, triggering any event listeners attached along the way.
Lesson 720Event Bubbling PhaseLesson 722Event Target vs currentTargetLesson 749event.target vs event.currentTargetLesson 759Event Bubbling as the FoundationLesson 2681Preventing Multiple Event Fires
Event capturing
(also called the "capture phase") is when the event travels *down* through the DOM tree, starting from the `document` and moving through each ancestor until it reaches the actual target element.
Lesson 721Event Capturing PhaseLesson 722Event Target vs currentTarget
Event debugging
Track how many times a click handler fires
Lesson 2250console.count and console.countReset
Event handlers
are registered for visible page elements
Lesson 1909Time to Interactive (TTI)
Event handlers are registered
(buttons, links, and inputs work)
Lesson 1733Time to Interactive (TTI)
Event Handling
Listen for the `invalid` event to respond to failures
Lesson 911Understanding Constraint Validation API
Event Name
– a clear identifier like `button_click`, `add_to_cart`, or `video_play`
Lesson 2782Event Tracking Fundamentals
Event-specific details
(mouse coordinates, which key was pressed, form values)
Lesson 746The Event Object: What It Is and Why It Matters
every
`<p>` inside an `<article>`, whether it's a direct child or nested inside other elements like `<div>` or `<section>`.
Lesson 123Combinators: Descendant and ChildLesson 2701Multiple File Validation
Every 24 hours
If a service worker has been active for a day, the browser forces an update check on the next event it handles
Lesson 2378Update Checks and TriggeringLesson 2431Automatic Update Checks
Every CSS property
that affects the element, including ones you didn't explicitly set
Lesson 2183Computed Tab and Final Styles
Every page
should have a self-referencing canonical unless it's explicitly a duplicate of another page.
Lesson 1848Self-Referencing Canonicals
Every subsequent request
includes the token in the `Authorization` header:
Lesson 1569Token-Based Authentication Flow
Everything adjusts
smoothly as the viewport changes
Lesson 408Building a Fluid Type Scale
exact same function reference
, not just a function that looks the same.
Lesson 725removeEventListener() MethodLesson 2110Event Listeners That Outlive Their Elements
exactly
the data your chart displays—same values, same structure.
Lesson 2661Accessible Data Tables as FallbacksLesson 2860Generating SHA-256 Hashes
Exactly one `<img>` element
– The actual image tag that displays content and acts as the fallback
Lesson 1228The <picture> Element Structure
Examine the call stack
– Trace exactly which functions called which to reach this point
Lesson 2253What Are Breakpoints and Why Use Them
Example combination
`border-2 border-blue-500 rounded-lg` creates a 2px thick blue border with nicely rounded corners.
Lesson 623Border Utilities: Width, Color, and Radius
Example decision
Banking app → High security need → `HttpOnly` cookies with `SameSite=Strict` + refresh token rotation + token binding.
Lesson 2926Token Storage Decision Matrix
Example problem
New York is `UTC-5` in winter but `UTC-4` in summer (DST).
Lesson 2752Named Timezones vs Offsets
Example workflow
Select a `<div>`, click "+", change the selector to `.
Lesson 2181Adding New CSS Rules and Classes
Excellent FCP and LCP
HTML arrives complete, no waiting for JavaScript
Lesson 1767What is Static Site Generation?
Excessive JavaScript execution
during page load
Lesson 2222Performance Insights and Recommendations
Excessive verbosity
Does your page announce too much redundant information?
Lesson 1099Why Screen Reader Testing is Essential
Exchange code with verifier
When trading the authorization code for tokens, send the original `code_verifier`
Lesson 1623PKCE for Public Clients
Execute JavaScript
When the parser encounters `<script>` tags, it must pause DOM construction, execute the script, then resume (this is why JavaScript blocks rendering).
Lesson 1973Understanding Critical Rendering Path
Executing JavaScript
(your code runs here)
Lesson 2055What is the Main Thread?
Exit
Old DOM elements that no longer have matching data (empty chairs after guests leave)
Lesson 2629Selections and the Enter-Update-Exit Pattern
Expandable sections
When collapsing content, return to the trigger
Lesson 1092Focus Restoration Patterns
Expanded state
`aria-expanded="true"` or `"false"` indicates whether a parent node is open
Lesson 1201Tree View Pattern
Expected behaviors
Buttons activate on Space/Enter; links follow on Enter
Lesson 997Why Semantic HTML Matters for Accessibility
Expected effect size
Smaller differences (like 2% vs 2.
Lesson 2827Statistical Significance and Sample Size
Expires
sets an absolute expiration date.
Lesson 2161Cache Control Headers for CDNs
Explicit and informed
(clear what they're agreeing to)
Lesson 2954User Consent Requirements
Explicit association
(shown above): Label and input are separate, connected by `for` and `id`.
Lesson 102The <label> Element and for Attribute
Explicit consent before tracking
You must ask permission before setting cookies (except strictly necessary ones)
Lesson 2953Understanding GDPR and CCPA Fundamentals
Explicit grants
Was this user given specific permission?
Lesson 1645Resource-Level Permissions
Explicit grid
tracks are the ones *you* define using properties like `grid-template-columns` and `grid- template-rows`.
Lesson 313Explicit vs Implicit Grid
explicit placement
(like `grid-column: 2`), the algorithm places those first, then fills in the auto-placed items around them.
Lesson 353Auto-Placement AlgorithmLesson 357Implicit vs Explicit Placement
Explicit URLs
mean each locale has its own distinct URL path (`/en/`, `/fr/`, `/es/`), making language part of the resource identifier itself.
Lesson 2540Content Negotiation vs Explicit URLs
Export My Data
(data portability)
Lesson 2964Privacy Settings Dashboard
Extending selectively
Keep defaults but add custom colors:
Lesson 612Customizing Colors
Extending the theme
lets you add your own values while keeping all of Tailwind's defaults intact.
Lesson 644Extending the Default Theme
External files
live separately and are referenced:
Lesson 1980Inline vs External Critical JS
External source maps
live in separate `.
Lesson 2281Inline vs External Source Maps
Extract the authorization code
from the `code` parameter
Lesson 1621Redirect URIs and Callback Handling
Extract the dominant color
from your image during build time (using tools or manual sampling)
Lesson 2028Solid Color Placeholders
Extract the extension
by finding the last dot and taking everything after it
Lesson 2699File Extension Validation
Extract the locale-neutral path
(`/products/123`)
Lesson 2510Redirecting Based on Language Change
Extract the new token
from the response or a refreshed meta tag
Lesson 2911CSRF Tokens in Form Submissions
Extraction
Automatically extract all translatable strings from your codebase into a source language file (usually English)
Lesson 2537Collaboration with Translators and Translation Services
Extremely large codebase
esbuild or Turbopack for build time savings
Lesson 1408Choosing the Right Bundler
Extremely short block period
(~100ms): Text invisible, waiting for web font
Lesson 1275font-display: fallback Strategy
Extrinsic sizing
means *you* explicitly set the dimensions using properties like `width` and `height`.
Lesson 151Intrinsic vs Extrinsic Sizing

F

facade
is essentially a lightweight impostor that *looks* like the real thing but doesn't do the expensive work until necessary.
Lesson 2050Script Loading FacadesLesson 2837Privacy-Friendly Embed Alternatives
Fail the install
if it exceeds quota mid-download
Lesson 2422Cache Size Limitations
Failed refresh with rotation
Revoke token family on reuse detection (lesson 1612)
Lesson 1613Refresh Token Revocation
Fallback chains
prevent broken UI when translations are missing.
Lesson 2532Nested Translation Keys and Fallback Chains
Fallback Font Generator
is a web-based tool where you input your web font name and fallback font, and it calculates and displays the CSS you need — ready to copy and paste into your stylesheet.
Lesson 1316Tools for Calculating Fallback Metrics
Fallback for older browsers
Browsers that don't understand `<picture>` will ignore it entirely and just render the `<img>`, ensuring your content still displays.
Lesson 1234The Mandatory <img> Fallback
Fallback required
Use `<picture>` element with AVIF → WebP → JPEG hierarchy
Lesson 2002Format Selection Decision Tree
Familiar patterns
Feels like modern JavaScript you already know
Lesson 796IndexedDB Wrappers and Best Practices
FAQs
Each question is a header; answers are hidden until clicked
Lesson 1181Accordion Pattern Overview and Structure
Fast
The browser can locate the element instantly
Lesson 675document.getElementById()
Fast builds
Only generate what you need upfront
Lesson 1789Fallback Pages and On-Demand Generation
Fast connections, legacy users
→ Skip AVIF, use WebP with JPEG fallback
Lesson 1246Format Selection Strategy
Fast rebuilds
Minimal optimization for quicker compile times
Lesson 1393Development vs Production Mode
Faster connection establishment
(one round trip instead of multiple)
Lesson 2127HTTP/3 and QUIC Protocol
Faster initial content display
Users see content before JavaScript executes
Lesson 1718What is Server-Side Rendering (SSR)?
Faster initial load
50 items load in milliseconds vs.
Lesson 1507Why Pagination Matters
Faster load times
Assets arrive quicker from nearby servers
Lesson 2156What is a CDN and Why Use One
Faster Resolution
Stack traces with source maps pinpoint the exact line in your original code, not minified production bundles.
Lesson 2809Why Client-Side Error Tracking Matters
Faster TTI
Less code to parse and execute means quicker interactivity
Lesson 1752Islands Architecture
Fathom
– Similar philosophy, emphasizes speed and simplicity, offers uptime monitoring too.
Lesson 2785Privacy-Focused Alternatives
Feature detection
`[@supports(display:grid)]:grid`
Lesson 642Arbitrary Variants
Feature gating
Disable sensitive features on insecure connections
Lesson 2932Detecting HTTPS in JavaScript
Feature usage
After they've used a core feature successfully
Lesson 2360Strategic Prompt Timing
Feature-based
`auth`, `profile`, `settings`, `checkout`
Lesson 2529Namespace Organization for Large Applications
Feature-Level Boundaries
Wrap major features or routes separately.
Lesson 1669Positioning Error Boundaries in the Component Tree
Features
Consider what your project needs now and might need later.
Lesson 1815Platform Selection Criteria
Fetch data
Load content before showing the page
Lesson 982Route Guards and Navigation Hooks
Fetch Event
and **IndexedDB Inspection**, you can intercept failed requests, serialize their details, and save them.
Lesson 2329Queue Failed Requests
Fetch from network
if not cached, optionally storing the response for future use
Lesson 2386Service Worker Cache API Fundamentals
Fetching new translation data
(network delay)
Lesson 2515Language Switching Performance
Fewer DNS lookups
One domain instead of many
Lesson 2051Self-Hosting Third-Party Resources
Fewer failed requests
Prevent users from trying actions that will fail
Lesson 1638Security Considerations for Frontend Authorization
Fewer listeners
One listener instead of dozens
Lesson 760Basic Delegation Pattern
Fewer memory allocations
= faster page load and better performance
Lesson 763Performance Benefits of Delegation
FID
(measures actual first interaction delay) and **TBT** (measures blocking time).
Lesson 1909Time to Interactive (TTI)Lesson 1986Identifying Long Tasks with Performance API
FID measures interactivity
the delay between when a user first interacts with your page (clicks a button, taps a link) and when the browser can actually respond.
Lesson 1888The Three Core Web Vitals: LCP, FID, and CLS
FID/INP
Smaller initial bundles reduce main thread blocking, improving interactivity
Lesson 1939What is Code Splitting and Why It Matters
Field data
(like Chrome User Experience Report) shows real-world impact and helps prioritize what actually matters to users
Lesson 1914Performance Measurement OverviewLesson 1926Chrome User Experience Report (CrUX)
Field Metrics
(Real User Monitoring/RUM) come from actual visitors using your site in the wild.
Lesson 1912Field vs Lab Metrics
Field type is identified
"Edit text," "checkbox," "combo box," etc.
Lesson 1106Forms Mode and Input Testing
Field-specific errors
for validation failures (422)
Lesson 1494Status Code Response Bodies
File content
Scan for malicious payloads (scripts in images, executable code)
Lesson 2706Server-Side Validation Requirement
File extension
Standard format (`.
Lesson 1224Image Source Naming Conventions
File type
Check MIME type *and* inspect file headers (magic bytes), not just extensions
Lesson 2706Server-Side Validation Requirement
FileList
(just like you get from a file input element) containing all the dropped files.
Lesson 2678The drop Event and DataTransfer
Filename
Sanitize to prevent directory traversal attacks (`.
Lesson 2706Server-Side Validation Requirement
Filmstrip View
This shows thumbnail screenshots captured throughout the loading process.
Lesson 1925WebPageTest for Deep AnalysisLesson 2221Screenshots and Filmstrip View
Filter by "Img"
to see only image requests
Lesson 429Testing Responsive Image Delivery
Filter out unauthorized items
before rendering
Lesson 1654Menu and Navigation Filtering
Filtering
is deciding which events to ignore completely (leaves blowing).
Lesson 2815Filtering and Sampling Errors
Filters
`filter` properties like `blur()` or `brightness()`
Lesson 509Properties That Can and Cannot Transition
Finally paints content
← FCP happens here
Lesson 1731First Contentful Paint (FCP)
Financial reports
Income, expenses, totals
Lesson 120When to Use Tables vs. CSS Grid
Finding all focusable elements
inside the modal (buttons, links, inputs, elements with `tabindex="0"`)
Lesson 1050Focus Trapping in Modal Dialogs
Fine-grained animations
with precise timing and orchestration
Lesson 2642D3 vs Higher-Level Charting Libraries
Fine-grained control
Pause, reverse, seek to specific timestamps, or adjust speed mid-animation
Lesson 2546GSAP Overview and Why Use ItLesson 2842The script-src Directive
First Impression Performance
Landing pages live or die by first impression.
Lesson 1759Marketing and Landing Pages
First Input Delay
(1734) improves since the main thread isn't busy hydrating static content.
Lesson 1750Partial Hydration Concepts
First product image
in a listing
Lesson 2021Eager Loading Above the Fold
First request (cache miss)
Similar to SSG—instant from CDN.
Lesson 1801ISR Performance Characteristics
First Rule of ARIA
is "Don't use ARIA if semantic HTML exists.
Lesson 1031When Semantic HTML Doesn't Exist
First time creation
When you open a database that doesn't exist yet
Lesson 785Database Versioning and onupgradeneeded
first value
in the list appears **closest to the user** (on top), and the **last value** appears at the back.
Lesson 198Multiple BackgroundsLesson 273flex-flow: Shorthand for Direction and WrapLesson 952Reading Query Parameters
First-party tracking
refers to data collection by the website you're actually visiting.
Lesson 2976First-Party vs Third-Party Tracking
Fixed expiration
Session dies after N minutes from creation
Lesson 1570Session Storage and Management
Fixed positioning
removes an element entirely from the normal document flow and positions it relative to the **viewport** (the browser window).
Lesson 220Fixed PositioningLesson 221Fixed vs Absolute PositioningLesson 1708Positioning and Stacking Toasts
Fixed spacing scale
`w-4`, `w-8`, `w-64` (uses your spacing theme)
Lesson 619Sizing: Width and Height
Fixed-height chat boxes
Use `overflow-y: auto` with `overflow-x: hidden` to allow vertical scrolling while preventing horizontal overflow from breaking your layout.
Lesson 246overflow-x and overflow-y for directional control
Flame Chart (default view)
Shows chronological execution.
Lesson 2069Identifying Long Tasks in DevTools
flex items
(direct children of a `display: flex` container) and **grid items** (direct children of a `display: grid` container) break this rule.
Lesson 231Flexbox and Grid ContextsLesson 254Enabling Flexbox with display: flexLesson 255The Flex Container and Flex ItemsLesson 268display: flex and Creating a Flex Container
Flexbox as a line
and **Grid as a table**.
Lesson 324Grid vs Flexbox: Choosing the Right Tool
Flexbox solves this elegantly
Lesson 304Icon and Text Alignment
Flexibility
– swap token mappings without touching component logic
Lesson 1367Component-Level Theme VariablesLesson 2404What is Workbox and Why Use It
Flexible with limits
`flex: 1 1 300px` with `max-width: 600px` lets an item grow from 300px baseline but never exceed 600px.
Lesson 291Combining Item Properties Effectively
Floated elements
(float left/right boxes)
Lesson 232Stacking Order Within a Context
Focus follows programmatically
– call `.
Lesson 1073Arrow Key Navigation Patterns
Focus indicators
provide accessible feedback:
Lesson 2584Simple State Changes with Transitions
Focus Management
When scrolling causes the focused item to unmount, save its index.
Lesson 2105Accessibility Considerations for Virtual Lists
Focus management hints
The browser understands this is a special container for focus trapping
Lesson 1149The <dialog> Element Fundamentals
Focus on content priorities
small screens force you to decide what's truly important
Lesson 380Mobile-First Philosophy
Font becomes "failed"
After the swap period, fallback font is permanent for this page visit
Lesson 1275font-display: fallback Strategy
Font families
and sizes for labels, titles, and tooltips
Lesson 2650Theming and Custom Styles
Font Foundries
increasingly offer variable font versions of their commercial typefaces.
Lesson 581Finding and Loading Variable Fonts
Font Loading API
gives you JavaScript-level control.
Lesson 570Font Loading API
Font services
Link to fonts hosted by providers like Google Fonts or Adobe Fonts
Lesson 561Self-Hosting vs. Font Services
Font Squirrel's Webfont Generator
and **Transfonter** provide visual interfaces where you can upload fonts, check boxes for character sets (Latin, Cyrillic, etc.
Lesson 1285Tools for Font Subsetting
Font weight examples
using the same text at different weights
Lesson 594Documentation and Type Specimens
Fontaine
and **Capsize** are automation tools that handle all this complexity for you.
Lesson 1307Automatic Fallback Generation ToolsLesson 1316Tools for Calculating Fallback Metrics
Footer Links
The most common pattern.
Lesson 2959Privacy Policy and Terms Links
For above-the-fold critical images
Lesson 2036Choosing the Right Strategy
For Accessibility
Screen readers used by visually impaired users rely on semantic tags to navigate.
Lesson 46What is Semantic HTML?
For checkboxes
What key is sent when the form submits
Lesson 96Checkbox and Radio Inputs
For constraining flexibility
, use `minmax()` to set boundaries:
Lesson 342Grid Template Sizing Best Practices
For content-driven sizing
, use `auto` or `min-content`/`max-content` when the content should dictate track size, not the container.
Lesson 342Grid Template Sizing Best Practices
For critical fonts
(like your main heading font):
Lesson 1317Preloading Fonts with font-display Coordination
For decorative images
(purely visual, no information value), use an empty alt attribute:
Lesson 74Images: src, alt, and Accessibility
For donuts
Draw a smaller inner circle and use two arcs per slice
Lesson 2607Creating Pie and Donut Charts
For expensive content
(large videos, complex components): Consider `0.
Lesson 2024Threshold Configuration for Loading Triggers
For flexible, proportional layouts
, use `fr` units.
Lesson 342Grid Template Sizing Best Practices
For Maintainability
When you or another developer reads your code later, `<aside>` immediately communicates "this content is tangentially related" better than `<div class="sidebar">` ever could.
Lesson 46What is Semantic HTML?
For meaningful images
, describe what's important about the image in context:
Lesson 74Images: src, alt, and Accessibility
For multiple files
Maintain an array tracking which files to keep, then reconstruct the input using a `DataTransfer` object:
Lesson 2713Removing and Replacing Previews
For photographs without transparency
Lesson 2002Format Selection Decision Tree
For radio buttons
Which inputs belong to the same group *and* what key is sent
Lesson 96Checkbox and Radio Inputs
For SEO
Search engines understand semantic HTML better.
Lesson 46What is Semantic HTML?
For single-file inputs
Simply clear the preview and reset the file input:
Lesson 2713Removing and Replacing Previews
For text-based columns
, `fit-content()` prevents excessive whitespace:
Lesson 342Grid Template Sizing Best Practices
Force re-scraping
using each platform's debugging tool after updates
Lesson 1845Social Sharing Best Practices
Force Refresh Pattern
When a new service worker activates using `skipWaiting()`, send a message to all controlled clients suggesting they reload.
Lesson 2381Handling Version Mismatches
Force retry
Skip the backoff delay and try immediately
Lesson 1694User Feedback During Retries
Force State
(or look for a `:hov` button in the Styles pane).
Lesson 2182Forcing Element States
Forge API requests
directly using tools like Postman or cURL
Lesson 1648Client-Side Permission Security Limitations
Forgetting `event.waitUntil()`
in lifecycle events causes premature termination
Lesson 2443Common Service Worker Pitfalls
Forgotten edge cases
What happens when focus is on the last item and the user presses the down arrow?
Lesson 1086Testing Custom Navigation
Forgotten event listeners
attached to DOM elements that get removed
Lesson 2107What Are Memory Leaks and Why They Matter
Form best practices
Use `submit` on forms (not `click` on buttons), which captures both mouse clicks and keyboard submissions.
Lesson 745Event Type Selection and Best Practices
Form data
is the most obvious: names, email addresses, phone numbers, addresses, payment information, and profile details all clearly identify users.
Lesson 2956Personal Data in the Frontend
Form elements
aligned horizontally with consistent sizing
Lesson 210Inline-Block Display
Form Events
submitting forms, input changes, focus/blur on fields
Lesson 716What Are DOM Events?
Form inputs
(`<input>`, `<textarea>`, `<select>`) - Receive user data
Lesson 1043Natively Focusable ElementsLesson 1060Focus Styles for Different Element Types
Form Instructions
Don't hide form validation rules or formatting requirements.
Lesson 1135When NOT to Use Visually Hidden Content
Form Labels
Every `<input>` should have an associated `<label>`, either through wrapping or the `for`/`id` relationship.
Lesson 1449Accessibility Rules in HTML Linters
Form submissions
Before sending data to the server
Lesson 1641Checking Permissions Before Actions
Form validation states
An `<input>` that fails validation is still just an input to assistive technologies unless you add `aria-invalid="true"` and `aria-describedby` pointing to an error message.
Lesson 1033Enhancing Incomplete Native Elements
Format checks
Email, phone, URL patterns using regex or built-in validators
Lesson 2905Validating and Sanitizing Input
FormatJS
(`@formatjs/intl-*`) – Modular polyfills for each Intl feature
Lesson 2778Browser Support and Polyfills
Formatting prices
with proper separators:
Lesson 2771Intl.NumberFormat Basics
Forms
F key cycles through form controls
Lesson 1103Basic Screen Reader Navigation Commands
FOUT
happens when the browser immediately displays text using a fallback system font (like Arial or Times), then swaps to the web font once it loads.
Lesson 566Font Loading and FOIT/FOUTLesson 1271Understanding Font Loading and FOIT/FOUTLesson 1900Common Causes of Layout Shift
FPS (Frames Per Second)
Green bars show smooth rendering; red indicates jank
Lesson 2211Performance Panel Overview and Recording
Fractions
`w-1/2`, `w-1/3`, `w-full` (percentage-based)
Lesson 619Sizing: Width and Height
Fragmentation
PWAs can force updates more easily, keeping users synchronized.
Lesson 2369Update Mechanisms
Fragments
are reusable units that define a set of fields on a type.
Lesson 1527Aliases and Fragments
Frame bars
Green bars represent frames rendered under 16.
Lesson 2598Measuring Animation Performance
frame drops
missed rendering opportunities that create visible stuttering or "jank.
Lesson 2214Frames Per Second (FPS) and Frame DropsLesson 2221Screenshots and Filmstrip View
Frame timeline
Red bars indicate dropped frames (jank!
Lesson 546Measuring Animation Performance
Framework auto-escaping is enabled
and not bypassed
Lesson 2906XSS Prevention Checklist
Framework Detection
Modern platforms like Netlify and Vercel auto-detect popular frameworks and preset these values.
Lesson 1813Build Configuration
Framework handlers
Identify which framework (React, Vue) attached a specific listener
Lesson 2185Event Listeners Panel
Framework Wrapper
Your React app is primary, but you import a `<video-player>` Web Component that you also use in your marketing site (which is Vue).
Lesson 2494Hybrid Approach with Frameworks
Framework-agnostic projects
might prefer BEM or utility-first approaches that work anywhere.
Lesson 603Choosing an Architecture for Your Project
Framework-specific instrumentation
Many SSR frameworks expose hydration start/end events you can hook into with `performance.
Lesson 1756Measuring Hydration Performance
Framework-specific needs
Check what your framework recommends (many now default to Vite)
Lesson 1408Choosing the Right Bundler
Framework-specific tools
are even more powerful:
Lesson 1984Build-Time Critical Resource Optimization
Free hosting
with HTTPS
Lesson 1810GitHub Pages
Free of technical jargon
No mention of "NullPointerException" or "Connection timeout to MySQL cluster.
Lesson 1680Server Error Messages (5xx)
Frequently changing
(new content appears constantly)
Lesson 2420When to Use Each Strategy
Frequently updated content
→ Consider SSR with caching or Incremental Static Regeneration
Lesson 1777Limitations of Pure SSG
Fresh response updates cache
for future requests
Lesson 2154Stale-While-Revalidate Strategy
Freshness-based caching
The server says "this file is good for 1 year" using headers like `Cache-Control: max- age=31536000`.
Lesson 2141HTTP Caching Fundamentals
frontend
(the client) and **backend** (the server) are completely separate concerns that communicate only through a defined interface—the REST API.
Lesson 1474Client-Server SeparationLesson 1817Decoupling Frontend from Backend
Frontend teams
can redesign the UI, switch frameworks, or build mobile apps—all using the same API
Lesson 1474Client-Server Separation
Full control
over build process via Actions
Lesson 1810GitHub Pages
Full font
500 KB with 2,000+ glyphs (A-Z, a-z, accented characters, symbols, etc.
Lesson 1283What is Font Subsetting
Full rollout
– 100% of users see the new behavior
Lesson 2828Flag Lifecycle and Technical Debt
Full SSG
means generating all possible pages during the build process.
Lesson 1793Choosing Between Full SSG and Hybrid Approaches
Full stack traces
(with source map support)
Lesson 2287Error Monitoring Services
Full-height hero sections
combine `min-height: 100vh` with centered content inside each panel.
Lesson 375Grid-Based Split ScreensLesson 384Viewport Units: vw, vh, vmin, vmax
Full-Screen Modals
completely block content until a choice is made.
Lesson 2967Cookie Banner Placement and Timing
Full-screen overlays
Instead of floating dropdowns, consider expanding menus to fill the screen on mobile.
Lesson 1171Mobile-Friendly Dropdown Patterns
Full-Screen Presentation
On small viewports, modals should often take up the entire screen rather than floating in the center.
Lesson 1161Mobile Modal Patterns
Function Breakpoints
using `debug(functionName)` on key entry points.
Lesson 2267Breakpoint Strategies for Different Scenarios
Function-as-a-Service platforms
(AWS Lambda, Vercel Functions, Netlify Functions)
Lesson 1728Infrastructure and Hosting Requirements
Functional
Remember preferences, language settings, user customizations
Lesson 2969Granular Cookie Category Controls
Functional cookies
directly requested by the user (language preference)
Lesson 2954User Consent Requirements
Future developers
(including you!
Lesson 48The <nav> Element
Future Requests
Browser checks its cache first before making new network requests
Lesson 2141HTTP Caching Fundamentals

G

Gaps and patterns
Repeated operations that could be batched or optimized
Lesson 1917Reading Performance Flame Charts
Gaps and spacing
Difficult to create consistent, predictable gutters between columns
Lesson 242Float Layout Limitations
Garbage collection events
(downward drops in the memory graph, often marked with small icons)
Lesson 2219Memory Allocation and Garbage Collection
garbage collector
(GC) automatically identifies and removes objects you're no longer using.
Lesson 2108How JavaScript Garbage Collection WorksLesson 2219Memory Allocation and Garbage Collection
Gatsby
Inline critical CSS by default in production builds
Lesson 1984Build-Time Critical Resource Optimization
GDPR
(General Data Protection Regulation in the EU) and **CCPA** (California Consumer Privacy Act) mandate explicit consent and disclosure for most cookies beyond strictly necessary ones.
Lesson 2965Cookie Consent Legal Requirements
Gecko
Firefox's rendering engine
Lesson 18The Rendering Engine
Gender agreement
Some languages change adjectives based on the gender of variables
Lesson 2530Interpolation and Variable Substitution
General Sibling (`~`)
Selects *all* siblings that come after the element
Lesson 124Combinators: Adjacent and General Sibling
Generate a code verifier
Your app creates a random string (43-128 characters) kept in memory
Lesson 1623PKCE for Public Clients
Generate a fresh nonce
(cryptographically random string)
Lesson 2885Nonce-Based Inline Styles
Generate bidirectional links
If Post A references Post B, ensure Post B links back to Post A
Lesson 1787Related Content and Computed Fields
Generate previews
for images
Lesson 2672Change and Input Events
Generated files
Auto-generated code from tools or frameworks
Lesson 1434Ignoring Files with .eslintignore
Generates
a static page for each group (e.
Lesson 1786Taxonomy and Category Pages
Generates static HTML
for every possible route/page in your site
Lesson 1722The SSG Build and Delivery Process
Generates the XML
following the sitemap structure you learned previously
Lesson 1871Generating Sitemaps Automatically
Generating a temporary URL
using `URL.
Lesson 2092Inline Workers with Blob URLs
Generation
happens using patterns like `getStaticProps` and `getStaticPaths`
Lesson 1781Headless CMS Integration Fundamentals
Generic (resets/normalize)
← You are here
Lesson 1334The Generic Layer: Resets and Normalize
Generic and apologetic
"Something went wrong on our end.
Lesson 1680Server Error Messages (5xx)
Generic family
(`sans-serif` as ultimate fallback)
Lesson 569Fallback Font Stacks
Generic grouping
where no semantic element fits the content's meaning
Lesson 60When to Use <div> vs Semantic Elements
Geographic content
Show local store locations, region-specific pricing, appropriate currency, or language based on the user's location.
Lesson 1762Geographic and Personalized Content
Geographic optimization
Different CDNs excel in different regions.
Lesson 2164Multi-CDN Strategies
Geographic proximity
A user in Tokyo connects to a Tokyo edge server, not your origin server in New York
Lesson 2157CDN Performance Benefits
Geographic targeting
Different features per region
Lesson 2823Targeting and Segmentation
Geolocation
(typically via IP address) tells you *where* a user is physically located.
Lesson 2503Geolocation vs Language Detection
Gestures
are another minefield.
Lesson 2367User Experience Tradeoffs
Get early warnings
when changes impact LCP, CLS, or TBT
Lesson 1924Lighthouse CLI and CI Integration
GET requests
are generally safe to retry since they don't modify data.
Lesson 1687Understanding When to Retry Network Requests
Get the filename
from the File object's `name` property
Lesson 2699File Extension Validation
Get the user's roles/permissions
from your auth context or token
Lesson 1654Menu and Navigation Filtering
GIF
(Graphics Interchange Format) is one of the oldest image formats on the web, famous for one thing: **simple animation**.
Lesson 1245GIF: Animation and Legacy Support
GitHub Pages
Stored as repository secrets for GitHub Actions workflows
Lesson 1811Environment Variables
Give users real control
over their data with simple, accessible settings
Lesson 2982Building Trust Through Privacy-First Design
Global Privacy Control (GPC)
A newer signal (`Sec-GPC: 1`) that carries legal weight under CCPA and GDPR.
Lesson 2977Respecting Do Not Track and Global Privacy Control
Global resets
Body or HTML element styles that need page-wide effect
Lesson 1346Global Styles in CSS Modules
Global scope
Variables available everywhere (like `window`, `document`, or global variables you've defined)
Lesson 2273Using the Scope Panel to Inspect Variables
Global scope issues
Inline handlers expect functions to exist globally
Lesson 719Inline vs addEventListener
Global variables
that accumulate data indefinitely
Lesson 2107What Are Memory Leaks and Why They Matter
Glossaries
or definitions
Lesson 52The <aside> Element
Good practice
Request only fields you'll actually render
Lesson 1545Best Practices for Query Design
Google Analytics Debugger
or **Tag Assistant** highlight analytics calls in real-time.
Lesson 2789Testing and Debugging Analytics
Google Tag Manager (GTM)
, **Adobe Launch**, and **Tealium**.
Lesson 2801What is a Tag Manager and Why Use One
GPU (Graphics Processing Unit)
Lesson 2593GPU-Accelerated Properties
GPU Process
The artist—handles graphics and animations
Lesson 17Browser Architecture Overview
Grace period
– Run both systems in parallel for weeks or months
Lesson 1604Migrating Between Storage Strategies
Graceful Degradation
and **Progressive Enhancement** aim to make websites work for everyone, but they approach the problem from opposite directions.
Lesson 43Graceful Degradation vs Progressive EnhancementLesson 1670Fallback UI Design PatternsLesson 2504Handling Unsupported Locales
Graceful Fallbacks
When intercepting fetch events, check if the requested resource exists in your cache.
Lesson 2381Handling Version Mismatches
Graceful migrations
In `onupgradeneeded`, check `oldVersion` to apply only needed changes
Lesson 796IndexedDB Wrappers and Best Practices
Gradients and Backgrounds
`linear-gradient(to right, .
Lesson 2526RTL-Specific Edge Cases
Gradual rollout option
Use feature flags or percentage-based server rules to enforce CSP for 10% of traffic first, then scale up as confidence grows.
Lesson 2873Transitioning from Report-Only to Enforcement
Gradual rollouts
Enable features for 5% of users, then 20%, then 100%, monitoring metrics at each stage.
Lesson 2819What Are Feature Flags and Why Use Them
Gradual tightening
Add a stricter policy while keeping the old one during migration
Lesson 2877Multiple CSP Headers and Policies
Granular component formatting
lets you specify exactly which date/time pieces to include and how to display them.
Lesson 2760Granular Component Formatting
Granular control
users must be able to accept some categories and reject others
Lesson 2965Cookie Consent Legal Requirements
Granular persistence
Store each category's state separately
Lesson 2969Granular Cookie Category Controls
Graphics with transparency
like badges or overlays
Lesson 1241PNG: Lossless Compression and Transparency
GraphQL
endpoints provided by the CMS
Lesson 1781Headless CMS Integration Fundamentals
GraphQL Errors
occur when your query executes but the server reports problems with specific fields (like permission denied or validation failures).
Lesson 1564Error Handling in Client Libraries
GraphQL Multipart Request Specification
A community standard that maps file uploads to GraphQL variables using the same `multipart/form-data` format REST uses, but with additional JSON mapping instructions.
Lesson 1553File Uploads: REST Multipart vs GraphQL Approaches
Gray bars
Other browser work (garbage collection, system tasks)
Lesson 2212Reading the Timeline: Main Thread Activity
Gray sections
labeled "Task" that stretch horizontally
Lesson 2057Identifying Main-Thread Blocking
Great for static sequences
Fire-and-forget animations
Lesson 2560GSAP vs CSS Animations
Green (off)
is for rules that don't fit your project or conflict with your team's conventions.
Lesson 1430Rules: Errors, Warnings, and Off
Gregorian calendar
the Western calendar system adopted in 1582 and now used internationally for civil purposes.
Lesson 2733No Support for Calendar Systems
Grid cells
are the individual boxes created where a row track and column track intersect.
Lesson 312Grid Lines, Tracks, Cells, and Areas
Grid Container Properties
apply to the parent element (the one with `display: grid`).
Lesson 315Grid Container vs Grid Item Properties
Grid Item Properties
apply to the children of the grid container.
Lesson 315Grid Container vs Grid Item Properties
Grid layouts
(jumping down/up multiple rows)
Lesson 1081Page Up and Page Down
Grid lines
are the invisible dividing lines that create your grid's structure.
Lesson 312Grid Lines, Tracks, Cells, and AreasLesson 343Grid Lines and Line Numbers
Grid navigation
Home/End can move to row boundaries
Lesson 1080Home and End Key Support
Grid tracks
are the spaces *between* two adjacent grid lines.
Lesson 312Grid Lines, Tracks, Cells, and Areas
Grids and tables
All four arrows
Lesson 1073Arrow Key Navigation Patterns
Group semantically
using `role="toolbar"` on the container
Lesson 1203Toolbar Pattern
Groups
content items by each taxonomy value
Lesson 1786Taxonomy and Category Pages
Guardrail metrics
Things that shouldn't get worse (page load time, error rate)
Lesson 2825A/B Testing Fundamentals
Guide attention
by smoothly revealing or hiding elements
Lesson 501Introduction to CSS Transitions
Guide toward a solution
Tell users *how* to fix it: "Username can only contain letters, numbers, and underscores" is actionable; "Invalid username" is not.
Lesson 1678Validation Error Messages

H

H (Hue)
Angle on color wheel (0° = red, 120° ≈ green, 240° ≈ blue)
Lesson 493LCH and OKLCH: Perceptually Uniform Color Models
Handle cascading requests
as scripts load even more resources
Lesson 2047The Performance Cost of Third-Party Scripts
Handle errors
if the user denied permission (`?
Lesson 1621Redirect URIs and Callback Handling
Handle interruptions gracefully
– Save state when uploads pause or fail
Lesson 2718Resumable Upload Pattern
Handle user action
When clicked, call `skipWaiting()` on the waiting service worker (via `postMessage`), then reload the page when `controllerchange` fires.
Lesson 2430Prompting Users for Updates
Handling user input
(clicks, scrolls, typing)
Lesson 2055What is the Main Thread?
Hard refresh
(Ctrl+Shift+R or Cmd+Shift+R) to force new image selection
Lesson 429Testing Responsive Image Delivery
Harder to maintain
Finding and updating event handlers means searching through HTML
Lesson 719Inline vs addEventListener
Has attribute
`[required]` targets any element that simply *has* a required attribute, regardless of value
Lesson 122Attribute Selectors
hash
is the part of a URL that comes after the `#` symbol, like `https://example.
Lesson 946Hash Changes and Fragment NavigationLesson 965Updating the URL with pushState and replaceState
Hash generation
For each inline `<script>` or `<style>` block, it calculates the SHA-256 hash
Lesson 2865Build Tools and Automatic Hash Generation
Hashed filenames
for cache-busting (e.
Lesson 1380Building for Production with Vite
HATEOAS
Hypermedia guides next actions (you'll learn this later)
Lesson 1472The Uniform Interface Constraint
Have minimal footprint
– Scripts under 1KB vs 45KB+ for GA4
Lesson 2785Privacy-Focused Alternatives
Header (button)
The always-visible, clickable element that controls expansion
Lesson 1181Accordion Pattern Overview and Structure
Header injection
The tool either outputs a ready-to-use CSP header string or injects it directly into your HTML's meta tag
Lesson 2865Build Tools and Automatic Hash Generation
Header missing
→ Potentially forged cross-origin request → Reject
Lesson 2914Custom Request Headers as CSRF Defense
Header present
→ Legitimate request from your frontend
Lesson 2914Custom Request Headers as CSRF Defense
Headers tab
Contains validation headers like `If-None-Match`
Lesson 2208Identifying 304 Not Modified Responses
Heading Hierarchy
Rules enforce that headings follow a logical order (don't skip from `<h1>` to `<h4>`), ensuring screen reader users can navigate your document structure.
Lesson 1449Accessibility Rules in HTML Linters
Heading sizes
maintain proportional relationships to the base
Lesson 408Building a Fluid Type Scale
Headings
Can go larger, but avoid exceeding `60–80px` unless intentional
Lesson 410Preventing Overly Large TextLesson 1103Basic Screen Reader Navigation Commands
Hearing impairments
Users who are deaf or hard of hearing need captions for audio content
Lesson 987What is Web Accessibility and Why It Matters
Heavy computation
during rendering
Lesson 1738Server Response Time
Heavy dependencies
(rich text editors, charting libraries)
Lesson 1942Component-Based Code Splitting
Hebrew
, **Persian (Farsi)**, and **Urdu**.
Lesson 2516Understanding Right-to-Left Languages
Height percentages
reference the parent's height (but the parent must have an explicit height set!
Lesson 157Percentage Values
Helpful context
Explain *what* they tried to access and *why* it's restricted.
Lesson 1662Handling 403: Access Denied UILesson 2293Logging Best Practices
Hidden content
Don't mark up text invisible to users
Lesson 1868Structured Data Best Practices and Common Mistakes
Hidden content confusion
Off-screen slides may still be in the tab order or announced by screen readers, creating a confusing experience.
Lesson 1187Why Carousels Are Challenging for Accessibility
Hidden State
The button doesn't render at all.
Lesson 1655Action Button States
Hide network messages
Suppresses network-related console output
Lesson 2195Preserving Log and Console Settings
Hide or rotate labels
Remove every other x-axis label, rotate labels vertically, or switch to abbreviated formats (Jan → J).
Lesson 2657Breakpoint-Based Chart Simplification
Hides overflow
so content doesn't spill out
Lesson 1127The CSS Visually Hidden Pattern
Hiding empty message containers
so they don't create awkward spacing
Lesson 453:empty for Conditional Content Display
Hierarchical scopes
where `admin:users` implies `read:users`
Lesson 1619OAuth Scopes and Permissions
Hierarchical when related
`/authors/7/books/3` shows book 3 by author 7
Lesson 1471Resources and Resource Identifiers
Hierarchy depth
`aria-level` tells screen readers how deeply nested each item is
Lesson 1201Tree View Pattern
Hierarchy layouts
organize parent-child relationships into tree structures.
Lesson 2636Layouts: Force, Hierarchy, and Pie
High
Significant security risk requiring prompt action
Lesson 2944Reading npm Audit Reports
Highcharts
is the enterprise veteran—comprehensive, battle-tested, with excellent documentation and support.
Lesson 2643Overview of Popular Charting Libraries
Higher conversion rates
because users feel safe sharing information
Lesson 2982Building Trust Through Privacy-First Design
Highly customized builds
need Webpack's granular control.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
Highly detailed artwork
– Paintings or intricate textures work better as raster images
Lesson 1244SVG: Scalable Vector Graphics for the Web
Highly interactive dashboards
→ CSR with skeleton
Lesson 1763SSR and Authentication Requirements
History API
gives JavaScript the power to manipulate that history stack directly.
Lesson 960What is the History API and Why It Matters
history stack
think of it like a deck of cards representing each page you've visited.
Lesson 960What is the History API and Why It MattersLesson 961The History Stack and Navigation States
Holy Grail Layout
is a famous web design pattern with a full-width header at top, a full-width footer at bottom, and three columns in the middle (left sidebar, main content, right sidebar).
Lesson 358Holy Grail Layout with Grid
Homepage
Maybe revalidate every 60 seconds (high visibility, moderate update frequency)
Lesson 1802Content Freshness vs Build Time Trade-offs
Honest about purposes
"We use analytics to understand which features are popular"
Lesson 2981Transparent Data Practices
Honor their choices immediately
without dark patterns or friction
Lesson 2982Building Trust Through Privacy-First Design
Horizontal groups
(toolbars, tabs): Left/Right arrows
Lesson 1073Arrow Key Navigation Patterns
Horizontal offset
How far right (positive) or left (negative) the shadow moves
Lesson 176Text ShadowLesson 205Text Shadow
Horizontal scaling
(multiple servers) as traffic grows
Lesson 1764Cost and Infrastructure Considerations
Horizontal scrolling galleries
Set `overflow-x: auto` and `overflow-y: hidden` to create sideways-scrolling image galleries.
Lesson 246overflow-x and overflow-y for directional control
Horizontal toolbars
Home focuses the leftmost button, End the rightmost
Lesson 1080Home and End Key Support
Hot Module Replacement (HMR)
is nearly instantaneous in Vite because it only updates the changed module.
Lesson 1386Vite vs Other Build ToolsLesson 1394Webpack Dev ServerLesson 1405Comparing Build Times
Hot reloading
Built-in development server with automatic HMR
Lesson 1402Parcel: Zero Configuration Bundling
Hover states
are perfect transition candidates:
Lesson 2584Simple State Changes with Transitions
How to access it
In Chrome or Firefox, press `F12` to open DevTools, then click the device icon or press `Ctrl+Shift+M` (Windows) or `Cmd+Shift+M` (Mac).
Lesson 404Testing Media Queries Across Devices
How to ask
The HTTP method (usually GET for viewing pages)
Lesson 7The Request-Response Cycle
Hreflang tags
are `<link>` elements placed in your HTML `<head>` that explicitly declare these relationships.
Lesson 2542Hreflang Tags for SEO
HTML 2.0 (1995)
standardized what browsers were already doing and added forms, letting users submit data for the first time.
Lesson 31HTML Evolution: From HTML 1.0 to HTML5
HTML content
, you'll see the markup rendered or displayed as formatted code, helping you quickly identify structural issues or verify template output.
Lesson 2201Response Preview and Content Inspection
HTML foundation
Your content and structure work without anything else.
Lesson 42Progressive Enhancement Philosophy
HTML pages
change often and need up-to-date content.
Lesson 2399Handling Different Content Types
HTML Parsing
The browser reads HTML from top to bottom, character by character
Lesson 672The Critical Rendering Path
HTML sanitization
becomes critical.
Lesson 2904DOMPurify for HTML Sanitization
HTML source
the original code you authored.
Lesson 671DOM vs HTML Source
HTML/CSS/JavaScript
70-80% reduction (a 100KB file becomes 20-30KB)
Lesson 2132Gzip Compression Algorithm
HTML5 (2014)
revolutionized everything.
Lesson 31HTML Evolution: From HTML 1.0 to HTML5
HTMLCollection
, which is a live, array-like list of matching elements.
Lesson 676document.getElementsByClassName()
HTMLCollections
, which are **live**.
Lesson 680Live vs Static Collections
HTTP request
to the server, like saying: "Hello, I'd like to GET the resource at /about.
Lesson 6HTTP: The Language of the WebLesson 7The Request-Response CycleLesson 10What is a Web Server?
HTTP request-response pairs
entire network resources like HTML files, CSS, images, and API responses.
Lesson 816Cache API vs localStorage and IndexedDB
HTTP requests
and sending back **responses** — but only you can access it.
Lesson 14Localhost and Development ServersLesson 797What Are Cookies and How They Work
HTTP Status Codes
immediately communicate outcome (200 OK, 404 Not Found, 500 Server Error) without inspecting response bodies.
Lesson 1476Self-Descriptive MessagesLesson 1552Error Handling Patterns in REST vs GraphQLLesson 2229SEO Audits in Lighthouse
HTTP-Only cookies
→ automatic but needs CSRF protection
Lesson 1593Token Storage Options Overview
HTTP-only cookies aren't feasible
(pure client-side apps with no backend)
Lesson 1595localStorage Security Risks
HTTP/1.1
is like a single-lane road where cars (requests) must wait for the car ahead to reach its destination before moving.
Lesson 2120HTTP/2 MultiplexingLesson 2130Detecting and Leveraging HTTP/2 and HTTP/3
HTTP/2 multiplexing
is like a multi-lane highway where all cars travel simultaneously, and you can even split a large truck's cargo across multiple lanes so smaller cars don't get stuck behind it.
Lesson 2120HTTP/2 Multiplexing
HTTP/2 Server Push
breaks this pattern.
Lesson 2121HTTP/2 Server Push
HTTP/2/3
Serve more granular files, skip domain sharding, use individual icons instead of sprites
Lesson 2130Detecting and Leveraging HTTP/2 and HTTP/3
HTTP/HTTPS
The "language" browsers and servers use to communicate
Lesson 1What is the Internet?
HttpOnly
flag prevents JavaScript from accessing the cookie through `document.
Lesson 803Secure and HttpOnly FlagsLesson 807Cookie Security Best Practices
HttpOnly + Secure Cookie
Server sends refresh token as HttpOnly, Secure, SameSite cookie.
Lesson 1600Refresh Token Storage Strategy
HttpOnly cookie
(JavaScript can't read it) or **never sent to the frontend at all**
Lesson 1600Refresh Token Storage Strategy
HttpOnly, Secure, SameSite=Strict cookies
for both access and refresh tokens
Lesson 1603Token Storage Best Practices by Use Case
HTTPS
is the **secure version** of HTTP—the "S" stands for "Secure.
Lesson 13HTTPS and SSL/TLSLesson 2355Understanding the Install Prompt
HTTPS prevents this
by ensuring the service worker code is authentically from your server and hasn't been tampered with during transmission.
Lesson 2933Service Workers Require HTTPS
HTTPS requirements
, and **cache versioning bugs**.
Lesson 2443Common Service Worker Pitfalls
Hue
is the actual color on the color wheel, measured in degrees (0-360):
Lesson 183HSL and HSLA Functions
Hue, Saturation, Lightness
a color model that matches how we naturally think about color.
Lesson 183HSL and HSLA Functions
Huffman compression
, shrinking the bytes needed for any text that must be sent literally.
Lesson 2122HTTP/2 Header Compression with HPACK
Human right
Everyone deserves equal access to information and services
Lesson 987What is Web Accessibility and Why It Matters
hybrid approach
uses SSR to deliver the initial page quickly with fully-rendered HTML, then switches to CSR for all subsequent page navigations.
Lesson 1765Hybrid Approaches: SSR + CSRLesson 2494Hybrid Approach with FrameworksLesson 2507Storing User Language Preference
Hybrid approaches
combine static generation with fallback pages, on-demand generation, or client-side hydration.
Lesson 1793Choosing Between Full SSG and Hybrid Approaches
hydration mismatch
happens when the HTML the server sent doesn't match what your client-side JavaScript expects to render.
Lesson 1746Hydration Mismatch ErrorsLesson 1747Avoiding Hydration Mismatches
Hydration time
measures how long this transformation takes—from when the HTML loads to when the app becomes fully interactive (TTI).
Lesson 1739Hydration TimeLesson 1742What is Hydration?Lesson 1756Measuring Hydration Performance

I

IANA timezone database
(the same database operating systems use).
Lesson 2754Timezone Libraries: date-fns-tz and Luxon
Icons
– Interface icons (arrows, menus, checkmarks) scale beautifully on any device, from low-DPI laptops to 4K retina screens
Lesson 1244SVG: Scalable Vector Graphics for the WebLesson 1934Image and Media Asset Budgets
ID = phone number
(direct, fast, one person)
Lesson 688Choosing the Right Selector
ID selector
Targets one unique element → `#header { font-size: 24px; }` styles the element with `id="header"`
Lesson 3IP Addresses and Domain NamesLesson 121Basic Selectors: Type, Class, and ID
idempotent
if making the same request multiple times produces the same result as making it once.
Lesson 1482HTTP Method Semantics: Safe and IdempotentLesson 1691Idempotent Request Design
Idempotent operations
with certain status codes:
Lesson 1687Understanding When to Retry Network Requests
Identifies the dependency chain
to determine what modules are affected
Lesson 1374Hot Module Replacement (HMR) in Vite
Identify every stacking context
Use your browser's DevTools to inspect elements that won't move forward or backward.
Lesson 235Debugging Stacking Issues
Identify problems
Where do users get stuck or leave?
Lesson 2779Understanding Analytics and User Behavior Tracking
Idle time
refers to these brief windows when the browser has finished urgent work and is waiting for the next frame or user input.
Lesson 2077Understanding Browser Idle Time
If auto-playing
Keep under 500KB or use animated image alternatives
Lesson 1934Image and Media Asset Budgets
If bot
serve pre-rendered HTML (often using a headless browser like Puppeteer)
Lesson 1881Dynamic Rendering and Bot Detection
If changed
Server sends `200 OK` with the new file and updated ETag
Lesson 2144ETag and Validation
If found
Return cached response instantly
Lesson 2152Cache-First Strategy
If invalid
, it displays the browser's default error message near the first invalid field
Lesson 905The reportValidity() Method
If not found
Fetch from network, optionally cache for next time
Lesson 2152Cache-First Strategy
If the hashes match
The resource is unchanged—safe to execute.
Lesson 2935What is Subresource Integrity (SRI)
If they don't match
The browser blocks the resource entirely, preventing potentially malicious code from running.
Lesson 2935What is Subresource Integrity (SRI)
If unchanged
Server responds with `304 Not Modified` (no body content), saving bandwidth
Lesson 2144ETag and Validation
If user
serve your normal SPA bundle
Lesson 1881Dynamic Rendering and Bot Detection
Ignoring HTTP status codes
Returning `200 OK` for errors with error details in the body
Lesson 1481RESTful vs REST-ish APIs
Illustrations
– Flat design artwork, infographics, and decorative elements that need to remain crisp
Lesson 1244SVG: Scalable Vector Graphics for the WebLesson 2001SVG for Vector Graphics
Image Processing
Applying filters, resizing, or converting formats.
Lesson 2094Real-World Use Cases: Heavy Computation
Image Size Mismatches
Open Graph expects at least 1200×630px.
Lesson 1845Social Sharing Best Practices
Image thumbnails
in a row with controlled spacing
Lesson 210Inline-Block Display
Image widths
(from your `w` descriptors)
Lesson 417Width Descriptors (w) in srcset
ImageMagick
, **mozjpeg**, and online services typically offer a progressive flag or option during JPEG export.
Lesson 2005Progressive vs Baseline Encoding
ImageObject
schemas are structured data vocabularies from Schema.
Lesson 1865Video and Image Object Schema
Images without dimensions
Browser doesn't reserve space until the image loads
Lesson 1895Cumulative Layout Shift (CLS) Explained
Immediate feedback
Let users know about format errors (like invalid email patterns) right away using the `invalid` event or input-triggered custom validation
Lesson 918Field-Level vs Form-Level Validation
Immediate for Network Errors
If an API call fails, show the error right away—don't leave the user wondering if their action is still processing.
Lesson 1683Error Message Placement and Timing
Immediate Updates
work for isolated changes, but rapid-fire updates need spacing.
Lesson 1118Announcement Timing and Delays
Immediate visual content
The HTML arrives already containing meaningful content, not blank loading states
Lesson 1737Speed Index
Immediately display the file
in your UI when the user selects it (using preview techniques you learned earlier)
Lesson 2720Upload with Optimistic UI Updates
Immutability by default
Every operation with libraries like `date-fns` returns a *new* date object, eliminating accidental mutations that plague native `Date`.
Lesson 2735Why Use Date Libraries Over Native Date
Implement custom headers
APIs can require custom headers (like `X-Requested-With`) that simple forms can't forge
Lesson 2907What is CSRF and Why Frontend Matters
Implement error boundaries
Wrap third-party initialization in try-catch blocks with custom error reporting.
Lesson 2829Embedding Third-Party Scripts Safely
Implement rate limiting
to prevent abuse
Lesson 881WebSocket Security Considerations
Implement size-aware caching
– skip caching huge video files
Lesson 2396Cache Size Management
Implicit association
Wrap the input inside the label:
Lesson 102The <label> Element and for Attribute
Implicit grid
tracks are automatically created by the browser when you place more items than fit in your explicit grid.
Lesson 313Explicit vs Implicit Grid
Important caveat
`true` means the browser *has* a network interface, not that it can necessarily reach the internet.
Lesson 2323Detecting Online/Offline State
Important Context
Information that helps screen reader users understand something is probably valuable to *all* users.
Lesson 1135When NOT to Use Visually Hidden Content
Important distinction
Decoding is NOT verifying.
Lesson 1590Decoding JWTs in the Frontend
Important subjects
get lost in large group photos on small screens
Lesson 1227Understanding Art Direction in Responsive Images
Impossible to forge
Attackers can't inject the right value
Lesson 2854Understanding CSP Nonces
Improve performance
mobile devices (often on slower connections) load the lightest CSS first
Lesson 380Mobile-First Philosophy
Improve responsiveness
– Users can interact with the page while secondary features load in the background using `requestIdleCallback` or lazy loading patterns
Lesson 1991Optimizing JavaScript Execution with Code Splitting
Improved perceived performance
Content appears faster, even if full interactivity takes time
Lesson 1718What is Server-Side Rendering (SSR)?
Improved reliability
If one edge server fails, requests route to another
Lesson 2156What is a CDN and Why Use One
Improved SEO
search engines see complete HTML
Lesson 1744Hydration vs. Client-Side Rendering
Improves Core Web Vitals
Faster LCP and better FID/INP by reducing main thread work
Lesson 1951What is Lazy Loading and Why It Matters
In headers
(common with `Link` header):
Lesson 1511Pagination Metadata
In Individual Fetch Requests
Lesson 1659Detecting 401 Responses
In NVDA
Press `Insert + F7` to open the Elements List, then select "Links"
Lesson 1107Link List and Testing Link Context
In Production (Field)
Collect Real User Monitoring (RUM) data from actual visitors.
Lesson 1914Performance Measurement Overview
In VoiceOver
Press `VO + U`, then use left/right arrows to reach the Links menu
Lesson 1107Link List and Testing Link Context
Inactive
Briefly inactive between event loop cycles
Lesson 788Transactions: Read, Write, and Lifecycle
Include proper dimensions
(width/height) to prevent layout shift when the iframe loads
Lesson 1258Lazy Loading Iframes and Embeds
Include relevant keywords naturally
If someone searches for "chocolate chip cookies," those words in your description may appear bold in search results, catching their eye.
Lesson 85Meta Description for SEO
Include value
Answer "Why should I click?
Lesson 1826The Meta Description Tag
Incoming requests to `/en/about`
→ Redirect to `/about` (canonical URL)
Lesson 2541Default Locale Handling
Incompatible JavaScript
Code had to be written twice, tested in both browsers
Lesson 29The Browser Wars and Their Legacy
Inconsistent behavior
between development, staging, and production
Lesson 2948Lock Files and Dependency Pinning
Inconsistent parsing behavior
across browsers, especially for date strings that aren't in ISO 8601 format.
Lesson 2727The Date Object and Its Historical Context
Inconsistent patterns
Your menu uses up/down arrows, but your toolbar uses left/right for similar items.
Lesson 1086Testing Custom Navigation
Inconsistent rendering
across different browsers
Lesson 1446Why Lint HTML? Catching Errors Early
Inconsistent state
Different tabs might behave differently until they reload
Lesson 2377skipWaiting() to Bypass Waiting
Incorrect nesting
Valid server HTML that violates client framework rules (like a `<div>` inside a `<p>`).
Lesson 1746Hydration Mismatch Errors
Increased garbage collection
The browser works harder to reclaim memory, causing jank
Lesson 2107What Are Memory Leaks and Why They Matter
Increased server processing
(parsing larger headers)
Lesson 1592Token Payload Size and Performance
Incremental Builds
Only rebuild pages that have actually changed since the last build.
Lesson 1788Build Performance with Large Datasets
Incremental Static Regeneration (ISR)
is a hybrid approach that lets you update static pages *after* deployment without rebuilding everything.
Lesson 1794What is Incremental Static Regeneration
Indentation
The `indent` rule accepts a number (spaces) or `"tab"`, and can include options for specific scenarios like `SwitchCase` indentation.
Lesson 1431Rule Options and Customization
Independent deployment
Teams can update their component without coordinating releases
Lesson 2489Micro-Frontend Architecture Boundaries
independent scripts
like analytics or ads that don't depend on anything else.
Lesson 2048async vs defer for Script LoadingLesson 2792async vs defer Attributes
IndexedDB Inspection
, you can intercept failed requests, serialize their details, and save them.
Lesson 2329Queue Failed Requests
IndexedDB/Cache API
Browsers may evict data marked as "best effort" when device storage runs low.
Lesson 820Capacity and Limits
India
UTC+5:30 (offsets can include minutes!
Lesson 2747Understanding UTC and Timezone Offsets
Indicate drop zones
with clear ARIA labels when keyboard-navigating
Lesson 1207Drag and Drop Accessibility
Individual bundle budget
50 KB gzipped per chunk
Lesson 1933JavaScript Bundle Size Budgets
Individual bundle/chunk sizes
for specific routes or features
Lesson 1933JavaScript Bundle Size Budgets
Individual entries
Hover over a cached resource and click the delete icon
Lesson 2439Clearing Cache Storage
Inefficient code
or blocking operations
Lesson 1738Server Response Time
Inert background
Content outside the dialog becomes non-interactive (when used as a modal)
Lesson 1149The <dialog> Element Fundamentals
Infinite scroll
patterns load more content as users browse naturally
Lesson 1507Why Pagination MattersLesson 2106Performance Tradeoffs and Alternatives
Informational updates
"Auto-save complete"
Lesson 1707Toast Notification Patterns and Use Cases
Informative messaging
"You need Admin access to view team analytics"
Lesson 1652Placeholder Content for Unauthorized Users
Initial configuration
NVDA will offer a quick setup guide on first launch
Lesson 1101Setting Up NVDA on Windows
Initial crawl
Googlebot downloads your HTML and follows links it finds in the raw source
Lesson 1878Googlebot's JavaScript Rendering
Initial load time
on target connection speeds
Lesson 1935Total Page Weight Budgets
Initial Login
Client receives an access token and refresh token
Lesson 2924Refresh Token Rotation
Initial Request
Browser asks server for `style.
Lesson 2141HTTP Caching Fundamentals
Initial Token Retrieval
Read the CSRF token from a meta tag during app initialization (as you learned in lesson 2910).
Lesson 2915CSRF Protection in SPAs
Initially
The first item in the group gets `tabindex="0"`, all others get `tabindex="-1"`
Lesson 1074Roving tabindex Pattern
Initiator Column
Preloaded resources should show the HTML document as initiator, confirming they started before JavaScript execution.
Lesson 1972Measuring Resource Hint Impact
Inject delays
to test timeout behavior and exponential backoff timing
Lesson 1696Testing Retry Logic
Injection Attacks
By controlling which domains can serve content, CSP prevents attackers from loading malicious resources from unauthorized servers.
Lesson 2839What is Content Security Policy?
Inline and inline-block elements
in normal flow (text and inline content)
Lesson 232Stacking Order Within a Context
Inline annotations
See who last edited each line (Git blame) without leaving your file
Lesson 1468Git Integration and Source Control Panel
inline approach
for component-focused work, as it matches how you think about individual elements.
Lesson 403Organizing Media Queries in CSSLesson 719Inline vs addEventListener
Inline axis
Runs horizontally (left to right by default) — this defines your columns
Lesson 314The Grid Axis: Rows and ColumnsLesson 458Block and Inline Axes
Inline elements
(like `<span>`, `<a>`, `<strong>`) flow horizontally within their parent, sitting next to each other like words in a paragraph.
Lesson 207What is Normal Flow?Lesson 210Inline-Block Display
Inline Event Handlers
onclick, onerror attributes (these always violate CSP)
Lesson 2840How CSP Works in Browsers
Inline messages
A sticky note on the door
Lesson 1707Toast Notification Patterns and Use Cases
Inline scripts without nonces
Shows `inline` as the blocked resource
Lesson 2870Analyzing CSP Violation Reports
Inline source maps
embed the entire mapping data directly inside your JavaScript file as a Base64-encoded `data:` URL.
Lesson 2281Inline vs External Source Maps
Inline style attributes
`<div style="color: USER_INPUT">`
Lesson 2900CSS Context Encoding
Inline SVG
adds DOM elements directly to your page.
Lesson 2046SVG Performance Best Practices
Inlining
means embedding JavaScript directly between `<script>` tags in your HTML:
Lesson 1980Inline vs External Critical JS
Inlining resources
(embedding small CSS/images directly in HTML) to avoid round trips
Lesson 2119HTTP/1.1 Limitations and Connection Management
inner container
manages the horizontal three-column layout.
Lesson 294Holy Grail LayoutLesson 305Pricing Table Pattern
Input field focus style
(often different from buttons)
Lesson 1062Focus Rings in Design Systems
Input padding
Icons or visual hints may need repositioning
Lesson 2523Form Controls and Input Direction
Insert
it into the DOM (covered in upcoming lessons)
Lesson 689Creating Elements with createElement
Insights
section or dedicated **Performance Insights** panel.
Lesson 2222Performance Insights and Recommendations
Inspect every visible element
using DevTools, noting which CSS rules are actually applied
Lesson 1975Extracting Critical CSS Manually
Inspect network traffic
to discover "hidden" endpoints
Lesson 1648Client-Side Permission Security Limitations
Inspect tool
(top-left icon): Click any page element to jump directly to it in the tree
Lesson 2174Elements Panel Overview and Navigation
Inspecting arrays of primitives
to see values and indices side-by-side
Lesson 2188Console.table() for Structured Data
install event
, you create a new cache with the updated version:
Lesson 2397Versioned Cache KeysLesson 2402Cache Warming Strategies
Install phase
The new service worker downloads and caches all updated assets into a *new* cache (often named with a different version key like `precache-v2`)
Lesson 2423Precache Update Flow
Installability warnings
that explain why your PWA might not be installable
Lesson 2307Testing and Validation
Installation fails
If the `install` event handler throws an error or a promise rejection occurs, that service worker immediately becomes redundant
Lesson 2375The Redundant State
Instant First Contentful Paint
Readers see the article content almost immediately (faster FCP and LCP metrics), even on slow connections or devices, because the HTML contains the actual text.
Lesson 1757SSR for Content-Heavy Sites
Instant First Paint
Unlike CSR (which shows a blank page while JavaScript loads) or SSR (which waits for server rendering), SSG pages display content immediately.
Lesson 1723SSG Performance Characteristics
Instant responses
No server delay for UI updates
Lesson 1760When CSR is Better
Instant TTFB
The file already exists, no computation required
Lesson 1767What is Static Site Generation?
Instant updates
Changes to a single module only require re-processing that one file
Lesson 1404ESM-Native DevelopmentLesson 2363PWA vs Native App: Capabilities Comparison
Instructions are provided
Any `aria-describedby` hints should be read
Lesson 1106Forms Mode and Input Testing
Integration checks
Ensuring compatibility with your CMS or framework
Lesson 1451Custom HTML Linting Rules
Integration needs
AWS CloudFront for AWS shops, Vercel for frontend frameworks
Lesson 2159Popular CDN Providers
Integration points
When your component needs to style children it doesn't directly control
Lesson 1346Global Styles in CSS Modules
Integrity
ensures data isn't modified in transit.
Lesson 2927Why HTTPS is Essential for Modern Web Apps
Interact with your page
for a few seconds
Lesson 2057Identifying Main-Thread Blocking
Interactions
User inputs and their processing time
Lesson 1916Chrome DevTools Performance Panel Basics
Interactive cards
Hover over a card to reveal buttons, change image brightness, or animate icons inside it.
Lesson 638Group Hover and Focus
Interactive Hover Effects
Add visual feedback to make charts explorable.
Lesson 2610SVG Styling and CSS Integration
Interactive markers
on line/scatter plots
Lesson 2658Touch-Friendly Interaction Targets
Intercept the 401
When any API call returns 401, catch it before showing an error
Lesson 1663Token Refresh on 401
Interface elements
that need to scale
Lesson 2001SVG for Vector Graphics
Interface language
(buttons, labels, messages)
Lesson 2503Geolocation vs Language Detection
Interfaces
Querying specific fields on implementations
Lesson 1536Inline Fragments and Type Conditions
Internal analytics
(aggregated, anonymized traffic patterns)
Lesson 2960Legitimate Interest vs Consent
Internal consistency checks
that should never fail in correct code
Lesson 2192Console.assert() for Runtime Checks
Internal tools
with homogeneous user bases where everyone shares language preferences
Lesson 2540Content Negotiation vs Explicit URLs
International Laws
vary by country but often reference WCAG:
Lesson 991Legal Requirements and Standards Compliance
Internationalization
`Vary: Accept-Language` caches different language versions.
Lesson 2149Vary Header
Internationalization matters
If your site will be translated into languages with different writing modes (Arabic, Hebrew, Japanese vertical text), logical properties handle direction changes automatically.
Lesson 465When to Use Logical vs Physical Properties
Interpolation
is the process of replacing placeholders in a translation string with actual runtime values.
Lesson 2530Interpolation and Variable SubstitutionLesson 2579Interpolation and Ranges
Interpret
The browser reads and understands these files
Lesson 16What is a Web Browser?
Interruption Handling
Traditional animations often need explicit stop/restart logic when values change mid-animation.
Lesson 2573React Spring Core Concepts
Intersection Observer
is a modern API specifically designed to efficiently watch when elements enter or leave the viewport (or any ancestor container).
Lesson 743Intersection Observer as Event Alternative
Intersection Observer API
is a browser feature that watches elements and notifies you when they become visible (or invisible) within the viewport—without constantly checking scroll position.
Lesson 1954Intersection Observer API FundamentalsLesson 1955Implementing Custom Image Lazy LoadingLesson 2018Intersection Observer for Custom Lazy LoadingLesson 2799Lazy Loading Third-Party Widgets
Intl
object is JavaScript's built-in Internationalization API, designed to handle locale-aware formatting right in the browser.
Lesson 2767Introduction to the Intl API
Intl Polyfill
– Community-maintained compatibility layers
Lesson 2778Browser Support and Polyfills
Intrinsic sizing
means the element's size is determined *by its content*.
Lesson 151Intrinsic vs Extrinsic Sizing
Invalid credentials
– Your token is malformed, expired, or doesn't match server records
Lesson 1657Understanding 401 Unauthorized
Invalid times
When clocks "spring forward" (usually 2:00 AM → 3:00 AM), any time between 2:00 and 3:00 doesn't actually exist that day.
Lesson 2734Daylight Saving Time Edge Cases
Invalid Token Rejection
Submit a request with a corrupted, expired, or completely fabricated token.
Lesson 2916Testing CSRF Protection
Invasive tracking
goes further: fingerprinting devices, building shadow profiles, tracking users across unrelated sites, or collecting sensitive data without clear purpose or consent.
Lesson 2975Understanding Ethical vs Invasive Tracking
Inverse focus
(for dark backgrounds)
Lesson 1062Focus Rings in Design Systems
IP binding
is simpler: you record the IP address when the token is issued and validate it on subsequent requests.
Lesson 2925Fingerprinting and Token Binding
Irrelevant schemas
Don't add Article schema to a product page just because you can
Lesson 1868Structured Data Best Practices and Common Mistakes
ISO 8601 format
, which looks like `"YYYY-MM-DD"` for dates, `"HH:mm"` for times, and `"YYYY-MM- DDTHH:mm"` for datetime-local.
Lesson 2766Formatting Dates for Input Elements
It changes frequently
– caching won't help if the code updates often anyway
Lesson 1980Inline vs External Critical JS
It opens a menu
– Use `aria-haspopup="true"` (or `"menu"`)
Lesson 1164Menu Button Semantics and ARIA
It requests unusual permissions
(filesystem access, network calls)
Lesson 2947Reviewing Package Source Code
It's a button
– Use `<button>` or add `role="button"`
Lesson 1164Menu Button Semantics and ARIA
It's critical
(handles authentication, payment processing, or sensitive data)
Lesson 2947Reviewing Package Source Code
It's larger
(> 2 KB) – embedding bloats every HTML response
Lesson 1980Inline vs External Critical JS
It's mutable
, meaning date operations modify the original object rather than returning new instances.
Lesson 2727The Date Object and Its Historical Context
It's new or obscure
(few downloads, unknown maintainers)
Lesson 2947Reviewing Package Source Code
It's stable
– unchanged code benefits from long-term caching
Lesson 1980Inline vs External Critical JS
It's truly critical
– must execute before first paint (like feature detection or theme switching)
Lesson 1980Inline vs External Critical JS
Italic
uses a specially designed slanted version of the font, while **oblique** simply tilts the regular letters.
Lesson 167Font Weight and Font Style
Italic (`ital`)
Toggles between roman and true italic letterforms (0 or 1)
Lesson 1288Variable Font Axes
ITCSS
(which you've just learned) organizes CSS by specificity layers—from global styles to specific utilities.
Lesson 1340ITCSS vs Other Methodologies: When to Use WhatLesson 1351Understanding the Specificity War Problem
ITCSS + BEM
Large, complex projects with design systems
Lesson 1340ITCSS vs Other Methodologies: When to Use What
Item height
how tall each item is (assuming uniform height)
Lesson 2099Calculating Visible RangeLesson 2102Overscan and Buffer Items
Item position
= `itemIndex * itemHeight`
Lesson 2100Fixed-Height Item Virtualization
Items array
(products purchased with IDs, names, prices, quantities)
Lesson 2784E-commerce and Conversion Tracking
Its current state
`aria-selected="true"`, `aria-expanded="false"`
Lesson 1032ARIA for Complex Interactive Widgets

J

Jamstack
stands for **JavaScript, APIs, and Markup**—it's not a specific technology but rather an **architecture pattern** for building websites and applications.
Lesson 1816What is Jamstack?
Japanese
has no plural distinction at all
Lesson 2531Pluralization Rules Across Languages
JavaScript bundle size
The framework code plus your application code must download completely
Lesson 1749Performance Cost of Hydration
JavaScript bundle size budget
is a concrete, measurable limit you set on:
Lesson 1933JavaScript Bundle Size Budgets
JavaScript cannot access them
, making them **immune to XSS**.
Lesson 1593Token Storage Options Overview
JavaScript engine
is a specialized program inside your browser that reads and executes JavaScript code.
Lesson 19The JavaScript Engine
JavaScript enrichment
Adds interactive features like smooth animations or instant form validation, but the page works without it.
Lesson 42Progressive Enhancement Philosophy
JavaScript errors
when code expects proper DOM structure
Lesson 1446Why Lint HTML? Catching Errors Early
JavaScript execution
happens on this same thread, interrupting the pipeline whenever a script runs.
Lesson 1985Understanding the Main Thread and Browser Rendering PipelineLesson 2591Understanding the 60fps Target
JavaScript execution time
per script
Lesson 2053Measuring Third-Party Script Impact
JavaScript files
in the `<head>` without `async` or `defer` also block parsing.
Lesson 2167Critical Path Analysis
JavaScript libraries and bundles
are prime CDN targets—especially vendor code that rarely changes.
Lesson 2158Types of Assets to Serve from CDNs
JavaScript objects directly
, including complex structures, arrays, and even binary data like `Blob` and `File` objects.
Lesson 783IndexedDB vs localStorage: Key Differences
JavaScript parsing
Tracking code must be evaluated by the browser
Lesson 2787Performance Impact of Analytics
JavaScript provides the interactivity
Lesson 45How the Pillars Work Together
JavaScript, APIs, and Markup
it's not a specific technology but rather an **architecture pattern** for building websites and applications.
Lesson 1816What is Jamstack?
JavaScriptCore
Used by Safari
Lesson 19The JavaScript Engine
JAWS
Press `R` to move to regions/landmarks
Lesson 1070Landmark Navigation in Screen Readers
JAWS (Windows, commercial)
may add extra context or behave differently in "forms mode" versus "browse mode.
Lesson 1125Testing Announcements Across Screen Readers
JIT (Just-In-Time) mode
revolutionized Tailwind by generating only the exact utilities you write in your markup, on- demand during development.
Lesson 643Performance Considerations with Variants
Jitter
means adding controlled randomness to your retry delays.
Lesson 1689Adding Jitter to Retry Delays
JPEG
Quality settings typically range from 0-100.
Lesson 2004Quality Settings and Visual Perception
JPEG/PNG
Universal fallback—every browser, everywhere, always
Lesson 1246Format Selection Strategy
JSON
(application/json) structures data as JavaScript objects: `{"name":"John","email":"john@example.
Lesson 893Form Serialization PatternsLesson 1475Resource RepresentationLesson 2957Right to Access and Data Portability
JSON responses
(common with APIs), the Preview tab presents collapsible objects and arrays, making it easy to navigate deeply nested data structures without scrolling through raw text.
Lesson 2201Response Preview and Content Inspection
JSON Web Token (JWT)
is a compact, self-contained token format that encodes information as a JSON object.
Lesson 1578What is a JWT and Why Use It?
JSON-LD
(JavaScript Object Notation for Linked Data) separates structured data into a `<script>` tag with `type="application/ld+json"`:
Lesson 1855JSON-LD vs Microdata vs RDFa
Justify
Long-form articles where the formal look outweighs readability concerns
Lesson 171Text Alignment and Justification

K

Keep durations under 500ms
longer feels sluggish
Lesson 512Common Transition Patterns and Best Practices
Keep essential motion
(perhaps simplified)
Lesson 555Essential Motion vs Decorative Motion
Keep it fast
Long animations frustrate keyboard users who are waiting to interact with newly-revealed content.
Lesson 1185Animated Transitions and Accessibility
Keep it minimal
JWTs travel with every authenticated request.
Lesson 1582Custom Claims and Payload Design
Keep manual controls working
(arrows, dots, keyboard)
Lesson 1195Handling Reduced Motion Preferences
Keep messages concise
"15 results found" not "There are 15 results available for your search"
Lesson 1122Search Result Announcements
Keep semantic relationships together
Place labels, descriptions, and their target elements on the same side of the shadow boundary.
Lesson 2472Shadow DOM and Accessibility
Keep the tone friendly
A conversational, empathetic tone ("Oops, we can't find that!
Lesson 1681Not Found and Resource Errors
Keep the UI responsive
during complex operations
Lesson 2085What Web Workers Are and Why They Exist
Key column
The unique identifier for each record
Lesson 2235IndexedDB Inspection and Debugging
Key Differences from Box-Shadow
`text-shadow` has no spread radius and no inset keyword—it only follows the outline of your text characters, not the element box.
Lesson 205Text Shadow
Key numbers
significant data points or percentages
Lesson 1144Alt Text for Charts and Graphs
Key pattern
Never store the child's birthdate during the age gate itself—that would be collecting personal data before consent.
Lesson 2961Children's Privacy and Age Verification
Key phases
(left to right in each bar):
Lesson 2198Understanding the Request Waterfall
Keyboard accessibility
Elements like `<button>` and `<a>` are focusable by default
Lesson 997Why Semantic HTML Matters for AccessibilityLesson 1160Scrolling and Large Modal Content
Keyboard layout
Choose "laptop" if you don't have a numpad
Lesson 1101Setting Up NVDA on Windows
Keyboard shortcut
Press `Command ( ) + F5` (or `Command + Touch ID` on newer MacBooks)
Lesson 1102Setting Up VoiceOver on macOS
Keyboard traps are common
Many carousels fail to implement proper focus management, making it difficult or impossible to navigate with a keyboard alone.
Lesson 1187Why Carousels Are Challenging for Accessibility
Keyframe percentages
let you specify exactly *when* during that timeline certain styles should apply.
Lesson 516Keyframe Percentages
Keylogging
Capture everything users type, including passwords
Lesson 2892What is XSS and Why It Matters
Keys
unique identifiers to track which items are which
Lesson 2576useTransition for Mounting/Unmounting
Known at build time
(you can list them explicitly)
Lesson 2420When to Use Each Strategy

L

L (Lightness)
0% = black, 100% = white — perceptually uniform across all hues
Lesson 493LCH and OKLCH: Perceptually Uniform Color Models
LAB
and **OKLAB** separate **lightness** (how bright or dark) from **color** (hue and intensity).
Lesson 494LAB and OKLAB Color FunctionsLesson 1914Performance Measurement Overview
Lab Data (Synthetic Testing)
uses controlled, simulated environments.
Lesson 1901Core Web Vitals in the Field vs Lab
Lab Data Only
It simulates user experiences but doesn't capture what actual users encounter in the wild.
Lesson 2232Lighthouse Limitations and Complementary Tools
Lab Metrics
come from controlled testing environments—tools like Lighthouse, WebPageTest, or browser DevTools running on your machine or in CI/CD pipelines.
Lesson 1912Field vs Lab MetricsLesson 1928Establishing Performance Baselines
Lab tools
provide detailed diagnostics and help you identify specific bottlenecks
Lesson 1914Performance Measurement Overview
Labeled landmarks
when you have multiple of the same type
Lesson 1071Skip Links vs Landmarks
Labels
directly on or near data elements
Lesson 2659Accessible Color Palettes for Data
Labels are announced
When focusing an input, you should hear its associated `<label>`
Lesson 1106Forms Mode and Input Testing
Landmarks
(like `<nav>`, `<main>`, `<aside>`) create a structural map of your page that screen reader users can navigate through with keyboard shortcuts.
Lesson 1071Skip Links vs LandmarksLesson 1103Basic Screen Reader Navigation Commands
Landscape vs portrait
orientations benefit from different crops
Lesson 1227Understanding Art Direction in Responsive Images
Language detection
(via `Accept-Language`, `navigator.
Lesson 2503Geolocation vs Language Detection
Language-agnostic
Works with any frontend framework or programming language
Lesson 1470What is REST and Why It Matters
Language-only fallback
`en-GB` → `en-US` (same language, different region)
Lesson 2504Handling Unsupported Locales
Large file sizes
for video-like content
Lesson 1245GIF: Animation and Legacy Support
Large files
that rarely change and don't need cache-busting filenames
Lesson 1379Public Directory and Static Assets
Large layout shifts
causing poor CLS scores
Lesson 2222Performance Insights and Recommendations
Large Storage Capacity
While `localStorage` typically maxes out around 5-10MB, IndexedDB can handle 50MB, 100MB, or more (varies by browser and available disk space).
Lesson 782What is IndexedDB and When to Use It
Large teams
typically need more structure.
Lesson 603Choosing an Architecture for Your Project
Large text
(18pt+ or 14pt+ bold): needs at least **3:1**
Lesson 186Color Contrast and Readability
Large-scale applications
(dashboards, e-commerce platforms) benefit from ITCSS's layered specificity management or Atomic CSS's consistency across hundreds of components.
Lesson 603Choosing an Architecture for Your Project
Larger audience
One billion people worldwide have disabilities—that's a significant user base
Lesson 987What is Web Accessibility and Why It Matters
Larger bundle size
No minification or tree-shaking
Lesson 1393Development vs Production Mode
Largest-Triangle algorithms
Keep points that form the most significant visual "triangles" (preserve peaks, valleys, and trends)
Lesson 2652Performance with Large Datasets
last line of defense
think of it as the quality gate that every piece of code must pass through before merging.
Lesson 1461Formatting in CI/CD PipelinesLesson 2706Server-Side Validation Requirement
Late discovery
– critical resources loaded only after JavaScript executes
Lesson 2166Understanding Request Waterfalls
Latency-sensitive user pages
→ Edge rendering
Lesson 1763SSR and Authentication Requirements
Latin-based languages
(English, Spanish, French):
Lesson 1286Language-Specific Subsetting Strategies
Launch
NVDA will start speaking immediately—don't panic!
Lesson 1101Setting Up NVDA on Windows
Layered System
constraint means your client doesn't need to know if it's talking directly to the final server or going through multiple intermediaries.
Lesson 1479Layered System Architecture
Layout (reflow)
Purple blocks showing dimension calculations triggered by properties like `width` or `top`
Lesson 2598Measuring Animation Performance
Layout and Paint
The browser determines exact positions and sizes (layout/reflow), then finally paints pixels to the screen.
Lesson 1973Understanding Critical Rendering Path
Layout purposes
(wrapping items to apply CSS Grid or Flexbox)
Lesson 60When to Use <div> vs Semantic Elements
Lazy hydration
Delay non-critical component hydration
Lesson 1739Hydration Time
Lazy load the SDK
only when embeds scroll into view (using Intersection Observer patterns you've learned)
Lesson 2832Facebook and Instagram Embeds
Lazy loading
Defer analytics until after critical content renders
Lesson 2793Dynamic Script Loading with JavaScriptLesson 2834YouTube and Vimeo Embeds
Lazy-load non-critical widgets
Don't load social share buttons or comment sections until users scroll near them—reduce initial payload and improve perceived performance.
Lesson 2829Embedding Third-Party Scripts Safely
Lazy-load tracking
Delay loading analytics until after critical content renders or user interaction begins.
Lesson 2787Performance Impact of Analytics
LCH
(Lightness, Chroma, Hue) and **OKLCH** (improved version) describe colors based on:
Lesson 493LCH and OKLCH: Perceptually Uniform Color Models
LCP (Largest Contentful Paint)
Less JavaScript to parse means content renders faster
Lesson 1939What is Code Splitting and Why It MattersLesson 1995Why Image Optimization Matters for Performance
LCP measures loading performance
specifically, how long it takes for the largest visible content element to render on screen.
Lesson 1888The Three Core Web Vitals: LCP, FID, and CLS
LCP timing
Critical image `preload` should reduce LCP
Lesson 1972Measuring Resource Hint Impact
Least-accessed caches
disappear first
Lesson 2422Cache Size Limitations
leaves
of your query—they're the primitive values that can't be broken down any further.
Lesson 1522Scalar TypesLesson 2491Leaf vs Container Components
Left side
The DOM tree—a hierarchical view of all HTML elements
Lesson 2174Elements Panel Overview and Navigation
Left/Right arrows
should move between slides (horizontal carousels)
Lesson 1189Keyboard Navigation Requirements
Legacy applications
where retrofitting nonces or hashes would require massive refactoring
Lesson 2887unsafe-inline Tradeoffs
Legacy browser support
where video formats aren't available (extremely rare today)
Lesson 1245GIF: Animation and Legacy Support
Legacy browser support needed
Webpack's mature plugin ecosystem handles complex polyfilling
Lesson 1408Choosing the Right Bundler
Legacy code
Old files you're not maintaining
Lesson 1434Ignoring Files with .eslintignore
Legal requirement
Many countries have laws requiring digital accessibility
Lesson 987What is Web Accessibility and Why It Matters
Legal/regulatory compliance
(showing terms based on jurisdiction)
Lesson 2503Geolocation vs Language Detection
Legend items
that toggle data series visibility
Lesson 2658Touch-Friendly Interaction Targets
Legends
Combine text with shapes to explain chart colors
Lesson 2608SVG Text and Labels in Charts
Legitimate Interest Assessment (LIA)
documenting why your interest is valid and proportional.
Lesson 2960Legitimate Interest vs Consent
Length
Aim for 150-160 characters.
Lesson 1826The Meta Description Tag
Length limits
Preventing excessively long inputs
Lesson 2905Validating and Sanitizing Input
Lengths
`width`, `height`, `margin`, `padding`, `font-size`
Lesson 509Properties That Can and Cannot Transition
Less CSS
because you don't need multiple media queries for font sizes
Lesson 405Understanding Fluid Typography
Less error-prone
No risk of breaking markup structure
Lesson 1855JSON-LD vs Microdata vs RDFa
Less flexible
Can't express nuanced caching policies like `no-cache` or `must-revalidate`
Lesson 2143Expires Header
Less perceptive
on mobile screens (smaller display = more forgiveness)
Lesson 2004Quality Settings and Visual Perception
Less sensitive
to subtle color variations in complex areas (textures, patterns)
Lesson 2004Quality Settings and Visual Perception
Lets you query
any combination of sources with a single query language
Lesson 1783GraphQL for Build-Time Data Queries
Level AA
is the recommended target for most websites.
Lesson 989WCAG Conformance Levels: A, AA, and AAA
Level AAA
represents the highest level of accessibility.
Lesson 989WCAG Conformance Levels: A, AA, and AAA
Leverage browser caching
Your vendor/common chunks should rarely change.
Lesson 1950Code Splitting Trade-offs and Best Practices
Leverage natural moments
Trigger update checks when users open your app after prolonged absence (hours, not minutes), rather than on every navigation.
Lesson 2434Update Frequency Best Practices
Licensing clarity
You manage exactly which font files and weights you serve
Lesson 561Self-Hosting vs. Font Services
Lifecycle methods
React to being added to the page, removed, or having attributes changed
Lesson 2445Defining a Custom Element Class
Light DOM
is the regular, familiar DOM tree — the one you see in your HTML, the one accessible to external CSS and JavaScript.
Lesson 2460Shadow DOM vs Light DOM
Lighthouse CI
runs automated Lighthouse audits on every commit or pull request.
Lesson 1937Enforcing Budgets in CI/CD
Lighthouse Performance Audits
Will specifically flag oversized images and estimate potential savings
Lesson 1226Performance Impact of srcset
Lightness
is how bright the color is, also a percentage:
Lesson 183HSL and HSLA FunctionsLesson 494LAB and OKLAB Color Functions
Limit chunk count
Start with route-based splitting, then add component-based splitting only for genuinely heavy components (charts, editors, media players).
Lesson 1950Code Splitting Trade-offs and Best Practices
Limit cookie scope
Use specific `path` attributes so cookies aren't sent with every request
Lesson 805Cookie Size Limitations
Limit font variants
Only load weights and styles you actually use
Lesson 1934Image and Media Asset Budgets
Limit font variations
Each weight/style is a separate file—only load what you actually use
Lesson 572Web Font Best Practices Checklist
Limit tracking frequency
Batch events rather than sending individual requests for every click.
Lesson 2787Performance Impact of Analytics
Limited Real-World Scenarios
It can't test authenticated pages, complex user flows, or personalized content easily.
Lesson 2232Lighthouse Limitations and Complementary Tools
Limited source maps
Either none or lighter versions
Lesson 1393Development vs Production Mode
Line height
Tighter leading works better at large sizes; smaller text needs more breathing room
Lesson 593Responsive Typography Patterns
Line height and spacing
demonstrated with multiple lines
Lesson 594Documentation and Type Specimens
Line heights
(taller vs shorter vertical spacing)
Lesson 1301Why Fallback Font Matching Matters
Line length stays comfortable
Text doesn't stretch to 200 characters per line
Lesson 413Testing Fluid Typography
Link interception
Catch clicks on internal links to prevent full page loads
Lesson 972Building a Client-Side Router with History API
Link Text
Rules flag generic link text like "click here" and ensure links have descriptive content.
Lesson 1449Accessibility Rules in HTML Linters
Links (`<a>`)
navigate the user somewhere — to another page, a different section, or a downloadable file.
Lesson 1002Buttons vs Links: Choosing Correctly
Links to CSS stylesheets
(for styling your page)
Lesson 81The <head> Element Structure
Linting tools
ESLint catches these mistakes during development
Lesson 2113Global Variables and Window Pollution
Listen to browser events
for instant notification of status changes
Lesson 1701Implementing a Connectivity Monitor
Listening for Tab keypresses
to detect when focus tries to leave
Lesson 1050Focus Trapping in Modal Dialogs
ListItem
elements, each representing one step in the navigation path.
Lesson 1860Breadcrumb Schema for Navigation
Lite Wrappers
Libraries like `lite-youtube-embed` or `lite-vimeo-embed` provide pre-built components that implement the facade pattern with better styling and accessibility.
Lesson 2834YouTube and Vimeo Embeds
live
, meaning they automatically reflect changes to the DOM in real-time, while others are **static snapshots** that capture the DOM's state at the moment you queried it.
Lesson 669Live vs Static NodeListsLesson 679document.querySelectorAll()Lesson 680Live vs Static CollectionsLesson 714Live vs Static Collections During Traversal
Live collections
Typically returned by older methods like `getElementsByTagName()` or `getElementsByClassName()`
Lesson 669Live vs Static NodeLists
live region
with `aria-live="polite"` and `aria-atomic="true"` to announce the count when results update:
Lesson 931Autocomplete and Search PatternsLesson 1117Log Role for Sequential Updates
live regions
(which you learned about) with **careful focus management** to create announcements that don't interrupt:
Lesson 1119Toast Notification PatternsLesson 1121Loading State Announcements
Load asynchronously
Use `async` or `defer` on script tags so tracking doesn't block page rendering.
Lesson 2787Performance Impact of Analytics
Load balancing
Routing requests to the correct server
Lesson 2966Essential vs Non-Essential Cookies
Load faster
Skip slow network requests by serving from cache
Lesson 809What is the Cache API and Why It Matters
Load from alternate CDN
Try a backup URL
Lesson 2797Error Handling for External Scripts
Load local fallback
Use a bundled version as last resort
Lesson 2797Error Handling for External Scripts
Load More
pattern is a user-initiated pagination approach where content loads in batches.
Lesson 1513Load More Button Pattern
Load More button
gives users control and is even simpler to implement.
Lesson 2106Performance Tradeoffs and Alternatives
Load on demand
Only when triggered, dynamically inject the actual third-party script
Lesson 2050Script Loading Facades
Load on interaction
Replace the facade with the real embed, connecting to the third-party service
Lesson 2837Privacy-Friendly Embed Alternatives
Load translations
Access your translation dictionary (could be embedded JSON or a dynamically fetched file)
Lesson 2509Changing Language Without Page Reload
Loading completes
"5 new items loaded"
Lesson 1121Loading State Announcements
Loading data
"Loading search results.
Lesson 1133Loading and Status Messages
Loading fails
(optional): "Failed to load items"
Lesson 1121Loading State Announcements
Loading starts
"Loading more items.
Lesson 1121Loading State Announcements
Loading states on buttons
A `<button>` showing a spinner doesn't automatically communicate its busy state.
Lesson 1033Enhancing Incomplete Native Elements
local
when you have scrollable containers and want the background to move with internal content
Lesson 196Background AttachmentLesson 2273Using the Scope Panel to Inspect Variables
Local Network Connections
If a user is connected to a WiFi router that has no internet access (maybe the ISP is down), `navigator.
Lesson 1699Limitations of Browser Offline Detection
Local reasoning
styles are tied to specific components
Lesson 601CSS Modules and Scoped Styles
Local scope
Variables defined in the current function or block
Lesson 2273Using the Scope Panel to Inspect Variables
Local Storage
and **Session Storage**: Key-value pairs saved in the browser
Lesson 2233Application Panel Overview and Navigation
LocalBusiness
schemas all at once.
Lesson 1866Multiple Schemas on One Page
localStorage and sessionStorage
store **key-value pairs** as strings.
Lesson 822Data Structure RequirementsLesson 824Security and Privacy Considerations
Location Header
The URI of the newly created resource (e.
Lesson 1484POST: Creating Resources
Log the error
– Track failures for debugging
Lesson 2025Handling Failed Lazy Load Requests
Logical hierarchy
Subsections use higher heading numbers
Lesson 1104Heading Navigation and Structure Testing
Logical properties
use flow-relative directions instead of physical ones:
Lesson 457Introduction to Logical Properties and Flow-Relative Values
Logical text alignment
solves this by using `start` and `end` instead:
Lesson 463Logical Text Alignment
Logos
– Your company logo needs to look perfect whether it's 20px in a mobile menu or 2000px on a billboard display
Lesson 1244SVG: Scalable Vector Graphics for the Web
Logos and wordmarks
where brand identity is critical
Lesson 1273font-display: block Strategy
Logout
Server deletes session; cookie expires
Lesson 1568Cookie-Based Authentication Flow
Logpoints
to trace execution order without stopping, then add **XHR/Fetch Breakpoints** to catch asynchronous state changes.
Lesson 2267Breakpoint Strategies for Different Scenarios
Long bars
(>50ms): Potential bottlenecks—these are your Long Tasks
Lesson 1994Profiling Main-Thread Performance with Chrome DevTools
Long forms
Break complex forms into manageable sections
Lesson 1181Accordion Pattern Overview and Structure
Long lists
(menus, autocomplete results, file explorers)
Lesson 1081Page Up and Page Down
Long pages
Articles with many images throughout
Lesson 1250The loading='lazy' Attribute
Long TTFB
– slow server response times
Lesson 2166Understanding Request Waterfalls
Long yellow bars
in the Main section (JavaScript execution)
Lesson 2057Identifying Main-Thread Blocking
Long-lived refresh tokens
(days/weeks): used to obtain new access tokens
Lesson 1583JWT Expiration and the exp Claim
Long-Polling
The browser asks "Anything new?
Lesson 872Real-Time Communication Patterns
Long-press menus
without right-click or keyboard access
Lesson 1196Touch Gesture Accessibility Considerations
Longest request chains
Depth of serial dependencies
Lesson 2173Measuring and Improving Waterfall Metrics
Look for red flags
obfuscated code, `eval()` usage, unexpected network requests, filesystem writes, or encoded strings that decrypt at runtime
Lesson 2947Reviewing Package Source Code
Loop iterations
Verify conditional branches execute correctly
Lesson 2250console.count and console.countReset
Loops through its children
using `children` or `childNodes`
Lesson 712Walking the DOM Tree Recursively
Low
Minor issues with minimal real-world threat
Lesson 2944Reading npm Audit Reports
Low-level control
`font-variation-settings`
Lesson 1290Standard Properties vs Variation Settings
Low-priority widgets
hydrate during idle time or on user interaction
Lesson 1751Progressive Hydration
Low-quality image placeholders (LQIP)
tiny, blurred versions that load instantly
Lesson 2027Why Placeholders Matter
Lower bandwidth usage
Critical for mobile users with limited data
Lesson 1507Why Pagination Matters
Lower execution blocking
– Smaller chunks execute quicker, freeing the main thread sooner
Lesson 1991Optimizing JavaScript Execution with Code Splitting
Lower learning curve
for team members
Lesson 2642D3 vs Higher-Level Charting Libraries
Lower scores are better
they indicate content appeared more quickly.
Lesson 1737Speed Index
Lower server costs
just serves static files
Lesson 1744Hydration vs. Client-Side Rendering
Lower server load
– Fewer requests hit your backend
Lesson 1478Cacheability Constraint
Lowercase with hyphens
`/product-categories` not `/ProductCategories`
Lesson 1471Resources and Resource Identifiers
LRU (Least Recently Used)
eviction:
Lesson 2422Cache Size Limitations
LRU strategy
by tracking access timestamps.
Lesson 2396Cache Size Management

M

Main thread activity
Shows what caused slowdowns (JavaScript, layout, paint, etc.
Lesson 546Measuring Animation PerformanceLesson 2215Network Waterfall in Performance View
Main thread blocking
During hydration, the main thread is busy—user clicks may be ignored or delayed
Lesson 1749Performance Cost of HydrationLesson 1892First Input Delay (FID) FundamentalsLesson 2787Performance Impact of Analytics
Main trend
increase, decrease, stable, correlation
Lesson 1144Alt Text for Charts and Graphs
Main-thread work
attributed to each origin
Lesson 2053Measuring Third-Party Script Impact
Maintain 60fps
animations while processing data
Lesson 2085What Web Workers Are and Why They Exist
Maintain dual policies initially
You can run both `Content-Security-Policy` (enforcing) and `Content-Security-Policy-Report- Only` (with a stricter future policy) simultaneously.
Lesson 2873Transitioning from Report-Only to Enforcement
Maintain easier
enhancing is cleaner than constantly overriding previous styles
Lesson 380Mobile-First Philosophy
Maintain focus order
Ensure tab navigation flows logically through your component.
Lesson 2472Shadow DOM and Accessibility
Maintain layout
Keep your navigation and branding visible.
Lesson 1662Handling 403: Access Denied UI
Maintain optical consistency
with `opsz` automatically tuning at different sizes
Lesson 582Variable Fonts in Design Systems
Maintain User Experience
Budgets translate technical metrics into real user impact.
Lesson 1930Why Performance Budgets Matter
Maintain visual consistency
across breakpoints
Lesson 1261Understanding Aspect Ratio in Web Design
Maintains audit logs
proving compliance
Lesson 2973Consent Management Platforms (CMPs)
Maintenance burden
Polyfills need updates and testing
Lesson 2495Browser Support and Polyfill Considerations
Maintenance nightmares
when other developers encounter broken markup
Lesson 1446Why Lint HTML? Catching Errors Early
Maintenance overhead
You're maintaining two rendering pipelines
Lesson 1881Dynamic Rendering and Bot Detection
Maintenance Phase
Accessibility isn't "done" at launch.
Lesson 994Accessibility in the Development Lifecycle
Maintenance Status
Check the last update date on npm or GitHub.
Lesson 2946Evaluating Package Health Before Installing
Make conscious trade-offs
between typography and performance
Lesson 1277font-display: auto Behavior
Make it compelling
Use action words and tell users what value they'll get.
Lesson 85Meta Description for SEO
Make one control tabbable
with `tabindex="0"`, all others get `tabindex="-1"`
Lesson 1203Toolbar Pattern
Make the heading focusable
using `tabindex="-1"` (since headings aren't naturally focusable)
Lesson 1091Route Change Focus Management
Manage cache
– content-based hashing ensures browsers fetch updated files
Lesson 1420Chunk Naming and Output
Managing application state locally
Store user preferences, session data, and temporary information in the browser (localStorage, sessionStorage, or memory)
Lesson 1473Statelessness in REST APIs
Manipulate localStorage
to change role/permission data
Lesson 1648Client-Side Permission Security Limitations
Manipulation through representations
JSON/XML represent state
Lesson 1472The Uniform Interface Constraint
Manual optimization
Use Squoosh to experiment and understand trade-offs
Lesson 2003Compression Tools and Techniques
Manual penetration testing
conducted periodically
Lesson 2906XSS Prevention Checklist
Manual recording
gives you precise control:
Lesson 2211Performance Panel Overview and Recording
Manual refresh
User explicitly requests fresh content
Lesson 813Deleting Cached Entries
Manual reset
User-triggered errors, logic bugs, or when you need user acknowledgment.
Lesson 1673Reset and Recovery Mechanisms
Manual Testing
Use browser DevTools to inspect requests, modify token values, and observe responses.
Lesson 2916Testing CSRF Protection
Manual testing is essential
Automated tools find roughly 30-40% of accessibility issues.
Lesson 2227Lighthouse Accessibility Audits
Manual unregistration
When you call `registration.
Lesson 2375The Redundant State
Manual update simulation
In Chrome DevTools → Application → Service Workers, use the "Update on reload" checkbox to force updates on every refresh.
Lesson 2435Testing Service Worker Updates
Manual validation
Visit `validator.
Lesson 1452Integrating with W3C Validator
Many elements
need the same listener (dozens of list items, table rows)
Lesson 767Delegation vs Direct Binding
Margin (m)
creates space *outside* an element's border, pushing other elements away.
Lesson 618Spacing: Margin and Padding
Margins collapse
in normal flow, but in flexbox they *never collapse*—every margin value counts
Lesson 265Flexbox and the Box Model
Margins, padding, and borders
Lesson 24Layout and Reflow
Mark as "uploading"
with visual indicators like progress bars
Lesson 2720Upload with Optimistic UI Updates
Mark images with `data-src`
instead of `src` (preventing immediate load)
Lesson 1254Custom Lazy Loading Implementation
Mark the control element
with the `peer` class (usually an `<input>`)
Lesson 639Peer State Variants
Marketing and Landing Pages
Lesson 1776When to Use SSG
Marketing communications
(newsletters, promotional emails)
Lesson 2954User Consent Requirements
Marketing cookies and tracking
(analytics, ads, social media pixels)
Lesson 2960Legitimate Interest vs Consent
Marketing pages
Very long intervals (days/weeks) for stable content
Lesson 1796Configuring Revalidation Intervals
Marketing/Advertising
Track users across sites, personalize ads, retargeting
Lesson 2969Granular Cookie Category Controls
Markup hiding
Internal implementation details stay hidden from document queries
Lesson 2459What is Shadow DOM and Why It Exists
Massive page counts
→ Use fallback strategies or switch to SSR for some routes
Lesson 1777Limitations of Pure SSG
Match page content
Don't mislead—searchers will bounce immediately
Lesson 1826The Meta Description Tag
Match tags or categories
Find posts sharing the same taxonomy terms
Lesson 1787Related Content and Computed Fields
Match the context
The same image needs different alt text depending on its purpose.
Lesson 1138Writing Descriptive Alt Text
Match your deployment cadence
If you deploy weekly, checking every hour is overkill.
Lesson 2434Update Frequency Best Practices
Mathematical Calculations
Cryptographic operations, data encryption/decryption, physics simulations, or financial calculations with large datasets.
Lesson 2094Real-World Use Cases: Heavy Computation
Mathematical symbols
(+, -, ×, ÷)
Lesson 2521Icons and Visual Elements in RTL
Max-width to the rescue
Setting `max-width: 100%` on images and other media ensures they never exceed their container's width:
Lesson 385Avoiding Horizontal Scroll
Maximum cacheability
Static files cache perfectly on CDNs
Lesson 1767What is Static Site Generation?
Maximum compatibility only
JPEG with quality 80-85%
Lesson 2002Format Selection Decision Tree
Maximum security
Since the token never touches `localStorage`, it's immune to XSS-based token theft that reads from storage.
Lesson 1598Memory-Only Token Storage
Maximum size caps properly
Headlines don't become absurdly large on wide screens
Lesson 413Testing Fluid Typography
MDX
takes Markdown one step further: it lets you **embed JSX components directly in your Markdown**.
Lesson 1782Markdown and MDX for Content
Measure file sizes
Keep total font weight under 100KB when possible
Lesson 572Web Font Best Practices Checklist
Measure performance
Which pages convert visitors into customers?
Lesson 2779Understanding Analytics and User Behavior Tracking
Measure the container
(not hardcoded dimensions)
Lesson 2641Responsive D3 Charts
Measure the x-height ratio
of both your web font and fallback font (many tools and browser DevTools can help)
Lesson 1304Matching Font Aspect Ratios
Measure their actual heights
after rendering using `getBoundingClientRect()` or `offsetHeight`
Lesson 2101Variable-Height Item Virtualization
Measurement ID
that looks like `G-XXXXXXXXXX`.
Lesson 2781Google Analytics 4 Setup
Media controls
(`<audio controls>`, `<video controls>`)
Lesson 1043Natively Focusable Elements
Media Events
video play/pause, audio ended
Lesson 716What Are DOM Events?
Media Object
Places an image beside text content (think profile pics next to usernames).
Lesson 1336The Objects Layer: Layout Primitives and Structure
Media Types
identify the data format, enabling the client to parse responses correctly without guessing.
Lesson 1476Self-Descriptive Messages
Medium screens
Gray text, turns *purple* on hover
Lesson 641Combining State and Responsive Variants
Memory allocation spikes
(blue line going up)
Lesson 2219Memory Allocation and Garbage Collection
Memory consumption
Event listeners and data buffering use browser resources
Lesson 2787Performance Impact of Analytics
Memory-only storage
with short-lived tokens
Lesson 1603Token Storage Best Practices by Use Case
Memory-only with refresh tokens
Store short-lived access tokens in memory and longer-lived refresh tokens in HttpOnly cookies
Lesson 1599Token Storage in Single-Page Applications
Menu Button Pattern
– Think of this like a software application menu (File, Edit, View).
Lesson 1163Accessible Dropdown Patterns Overview
Messages
Every message sent and received, timestamped in chronological order
Lesson 2206WebSocket and EventSource Inspection
Messaging
`postMessage`, `onmessage` (as you've learned)
Lesson 2090Worker Scope and Available APIs
metadata
information *about* your webpage rather than content *shown* on your webpage.
Lesson 81The <head> Element StructureLesson 1498Common HTTP Response HeadersLesson 1511Pagination Metadata
Methods requiring preflight approval
Lesson 866Allowed HTTP Methods
Methods to control behavior
(`preventDefault()`, `stopPropagation()`)
Lesson 746The Event Object: What It Is and Why It Matters
Micro-frontend architecture boundaries
are the contracts and isolation mechanisms that allow these independent pieces to operate side- by-side safely.
Lesson 2489Micro-Frontend Architecture Boundaries
Micro-Frontend Boundaries
Use Web Components as integration points where different teams own different parts of the application, potentially using different frameworks.
Lesson 2494Hybrid Approach with Frameworks
Microdata
embeds structured data directly into your HTML attributes using `itemscope`, `itemtype`, and `itemprop`.
Lesson 1855JSON-LD vs Microdata vs RDFa
Microsoft IIS
for Windows servers
Lesson 10What is a Web Server?
MIME type
(like `"image/jpeg"` or `"application/pdf"`).
Lesson 2698File Type Validation by MIME Type
Min-max preservation
For each bucket, keep the min and max values to maintain range visibility
Lesson 2652Performance with Large Datasets
Minified JavaScript
with dead code removed
Lesson 1380Building for Production with Vite
Minimal network latency
Files travel shorter physical distances, reducing Time to First Byte (TTFB)
Lesson 1818Pre-rendering and Edge Distribution
Minimal retention
Delete data when it's no longer needed
Lesson 2975Understanding Ethical vs Invasive Tracking
Minimal server load
You're just serving files, not running application code
Lesson 1767What is Static Site Generation?
Minimize whitespace
– strip newlines and extra spaces
Lesson 2001SVG for Vector Graphics
Minimum size works
Text remains readable at the smallest viewport
Lesson 413Testing Fluid Typography
Missing context
Can users understand what controls do when navigating out of context?
Lesson 1099Why Screen Reader Testing is Essential
Missing dependencies
Some elements might rely on parent container styles that aren't obviously visible
Lesson 1975Extracting Critical CSS Manually
Missing focus indicators
You can't tell where focus is.
Lesson 1086Testing Custom Navigation
Missing HATEOAS
Clients must know all endpoints upfront instead of discovering them through links
Lesson 1481RESTful vs REST-ish APIs
Missing keys
Code references translations that don't exist in one or more locales
Lesson 2536Translation Coverage and Missing Key Detection
Missing Protocol in URLs
Always use absolute URLs with `https://` for images and canonical URLs.
Lesson 1845Social Sharing Best Practices
Missing Token Rejection
Remove the token entirely from a request.
Lesson 2916Testing CSRF Protection
Mixed connection sites
500 KB–1 MB
Lesson 1935Total Page Weight Budgets
Mixing concerns
HTML structure gets tangled with JavaScript behavior
Lesson 719Inline vs addEventListener
Mobile
Gray text, turns blue on hover
Lesson 641Combining State and Responsive Variants
Mobile (375px wide)
Crop tightly to just the main subject's face
Lesson 1227Understanding Art Direction in Responsive Images
Mobile users burn data
downloading pixels they'll never see
Lesson 2007Responsive Images: Why Resolution Switching Matters
Mobile-First (min-width)
Start with styles for small screens, then add media queries that apply *when the screen is at least* a certain width.
Lesson 392min-width vs max-width Strategies
Mock fetch/HTTP libraries
to return errors on the first N calls, then succeed
Lesson 1696Testing Retry Logic
Modal dialogs
(though `<dialog>` is emerging, it's incomplete)
Lesson 1031When Semantic HTML Doesn't ExistLesson 1092Focus Restoration Patterns
Modals
A loud alarm that must be acknowledged
Lesson 1707Toast Notification Patterns and Use Cases
Mode
"Navigation" (full page load) or "Timespan" (measure interactions over time)
Lesson 2224Running Lighthouse in Chrome DevToolsLesson 2462Open vs Closed Shadow DOM
Moderate
Exploitable under specific conditions or with limited impact
Lesson 2944Reading npm Audit Reports
Moderator
Review and approve user submissions
Lesson 1628Role-Based Access Control (RBAC) Fundamentals
Modern browsers
Use it for sizing, alt text, and accessibility, but load images from `<source>` elements
Lesson 2013Fallback Images and Browser SupportLesson 2745Choosing the Right Date Library
Modern over legacy
Always prefer modern alternatives to deprecated events.
Lesson 745Event Type Selection and Best Practices
Modify content dynamically
Change text, images, or entire sections without reloading the page
Lesson 41JavaScript's Role: Adding Interactivity
Modify JavaScript
in DevTools to bypass your permission functions
Lesson 1648Client-Side Permission Security Limitations
Modular scope
Keep code in modules or IIFEs to limit scope exposure
Lesson 2113Global Variables and Window Pollution
Module
rules are reusable, independent components like buttons, cards, or navigation menus.
Lesson 598SMACSS (Scalable and Modular Architecture)Lesson 1327Alternative Naming Conventions: SMACSS and OOCSS
Moment.js
and need API familiarity
Lesson 2745Choosing the Right Date Library
Monitor
keyboard navigation to keep focus cycling within the modal's boundaries
Lesson 1089Modal Dialog Focus Management
Monitor closely post-launch
Keep your reporting endpoint active.
Lesson 2873Transitioning from Report-Only to Enforcement
Monitor cumulative impact
Track your total blocking time and JavaScript execution cost.
Lesson 2836Managing Multiple Embed Scripts
Monorepo with shared packages
Turbopack or Vite with proper workspace configuration
Lesson 1408Choosing the Right Bundler
More bandwidth consumed
(costly on mobile networks)
Lesson 1592Token Payload Size and Performance
More efficient compression algorithm
(less blurring at high compression)
Lesson 1243AVIF: Next-Generation Image Format
More elegant scaling
that adapts to any device width
Lesson 405Understanding Fluid Typography
More features
Access to options like event capturing and `once`
Lesson 719Inline vs addEventListener
More info
link to detailed CVE reports
Lesson 2944Reading npm Audit Reports
More sensitive
to changes in faces, text, and high-contrast edges
Lesson 2004Quality Settings and Visual Perception
More space
typically 5-10 MB per domain
Lesson 770The Web Storage API
Motor disabilities
Users who cannot use a mouse rely on keyboard navigation or voice control
Lesson 987What is Web Accessibility and Why It Matters
Move by column
Similar arrow key combinations
Lesson 1108Table Navigation and Testing
Move by row
Ctrl+Alt+Arrow keys (NVDA) or VO+Arrow keys (VoiceOver)
Lesson 1108Table Navigation and Testing
Move focus
to the modal itself or its first focusable element
Lesson 1089Modal Dialog Focus Management
Multi-language teams
collaborating via shared URLs
Lesson 2540Content Negotiation vs Explicit URLs
Multi-Location Testing
Run the same test from Virginia, Singapore, and Frankfurt simultaneously to understand how geographic distance affects your TTFB and overall performance.
Lesson 1925WebPageTest for Deep Analysis
Multi-Metric Dashboards
Different chart types for related but distinct metrics
Lesson 2647Recharts Composition Patterns
Multiple clients
can consume the same API (web app, mobile app, partner integrations)
Lesson 1474Client-Server Separation
Multiple criteria
`Vary: Accept-Encoding, Accept-Language` checks both headers.
Lesson 2149Vary Header
Multiple entry points
let you tell Webpack to create distinct bundles for each page, so users only download the code they actually need.
Lesson 1396Multiple Entry Points
Multiple handlers
Attach several functions to the same event
Lesson 719Inline vs addEventListener
Multiple output formats
Rollup easily generates ES modules, CommonJS, and UMD bundles from a single codebase
Lesson 1401Rollup: The Library Bundler
Multiple panel expansion
(sometimes called "independent" mode) allows users to open as many panels as they want.
Lesson 1184Single vs Multiple Panel Expansion
Multiple properties
(comma-separated): `background-color, opacity, transform`
Lesson 502The transition-property Property
Multiple references
You can reference multiple IDs (space-separated) to combine labels
Lesson 1020aria-labelledby: Referencing Existing Labels
Multiple runs
Average 3-5 runs to account for variance
Lesson 1928Establishing Performance Baselines
Multiple simultaneous changes
Several components updating at once
Lesson 1124Avoiding Announcement Spam

N

Name column
Shows which specific file was downloaded
Lesson 2016Testing Responsive Images Across Viewports
Namespace your legacy CSS
If conflicts arise, wrap existing stylesheets in higher-specificity selectors or use CSS layers to ensure old styles don't interfere with Tailwind utilities.
Lesson 660Migration Strategies: Adding Tailwind to Existing Projects
Namespaces
solve this by grouping related translations into logical categories.
Lesson 2529Namespace Organization for Large Applications
Naming collisions
Two developers create `.
Lesson 1319Why Naming Conventions Matter in CSS
Narrator
is Microsoft's built-in Windows screen reader.
Lesson 1100Screen Reader Landscape Overview
Native
Higher upfront cost—multiple specialists needed (Swift/Kotlin developers, plus potentially web devs)
Lesson 2366Development and Maintenance CostsLesson 2458Custom Element Best Practices
Native `import` statements
Your browser requests modules using native `<script type="module">` tags
Lesson 1404ESM-Native Development
Native apps
launch nearly instantly after the first run—they're already compiled and installed on the device.
Lesson 2365Performance CharacteristicsLesson 2368Offline Capabilities Comparison
Native compilation
Go compiles to machine code, running directly on your CPU without interpretation overhead
Lesson 1400esbuild: The Speed Champion
Natural tone
Write for humans first, search engines second
Lesson 1826The Meta Description Tag
Navigate to `node_modules/package-name`
after installation or view the source on GitHub/npm
Lesson 2947Reviewing Package Source Code
Navigate to next/previous table
Jump between tables on a page
Lesson 1108Table Navigation and Testing
Navigation
Adjust how the VoiceOver cursor moves (Navigation settings)
Lesson 1102Setting Up VoiceOver on macOS
Navigation arrows
(back/forward, next/previous)
Lesson 2521Icons and Visual Elements in RTL
Navigation attempts
Before routing to protected pages
Lesson 1641Checking Permissions Before Actions
Navigation bars
(items in a horizontal row)
Lesson 309Flexbox vs Grid Decision
Navigation Context
If you're adding hidden text to explain where a link goes, consider rewriting the visible link text to be more descriptive instead.
Lesson 1135When NOT to Use Visually Hidden Content
Navigation controls
to move between months/years
Lesson 1206Date Picker Pattern
Navigation efficiency
Can users quickly find what they need, or must they listen to everything?
Lesson 1099Why Screen Reader Testing is Essential
Navigation Menu Pattern
– This is for groups of *links* that navigate somewhere, like a site's main navigation with category dropdowns.
Lesson 1163Accessible Dropdown Patterns Overview
Navigation menus
Focus on a parent link to highlight child dropdown items.
Lesson 638Group Hover and FocusLesson 1169Navigation Menus vs Application Menus
Navigation patterns
differ significantly.
Lesson 2367User Experience Tradeoffs
Navigational buttons
that need specific dimensions but should sit side-by-side
Lesson 210Inline-Block Display
Near the Source
Place error messages directly adjacent to the field, button, or component that triggered them.
Lesson 1683Error Message Placement and Timing
Necessary trade-off
Without it, you'd lose hydration benefits or cause poor UX
Lesson 1745The Double Data Problem
Necessity Test
Before collecting any data point, ask: "Can this feature work without it?
Lesson 2979Minimizing Data Collection
Need pixel-perfect accuracy
Use lossless (e.
Lesson 1996Lossy vs Lossless Compression
Need real-time data
CSR shines for dashboards, live feeds, or user-specific content
Lesson 1727Data Freshness Trade-offs
Negative `z-index` children
(positioned elements with `z-index: -1`, `-2`, etc.
Lesson 232Stacking Order Within a Context
Negative Z values
push elements away (farther)
Lesson 5353D Transforms Introduction
Neither
Only for critical inline scripts needed before rendering
Lesson 1981Script Loading Strategies: async vs defer
Neither attribute
Script blocks parsing — use for critical scripts only.
Lesson 2048async vs defer for Script Loading
Netlify/Vercel
Create a `_redirects` or config file with a fallback rule
Lesson 984Server Configuration for SPA Routing
Network attacks
Modified responses during transit
Lesson 842Request Integrity and Subresource Integrity
Network Errors
happen when the request fails completely—no internet connection, server down, or timeout.
Lesson 1564Error Handling in Client LibrariesLesson 1693Conditional Retries Based on Error Type
Network fetch begins
in the background (non-blocking)
Lesson 2154Stale-While-Revalidate Strategy
Network Information API
or `online` event signals connectivity, loop through your queue and retry each stored request.
Lesson 2329Queue Failed Requests
Network overhead
External scripts add HTTP requests and kilobytes of data
Lesson 2787Performance Impact of Analytics
Network request fails
→ catch the error
Lesson 2337Storing Failed Requests with IndexedDB
Network requests
Visual representation of ongoing requests during the recording
Lesson 2211Performance Panel Overview and RecordingLesson 2450disconnectedCallback: Element Removal
Network resilience
Small failures don't doom the entire upload
Lesson 2717Chunked Upload for Large Files
Network response arrives
→ page JavaScript updates the UI *and* cache gets updated
Lesson 2392Cache Then Network Strategy
Network Throttling dropdown
in the Network panel.
Lesson 2203Network Throttling for Testing
Network-First Strategy
is a Service Worker caching pattern that attempts to fetch resources from the network first, and only falls back to the cache if the network request fails.
Lesson 2153Network-First StrategyLesson 2388Network-First Strategy
Network-level failures
are usually safe to retry:
Lesson 1687Understanding When to Retry Network Requests
Network-Only Strategy
means your service worker intercepts a request but *always* forwards it to the network, never checking or storing it in the cache.
Lesson 2391Network-Only Strategy
NetworkFirst
attempts the network, falling back to cache only if offline.
Lesson 2408Built-In Caching Strategies
NetworkOnly
always hits the network, never uses cache.
Lesson 2408Built-In Caching Strategies
Never on page load
Instead, ask for permission:
Lesson 2346Permission Best Practices and Timing
Never skip versions
Go from v1 → v2 → v3, never v1 → v3
Lesson 796IndexedDB Wrappers and Best Practices
New business requirements
If adding a chat widget is essential, adjust your third-party script budget realistically.
Lesson 1938Monitoring and Adjusting Budgets Over Time
New projects
almost always benefit from Vite's speed and simplicity.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
New Relic
provide ongoing surveillance—like having a security camera instead of taking occasional photos.
Lesson 1927Performance Monitoring Services
New York (EST)
UTC-5 (5 hours behind UTC)
Lesson 2747Understanding UTC and Timezone Offsets
News feeds
or dynamic content
Lesson 2153Network-First Strategy
News sites
Static article structure, dynamic comment counts
Lesson 1778Hybrid ApproachesLesson 1796Configuring Revalidation Intervals
Next sibling
Move focus to the next item in a list
Lesson 1088Moving Focus After Element Removal
Next steps
Guide users on what to do: "Contact your team admin to request access" or "Return to dashboard.
Lesson 1662Handling 403: Access Denied UI
Next Visit
You return to `example.
Lesson 797What Are Cookies and How They Work
Next.js Image Component
(`next/image`) takes this further by combining build-time and request-time optimization.
Lesson 2006Build-Time Image Optimization Pipeline
Next/Previous Line
Down/Up arrows read the content line by line
Lesson 1103Basic Screen Reader Navigation Commands
No `frame-ancestors`
can't protect against clickjacking
Lesson 2876CSP Meta Tag Alternative
No `report-uri` or `report-to`
violation reporting doesn't work
Lesson 2876CSP Meta Tag Alternative
No attribute
Blocks parsing, executes immediately
Lesson 89Script Loading Strategies
No automatic transmission
data stays in the browser and isn't sent to your server automatically
Lesson 770The Web Storage API
No client verification
Anyone who intercepts the redirect can steal the token
Lesson 1618Implicit Flow and Why to Avoid It
No credentials provided
– You tried accessing a protected resource without sending an access token, JWT, or session cookie
Lesson 1657Understanding 401 Unauthorized
No CSRF concerns
Since tokens aren't automatically attached by browsers, CSRF attacks aren't a threat.
Lesson 1576Mobile and Native App Authentication
No development warnings
Cleaner console output
Lesson 1393Development vs Production Mode
No directive "priority"
There's no hierarchy where one directive type overrules another—they all combine to form the final policy.
Lesson 2878CSP Header Precedence Rules
No domain specified
Cookie is only sent to the exact host that set it (`www.
Lesson 1602Domain and Path Restrictions for Cookies
No external dependency
Your site isn't affected if the service goes down
Lesson 561Self-Hosting vs. Font Services
No font at all
Does `optional` skip loading on slow connections?
Lesson 1281Testing Font Loading Strategies
No form needed
Your UI doesn't have traditional form elements, but you still need multipart encoding
Lesson 892Creating FormData Without Forms
No form validation
Input fields aren't checked or processed
Lesson 2476Templates vs. Hidden Markup: Why Templates Matter
No guaranteed order
if multiple async scripts exist
Lesson 2792async vs defer Attributes
No head-of-line blocking
at the HTTP layer—all requests proceed in parallel
Lesson 2120HTTP/2 Multiplexing
No human error
Hashes update automatically with code changes
Lesson 2865Build Tools and Automatic Hash Generation
No hydration overhead
Everything's already interactive
Lesson 1760When CSR is Better
No initial bundle
The server starts instantly because it doesn't need to analyze and bundle your entire dependency tree
Lesson 1404ESM-Native Development
No JavaScript runtime overhead
No V8 engine startup time, no JIT warmup period
Lesson 1400esbuild: The Speed Champion
No layout calculation
Zero render tree impact
Lesson 2476Templates vs. Hidden Markup: Why Templates Matter
No layout shift tolerance
You want zero FOUT (Flash of Unstyled Text) on repeat visits
Lesson 1276font-display: optional Strategy
No Long-Term Trends
Each run is isolated; you won't see performance changes over time or across different pages without manual tracking.
Lesson 2232Lighthouse Limitations and Complementary Tools
No margin math
No need to calculate negative margins on the container or selectively apply margins
Lesson 279gap: Modern Spacing Between Flex Items
No naming collisions
between components
Lesson 601CSS Modules and Scoped Styles
No pre-checked boxes
users must actively opt in
Lesson 2965Cookie Consent Legal Requirements
No prefix
Applies at all screen sizes (mobile-first base)
Lesson 633Breakpoint Prefix Syntax
No quotes
around URLs or wildcards
Lesson 2874CSP Header Format and Syntax
No refresh tokens
Users must re-authenticate frequently, creating poor UX
Lesson 1618Implicit Flow and Why to Avoid It
No removal option
You can't easily detach inline handlers
Lesson 719Inline vs addEventListener
No resource loading
Images inside templates don't make network requests
Lesson 2476Templates vs. Hidden Markup: Why Templates Matter
No sandboxing directives
limited security options
Lesson 2876CSP Meta Tag Alternative
No script execution
`<script>` tags remain dormant
Lesson 2476Templates vs. Hidden Markup: Why Templates Matter
No sensitive details
in 5xx errors—just "Internal Server Error" and a tracking ID
Lesson 1494Status Code Response Bodies
No server access
Hosting on platforms where you can't set custom headers
Lesson 2876CSP Meta Tag Alternative
No server processing time
Pages are already built, so there's no waiting for a server to generate HTML
Lesson 1818Pre-rendering and Edge Distribution
No side effects
Custom elements inside aren't upgraded until cloned
Lesson 2476Templates vs. Hidden Markup: Why Templates Matter
No skipped levels
Don't jump from `<h2>` to `<h5>`
Lesson 1104Heading Navigation and Structure Testing
No stale content
You can regenerate pages when data changes
Lesson 1789Fallback Pages and On-Demand Generation
No white screen phase
Unlike Client-Side Rendering, where users see nothing until JavaScript builds the page, SSR shows content immediately
Lesson 1737Speed Index
Node interface
(available to all node types):
Lesson 666Elements vs Nodes
Node Removal
breakpoint is a special debugging tool in Chrome DevTools that triggers a pause the moment a specific DOM element is deleted from the page.
Lesson 2259DOM Breakpoints: Node Removal
Node/Express
Add a catch-all route that serves `index.
Lesson 984Server Configuration for SPA Routing
NodeList
essentially a snapshot list of all matching elements at the moment you run the query.
Lesson 679document.querySelectorAll()
Nodes
include many types you've already learned about:
Lesson 666Elements vs Nodes
Non-blocking errors
"Image failed to load" (user can continue working)
Lesson 1707Toast Notification Patterns and Use Cases
Non-Blocking Overlays
are the most common approach: a banner appears at the bottom or top of the viewport, allowing users to scroll and view content behind it.
Lesson 2967Cookie Banner Placement and Timing
Non-critical
Icon fonts or fonts paired with `font-display: optional`
Lesson 1295When to Preload Fonts vs When Not To
Non-essential third-party scripts
(chat widgets, recommendation engines)
Lesson 2960Legitimate Interest vs Consent
Non-idempotent operations
like POST/PUT/DELETE should be retried cautiously—you might create duplicate orders or delete things twice.
Lesson 1687Understanding When to Retry Network Requests
Non-Intrusive Behavior
The banner should not steal focus, force interaction, or cover interactive elements.
Lesson 2326Offline Indicators and Banners
Non-nullable vs Nullable
Types can be marked as required (`!
Lesson 1520The GraphQL Type System
Nonce support
styled-components and Emotion can accept a nonce that gets added to every generated `<style>` tag.
Lesson 2884CSS-in-JS and CSP Compatibility
Nonces or hashes used
for inline scripts/styles
Lesson 2906XSS Prevention Checklist
Normal flow
is the default way browsers display HTML elements when you don't apply any special CSS layout properties.
Lesson 207What is Normal Flow?Lesson 211The position Property: OverviewLesson 212Static Positioning
Normal script
Stop everything, go to store, buy items, cook immediately, then resume your day
Lesson 2792async vs defer Attributes
Normal text
needs a contrast ratio of at least **4.
Lesson 186Color Contrast and Readability
Normalize to lowercase
(since `.
Lesson 2699File Extension Validation
Normalize.css
takes a gentler approach, preserving useful defaults while fixing inconsistencies and bugs across browsers.
Lesson 1334The Generic Layer: Resets and Normalize
NoSQL Database
IndexedDB stores data as key-value pairs, similar to JavaScript objects.
Lesson 782What is IndexedDB and When to Use It
Not Google's preferred solution
Google recommends SSR or static pre-rendering instead, as dynamic rendering adds complexity
Lesson 1881Dynamic Rendering and Bot Detection
Not handling failed fetches
crashes offline functionality
Lesson 2443Common Service Worker Pitfalls
Not include uppercase letters
`my-component` , `myComponent`
Lesson 2447Custom Element Naming Requirements
NotFoundError
The file can't be located (perhaps deleted after selection but before reading)
Lesson 2696FileReader Error Handling
Nothing else
not inline `<script>` tags, not `eval()`, not event handlers like `onclick=".
Lesson 2842The script-src Directive
Noticeable animations
`500ms` to `1s` (clear but not sluggish)
Lesson 503The transition-duration Property
Notification API
to display a notification
Lesson 2344Push API and Notification API Relationship
NotReadableError
The file exists but can't be read (permissions issue or hardware failure)
Lesson 2696FileReader Error Handling
Nouns, not verbs
`/products` not `/getProducts`
Lesson 1471Resources and Resource Identifiers
Nowhere
for simple tooltips that are purely informational
Lesson 1093Dropdown and Popup Focus
Number of requests
Fewer is generally better
Lesson 2173Measuring and Improving Waterfall Metrics
Numbered grid lines
(the boundaries between tracks)
Lesson 323Inspecting Grids with Browser DevTools
Numerous
Preloading 5+ font files creates resource congestion
Lesson 1295When to Preload Fonts vs When Not To
NVDA
Press `D` to cycle through landmarks
Lesson 1070Landmark Navigation in Screen Readers
NVDA (NonVisual Desktop Access)
is a free, open-source screen reader for Windows.
Lesson 1100Screen Reader Landscape Overview
NVDA (Windows, free)
tends to be more literal about `aria-live` announcements.
Lesson 1125Testing Announcements Across Screen Readers

O

Object Types
Custom types representing entities in your system (like `User`, `Post`, or `Product`)
Lesson 1520The GraphQL Type SystemLesson 1523Object Types and Fields
Objects and Arrays
plain objects, arrays, nested structures
Lesson 2088Structured Clone Algorithm and Data Transfer
Observe elements
with Intersection Observer
Lesson 1956Lazy Loading Background Images
Offer alternatives
Provide email alerts or in-app notifications as fallbacks
Lesson 2346Permission Best Practices and Timing
Offer limited, non-data-collecting experience
Lesson 2961Children's Privacy and Age Verification
Offer next steps
Don't just report the problem—show solutions:
Lesson 1681Not Found and Resource Errors
Official plugins
are maintained by the Vite team and cover major frameworks:
Lesson 1383Vite Plugins
Offline capability
Can function without constant server connection
Lesson 1760When CSR is Better
Offline functionality
requires HTTPS
Lesson 2933Service Workers Require HTTPS
Offline-first applications
that need to cache significant data
Lesson 782What is IndexedDB and When to Use It
Offline-first is complex
– Native databases and storage are more mature for intricate offline scenarios
Lesson 2370When to Choose PWA vs Native
Offline-only features
where network access would be incorrect or harmful
Lesson 2390Cache-Only Strategy
Offloaded traffic
Your server focuses on dynamic content while the CDN handles static assets
Lesson 2156What is a CDN and Why Use One
Offset-x and Offset-y
These first two values position the shadow horizontally and vertically.
Lesson 202Box Shadow Basics
Offsets
are only safe for *instantaneous* timestamps that won't be interpreted in different contexts
Lesson 2752Named Timezones vs Offsets
OKLAB
separate **lightness** (how bright or dark) from **color** (hue and intensity).
Lesson 494LAB and OKLAB Color Functions
OKLCH
(improved version) describe colors based on:
Lesson 493LCH and OKLCH: Perceptually Uniform Color Models
On Blur
Show validation errors when a user leaves a field—they've finished their input attempt.
Lesson 1683Error Message Placement and Timing
On Failure
Now redirect to login (the refresh token itself has expired or been revoked)
Lesson 1663Token Refresh on 401
On first visit
If a user requests a page that wasn't pre-generated, your server generates it on-demand
Lesson 1789Fallback Pages and On-Demand Generation
On functional events
– Events like `push` or `sync` trigger an update check before the event fires.
Lesson 2431Automatic Update Checks
On large screens (≥1000px)
Image width = full viewport minus 300px sidebar
Lesson 1221Calc() in sizes Attribute
On larger screens
the image occupies 33% of the viewport
Lesson 419The sizes Attribute
On mobile devices
where horizontal space is scarce (consider accordions or full sections)
Lesson 1175Tabs Pattern Overview and When to Use Them
On navigation
When a user navigates to a page within your service worker's scope, the browser compares the current service worker file against the cached version
Lesson 2378Update Checks and Triggering
On registration
Each time `navigator.
Lesson 2378Update Checks and Triggering
On screens 601px–1000px
the image takes 50% of the viewport
Lesson 419The sizes Attribute
On smaller screens
Image width = full viewport minus 40px total padding (20px each side)
Lesson 1221Calc() in sizes Attribute
On Submit
For complex validations or server errors, wait until form submission to avoid interrupting their flow.
Lesson 1683Error Message Placement and Timing
On Success
Store the new access token and retry the original request with updated credentials
Lesson 1663Token Refresh on 401Lesson 2337Storing Failed Requests with IndexedDB
On the drag target
(what you're dragging):
Lesson 2675HTML Drag and Drop API Overview
On the drop zone
(where you drop):
Lesson 2675HTML Drag and Drop API Overview
On-demand for the rest
Let less-visited pages generate when first requested, then serve them statically afterward
Lesson 1799ISR with Dynamic Routes
On-demand revalidation
lets you trigger page rebuilds programmatically via API routes or webhooks, bypassing the time- based interval.
Lesson 1797On-Demand Revalidation
On-demand transformation
Files are only processed when the browser requests them
Lesson 1404ESM-Native Development
One `<h1>` per page
The main title of the content
Lesson 1104Heading Navigation and Structure Testing
One handler limit
Inline attributes can only hold one handler per event
Lesson 719Inline vs addEventListener
One request per session
Don't re-prompt if declined
Lesson 2346Permission Best Practices and Timing
One-dimensional flow is enough
Navigation bars, button groups, or any row/column of items work perfectly with Flexbox's simpler model.
Lesson 377When to Choose Grid Over Flexbox
One-way updates from server
→ SSE with the feed pattern
Lesson 883Real-Time Data Patterns
Online services
Best for one-off conversions and beginners
Lesson 1285Tools for Font Subsetting
Online SRI Hash Generators
Lesson 2938Generating SRI Hashes
Only 256 colors
per frame (compared to millions in other formats)
Lesson 1245GIF: Animation and Legacy Support
Only direct children
become flex items.
Lesson 255The Flex Container and Flex Items
only in memory
(JavaScript variables) for maximum security, they vanish the moment a user refreshes the page or closes a tab.
Lesson 1599Token Storage in Single-Page ApplicationsLesson 1609Refresh Token Storage Strategies
opacity
when you want to fade an entire element, including all its contents and child elements.
Lesson 184Alpha Transparency and OpacityLesson 2552Animating CSS PropertiesLesson 2563Basic Animations with animate Prop
Opaque responses
Cross-origin requests without CORS may cache but have limited inspectability
Lesson 2425Debugging Cache Strategies
Open Chrome DevTools
→ Performance tab
Lesson 2057Identifying Main-Thread Blocking
Open DevTools
(F12 or right-click → Inspect)
Lesson 413Testing Fluid Typography
Open Issues
Browse the GitHub issues tab.
Lesson 2946Evaluating Package Health Before Installing
Open Mode
creates a shadow root that remains accessible via the element's `shadowRoot` property.
Lesson 2462Open vs Closed Shadow DOM
Open source licenses
(like SIL Open Font License) generally allow free use and modification, but check specific terms.
Lesson 563Font Licensing and Legal Considerations
Opening a cache
using `caches.
Lesson 2317The Cache Storage API
Opening modals or dialogs
Focus should move into the modal immediately so keyboard users don't interact with hidden background content
Lesson 1087Focus Management Fundamentals
Operable
means users must be able to operate the interface.
Lesson 988The Four Principles of WCAG: POUR
Operation name
(`GetUser`): Optional but recommended for debugging
Lesson 1528Variables in Operations
Opportunities
specific, actionable items that directly impact your Performance Score.
Lesson 2226Interpreting Opportunities and Diagnostics
Opt-in
(not pre-checked boxes)
Lesson 2954User Consent Requirements
Opt-in, not opt-out
Checkboxes must be unchecked by default
Lesson 2953Understanding GDPR and CCPA Fundamentals
Optical size
(optimized for different text sizes)
Lesson 573What Are Variable Fonts?
Optical Size (`opsz`)
Optimizes legibility at different sizes (like 12pt vs 72pt)
Lesson 1288Variable Font Axes
Optical sizing
is a feature in some variable fonts that automatically adjusts these subtle design details based on the text size.
Lesson 577Optical Sizing with font-optical-sizing
Optimal Caching
Since content is pre-built, aggressive browser and CDN caching is straightforward.
Lesson 1723SSG Performance Characteristics
Optimistic permission checks
render UI elements immediately, assuming the user likely has access.
Lesson 1647Optimistic vs Defensive Permission Checks
Optimistic UI
renders components immediately, assuming the user has access.
Lesson 1656Optimistic vs Pessimistic Authorization UI
Optimistic UI updates
mean you show the uploaded file as "successful" in your interface *before* the server confirms it, making the experience feel lightning-fast.
Lesson 2720Upload with Optimistic UI Updates
Optimistic updates
assume the mutation will succeed and update the UI immediately with predicted data, then reconcile when the real server response arrives.
Lesson 1542Optimistic UI Updates with Mutations
Optimization opportunity
Minimize serialized state by only including what's needed for hydration
Lesson 1745The Double Data Problem
Optimize with tools
Image optimization tools (like those you'll use in build processes) can strip metadata and compress PNG files without losing quality—reductions of 20-40% are common.
Lesson 1998PNG: Transparency and Quality
Optimized but not over-compressed
(balance quality and file size)
Lesson 1845Social Sharing Best Practices
Optimized CSS
extracted into separate files
Lesson 1380Building for Production with Vite
Optimized rendering pipeline
GSAP uses requestAnimationFrame and applies hardware acceleration intelligently
Lesson 2546GSAP Overview and Why Use It
Optimized routes
CDNs use premium network paths, avoiding congested public internet routes
Lesson 2157CDN Performance Benefits
Optimizes assets
images, fonts, and other static resources
Lesson 1722The SSG Build and Delivery Process
Option 1: Completely Replace
Lesson 635Customizing Breakpoints
Option 1: Loop backward
through live collections:
Lesson 714Live vs Static Collections During Traversal
Optional
(the app works even if specific items aren't cached)
Lesson 2420When to Use Each Strategy
Optional values
Everything else is optional and must come *before* the font size.
Lesson 179The Font Shorthand Property
Optionally move focus
to the first error
Lesson 1120Form Validation Announcements
options object
as a second argument to control *how* the matching happens.
Lesson 815Cache Matching OptionsLesson 2351Displaying Notifications with showNotification()
OPTIONS preflight request
first, listing the custom header in `Access-Control-Request-Headers`.
Lesson 865Custom Headers and Preflight
OPTIONS request
(the preflight check)
Lesson 869Debugging CORS Issues
Ordered lists
(`<ol>`) communicate sequence and ranking.
Lesson 1001Lists: Ordered, Unordered, and Description
Organize code
into reusable, testable modules
Lesson 2095Workers with Module Scripts
OS integration
full access to Bluetooth devices, NFC, advanced camera controls (RAW photos, manual focus), USB peripherals, system-level notifications, background processing without restrictions, and widgets.
Lesson 2363PWA vs Native App: Capabilities Comparison
Other readers
like TalkBack (Android) and Narrator (Windows) have their own quirks too.
Lesson 1125Testing Announcements Across Screen Readers
Other widget roles
include `checkbox`, `radio`, `switch`, `combobox`, `menu`, `menuitem`, `dialog`, and more.
Lesson 1016Widget Roles: Interactive Components
Otherwise
Fall back to the `<img>` tag's `photo.
Lesson 424Modern Image Formats with Picture
Outdated information
Keep prices, availability, and dates current
Lesson 1868Structured Data Best Practices and Common Mistakes
outer container
handles the vertical stacking (header → content → footer), while the **inner container** manages the horizontal three-column layout.
Lesson 294Holy Grail LayoutLesson 305Pricing Table Pattern
Output Directory
Where your built site lives after compilation.
Lesson 1813Build Configuration
Outside the shadow root
(in the light DOM): `event.
Lesson 2471Event Retargeting in Shadow DOM
Over-extraction
Including too much CSS defeats the purpose.
Lesson 1975Extracting Critical CSS Manually
Over-fetching
happens when your client only needs the user's name, but receives the entire user object— including the bio, followers list, and posts you don't need.
Lesson 1547Over-Fetching and Under-Fetching Problems in REST
Overlapping designs
Create layered visual effects where one box slightly covers another.
Lesson 149Negative Margins
Overly complex descendant selectors
force the browser to check many relationships:
Lesson 137Selector Performance Considerations
Overriding completely
Replace all default colors:
Lesson 612Customizing Colors
Overriding third-party CSS
you can't edit
Lesson 134!important and When to Avoid It
Overscan
(or **buffer items**) means rendering a few *extra* items above and below the visible viewport boundaries.
Lesson 2102Overscan and Buffer ItemsLesson 2103Virtual Grid Layouts
Oversized fonts
– Font files with character sets you're not actually using
Lesson 2202Identifying Slow Resources
Ownership
Does this user own the resource?
Lesson 1645Resource-Level Permissions
Oxc
for linting are all written in Rust, pursuing the same goal: native-speed tooling that makes JavaScript development feel instant, regardless of project size.
Lesson 1403Turbopack and the Rust Wave

P

Pa11y
or **axe-core** in your test suite catch regressions
Lesson 1098Testing Focus Management
Package name
and affected versions
Lesson 2944Reading npm Audit Reports
Padding (p)
creates space *inside* the element, between content and border.
Lesson 618Spacing: Margin and Padding
Padding and borders
, however, are considered *part of* the flex item's size.
Lesson 265Flexbox and the Box Model
Padding and margin percentages
always reference the parent's **width**, even for top/bottom values (this surprises many developers)
Lesson 157Percentage Values
Page Down
keys let users jump through content in meaningful chunks, typically moving several items at once rather than one at a time.
Lesson 1081Page Up and Page Down
Page Load Time
Large, unoptimized images take longer to download, especially on slower connections.
Lesson 1995Why Image Optimization Matters for Performance
Page load time suffers
, especially on slower connections
Lesson 2007Responsive Images: Why Resolution Switching Matters
Page Load Times
How long until the page becomes interactive
Lesson 2816Performance Monitoring Integration
Page numbers
let users bookmark specific result pages
Lesson 1507Why Pagination Matters
Page requests resource
→ triggers both cache lookup AND network fetch
Lesson 2392Cache Then Network Strategy
Page Up
and **Page Down** keys let users jump through content in meaningful chunks, typically moving several items at once rather than one at a time.
Lesson 1081Page Up and Page Down
Page Up/Down
Larger increments (optional but helpful)
Lesson 1205Slider and Range ControlsLesson 1206Date Picker Pattern
Page-level headers
The main header at the top of your website containing your logo, site title, and primary navigation
Lesson 47The <header> Element
Page-level migration
Dedicate specific pages or routes to Tailwind while legacy pages keep their old styles.
Lesson 660Migration Strategies: Adding Tailwind to Existing Projects
Page-specific policies
Different policies for different pages
Lesson 2876CSP Meta Tag Alternative
PageSpeed Insights
Shows your site's CrUX scores directly
Lesson 1926Chrome User Experience Report (CrUX)
Paginates
if a category has many items
Lesson 1786Taxonomy and Category Pages
Pagination
divides content into pages.
Lesson 2106Performance Tradeoffs and Alternatives
Paints content immediately
← FCP happens here (much earlier!
Lesson 1731First Contentful Paint (FCP)
Panel (region)
The content area that shows/hides based on the header state
Lesson 1181Accordion Pattern Overview and Structure
Panels or sections
that open/close dynamically
Lesson 1046tabindex='-1' for Programmatic Focus
Paragraph margins
(`margin-top`, `margin-bottom`) create vertical rhythm.
Lesson 592Text Spacing System
Parallel Processing
Build multiple pages simultaneously instead of one-at-a-time.
Lesson 1788Build Performance with Large Datasets
Parallelism by design
Go's goroutines make it trivial to parse, transform, and bundle files in parallel across all CPU cores
Lesson 1400esbuild: The Speed Champion
Parameters
– additional context (e.
Lesson 2782Event Tracking Fundamentals
Parcel
aims for zero configuration—it works out of the box with smart defaults, eliminating the complex config files Webpack often requires.
Lesson 1399The Modern Bundler LandscapeLesson 1405Comparing Build TimesLesson 1406Plugin Ecosystems
Parent container
If no siblings exist, focus the parent section
Lesson 1088Moving Focus After Element Removal
Parental consent flows
require you to obtain verifiable consent from a parent/guardian.
Lesson 2961Children's Privacy and Age Verification
Parse and execute
the JavaScript on the main thread
Lesson 2047The Performance Cost of Third-Party Scripts
Parse CSS
Reads stylesheets and figures out how each element should look
Lesson 18The Rendering EngineLesson 20The Critical Rendering Path
Parse HTML
Reads your HTML and builds a tree structure of elements (the DOM you learned about in Browser Architecture)
Lesson 18The Rendering EngineLesson 20The Critical Rendering Path
Parse programmatically
since it's JSON (useful for automated testing)
Lesson 2210Export and Analyze HAR Files
Parse the current parameters
using `URLSearchParams` from `window.
Lesson 980Query Parameters in Routes
Parses each rule
breaking down selectors like `body`, `h1`, `.
Lesson 22Parsing CSS into the CSSOM
Parsing HTML and CSS
to build the DOM and CSSOM
Lesson 2055What is the Main Thread?
Parsing overhead
The browser must parse all that JavaScript
Lesson 1749Performance Cost of Hydration
Parsing Resumes
After the script finishes, DOM construction continues
Lesson 672The Critical Rendering Path
Partial Data
scenarios arise when some fields succeed but others fail.
Lesson 1564Error Handling in Client Libraries
Partial hydration
is a selective approach where you identify which components actually need interactivity and only hydrate those specific pieces.
Lesson 1750Partial Hydration Concepts
Partial SSR
Render the page shell server-side (header, layout), but load user-specific sections client-side after hydration.
Lesson 1763SSR and Authentication Requirements
Partial translations
Keys present in English but absent in Spanish, Arabic, etc.
Lesson 2536Translation Coverage and Missing Key Detection
Passive Mixed Content
(images, audio, video) traditionally triggered **warnings** rather than blocks, since they can't execute code.
Lesson 2928Mixed Content: Blocking and Warnings
Path IntelliSense
Autocompletes file paths when importing modules or linking assets
Lesson 1462VS Code Extensions for Web Development
Path rules
How to convert each data item into a URL (e.
Lesson 1784Dynamic Routes from Data
Path-based
`/fr/products` or `/products/fr`
Lesson 2508Detecting Language from URL
Pattern-based matching
uses wildcards or placeholders.
Lesson 978Route Matching Strategies
Patterns and Trends
Single errors might be flukes.
Lesson 2809Why Client-Side Error Tracking Matters
Patterns during interactions
Scrolling, hovering, or animations triggering drops
Lesson 2214Frames Per Second (FPS) and Frame Drops
Patterns or textures
(hatching, dots, stripes)
Lesson 2659Accessible Color Palettes for Data
Pause on caught exceptions
Stops execution even when an error is handled by a `try.
Lesson 2262Exception Breakpoints
Pause on uncaught exceptions
Only stops when an error isn't caught—when it would normally crash or log to the console.
Lesson 2262Exception Breakpoints
PDF
Professional format for reports, combining scalability with document standards.
Lesson 2651Exporting Charts as Images
Perceivable
means users must be able to perceive the information presented.
Lesson 988The Four Principles of WCAG: POUR
Percentage
`flex-basis: 50%;` — starts at 50% of container
Lesson 282flex-basis: Setting Initial Item Size
Percentage rollouts
Gradually increase exposure
Lesson 2823Targeting and Segmentation
Percentages (`%`)
Relative to the parent element (e.
Lesson 141Width and Height Fundamentals
Perfect for
Equal-width columns or buttons in a toolbar.
Lesson 284Common flex Shorthand Values
Perfectly synced
with monitor refresh (60Hz, 120Hz, etc.
Lesson 2597requestAnimationFrame for Smooth Timing
Perform Action
Execute the operation you suspect is leaking—open a modal, load data, switch views, etc.
Lesson 2116The Three-Snapshot Technique
Perform DNS lookups
to resolve the external domain
Lesson 2047The Performance Cost of Third-Party Scripts
Perform periodic active checks
when online to verify actual connectivity
Lesson 1701Implementing a Connectivity Monitor
Performance API
to track when widgets load and how much they affect your page:
Lesson 2838Monitoring Third-Party Widget Performance
Performance audit
Third-party scripts can be slow or block your critical rendering path, appearing prominently in your request waterfall.
Lesson 2209Tracking Third-Party Requests
performance budget
is a set of predefined constraints you impose on your website's performance characteristics.
Lesson 1929What is a Performance Budget?Lesson 2102Overscan and Buffer Items
performance budgets
for total page weight and metric-based budgets you established earlier.
Lesson 1995Why Image Optimization Matters for PerformanceLesson 2231Lighthouse CI for Continuous Monitoring
Performance comparison
Running multiple CDNs lets you A/B test which provider performs best for your specific content and audience, then adjust traffic accordingly.
Lesson 2164Multi-CDN Strategies
Performance control
You decide caching headers, compression, and delivery method
Lesson 561Self-Hosting vs. Font Services
Performance degradation
As memory usage grows, your app becomes sluggish
Lesson 2107What Are Memory Leaks and Why They Matter
Performance impact assessment
Block heavy resources to measure how much they actually slow your page.
Lesson 2204Blocking Requests
Performance is paramount
– Complex animations, 3D graphics, or heavy computation need native speed
Lesson 2370When to Choose PWA vs Native
Performance matters
(reducing total listener count from 100 to 1)
Lesson 767Delegation vs Direct Binding
Performance matters more
than perfect methodology adherence
Lesson 604Mixing Methodologies Pragmatically
Performance monitoring
that's aggregated and anonymized
Lesson 2954User Consent Requirements
Performance Optimization
Webpack splits code into chunks, removes dead code (tree shaking), minifies files, and creates efficient bundles that reduce load times.
Lesson 1387What is Webpack and Why Use It
Performance overhead
Polyfilled features run slower than native implementations
Lesson 2495Browser Support and Polyfill Considerations
Performance predictability
You control compression and delivery
Lesson 2051Self-Hosting Third-Party Resources
Performance requirements
Fastly for instant updates, Cloudflare for global reach
Lesson 2159Popular CDN Providers
Performance Tools
Observe the critical rendering path in real-time, seeing how long parsing, layout, and paint take.
Lesson 26Browser Developer Tools
Performance-conscious choices
Events like `scroll`, `mousemove`, and `resize` fire rapidly.
Lesson 745Event Type Selection and Best Practices
Performance-critical
→ AVIF (smallest) → WebP → JPEG/PNG
Lesson 1246Format Selection Strategy
Performance-intensive tasks
like 3D gaming, video editing, or real-time audio processing typically run better natively.
Lesson 2363PWA vs Native App: Capabilities Comparison
Performant by default
Browser-optimized, runs on compositor thread
Lesson 2560GSAP vs CSS Animations
Performs a hard reload
(bypassing browser cache entirely)
Lesson 2440Unregister and Hard Reload
Periodic Background Sync
is fundamentally different.
Lesson 2341One-off Sync vs Periodic Background Sync
Permissions
Specific actions like "edit_post", "delete_user", "view_analytics"
Lesson 1628Role-Based Access Control (RBAC) Fundamentals
Persistent
Explicitly requested storage that won't be evicted without user permission (via `navigator.
Lesson 2241Storage Quota and Usage Analysis
Persistent Visibility
If an error appears far from the triggering element (like at the top of a scrolled form), ensure the user can see both simultaneously, or auto-scroll to the error.
Lesson 1683Error Message Placement and Timing
Personalization
→ Use SSR with session data or CSR with client-side fetching
Lesson 1777Limitations of Pure SSGLesson 2966Essential vs Non-Essential Cookies
perspective
the visual distortion that makes closer objects appear larger and distant objects smaller.
Lesson 5353D Transforms IntroductionLesson 537Perspective and Perspective-Origin
Pessimistic UI
hides everything by default, showing only a loading state until permissions are confirmed.
Lesson 1656Optimistic vs Pessimistic Authorization UI
Phishing
Display fake login forms to steal credentials
Lesson 2892What is XSS and Why It Matters
Photographs with gradients
→ JPEG or WebP (lossy compression handles complex colors well)
Lesson 1246Format Selection Strategy
Physical device theft
when the device is locked (attacker gets storage snapshot but can't run your app)
Lesson 1601Token Encryption at Rest
Pinch-to-zoom
functionality without keyboard zoom controls
Lesson 1196Touch Gesture Accessibility Considerations
Placement and Timing
Display your offline banner at the top or bottom of the viewport, never in the center where it blocks content.
Lesson 2326Offline Indicators and Banners
Plain `fetch`
works well for small projects with simple GraphQL needs.
Lesson 1565When to Use Which Client
Platform UI expectations
run deep.
Lesson 2367User Experience Tradeoffs
Platform-as-a-Service (PaaS)
, and **modern edge deployment platforms**.
Lesson 1806Deployment Platform Categories
Platform-specific features are essential
– You require Bluetooth, NFC, advanced camera APIs, or other capabilities PWAs can't access
Lesson 2370When to Choose PWA vs Native
Plausible
– Open-source, sub-1KB script, shows page views, referrers, and goals without personal data collection.
Lesson 2785Privacy-Focused Alternatives
Play/pause buttons
( always points right, globally understood)
Lesson 2521Icons and Visual Elements in RTL
Playful brands
can keep warmth but stay helpful: "Hmm, we can't find that page.
Lesson 1684Tone and Voice in Error Messages
Plugin configs
from libraries you've installed
Lesson 1429Extending Configurations
Plugin ecosystem
Handles TypeScript, Babel, and other transformations cleanly
Lesson 1401Rollup: The Library Bundler
Plugin/Extension Process
The specialists—handles add-ons separately
Lesson 17Browser Architecture Overview
Plural for collections
`/articles` not `/article`
Lesson 1471Resources and Resource Identifiers
Pluralization
"1 message" vs "2 messages" varies wildly across languages
Lesson 2530Interpolation and Variable Substitution
PNG
for broad compatibility, or **WebP/AVIF** with fallbacks for better compression
Lesson 2002Format Selection Decision TreeLesson 2004Quality Settings and Visual Perception
PNG/JPEG
Raster images perfect for presentations and documents.
Lesson 2651Exporting Charts as Images
Pointing to the original
If you syndicate content or have URL parameters creating duplicates:
Lesson 1847The rel="canonical" Link Element
Policy Registration
The browser parses the CSP directives when the page loads
Lesson 2840How CSP Works in Browsers
Polish
has three distinct plural forms based on numeric patterns
Lesson 2531Pluralization Rules Across Languages
Polling approach
Periodically fetch the user's current role from your backend.
Lesson 1637Role Changes and UI Updates
Polymorphic lists
Arrays containing mixed types
Lesson 1536Inline Fragments and Type Conditions
Poor compression
compared to modern formats
Lesson 1245GIF: Animation and Legacy Support
Poor mobile experience
Mobile devices have less memory and suffer more quickly
Lesson 2107What Are Memory Leaks and Why They Matter
Popup listbox
that appears with filtered or suggested options
Lesson 1198Combobox Pattern Fundamentals
Position (x, y)
– Move elements around (values in pixels):
Lesson 2563Basic Animations with animate Prop
Position wisely
Top bars are more noticeable; bottom bars less intrusive
Lesson 1702Offline UI Indicators
Positioning
Each cell needs `position: absolute` with calculated `top` and `left` based on its row/column indices and your item dimensions.
Lesson 2103Virtual Grid Layouts
Positions
it absolutely so it doesn't affect layout
Lesson 1127The CSS Visually Hidden Pattern
Positive `z-index` children
(positioned elements with `z-index: 1`, `2`, etc.
Lesson 232Stacking Order Within a Context
Positive impact
SSR delivers functional HTML immediately, so the page *appears* interactive faster.
Lesson 1734First Input Delay (FID)
Positive numbers
move forward in history
Lesson 970history.go() for Jumping Multiple Steps
Positive values
rotate **clockwise**
Lesson 531Rotating Elements with rotate()
Positive word-of-mouth
that amplifies brand reputation
Lesson 2982Building Trust Through Privacy-First Design
Positive Z values
move elements toward you (closer)
Lesson 5353D Transforms Introduction
Post-Install Behavior
After a user installs, track how they engage differently.
Lesson 2361Install Analytics and Metrics
POST, PUT, PATCH, DELETE
requests that modify data
Lesson 2908State-Changing Requests and CSRF Risk
PostCSS
(a tool for transforming CSS) and **autoprefixer** (which adds browser-specific prefixes automatically) to process your styles.
Lesson 606Installing Tailwind CSSLesson 2284Source Maps for CSS and Preprocessors
Potential challenge
SSR applications still need to "hydrate"—attach JavaScript event handlers to the server-rendered HTML.
Lesson 1734First Input Delay (FID)
POUR
Perceivable, Operable, Understandable, and Robust.
Lesson 988The Four Principles of WCAG: POUR
Pre-bundles dependencies
(from `node_modules`) once using esbuild—these rarely change
Lesson 1373Vite's Development Server
Pre-caching on Page Load
You can open a cache and immediately store critical resources when your page loads, ensuring they're available for later use.
Lesson 818Cache API Outside Service Workers
Pre-commit hooks
that warn developers before code is pushed
Lesson 2536Translation Coverage and Missing Key Detection
Pre-compression
(also called static compression) means compressing your files once at build time—before they ever reach your server.
Lesson 2137Pre-Compression vs Dynamic Compression
Pre-made meals
(pre-rendered): Popular dishes ready immediately
Lesson 1799ISR with Dynamic Routes
Pre-optimize HTML structure
Match server/client rendering exactly to avoid mismatches
Lesson 1739Hydration Time
Pre-render popular paths
Generate your top 100 products, most-read articles, or featured content at build time
Lesson 1799ISR with Dynamic Routes
Pre-Submission
Call `checkValidity()` to verify without showing messages
Lesson 911Understanding Constraint Validation API
precaching
, where you define a manifest of assets to cache when the service worker installs.
Lesson 2419Runtime Caching FundamentalsLesson 2420When to Use Each Strategy
precise control
but can cause overflow or wasted space if content doesn't match your fixed dimensions.
Lesson 151Intrinsic vs Extrinsic SizingLesson 154Absolute Units: px, pt, cm, mm, inLesson 326Defining Grid Rows with grid-template-rows
Precision
Exact numeric control over each color channel
Lesson 182RGB and RGBA Functions
Predictable behavior
Components work reliably regardless of the page they're used on
Lesson 2459What is Shadow DOM and Why It Exists
Prefer allowlisting
If possible, map user input to predefined safe values rather than direct insertion
Lesson 2900CSS Context Encoding
Prefer instead
`transform: translateX()`, `scale()`, `rotate()`.
Lesson 539Transform Performance Best Practices
Prefer min-width (mobile-first)
in most cases—it aligns with progressive enhancement, performs better on mobile devices (which load the base styles first), and matches how most users browse today.
Lesson 392min-width vs max-width Strategies
Prefer single classes
over complex combinations:
Lesson 1352Writing Low-Specificity Selectors
Preference persistence
Reload the page—your choices should be remembered without re-prompting
Lesson 2974Testing and Auditing Cookie Consent
Preload + `fallback`
Middle ground with brief invisible period
Lesson 1300Preload with font-display Strategies
Preload + `optional`
Fast load, but font might not appear if preload fails (for non-critical fonts)
Lesson 1300Preload with font-display Strategies
Preload + `swap`
Fast load, always visible text (most common)
Lesson 1300Preload with font-display Strategies
Preload critical fonts
Use `<link rel="preload">` for above-the-fold fonts only
Lesson 572Web Font Best Practices Checklist
Preload tells the browser
"Download this resource NOW—you'll need it on this page very soon.
Lesson 1965Preload for Critical Resources
Preprocessor variables
are replaced during build time and don't exist in the final CSS
Lesson 467What are CSS Custom Properties?Lesson 477Custom Properties vs Preprocessor Variables
Prerender.io
, **Rendertron**, and **react-snap** (for React apps).
Lesson 1880Static Pre-Rendering Solutions
Presentation delay
– browser painting the update
Lesson 1894Interaction to Next Paint (INP) as FID Successor
Presentational images
created with CSS or font icons
Lesson 1023aria-hidden: Removing from Accessibility Tree
Preserve context
– Optionally save the current URL so users can return after re-authenticating
Lesson 1610Handling Failed Refresh Attempts
Preserve log
is a DevTools setting that maintains console output across page loads, redirects, and refreshes.
Lesson 2195Preserving Log and Console Settings
Preserve them
when navigating to related routes
Lesson 980Query Parameters in Routes
Preserves order
multiple defer scripts run sequentially
Lesson 2792async vs defer Attributes
Preserving validation
feedback in the new language
Lesson 2512Handling Language Change in Forms
Preset devices
Test common devices (iPhone SE, iPad, large desktop)
Lesson 404Testing Media Queries Across Devices
Pressed Button State
Lesson 204Inset Shadows
Prettier extension
Formats your code on save (integrates with your Prettier configuration)
Lesson 1462VS Code Extensions for Web Development
Prettier reformats
your code consistently
Lesson 1455Installing and Running Prettier
Prevent accidental triggers
(users brushing past a hover area)
Lesson 506The transition-delay Property
Prevent blocking
during heavy calculations
Lesson 2085What Web Workers Are and Why They Exist
Prevent default behavior
if needed
Lesson 1083Escape Key Handling
Prevent default validation UI
using `novalidate` on your form (or handle it programmatically)
Lesson 917Custom Error Message Display
Prevent performance debt
from accumulating
Lesson 1924Lighthouse CLI and CI Integration
Prevent Performance Regression
Without budgets, websites naturally get slower.
Lesson 1930Why Performance Budgets Matter
Preventing default behavior
so arrow keys don't scroll the page
Lesson 1079Grid Navigation Patterns
Prevents naming collisions
IDs and class names inside Shadow DOM won't conflict with the outside
Lesson 2459What is Shadow DOM and Why It Exists
Prevents wrapping
that might expand the box
Lesson 1127The CSS Visually Hidden Pattern
Preview
and **Response** tabs let you inspect images, JSON data, HTML, and other content types right where you are.
Lesson 2201Response Preview and Content Inspection
Preview Mode
(found in your container workspace) to test.
Lesson 2803Installing GTM on Your Site
Preview tab
Shows a formatted, human-friendly version of the response.
Lesson 2201Response Preview and Content Inspection
Preview/Response
The actual message content (often JSON)
Lesson 2206WebSocket and EventSource Inspection
Previous sibling
If it was the last item, focus the previous one
Lesson 1088Moving Focus After Element Removal
Pricing
Look beyond "free tier" marketing.
Lesson 1815Platform Selection Criteria
Primary key path
Shows which property serves as the key
Lesson 2235IndexedDB Inspection and Debugging
Primary metric
The main thing you care about (conversion rate, revenue per user, signup completions)
Lesson 2825A/B Testing Fundamentals
Primitives
strings, numbers, booleans, `null`, `undefined`
Lesson 2088Structured Clone Algorithm and Data Transfer
Prioritization
Not all errors matter equally.
Lesson 2809Why Client-Side Error Tracking Matters
Prioritize critical assets
– never evict HTML/CSS/JS shells
Lesson 2396Cache Size Management
Prioritize what matters most
Load critical widgets (like chat support on a pricing page) with higher priority, while deferring social sharing buttons that users rarely interact with.
Lesson 2836Managing Multiple Embed Scripts
Priority Column
Verify that `preload` resources show "Highest" or "High" priority and start downloading earlier in the waterfall.
Lesson 1972Measuring Resource Hint Impact
Privacy compliance
Many third-party services collect user data.
Lesson 2209Tracking Third-Party Requests
Privacy-first
No tracking until user consents by clicking
Lesson 2837Privacy-Friendly Embed Alternatives
Private error monitoring services
Upload source maps to services like Sentry or Rollbar, which apply them server-side to stack traces without exposing them to end users.
Lesson 2282Production Source Maps: Security and Privacy
Pro
Single HTTP request — no separate file to fetch
Lesson 2281Inline vs External Source Maps
Processing actions
"Saving your changes.
Lesson 1133Loading and Status Messages
Processing time
– executing event handlers
Lesson 1894Interaction to Next Paint (INP) as FID Successor
Product catalogs
Medium intervals (5-15 minutes) balancing freshness and build costs
Lesson 1796Configuring Revalidation Intervals
Product inventory
Every 300 seconds/5 minutes (balance between freshness and server load)
Lesson 1802Content Freshness vs Build Time Trade-offs
Product listings
Pre-rendered grid, client-side inventory/pricing updates
Lesson 1778Hybrid Approaches
Product photos
where color accuracy matters
Lesson 1997JPEG: When and How to Use It
Production builds
measure the time to generate optimized, deployment-ready files.
Lesson 1405Comparing Build Times
Production mode
flips priorities entirely:
Lesson 1393Development vs Production Mode
Professional brands
should be direct: "This action requires admin permissions.
Lesson 1684Tone and Voice in Error Messages
Professional polish
Custom typography elevates your design from generic to memorable
Lesson 558Introduction to Web Fonts
Profiling or automated decision-making
Lesson 2960Legitimate Interest vs Consent
Programmatic uploads
Sending files obtained through JavaScript APIs (camera, drag-and-drop)
Lesson 892Creating FormData Without Forms
Progress indicators
moving horizontally
Lesson 2521Icons and Visual Elements in RTL
Progress updates
Announcing "1% complete, 2% complete, 3% complete.
Lesson 1124Avoiding Announcement Spam
Progressive disclosure
Introduce advanced features gradually, not all at once
Lesson 2346Permission Best Practices and Timing
Progressive encoding
saves the image in multiple passes at increasing quality levels.
Lesson 2005Progressive vs Baseline Encoding
Progressive enhancement validation
Block JavaScript files to confirm your baseline HTML/CSS experience still works.
Lesson 2204Blocking Requests
Progressive hydration
Hydrate visible components first
Lesson 1739Hydration TimeLesson 1751Progressive Hydration
Progressive rendering
Browsers can paint content as soon as HTML chunks arrive, before JavaScript loads or executes
Lesson 1737Speed Index
Progressive Web App
category.
Lesson 2307Testing and Validation
Progressive Web App (PWA)
that can:
Lesson 2296What is a Web App Manifest?
Project-specific accessibility
Custom ARIA requirements for your design system
Lesson 1451Custom HTML Linting Rules
Prominent Placement
Position social login buttons above or alongside traditional email/password forms—never bury them.
Lesson 1624Social Login UI Patterns
Promise rejects
Sync failed—browser will automatically retry later
Lesson 2338Sync Event Lifecycle and Timing
Promise resolves
Sync completed successfully—browser won't retry
Lesson 2338Sync Event Lifecycle and Timing
Prompt Impressions
Log every time your custom install button appears or `beforeinstallprompt` fires.
Lesson 2361Install Analytics and Metrics
Proper form state preservation
means saving entered data, validation results, and the user's position in multi-step forms before updating the interface language.
Lesson 2512Handling Language Change in Forms
Proper landmark regions
(`<header>`, `<nav>`, `<main>`, `<footer>`) for screen reader navigation
Lesson 1071Skip Links vs Landmarks
Properly implement token patterns
Include CSRF tokens in forms and AJAX requests
Lesson 2907What is CSRF and Why Frontend Matters
Property Rules
ensure you're using valid CSS properties correctly.
Lesson 1439Common Stylelint Rules
Protocol-relative URLs
(`//example.
Lesson 2929Upgrading Resources to HTTPS
Prototyping
quick styling without looking up codes
Lesson 180Color Keywords and Named Colors
prove
your component works accessibly with just semantic HTML.
Lesson 1038Testing Without ARIA FirstLesson 2916Testing CSRF Protection
Provide context
If possible, explain *why* it might be missing ("This post may have been deleted" or "That user doesn't exist").
Lesson 1681Not Found and Resource Errors
Provide feedback
when operations succeed or fail
Lesson 1207Drag and Drop Accessibility
Provide instant feedback
on `:active` states (no transition needed for clicks)
Lesson 512Common Transition Patterns and Best Practices
Provide meaningful `alt` text
This helps both accessibility and search indexing, as search engines use alt text to understand image content.
Lesson 1257Lazy Loading and SEO Considerations
Provide meaningful title attributes
for accessibility
Lesson 1258Lazy Loading Iframes and Embeds
Provide visual feedback
on user interactions (hover, focus, active states)
Lesson 501Introduction to CSS Transitions
Provider echoes it back
unchanged in the callback
Lesson 1622State Parameter for CSRF Protection
Providing context
is crucial—include screenshots, character limits, and notes about where text appears.
Lesson 2537Collaboration with Translators and Translation Services
Providing metadata
Information like last modification date helps crawlers prioritize fresh content
Lesson 1869What is a Sitemap and Why It Matters
Pseudonymous tracking
uses identifiers that don't directly reveal a person's name but still uniquely identify them — like a customer number, session ID, or cookie token.
Lesson 2980Anonymous vs Pseudonymous Tracking
Public key
Shared with the browser during subscription—it's safe to expose
Lesson 2348VAPID Keys and Application Server Keys
Public-facing SPA (low-sensitivity data)
Lesson 1603Token Storage Best Practices by Use Case
Public-facing websites
where users share links across different language communities
Lesson 2540Content Negotiation vs Explicit URLs
Publicly accessible
(no authentication required)
Lesson 1845Social Sharing Best Practices
Publish to npm
Your component library becomes a standard JavaScript package
Lesson 2487Design System Distribution
Pull CDNs
(most common) automatically fetch files from your origin server when first requested.
Lesson 2160CDN Configuration Basics
Pull quotes
(highlighting a quote from the article)
Lesson 52The <aside> Element
Purchase a domain
from a registrar (like Namecheap, Google Domains)
Lesson 1812Custom Domains and DNS
Purge all
Nuclear option—clears everything.
Lesson 2162CDN Cache Invalidation
Purge by path pattern
Clear entire directories like `/assets/*`.
Lesson 2162CDN Cache Invalidation
Purge by URL
Remove specific files like `/app.
Lesson 2162CDN Cache Invalidation
PurgeCSS
(now built into Tailwind's content configuration), unused utilities are stripped out.
Lesson 659Performance Implications of Utility-First CSSLesson 1419Tree Shaking CSSLesson 1976Critical CSS Extraction Tools
Purging/Content Configuration
is your first line of defense.
Lesson 643Performance Considerations with Variants
Purple clusters after yellow
JavaScript forcing expensive layout recalculations (layout thrashing)
Lesson 1917Reading Performance Flame Charts
Purpose limitation
Only collect data you actually need for stated purposes
Lesson 2975Understanding Ethical vs Invasive TrackingLesson 2979Minimizing Data Collection
Push CDNs
require you to manually upload files to the CDN servers ahead of time.
Lesson 2160CDN Configuration Basics
Push Messaging
Receives server-initiated notifications
Lesson 2240Background Services Monitoring
Push notifications
require HTTPS
Lesson 2933Service Workers Require HTTPS
PUT/PATCH
to update existing data
Lesson 1470What is REST and Why It Matters
PWA
(Progressive Web App) evaluates whether your site meets the criteria for installability and offline functionality.
Lesson 2223What Lighthouse Measures and Why It MattersLesson 2366Development and Maintenance Costs
PWAs
must load HTML, CSS, and JavaScript before rendering, even with aggressive caching.
Lesson 2365Performance CharacteristicsLesson 2368Offline Capabilities Comparison

Q

Quantity-based budgets
limit the *size* of resources.
Lesson 1931Types of Performance Budgets
Query complexity
refers to calculating a "cost" for each query based on the fields requested and their relationships.
Lesson 1544Query Complexity and Depth Limiting
Query parameter-based
`/products?
Lesson 2508Detecting Language from URL
Query upload state
– Before resuming, ask the server: "Which chunks do you have?
Lesson 2718Resumable Upload Pattern
Query user preferences
from your database
Lesson 1762Geographic and Personalized Content
Queueing
(light gray): waiting for an available connection
Lesson 2198Understanding the Request Waterfall
QUIC
(Quick UDP Internet Connections).
Lesson 2127HTTP/3 and QUIC Protocol
Quick debugging
without writing full `if` statements
Lesson 2192Console.assert() for Runtime Checks
Quick feedback
`150ms` to `300ms` (feels snappy and responsive)
Lesson 503The transition-duration Property
Quick iteration is critical
– Updates deploy instantly without app store review delays
Lesson 2370When to Choose PWA vs Native
Quick prototypes
When rapidly sketching ideas, physical properties are faster and more familiar.
Lesson 465When to Use Logical vs Physical Properties
Quick prototyping
Testing CSP policies before configuring the server
Lesson 2876CSP Meta Tag Alternative
Quirks mode
Mimics old, buggy behavior from the 1990s for backward compatibility
Lesson 79The Document Type Declaration
Quota
The maximum allowed storage (varies by device, available disk space, and browser)
Lesson 2241Storage Quota and Usage Analysis
Quotes
The `quotes` rule can enforce `"single"`, `"double"`, or `"backtick"` quotes throughout your code.
Lesson 1431Rule Options and CustomizationLesson 2874CSP Header Format and Syntax
Qwik
Resumability instead of hydration—serializes application state, avoiding replay entirely
Lesson 1755Hydration in Different Frameworks

R

Radio buttons
Users can select *only one* option from a group (like choosing a shirt size: S, M, or L)
Lesson 96Checkbox and Radio InputsLesson 897The required Attribute
Random sampling
Profile 1-5% of sessions
Lesson 2294Performance Profiling in Production
Range
The span of your output visual property (`[0, 400]`)
Lesson 2630Scales: Mapping Data to Visual Properties
Rapid data refreshes
Auto-updating feeds that change every second
Lesson 1124Avoiding Announcement Spam
Rapid development
of standard charts (bar, line, pie)
Lesson 2642D3 vs Higher-Level Charting Libraries
Rapid prototyping
or development environments where speed matters more than production-grade security
Lesson 2887unsafe-inline Tradeoffs
Rapidly Evolving Products
Lesson 1555When GraphQL Shines
Rarely changing
Logo images, core fonts, key UI components
Lesson 2416Understanding Precaching
Rarely-used features
Heavy functionality that could load on-demand
Lesson 1949Analyzing Bundle Size and Split Points
Raster images
are made of a fixed grid of colored pixels, like a mosaic or digital photograph.
Lesson 1239Understanding Raster vs Vector Image Formats
Rate limiting information
(like `X-RateLimit-Remaining`)
Lesson 1504Custom Headers and API Conventions
RDFa
(Resource Description Framework in Attributes) is similar but uses different attributes like `vocab`, `typeof`, and `property`.
Lesson 1855JSON-LD vs Microdata vs RDFa
Re-import
into DevTools by dragging the file onto the Network panel
Lesson 2210Export and Analyze HAR Files
Re-measure when content changes
(like images loading or text expanding)
Lesson 2101Variable-Height Item Virtualization
React projects
naturally pair well with CSS Modules or CSS-in-JS.
Lesson 603Choosing an Architecture for Your Project
React/JSX
ESLint with `eslint-plugin-react` parses JSX as JavaScript
Lesson 1450Linting HTML in Templates and Components
Read authentication cookies
to identify the user
Lesson 1762Geographic and Personalized Content
Read column header
Hear which column you're in
Lesson 1108Table Navigation and Testing
Read current cell
Screen reader announces the cell content plus associated headers
Lesson 1108Table Navigation and Testing
Read Current Line
Insert + Up arrow tells you where you are
Lesson 1103Basic Screen Reader Navigation Commands
Read error messages
that reference your source files and line numbers
Lesson 2283Debugging with Source Maps in DevTools
Read Page Title
Insert + T announces the current page title
Lesson 1103Basic Screen Reader Navigation Commands
Read row header
Hear which row you're in
Lesson 1108Table Navigation and Testing
Read the cookie
using `document.
Lesson 2912Double Submit Cookie Pattern
Read the entry point
(usually `index.
Lesson 2947Reviewing Package Source Code
Read the user's role
from your auth state (token payload, context, or store)
Lesson 1631Route Protection with Role Checks
Read your `.eslintrc` configuration
to understand your project's rules
Lesson 1464Inline Error Highlighting with ESLint
ReadableStream
that delivers data in chunks as it arrives.
Lesson 839Streaming Response Bodies with ReadableStream
Reads all CSS sources
(external files, `<style>` tags, inline styles)
Lesson 22Parsing CSS into the CSSOM
Reads your source files
components, data sources, markdown files, API responses
Lesson 1722The SSG Build and Delivery Process
Real devices
Verify on actual hardware when available
Lesson 404Testing Media Queries Across Devices
Real User Context
Errors include browser details, user actions, network conditions, and custom data you attach.
Lesson 2809Why Client-Side Error Tracking Matters
Real User Monitoring
(RUM, or field data).
Lesson 1915Synthetic vs Real User Monitoring (RUM)
Real User Monitoring (RUM)
tools capture hydration performance from actual users' devices, revealing issues that synthetic tests miss—especially on lower-end hardware where hydration costs multiply.
Lesson 1756Measuring Hydration Performance
Real-Time (Sparingly)
For critical constraints (like password strength or username availability), provide live feedback— but after a brief delay to avoid jarring updates on every keystroke.
Lesson 1683Error Message Placement and Timing
Real-Time Collaboration Features
Lesson 1555When GraphQL Shines
Real-time data
→ Use SSR or CSR to fetch fresh data on each request
Lesson 1777Limitations of Pure SSG
Real-time state changes
Live regions that announce updates without disrupting user focus
Lesson 1036ARIA for Application-Like Interfaces
Real-world conditions
How does it look outdoors in sunlight?
Lesson 387Testing on Real Devices
Real-world example
Don't mark up product prices that differ from what's actually displayed, or include fake reviews that don't exist on your page.
Lesson 1868Structured Data Best Practices and Common Mistakes
Reality
Building accessibility in from the start costs far less than retrofitting later.
Lesson 995Common Accessibility Myths and Misconceptions
Reapplying values
after the UI updates
Lesson 2512Handling Language Change in Forms
Reassemble server-side
The server concatenates chunks in order once all arrive
Lesson 2717Chunked Upload for Large Files
Rec2020
(even wider) and **Lab/LCH** (perceptually uniform color spaces).
Lesson 491Understanding Color Spaces: sRGB, Display-P3, and Beyond
Receive
The server sends back files—HTML, CSS, JavaScript, images—as the response
Lesson 16What is a Web Browser?
Recent updates look suspicious
(sudden major version jump, new maintainer)
Lesson 2947Reviewing Package Source Code
Recessed Input Fields
Lesson 204Inset Shadows
Recharts
is React-native and composable, using SVG and a declarative component API.
Lesson 2643Overview of Popular Charting LibrariesLesson 2649Updating Charts with Live Data
Recommendation
(usually "upgrade to X version")
Lesson 2944Reading npm Audit Reports
Red (error)
is for rules that catch bugs or enforce critical team standards.
Lesson 1430Rules: Errors, Warnings, and Off
Red triangles
in the corner of tasks—these mark long tasks over 50ms
Lesson 2057Identifying Main-Thread Blocking
Redirect
Send users elsewhere if conditions aren't met
Lesson 982Route Guards and Navigation Hooks
Redraw the chart
by updating scales and re-rendering elements
Lesson 2641Responsive D3 Charts
Reduce data points
Show every 5th point instead of every point in a line chart when width drops below 600px.
Lesson 2657Breakpoint-Based Chart Simplification
Reduce initial parse time
– Less JavaScript means faster parsing
Lesson 1991Optimizing JavaScript Execution with Code Splitting
Reduce JavaScript bundle size
Less code to parse and execute
Lesson 1739Hydration Time
Reduce unnecessary elements
If you're plotting 10,000 data points in a line chart, consider:
Lesson 2612SVG Performance Considerations
Reduced bandwidth consumption
(one compressed file is smaller than six separate ones combined)
Lesson 579Variable Font Performance Benefits
Reduced bandwidth costs
– Less data transferred over the network
Lesson 1478Cacheability ConstraintLesson 2156What is a CDN and Why Use One
Reduced confusion
Hide admin menus from regular users
Lesson 1638Security Considerations for Frontend Authorization
Reduced latency
– Clients get instant responses from cache
Lesson 1478Cacheability Constraint
Reduced layout thrashing
Batches DOM reads/writes automatically
Lesson 2546GSAP Overview and Why Use It
Reduced legal risk
from compliance violations
Lesson 2982Building Trust Through Privacy-First Design
Reduced network hops
Fewer routers between user and content means lower latency
Lesson 2157CDN Performance Benefits
Reduced server load
Processing smaller queries is cheaper
Lesson 1507Why Pagination Matters
Reduces Boilerplate
Instead of writing dozens of lines to implement a cache-first strategy with cache expiration, Workbox condenses this into a few lines of configuration.
Lesson 2404What is Workbox and Why Use It
Reduces initial page weight
Only critical resources load first
Lesson 1951What is Lazy Loading and Why It Matters
Redundancy and uptime
If one CDN goes down, traffic automatically routes to another.
Lesson 2164Multi-CDN Strategies
Redundant Labels
If you're tempted to add visually hidden text that simply repeats what's already on screen, stop.
Lesson 1135When NOT to Use Visually Hidden Content
Refetching
means manually triggering a fresh data fetch, usually in response to user actions like pulling to refresh or clicking a reload button.
Lesson 1563Polling and Refetching
Reflecting
means writing code to keep them in harmony.
Lesson 2456Reflecting Properties to Attributes
Refresh periodically
(revalidation): Update all meals regularly to keep them fresh
Lesson 1799ISR with Dynamic Routes
Refresh the page
and watch which image files load
Lesson 429Testing Responsive Image Delivery
Refresh token revocation
means maintaining a server-side record of which refresh tokens are still valid, then actively invalidating them when needed.
Lesson 1613Refresh Token Revocation
Refresh token rotation
Revoke the refresh token server-side while letting short-lived access tokens expire naturally
Lesson 1574Session Invalidation and Logout
Regeneration Events
Log every time a page regenerates.
Lesson 1805Monitoring and Debugging ISR
Register a sync event
Call `registration.
Lesson 2401Background Sync for Failed Requests
Register background sync
→ trigger `sync` event
Lesson 2337Storing Failed Requests with IndexedDB
registered axes
(standardized four-letter codes) and sometimes **custom axes** (defined by the font designer).
Lesson 575The font-variation-settings PropertyLesson 1288Variable Font Axes
Registering
is the critical step that connects your JavaScript class to an HTML tag name, making it usable throughout your application.
Lesson 2446Registering Custom Elements
Registration
You pass a third argument `{ extends: 'button' }` to tell the browser which native element you're customizing
Lesson 2453Extending Built-in Elements
Registration details
Scope, update cycle timing, and source file location
Lesson 2322Testing Service Workers Locally
Registration status
Whether the worker is installing, waiting, or active
Lesson 2238Service Worker Registration and Lifecycle
Regulatory checkbox
for certain compliance requirements
Lesson 1601Token Encryption at Rest
Rejected categories
Confirm cookies remain blocked, scripts don't load
Lesson 2974Testing and Auditing Cookie Consent
Related action
Focus an "Add New" button or return to a main control
Lesson 1088Moving Focus After Element Removal
Related articles
or "You might also like.
Lesson 52The <aside> Element
Related content sections
need organization (like product details: "Description," "Reviews," "Specifications")
Lesson 1175Tabs Pattern Overview and When to Use Them
Relationship
Does the user's team/organization have access?
Lesson 1645Resource-Level Permissions
Relationships
`aria-controls` linking tabs to their panels, `aria-labelledby` connecting panels to tabs
Lesson 1032ARIA for Complex Interactive WidgetsLesson 1368Theme Documentation and Design Tokens
Relative URL
`href="about.
Lesson 72Hyperlinks Fundamentals
Release
When you scroll back up past its original position
Lesson 222Sticky Positioning Fundamentals
Reliable
If a server crashes, another can pick up without losing context
Lesson 1473Statelessness in REST APIs
Reload recording
captures the entire page load:
Lesson 2211Performance Panel Overview and Recording
Remain framework-agnostic
and reusable anywhere
Lesson 2491Leaf vs Container Components
Remains completely invisible
to sighted users (no screen space, no visual clutter)
Lesson 1126Why Visually Hidden Content Matters
Remote Debugging
for immediate validation
Lesson 2295Rollback and Hotfix Workflows
Remote Network Debugging
Lesson 2290Remote Debugging
Removal
– Flag and conditional code deleted entirely
Lesson 2828Flag Lifecycle and Technical Debt
Remove disabled attributes
from DOM elements
Lesson 1648Client-Side Permission Security Limitations
Remove editor metadata
– design tools add unnecessary comments and hidden layers
Lesson 2001SVG for Vector Graphics
Remove progress indicators
from the DOM
Lesson 2722Upload Cancellation and Cleanup
Remove slide transitions
(instant switches instead)
Lesson 1195Handling Reduced Motion Preferences
Removing borders/padding
from containers that should collapse when empty
Lesson 453:empty for Conditional Content Display
Removing elements
Right-click any element and select "Delete element" (or press Delete/Backspace after selecting).
Lesson 2178Adding and Removing Elements
Render
information the user can't even see yet
Lesson 1507Why Pagination Matters
Render customized HTML
before sending the response
Lesson 1762Geographic and Personalized Content
Render initial items
in the viewport
Lesson 2101Variable-Height Item Virtualization
Render Times
How long React/Vue components take to paint
Lesson 2816Performance Monitoring Integration
Render-blocking resources
delaying First Contentful Paint
Lesson 2222Performance Insights and Recommendations
Renderer Process
The chef—draws and displays web page content (one per tab usually)
Lesson 17Browser Architecture Overview
Rendering queue
Pages requiring JavaScript execution get added to a separate queue for later rendering
Lesson 1878Googlebot's JavaScript Rendering
Rendering tests
help you compare what users see versus what bots see.
Lesson 1885Testing SPA SEO
Renders nothing
(or a fallback) if they don't
Lesson 1632Component-Level Access Control
Rendertron
, and **react-snap** (for React apps).
Lesson 1880Static Pre-Rendering Solutions
Repeat visitors benefit
First-time visitors see system fonts; returning visitors get the custom font (because it's cached)
Lesson 1276font-display: optional Strategy
Replace content
Use JavaScript to iterate through elements with text or `data-i18n` attributes and swap their content with translations
Lesson 2509Changing Language Without Page Reload
Replace custom expiration logic
Any code checking cache timestamps or entry counts can be eliminated.
Lesson 2415Migration from Manual Service Workers
Replace placeholder
Swap the placeholder with the real widget once loaded
Lesson 2799Lazy Loading Third-Party Widgets
Replace width percentages
with `flex: 1` (Flexbox) or `grid-template-columns` (Grid)
Lesson 244Migrating from Float Layouts
Replacing text content
(layout recalculation)
Lesson 2515Language Switching Performance
Report-Only doesn't override enforcing
`Content-Security-Policy-Report-Only` runs alongside enforcing policies but never relaxes them.
Lesson 2878CSP Header Precedence Rules
Reporting API
, which provides a standardized, structured way to collect all kinds of browser reports—not just CSP violations, but also deprecation warnings, network errors, and more.
Lesson 2869The report-to Directive
Reproduction strategies
are systematic techniques to bridge this gap and make bugs appear in your controlled development space.
Lesson 2288Reproduction Strategies
Request
When you enter `https://example.
Lesson 16What is a Web Browser?
Request Body
The data for the new resource (usually JSON)
Lesson 1484POST: Creating Resources
Request comes in
(user navigates or app fetches a resource)
Lesson 2152Cache-First Strategy
Request Headers
Look for `Access-Control-Request-Method` and `Access-Control-Request-Headers` to see what your browser is asking permission for
Lesson 869Debugging CORS IssuesLesson 2207Cache Behavior and Validation
Request modification
might add authentication headers or query parameters before fetching.
Lesson 2412Custom Plugins and Middleware
Request parental email
to initiate a consent flow
Lesson 2961Children's Privacy and Age Verification
Request payloads
– What data is being sent?
Lesson 2261XHR/Fetch Breakpoints
Request start time
Earlier = hint worked
Lesson 1972Measuring Resource Hint Impact
Request table columns
Each row is one network request.
Lesson 2196Network Panel Overview and Interface
Request time
When a user visits, they receive the ready-made HTML file immediately—no server processing needed
Lesson 1721What is Static Site Generation (SSG)?
Request Timing Breakdown
reveals the hidden stages every HTTP request passes through, from the moment your browser decides to fetch a resource until the last byte arrives.
Lesson 2200Request Timing Breakdown
Request transformation
Rewrite URLs, add security headers, resize images on-the-fly, or block malicious requests—all without touching your backend.
Lesson 2163CDN Edge Functions and Workers
Request URL
The resource that was cached
Lesson 2237Cache Storage Inspection
Request-Response Cycle
happens between your browser and a web server.
Lesson 10What is a Web Server?Lesson 20The Critical Rendering Path
Request-Response pairs
(HTTP resources).
Lesson 822Data Structure Requirements
Request/Response
`responseEnd - requestStart`
Lesson 1918Navigation Timing API
Request/Response pairs
the cache remembers both what was asked for (the URL/request) and what came back (the response with headers and body).
Lesson 811Adding Resources to the Cache
Required fields are announced
The `required` attribute or `aria-required` should be communicated
Lesson 1106Forms Mode and Input Testing
Required immediately
(users need them to see anything useful)
Lesson 2420When to Use Each Strategy
Required values
You *must* include `font-size` and `font-family`, in that order.
Lesson 179The Font Shorthand Property
Reserve space
before images load, preventing layout shift
Lesson 1261Understanding Aspect Ratio in Web Design
Reset file input values
if allowing retry
Lesson 2722Upload Cancellation and Cleanup
Reset retry counters
– Fresh connection means fresh attempts
Lesson 1705Reconnection Strategies
Resize your browser viewport
(make it narrower or wider)
Lesson 429Testing Responsive Image Delivery
Resolution-independent
Scales perfectly at any size
Lesson 2601SVG Fundamentals for Data Visualization
Resource contention
(CPU, memory, network)
Lesson 1738Server Response Time
Resource identification
URIs point to resources
Lesson 1472The Uniform Interface Constraint
Resource Request
When your page tries to load a script, style, image, or other resource, the browser checks it against the policy
Lesson 2840How CSP Works in Browsers
Resource size
(larger number) — uncompressed size
Lesson 2139Verifying Compression in DevTools
Resource Timing API
shows you what loaded and when:
Lesson 1960Measuring Lazy Loading Impact
Resource-level permissions
check if a user has access to a **specific** resource, like "Can this user edit *this particular* post?
Lesson 1645Resource-Level Permissions
Resource:action
format (`read:profile`, `write:posts`)
Lesson 1619OAuth Scopes and Permissions
Respect "no"
Never guilt-trip or repeatedly nag
Lesson 2346Permission Best Practices and Timing
Respect `prefers-reduced-motion`
This CSS media query detects if users have requested reduced motion in their operating system settings.
Lesson 1185Animated Transitions and Accessibility
Respect SameSite cookie attributes
Understand how `SameSite=Strict` or `SameSite=Lax` prevents cookies from cross-site requests
Lesson 2907What is CSRF and Why Frontend Matters
Respect the box model
their total height includes content, padding, border, and margin
Lesson 208Block-Level Elements in Normal Flow
Respects white space
Spaces, tabs, and line breaks in your HTML between inline elements become visible spaces in the rendered layout.
Lesson 209Inline Elements in Normal Flow
Respond to events
Detect clicks, key presses, mouse movements, and other user actions
Lesson 41JavaScript's Role: Adding Interactivity
Response Body
Often the complete representation of the created resource, including server-generated fields like `id` and `createdAt`
Lesson 1484POST: Creating ResourcesLesson 2237Cache Storage Inspection
Response filtering
helps you avoid caching bad responses (like 404s or server errors).
Lesson 2412Custom Plugins and Middleware
Response handling
– What happens immediately after the data arrives?
Lesson 2261XHR/Fetch Breakpoints
Response Headers
Check if the server returned `Access-Control-Allow-Origin`, `Access-Control-Allow-Methods`, and `Access-Control-Allow-Headers`
Lesson 869Debugging CORS IssuesLesson 2139Verifying Compression in DevToolsLesson 2207Cache Behavior and ValidationLesson 2237Cache Storage Inspection
Response status
HTTP status code (usually 200)
Lesson 2237Cache Storage Inspection
Response tab
Shows the raw, unprocessed text exactly as the server sent it—useful when you need to see formatting, check whitespace, or copy exact content.
Lesson 2201Response Preview and Content Inspection
Response time guarantees
that may require more powerful servers
Lesson 1764Cost and Infrastructure Considerations
Responsive behavior
if you're using fluid typography with `clamp()`
Lesson 594Documentation and Type Specimens
Responsive-friendly
Change `gap` at breakpoints without touching individual items
Lesson 279gap: Modern Spacing Between Flex Items
REST APIs
or **GraphQL** endpoints provided by the CMS
Lesson 1781Headless CMS Integration Fundamentals
REST-ish
(or "HTTP APIs")—they use HTTP methods and resource-oriented URLs but skip the stricter requirements.
Lesson 1481RESTful vs REST-ish APIs
RESTful API
implements all of REST's architectural constraints: statelessness, uniform interface, HATEOAS, resource-based URIs, proper HTTP method semantics, and self-descriptive messages.
Lesson 1481RESTful vs REST-ish APIs
Restoring focus
to the triggering element when the modal closes
Lesson 1050Focus Trapping in Modal Dialogs
Restrict by authentication
Host source maps behind authentication/authorization so only your team can access them.
Lesson 2282Production Source Maps: Security and Privacy
Restructure the DOM
or **hide/show alternate markup** for the different pattern
Lesson 1186Responsive Patterns: Tabs to Accordion
Resumability
takes a fundamentally different approach: it serializes everything the server knows—including event listeners, component state, and framework context—directly into the HTML.
Lesson 1753Resumability vs. Hydration
Resume capability
If upload fails, restart from the last successful chunk
Lesson 2717Chunked Upload for Large Files
Resume operations gradually
– Use exponential backoff for queued requests
Lesson 1705Reconnection Strategies
Retrieving
resources (`match()`, `matchAll()`)
Lesson 2386Service Worker Cache API Fundamentals
Retrieving resources
using `cache.
Lesson 2317The Cache Storage API
Retry the request
– Attempt to reload after a delay (useful for temporary network issues)
Lesson 2025Handling Failed Lazy Load Requests
Return 404 Not Found
the resource doesn't exist, so you can't delete it
Lesson 1487DELETE: Removing Resources
Return focus
to the trigger element (often stored when opening)
Lesson 1083Escape Key Handling
Return the cached response
if found (instant, offline-capable)
Lesson 2386Service Worker Cache API Fundamentals
Return visitors
Someone who's come back 3+ times clearly finds your app useful
Lesson 2360Strategic Prompt Timing
Reuse
existing DOM nodes by updating their content
Lesson 2098Virtual Scrolling Fundamentals
Reuse configurations
Build once, use multiple times
Lesson 846Creating Request Objects
Revalidate both
Apply your revalidation interval to all pages, whether pre-rendered or generated on-demand
Lesson 1799ISR with Dynamic Routes
Review
and **AggregateRating** schema markup that tells search engines exactly what people think about your product or service.
Lesson 1863Review and Rating SchemaLesson 2537Collaboration with Translators and Translation Services
Review changelogs
Before updating, read the package's CHANGELOG or release notes to understand what changed and identify potential breaking changes.
Lesson 2949Updating Dependencies Safely
Review package metadata
(author, download count, GitHub link)
Lesson 2951Scoped Packages and Registry Security
Review recent commits
for suspicious additions
Lesson 2947Reviewing Package Source Code
Reviewing nested data
(though only one level deep displays well)
Lesson 2188Console.table() for Structured Data
Revocable
(users can withdraw anytime)
Lesson 2954User Consent Requirements
Revocation
Refresh tokens can be invalidated server-side (stored in a database), allowing immediate logout across all devices.
Lesson 1605Why Refresh Tokens Exist
Revoke object URLs
created with `URL.
Lesson 2722Upload Cancellation and Cleanup
Revoked access
– Your session was invalidated or token was revoked
Lesson 1657Understanding 401 Unauthorized
Rich Results Test
shows you whether your page is eligible for rich results in Google Search (like star ratings, recipe cards, or event snippets).
Lesson 1867Testing Structured Data
Rich state management
Complex client-side state without server round-trips
Lesson 1760When CSR is Better
Right side
Styles, Computed, Layout, and Event Listeners tabs for the selected element
Lesson 2174Elements Panel Overview and Navigation
Right to be forgotten
Users can request data deletion
Lesson 2780Privacy-First Analytics Philosophy
Right to erasure
Users can demand deletion of their personal information
Lesson 2953Understanding GDPR and CCPA Fundamentals
Right to know
Users can request what data you've collected about them
Lesson 2953Understanding GDPR and CCPA Fundamentals
Right to opt-out
Users can prevent the sale of their personal information (note: opt-**out**, not opt-in)
Lesson 2953Understanding GDPR and CCPA Fundamentals
Risk mitigation
is the primary benefit.
Lesson 2824Percentage Rollouts and Gradual Releases
Robots.txt validators
verify proper directive formatting
Lesson 1876Testing and Validating Sitemaps and Robots.txt
Robust
means content must work reliably across different technologies, especially assistive technologies like screen readers.
Lesson 988The Four Principles of WCAG: POUR
Role information
Screen readers announce what something *is* (`<nav>` = "navigation landmark")
Lesson 997Why Semantic HTML Matters for Accessibility
Rollback on failure
if the server rejects the file (validation error, network issue, etc.
Lesson 2720Upload with Optimistic UI Updates
Rollbar
provide a small JavaScript snippet you add to your application.
Lesson 2287Error Monitoring Services
Route changes
In single-page apps, restore focus after navigating back
Lesson 1092Focus Restoration Patterns
Route definitions
A map of URLs to functions that render content
Lesson 972Building a Client-Side Router with History API
Route level
– Before rendering entire pages
Lesson 1639Permission Checking Fundamentals
Route protection
prevents this by intercepting navigation attempts and checking if the user's role permits access to that route — redirecting them away if they're unauthorized.
Lesson 1631Route Protection with Role Checks
Roving tabindex
so only one cell is in the tab order at a time
Lesson 1079Grid Navigation PatternsLesson 1203Toolbar Pattern
roving tabindex pattern
solves this by making only the *active* element in a group tabbable, while setting all others to `tabindex="-1"` (programmatically focusable, but not in the tab sequence).
Lesson 1074Roving tabindex PatternLesson 1078Vertical Navigation in Menus
rows
are visible (just like vertical scrolling), then for each visible row, calculate which **columns** are visible horizontally.
Lesson 2103Virtual Grid LayoutsLesson 2188Console.table() for Structured Data
RPC-style endpoints
`/api/calculate` or `/api/sendEmail` instead of resource manipulation
Lesson 1481RESTful vs REST-ish APIs
Rule #1
Never put passwords, credit card numbers, or personal identifying information in cookies.
Lesson 807Cookie Security Best Practices
Rule-based budgets
enforce best practices and technical standards:
Lesson 1931Types of Performance Budgets
Run Prettier
manually or on save (via editor integration)
Lesson 1455Installing and Running Prettier
Run the installer
Choose "Install NVDA on this computer" (not just portable)
Lesson 1101Setting Up NVDA on Windows
Running timers and callbacks
(setTimeout, promises)
Lesson 2055What is the Main Thread?
Runtime caching
is different—it caches resources *dynamically* as users request them during normal app usage.
Lesson 2419Runtime Caching FundamentalsLesson 2420When to Use Each Strategy
Runtime control
Play, pause, reverse, seek to any point
Lesson 2560GSAP vs CSS Animations
Runtime variables
remain on the server and are evaluated when a request is made (only possible with SSR or serverless functions).
Lesson 1811Environment Variables
Russian
changes based on whether a number ends in 1, 2-4, or other digits
Lesson 2531Pluralization Rules Across Languages

S

Safe methods
like `GET` and `HEAD` should only *read* data, never modify it.
Lesson 2908State-Changing Requests and CSRF Risk
Safe refactoring
deleting a component removes its styles
Lesson 601CSS Modules and Scoped Styles
Safelist
lets you explicitly tell Tailwind to include specific classes that might be dynamically generated (like `bg-${color}-500` in JavaScript), preventing accidental purging.
Lesson 643Performance Considerations with Variants
Same browser/tool
Stick with one measurement tool (Lighthouse, WebPageTest, etc.
Lesson 1928Establishing Performance Baselines
Same device profile
Use the same CPU throttling and viewport size
Lesson 1928Establishing Performance Baselines
Same network throttling
Always test with identical connection speeds (e.
Lesson 1928Establishing Performance Baselines
Same pages
Test the same URLs in the same state (logged out, empty cart, etc.
Lesson 1928Establishing Performance Baselines
Same time of day
Server load varies; test during typical conditions
Lesson 1928Establishing Performance Baselines
Same-origin only
`form-action 'self'` (most restrictive, safest)
Lesson 2851The form-action Directive
same-origin policy
is a critical security feature that restricts how web pages from different origins can access each other's data.
Lesson 778Security and Same-Origin PolicyLesson 824Security and Privacy ConsiderationsLesson 860What is CORS and Why It ExistsLesson 2914Custom Request Headers as CSRF Defense
SameSite Cookie Attribute
Setting `SameSite=Strict` or `SameSite=Lax` tells browsers not to send cookies with cross-site requests, blocking CSRF attacks at the browser level.
Lesson 1572CSRF Vulnerability in Cookie Auth
SameSite=Lax
(now browser default) is more permissive.
Lesson 2920SameSite Cookie Attribute for CSRF Protection
SameSite=None
disables protection entirely (requires `Secure` flag).
Lesson 2920SameSite Cookie Attribute for CSRF Protection
Sampling
is recording only a percentage of repetitive events (record every 10th car passing, not all 10,000).
Lesson 2815Filtering and Sampling Errors
Sanitization library
Rich text where *some* HTML is needed
Lesson 2903Safe Alternatives to Dangerous APIs
Saturation
is the intensity or vibrancy, expressed as a percentage:
Lesson 183HSL and HSLA Functions
Saves bandwidth
Users on mobile or slow connections don't download unseen content
Lesson 1951What is Lazy Loading and Why It Matters
Scalable
Stateless design means servers handle requests independently
Lesson 1470What is REST and Why It MattersLesson 1473Statelessness in REST APIs
Scalar Types
Basic data types like `String`, `Int`, `Float`, `Boolean`, and `ID` (a unique identifier)
Lesson 1520The GraphQL Type System
Scale
– Grow or shrink elements (1 = original size):
Lesson 2563Basic Animations with animate Prop
Scale clarity
Use numbers (100-900) or T-shirt sizes (xs, sm, md, lg, xl)
Lesson 1368Theme Documentation and Design Tokens
Scaled rendering
(resize the entire image):
Lesson 2624Drawing Images
Scaling
becomes easier: deploy more servers or CDN nodes independently
Lesson 1474Client-Server Separation
Schedules
Times, days, activities
Lesson 120When to Use Tables vs. CSS Grid
Schema Markup Validator
(formerly Structured Data Testing Tool) performs a more technical validation.
Lesson 1867Testing Structured Data
Schema stacking
Don't nest unrelated schemas hoping for more visibility
Lesson 1868Structured Data Best Practices and Common Mistakes
Scope hoisting
Optimizes module structure
Lesson 1393Development vs Production Mode
Scope isolation
JavaScript selectors like `document.
Lesson 2460Shadow DOM vs Light DOM
Scoped theme overrides
let you redefine theme variables within specific components or sections by leveraging CSS's cascading nature and specificity.
Lesson 1363Scoped Theme Overrides
Scoping gaps
when you reference a variable outside its scope
Lesson 471Fallback Values in var()
Screaming Frog
(free for 500 URLs): Crawls your site and reports all canonical tags
Lesson 1853Testing and Validating Canonicals
Screen Reader Announcements
Consider `aria-live` regions to announce when new content loads during scrolling, especially for infinite scroll patterns.
Lesson 2105Accessibility Considerations for Virtual Lists
Script Encounters
When the parser hits a `<script>` tag, it stops building the DOM
Lesson 672The Critical Rendering Path
Script Execution
The script runs immediately (unless marked `defer` or `async`)
Lesson 672The Critical Rendering Path
Scroll Behavior
Lock the body scroll when a modal opens to prevent the page behind from moving during touch interactions.
Lesson 1161Mobile Modal Patterns
Scroll Position
Load comments or social embeds when users scroll near them (using Intersection Observer)
Lesson 2049Lazy Loading Third-Party ScriptsLesson 2099Calculating Visible Range
Scroll speed expectations
Fast scrollers need more buffer
Lesson 2102Overscan and Buffer Items
Scroll-based loading
Load the widget when the user scrolls a certain percentage down the page (e.
Lesson 2831Lazy Loading Chat Widgets
Scrollable region identification
If your modal has a scrollable section (like a content area separate from header/footer), ensure screen readers announce it properly.
Lesson 1160Scrolling and Large Modal Content
Scrollable regions
(textboxes, content viewers)
Lesson 1081Page Up and Page Down
Scrollbars
In RTL layouts, scrollbars typically appear on the **left** side.
Lesson 2526RTL-Specific Edge Cases
ScrollTrigger integration
Pin elements, scrub animations
Lesson 2560GSAP vs CSS Animations
SCSS/Sass
, install the PostCSS syntax parser:
Lesson 1444CSS Preprocessor Support
Search and Filtering
Client-side search through thousands of records, fuzzy matching algorithms, or sorting massive arrays.
Lesson 2094Real-World Use Cases: Heavy Computation
Search and replace
is your first line of defense: scan your codebase for `http://` patterns in HTML, CSS, and JavaScript.
Lesson 2929Upgrading Resources to HTTPS
Search Console
Core Web Vitals report based on CrUX
Lesson 1926Chrome User Experience Report (CrUX)
Search engines see everything
Google's crawler receives the full article text, headlines, and metadata without executing JavaScript.
Lesson 1757SSR for Content-Heavy Sites
Second request
GET `/api/posts?
Lesson 1509Cursor-Based Pagination
Second value
the flex-wrap behavior (`nowrap`, `wrap`, or `wrap-reverse`)
Lesson 273flex-flow: Shorthand for Direction and Wrap
Secondary metrics
Supporting indicators (time on page, bounce rate)
Lesson 2825A/B Testing Fundamentals
Section-level headers
Introductory content at the start of an `<article>` or `<section>`
Lesson 47The <header> Element
Secure device storage
(not covered in browser storage)
Lesson 1603Token Storage Best Practices by Use Case
Security & Validation
Use `isTrusted` to ensure critical actions (like form submissions or payment confirmations) came from actual users, not automated scripts or malicious code trying to trigger events programmatically.
Lesson 756event.timeStamp and event.isTrusted
Security advantage
Not accessible via storage APIs, making XSS exploitation harder (but not impossible if attacker can access your app's scope).
Lesson 2917Token Storage Options: localStorage vs sessionStorage vs Memory
Security against replay attacks
If an attacker steals a refresh token through network interception, they have a very narrow window to use it.
Lesson 1611Token Rotation on Refresh
Security breach
Bulk revoke tokens for affected accounts
Lesson 1613Refresh Token Revocation
Security risk
Accessible by any JavaScript on your domain, including third-party scripts.
Lesson 2917Token Storage Options: localStorage vs sessionStorage vs Memory
Security Scanning
Use tools like OWASP ZAP or Burp Suite to systematically test CSRF vulnerabilities across your application.
Lesson 2916Testing CSRF Protection
Security tokens
CSRF protection tokens (remember those?
Lesson 2966Essential vs Non-Essential Cookies
Security-focused code reviews
performed
Lesson 2906XSS Prevention Checklist
SecurityError
Browser security policies prevent access (cross-origin restrictions or sandbox violations)
Lesson 2696FileReader Error Handling
Select elements
Must have a non-empty value selected
Lesson 897The required Attribute
Selected context only
Shows messages only from your currently selected frame/context
Lesson 2195Preserving Log and Console Settings
Selective enabling
After reviewing, you can run scripts for trusted packages only:
Lesson 2952Post-Install Scripts and Security Risks
Selective Generation
For truly massive sites, consider building only critical pages (homepage, popular content) on every commit.
Lesson 1788Build Performance with Large Datasets
Selective Hydration
with Suspense boundaries, allowing priority-based hydration where user interactions can "jump the queue" and hydrate specific components first.
Lesson 1755Hydration in Different Frameworks
Selector Rules
control how you write class names and selectors.
Lesson 1439Common Stylelint Rules
Self Time
column to see CPU time consumed
Lesson 2053Measuring Third-Party Script Impact
Self-descriptive messages
Each request contains all info needed
Lesson 1472The Uniform Interface Constraint
Self-host when possible
Better performance and privacy than third-party services
Lesson 572Web Font Best Practices ChecklistLesson 2787Performance Impact of Analytics
Self-hosted
You control the file, so the browser can fetch it early (not for Google Fonts or third-party CDNs in most cases)
Lesson 1295When to Preload Fonts vs When Not To
Self-hosting
Download font files (like WOFF2) and serve them from your own server
Lesson 561Self-Hosting vs. Font ServicesLesson 563Font Licensing and Legal Considerations
Self-referencing canonical
Even if a page has no duplicates, it's good practice to point to itself:
Lesson 1847The rel="canonical" Link Element
Selling or sharing data
with third parties
Lesson 2960Legitimate Interest vs Consent
Semantic structure
Use `role="tree"` on the container, `role="treeitem"` on each node
Lesson 1201Tree View Pattern
Send it
in the authorization URL: `https://provider.
Lesson 1622State Parameter for CSRF Protection
Sending complete context
Every API request must include authentication tokens, user IDs, or any data the server needs
Lesson 1473Statelessness in REST APIs
Sends an update signal
to the browser over a WebSocket connection
Lesson 1374Hot Module Replacement (HMR) in Vite
Sentry
or **Rollbar** provide a small JavaScript snippet you add to your application.
Lesson 2287Error Monitoring ServicesLesson 2810Setting Up Sentry for Frontend
SEO (Search Engine Optimization)
Search engines use heading hierarchy to understand your page's content and structure.
Lesson 65Headings Hierarchy (h1-h6)
SEO browser extensions
Tools like "SEO Meta in 1 Click" display all meta tags including canonicals
Lesson 1853Testing and Validating Canonicals
SEO penalties
when search engines can't parse content correctly
Lesson 1446Why Lint HTML? Catching Errors Early
SEO-critical applications
requiring distinct, crawlable URLs per language version
Lesson 2540Content Negotiation vs Explicit URLs
SEO-critical user content
→ Full SSR (accept the cost)
Lesson 1763SSR and Authentication Requirements
SEO/performance benefits of SSG
.
Lesson 1782Markdown and MDX for Content
Separate container from content
A component should look the same no matter where you place it
Lesson 1327Alternative Naming Conventions: SMACSS and OOCSS
Separate REST endpoint
Use GraphQL for data operations but keep a traditional REST endpoint (`POST /upload`) for files.
Lesson 1553File Uploads: REST Multipart vs GraphQL Approaches
Separate source map server
Host source maps on a completely different domain with strict access controls.
Lesson 2282Production Source Maps: Security and Privacy
Separate structure from skin
Keep layout properties (width, height, margin) separate from visual properties (color, border, background)
Lesson 1327Alternative Naming Conventions: SMACSS and OOCSS
Sequential animations
without manual delay calculation
Lesson 2553GSAP Timelines Basics
Sequential loading
– resources that could load in parallel but don't
Lesson 2166Understanding Request WaterfallsLesson 2172Optimizing Third-Party Scripts
Serializing (Object → String)
Lesson 775Storing Complex Data with JSON
Serve conditionally
Use server-side logic to serve source maps only to requests from your organization's IP ranges or authenticated sessions.
Lesson 2282Production Source Maps: Security and Privacy
Server checks
If the resource hasn't changed since that date, it returns `304 Not Modified` with no body
Lesson 2145Last-Modified Header
Server compatibility
Bypass maximum request size limits
Lesson 2717Chunked Upload for Large Files
Server compresses response
If configured, the server compresses the file using one of the supported algorithms
Lesson 2131Understanding HTTP Compression Basics
Server errors (5xx)
other than 503/504 usually indicate serious problems where retrying immediately won't help.
Lesson 1687Understanding When to Retry Network Requests
Server monitoring and scaling
capabilities
Lesson 1728Infrastructure and Hosting Requirements
Server processing time
– The server generating and starting to send the response
Lesson 1907Time to First Byte (TTFB)
Server reflects input
in the HTML response without encoding
Lesson 2893Reflected XSS Attacks
Server Remembers
The server reads the cookie and knows something about you (like that you're logged in).
Lesson 797What Are Cookies and How They Work
Server responds
If the server supports WebSockets, it responds with status code `101 Switching Protocols`
Lesson 877WebSocket Fundamentals
Server Response
Sends the file along with caching instructions in headers
Lesson 2141HTTP Caching FundamentalsLesson 2924Refresh Token Rotation
Server Response Time
measures how long it takes from when the server receives a request until it sends back the first byte of the response.
Lesson 1738Server Response Time
Server signals compression
The response includes a `Content-Encoding` header indicating which algorithm was used
Lesson 2131Understanding HTTP Compression Basics
Server validates the token
on each request without checking a session store
Lesson 1569Token-Based Authentication Flow
Server-Sent Events (SSE)
A persistent connection where the *server* pushes updates to the browser using standard HTTP.
Lesson 872Real-Time Communication Patterns
Server-side evaluation
means your backend determines flag states before sending HTML or API responses to the client.
Lesson 2820Client-Side vs Server-Side Feature Flags
Server-Side Rendering (SSR) Errors
Lesson 1671Errors That Boundaries Don't Catch
Server-Side Rendering Requirements
Lesson 2490When NOT to Use Web Components
Server-side user profiles
(database-backed) offer the most robust solution for logged-in users.
Lesson 2507Storing User Language Preference
service worker
is a special JavaScript file that runs in the background of your web app, separate from the main browser thread.
Lesson 2308What Service Workers Are and Why They MatterLesson 2355Understanding the Install Prompt
Service Worker Tools
in the Application panel let you inspect worker status, view cached resources, and manually unregister/update workers.
Lesson 2332Testing Offline Experiences
Service worker wakes up
→ reads from IndexedDB, retries each request
Lesson 2337Storing Failed Requests with IndexedDB
Session data
Page views, session duration, bounce rate (single-page visits), and navigation paths through your site.
Lesson 2779Understanding Analytics and User Behavior TrackingLesson 2814User Context and Session Data
Session hijacking
Steal authentication cookies and impersonate users
Lesson 2892What is XSS and Why It Matters
Session Replay Tools
to verify the fix resolves user issues
Lesson 2295Rollback and Hotfix Workflows
Session replication
Sync session data across servers (complex, with latency)
Lesson 1575Scalability Considerations
Session state
Using cookies or server-side sessions instead of pure token-based authentication
Lesson 1481RESTful vs REST-ish APIs
Session Storage
Key-value pairs saved in the browser
Lesson 2233Application Panel Overview and Navigation
Set `font-display`
Use `swap` for body text (avoid invisible text) or `optional` for decorative fonts
Lesson 572Web Font Best Practices Checklist
Set a global flag
(like `isRefreshingToken` or `authFailureDetected`) to prevent new requests from being sent
Lesson 1664Preventing Repeated 401/403 Requests
Set breakpoints
in your original source files by clicking line numbers
Lesson 2283Debugging with Source Maps in DevTools
Set connection timeouts
to close idle connections
Lesson 881WebSocket Security Considerations
Set custom validity
on one field to report the composite error
Lesson 920Custom Validation for Complex Inputs
Set hard limits
on cache entries (e.
Lesson 2396Cache Size Management
Set it as `background-color`
on the image element or its container
Lesson 2028Solid Color Placeholders
Set size
`aria-setsize` and `aria-posinset` describe position within siblings
Lesson 1201Tree View Pattern
Set up the placeholder
(aspect ratio box, low-quality preview, gradient, etc.
Lesson 2034Native Lazy Loading with Placeholders
Setting initial focus
when the modal opens (often the close button or first input)
Lesson 1050Focus Trapping in Modal Dialogs
Settings Layer
, the absolute foundation of ITCSS.
Lesson 1332The Settings Layer: Design Tokens and Variables
Settings panels
Group related options without overwhelming the interface
Lesson 1181Accordion Pattern Overview and Structure
Setup
Define constraints using HTML attributes
Lesson 911Understanding Constraint Validation API
Severity level
and vulnerability ID
Lesson 2944Reading npm Audit Reports
SHA-256
Produces a 256-bit (32-byte) hash
Lesson 2936How SRI Works with Cryptographic Hashes
SHA-384
Produces a 384-bit (48-byte) hash
Lesson 2936How SRI Works with Cryptographic Hashes
SHA-512
Produces a 512-bit (64-byte) hash
Lesson 2936How SRI Works with Cryptographic Hashes
Shadow DOM
is a web standard that creates an **isolated DOM subtree** attached to an element.
Lesson 2459What is Shadow DOM and Why It ExistsLesson 2460Shadow DOM vs Light DOM
Share reproducible data
with colleagues or support teams
Lesson 2210Export and Analyze HAR Files
Share requests
Pass them between functions
Lesson 846Creating Request Objects
Share utility functions
between workers and main thread
Lesson 2095Workers with Module Scripts
Shared namespaces
`common`, `errors`, `validation`
Lesson 2529Namespace Organization for Large Applications
SharedWorker
is different—it's a worker that can be accessed by multiple browsing contexts (tabs, windows, iframes) from the same origin.
Lesson 2093Shared Workers for Cross-Tab Communication
Sharing Debugger
at `developers.
Lesson 1844Testing Social Media Previews
Shipping options
(showing available carriers)
Lesson 2503Geolocation vs Language Detection
Shopping cart state
Maintaining items during checkout
Lesson 2966Essential vs Non-Essential Cookies
Short expiration times
Make tokens expire quickly (5-15 minutes), so logout just means "stop issuing new tokens"
Lesson 1574Session Invalidation and Logout
Short headlines
or hero text where the specific typography defines the design
Lesson 1273font-display: block Strategy
Short swap period
(~3s): Fallback text visible, but will swap if web font arrives
Lesson 1275font-display: fallback Strategy
Short-lived access tokens
(15 min – 1 hour): reduces risk if compromised
Lesson 1583JWT Expiration and the exp Claim
Show
a loading spinner or message when you call `readAsDataURL()`
Lesson 2711Loading States During Preview Generation
Show a facade
Display a static image, icon, or styled div that mimics the appearance of the real embed
Lesson 2050Script Loading Facades
Show a preview
Display a thumbnail image, title, and play button that *looks* like the real embed
Lesson 2837Privacy-Friendly Embed Alternatives
Show details on hover
explaining what's wrong and how to fix it
Lesson 1464Inline Error Highlighting with ESLint
Show text instantly
using Arial, Times, or whatever fallback you specified in your `font-family` stack
Lesson 1274font-display: swap Strategy
Show timestamps
Adds timing information to each log entry
Lesson 2195Preserving Log and Console Settings
Show UI
Display a banner, toast, or button with a message like "New version available—Refresh to update.
Lesson 2430Prompting Users for Updates
Show user notification
Inform users certain features are unavailable
Lesson 2797Error Handling for External Scripts
Showing/hiding dynamic content
When expanding an accordion or revealing a section, focus may need to move to the newly visible content
Lesson 1087Focus Management Fundamentals
Sibling
nodes sharing the same parent
Lesson 663The DOM Tree Structure
Side-by-side labels and inputs
Set `flex-direction: row` on the container, give labels a fixed `flex-basis` for consistent width, and let inputs grow with `flex-grow: 1`.
Lesson 302Form Layouts with Flexbox
Side-by-side placement
Inline elements don't force line breaks.
Lesson 209Inline Elements in Normal Flow
Sidebar thumbnail
`sizes="(min-width: 1024px) 300px, (min-width: 768px) 200px, 150px"`
Lesson 1216Writing Effective sizes Values
Sidebars
containing related links or information
Lesson 52The <aside> Element
Signal state changes
in forms, buttons, or navigation
Lesson 501Introduction to CSS Transitions
Simple
Perfect for landmark elements like headers, main content areas, or forms
Lesson 675document.getElementById()Lesson 861Simple vs Preflight Requests
Simple alerts
→ SSE broadcast pattern
Lesson 883Real-Time Data Patterns
Simple Analytics
– Event tracking without invading privacy, clean dashboard.
Lesson 2785Privacy-Focused Alternatives
Simple animations
→ GIF (legacy) or modern video formats
Lesson 1246Format Selection Strategy
Simple illustrations
with limited colors
Lesson 1241PNG: Lossless Compression and Transparency
Simple looping animations
with few colors (loading spinners, small icons)
Lesson 1245GIF: Animation and Legacy Support
Simple marketing pages
with minimal user interaction and no sensitive data
Lesson 2887unsafe-inline Tradeoffs
Simple methods
that don't trigger preflight:
Lesson 866Allowed HTTP Methods
Simple needs
formatting and basic date display only
Lesson 2745Choosing the Right Date Library
Simple sites
with minimal SEO requirements and single-language user sessions
Lesson 2540Content Negotiation vs Explicit URLs
Simpler
No complex session management or synchronization between servers
Lesson 1473Statelessness in REST APIs
Simpler API
just straightforward JavaScript methods
Lesson 770The Web Storage API
Simpler architecture
no server rendering logic
Lesson 1744Hydration vs. Client-Side Rendering
Simpler syntax
Use `async/await` instead of callbacks
Lesson 796IndexedDB Wrappers and Best Practices
Simpler to generate
Backend systems can inject JSON without parsing HTML
Lesson 1855JSON-LD vs Microdata vs RDFa
Simplify
Temporarily remove `opacity`, `transform`, and other properties to see if they're creating unexpected contexts.
Lesson 235Debugging Stacking Issues
Simplify legends
Move legends below charts, use icons instead of full text, or remove the legend entirely if you can label data directly.
Lesson 2657Breakpoint-Based Chart Simplification
Simplify paths
– reduce decimal precision (2 places instead of 6)
Lesson 2001SVG for Vector Graphics
Simulating API unavailability
Block API endpoints to verify your error handling displays friendly messages.
Lesson 2204Blocking Requests
Single panel expansion
(often called "exclusive" mode) means only one accordion panel can be open at a time.
Lesson 1184Single vs Multiple Panel Expansion
Single weight
Static font wins (~50KB vs ~80KB variable)
Lesson 1291Variable Font File Size Benefits
Single-field rules
When a field's validity depends only on itself (like `required`, `pattern`, or `minlength` constraints)
Lesson 918Field-Level vs Form-Level Validation
Single-Location Testing
Lighthouse tests from one location only.
Lesson 2232Lighthouse Limitations and Complementary Tools
Single-use
Different for every page load
Lesson 2854Understanding CSP Nonces
Size column
Shows "disk cache" or similar instead of actual bytes
Lesson 2208Identifying 304 Not Modified Responses
Sizing and layout reference
The `<img>` element provides the dimensions, alt text, and layout properties.
Lesson 1234The Mandatory <img> Fallback
skeleton screens
(gray placeholder boxes matching your content's shape) feel faster because they show structure immediately.
Lesson 1946Loading States for Split ComponentsLesson 2036Choosing the Right Strategy
Skip ahead
functionality helps users navigate large collections
Lesson 1507Why Pagination Matters
Skip completed chunks
– Only upload what's missing
Lesson 2718Resumable Upload Pattern
Skip waiting
Forces a waiting service worker to activate immediately instead of waiting for all tabs to close.
Lesson 2322Testing Service Workers LocallyLesson 2438Update on Reload and Skip Waiting
Slant (`slnt`)
Controls the oblique angle (measured in degrees)
Lesson 1288Variable Font Axes
Slant/Italic axis
Continuous slant angles
Lesson 1287Introduction to Variable Fonts
Slice the file
Extract each chunk using `file.
Lesson 2717Chunked Upload for Large Files
Sliding expiration
Resets the timer on each request (keeps active users logged in)
Lesson 1570Session Storage and Management
Slot-based composition
Light DOM content can be projected *into* shadow DOM using `<slot>` elements, creating a powerful composition model.
Lesson 2460Shadow DOM vs Light DOM
Slow 3G
~400 Kbps download, ~400ms latency
Lesson 2203Network Throttling for Testing
Slow API calls
– Backend endpoints taking seconds to respond
Lesson 2202Identifying Slow Resources
Slow cold starts
Traditional bundlers process your entire codebase before showing anything
Lesson 1369What Vite Is and Why It Exists
Slow database queries
or multiple sequential data fetches
Lesson 1738Server Response Time
Slow Image Loading
If your image takes more than a few seconds to load, crawlers may time out and show no preview at all.
Lesson 1845Social Sharing Best Practices
Slower FCP
blank page until JavaScript runs
Lesson 1744Hydration vs. Client-Side Rendering
Slower request transmission
(especially on poor connections)
Lesson 1592Token Payload Size and Performance
SMACSS
(Scalable and Modular Architecture for CSS) and **OOCSS** (Object-Oriented CSS).
Lesson 1327Alternative Naming Conventions: SMACSS and OOCSSLesson 1340ITCSS vs Other Methodologies: When to Use What
SMACSS alone
Mid-sized projects needing flexibility
Lesson 1340ITCSS vs Other Methodologies: When to Use What
Small chunks
A 2 KB chunk still requires a full network round trip—the request cost exceeds the payload benefit
Lesson 1423Code Splitting Trade-offs
Small in file size
Subsetted or variable fonts that won't block other critical resources
Lesson 1295When to Preload Fonts vs When Not To
Small to medium projects
(marketing sites, portfolios) work well with straightforward methodologies like BEM or OOCSS.
Lesson 603Choosing an Architecture for Your Project
Small to medium-sized
Large files can make installation slow
Lesson 2416Understanding Precaching
Smaller bundle size
Typically 2-5x smaller than development builds
Lesson 1393Development vs Production Mode
Smaller file sizes
for capable browsers (often 30-50% reduction)
Lesson 2015Type Attribute for Modern Image Formats
Smaller JS bundles
Only interactive components ship JavaScript
Lesson 1752Islands Architecture
Smart defaults
Production builds get automatic minification, tree-shaking, and code splitting without configuration
Lesson 1402Parcel: Zero Configuration Bundling
Smooth transitions
No jarring size jumps as you drag the viewport wider
Lesson 413Testing Fluid Typography
Smoother performance
on mobile devices with limited resources
Lesson 763Performance Benefits of Delegation
Smoother visual transitions
as users resize their browser
Lesson 405Understanding Fluid Typography
Snapshot 1 (Baseline)
Take a heap snapshot before any suspicious action.
Lesson 2116The Three-Snapshot Technique
Snapshot 2 (During)
Take a snapshot immediately after the action.
Lesson 2116The Three-Snapshot Technique
Snapshot 3 (After Cleanup)
Trigger any cleanup (close modal, navigate away), wait a few seconds for garbage collection, then take a final snapshot.
Lesson 2116The Three-Snapshot Technique
Social media
Facebook pixel, Twitter widgets
Lesson 2966Essential vs Non-Essential Cookies
Social media embeds
where GIF is culturally expected (though platforms often convert them to video behind the scenes)
Lesson 1245GIF: Animation and Legacy Support
Social media integration
where link previews must match the target language
Lesson 2540Content Negotiation vs Explicit URLs
Social Media Sharing
When someone shares your landing page on Facebook, LinkedIn, or Twitter, those platforms send crawler bots to fetch preview images, titles, and descriptions.
Lesson 1759Marketing and Landing Pages
Social media widgets
Display a "Load Twitter Feed" button instead of auto-loading the Twitter SDK
Lesson 2050Script Loading Facades
Solid color boxes
using `background-color`
Lesson 2027Why Placeholders Matter
Solid color placeholders
or **CSS gradients** work best.
Lesson 2036Choosing the Right Strategy
Solution
Be very cautious about using `stopPropagation()` in applications that rely on delegation, and document where you use it.
Lesson 765Common Delegation Pitfalls
Sort naturally
Names like `img-1`, `img-2` alphabetize correctly, while `img-10` won't without zero-padding
Lesson 1224Image Source Naming Conventions
Source
– The file path to your service worker script
Lesson 2436DevTools Service Worker Panel
Source file
The JavaScript file powering the worker
Lesson 2238Service Worker Registration and Lifecycle
Space is limited
and showing all content at once would overwhelm the page
Lesson 1175Tabs Pattern Overview and When to Use Them
Spaces
separate values within a single directive
Lesson 2874CSP Header Format and Syntax
Spacing (margins/padding)
`rem` (consistent, scalable)
Lesson 159Absolute vs Relative: Choosing the Right Unit
Special alignment
An item with `flex: 1` *and* `align-self: flex-end` grows to fill space while aligning differently than its siblings.
Lesson 291Combining Item Properties Effectively
Specific about data types
"We collect your email address for account recovery"
Lesson 2981Transparent Data Practices
Specific characters
(only the exact letters in your logo)
Lesson 1283What is Font Subsetting
Specific endpoints
`form-action 'self' https://payment-processor.
Lesson 2851The form-action Directive
Specific over general
Use the most specific event that matches your need.
Lesson 745Event Type Selection and Best Practices
Specific property names
`opacity`, `transform`, `color`, etc.
Lesson 502The transition-property Property
Speech rate
Press `NVDA+Control+Up/Down Arrow` to adjust speed (faster helps during testing)
Lesson 1101Setting Up NVDA on Windows
Speed to users
PWAs can push critical fixes in minutes; native apps may take days.
Lesson 2369Update Mechanisms
Speed trumps branding
You value instant text rendering over custom typography
Lesson 1276font-display: optional Strategy
SpeedCurve
, **Calibre**, and **New Relic** provide ongoing surveillance—like having a security camera instead of taking occasional photos.
Lesson 1927Performance Monitoring Services
Speeding up indexing
New pages get discovered faster than waiting for organic crawling
Lesson 1869What is a Sitemap and Why It Matters
SpiderMonkey
Used by Firefox (the first-ever JavaScript engine, created in 1995)
Lesson 19The JavaScript Engine
Spinners
work for quick loads (under 1 second).
Lesson 1946Loading States for Split Components
Split Strategy
Short-lived access token in memory, refresh token in HttpOnly cookie.
Lesson 1600Refresh Token Storage Strategy
Sports statistics
Players, scores, dates
Lesson 120When to Use Tables vs. CSS Grid
Spread-radius
(optional): Expands or contracts the shadow's size before blurring.
Lesson 202Box Shadow Basics
Spring physics
(natural, bouncy motion):
Lesson 2565Transition Configuration
Spriting
Combining many small images into one large sprite sheet to reduce the number of HTTP requests
Lesson 2125HTTP/2 Anti-Patterns: Domain Sharding and Spriting
Spriting images
to combine many small images into one request
Lesson 2119HTTP/1.1 Limitations and Connection Management
SSE
One-way server updates (live feeds, notifications, progress bars)
Lesson 872Real-Time Communication Patterns
SSG (Static Site Generation)
with `stale-while-revalidate` is a hybrid approach.
Lesson 1727Data Freshness Trade-offs
SSG and SSR
provide fully-rendered HTML that crawlers can read instantly.
Lesson 1729Choosing the Right Rendering Strategy
SSL
(Secure Sockets Layer) and **TLS** (Transport Layer Security) are the encryption technologies that make HTTPS work.
Lesson 13HTTPS and SSL/TLSLesson 2169Connection Overhead and Timing
SSL certificates
automatically (using Let's Encrypt).
Lesson 1812Custom Domains and DNS
SSL/TLS
(purple): secure connection setup
Lesson 2198Understanding the Request Waterfall
SSR (Server-Side Rendering)
fetches data on *every request* at the server level, then sends complete HTML.
Lesson 1727Data Freshness Trade-offs
SSR (traditional)
Full page reloads can feel slower and cause screen flicker, though each page arrives with complete HTML.
Lesson 1726Subsequent Navigation Patterns
SSR Approach
The server sends fully-rendered HTML including your hero image or main text block already in the markup.
Lesson 1732Largest Contentful Paint (LCP)
SSR considerations
Server-side rendering can pre-generate style tags with nonces before sending HTML to the browser, reducing runtime violations.
Lesson 2884CSS-in-JS and CSP Compatibility
stack
multiple responsive utilities on the same element, each with different breakpoint prefixes.
Lesson 634Stacking Responsive UtilitiesLesson 1336The Objects Layer: Layout Primitives and Structure
stack trace
shows you the "breadcrumb trail" of function calls that got you to the current line of code.
Lesson 2191Console.trace() and Stack TracesLesson 2248console.trace for Call Stacks
Stack vertically
each one appears below the previous element
Lesson 208Block-Level Elements in Normal Flow
Stacked forms
Use `flex-direction: column` so each label sits above its input, perfect for mobile layouts or narrower forms.
Lesson 302Form Layouts with Flexbox
Stage files
Click the `+` icon next to a file to stage it (equivalent to `git add`)
Lesson 1468Git Integration and Source Control Panel
Staged rollouts
Deploy updates to a small percentage of users first.
Lesson 2435Testing Service Worker Updates
Stagger animations
when multiple elements transition at once
Lesson 506The transition-delay Property
Stagger initialization timing
Instead of letting all scripts fire at once on page load, sequence them: load analytics first (lightweight), then defer chat widgets until after the page is interactive, and lazy-load social embeds only when they scroll into view.
Lesson 2836Managing Multiple Embed Scripts
Staircase patterns
reveal serial dependencies: one resource can't start until another finishes (common with JavaScript triggering new requests).
Lesson 2198Understanding the Request Waterfall
Staleness Duration
Track the time gap between when your data source updates and when the ISR page reflects that change.
Lesson 1805Monitoring and Debugging ISR
StaleWhileRevalidate
serves cached content immediately while fetching a fresh copy in the background for next time.
Lesson 2408Built-In Caching Strategies
Stalled/Blocking
(gray): browser delay before sending request
Lesson 2198Understanding the Request Waterfall
Standard convention
`Component.
Lesson 1342Setting Up CSS Modules
Standard CSS properties
`font-weight`, `font-stretch`, `font-style`
Lesson 1290Standard Properties vs Variation Settings
Standard modern frameworks
(React, Vue, Svelte) have excellent Vite support with minimal configuration.
Lesson 1398When Webpack Makes Sense vs Modern Alternatives
Standards mode
Follows modern HTML, CSS, and JavaScript rules consistently
Lesson 79The Document Type Declaration
Start as relative
Flow normally with other content
Lesson 222Sticky Positioning Fundamentals
Start small
Update patch versions first, then minors, then majors separately.
Lesson 2949Updating Dependencies Safely
Start the upload
in the background (using XMLHttpRequest or fetch with progress tracking)
Lesson 2720Upload with Optimistic UI Updates
Start with a placeholder
Show a lightweight element (image, button, or skeleton)
Lesson 2799Lazy Loading Third-Party Widgets
Start with empty backgrounds
Don't set `background-image` in your default CSS
Lesson 2020Lazy Loading Background Images
Start with new features
When building new components or pages, write them entirely in Tailwind utilities.
Lesson 660Migration Strategies: Adding Tailwind to Existing Projects
Start with Report-Only mode
to collect violations without breaking your site
Lesson 2881CSP Header Testing and Debugging
Start with static fonts
Define a traditional `@font-face` with regular, bold, italic variants
Lesson 1292Browser Support and Fallbacks
Starts with
`[href^="https"]` matches when the attribute *begins* with the specified text
Lesson 122Attribute Selectors
Startup
Decide if you want NVDA to auto-start (usually "no" for development machines)
Lesson 1101Setting Up NVDA on Windows
State management
tracking whether the listbox is expanded, which option has focus, and what text is entered
Lesson 1198Combobox Pattern Fundamentals
State synchronization
Listen for back/forward button presses and render accordingly
Lesson 972Building a Client-Side Router with History API
Stateful authentication
means the server stores session data.
Lesson 1567Stateful vs Stateless Authentication
Stateful cons
Requires server-side storage, harder to scale across multiple servers, database dependency.
Lesson 1567Stateful vs Stateless Authentication
Stateful pros
Easy to invalidate sessions immediately (just delete the server record), simpler tokens (just random IDs).
Lesson 1567Stateful vs Stateless Authentication
Stateless authentication
means the server stores nothing.
Lesson 1567Stateful vs Stateless Authentication
Stateless cons
Tokens can't be truly invalidated until they expire, tokens can grow large if they contain lots of data.
Lesson 1567Stateful vs Stateless Authentication
Stateless pros
No server storage needed, scales horizontally easily, works great for APIs.
Lesson 1567Stateful vs Stateless Authentication
Statelessness
means the server doesn't remember anything about previous requests from a client.
Lesson 1473Statelessness in REST APIs
Static assets
(compressed once at build time): Use higher levels (Gzip 9, Brotli 11) since compression time doesn't affect users.
Lesson 2136Compression Levels and Trade-offsLesson 2137Pre-Compression vs Dynamic CompressionLesson 2152Cache-First Strategy
Static collections
Returned by modern methods like `querySelectorAll()`
Lesson 669Live vs Static NodeLists
Static file hosts
(like Netlify, Vercel, or AWS S3 + CloudFront)
Lesson 1728Infrastructure and Hosting Requirements
Static imports
load modules at the very beginning of your application, before any code runs.
Lesson 1940Static vs Dynamic Imports
Static performance
Once generated, pages serve instantly from CDN
Lesson 1789Fallback Pages and On-Demand Generation
Static sites
Simple HTML pages without a build process
Lesson 2876CSP Meta Tag Alternative
Static Table
A predefined dictionary of common header names and values (like `:method: GET`) that both browser and server know.
Lesson 2122HTTP/2 Header Compression with HPACK
Status indicators
Whether your service worker is active, waiting, or installing
Lesson 2322Testing Service Workers Locally
Stay stuck
As you continue scrolling down
Lesson 222Sticky Positioning Fundamentals
Stays synchronized
If you update the heading text, the accessible name updates automatically
Lesson 1020aria-labelledby: Referencing Existing Labels
Step Into
skips library functions and lands in *your* next function
Lesson 2275Blackboxing Third-Party Code
Step through
your actual code using Step Over, Step Into, and Step Out
Lesson 2283Debugging with Source Maps in DevTools
Step through execution
– Move forward line-by-line to watch how values change
Lesson 2253What Are Breakpoints and Why Use Them
Sticky Footers/Headers
remain visible as users scroll, ensuring the consent option never disappears before interaction.
Lesson 2967Cookie Banner Placement and Timing
Sticky sessions
Route each user to the same server (limits true load balancing)
Lesson 1575Scalability Considerations
Still just CSS
no special syntax to learn
Lesson 601CSS Modules and Scoped Styles
Stop Speaking
Control key interrupts the current speech
Lesson 1103Basic Screen Reader Navigation Commands
Stops all automatic rotation
when activated
Lesson 1190Play/Pause Controls for Auto-Rotating Carousels
Storage limits
Exceeding quotas can prevent new writes or trigger eviction
Lesson 823Persistence and DurabilityLesson 2368Offline Capabilities Comparison
Storage usage breakdown
(how much space each data type consumes)
Lesson 2242Clear Storage and Testing Fresh States
Store
a reference to the element that triggered it (the button or link the user activated)
Lesson 1089Modal Dialog Focus Management
Store for later
Keep request templates ready
Lesson 846Creating Request Objects
Store historical data
so you can correlate performance changes with deployments
Lesson 1927Performance Monitoring Services
Store it
in the user's session (server-side) or encrypted cookie
Lesson 1622State Parameter for CSRF Protection
Store references, not data
Save a session ID in the cookie and keep actual data server-side
Lesson 805Cookie Size Limitations
Store request details
→ write to IndexedDB (e.
Lesson 2337Storing Failed Requests with IndexedDB
Store the original timezone
For events created by a specific user, save which timezone they were in when scheduling.
Lesson 2756Calendar Events Across Timezones
Store the request
Save the failed request details (URL, method, headers, body) in IndexedDB
Lesson 2401Background Sync for Failed Requests
Store these measurements
in an array or map
Lesson 2101Variable-Height Item Virtualization
Stores preferences
in a consent cookie or localStorage
Lesson 2973Consent Management Platforms (CMPs)
Storing it temporarily
(sessionStorage or memory)
Lesson 2512Handling Language Change in Forms
Storing resources
with `cache.
Lesson 2317The Cache Storage API
Strategy Effectiveness
Track which caching strategies perform best for different resource types.
Lesson 2403Analytics and Cache Performance Monitoring
Strategy misconfiguration
Verify the right strategy applies to the URL pattern
Lesson 2425Debugging Cache Strategies
Streaming SSR
changes this: the server sends HTML in chunks as it's generated.
Lesson 1754Streaming SSR and Hydration
Streaming video
Doesn't count toward page load budget but monitor bandwidth usage
Lesson 1934Image and Media Asset Budgets
Strictly Necessary
(always on): Authentication, security, session management
Lesson 2969Granular Cookie Category Controls
Strictly necessary cookies
(authentication, security, load balancing)
Lesson 2954User Consent RequirementsLesson 2965Cookie Consent Legal Requirements
Structural errors
Unclosed tags, improper nesting, missing required attributes
Lesson 1446Why Lint HTML? Catching Errors Early
Structural understanding
Headings (`<h1>`–`<h6>`) create a document outline that users can navigate through
Lesson 997Why Semantic HTML Matters for Accessibility
Structured Data
You can store complex objects, arrays, files, and even Blobs without converting everything to JSON strings first.
Lesson 782What is IndexedDB and When to Use ItLesson 1854Introduction to Structured Data and Schema.org
Style attributes
are CSS rules applied directly to an HTML element:
Lesson 2883Style Attributes vs Style Tags
Style calculation
Determines which CSS rules apply to each element
Lesson 1985Understanding the Main Thread and Browser Rendering Pipeline
Style calculations
(applying CSS changes)
Lesson 2591Understanding the 60fps Target
Style encapsulation
through Shadow DOM means your widget's appearance won't be corrupted by host page CSS.
Lesson 2488Long-Lived Widgets and Embeds
Style isolation
Your component's CSS won't accidentally style the page, and page CSS won't break your component
Lesson 2459What is Shadow DOM and Why It ExistsLesson 2489Micro-Frontend Architecture Boundaries
Style tag content
`<style>.
Lesson 2900CSS Context Encoding
Style tags
are `<style>` elements containing CSS rules:
Lesson 2883Style Attributes vs Style Tags
Style the label
to look like a custom button
Lesson 2668Styling File Inputs
Style the transition
so the real image smoothly replaces the placeholder
Lesson 2034Native Lazy Loading with Placeholders
Style-only contexts
where you're confident no user-controlled content can inject CSS (though this is harder to guarantee than you think)
Lesson 2887unsafe-inline Tradeoffs
Stylelint
is a linter—a tool that automatically checks your CSS code against rules you configure.
Lesson 1330Enforcing Naming Conventions with Linters
Stylelint extension
from the VS Code marketplace.
Lesson 1443Editor Integration and Auto-Fix
Styles
Inline styles, unauthorized external stylesheets
Lesson 2840How CSP Works in Browsers
Styles pane
(typically on the right) shows all CSS rules affecting that element.
Lesson 2179Inspecting and Modifying CSS Properties
Styles panel
shows all the CSS rules *targeting* that element—but the **Computed tab** shows what the browser *actually applied* after processing inheritance, specificity, cascading, and default values.
Lesson 2183Computed Tab and Final Styles
Styling hooks
(adding a background color to a group of elements)
Lesson 60When to Use <div> vs Semantic Elements
Submit-time checks
Using `checkValidity()` or `reportValidity()` on the entire form before sending data
Lesson 918Field-Level vs Form-Level Validation
Subresource Integrity (SRI)
lets you specify a cryptographic hash of the expected content.
Lesson 842Request Integrity and Subresource IntegrityLesson 2906XSS Prevention Checklist
Subscription/Account Type
Free vs.
Lesson 2814User Context and Session Data
Subscriptions
Unsubscribe from external data sources
Lesson 2450disconnectedCallback: Element Removal
Subsequent Navigation
Fast, app-like transitions without full page refreshes
Lesson 1765Hybrid Approaches: SSR + CSR
Subsequent visit
Browser sends a conditional request with `If-None-Match` (ETag) or `If-Modified-Since` headers
Lesson 2208Identifying 304 Not Modified Responses
Subset font
50 KB with only the 100 glyphs you use
Lesson 1283What is Font Subsetting
Subset your fonts
Remove unused characters with unicode ranges to dramatically reduce file size
Lesson 572Web Font Best Practices Checklist
Subsetting freedom
You can customize files to include only the characters you need
Lesson 561Self-Hosting vs. Font Services
Success
Move focus to a success message or confirmation heading.
Lesson 1095Form Submission and Error FocusLesson 2724Upload State Management
Success confirmations
"Settings saved," "File uploaded"
Lesson 1707Toast Notification Patterns and Use Cases
Success messages
work the same way—use `role="status"` for non-urgent confirmations or `role="alert"` if the user needs to know immediately.
Lesson 1120Form Validation Announcements
Success/Info toasts
3–4 seconds (quick confirmation)
Lesson 1709Toast Timing and Auto-Dismiss
Suppress hydration warnings carefully
Only when you *intentionally* have different server/client content (like timestamps showing "2 minutes ago")
Lesson 1747Avoiding Hydration Mismatches
Svelte
`eslint-plugin-svelte` handles `.
Lesson 1450Linting HTML in Templates and Components
SvelteKit
Minimal JavaScript shipping with optional hydration
Lesson 1755Hydration in Different Frameworks
SVG icons
can be loaded individually (better for tree-shaking) or as optimized sprite sheets.
Lesson 2042Icon Fonts vs SVG Icons
SVG morphing
Shape transformations that CSS can't handle
Lesson 2546GSAP Overview and Why Use It
SVG traced outlines
showing the image's basic shape
Lesson 2027Why Placeholders Matter
Swap `data-src` to `src`
when the image becomes visible
Lesson 1254Custom Lazy Loading Implementation
SWC
(Speedy Web Compiler) for transpiling and **Oxc** for linting are all written in Rust, pursuing the same goal: native-speed tooling that makes JavaScript development feel instant, regardless of project size.
Lesson 1403Turbopack and the Rust Wave
Swipe Gestures
Consider allowing swipe-down gestures to dismiss modals (common pattern), but only if it doesn't conflict with internal scrolling.
Lesson 1161Mobile Modal Patterns
Swipe-only carousels
with no previous/next buttons
Lesson 1196Touch Gesture Accessibility Considerations
Switch ARIA attributes
to match the new pattern
Lesson 1186Responsive Patterns: Tabs to Accordion
Switch chart types
Transform a detailed multi-line chart into a simpler bar chart, or a stacked area chart into a single-line summary showing totals only.
Lesson 2657Breakpoint-Based Chart Simplification
Switch the header
Change your server configuration from:
Lesson 2873Transitioning from Report-Only to Enforcement
Synchronous code
executes line-by-line, blocking the main thread until each operation completes.
Lesson 2058Synchronous vs Asynchronous Code
System fonts
are the typefaces already installed on a user's computer or device — like Arial, Times New Roman, or Georgia.
Lesson 558Introduction to Web Fonts
System Settings
Open System Settings → Accessibility → VoiceOver → toggle "Enable VoiceOver"
Lesson 1102Setting Up VoiceOver on macOS

T

Tab lists
Jump between first and last tabs
Lesson 1080Home and End Key Support
Tab panels
Arrow keys to switch between tabs horizontally
Lesson 1072When Custom Navigation is Needed
Table of contents
Show document structure without cluttering the page
Lesson 1181Accordion Pattern Overview and Structure
Tablet (768px wide)
Crop to show three people in the center
Lesson 1227Understanding Art Direction in Responsive Images
Tag Assistant
highlight analytics calls in real-time.
Lesson 2789Testing and Debugging Analytics
Tags
are the actual third-party scripts or tracking pixels you want to deploy—Google Analytics events, Facebook Pixel, conversion trackers, or custom JavaScript.
Lesson 2802Google Tag Manager ArchitectureLesson 2804Tags, Triggers, and Variables
Tailwind excels here
because utility classes let you prototype directly in HTML without context-switching.
Lesson 657Tailwind in Design-Heavy vs Component-Heavy Projects
Tailwind still works well
, but you'll extract repeated utility patterns into framework components (not CSS classes).
Lesson 657Tailwind in Design-Heavy vs Component-Heavy Projects
Take full width
stretch from left edge to right edge of their container
Lesson 208Block-Level Elements in Normal Flow
TalkBack
is Google's screen reader for Android devices.
Lesson 1100Screen Reader Landscape Overview
Tall stacks
Deep function call chains that might indicate recursion issues or inefficient algorithms
Lesson 1917Reading Performance Flame Charts
target element
(the deepest element you actually interacted with)
Lesson 720Event Bubbling PhaseLesson 730Mouse Position and Coordinates
Target GPU properties
`will-change` works best with `transform` and `opacity` since these are already GPU- accelerated.
Lesson 2596The Composite Layer Strategy
Target sibling elements
using `peer-*:` variants
Lesson 639Peer State Variants
Target URI
The collection where the resource belongs
Lesson 1484POST: Creating Resources
Targeted hydration
No wasted effort hydrating static content
Lesson 1752Islands Architecture
Targeted landing pages
Serve campaign-specific content based on UTM parameters or referral sources without client-side redirects.
Lesson 1762Geographic and Personalized Content
Targeted releases
Enable premium features only for paid users, or beta features for internal testers.
Lesson 2819What Are Feature Flags and Why Use Them
Targeted sampling
Focus on specific user segments, regions, or feature flags
Lesson 2294Performance Profiling in Production
Targeting and segmentation
let you control *who* sees a feature based on user attributes—like geography, subscription tier, browser type, or any custom property you define.
Lesson 2823Targeting and Segmentation
TBT
(measures blocking time).
Lesson 1909Time to Interactive (TTI)
TBT < 200ms
Good (predicts FID < 100ms)
Lesson 1893FID vs Total Blocking Time (TBT)
TCP
`connectEnd - connectStart`
Lesson 1918Navigation Timing API
TCP head-of-line blocking
when a single TCP packet is lost, all multiplexed streams on that connection must wait for retransmission, even streams that received their data successfully.
Lesson 2127HTTP/3 and QUIC Protocol
Team Collaboration
When multiple developers work on the same project, inconsistent approaches create conflicts.
Lesson 595Why CSS Architecture Matters
Team familiarity matters
If your team is unfamiliar with logical properties and the project has no internationalization needs, introducing them may add confusion without benefit.
Lesson 465When to Use Logical vs Physical Properties
Team velocity
would suffer from strict purity
Lesson 604Mixing Methodologies Pragmatically
Technical
errors, load times, feature usage
Lesson 2782Event Tracking Fundamentals
Technical control
Fastly for advanced configuration, Vercel for simplicity
Lesson 2159Popular CDN Providers
Technology independence
Each team can choose their internal stack
Lesson 2489Micro-Frontend Architecture Boundaries
Template literals validated
when constructing HTML/JS dynamically
Lesson 2906XSS Prevention Checklist
Templates and Slots Pattern
the backbone of truly reusable Web Components.
Lesson 2485Templates and Slots Pattern: Reusable Component Markup
Temporary overlays
Dropdowns, tooltips, or pop-ups that appear and disappear
Lesson 1092Focus Restoration Patterns
Terms below were extracted from bolded phrases in lesson content. Click a lesson reference to jump
Test all site features
– forms, embeds, analytics, and interactive elements
Lesson 2881CSP Header Testing and Debugging
Test by inlining
this CSS in your `<head>` and temporarily removing external stylesheets
Lesson 1975Extracting Critical CSS Manually
Test conditions
Date, tool versions, throttling settings
Lesson 1928Establishing Performance Baselines
Test edge cases
Non-matching elements, deeply nested children, removed elements
Lesson 769Testing Delegated Event Handlers
Test form errors
does focus move to the first error?
Lesson 1098Testing Focus Management
Test FOUT/FOIT
Ensure your site remains usable while fonts load
Lesson 572Web Font Best Practices Checklist
Test from multiple locations
worldwide, revealing geographic performance issues
Lesson 1927Performance Monitoring Services
Test in different modes
browse mode vs forms mode can change behavior
Lesson 1125Testing Announcements Across Screen Readers
Test incrementally
Migrate one caching strategy or route at a time.
Lesson 2415Migration from Manual Service Workers
Test modal dialogs
does focus trap inside?
Lesson 1098Testing Focus Management
Test on slow connections
Use DevTools throttling to ensure acceptable loading experience
Lesson 572Web Font Best Practices Checklist
Test on wide viewports
Preview at 1920px, 2560px, or wider to see the cap in action
Lesson 410Preventing Overly Large Text
Test responsiveness
modern methods often require less media query complexity
Lesson 244Migrating from Float Layouts
Test route changes
does focus move to meaningful content?
Lesson 1098Testing Focus Management
Test the same announcement
(like form validation or a loading message) in at least 2-3 different screen readers
Lesson 1125Testing Announcements Across Screen Readers
Test with keyboard navigation
(Tab, Enter, Space, Arrow keys)
Lesson 1038Testing Without ARIA First
Test with real tools
Always verify your components with actual screen readers (NVDA, JAWS, VoiceOver) and keyboard-only navigation.
Lesson 2472Shadow DOM and Accessibility
Test with SSR enabled
Always verify your components render identically on both environments
Lesson 1747Avoiding Hydration Mismatches
Testable requirements
written clearly
Lesson 990WCAG 2.1 Success Criteria Overview
testing
code that expects Response objects without making real network requests.
Lesson 857Creating Custom ResponsesLesson 2929Upgrading Resources to HTTPS
Testing controls
Buttons and checkboxes specifically for development
Lesson 2322Testing Service Workers Locally
Testing Phase
Test with real assistive technologies like screen readers, keyboard-only navigation, and automated accessibility checkers.
Lesson 994Accessibility in the Development Lifecycle
Testing third-party failures
Block analytics scripts or ad networks to ensure your core functionality remains intact.
Lesson 2204Blocking Requests
Text input
where users type (the primary interface)
Lesson 1198Combobox Pattern Fundamentals
Text inputs
Must contain at least one character
Lesson 897The required Attribute
Text-based formats
are highly compressible because they contain lots of repetition and patterns:
Lesson 2135What to Compress and What Not to Compress
Theme-aware
Automatically integrate with your color, spacing, and breakpoint scales
Lesson 651Plugin System Basics
Theming
means defining your visual language once and applying it everywhere.
Lesson 2650Theming and Custom Styles
there.
They're not
JWTs use **base64url encoding**, which is simply a way to represent binary data as text—it's completely reversible by anyone.
Lesson 1580Encoding vs Encryption: JWT Security Basics
Think of this as
"Assign a new destination and add it to the travel log.
Lesson 945Navigating with location
Third row
Takes up remaining space (flexible with `fr`)
Lesson 326Defining Grid Rows with grid-template-rows
Third-party assets
(fonts, libraries from CDNs): `Cache-First` with long expiration — they're versioned and don't change.
Lesson 2394Choosing the Right Strategy per Resource
Third-party files
you don't want hashed or transformed
Lesson 1379Public Directory and Static Assets
Third-party library bloat
Do you need the entire library or just a few functions?
Lesson 1949Analyzing Bundle Size and Split Points
Third-party overrides
Styling components from libraries that inject their own class names
Lesson 1346Global Styles in CSS Modules
Third-party provider
If set by external services (e.
Lesson 2972Cookie Policy Pages and Transparency
Third-party resources
require verification: check that the external service *supports* HTTPS.
Lesson 2929Upgrading Resources to HTTPS
Third-party script budget
75 KB gzipped maximum
Lesson 1933JavaScript Bundle Size Budgets
Third-party scripts
that collect user data
Lesson 2954User Consent Requirements
Third-party services
– External analytics or ad scripts with poor response times
Lesson 2202Identifying Slow Resources
Third-party tracking
happens when external domains collect data about your visit through embedded resources.
Lesson 2976First-Party vs Third-Party Tracking
Third-Party Widgets
Embed analytics dashboards, chat widgets, or payment forms as Web Components that work regardless of your framework choice.
Lesson 2494Hybrid Approach with FrameworksLesson 2870Analyzing CSP Violation Reports
Third-party widgets sandboxed
where possible
Lesson 2906XSS Prevention Checklist
This is dangerous
If an attacker injects HTML into your page, inline scripts will execute.
Lesson 2853CSP Source Keywords: 'self', 'unsafe-inline', 'unsafe-eval'
Three+ weights
Variable font wins (~150KB+ vs ~80KB variable)
Lesson 1291Variable Font File Size Benefits
Thumbnail Facades
Replace the iframe with a static thumbnail image.
Lesson 2834YouTube and Vimeo Embeds
Tier-based access
Premium features for paid users
Lesson 2823Targeting and Segmentation
Time column
Very fast (typically <10ms) since no content transferred
Lesson 2208Identifying 304 Not Modified Responses
Time Delay
Load analytics after the critical page content is ready
Lesson 2049Lazy Loading Third-Party Scripts
Time spent
User has been actively engaged for several minutes
Lesson 2360Strategic Prompt Timing
Time to streaming completion
when the last chunk arrives
Lesson 1740Streaming Metrics
Time-based bucketing
For time-series data, group points by intervals (e.
Lesson 2652Performance with Large Datasets
Time-based differences
Rendering `new Date()` or `Math.
Lesson 1746Hydration Mismatch Errors
Time-dependent values
are the biggest culprit.
Lesson 1747Avoiding Hydration Mismatches
Time-to-Live (TTL)
is a duration after which a cached resource expires and should be refreshed.
Lesson 2395Cache Expiration and TTL
Timeline sections
Main thread activity (JavaScript execution, layout, paint), GPU compositing, and more
Lesson 2598Measuring Animation Performance
Timeouts
The server might be slow or overloaded.
Lesson 1693Conditional Retries Based on Error Type
Timers and callbacks
(`setTimeout`, `setInterval`) that never get cleared
Lesson 2107What Are Memory Leaks and Why They Matter
Timezone sanity
Libraries like `Luxon` understand timezones properly, letting you work with "Europe/Paris" or "America/New_York" instead of cryptic offset calculations.
Lesson 2735Why Use Date Libraries Over Native Date
Timezone-aware operations
are central to your app (booking systems, global scheduling)
Lesson 2745Choosing the Right Date Library
Timing Analysis
Use `timeStamp` to measure how quickly users respond, calculate delays between events, or detect double-clicks vs single clicks by comparing timestamps.
Lesson 756event.timeStamp and event.isTrusted
Timing-based budgets
set thresholds for actual user-experienced metrics:
Lesson 1931Types of Performance Budgets
TLS
(Transport Layer Security) are the encryption technologies that make HTTPS work.
Lesson 13HTTPS and SSL/TLS
Toggle device toolbar
(Ctrl+Shift+M or the phone/tablet icon)
Lesson 413Testing Fluid Typography
Toggle states
like dropdowns or accordions:
Lesson 2584Simple State Changes with Transitions
Toggle switches or checkboxes
for non-essential categories
Lesson 2969Granular Cookie Category Controls
Token blacklist
Add logged-out tokens to a database blocklist (defeats statelessness but works)
Lesson 1574Session Invalidation and Logout
Token Exchange
Your backend exchanges this code + client secret for an access token
Lesson 1615OAuth 2.0 Flow Overview
Token family tracking
Store token chains (from rotation in lesson 1611) and revoke entire families when compromise is detected.
Lesson 1613Refresh Token Revocation
Token Persistence
Keep the token in memory throughout the SPA lifecycle.
Lesson 2915CSRF Protection in SPAs
Token Refresh
Since SPAs run for extended periods, tokens may expire.
Lesson 2915CSRF Protection in SPAsLesson 2924Refresh Token Rotation
Token refresh detection
If using JWTs, the refresh token flow (from earlier lessons) returns a new token with updated claims.
Lesson 1637Role Changes and UI Updates
Token-based authentication
(like JWT with Bearer tokens) fits mobile apps perfectly because:
Lesson 1576Mobile and Native App Authentication
Tokenization
It breaks the HTML into meaningful pieces called tokens—things like `<div>`, `</div>`, text content, and attributes.
Lesson 21Parsing HTML into the DOM
Tokens exposed in URLs
Access tokens appear in browser history, referrer headers, and logs
Lesson 1618Implicit Flow and Why to Avoid It
Too granular
Splitting every small component into its own chunk means the overhead of fetching multiple files outweighs the benefit of parallel loading
Lesson 1423Code Splitting Trade-offs
Too many entry points
Each route or feature split multiplies your HTTP requests
Lesson 1423Code Splitting Trade-offs
Too many listeners
If you're attaching the same handler to 10+ elements, consider delegation.
Lesson 767Delegation vs Direct BindingLesson 2185Event Listeners Panel
Too robotic
"Error code 422: The requested operation failed validation requirements.
Lesson 1684Tone and Voice in Error Messages
Tools to help
Browser DevTools often include visual cubic-bezier editors, and sites like cubic-bezier.
Lesson 505Custom Cubic Bezier Curves
Tooltip trigger areas
(even if the visible marker is smaller)
Lesson 2658Touch-Friendly Interaction Targets
Tooltips
(hover-triggered contextual information)
Lesson 1031When Semantic HTML Doesn't Exist
Tooltips and Popovers
These often have directional "arrows" or tails pointing to their trigger element.
Lesson 2526RTL-Specific Edge Cases
Top toolbar
Contains the red record button (should be active), a clear button to wipe the log, filter buttons for resource types (XHR, JS, CSS, Img, etc.
Lesson 2196Network Panel Overview and Interface
Top-Level Boundary
Always wrap your entire app with an error boundary as a safety net.
Lesson 1669Positioning Error Boundaries in the Component Tree
Top/Left negative margins
pull the element *toward* that direction
Lesson 149Negative Margins
Total Blocking Time
is a performance metric that measures the total amount of time the main thread was blocked during the critical period between **First Contentful Paint (FCP)** and **Time to Interactive (TTI)**.
Lesson 1736Total Blocking Time (TBT)Lesson 1750Partial Hydration ConceptsLesson 1893FID vs Total Blocking Time (TBT)Lesson 1941Route-Based Code SplittingLesson 1995Why Image Optimization Matters for Performance
Total count
upfront ("list with 8 items")
Lesson 1001Lists: Ordered, Unordered, and Description
Total font weight
100KB max for all font files combined
Lesson 1934Image and Media Asset Budgets
Total JavaScript weight
across all bundles
Lesson 1933JavaScript Bundle Size Budgets
Total JS budget
200 KB gzipped for initial load
Lesson 1933JavaScript Bundle Size Budgets
Total page load time
From initial request to load complete
Lesson 2173Measuring and Improving Waterfall Metrics
Total scroll height
= `itemCount * itemHeight`
Lesson 2100Fixed-Height Item Virtualization
Touch targets
Are buttons truly easy to tap with a thumb?
Lesson 387Testing on Real Devices
Touch-Friendly Targets
Close buttons and action buttons need to be at least 44×44 pixels (Apple's guideline) or 48×48 pixels (Material Design).
Lesson 1161Mobile Modal Patterns
Track author connections
Link all posts by the same author
Lesson 1787Related Content and Computed Fields
Track chunk completion
– Store which chunks succeeded (in memory, localStorage, or server-side)
Lesson 2718Resumable Upload Pattern
Track cumulative angles
Each slice starts where the previous one ended
Lesson 2607Creating Pie and Donut Charts
Track metrics over time
with historical data
Lesson 1924Lighthouse CLI and CI Integration
Track progress
Monitor completed chunks to show overall upload progress
Lesson 2717Chunked Upload for Large Files
Track trends
over weeks and months, showing if your LCP is improving or degrading
Lesson 1927Performance Monitoring Services
Tracking cookies
(analytics, advertising, social media pixels)
Lesson 2954User Consent Requirements
Trade-off
Content freshness is bounded by your revalidation interval.
Lesson 1801ISR Performance CharacteristicsLesson 2369Update Mechanisms
Traditional CSS
encourages you to:
Lesson 605What is Utility-First CSS
Traffic distribution
50/50 splits reach significance faster than 90/10 splits
Lesson 2827Statistical Significance and Sample Size
Traffic sources
How users found you—search engines, social media, direct visits, or referral links.
Lesson 2779Understanding Analytics and User Behavior Tracking
Transaction completion
(processing an order the user initiated)
Lesson 2954User Consent Requirements
Transaction ID
(prevents duplicate tracking)
Lesson 2784E-commerce and Conversion Tracking
Transfer size
Actual bytes sent over the network (after compression)
Lesson 1248Measuring Format Performance Impact
Transferred size
(smaller number) — actual bytes sent over the network after compression
Lesson 2139Verifying Compression in DevTools
Transfonter
provide visual interfaces where you can upload fonts, check boxes for character sets (Latin, Cyrillic, etc.
Lesson 1285Tools for Font Subsetting
Transform matrix calculations
More efficient than browser recalculations on complex chained animations
Lesson 2546GSAP Overview and Why Use It
Transforms direct children
only the immediate children become flex items (not grandchildren or deeper descendants)
Lesson 254Enabling Flexbox with display: flex
Translation
means shifting an element from its original position along the X-axis (horizontal) and/or Y-axis (vertical).
Lesson 5292D Translation with translate()Lesson 2537Collaboration with Translators and Translation Services
Translation coverage tools
scan your codebase and compare it against your translation files.
Lesson 2536Translation Coverage and Missing Key Detection
Translation tools
rely on it to offer accurate translations.
Lesson 80The <html> Element and Language Attributes
Transparency needed
→ PNG or WebP (JPEG doesn't support transparency)
Lesson 1246Format Selection Strategy
Transparency requirements
Clear disclosure of data collection practices
Lesson 2953Understanding GDPR and CCPA Fundamentals
Transparent disclosure
Explain what you track and why
Lesson 2780Privacy-First Analytics Philosophy
Tree Construction
It uses these tokens to build a tree of nodes.
Lesson 21Parsing HTML into the DOM
Trend with Context
Area for volume ranges, Line for average
Lesson 2647Recharts Composition Patterns
Trigger layout shifts
when content appears late (hurting CLS)
Lesson 2047The Performance Cost of Third-Party Scripts
Trigger uploads
or further processing
Lesson 2672Change and Input Events
True menus
provide actionable choices with arrow key navigation, type-ahead, and roving tabindex
Lesson 1172Disclosure Widgets vs True Menus
True Offline-First
Complements offline form handling patterns you've already learned
Lesson 2333What is Background Sync and Why It Matters
Truly directional needs exist
A decorative element that *must* stay on the left side regardless of language should use `left: 0`, not `inset-inline-start: 0`.
Lesson 465When to Use Logical vs Physical Properties
TTF
(TrueType Font) is the original desktop font format.
Lesson 560Font File Formats: WOFF2, WOFF, TTF, EOT
TTFB
(which you learned previously) is when the kitchen acknowledges your order, while **FCP** is when the first appetizer arrives at your table.
Lesson 1731First Contentful Paint (FCP)
TTI
measures when users can actually interact with your page.
Lesson 1717CSR Performance Characteristics
Turbopack
(from the Vercel team) uses Rust for extreme performance and incremental computation, remembering what it's already built to avoid redundant work.
Lesson 1399The Modern Bundler Landscape
Twitter-specific features
Like `twitter:site` handle attribution
Lesson 1842Twitter Cards vs Open Graph Fallbacks
Two weights
Usually tie (~100KB vs ~80KB variable)
Lesson 1291Variable Font File Size Benefits
Two-column grid
`sizes="(min-width: 768px) 50vw, 100vw"`
Lesson 1216Writing Effective sizes Values
two-dimensional layouts
it controls both rows *and* columns simultaneously, like arranging items in a spreadsheet with precise row and column placement.
Lesson 309Flexbox vs Grid DecisionLesson 310What is CSS Grid and When to Use It
Two-dimensional layouts matter
If you need precise control over both rows *and* columns simultaneously, Grid is your answer.
Lesson 377When to Choose Grid Over Flexbox
Two-way channel open
Both sides can now send messages freely without the request-response pattern
Lesson 877WebSocket Fundamentals
Type checking
Ensuring numbers are numbers, dates are valid dates
Lesson 2905Validating and Sanitizing Input
Type of chart
"Bar chart showing.
Lesson 1144Alt Text for Charts and Graphs
Type selectors and pseudo-elements
(`div`, `p`, `::before`): Worth **0,0,0,1 points** each
Lesson 131Understanding Specificity: The Point System
Typing events
Announcing every character as the user types
Lesson 1124Avoiding Announcement Spam
Typos in attributes
Misspelled attribute names or invalid values
Lesson 1446Why Lint HTML? Catching Errors Early

U

U+200E
(LEFT-TO-RIGHT MARK): Zero-width LTR marker
Lesson 2522Bidirectional Text (Bidi) Challenges
U+200F
(RIGHT-TO-LEFT MARK): Zero-width RTL marker
Lesson 2522Bidirectional Text (Bidi) Challenges
U+202A
(LEFT-TO-RIGHT EMBEDDING, `&lrm;` for mark): Forces LTR direction
Lesson 2522Bidirectional Text (Bidi) Challenges
U+202B
(RIGHT-TO-LEFT EMBEDDING, `&rlm;` for mark): Forces RTL direction
Lesson 2522Bidirectional Text (Bidi) Challenges
U+202C
(POP DIRECTIONAL FORMATTING): Closes the embedding
Lesson 2522Bidirectional Text (Bidi) Challenges
UA-Parser.js attack (2021)
injected cryptominers and password stealers into a package downloaded 7+ million times weekly.
Lesson 2943Understanding Supply Chain Attacks
UDP
using a new protocol called **QUIC** (Quick UDP Internet Connections).
Lesson 2127HTTP/3 and QUIC Protocol
UMD bundles
for browser `<script>` tags
Lesson 1385Library Mode in Vite
Unauthorized Resource Loading
Want to ensure images only load from your CDN?
Lesson 2839What is Content Security Policy?
Uncaught exceptions
(syntax errors, reference errors, etc.
Lesson 2810Setting Up Sentry for Frontend
Undefined variables
when a custom property simply doesn't exist
Lesson 471Fallback Values in var()
Under-fetching
occurs when one endpoint doesn't give you enough.
Lesson 1547Over-Fetching and Under-Fetching Problems in REST
Understand your audience
Who are your users and what do they need?
Lesson 2779Understanding Analytics and User Behavior Tracking
Understandable
means both the information and the operation of the interface must be clear.
Lesson 988The Four Principles of WCAG: POUR
Undo/redo
icons (these swap positions!
Lesson 2521Icons and Visual Elements in RTL
Unequal splits
work just as easily:
Lesson 375Grid-Based Split Screens
Unexpected version changes
that introduce bugs or vulnerabilities
Lesson 2948Lock Files and Dependency Pinning
Unexpectedly large chunks
Should that "simple" component really be 200KB?
Lesson 1949Analyzing Bundle Size and Split Points
Unhandled promise rejections
(forgotten `.
Lesson 2810Setting Up Sentry for Frontend
Unicode ranges
numerical blocks that group related characters together.
Lesson 1284Unicode Ranges in Font Files
Union types
Multiple unrelated types in one result
Lesson 1536Inline Fragments and Type Conditions
Unique per page
Every page deserves its own description
Lesson 1826The Meta Description Tag
Unique per request
(never reused across page loads)
Lesson 2855Generating Secure Nonces
Unique pseudo-classes
`[@nth-child(3)]:text-red-500`
Lesson 642Arbitrary Variants
Unique, custom visualizations
that don't fit standard chart types
Lesson 2642D3 vs Higher-Level Charting Libraries
Unit Rules
enforce consistency in your measurements.
Lesson 1439Common Stylelint Rules
Universal
(every user gets the same files)
Lesson 2420When to Use Each Strategy
Unknown at build time
(you can't predict what users will request)
Lesson 2420When to Use Each Strategy
Unoptimized images
– Multi-megabyte JPEGs or PNGs that should be compressed or converted to modern formats
Lesson 2202Identifying Slow ResourcesLesson 2222Performance Insights and Recommendations
Unordered lists
(`<ul>`) indicate collections where order doesn't matter, like navigation menus or features.
Lesson 1001Lists: Ordered, Unordered, and Description
Unpredictable
Generated with cryptographic randomness
Lesson 2854Understanding CSP Nonces
Unpredictable cascade
Generic names like `.
Lesson 1319Why Naming Conventions Matter in CSS
Unregister and Hard Reload
is your nuclear option—it removes the service worker entirely and forces a fresh start.
Lesson 2440Unregister and Hard Reload
Unregister and re-register
Between tests, unregister your Service Worker completely to test fresh installations versus updates.
Lesson 2435Testing Service Worker Updates
Unregisters
all service workers for the current origin
Lesson 2440Unregister and Hard Reload
Unsafe methods
(POST, PUT, PATCH, DELETE) are CSRF-vulnerable because they perform actions.
Lesson 2908State-Changing Requests and CSRF Risk
Unstick and scroll away
when the bottom edge of the parent reaches the sticky element's position
Lesson 224Sticky Positioning Containing Block
Unused keys
Translations that exist but are never referenced in code (dead weight)
Lesson 2536Translation Coverage and Missing Key Detection
Update `lang` attribute
Set `document.
Lesson 2509Changing Language Without Page Reload
Update application state
to reflect cancellation
Lesson 2722Upload Cancellation and Cleanup
Update calculations when scrolling
to determine which items should be visible based on scroll position
Lesson 2101Variable-Height Item Virtualization
Update incrementally
If jumping from `2.
Lesson 2949Updating Dependencies Safely
Update keyboard handlers
to match accordion behavior instead of tab behavior
Lesson 1186Responsive Patterns: Tabs to Accordion
Update labels
on interactive elements to reflect new context
Lesson 1207Drag and Drop Accessibility
Update on reload
Check this box to force the browser to fetch a fresh service worker file every time you refresh the page.
Lesson 2322Testing Service Workers LocallyLesson 2436DevTools Service Worker PanelLesson 2438Update on Reload and Skip Waiting
Update preference
Save the new locale to `localStorage` (lesson 2507)
Lesson 2509Changing Language Without Page Reload
Update state
Increment offset or store the next cursor
Lesson 1513Load More Button Pattern
Update the hidden field
before allowing resubmission
Lesson 2911CSRF Tokens in Form Submissions
Update them
when users change filters, using `history.
Lesson 980Query Parameters in Routes
Update UI
to show selected file names
Lesson 2672Change and Input Events
Updated dynamically
with text describing the current state
Lesson 1133Loading and Status Messages
Updates
| User-initiated | Automatic |
Lesson 2364Installation and Distribution Models
Updates the cache
with the fresh response for the *next* request
Lesson 2389Stale-While-Revalidate Pattern
Updating records
uses the same `put()` method you used for adding data.
Lesson 791Updating and Deleting Records
Upload
Push the source file to your TMS via API or CI/CD integration
Lesson 2537Collaboration with Translators and Translation Services
URI (Uniform Resource Identifier)
that serves as its address on the web.
Lesson 1471Resources and Resource Identifiers
URL mismatches
Cache keys must match exactly (including query strings)
Lesson 2425Debugging Cache Strategies
URL parameters parsed safely
(no direct injection into DOM)
Lesson 2906XSS Prevention Checklist
URL state management
solves this by encoding your app's viewing state directly into the query string.
Lesson 1518URL State Management
URL-based locale
(explicit user choice, highest priority)
Lesson 2502Fallback Chains for Locale Resolution
URL-encoded
(application/x-www-form-urlencoded) is the default format for forms.
Lesson 893Form Serialization PatternsLesson 2044Inline SVG Data URIs
URLs have permanently moved
(old structure → new structure)
Lesson 1850Canonical URLs vs 301 Redirects
Usage
How many bytes your origin currently consumes
Lesson 2241Storage Quota and Usage Analysis
Usage guidelines
"Use `--color-brand-primary` for primary CTAs and key actions"
Lesson 1368Theme Documentation and Design Tokens
Use
Confirm completed actions like "Profile saved" or "Payment successful"
Lesson 1712Toast Types and Visual Hierarchy
Use .npmrc configuration
to disable scripts by default in your project, enabling them only when verified safe.
Lesson 2952Post-Install Scripts and Security Risks
Use "we" and "you"
to feel human, not "system" or passive voice
Lesson 1684Tone and Voice in Error Messages
Use `'class'`
when you want user-controlled toggles or need to persist preferences in localStorage
Lesson 649Dark Mode Configuration
Use `'media'`
for automatic, system-respecting behavior
Lesson 649Dark Mode Configuration
Use `<article>`
when the content could be:
Lesson 1000Article vs Section vs Div
Use `<b>`, `<i>`, `<u>`
only when you need the visual style without adding meaning — like a product name that's italicized by convention, or a keyword in documentation.
Lesson 67Bold, Italic, and Underline
Use `<g>` elements wisely
Group related shapes to reduce selector complexity, but don't over-nest (deep hierarchies slow traversal).
Lesson 2612SVG Performance Considerations
Use `<strong>` and `<em>`
for 99% of cases where you want bold or italic text — they're accessible and meaningful.
Lesson 67Bold, Italic, and Underline
Use `aria-atomic="true"`
so the entire count is re-announced, not just what changed
Lesson 1122Search Result Announcements
Use `aspect-ratio` CSS
when dimensions vary responsively
Lesson 1270Cumulative Layout Shift (CLS) and Images
Use `const` and `let`
Modern block-scoped declarations prevent accidental globals
Lesson 2113Global Variables and Window Pollution
Use `inline-size`
(default choice): For most responsive components where you care about available width but want natural content flow vertically.
Lesson 437Size vs Inline-Size Containment
Use `longdesc` attribute
You can reference a separate page or section with the full description (though this attribute has limited modern support and isn't widely used anymore).
Lesson 1141Alt Text Length and Complexity
Use `navigator.onLine`
as a quick initial state check
Lesson 1701Implementing a Connectivity Monitor
Use `querySelectorAll()` when
Lesson 688Choosing the Right Selector
Use `role="tooltip"`
on the popup element
Lesson 1204Tooltip Pattern
Use `size`
Only when you need to query both dimensions *and* have explicit height control on your container.
Lesson 437Size vs Inline-Size Containment
Use `skipWaiting()` Sparingly
Lesson 2385Lifecycle Best Practices
Use `transition-timing-function: ease-out`
for elements entering view—they start fast and slow down naturally
Lesson 512Common Transition Patterns and Best Practices
Use `x` descriptors
Fixed-size images (icons, logos, thumbnails with CSS width)
Lesson 1217Device Pixel Ratio and srcset
Use appropriate politeness levels
Reserve `aria-live="assertive"` for truly urgent messages.
Lesson 1124Avoiding Announcement Spam
Use ARIA correctly
Apply `role`, `aria-label`, or `aria-labelledby` attributes within the shadow root, referencing only internal IDs.
Lesson 2472Shadow DOM and Accessibility
Use aria-atomic="true"
so the entire message announces, not just changed text fragments.
Lesson 1119Toast Notification Patterns
Use async when
The script is independent and doesn't rely on DOM structure or other scripts.
Lesson 2830Async and Defer Script Loading
Use cache versioning
to cleanly remove old caches during activation
Lesson 2396Cache Size Management
Use case guidance
when to use each style
Lesson 594Documentation and Type Specimens
Use cases
Test how a page looks without a navigation bar, duplicate a card component to see grid behavior with more items, or add temporary wrapper divs to diagnose CSS issues.
Lesson 2178Adding and Removing Elements
Use clear naming
Custom claims should be descriptive and namespace them if needed (`app_role` instead of just `role`) to avoid conflicts with future JWT standards.
Lesson 1582Custom Claims and Payload Design
Use consistent data sources
Pass timestamps or random values as props from the server rather than generating them during render
Lesson 1747Avoiding Hydration Mismatches
Use CSS escape sequences
Replace dangerous characters with their `\HEX` equivalents (e.
Lesson 2900CSS Context Encoding
Use defer when
The script needs the full DOM available or must execute in a specific order relative to other deferred scripts.
Lesson 2830Async and Defer Script Loading
Use descriptive text
Write "Read our privacy policy" instead of "Click here"
Lesson 72Hyperlinks Fundamentals
Use DevTools 3D view
(if available in your browser) to visualize stacking layers.
Lesson 235Debugging Stacking Issues
Use fallback values
When using `font-variation-settings`, always pair it with standard properties like `font-weight`
Lesson 1292Browser Support and Fallbacks
Use GET
for searches or filtering, where data appears in the URL.
Lesson 91The <form> Element and Form Submission
Use HTTPS URLs explicitly
Update all resource URLs to `https://`
Lesson 2928Mixed Content: Blocking and Warnings
Use iframe sandboxing
For particularly risky embeds (ads, untrusted content), load them in sandboxed iframes with restricted permissions.
Lesson 2829Embedding Third-Party Scripts Safely
Use lightweight alternatives
Privacy-focused tools like Plausible or Fathom are often 10-20x smaller than Google Analytics.
Lesson 2787Performance Impact of Analytics
Use live regions
to announce successful moves ("Item moved to Completed list")
Lesson 1207Drag and Drop Accessibility
Use localStorage
For client-side data that doesn't need server access, switch to `localStorage` (typically 5-10MB limit)
Lesson 805Cookie Size Limitations
Use lock files
to prevent unexpected package swaps
Lesson 2951Scoped Packages and Registry Security
Use lowercase and hyphens
for multi-word names (also called kebab-case):
Lesson 1321BEM Block Naming
Use max-width (desktop-first)
when retrofitting older desktop-only sites or when your primary audience uses desktops.
Lesson 392min-width vs max-width Strategies
Use modern formats
WOFF2 compresses ~30% better than older formats
Lesson 1934Image and Media Asset Budgets
Use modern JavaScript
features and tooling
Lesson 2095Workers with Module Scripts
Use named imports
with date-fns for maximum tree-shaking
Lesson 2744Tree-Shaking and Bundle Size
Use named timezones
when storing recurring events, user preferences, or any date that needs correct DST handling across seasons
Lesson 2752Named Timezones vs Offsets
Use only one `<h1>`
per page for the main topic
Lesson 999Heading Hierarchy and Page Outline
Use open mode
(default choice) when:
Lesson 2462Open vs Closed Shadow DOM
Use plain language
Avoid technical jargon.
Lesson 1678Validation Error Messages
Use POST
when submitting data that changes something (like creating an account).
Lesson 91The <form> Element and Form Submission
Use prefetching wisely
Add prefetch hints to chunks users will likely need soon, reducing the "cost" of splitting without forcing immediate downloads.
Lesson 1950Code Splitting Trade-offs and Best Practices
Use protocol-relative URLs
Change `http://example.
Lesson 2928Mixed Content: Blocking and Warnings
Use scoped packages
for critical dependencies when possible
Lesson 2951Scoped Packages and Registry Security
Use sparingly
Each layer consumes memory.
Lesson 2596The Composite Layer Strategy
Use specialized services
like report-uri.
Lesson 2872Collecting and Monitoring Reports
Use strict mode
Add `"use strict";` at the top of files—it throws errors for undeclared variables
Lesson 2113Global Variables and Window Pollution
Use suppressHydrationWarning flags
(temporarily) to isolate which component causes issues
Lesson 1746Hydration Mismatch Errors
Use surrounding text
Place a detailed description in a paragraph or caption right before or after the image.
Lesson 1141Alt Text Length and Complexity
Use test counters
to track how many times a request was attempted
Lesson 1696Testing Retry Logic
Use the actual width
`800w` in the filename should match an 800-pixel-wide image
Lesson 1224Image Source Naming Conventions
Use tokens
(like JWT) for ongoing authentication, not just at connection time
Lesson 881WebSocket Security Considerations
Use tools like SVGO
– automates all the above
Lesson 2001SVG for Vector Graphics
Use user signals
Trigger manual checks when users perform significant actions (like submitting critical forms) rather than passively browsing.
Lesson 2434Update Frequency Best Practices
Use width descriptors
(`w`): Responsive images that scale with viewport
Lesson 1217Device Pixel Ratio and srcset
Use WOFF2 first
It offers the best compression; include WOFF as fallback for older browsers
Lesson 572Web Font Best Practices Checklist
Used for primary content
Body text fonts that cover most of your visible text
Lesson 1295When to Preload Fonts vs When Not To
User action
Clearing browsing data, using private/incognito mode, or storage management tools
Lesson 823Persistence and Durability
User actions
clicks, form submissions, scrolls
Lesson 2782Event Tracking Fundamentals
User Choice
When you call `prompt()` and get back the user's decision via `userChoice`, track whether they clicked "Install" or "Cancel".
Lesson 2361Install Analytics and Metrics
User clicks
Make a fetch request with updated offset/cursor
Lesson 1513Load More Button Pattern
User Consent
The user logs in and approves what your app can access
Lesson 1615OAuth 2.0 Flow Overview
User context
(browser, OS, user actions leading to error)
Lesson 2287Error Monitoring Services
User control
Let users opt out or delete their data easily
Lesson 2975Understanding Ethical vs Invasive Tracking
User dashboards
Static layout, dynamic user data
Lesson 1778Hybrid Approaches
User demographics
Geographic location, device type (mobile/desktop), browser, operating system, and screen resolution.
Lesson 2779Understanding Analytics and User Behavior Tracking
User Experience
Users stay logged in for extended periods without constant re-authentication.
Lesson 1605Why Refresh Tokens ExistLesson 1765Hybrid Approaches: SSR + CSR
User experience goal
Lossy compression typically delivers better performance because smaller files load faster
Lesson 1996Lossy vs Lossless Compression
User Feedback
Show a loading indicator while checking, so users know something is happening.
Lesson 916Async Validation Patterns
User frustration
Slowdowns lead to abandoned sessions and lost engagement
Lesson 2107What Are Memory Leaks and Why They Matter
User ID
Permanent identifier from your database
Lesson 2814User Context and Session Data
User in New York
(UTC-5) sees it correctly as "1:00 AM local"
Lesson 2747Understanding UTC and Timezone Offsets
User in Tokyo
creates an event at "3:00 PM local" (UTC+9)
Lesson 2747Understanding UTC and Timezone Offsets
User Input
Browser continuously validates as users type
Lesson 911Understanding Constraint Validation API
User Input Events
clicks, keypresses, mouse movements, touch gestures
Lesson 716What Are DOM Events?
User Interaction
Load a chat widget only when someone clicks "Contact Us"
Lesson 2049Lazy Loading Third-Party Scripts
User logout
Remove personalized content from the cache
Lesson 813Deleting Cached EntriesLesson 1613Refresh Token Revocation
User logs in
client sends credentials (username/password) to the server
Lesson 1569Token-Based Authentication Flow
User preferences
Display dashboard layouts, saved filters, or recently viewed items for logged-in users immediately.
Lesson 1762Geographic and Personalized Content
User Request
Your app redirects the user to an authorization server (like Google or GitHub)
Lesson 1615OAuth 2.0 Flow Overview
User Settings
apply globally across all projects on your computer.
Lesson 1467Workspace Settings vs User Settings
User stylesheets
for accessibility needs
Lesson 134!important and When to Avoid It
User triggers change
Click a language selector button or dropdown
Lesson 2509Changing Language Without Page Reload
User warnings
Alert users when forms are submitted over HTTP
Lesson 2932Detecting HTTPS in JavaScript
User-agent
Specifies which crawler the rules apply to (`*` means all crawlers, or you can target specific bots like `Googlebot`)
Lesson 1873Robots.txt Fundamentals
User-agent detection isn't foolproof
Bots can be spoofed, and new crawlers appear regularly
Lesson 1881Dynamic Rendering and Bot Detection
User-specific
(different users see different data)
Lesson 2420When to Use Each Strategy
User-specific dashboards
also challenge the model.
Lesson 1822When Jamstack Fits Best
User-specific data
that must be current
Lesson 2153Network-First Strategy
User-triggered loading
Load the widget when a user clicks a "Chat with us" button or hovers over a chat icon.
Lesson 2831Lazy Loading Chat Widgets
User-triggered migration
– When users log in with the new system, mark them as "migrated"
Lesson 1604Migrating Between Storage Strategies
User-triggered vs Automatic
updates have different tolerances.
Lesson 1118Announcement Timing and Delays
Username or Display Name
Helps recognize patterns
Lesson 2814User Context and Session Data
Users
People assigned to one or more roles
Lesson 1628Role-Based Access Control (RBAC) Fundamentals
Users need quick switching
between sections without page reloads
Lesson 1175Tabs Pattern Overview and When to Use Them
Users perceive continuity
rather than sudden content appearance
Lesson 2028Solid Color Placeholders
Users provide content
via Light DOM, which projects through slots
Lesson 2485Templates and Slots Pattern: Reusable Component Markup
Using CSS Custom Properties
as a bridge—define theme-specific values that Tailwind utilities consume
Lesson 653Multi-Theme Architecture Patterns
Using OpenSSL (command line)
Lesson 2938Generating SRI Hashes
UTC offset
is a simple number: how many hours (and minutes) ahead or behind UTC a location is *at this moment*.
Lesson 2752Named Timezones vs Offsets
UTF-8
is a universal character encoding standard that supports virtually all written languages, symbols, and emoji.
Lesson 82Character Encoding with <meta charset>
Utility-first
Fast-moving projects prioritizing speed over custom architecture
Lesson 1340ITCSS vs Other Methodologies: When to Use WhatLesson 1350CSS Modules vs Other Approaches
Utility-first approaches
(like Tailwind) compose styles from single-purpose classes:
Lesson 654Utility-First vs Component-Based CSS: Understanding the Trade-offs

V

V8
Used by Chrome and Edge (built by Google)
Lesson 19The JavaScript Engine
Valid Token Acceptance
First, verify legitimate requests work.
Lesson 2916Testing CSRF Protection
Validate
file types and sizes immediately
Lesson 2672Change and Input Events
Validate all incoming messages
never trust client data
Lesson 881WebSocket Security Considerations
Validate conditions
Are required prerequisites met?
Lesson 982Route Guards and Navigation Hooks
Validate data before sending
Lesson 895FormData Best Practices
Validate decisions
Does that redesign actually improve engagement?
Lesson 2779Understanding Analytics and User Behavior Tracking
Validate dimensions
before proceeding with upload
Lesson 2700Image Dimension Validation
Validate first
Only allow expected values (like hex colors or specific keywords)
Lesson 2900CSS Context Encoding
Validate individual fields first
(each date is properly formatted)
Lesson 920Custom Validation for Complex Inputs
Validate input
Check if a form is filled out correctly before submission
Lesson 41JavaScript's Role: Adding Interactivity
Validate on meaningful events
For date ranges, validate when *either* field changes.
Lesson 920Custom Validation for Complex Inputs
Validate origins
Check referrer headers on sensitive actions
Lesson 2907What is CSRF and Why Frontend Matters
Validate the accessibility tree
(does structure make sense?
Lesson 1038Testing Without ARIA First
Validation
The resource's origin is compared to the allowed sources in that directive
Lesson 2840How CSP Works in Browsers
Validation Errors
Move focus to either:
Lesson 1095Form Submission and Error Focus
Validation icons
Error/success indicators typically appear at the "end" of the field (left in RTL)
Lesson 2523Form Controls and Input Direction
Validation state management
means maintaining a data structure that tracks which files are valid, which are invalid, and why.
Lesson 2704Validation State Management
Validation-based caching
The server gives the file a unique identifier.
Lesson 2141HTTP Caching Fundamentals
Value column
The stored data (objects, arrays, primitives)
Lesson 2235IndexedDB Inspection and Debugging
Value Rules
validate what you assign to properties.
Lesson 1439Common Stylelint Rules
VAPID public key
(a security token that proves your server is authorized to send pushes):
Lesson 2347Push Subscription Creation
Variable declaration
(`$userId: ID!
Lesson 1528Variables in Operations
Variable fonts
Consider variable fonts when you need multiple weights—one file instead of many
Lesson 572Web Font Best Practices ChecklistLesson 573What Are Variable Fonts?
Variable Fonts Directory
(v-fonts.
Lesson 581Finding and Loading Variable Fonts
Variable sizes
Like variable-height lists, variable column widths require tracking cumulative widths for accurate positioning.
Lesson 2103Virtual Grid Layouts
Variable usage
(`id: $userId`): Where you actually use the variable in your query
Lesson 1528Variables in Operations
variables
let you separate those values from the query structure, making them reusable and safer.
Lesson 1532Query Arguments and VariablesLesson 2802Google Tag Manager ArchitectureLesson 2804Tags, Triggers, and Variables
Vary Header Respect
Your origin should send `Vary: Accept-Encoding` so the CDN caches separate versions for gzip, Brotli, and uncompressed responses based on client capabilities.
Lesson 2140Compression and CDN Configuration
Vector images
store mathematical instructions describing shapes, lines, and curves — not pixels.
Lesson 1239Understanding Raster vs Vector Image Formats
Vendor chunk splitting
separates your `node_modules` dependencies into their own bundle file.
Lesson 1948Vendor and Common Chunk Splitting
Vendor code
Third-party libraries in `node_modules/`
Lesson 1434Ignoring Files with .eslintignore
Verbosity
Control how much information VoiceOver announces (General → Verbosity)
Lesson 1102Setting Up VoiceOver on macOS
Verify connectivity
– Ping a lightweight endpoint first
Lesson 1705Reconnection Strategies
Verify functional images
– For buttons or links containing images, does the alt text clearly describe the action?
Lesson 1146Testing Alt Text with Screen Readers
Verify handler execution
Check DOM changes, state updates, or use flags
Lesson 769Testing Delegated Event Handlers
Verify headers
in the Network tab under Response Headers
Lesson 2881CSP Header Testing and Debugging
Verify licensing
Self-hosted fonts must have appropriate licenses for web use
Lesson 572Web Font Best Practices Checklist
Verify politeness levels
work as expected—`polite` shouldn't interrupt, `assertive` should
Lesson 1125Testing Announcements Across Screen Readers
Verify the `state` parameter
matches what you sent (prevents CSRF attacks—you learned about this in session management)
Lesson 1621Redirect URIs and Callback Handling
Verify zero critical violations
Before switching, confirm your monitoring dashboard shows no reports for at least a few days across different user segments.
Lesson 2873Transitioning from Report-Only to Enforcement
Version bumping
Change a cache name or add a comment to your Service Worker file to trigger byte-diff detection.
Lesson 2435Testing Service Worker Updates
Version change
When you open an existing database with a *higher* version number than what's stored
Lesson 785Database Versioning and onupgradeneeded
Version changes
New app version means old cached assets are obsolete
Lesson 813Deleting Cached Entries
Version control
Your CSP policy evolves with your codebase
Lesson 2865Build Tools and Automatic Hash Generation
Version logging
Include version identifiers in your Service Worker (`const VERSION = '2.
Lesson 2435Testing Service Worker Updates
Version mismatch
Old pages may expect cached resources the new worker no longer provides
Lesson 2377skipWaiting() to Bypass WaitingLesson 2428The skipWaiting Pattern
Version query strings
`/translations/en.
Lesson 2535Managing Translation Updates in Production
Version tokens easily
without managing dozens of font files
Lesson 582Variable Fonts in Design Systems
Version-Aware Caching
Include version identifiers in your cache names (`static-v1`, `static-v2`).
Lesson 2381Handling Version Mismatches
Version-controlled
(you manage updates through new service worker versions)
Lesson 2420When to Use Each Strategy
Vertical centering
Nearly impossible without hacks
Lesson 242Float Layout Limitations
Vertical groups
(menus, lists): Up/Down arrows
Lesson 1073Arrow Key Navigation Patterns
Vertical lists
of content cards
Lesson 309Flexbox vs Grid Decision
Vertical menus
Home focuses the top item, End the bottom
Lesson 1080Home and End Key Support
Vertical offset
How far down (positive) or up (negative) the shadow moves
Lesson 176Text ShadowLesson 205Text Shadow
Victim clicks link
(via email, social media, or ad)
Lesson 2893Reflected XSS Attacks
Victory
also targets React with excellent accessibility and cross-platform support (works in React Native).
Lesson 2643Overview of Popular Charting Libraries
Video content
sees massive improvements.
Lesson 2158Types of Assets to Serve from CDNs
VideoObject
and **ImageObject** schemas are structured data vocabularies from Schema.
Lesson 1865Video and Image Object Schema
View changes
See all modified, added, or deleted files at a glance
Lesson 1468Git Integration and Source Control Panel
View diffs
Click any modified file to see a side-by-side comparison of what changed—old version on the left, new on the right
Lesson 1468Git Integration and Source Control Panel
View page source
(Ctrl+U): Search for "canonical" to see the raw HTML
Lesson 1853Testing and Validating Canonicals
View the Call Stack
with meaningful function and file names
Lesson 2283Debugging with Source Maps in DevTools
Viewport settings
(for mobile responsiveness)
Lesson 81The <head> Element Structure
viewport units
(like `vw`) combined with calculation techniques to make font sizes proportional to screen width.
Lesson 405Understanding Fluid TypographyLesson 619Sizing: Width and Height
Viewport width
(how wide is the screen?
Lesson 417Width Descriptors (w) in srcset
Virtual Keyboard Management
When forms appear in mobile modals, the virtual keyboard can obscure content.
Lesson 1161Mobile Modal Patterns
Virtualization
(also called "windowing") is a technique where you only render the DOM nodes that are currently visible in the viewport, plus a small buffer above and below.
Lesson 2097What is Virtualization and When to Use ItLesson 2652Performance with Large Datasets
Visual clarity
Style your scrollable area so users *see* there's more content (shadows, fade effects, or visible scrollbars help).
Lesson 1160Scrolling and Large Modal Content
Visual content is rendered
(FCP has occurred)
Lesson 1733Time to Interactive (TTI)
Visual Design
Use calm, informative colors (yellows or oranges rather than reds).
Lesson 2326Offline Indicators and Banners
Visual differentiation
Blurred content, lock icons, or semi-transparent overlays signal restricted access
Lesson 1652Placeholder Content for Unauthorized Users
Visual examples
Show the color swatch or spacing demonstration
Lesson 1368Theme Documentation and Design Tokens
Visual Feedback
Combine both approaches—show disabled buttons for common actions, hide buttons for privileged ones:
Lesson 1655Action Button States
Visual hierarchy
Unique fonts help distinguish headings, body text, and special elements
Lesson 558Introduction to Web FontsLesson 1624Social Login UI PatternsLesson 1662Handling 403: Access Denied UI
Visual impairments
Users who are blind or have low vision use screen readers that convert text to speech or braille
Lesson 987What is Web Accessibility and Why It Matters
Visual Proximity
Use color, icons, or borders to create a visual connection between the error message and its source.
Lesson 1683Error Message Placement and Timing
Visual separators
like decorative borders or spacers
Lesson 1023aria-hidden: Removing from Accessibility Tree
Visually hidden
using the clip pattern (not `display:none`, which screen readers ignore)
Lesson 1133Loading and Status Messages
Visually hide
the actual file input (but keep it accessible)
Lesson 2668Styling File Inputs
Voice
Change speech rate and voice characteristics (Speech settings)
Lesson 1102Setting Up VoiceOver on macOS
VoiceOver (macOS/iOS, built-in)
can be pickier about timing—announcements that happen too quickly after DOM insertion may be missed.
Lesson 1125Testing Announcements Across Screen Readers
VoiceOver modifier keys
(`Control + Option`, often abbreviated as `VO`) activate most commands.
Lesson 1102Setting Up VoiceOver on macOS
Voluntary Application Server Identification
.
Lesson 2348VAPID Keys and Application Server Keys
VPN or Proxy Issues
The device might have a network connection, but intermediate networking layers could be blocking your specific API endpoints.
Lesson 1699Limitations of Browser Offline Detection
Vue
Use `eslint-plugin-vue` which understands `.
Lesson 1450Linting HTML in Templates and Components

W

W3C Nu HTML Checker
validates your HTML and catches invalid ARIA usage during development.
Lesson 1028ARIA Validation and Testing Tools
Wait before acting
– Not every "online" signal means stable connectivity
Lesson 1705Reconnection Strategies
Wait for consent
Only when the user clicks do you load the actual third-party script
Lesson 2837Privacy-Friendly Embed Alternatives
Wait for interaction
Listen for a user click or hover event
Lesson 2050Script Loading Facades
Waiting phase
The new worker waits in the background while the old one still controls pages
Lesson 2423Precache Update Flow
Want zero configuration
Parcel handles complexity automatically.
Lesson 1408Choosing the Right Bundler
Watch
pane (usually on the right sidebar).
Lesson 2269Setting and Managing Watch Expressions
Watch your text scale
in real-time as you resize
Lesson 413Testing Fluid Typography
Waterfall
Visual timeline showing when requests happened
Lesson 2196Network Panel Overview and Interface
Waterfall Chart
A detailed timeline showing every single resource request—HTML, CSS, JavaScript, images, fonts —with color-coded bars indicating DNS lookup, connection time, waiting, and download phases.
Lesson 1925WebPageTest for Deep Analysis
Waterfall loading
If split chunks depend on each other, they load sequentially, not in parallel, creating cascading delays
Lesson 1423Code Splitting Trade-offs
WAVE
(browser extension) provides a visual overlay showing ARIA landmarks, labels, and errors directly on your page layout.
Lesson 1028ARIA Validation and Testing ToolsLesson 1053Testing Tab Order Without a MouseLesson 1098Testing Focus Management
Wave animations
Combine `sin()` with custom properties to create smooth, oscillating motion—think of floating elements or breathing effects.
Lesson 489Math Functions: sin(), cos(), tan(), and Trigonometry
WCAG Documentation
itself is your technical reference manual.
Lesson 996Resources for Learning and Staying Current
WeakMap
is perfect for attaching metadata to DOM nodes or objects you don't control:
Lesson 2117WeakMap and WeakSet for Automatic Cleanup
WeakSet
works for tracking objects without preventing their cleanup:
Lesson 2117WeakMap and WeakSet for Automatic Cleanup
web browser
(like Chrome, Firefox, Safari, or Edge) is an application installed on your computer or phone that serves as your window to the Web.
Lesson 16What is a Web Browser?Lesson 17Browser Architecture Overview
Web fonts
are custom typefaces that are downloaded from a server when someone visits your website.
Lesson 558Introduction to Web FontsLesson 2418Precaching Static Assets
Web fonts loading
Text reflows when custom fonts replace fallback fonts
Lesson 1895Cumulative Layout Shift (CLS) Explained
Web licenses
specifically permit embedding fonts in websites, often with restrictions like:
Lesson 563Font Licensing and Legal Considerations
web server
is both the hardware (a computer) and software (a program) that stores website files and sends them to browsers when requested.
Lesson 10What is a Web Server?Lesson 14Localhost and Development Servers
Web Vitals library
to measure LCP improvements across real users:
Lesson 1960Measuring Lazy Loading Impact
Web Workers
are separate JavaScript threads that run in the background, completely independent of the main thread.
Lesson 1992Moving Computation to Web WorkersLesson 2085What Web Workers Are and Why They Exist
Webhooks
that notify your hosting platform to regenerate pages
Lesson 1781Headless CMS Integration Fundamentals
WebKit
Powers Safari (and used to power Chrome before Blink)
Lesson 18The Rendering Engine
WebP
and **AVIF** create dramatically smaller files than JPEG or PNG—sometimes 30-50% smaller— which means faster page loads.
Lesson 424Modern Image Formats with PictureLesson 1246Format Selection Strategy
WebP lossless
to avoid compression artifacts around sharp edges
Lesson 2002Format Selection Decision Tree
Webpack and Parcel
bundle everything upfront before serving your development server.
Lesson 1386Vite vs Other Build Tools
Webpack Dev Server
have built-in proxy configuration:
Lesson 870Development Proxies for CORS
Webpack plugins
like `webpack-bundle-analyzer` can be paired with custom scripts or plugins like `size-limit` to automatically fail builds when bundle budgets are exceeded.
Lesson 1937Enforcing Budgets in CI/CD
WebSocket/real-time approach
If your app uses real-time connections, the backend can push role changes instantly when they occur.
Lesson 1637Role Changes and UI Updates
WebSockets
A persistent, bidirectional connection.
Lesson 872Real-Time Communication Patterns
Weight (`wght`)
Controls boldness, from thin to ultra-black
Lesson 1288Variable Font Axes
Weight axis
From thin (100) to black (900), and any value in between (like 427 or 863)
Lesson 1287Introduction to Variable Fonts
What it is
`role="tablist"`, `role="tab"`, `role="tabpanel"`
Lesson 1032ARIA for Complex Interactive Widgets
What it means
`flex-grow: 1`, `flex-shrink: 1`, `flex-basis: 0%`
Lesson 284Common flex Shorthand Values
What to Do Next
(The Action)
Lesson 1676Error Message Anatomy
What to get
The specific page or resource you want
Lesson 7The Request-Response Cycle
What Went Wrong
(The Problem)
Lesson 1676Error Message Anatomy
What's the alternative
Sometimes a slightly larger, well-maintained package is safer than many small ones
Lesson 2950Minimizing Dependency Count
What's the true cost
Check the package's dependency tree—a 10-line utility might pull in 50 other packages
Lesson 2950Minimizing Dependency Count
WHATWG HTML Living Standard
at `https://html.
Lesson 37Web Standards Today: Finding Current Specifications
When arrow keys navigate
The currently focused item's `tabindex` becomes `"-1"`, and the newly focused item's `tabindex` becomes `"0"`, then you programmatically focus it
Lesson 1074Roving tabindex Pattern
When contextually relevant
Ask in response to a user action that naturally connects to notifications (clicking "Get alerts," enabling a reminder feature)
Lesson 2346Permission Best Practices and Timing
When to use
Short tab panels, simple content, fast-loading data.
Lesson 1180Automatic vs Manual Tab Activation
Where to go
The domain name (which DNS converts to an IP address)
Lesson 7The Request-Response Cycle
Which element it controls
– Use `aria-controls` with the menu's ID
Lesson 1164Menu Button Semantics and ARIA
Whitelist matching
Accepting only predetermined valid values (dropdowns, radio buttons)
Lesson 2905Validating and Sanitizing Input
Why all four
Each event fires at different times during the drag operation.
Lesson 2676Making Elements Drop Zones
Why do this
You get all the native element's functionality for free—form submission, focus management, ARIA support, keyboard navigation—plus your custom enhancements.
Lesson 2453Extending Built-in Elements
Why does this matter
Semantic HTML helps search engines understand your content, makes your site accessible to people using screen readers, and makes your code easier for other developers (and future you!
Lesson 2What is the Web?
Why exclude the button
The button has its own toggle logic.
Lesson 1168Escape Key and Click-Outside Handling
Why is this useful
Imagine you have a navigation menu where you want all links in uppercase for visual consistency, but you don't want to type them that way in your HTML (for accessibility and maintenance reasons).
Lesson 173Text Transform and Capitalization
Why It Matters
(The Impact)
Lesson 1676Error Message Anatomy
Why it works
An attacker's malicious site cannot read cookies from your domain (thanks to same-origin policy) and therefore cannot forge the custom header.
Lesson 2912Double Submit Cookie Pattern
Why this is harmful
Users with low vision *need* the ability to zoom.
Lesson 388Common Viewport Pitfalls
Why this matters
A page might load perfectly stable (CLS 0), but if a user clicks a button and triggers multiple shifts 3 seconds later, that new session window could produce a poor CLS score.
Lesson 1897CLS Thresholds and Session Windows
Wide adoption
Popular libraries get more security scrutiny
Lesson 1626OAuth Libraries and Security Best Practices
Wide panoramas
become unreadable when shrunk to mobile widths
Lesson 1227Understanding Art Direction in Responsive Images
Wide yellow bars
Expensive JavaScript functions
Lesson 1917Reading Performance Flame Charts
Wider availability
(`Helvetica`, `Arial`)
Lesson 569Fallback Font Stacks
Widget roles
describe interactive components (`button`, `tab`, `slider`)
Lesson 1014ARIA Roles: Defining Element Purpose
Width (`wdth`)
Adjusts horizontal compression or expansion (condensed to extended)
Lesson 1288Variable Font Axes
Width = Duration
Wider bars took longer to execute.
Lesson 1917Reading Performance Flame Charts
Width and height
of each box
Lesson 24Layout and Reflow
Width axis
From condensed to expanded
Lesson 1287Introduction to Variable Fonts
Width determined by content
Inline elements only take up as much width as their content needs.
Lesson 209Inline Elements in Normal Flow
Width or descriptor
The actual pixel width or device pixel ratio (`400w`, `800w`, `2x`)
Lesson 1224Image Source Naming Conventions
Width percentages
reference the parent's width
Lesson 157Percentage Values
Wildcard scopes
like `user:*` for all user-related permissions
Lesson 1619OAuth Scopes and Permissions
With
hardware acceleration, you draw each character on a separate transparent sheet once, then just slide the sheets around—much faster!
Lesson 545Hardware Acceleration and Layer Promotion
With preload
The font request starts immediately, parallel to the CSS—you'll see it near the top of the waterfall, starting early.
Lesson 1299Measuring Preload Impact on Font Loading Performance
Within 60 seconds
All users get that same cached version
Lesson 1796Configuring Revalidation Intervals
Within a single policy
If you accidentally repeat a directive (e.
Lesson 2878CSP Header Precedence Rules
Within sections or articles
each `<article>` or `<section>` can have its own footer with metadata specific to that content (like an author's bio at the end of a blog post)
Lesson 53The <footer> Element
Without preload
The font request starts *after* the CSS is parsed—you'll see a delay between when the page loads and when the font begins downloading.
Lesson 1299Measuring Preload Impact on Font Loading Performance
WOFF
(Web Open Font Format) is WOFF2's older sibling.
Lesson 560Font File Formats: WOFF2, WOFF, TTF, EOT
WOFF2
(Web Open Font Format 2) is the champion for modern web development.
Lesson 560Font File Formats: WOFF2, WOFF, TTF, EOTLesson 571Optimizing Web Font Performance
Word order varies
English might say "5 items," but Japanese puts the number after: "items 5"
Lesson 2530Interpolation and Variable Substitution
Word Spacing
controls the space between whole words.
Lesson 170Letter Spacing and Word Spacing
Work offline
Serve cached responses when the network is unavailable
Lesson 809What is the Cache API and Why It Matters
Workbox
is a powerful library created by Google that abstracts away the complexity of writing service workers from scratch.
Lesson 2404What is Workbox and Why Use It
Works without JavaScript
Basic content displays even if JavaScript fails
Lesson 1718What is Server-Side Rendering (SSR)?
Workspace Settings
are stored inside a specific project folder (in `.
Lesson 1467Workspace Settings vs User Settings
Wrap behavior
Often, pressing Right at the end loops to the start
Lesson 1073Arrow Key Navigation Patterns
Wrapper/Container
Controls maximum width and centers content horizontally.
Lesson 1336The Objects Layer: Layout Primitives and Structure
Wrapping
items naturally (like tags or badges)
Lesson 309Flexbox vs Grid Decision
Wrapping focus
from the last element back to the first (and vice versa with Shift+Tab)
Lesson 1050Focus Trapping in Modal Dialogs
Write simpler base styles
fewer columns, simpler layouts, less CSS to override later
Lesson 380Mobile-First Philosophy
Write your code
however you naturally type it
Lesson 1455Installing and Running Prettier
Writes the file
to your public directory as `sitemap.
Lesson 1871Generating Sitemaps Automatically
Written in plain language
, not legal jargon
Lesson 2981Transparent Data Practices
Wrong handler
Click the function link to see the actual code and verify it's doing what you expect
Lesson 2185Event Listeners Panel

X

X-HTTP-Method-Override
header (or variations like `X-Method-Override`).
Lesson 1496Method Override and Constraints
XHR/Fetch Breakpoints
to catch asynchronous state changes.
Lesson 2267Breakpoint Strategies for Different Scenarios
XHTML (2000)
tried to make HTML stricter and XML-compatible.
Lesson 31HTML Evolution: From HTML 1.0 to HTML5
XML
might be required for enterprise systems or older integrations
Lesson 1475Resource Representation
XML sitemap
, which looks like this:
Lesson 1869What is a Sitemap and Why It Matters
XML sitemap validators
check syntax errors and schema compliance
Lesson 1876Testing and Validating Sitemaps and Robots.txt
XSS attacks
(malicious JavaScript injected into your page can read it).
Lesson 778Security and Same-Origin Policy

Y

Yellow (warn)
is for style preferences or potential improvements that aren't dealbreakers.
Lesson 1430Rules: Errors, Warnings, and Off
Yellow/red bars or gaps
Frame drops and jank
Lesson 2214Frames Per Second (FPS) and Frame Drops
You control the server
configuration
Lesson 1850Canonical URLs vs 301 Redirects
You make a request
You type a website address (URL) into your browser, like ordering from a menu
Lesson 1What is the Internet?
You need element-specific data
that's easier to capture in a closure
Lesson 767Delegation vs Direct Binding
You need flexibility
without breaking existing links
Lesson 1850Canonical URLs vs 301 Redirects
You need quick alignment
Centering items or spacing them evenly in a single direction is often faster with Flexbox.
Lesson 377When to Choose Grid Over Flexbox
Your actual request
(GET, POST, etc.
Lesson 869Debugging CORS Issues
Your browser displays it
Your browser receives these files and assembles them into the visual web page you see, like your food being plated and served
Lesson 1What is the Internet?
Your data array
the items currently in your list
Lesson 2576useTransition for Mounting/Unmounting
Your defense
Implement **cache size limits** and **expiration policies** (as covered in earlier lessons).
Lesson 2422Cache Size Limitations
Your web font
(`CustomFont`)
Lesson 569Fallback Font Stacks
YouTube embeds
Show a thumbnail with a play button instead of loading YouTube's ~500KB+ JavaScript upfront
Lesson 2050Script Loading Facades

Z

Zero dependencies
is a hard requirement
Lesson 2745Choosing the Right Date Library
Zero JavaScript overhead
No library download or parsing
Lesson 2560GSAP vs CSS Animations
Zero non-essential cookies
should exist
Lesson 2974Testing and Auditing Cookie Consent
Zero persistence
The user must log in again after every page refresh or browser restart.
Lesson 1598Memory-Only Token Storage
Zero runtime cost
Processing happens before deployment, not on user requests
Lesson 2006Build-Time Image Optimization Pipeline
Zero Server Computation
No database queries, no template rendering, no server logic per request—just static file retrieval, the fastest operation web servers can perform.
Lesson 1723SSG Performance Characteristics
ZIP archives
When bundling multiple files or including uploaded media
Lesson 2957Right to Access and Data Portability
Zoom controls
and navigation buttons
Lesson 2658Touch-Friendly Interaction Targets