web-features-summary
Web Features Summary (Baseline 2023-2026)
This skill summarizes web platform features that achieved Baseline status (available in all major browsers: Chrome, Firefox, Safari) between January 2023 and early 2026. Use this to ensure recommended APIs are widely available without polyfills.
High-Impact Modern Features (Quick Reference)
JavaScript & Web APIs
- Array & Collections:
toSorted(),toReversed(),toSpliced(),with()(Immutable array updates)Object.groupBy(),Map.groupBy()(Data grouping)Setmethods:intersection(),union(),difference(),symmetricDifference()
- Async & Control Flow:
Promise.withResolvers()(External promise resolution)Promise.try()(Wrap sync/async functions in a Promise)AbortSignal.any()(Combine multiple abort signals)Array.fromAsync()(Consume async iterables)
- Utilities:
URL.canParse()(Safe URL validation)Intl.Segmenter(Locale-sensitive text segmentation)Intl.DurationFormat(Duration string formatting)RegExp.escape()(Escape special characters in regex strings)Uint8Arraymethods:toBase64(),fromBase64(),toHex(),fromHex()Iteratorhelpers:map(),filter(),reduce(),toArray()(on iterators)
CSS
- Layout & Scoping:
- Subgrid: (
grid-template-columns: subgrid) Align nested grids to parent tracks. - Container Queries: (
@container) Style based on parent size, not viewport. - @scope: (
@scope (.card) to (.content)) True style scoping without BEM/Modules. - Nesting: Native CSS nesting (similar to Sass).
- Subgrid: (
- Colors & Theming:
light-dark(): native light/dark mode color switching.color-mix(): Mix colors in any space (e.g.,color-mix(in srgb, red, blue)).Relative colors: Derive colors from others (rgb(from var(--bg) r g b / 50%)).
- Typography & Math:
text-wrap: balance(Titles) &text-wrap: pretty(Body text).- Math functions:
pow(),sqrt(),hypot(),log(),exp(),round(),mod(),rem(),abs(),sign().
- UI & Interaction:
scrollbar-color/scrollbar-width(Standardized scrollbar styling).@starting-style(Entry animations fordisplay: noneelements).view-transitions(Native page/element transitions) &active-view-transition.::details-content(Style the inner content of<details>independently).
HTML & DOM
- Interactivity:
popoverAPI (Native overlays/tooltips without z-index wars).<dialog>element (now withrequestClose()for safe closing).inertattribute (Disable interaction for parts of the DOM).
- Semantics & Loading:
<search>element (Semantic wrapper for search forms).<link rel="modulepreload">(Preload ES modules).fetchpriority(Hint resource priority to browser).
Chrome-Supported Modern Features (Limited Availability)
These features are usable in modern Chrome/Edge (Chromium) but lack full cross-browser support. Use with caution and always provide fallbacks.
CSS & UI
- Anchor Positioning: (
position-anchor,anchor())- Status: Chrome 125+. No Firefox/Safari support.
- Use Case: Tying tooltips/menus to trigger elements without JS.
- Interop: Requires polyfill or JS fallback (e.g., Floating UI) for other browsers.
- Scroll-Driven Animations: (
animation-timeline: scroll())- Status: Chrome 115+. No stable Firefox/Safari.
- Use Case: Parallax effects, reading progress bars linked to scroll position.
- Interop: Graceful degradation (animation just doesn't play).
- @scope:
- Status: Chrome 118+, Safari 17.4+. Firefox pending.
- Use Case: True component-level styling isolation.
- Interop: Use BEM/Modules as fallback for Firefox.
- Container Style Queries: (
@container style(...))- Status: Chrome 111+. No Firefox/Safari.
- Use Case: Styling children based on parent's computed values (e.g., color).
- Interop: Highly experimental.
Web Capabilities (Fugu)
- File System Access API: (
window.showOpenFilePicker())- Status: Chrome 86+, Safari (Origin Private FS only). Firefox (Origin Private FS only).
- Use Case: Reading/Writing local user files directly.
- Interop: Progressive enhancement only.
- View Transitions (Cross-Document):
(
@view-transition { navigation: auto; })- Status: Chrome 126+. Safari 18+. Firefox pending.
- Use Case: Morphing animations between multi-page navigations.
- Interop: Graceful degradation (instant navigation).
- Web Hardware APIs: Chrome-only. Firefox/Safari unlikely to implement.
Modern Best Practices & Discarded Idioms
Adopt These Idioms
- Immutable Arrays: Use
toSorted(),toSpliced(), andwith()instead of mutation. - Native Grouping: Use
Object.groupBy()instead ofreduce()patterns. - Parent Selectors: Use
:has()instead of JS-based class toggling for parent state. - Component-First Responsive: Use
@containerinstead of@mediafor internal component layout. - Native Overlays: Use
<dialog>andpopoverinstead of custom modal/tooltip logic. - Native Nesting: Use CSS nesting directly; reduce reliance on preprocessors for basic nesting.
Discard These Patterns
- Mutation-in-place: Stop using
sort()orreverse()on original arrays when state management is involved. - Viewport-Only Design: Stop assuming component layout is tied strictly to screen size.
- JS-Heavy UI: Stop using JavaScript for focus trapping, z-index management,
and simple "click-outside" logic that
<dialog>andpopoverhandle natively.
Procedural Guidance
Verify Feature Availability
- Check the feature name against the list in
references/baseline_2023_2026.md. - Check
references/modern_idioms.mdfor recommended coding patterns. - Verify the "Baseline Status" and date.
Additional Resources
Reference Files
references/baseline_2023_2026.md- Comprehensive list of 100+ web features reaching Baseline status.references/modern_idioms.md- Detailed comparison of legacy vs. modern coding patterns.
Maintenance
MAINTENANCE.md- Instructions for updating this skill with the latest web-features data.
Source Data
Information derived from the web-features project.
More from chen-ye/cye-agent-skills
app-audit
Analyzes installed Termux packages and Android apps to identify redundancies, categorize usage, and suggest cleanups. Use when the user asks to audit apps, check for bloatware, or analyze installed software.
3gemini extension authoring
This skill should be used when the user asks to "create a gemini extension", "author a gemini extension", "package a gemini hook", "publish a gemini extension", or asks about "extension structure", "gemini-extension.json", or "hooks.json".
3