inflearn logo
강의

Course

Instructor

[UI3 Update] Building a Design System Using Figma Variables

Button Stack (Button Stack) ✅

Stack 컴포넌트 관련하여 궁금한 점이 있습니다.

55

tkdldjs1236290

4 asked

0

Stack 컴포넌트 관련하여 궁금한 점이 있습니다.

해당 컴포넌트의 실용성은 '다양한 화면에서 동일한 간격으로 컴포넌트를 사용할 수 있다' 정도일까요?

더한다면, 추후 사용하는 Slot 컴포넌트를 활용하기 위함일 것 같은데 제가 현재 Slot 컴포넌트는 활용하고 있지 않아서..

궁금한 점이, 만약 버튼의 간격같은 것을 토큰화하여 해당 토큰으로만 사용을 한다면, 버튼 스택 컴포넌트의 활용도가 다소 떨어지게되는 것이 아닌가? 하는 생각에서 볼드 선생님의 의견이 궁금합니다

Stack 형태로 여러 컴포넌트를 활용하는 라이브러리들을 봤지만, 결국에는 적절한 수만큼 자유롭게 늘리는것이 어려워서, 처음에는 2개만 쌓아놨다가, 3개, 4개, 드롭다운 메뉴 등에서는 10개 20개까지 늘려버리는 경우를 종종 본 터라, 어떻게 생각하시는지 궁금합니다.

웹-디자인 figma figma-tokens 디자인-시스템 아토믹-디자인 figma-variable 프로덕트디자인

Answer 1

0

bolduxlab

안녕하세요, 허이짜님.

제가 생각하는 Stack 컴포넌트의 실용성은 “여러 화면에서 동일한 간격을 유지한다”를 넘어, 반복되는 배치 패턴을 규칙으로 고정해서 디자인/개발 모두의 결정 비용을 줄여주는 것에 더 가깝다고 생각합니다.

 

Stack이 간격 외에 줄 수 있는 장점을 예로 들자면..

버튼 스택의 경우, 간격(spacing)만 통일하는 게 아니라 아래 같은 것들이 같이 정리될 수 있어요.

  • 방향: 가로/세로, 또는 모바일에서 세로로 자동 전환 등

  • 정렬: 왼쪽 정렬 / 오른쪽 정렬 / 양쪽 끝 정렬(space-between)

  • 레이아웃: 버튼이 콘텐츠만큼(Hug)인지, 부모 폭을 꽉 채우는(Fill)인지

  • 우선순위 패턴: 주요 버튼이 오른쪽에 오는지, 양쪽에 나뉘는지 등

     

즉 Stack은 “간격 컴포넌트”라기보다, 자주 쓰는 조합을 ‘하나의 레이아웃 규칙’으로 묶는 도구로 보는 편이 더 맞는 것 같습니다.

 

“간격 토큰만 쓰면 Stack 활용도가 떨어지지 않나?”에 대한 생각에 대해서는버튼 간격을 토큰화해서 모두가 그 토큰만 쓰게 된다면, ‘간격을 통일하는 목적’만 놓고 보면 Stack의 이점이 줄어드는 건 맞아요.

다만 Stack의 장점은 간격 하나가 아니라, 앞에서 언급했드이 간격 + 방향 + 정렬 + 폭 정책 같은 레이아웃 결정을 한 번에 묶어서 화면마다 “이거는 gap 8일까 12일까 / fill일까 hug일까 / 오른쪽 정렬일까?” 같은 고민을 줄이는 데 있어요.

그래서 토큰이 잘 되어 있어도 Stack은 여전히 의미가 있고, 오히려 “토큰을 올바르게 쓰게 만드는 안전장치” 역할도 할 수 있다고 생각합니다.

 

“2개 → 3개 → 10개 → 20개로 늘어나서 Stack이 애매해지는 이 부분은 저도 공감합니다. 그래서 저는 Stack을 ‘무한 확장 가능한 만능 컨테이너’로 설계하기보다는, 용도가 명확한 Stack을 따로 두는 방식을 선호해요.

 

예를 들어:

  • ButtonStack: 보통 1~3개(많아도 4개) 정도를 전제로 한 패턴

  • MenuList / DropdownList: 10개, 20개 이상 늘어날 수 있는 리스트 전용 패턴

특히 드롭다운처럼 항목 수가 무한대로 늘어나는 케이스는, 말씀하신 것처럼 “스택 갯수 예시를 전부 UI로 다 보여주기”보다 보이는 영역은 최대 높이/표시 개수를 제한하고(스크롤), 나머지는 예시 데이터로 채우는 형태를 원칙으로 추천드립니다.

예: 국제 전화번호처럼 리스트가 길 경우

  • UI 예시는 “열었을 때 최대 N개가 보이고 스크롤 된다”까지만 보여주면 충분하고

  • 나머지 값은 엑셀/데이터/개발 라이브러리에서 가져다 쓰는 구조가 더 현실적입니다.

질문 하신 부분에 대한 것은 정답은 없지만, 저의 생각을 정리해서 답변드립니다. 생각을 정리할 시간이 필요해서 다소 답변이 늦은 점 죄송합니다. 좋은 질문 주셔서 정말 감사합니다.

배리어블 Value에 관해 질문있습니다.

0

35

0

Body>font weight 에서 semibold에 짝대기가 생기는 이유?

0

39

1

Navigation Mobile 토글 베리어블이 안됩니당

1

33

2

Typography 모드 적용시 표현된 값과 우측에 표시되는 값다름

0

32

1

디자인 시스템에 그룹명을 숨길 수도 있나요?

0

45

2

디자인 시스템 네이밍에 관한 질문드립니다.

0

54

2

next step?

1

71

1

16강 Print Variables 출력 질문

0

82

2

open in Figma 누르고 ui kit 다운?받았을 때

0

66

2

variables 이름 지을때 소문자,대문자 사용에 관해..

0

93

2

디자인 시스템 네이밍 순서에 대해 질문남깁니다!

0

114

2

이미지 캐러셀 영상

0

66

2

아이콘 사이즈 컴포넌트 구성 방식 관련

0

100

3

완강/리뷰 이벤트 후 강의자료

0

60

2

컴포넌트별 베리어블 구축

0

77

2

인풋 텍스트필드에서는 왜 'interactive/bg' 배리어블을 활용하지 않는 것인가요?

0

38

1

섹션 6 / 29.Button 강의의 아이콘 인스턴스 스왑 질문

0

52

2

UI Kit에서 배리어블 등록 안되는 문제

0

60

2

교육용 피그마 계정 문의

0

62

2

베리어블 등록했는데 스타일에 연결하려니까 안보여요..

0

84

3

폰트 웨이트 지정에서, '바디만 따로 웨이트를 시멘틱에 그룹핑 하는 이유'가 무엇인가요??

0

51

2

섹션 6 / 29.Button 강의 질문

0

64

2

67강, 70강, 75강 자료 다운로드

0

52

1

베리어블 이름에 대해 질문드립니다

0

121

2