디자인 토큰
@coldsurfers/ocean-road-design-tokens에서 생성되는 색상 토큰 레퍼런스입니다. Style Dictionary로 빌드되며, Primitive → Semantic 2-레이어 구조로 설계되어 있습니다.
Primitive (oc.gray.9 등 raw 값)
↓
Semantic (color.foreground.1 등 의미 기반 CSS 변수)
Semantic 색상 토큰
ColorSchemeProvider가 라이트/다크 모드에 따라 아래 CSS 변수를 자동으로 주입합니다.
Background
| CSS 변수 |
JS |
라이트 |
다크 |
용도 |
--color-background-1 |
semantics.color.background[1] |
#ffffff |
#000000 |
페이지 최상위 배경 |
--color-background-2 |
semantics.color.background[2] |
#f1f3f5 |
#212529 |
카드, 패널 배경 |
--color-background-3 |
semantics.color.background[3] |
#e9ecef |
#343a40 |
중간 단계 배경 |
--color-background-4 |
semantics.color.background[4] |
#dee2e6 |
#495057 |
구분선 배경 |
--color-background-5 |
semantics.color.background[5] |
#ced4da |
#868e96 |
비활성 배경 |
Foreground
| CSS 변수 |
JS |
라이트 |
다크 |
용도 |
--color-foreground-1 |
semantics.color.foreground[1] |
#212529 |
#f1f3f5 |
주요 텍스트 |
--color-foreground-2 |
semantics.color.foreground[2] |
#343a40 |
#e9ecef |
보조 텍스트 |
--color-foreground-3 |
semantics.color.foreground[3] |
#495057 |
#dee2e6 |
3차 텍스트, 플레이스홀더 |
--color-foreground-4 |
semantics.color.foreground[4] |
#868e96 |
#ced4da |
비활성 텍스트 |
Border
| CSS 변수 |
JS |
라이트 |
다크 |
용도 |
--color-border-1 |
semantics.color.border[1] |
#f1f3f5 |
#495057 |
기본 구분선 |
--color-border-2 |
semantics.color.border[2] |
#e9ecef |
#868e96 |
강조 구분선 |
Dimmed
| CSS 변수 |
JS |
라이트 |
다크 |
용도 |
--color-dimmed-1 |
semantics.color.dimmed[1] |
#f1f3f5 |
#495057 |
비활성 오버레이 |
JS에서 사용하기
semantics 객체의 값은 CSS 변수 문자열("var(--color-foreground-1)")을 반환합니다. Emotion 스타일과 함께 사용하면 ColorSchemeProvider가 주입한 실제 값으로 자동 해석됩니다.
import { semantics } from '@coldsurfers/ocean-road'
import styled from '@emotion/styled'
import { Text } from '@coldsurfers/ocean-road'
const Title = styled(Text)`
color: ${semantics.color.foreground[1]};
background-color: ${semantics.color.background[2]};
border-bottom: 1px solid ${semantics.color.border[1]};
`
CSS 변수로 직접 사용하기
ColorSchemeProvider 없이 CSS에서 직접 참조할 수도 있습니다. 단, 이 경우 라이트/다크 모드 전환은 직접 구현해야 합니다.
.my-element {
color: var(--color-foreground-1);
background-color: var(--color-background-2);
}
Primitive 색상 토큰
Semantic 토큰의 기반이 되는 Open Color 팔레트입니다. colors 객체로 접근할 수 있으나, 일반적으로는 Semantic 토큰 사용을 권장합니다.
import { colors } from '@coldsurfers/ocean-road'
// colors.gray[9], colors.gray[0], colors.white, colors.black 등
| 팔레트 |
단계 |
gray |
0 – 9 |
white / black |
— |
| 기타 (red, blue, green …) |
0 – 9 |
토큰 빌드 출력 경로
| 경로 |
내용 |
dist/css/color/variables.css |
Primitive CSS 변수 (:root) |
dist/css/color/variables-light.css |
Semantic 라이트 모드 CSS 변수 |
dist/css/color/variables-dark.css |
Semantic 다크 모드 CSS 변수 |
dist/js/semantic/variables.js |
Semantic JS 모듈 (semantics 객체) |
dist/js/semantic/theme-variables.js |
Semantic 라이트/다크 값 객체 |
dist/json/color/ |
JSON 형태의 토큰 값 |