Modern Web Guidance guides

Published: October 26, 2026

Explore the guides available in Modern Web Guidance organized by category.

Visual Design

Adapt scrollbar to high-contrast preferences
Enhance scrollbar visibility for users who prefer high-contrast interfaces
Apply WebGL shaders to HTML content
Apply custom visual effects with WebGL shaders to HTML content.
Color
Color guidance for the web, including contrast requirements, light and dark color schemes, Forced Colors Mode, and generating tints and shades from a base color.
Complex Shapes
Clip elements and their content to any free-form shape, like a symbol, brush stroke, or organic texture for more expressive designs.
Custom text decorations
Add text decorations such as underlines, overlines, strikethroughs, or entirely custom shapes, with reveal animations, custom offsets and end insets, and flexible ink skipping.
Customize the color or thickness of a scrollbar
Customize the color or thickness of a scrollbar
Dark mode
Implement dark mode support in a way that respects the user's light/dark theme preference and adapts browser UI (e.g. scrollbars, form controls, etc)
Enable interactive HTML content in 3D scenes
Integrate interactive HTML elements into a 3D scene.
Ensure text readability with dynamic background colors
Select a readable text color with sufficient contrast on a dynamic background color.
Equal-Width Text Lines
Make every line of a multi-line heading or lockup span the same width, as in poster-style or stacked-headline typography. Unlike justified text, the text itself is sized to the width rather than the spacing stretched
Export HTML content from canvas
Capture and export dynamic HTML content as images or video frames from within canvas.
Expose canvas content to browser features
Expose content rendered in a canvas to browser features like assistive technologies, translation, or reading mode.
Improve Text Layout and Legibility
Improve the layout and legibility of short standalone text content, such as headings no longer than a few lines, by enabling the browser to apply evenly balanced line breaks when wrapping text.
Precise Text Alignment
Achieve precise vertical alignment with text of any font. For example, exactly equal visual padding above and below text, or aligning text perfectly flush with adjacent icons or images.
Shaped Cutouts
Combine multiple shapes to create complex cutouts or 'knockout' effects in elements, such as adding a notch to an element.
Soft Edge Content Fade
Apply a transparency gradient to content edges to indicate further scrollable areas or to obscure payment-walled text.
Theming browser-generated UI
Theme browser-generated UI such as text selection, scrollbars, form controls, and pickers with CSS instead of re-creating it with custom elements.
Typography
Typography best practices for the web, including font sizing units, line height, text wrapping and balancing, and fluid type that scales with the viewport.
Visual effects
Visual effects with CSS such as layered shadows, blend modes, gradients with predictable color interpolation, and patterns like stripes, checkerboards, dots, and pie charts built from gradients alone.
Visually Stable Font Fallbacks
Define font styles such that text remains readable and visually consistent in the event that there's a swap between the preferred font and one of the fallbacks (or vice versa).
Visually Stable Mixed Fonts
Define font styles such that text remains readable and visually consistent in situations where multiple fonts are used to render a single block of text.
Visually Texture Content
Apply realistic weathering and texture patterns to elements to give them an organic, aged, or physical material appearance.

UI Atoms

Build a Scroll Progress Indicator
Create a scroll progress bar, stepped progress tracker, or any visual affordance that communicates how far through a page or section the user has scrolled.
Build Carousel Slide Effects
Create a carousel of slides with images or other visual elements, where each slide animates as they enter/center/exit their scroller. For example, the slides may fade-in/fade-out, rotate, get bigger or smaller, etc.
Component-specific light/dark themes
Force certain elements to be in light mode or dark mode (e.g. code blocks, media players, etc) independently of the page's color-scheme.
Position Aware Tooltips
Build tooltips and popovers with directional arrows (or other visual styling) that automatically point the correct way when the element flips to a fallback position.
Pull to Reveal
Build a pull-to-reveal feature that would enable the user to pull down on the screen to reveal more content, like a search bar.
Responsive tables
Build a data table that presents tabular data with proper header semantics, and remains readable and navigable on small screens and with assistive technologies.
Scroll Position Aware Elements
Build floating buttons or widgets (back-to-top, scroll-to-bottom, chat launchers, etc.) that appear and disappear based on whether the user has scrolled at all.
Scrollability Affordance Hints
Build scroll-shadow overlays, gradient fades, or directional arrow indicators that appear only when there's actually more content to scroll to in that direction.
Shrinking header on scroll
Smoothly animate a fixed header or full-page cover on scroll to dynamically shrink, gain shadows, and transform its layout over a predefined scroll distance.
State-Aware Sticky Headers
Build sticky section headers or navbars that visually transform when they're actually "stuck" at the top, changing their color scheme or gaining a shadow.
Using and managing icons
Display and manage icons that can be set and parameterized from CSS, are fast to load, crisp at any resolution and are properly exposed to (or hidden from) assistive technologies.
Viewport-Aware Dropdowns
Position dropdowns, flyouts, or contextual action panels tethered to a trigger button so they automatically flip axes at viewport edges instead of getting clipped.

UI Components

Build a Card
Build a card component that adapts its presentation to its own available space and contents.
Build a dropdown menu
Build a menu component that displays a list of options or actions, with support for nested submenus.
Build a Scrollspy Navigation
Highlight the currently visible section of a page in a navigation menu
Build a Styled Progress Bar
Build a styled progress bar that communicates completion of a task or process, in both determinate and indeterminate states.
Build an interactive hovercard
Build a hovercard component that displays an interactive structured preview of the page a certain type of link (e.g. a user profile) will navigate to when hovered over.
Creating Persistent App Tours
Create persistent onboarding walkthroughs using tethered native overlays that stay open during user interaction.
Creating Toast Notifications
Create non-intrusive toast and overlay notifications for persistent, stackable messaging and state communication.
Dark mode toggles
Build a dark mode toggle component that allows users to override their system color scheme preference for the current site.
Dialog
Build a modal or non-modal dialog component that is accessible, manages focus appropriately, and can be dismissed the way users expect on each platform.
Loading spinner
Build a loading spinner that communicates busy state to all users, respects reduced-motion preferences, and animates efficiently.
Navigation Drawer
Create a navigation drawer component that, when triggered from a menu button, slides in from the side overlaid on top of existing page content, and slides out when dismissed (by swiping away, tapping outside, or pressing escape).
Progress ring
Build a progress ring component that visually represents the completion status of a task or process, with support for content in the center and brand-consistent styling.
Stack Drill Down
Build full-screen hierarchical navigation that lets users drill down into nested views and swipe or navigate back to return, with browser history kept in sync.
Styling Checkboxes
Style checkboxes, including custom icons, layout, colors, check/uncheck animations, while preserving native functionality and accessibility.

UI Behaviors

Add entry and exit effects to elements as they enter or exit the scrollport
Create fade-in, scale-up, or other complex reveal-type effects on elements as they enter and exit the scrollport (or viewport) while the user is scrolling.
Anchor Positioning Tab Underline
Transition an element seamlessly between two target element positions. For example, moving a selected tab underline between the previously selected tab and the currently selected tab.
Animate Element Entry and Exit
Smoothly hide/show elements as they are added/removed from the DOM or as their display values are toggled.
Animate Elements To and From Top Layer
Animate elements such as dialogs, popovers, and tooltips as they're entering/exiting the top layer.
Build a Draggable Element
Support dragging to move a floating element around the page.
Build a Parallax Effect on Scroll
Create scroll-based effects (such as parallax) where foreground and background layers move at different rates, creating a sense of depth as the user scrolls.
Carousel Snap Highlights
Visually highlight the currently snapped non-interactive item in scroll-snapping carousels, galleries, or full-page swipe experiences. For example, expanding a card when snapped, or revealing hidden content.
Consistent Cross-Document Transitions
Ensure critical page state is loaded and stable before initiating a cross-document view transition. This means critical CSS styles are loaded and applied, critical JavaScript is loaded and run, and the HTML visible for the user's initial view of the page has been parsed before the transition runs.
Creating a stagger animation
Stagger animation or transition timing across sibling elements so each one starts after a computed delay based on its position in the sibling list.
Cross-Document Transitions
Create smooth, seamless transitions between full page navigations, such as cross-fades, custom reveal effects, or morphing of content from one page to the next.
Custom Button Actions
Declaratively connect a button to any element to trigger custom, application-specific actions using declarative button commands, invoker commands, button commands, custom commands, or declarative toggle actions.
Declarative Dialog and Popover Control
Toggle the visibility of a dialog or popover from a button without writing JavaScript.
Directional Navigation Transitions
Animate visual state changes to reflect the direction of a user's navigational flow, such as sliding new content in from the right when advancing forward or from the left when returning to a previous screen.
Group Element Transitions
Transition a group of similar elements simultaneously using the same transition logic, such as removing a product from a shopping cart and having all the other products animate into their new positions.
Highlight Text Ranges
Highlight arbitrary text ranges on a page such as search results, spelling errors, or collaborative editing cursors.
Interactive Content Reveal
Create interactive reveal effects, such as a spotlight that follows the user's pointer to uncover details within an image or UI section.
Interest Triggered Action Previews
Show a live preview of a button's effect when a user signals interest (e.g. hovering, focusing, or long-pressing) but before they commit to clicking.
Light-Dismiss a Dialog
Create a modal dialog that can be closed via light dismiss (i.e. clicking or tapping outside of the dialog)
Motion
Animate UI with CSS transitions, animations, scroll-driven animations, and view transitions while keeping motion on the compositor and respecting reduced-motion preferences.
Move DOM Element Without Losing State
Move or reparent a DOM element without losing important element state, such as interactivity states (:focus/:active), <iframe> loading state, animation/transition state, etc
Persistent Top Layer UI
Keep a modal dialog, fullscreen element, or native popover visibly open and functionally active when its underlying DOM node is moved or reparented in the DOM.
Physics Based Easing
Create custom, physics-based animation and transition effects, like bounce and spring, that feel more natural and engaging than traditional easing curves.
Platform Controls Dismiss Dialog
Create a modal dialog that can be closed via standard platform-specific user actions, such as pressing the Esc key on desktop platforms, or a "back" or "dismiss" gesture on mobile platforms
Prevent the Page Underneath a Modal Dialog from Scrolling
Prevent the underlying page from scrolling while a modal dialog is open.
Same Document Transitions
Visually connect persisting elements across different page states or navigations in a Single Page Application (SPA) (e.g. expanding a product thumbnail into a full-bleed hero image) by smoothly morphing their size, position, or other styling properties.
Scoped Component Transitions
Animate state changes inside a single component (a card, list, panel, or other subtree) while the rest of the page remains interactive, and other transitions run concurrently.
Scroll Snap Real-Time Feedback
Provide real-time visual feedback in linked UI elements while a user scrolls through snap-aligned content, before the scroll gesture completes.
Scroll Snap State Sync
Synchronize navigation indicators, linked content panels, and analytics tracking with the actively snapped item in a scrollable container.
Scrollytelling
Animate visual properties on a target element — such as fading a backdrop, shifting a background color, or to create scrollytelling experiences — driven entirely by the scrollport position of a completely different element.
Search hidden content
Hide content from view using patterns such as accordions, tabs, and "Read more" sections, while ensuring the hidden text reveals itself during native "Find in page" searches, allows search engine indexing, supports URL fragment deep links, and maintains ARIA accessibility.
Set a scroll target for the initial render
Build a scrollable list of elements (e.g. a carousel of images or a chat conversation thread) that can be displayed with a particular element scrolled into view on the initial render.
Show a tooltip when hovering
Show a tooltip or supplemental information when a user hovers over, focuses on, or long-presses an interactive element, without requiring a click.
Spatial Navigation (Directional Keypad Focus)
Implement accessible spatial navigation using arrow keys that works correctly in different layout modes (grid etc)
Swipe to remove
Let users act on items in a list (remove, archive, mark as read, etc.) with a horizontal swipe gesture, so they can process entries quickly without tapping a separate control.
Swipe to reveal
Let users swipe horizontally on a list item or content pane to reveal contextual action buttons or a side menu without automatically triggering an action.
Triggering Effects After Programmatic Scrolling Completes
Trigger visual effects, animations, or focus changes on a target element only after a smooth programmatic scroll to that element has finished.
Two-Dimensional Panning
Allow users to freely pan or scroll two-dimensional surfaces—such as maps, zoomed images, infinite canvases, or large data grids—across both directions (whether diagonally or changing direction mid-gesture) without the gesture locking to a single horizontal or vertical axis.

Forms

Animated Select Picker
Create a custom select component whose dropdown is animated. For example, the menu fades or slides into view, or the options animate upon selection.
Brand-Consistent Forms
Match checkboxes, radio buttons, range sliders, and progress bars to your site's color palette without replacing them with custom components.
Brand-Consistent Range Slider
Style a native range slider with custom track, thumb, fill, and focus states while preserving native functionality and accessibility.
Branded Select Styling
Create custom select elements whose button, picker, arrow icon, and checkmark all seamlessly match your brand or design system's typography, colors, spacing, and border treatments.
Build a payment form that follows best practice
Build a payment form that collects card details with correct autocomplete values and autofill support.
Build a sign-in form that follows best practice
Build a sign-in form with correct autocomplete values and autofill support.
Build a sign-up form that follows best practice
Build a sign-up form with correct autocomplete values and autofill support.
Build Accessible Switch Controls
Build an accessible switch with the native HTML switch attribute, falling back to a styled checkbox when not supported.
Build an address form that follows best practice
Build an address form with correct autocomplete attributes and autofill support.
Custom Select Picker Layouts
Create custom select pickers whose options are positioned in unique or interesting ways, rather than the traditional stacked list of options.
Form Fields Automatically Fit Contents
Allow form fields to grow and shrink to fit the user input, e.g. as the user types or selects a different option. Apply maximum and minimum size limits to create dynamic and responsive form fields that conform with the page design.
Forms
Best practices for building accessible, secure, and user-friendly web forms. Use this guide when creating or modifying forms, inputs, and submission flows.
Highlight browser-autofilled fields the user hasn't edited with CSS :autofill
Use CSS to highlight form fields that have been autofilled by the browser and not edited by the user.
IME-safe enter-to-submit
Implement Enter-to-submit in textareas and single-line inputs (chat, search, inline rename) safely for IME (Input Method Editor) users to prevent submitting incomplete text.
Required Field Feedback
Provide error message for required form fields that were skipped or left empty only after user interaction, to avoid preemptive errors and ensure feedback is timely and contextually relevant to the user's flow.
Rich Media Picker (Customizable Select)
Create a custom select component whose options can contain complex HTML formatting (e.g. images, icons, and other rich formatting) rather than just plain text.
Select Menu Interaction
Validate that a non-default option has been chosen in a select menu only after the user has interacted with the control.
SMS OTP form verification
Verify user phone numbers and one-time passcodes delivered over SMS with automatic code extraction and accessible form input.
Validate Input After Interaction
Show form field validation feedback (e.g. password complexity or email format requirements) only after the user has finished their initial interaction, avoiding premature errors on page load or while the user is typing.

HTML

Accessible Web Components
Make custom elements accessible by default, setting roles and ARIA state via the ElementInternals ARIA mixin, managing focus with delegatesFocus, and keeping ARIA relationships within a single shadow root.
Custom Elements
Define, register, and manage the lifecycle of autonomous custom elements, covering constructor rules, lifecycle callbacks, upgrade timing, attribute/property reflection, and naming conventions.
Form-Associated Custom Elements
Make a custom control participate natively in forms with formAssociated and ElementInternals, submitting its own value, integrating with constraint validation, and reacting to reset, disable, and state-restore.
HTML
Action-oriented guidelines for modern HTML architecture, semantics, native interactive APIs (Dialog, Popover, Details), focus management, and resource prioritization. Use this guide when structuring web documents, implementing native overlays, or optimizing resource loading order.
Pre-rendering custom elements
Server-render a custom element, then hydrate it in place without re-rendering or a flash of unstyled content.
Shadow DOM, Templates & Slots
Encapsulate a component's DOM and styles with Shadow DOM, construct the tree efficiently with HTML templates, and project consumer content with slots.
Styling Web Components
Style across the shadow boundary with :host selectors, inherited and custom properties for theming, ::slotted and ::part, and cascade layers and container queries inside components.
Web Components Orientation
Orientation and cross-cutting principles for authoring and using Web Components, covering Custom Elements, Shadow DOM, templates and slots, Declarative Shadow DOM, styling across the shadow boundary, Form-Associated Custom Elements, and accessibility requirements. Use this guide when building reusable UI components, design systems, or server-rendered custom elements.

CSS

Animate to Intrinsic Sizes
Smoothly animate interactive components (like accordions, menus, and expanding cards) to and from their natural dimensions.
Calculate With Intrinsic Sizes
Calculate the size of an element based on its intrinsic size, while ensuring it fits within given design constraints.
Child State Based Styling
Build a component that changes its styling based on the state of one of its child elements. For example, a component that renders in light or dark mode based on whether a theme toggle is checked (or not).
Conditionally Apply CSS Based on At-Rule Support
Conditionally apply certain CSS rules or declarations only if a certain at-rule is supported by the browser.
Content Based Styling
Build a component that changes its layout based on whether it contains specific child elements (or not). For example, if the component contains an image, use a multi-column layout, otherwise default to a single-column layout.
CSS Layouts and Responsive Design
Modern CSS layouts such as flexbox, grid, subgrid, container queries, anchor positioning, and intrinsic sizing. Use this skill when architecting responsive UI components or page layouts.
CSS: Modern Architecture
Action-oriented guidelines for modern CSS architecture, including the cascade, selectors, scoping, nesting, and design tokens. Use this guide when authoring styles or managing design systems.
Design Token Reactivity
Define higher-order design tokens, like density modes (compact, comfortable, spacious) or themes and have descendant components react to changes directly and in component-appropriate ways.
Fluid Scaling
Scale items like font size, spacing, and media sizes smoothly based on the parent container's size rather than using fixed breakpoints
Individual Transform Properties
Animate or override individual CSS transform properties (e.g. translate, rotate, scale) independently of other transform properties on a single element.
Overflow Clipping Control
Adjust the visible clipping boundary of an element to align with the content edge, padding edge, or border edge—or a specified offset from any of these—offering finer-grained control over how content is clipped.
Reduce Style Repetition with CSS Functions
Reduce excessive style repetition by encapsulating complex or dynamic styling logic into reusable functions (such as a function that computes a gradient based on a set of input parameters).
Responsive design
Build UI that adapts to container and viewport size, including container queries, dynamic viewport units, aspect ratios, and responsive typography.
Selector & @-rule Combinations
Target elements based on the intersection or union of selectors and conditional @-rules while minimizing repetition.
Semantic Component Adaptation
Build components that adapt visual logic based on semantic context using CSS container style queries.
Size Aware Styling
Build a component whose styles can be conditionally dependent on its own width or height, rather than the width or height of the viewport. For example a card component that can change its layouts depending on how large it is, or a call-to-action button that can conditionally display helper text based on its width.
Style Parent with :has()
Style parent elements of a form field (e.g. labels or fieldsets) when the field is invalid.
Styling siblings based on count and index
Create dynamic visual spectrums or layout arrangements that automatically adapt to the number of elements in a group.

JavaScript

WebAssembly

Performance

Break Up Long Tasks
Break up heavy synchronous processing (complex computations and/or long loops) or DOM updates, to let the browser handle user input and repaint the screen.
Calculate total foreground time
Calculate the total time a user actually spent viewing a page, excluding periods when the tab was in the background.
Conditional Async Dependencies
Conditionally load or initialize async dependencies (such as importing polyfills for missing web features) without requiring complex orchestration across all of a page's script dependencies.
Debounce and batch multiple analytics events
Debounce and batch multiple analytics, telemetry, and Core Web Vitals events together in a single beacon to minimize network contention and reduce server load, while still delivering real-time updates.
Defer rendering heavy content
Reduce rendering times in content-heavy web pages (e.g. pages with long feeds, lots of articles, or complex dashboards), by deferring rendering for any content that is not immediately visible to the user.
Defer Work Until Scroll Ends
Defer expensive operations like DOM updates, data fetching, analytics tracking, or layout recalculation until after scrolling completes to maintain smooth scroll performance.
Deliver Optimized Decorative Images
Deliver optimized decorative images (such as backgrounds, UI icons, or complex masks) by simultaneously providing next-generation image formats (like AVIF or WebP) alongside multiple pixel densities (like 1x and 2x) so the browser can dynamically negotiate the best combination of file size and visual quality for the user's device capabilities.
Deprioritize background fetches
Deprioritize background data fetches made with the Fetch API to prevent network contention with user-initiated requests.
Detect Initial Visibility State
Reliably determine whether a page was initially loaded in the background, even in cases where the script is loaded asynchronously after the user foregrounded the page.
Efficient Background Processing
Conserve system resources and battery life by pausing background JavaScript execution (such as <canvas> animations, WebGL rendering, or high-frequency WebSocket data polling) when the component is off-screen and then resume them just-in-time when they scroll back into view.
Faster SPA View Transitions via State Caching
Enable faster transitions back to previously visited views in a Single-Page Application (SPA) by preserving their structural DOM state instead of destroying and rebuilding them on every navigation.
Flicker-Free Client-Side A/B Testing
Deliver and render A/B tests, multi-variate tests, or other experiments using client-side JavaScript to alter or inject HTML, CSS, and JavaScript without the original content showing first before flickering or flashing to show the experiment content.
Identify causes of poor INP
Identify slow-running JavaScript and other causes of poor Interaction to Next Paint (INP) responsiveness.
Identify heavy-running JavaScript
Identify the scripts most responsible for long animation frames
Improve next page load performance
Improve page load performance by prefetching or prerendering pages that the user is likely to visit next.
Lazy load video and audio
Defer downloading offscreen video and audio assets, including video poster images and preloaded media data, until the media player approaches the viewport to conserve bandwidth and reduce network contention during initial page load.
Measure interaction and soft-navigation paint timing
Measure the time it takes for user interactions and client-side navigations to render new contentful updates on screen.
Optimize image priority
Optimize the loading priority of Largest Contentful Paint (LCP) candidate images and deprioritize non-critical images to reduce critical resource load delays.
Optimize preload priority
Optimize the relative priority of preloaded content to reduce critical resource load delays.
Optimize script priority
Optimize the loading priority of scripts by boosting critical asynchronous scripts and deprioritizing non-essential or late-body scripts to improve sequencing and reduce delays.
Optimizing Interactions in Complex Layouts
Make interactions snappier and more responsive (reducing Interaction to Next Paint (INP) scores) by avoiding layout re-calculations in complex layouts, such as data-heavy dashboards or spreadsheet-style grids.
Out-of-Order (OOO) HTML Streaming
Declaratively update a page with content streamed later into the same HTML document or via imperative JavaScript APIs.
Performance
Actionable guidelines for optimizing modern web applications. Use this guide when auditing performance, optimizing loading metrics, fixing slow interactions and optimizing Core Web Vitals (LCP, INP, CLS)
Reliably measure full-session analytics and telemetry
Reliably track analytics, Core Web Vitals, errors, and telemetry data across the user's entire page visit, and defer sending of the data until the user leaves the page.
Resolution Optimized Pseudo Elements
Use resolution-optimized images in CSS pseudo-elements (such as ::before and ::after) to reduce the number of DOM nodes.
Schedule Tasks By Priority
Schedule tasks with different priorities to ensure critical work runs first while background work is deferred.

Accessibility

Security

Compare and validate web origins and sites
Compare and validate web origins and sites safely across cross-document messages and URLs without error-prone string parsing.
Encrypt data client-side with WebCrypto
Establish shared secrets using public-key encapsulation or key agreement—including hybrid and post-quantum protection—and encrypt sensitive data in the browser with authenticated encryption.
Local Network Access
Access resources on a user's local network or loopback interface from a public web application.
Passkey Authentication
Authenticate a returning user with a passkey for primary sign-in.
Passkey Conditional Create (Post-Login Promotion)
Silently register a passkey for an existing user after a successful password login.
Passkey Management
Let users view and manage the passkeys registered to their account.
Passkey Reauthentication
Verify a signed-in user's identity using their existing passkeys before a sensitive action.
Passkey Registration
Register a passkey for an existing user account.
Passkeys Orientation
Comprehensive orientation and cross-cutting principles for implementing WebAuthn and Passkeys in web applications. Use this guide when handling passkey registration, authentication, management, or reauthentication.
Prevent DOM-based XSS attacks with Trusted Types
Prevent DOM-based XSS attacks by defining a Trusted Types policy to sanitize untrusted HTML, using the policy when writing to DOM sinks like innerHTML, and enforcing Trusted Types via Content Security Policy.
Quick sign-ins with immediate UI mode
Authenticate returning users in place with their saved passkeys or passwords before navigating to a sign-in page or interrupting their workflow.
Restrict outbound network connections with Connection Allowlists
Restrict a page or worker to communicating only with an explicit allowlist of network endpoints to prevent unauthorized third-party requests and client-side data exfiltration.
Sanitizing Untrusted HTML
Safely parse and display untrusted HTML content from user input by removing unsafe elements and attributes.
Secure external subresources with Subresource Integrity, CORS, and Referrer Policy
Verify the cryptographic integrity of external scripts, stylesheets, fonts, and images loaded from third-party origins, and control whether those requests send credentials or referrer URLs.
Sign and verify data with WebCrypto
Sign and verify messages, tokens, or artifacts in the browser using classical or quantum-resistant (post-quantum) asymmetric keys to ensure data integrity and authenticity.
Verify email address ownership
Verify that a user owns an email address during account creation, sign-in, or recovery without sending a one-time passcode or magic link email.
Web Security
Preventative security guidelines for web developers (XSS, CSP, Cookies, Cross-Origin Isolation). Use this skill to guide the process of auditing, testing, and deploying security policies safely.

Privacy

PWA

Built-in AI

WebMCP