15P by neo 2일전 | ★ favorite | 댓글 2개
  • 올 한 해 새로 추가되었거나 지원이 확대된 CSS/HTML 기능을 실전 관점에서 정리한 목록으로, UI 전환·폼·타이포그래피·함수형 CSS까지 폭넓게 다룸
  • auto 등 키워드로의 사이즈 전환, HTML popover/invoker, CSS @function·if() 같은 신기능이 핵심이며, 다수는 크롬 우선 지원이므로 점진적 향상 전략이 필요
  • field-sizing 자동 확장 입력, 커스텀 Select, text-wrap: balance/pretty, linear() 이징, shape() 경로 등은 시각·사용성 품질을 손쉽게 올려줌
  • 강화된 attr(), 읽기 순서 제어 reading-flow, calc-size() 같은 값·흐름 제어 도구가 늘어 CSS만으로 처리 가능한 설계 범위가 확대됨
  • 아직 표준화·지원이 진행 중인 Masonry, random(), margin-trim, View Transitions 확장 등을 주시하되, Container Queries, :has(), dvh 등은 이미 실무 기본기로 자리잡음

Animate to Auto

  • 임의 콘텐츠 높이를 갖는 요소에서 고정값 ↔︎ auto부드럽게 전환할 수 있도록 하는 기능
    • 전역에 interpolate-size: allow-keywords를 선언하면 height: 0 → auto 같은 전환 허용
    • 또는 interpolate-size 없이 calc-size() 를 사용해 height: calc-size(auto, size)로 전환 수행
  • 장점은 기존의 max-height 꼼수나 오프스크린 측정 + JS 애니메이션 같은 취약한 대안을 제거하고 본연의 레이아웃 보존을 유지함
  • 지원 현황은 현재 Chrome 중심이며, 애니메이션은 있으면 좋은 수준이므로 PE(Progressive Enhancement) 적용이 적합

Popovers & Invokers

  • popover 속성은 임의 요소에 열기/닫기 동작과 대응 JS API를 부여하는 HTML 기능이며 모달과는 다른 경량 오버레이 범주에 해당
    • Invoker 속성을 쓰면 JS 없이 선언적 제어가 가능함
  • 의의접근성·키보드·포커스 관리 등을 HTML 레벨에서 기본 제공해 구현 누락 리스크를 줄인다는 점
  • 지원은 Popover는 광범위, Invoker는 Chrome 우선이며 popover="hint"세부 기능 지원 차이 존재
    • Polyfill 이 제공되므로 필수 UX에 적합한 도입 가능

@function

  • CSS 값 함수 체계에 사용자 정의 함수를 도입, @function --foo(--x) { result: ... } 형태로 공통 로직을 추상화 가능
  • 중복 제거(DRY) 와 선언부 단순화를 통해 읽기·유지보수성 향상 효과 제공
  • 지원Chrome 우선, 합리적이면 property: fallback 다음 줄에 property: --func()그레이스풀 폴백 구사 가능
    • Sass 함수와 호환 아님에 유의

if()

  • CSS 최초의 값 수준 분기 함수, media()·supports()·style() 조건을 스위치 문처럼 나열해 첫 일치값 반환
    • 예: 브레이크포인트별 grid-template-columns단일 선언으로 기술
  • 효과가독성 개선반복 제거이며, 커스텀 @function과도 궁합이 좋음
  • 지원Chrome 우선, 폴백값을 먼저 선언해 PE 패턴 적용 권장

field-sizing

  • 입력/편집 요소가 내용에 맞춰 자동으로 커지는 field-sizing 속성 소개
    • <textarea>자동 높이 확장이 대표 사례, 인라인 즉석 리사이즈 UX에도 응용 가능
  • 지원ChromeSafari 도입 예정, 필요 시 경량 JS 대체 가능
    • 필수 기능이 아닌 UX 향상 성격이므로 점진적 도입 적합

Custom Selects

  • select 외형만이 아니라 오픈된 선택 UI 자체를 스타일링할 수 있도록 명시적 옵트인완전 커스터마이즈 지원
  • PE가 뛰어나서 미지원 환경에서는 기본 <select> 로 안전하게 폴백
  • 지원Chrome 우선, appearance: base-select::picker(select) 등으로 제어 면적 확장 가능

text-wrap

  • text-wrap: balance 는 제목 등 큰 활자에 행 길이 균형을 맞추고, text-wrap: pretty 는 본문에서도 고아줄·미관 개선을 제공
  • 효과가독성·타이포그래피 품질 향상으로, 코스트 없이 즉시 체감 가능
  • 지원balance광범위, prettyChrome·Safari 우선이며 PE에 적합

linear() easing

  • 키워드 linear와 달리 linear() 함수임의 개수의 포인트정교한 이징 커브를 정의, 바운스 등 복합 동작 구현에 유리
  • 대안cubic-bezier()가 제한적인 반면, linear()세밀한 타이밍 제어를 제공하며 전면 지원 상태
  • 필요 시 명명 이징이나 cubic-bezier()폴백 구사 가능

shape()

  • 기존 path()픽셀 전용·난해한 문법을 보완한 shape() 함수로, 반응형 단위·커스텀 속성을 활용해 任의 경로를 기술
  • clip-path 로 임의 형태 마스킹, offset-path경로 따라 배치/애니메이션, 향후 shape-outside 와의 결합이 예고됨
  • 지원Chrome·Safari, Firefox 플래그 진행, 실제 개발에서는 미려한 폴백 설계 권장

More Powerful attr()

  • attr()타입 지정을 지원해 숫자·색상 등 비문자 값을 HTML 속성에서 직접 읽어 CSS 값으로 활용 가능
  • 의미테마 색상·카운트·크기 등을 마크업에서 주입하는 패턴 확장임
  • 지원Chrome 우선, 핵심 레이아웃 의존보다는 미적 강화 요소부터 점진 도입 권장

Reading Flow

  • 시각 순서와 소스 순서가 어긋난 레이아웃에서도 탭 이동 순서를 논리적으로 보정하는 reading-flow 속성 도입
    • 그리드 재배치 시 reading-flow: grid-rows 같이 레이아웃 방식에 맞춘 포커스 흐름을 지정
  • 접근성 리스크CSS 선언 한 줄로 줄일 수 있어 레이아웃 자유도가 커짐
  • 지원Chrome 우선이므로, 과도한 재정렬은 범용 지원 전까지 자제가 권장됨

Stuff to Keep an Eye On

  • Masonry 레이아웃은 사양 정리 중이며 item-flow 제안그리드 너머의 배치 가능성을 확장할 전망
  • random() 함수Safari 제공 중으로 표현력 높은 변주 디자인 구현에 유익
  • margin-trim 은 유용하나 Safari 중심, sibling-index()/count()Chrome 제공으로 스태거 애니메이션에 유용
  • View Transitions의 view-transition-name: match-element;, Firefox 개발 진행크로스 브라우저 호재 존재
  • 단위 혼합 calc() 곱셈/나눗셈 합리화가 실험 통과 임박으로, 과거 형 변환 해크 필요성 축소 전망
  • CSS4” 같은 버전 네이밍 부재 문제 제기와, 최근 5년 신기능을 모은 참고 리스트 소개

Great Stuff to Remember

  • Container Queries & 단위미디어쿼리 이후 최대 생산성 향상으로 계속 핵심 기본기 위치
  • :has()부모·상태 기반 선택을 가능하게 해 복잡한 조합 선택CSS만으로 해결하는 폭넓은 활용성 제공
  • View Transitions, Anchor Positioning, Scroll-Driven AnimationsSafari 도달현업 채택 장벽이 낮아진 상태
  • 추가 뷰포트 단위(dvh 등)Baseline 등재모바일 뷰포트 안정성 향상

코드/사용 예 하이라이트

  • 사이즈 전환: 전역 interpolate-size: allow-keywords 또는 상태 토글 시 height: calc-size(auto, size)콘텐츠 높이 애니메이션 구성
  • 그리드 분기: if(media(...): 값; ... else: 값;) 패턴으로 브레이크포인트별 템플릿 컬럼단일 선언에 집약
  • 커스텀 Select: select, ::picker(select) { appearance: base-select }사용자 정의 피커 활성화
  • 바운스 이징: animation-timing-function: linear( ... 다수 포인트 ... )세밀한 반동/감쇠 곡선 구현
  • 클립 경로: clip-path: shape( ... )반응형 비율 기반 도형 마스킹 구성

실무 적용 가이드

  • 브라우저 지원 편차가 큰 항목은 폴백 우선 설계진입 비용 대비 효과를 기준으로 도입
    • 애니메이션·타이포그래피·시각 효과는 PE 우선 후보, 포커스/탭 순서 같은 핵심 접근성광범위 지원 후 채택 권장
  • 자체 함수/분기설계 규칙 문서화토큰·커스텀 속성 결합으로 팀 공용 패턴화할 때 ROI 극대화
  • 폼 UX 개선 항목(field-sizing, Custom Select)은 모바일 우선 시나리오에서 체감 이득이 큼

결론

  • 2025년판 현대 CSS는 값 함수·논리 분기·형태 제어 확대로 “CSS로 더 많이 할 수 있는” 해이며, PE 전략과 함께 단계적 채택 가치가 큼
  • 기본기(컨테이너 쿼리, :has(), 뷰포트 단위) 를 바닥에 깔고, animate-to-auto·if()·shape() 같은 고효율 항목을 우선 도입하는 현실적 로드맵이 유효함

개꿀 기능 많아 지겠네 그동안 javascript로 구현해야 했던 것들이

Css가 정말많이 좋아졌네요