"매 viewport-level 의 conditional CSS". Media Queries 매 device/viewport feature (width, color-scheme, motion preference) 의 의해 stylesheet 의 적용 의 toggle. 매 2026 의 Container Queries 의 등장 의 component-level 의 위임 — MQ 매 page-level (theme, layout shift, accessibility) 의 책임 만 유지.
매 핵심
매 query type
width/height: viewport 의 dimension (min-width, max-width).
orientation: portrait / landscape.
resolution: min-resolution: 2dppx (retina).
user preference: prefers-color-scheme, prefers-reduced-motion, prefers-contrast.
interaction: hover, pointer: fine|coarse.
매 modern syntax (Level 4+)
Range syntax: (width >= 768px) (vs legacy min-width: 768px).
Logical: and, or, not.
Nested 의 native CSS nesting 의 결합.
매 응용
Theme toggle — prefers-color-scheme: dark.
Accessibility — prefers-reduced-motion: reduce.
Page-level breakpoint — header, sidebar 의 layout shift.
💻 패턴
Mobile-first breakpoints (range syntax)
/* base = mobile */.container{padding:1rem;}@media(width>=640px){.container{padding:1.5rem;max-width:640px;margin-inline:auto;}}@media(width>=1024px){.container{max-width:1024px;padding:2rem;}}@media(width>=1440px){.container{max-width:1280px;}}
.card{transform:scale(1);transition:transform200ms;}@media(hover:hover)and(pointer:fine){.card:hover{transform:scale(1.03);}}/* 매 touch device 매 hover state 의 stuck 회피 */
High-DPI / retina assets
.logo{background-image:url('/logo.png');}@media(min-resolution:2dppx){.logo{background-image:url('/logo@2x.png');background-size:contain;}}/* 또는 image-set() 의 modern alternative */.logo{background-image:image-set(url('/logo.png')1x,url('/logo@2x.png')2x,url('/logo.avif')type('image/avif')2x);}
언제: page-level breakpoint, theme switching, a11y compliance, retina asset switching.
언제 X: component-internal reflow — Container Query 의 사용. 매 MQ 의 component coupling 의 anti-pattern.
❌ 안티패턴
Component sizing 의 MQ 사용: viewport 의 의존 — Container Query 로 마이그레이션.
Desktop-first: max-width cascade 의 복잡 — mobile-first 의 추천.
prefers-reduced-motion 의 무시: WCAG 2.1 위반.
Hover 의 모든 device: touch 의 stuck hover state.
legacy min-width/max-width 의 mix: range syntax >=/<= 의 통일.