토이프로젝트 - 프로필 페이지 만들기

프로필 페이지 만들기 (2) - 디자인 토큰 적용

vitamin3000 2025. 2. 6. 19:14

 

저번에 진행했던 토이프로젝트2의 디자인 토큰을 참고하여 디자인 토큰을 적용하려 한다.

https://github.com/daangn/seed-design/tree/main/packages/design-token

 

seed-design/packages/design-token at main · daangn/seed-design

The Seed Design System. Contribute to daangn/seed-design development by creating an account on GitHub.

github.com

 

위 홈페이지의 당큰마켓의 디자인 토큰을 참고하였다.

 

실제사용 예시는 다음과 같다.

import { vars } from "@seed-design/design-token";

// 시맨틱 토큰
vars.$semantic.color.primary;

// 스케일 토큰
vars.$scale.color.carrot500;

// 스태틱(단일 스케일) 토큰
vars.$static.color.carrot500;

 

파일 구조

설계한 파일 구조는 다음과 같다. 

 

colorRawValue에서는 아래 사진과 같이 색상(value)에 대한 key를 지정하였다.

 

아래 사진은 작성한 스타일 가이드이다.

https://divmagic.com/ko/tools/color-converter

 위의 홈페이지를 통해 값을 얻었다.

어차피 모든 값을 사용하지는 않기 때문에 primay, secondary등에 대한 색만 대입하여 값을 저장하면 된다

 

색상 변환기 [무료 도구]

주어진 16진수, rgb, hsl 또는 tailwind 색상을 기반으로 RGB, HEX, HSL 및 Tailwind CSS 색상을 생성, 편집, 저장 및 공유합니다. 온라인으로 색상 변환

divmagic.com

 

 

colors에서는 해당 키 값을 이용해 primary, secondary 등을 정의한다.

import { raw } from './colorRawValue';

const scale = {
  primary: {
    s50: raw.teal.r50,
    s100: raw.teal.r100,
    s200: raw.teal.r200,
    s300: raw.teal.r300,
    s400: raw.teal.r400,
    s500: raw.teal.r500,
    s600: raw.teal.r600,
    s700: raw.teal.r700,
    s800: raw.teal.r800,
    s900: raw.teal.r900,
    s950: raw.teal.r950,
  },
  //...
  
  const semantic = {
      primary: scale.primary.s600,
      secondary: scale.secondary.s600,
      success: scale.success.s600,
      danger: scale.danger.s600,
      warning: scale.warning.s600,
  //...

 

그리고 token안의 index.ts에서 반환한 값을 다시 styles.ts에서 반환한다.

export { colors } from './colors';
export { font } from './font';

 

이를 통해 실제 사용할 때는 

import { colors } from '@/styles';
import styled from 'styled-components';

const S = {
  HeaderBar: styled.div`
    width:100%;
    height: 20vh;
    background-color: ${colors.semantic.background.dark};
  `
}

 

다음과 같이 사용할 수 있다.

 

 

* 주의사항 

index.css를 최상위 디렉토리가 아님에 주의하라

따라서 사용하는 파일에서 바꿔줘야하고, 

아래 코드로 수정해서 import해야 한다.

// index.css
@import url(./css/reset.css);
@import url(./css/form.css);