실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 실무 꿀팁

CSS 변수로 유지보수와 테마 기능을 한 번에! (CSS Custom Properties)

웹사이트 제작 시, 수많은 CSS 파일에서 같은 색상 코드나 폰트 크기 값을 반복해서 입력하고 계신가요?
나중에 디자인을 변경하려면 모든 CSS 파일을 다 뒤져야 하는 번거로움에 CSS 변수가 강력한 해결책을 제시합니다.

💡 CSS 변수란 무엇일까요?

자바스크립트의 변수처럼 CSS에서도 값을 저장하고, 그 이름을 호출해서 사용할 수 있는 기능입니다. 디자인 요소를 한곳에서 중앙 관리할 수 있게 도와줍니다.

1. CSS 변수 정의하고 사용하기

CSS 변수는 주로 :root라는 특별한 선택자에 정의합니다. 이렇게 정의된 변수는 웹사이트 전체에서 사용할 수 있습니다.
변수 이름은 반드시 두 개의 하이픈(`--`)으로 시작해야 하며, 사용할 때는 `var()` 함수로 감싸서 호출합니다.

/* CSS 변수 정의 ( :root 에 정의 ) */
:root {
    /* 디자인 토큰 정의 */
    --main-color: #cc2b2b; /* 메인 컬러 */
    --accent-color: #f59f00; /* 포인트 컬러 */
    --text-main: #111111; /* 메인 텍스트 컬러 */
    --text-sub: #555555; /* 서브 텍스트 컬러 */
    --font-base: 'Pretendard', sans-serif; /* 기본 폰트 */
}

/* 정의한 CSS 변수 사용 */
.header {
    background-color: var(--main-color); /* 변수 사용 */
    color: #fff;
    font-family: var(--font-base); /* 변수 사용 */
}

.button {
    background-color: var(--accent-color); /* 변수 사용 */
    color: var(--text-main); /* 변수 사용 */
}

2. CSS 변수로 테마 기능 쉽게 구현하기

CSS 변수의 진가는 다크 모드나 다양한 디자인 테마를 구현할 때 발휘됩니다.
특정 클래스나 속성에 따라 CSS 변수 값을 다른 값으로 재정의하기만 하면 됩니다.

/* 다크 모드 테마 정의 */
.body[data-theme="dark"] {
    --main-color: #9a0007; /* 다크 모드 메인 컬러 */
    --text-main: #ffffff; /* 다크 모드 메인 텍스트 컬러 */
    --text-sub: #dddddd; /* 다크 모드 서브 텍스트 컬러 */
    --background: #111111; /* 다크 모드 배경 컬러 */
}

/* 다크 모드 적용 예시 */
.body[data-theme="dark"] .nw-board-notice {
    background: var(--background); /* 변수 사용 */
    color: var(--text-sub); /* 변수 사용 */
}

.body[data-theme="dark"] .nw-board-notice-title {
    color: var(--text-main); /* 변수 사용 */
}

나눔웹은 복잡한 CSS를 효율적으로 관리하여 사이트의 확장성을 높입니다.

CSS 변수를 통해 디자인 변경이나 다크 모드 같은 테마 기능을 쉽게 구현해 보세요.


List of Articles
번호 분류 제목 글쓴이
29 웹 성능 글씨가 안 보이다가 갑자기 뜬다면? '웹 폰트 로딩' 1초 단축하는 마법 나눔웹
28 웹 성능 구글 SEO 점수 폭발! 이미지 로딩 속도 3배 높이는 '단 1줄'의 마법 나눔웹
27 마케팅 카톡에 우리 회사 링크 보낼 때 뜨는 '회색 빈 박스' 없애는 필수 세팅 (OG 태그) 나눔웹
26 마케팅 '제출하기' 버튼은 그만! 클릭률 200% 높이는 마법의 단어 (CTA) 나눔웹
25 마케팅 돈 버는 마케터의 비밀! 유입 출처를 추적하는 마법의 꼬리표 'UTM' 나눔웹
24 퍼블리싱 촌스러운 '파일 선택' 버튼, 복잡한 꼼수 없이 예쁘게 디자인하기 나눔웹
23 UI/UX 팝업 띄울 때마다 화면이 덜컹! '스크롤바 밀림 현상' 1줄 해결법 나눔웹
22 퍼블리싱 수십 줄의 모바일 반응형 코드, 단 '1줄'로 끝내는 마법 (clamp) 나눔웹
21 UI/UX 쇼핑몰 결제 금액이 덜덜 떨린다면? '숫자 폭 고정' 타이포그래피 꿀팁 나눔웹
20 모바일 앗, 실수로 새로고침! 튕기는 모바일 화면 꽉 잡는 법 (Overscroll) 나눔웹
19 모바일 하단 고정 버튼이 아이폰 '검은 줄'에 겹친다면? (Safe Area 대응법) 나눔웹
18 UI/UX 투박한 파란색 체크박스는 그만! 단 1줄로 우리 회사 컬러 입히기 나눔웹
17 UI/UX 1%의 디테일이 브랜딩을 완성합니다! '텍스트 드래그 색상' 바꾸기 나눔웹
16 퍼블리싱 무거운 플러그인 NO! 넷플릭스처럼 쫀득한 '가로 스와이프' CSS로 뚝딱 만들기 나눔웹
15 UI/UX 애플(Apple) 사이트처럼 고급스러운 '반투명 유리' 메뉴 만드는 법 나눔웹
14 모바일 모바일 웹을 진짜 '앱(App)'처럼! 이미지 꾹 누를 때 뜨는 팝업 막기 나눔웹
13 퍼블리싱 지저분한 모바일 스크롤바, 기능은 남기고 쏙 숨기는 마법의 CSS 나눔웹
12 모바일 아이폰에서 입력창 누를 때 화면 '자동 확대'되는 현상 막는 법 나눔웹
11 UI/UX 상단 메뉴에 제목이 가려진다고요? '부드러운 스크롤' 마법의 2줄 나눔웹
10 UI/UX 레이아웃을 망치는 긴 글, 예쁘게 '...'으로 자르는 마법의 CSS 나눔웹
Board Pagination Prev 1 2 Next
/ 2
rhwlsghkcocndgus XE2.1.31 STAGE1.5.4