테마 · 플러그인 입문
모바일 우선은 취향이 아니라 순서의 문제입니다
좁은 화면에서 시작하면 결정할 것이 줄어듭니다. 넓은 화면에서 시작하면 매번 무엇을 버릴지 정해야 하고, 그 결정은 끝나지 않습니다.
Technote
데스크톱에서 만든 화면이 모바일에서 깨지는 전형적인 이유들과 그 구조적 해법. 브레이크포인트를 늘리는 대신 무너지지 않는 구조를 만드는 쪽을 다룹니다.
글 8편
테마 · 플러그인 입문
좁은 화면에서 시작하면 결정할 것이 줄어듭니다. 넓은 화면에서 시작하면 매번 무엇을 버릴지 정해야 하고, 그 결정은 끝나지 않습니다.
테마 · 플러그인 입문
기기 이름으로 정한 기준선은 매년 낡습니다. 대신 컴포넌트를 천천히 넓히면서 무너지는 지점을 기록하면, 그 값이 그대로 기준선이 됩니다.
테마 · 플러그인 실무
제목 크기를 브레이크포인트마다 다시 선언하고 있다면 유지보수가 계속 늘어납니다. clamp() 는 최소 · 유동 · 최대를 한 줄에 담아 그 재선언을 없앱니다.
테마 · 플러그인 실무
repeat(3, 1fr) 은 세 칸이 같은 폭이 된다고 약속하지 않습니다. 안에 든 코드 블록이나 긴 문자열 하나가 칸을 밀어내고, 그러면 판 전체가 화면 밖으로 나갑니다.
테마 · 플러그인 실무
scrollWidth 가 화면 폭과 같은데도 화면은 잘려 있습니다. 조상의 overflow 가 넘침을 흡수했기 때문이고, 이때는 요소의 사각형을 직접 재야 합니다.
테마 · 플러그인 실무
커서는 1픽셀이지만 손가락은 아닙니다. 보이는 크기를 키우지 않고도 누르는 크기를 키우는 방법과, 호버에만 있는 기능이 터치에서 사라지는 문제를 다룹니다.
테마 · 플러그인 실무
햄버거는 목적지가 많을 때의 답입니다. 실제로 트래픽을 만드는 목적지가 서넛뿐이라면, 감추는 대신 보이게 두는 편이 언제나 낫습니다.
테마 · 플러그인 심화
position: sticky 는 실패해도 에러를 내지 않습니다. 임계값 · 부모의 여유 · 조상의 overflow 세 가지만 순서대로 확인하면 원인은 거의 항상 그 안에 있습니다.