1. @forward란?
SCSS에서 @forward는 다른 SCSS 파일에 있는 변수, 믹스인, 함수 등을 그대로 “재전달”하는 기능입니다.
@use→ 직접 가져다 쓰는 것@forward→ 다른 파일에서 사용할 수 있도록 재전달
2. 왜 필요한가?
프로젝트 구조 예시:
/styles/
_colors.scss
_fonts.scss
_mixins.scss
index.scss
각 파일을 전부 @use로 개별 import 하기 불편하므로,
index.scss에서 다음처럼 한 번에 정리합니다.
@forward 'colors';
@forward 'fonts';
@forward 'mixins';
사용할 때:
@use 'styles' as *;
3. @use vs @forward 비교
| 기능 | @use | @forward |
|---|---|---|
| 목적 | 직접 가져와서 사용 | 다른 곳에서 사용하도록 재전달 |
| 사용 위치 | 실제 스타일 파일 | 디자인 토큰, 라이브러리 집합 파일 |
| 네임스페이스 | 기본 필요 | 필요 없음 |
| 사용 케이스 | 컴포넌트, 페이지 | 토큰, 공통 리소스 집합 |
4. 기본 사용법
예제 1: 단순 forward
_colors.scss
$primary: #ff379c;
$secondary: #222;
_index.scss
@forward 'colors';
사용:
@use 'index' as *;
.button {
color: $primary;
}
5. prefix 붙이는 방법
@forward 'colors' as color-*;
사용:
@use 'index' as *;
.title {
color: $color-primary;
}
6. hide로 특정 변수 숨기기
@forward 'colors' hide $privateColor;
외부에서 $privateColor 접근 불가.
7. show로 공개할 항목 제한
@forward 'colors' show $primary, $secondary;
지정된 항목만 전달됨.
8. with로 기본 변수 재정의(override)
_spacing.scss
$padding-base: 16px !default;
forward하면서 재설정:
@forward 'spacing' with (
$padding-base: 24px
);
9. 실전 패턴 예시
디자인 시스템 aggregator 패턴
tokens/index.scss
@forward 'colors';
@forward 'fonts';
@forward 'spacing';
사용:
@use '@/styles/tokens' as *;
body {
color: $primary;
}
prefix 충돌 방지 패턴
@forward 'colors' as c-*;
@forward 'fonts' as f-*;
@forward 'spacing' as s-*;
사용:
@use '@/styles/tokens' as *;
.title {
color: $c-primary;
}
10. 요약
@forward는 SCSS 파일을 묶어 외부로 재전달- 디자인 시스템, 공통 변수/믹스인 관리에 최적
- 주요 기능:
as,hide,show,with
답글 남기기