"매 widely available API 의 timeline". 매 Chrome / Edge / Firefox / Safari 의 30 개월 이상 매 support 된 feature. 매 polyfill 의 drop 의 signal. 매 modern web 의 deployment confidence 의 source.
📖 핵심
매 정의
Baseline: 매 Chrome, Edge, Firefox, Safari 의 모든 매 stable channel.
Newly available: 매 모든 4 의 latest support.
Widely available: 매 30+ 개월 의 stable.
매 source
Web Platform DX Community Group.
Google / Mozilla / Microsoft / Apple 의 collaboration.
web.dev/baseline.
caniuse.com 의 alternative.
매 적용
Confidence to ship: 매 polyfill 의 drop.
Documentation: 매 MDN 의 badge.
Linter: 매 ESLint plugin.
Bundler: 매 transpile target.
Code review: 매 feature 의 risk check.
매 timeline (2025-2027 selected)
Year
Newly Available
2025
Container Queries, CompressionStream, MathML
2025 Sep
resource size / server timing API
2026 Jul
AVIF image format
2027 Apr
fetchpriority attribute
→ 매 specific 의 baseline website 의 verify.
매 modern features (Baseline)
CSS: 매 Container Queries, 매 :has(), 매 nesting, 매 subgrid, 매 cascade layers.
JS: 매 top-level await, 매 dynamic import, 매 Array.at(), 매 Object.hasOwn().
DOM: 매 popover API, 매 dialog element.
Image: 매 AVIF, 매 lazy loading.
Performance: 매 fetch priority, 매 resource hint.
매 vs polyfill
Polyfill: 매 cost (JS payload).
Baseline: 매 native, 매 fast.
Trade-off: 매 user 의 device 의 다양성.
매 progressive enhancement
매 baseline 의 기준.
매 newer feature 의 enhancement.
매 older 의 graceful fallback.
매 ESLint integration
eslint-plugin-compat: 매 unsupported feature 의 warn.
@eslint/baseline-plugin: 매 newly-available 의 warn.
// .eslintrc.cjs
module.exports={plugins:['compat'],rules:{'compat/compat':'error',},settings:{browsers:['baseline'],// 매 widely available 만
},};
Browserslist (bundler target)
# .browserslistrc
> 0.5%
last 2 versions
not dead
# 매 baseline-aligned
Progressive enhancement (CSS)
/* 매 fallback */.card{width:100%;}/* 매 baseline (Container Queries) */@container(min-width:600px){.card{width:50%;}}/* 매 newly-available */@supports(selector(:has(*))){.card:has(.featured){background:gold;}}
Feature detection
// 매 Object.hasOwn (baseline 2025)
if(typeofObject.hasOwn==='function'){Object.hasOwn(obj,'key');}else{Object.prototype.hasOwnProperty.call(obj,'key');}// 매 popover API
if(HTMLElement.prototype.hasOwnProperty('popover')){el.popover='auto';}else{// 매 fallback dialog
}
web-features API integration
import{features,browsers}from'web-features';functionisBaselineWidely(featureId){constf=features[featureId];if(!f)returnfalse;returnf.status.baseline==='high';}// 매 build script 의 audit
constused=['container-queries','has-pseudo','view-transitions'];for(constfofused){if(!isBaselineWidely(f)){console.warn(`${f} is not widely available — needs polyfill or fallback`);}}
MDN Baseline badge (markdown)
# Container Queries
[Baseline: widely available since 2025-02-14]
CSS Container Queries allow elements to respond to their container's size...