Blog
Tailwind 기준에서 본 모바일 퍼스트 vs 데스크탑 퍼스트
서론#
반응형 웹을 처음 배울 때
모바일 퍼스트와 데스크탑 퍼스트라는 개념을 함께 접했다.
이론적으로는 이해했지만,
실제로 코드를 작성할 때는 두 방식의 차이가 명확하게 느껴지지 않았다.
Tailwind CSS를 사용하면서
이 차이가 코드 구조에 직접적으로 드러났고,
왜 모바일 퍼스트가 기본 전제로 사용되는지 궁금해졌다.
이 글은 Tailwind의 반응형 설계 방식을 기준으로
모바일 퍼스트와 데스크탑 퍼스트를 다시 정리한 기록이다.
모바일 퍼스트와 데스크탑 퍼스트란?#
두 방식의 차이는 어디를 기준으로 스타일을 작성하느냐에 있다.
- 모바일 퍼스트
- 작은 화면을 기본 스타일로 작성
- 화면이 커질수록 스타일을 추가
- 데스크탑 퍼스트
- 큰 화면을 기본 스타일로 작성
- 화면이 작아질 때 스타일을 덮어씀
결국 차이는
“기본값이 무엇이냐”에 있다.
Tailwind의 반응형 방식#
Tailwind의 반응형 클래스는
sm, md, lg 같은 접두사를 사용한다.
<div class="text-sm md:text-base lg:text-lg"></div>
여기서 중요한 점은
이 접두사들이 min-width 기준이라는 것이다.
접두사가 없는 클래스→ 가장 작은 화면 기준md:→ 화면이 md 이상일 때 적용
이 구조 자체가
모바일 퍼스트를 기본 전제로 설계되어 있다.
Tailwind에서 기본 스타일의 의미#
Tailwind에서는
접두사가 없는 클래스가 곧 모바일 스타일이다.
<div class="p-4 md:p-8"></div>
- 모바일:
p-4 - 태블릿 이상:
p-8
이 방식에서는
모바일 스타일이 항상 기준이 되고,
화면이 커질수록 덮어쓰는 구조가 된다.
데스크탑 퍼스트처럼 작성하려면
오히려 코드가 더 복잡해진다.
데스크탑 퍼스트로 작성하면 생기는 문제#
Tailwind에서 데스크탑 퍼스트로 접근하면
다음과 같은 코드가 된다.
<div class="p-8 md:p-4"></div>
이 코드는 문법적으로는 가능하지만,
읽는 사람 입장에서는 혼란을 준다.
- 왜 기본이 더 큰 값인지
- 왜 화면이 커질수록 값이 줄어드는지
Tailwind의 설계 의도와 반대 방향으로 작성되기 때문에
코드 해석 비용이 올라간다.
모바일 퍼스트가 자연스러운 이유#
Tailwind에서 모바일 퍼스트가 자연스러운 이유는
단순한 유행 때문이 아니다.
- 접두사 없는 클래스 = 기본 스타일
- 반응형 클래스 = “추가되는 조건”
이 구조 덕분에
스타일의 변화 흐름이 코드에 그대로 드러난다.
<div class="flex-col md:flex-row"></div>
이 코드는
“기본은 세로, 커지면 가로”라는 의도를
추가 설명 없이 전달한다.
정리#
Tailwind CSS는
모바일 퍼스트를 기본 전제로 설계된 도구다.
이 방식을 따르면
반응형 스타일이 자연스럽게 누적되고,
코드만 보고도 화면 변화 흐름을 파악할 수 있다.
그래서 Tailwind를 사용할 때는
모바일 퍼스트를 “선택지”라기보다는
전제 조건으로 이해하는 편이 더 납득이 된다.
관련 게시글
4개
prettier-plugin-tailwindcss는 무엇을 해결하는가
Tailwind CSS를 사용하며 클래스 순서가 제각각이 되는 문제를 정리합니다. prettier-plugin-tailwindcss가 클래스 정렬을 어떻게 자동화하는지, 왜 사람이 관리하지 않아도 되는 문제인지 학습 관점에서 설명합니다.
clsx 다음에 tw-merge가 필요한 이유
Tailwind CSS에서 clsx로 조건부 클래스를 합친 뒤, tw-merge로 클래스 충돌을 정리하는 이유를 정리합니다. clsx와 tw-merge를 함께 사용하는 흐름과 cn 유틸 패턴을 설명합니다.
clsx / classnames를 언제, 왜 사용하는가
Tailwind CSS를 사용하며 조건부 클래스가 늘어날 때, clsx와 classnames를 언제, 왜 사용하게 되는지 정리합니다. 문자열 기반 클래스 처리의 한계와 정리 기준을 학습 관점에서 설명합니다.
Tailwind CSS란 무엇이고, 왜 많이 사용되는가
Tailwind CSS의 기본 개념과 Utility-First 방식이 무엇인지 정리합니다. 기존 CSS 작성 방식과의 차이, 클래스 조합 방식이 왜 선택되는지 학습 관점에서 설명합니다.