dev-weekly 2024-09-14
CSS
The Undeniable Utility Of CSS :has
-
CSS has 사용사례 소개
-
포커싱 처리
.bento-card:has(button:focus-visible) { outline: 2px solid var(--color-primary); }
-
글로벌 감지 - modal 오픈하면 스크롤 숨기기
html:has([data-disable-document-scroll="true"]) { overflow: hidden; }
- JS없는 dark mode 만들기
-
p:has(+ figure)
,figure + p
를 통해 앞뒤를 모두 선택 가능해짐
Time Travelling CSS With :target
- 체크박스, 라디오는 CSS만 사용하여 게임을 만드는 유명한 트릭. 사용자 입력에 기반한 다른 요소 해킹도 가능. e.g. :hover, :valid
:target
가상 클래스를 활용하는 방법 - url을 북마크해서 게임 저장 가능, 게임 상태 공유 가능, 브라우저의 히스토리를 통해 게임 컨트롤 가능
Node
Express 5.0
- 최소지원 버전 node18
Javascript
A Complete Guide to Beginning with JavaScript
- JS 에 대한 설명이 아니라 학습을 시작하기 위한 큐레이팅된 리소스를 알려주는 글
- 학습 방향에 대한 지침
- e.g. ECMA 스펙은 JS 엔진을 위한 세부 정보. 프로그래밍이나 JS를 배우기 위한 리소스로 작성되지 않음.
Biome v1.9 Anniversary Release
- CSS 포매터와 린터가 이제 안정된 것으로 간주되어 디폴트 활성화
- GraphQL도 디폴트로 포맷팅 린팅
ETC
The web’s clipboard, and how it stores data of different types
- async Clipboard API와 Clipboard Events API
- 비동기 클립볻드 API의 경우 W3C 클립보드 스펙에선 text/plain, text/html, image/png 3가지 포맷을 지원해야 한다고 명시. 과거에는 더 많은 포맷(e.g. json)을 지원했으나 보안상의 이유로 지원하지 않기로 결정
- 클립보드 이벤트의 경우 쓰기, 읽기에 데이터 포맷 제한 없음. 하지만 유저 에이전트가 트리거하는 copy, paste 이벤트 핸들러에 대해서만 사용할 수 있음
- 유저 에이전트에 의해 전송됐을때만 isTrusted 가 true.
- 구글은 execCommand를 통해 json 지원, 피그마는 text/html 을 보면 data-metadata와 data-buffer의 두 가지 span이 존재.
- data-metadata는 base64인코딩, data-buffer는 피그마 CTO였던 에반이 만든 kiwi 메시지 포맷으로 인코딩
- 웹 커스텀 포맷(Pickling) - 2022년부터 크로미움에선
"web "
접두사를 붙여 비동기 클립보드 API를 통한 커스텀 포맷 작성 가능.