미니 튜토리얼 – Figma 버튼 구성 요소 작업
게시 됨: 2022-03-11Figma에서 UI 요소는 구성 요소라고 합니다. 적절하게 제작되면 믿을 수 없을 정도로 다재다능하고 업데이트하기 쉽습니다. 하지만 구성 요소는 무엇을 할 수 있으며 어떻게 작동합니까? 우리는 가장 일반적인 UI 요소 중 하나인 버튼으로 작업하여 그 위력을 보여줄 것입니다.
왜 버튼인가?
버튼은 높이, 너비, 레이블 길이, 내부 패딩, 상태 및 테마와 같은 변수로 가득 차 있습니다. 기본 버튼 시스템을 구축하여 구성 요소 기반 사고 방식과 Figma 구성 요소 라이브러리로 Figma를 사용하는 것의 엄청난 가치를 배우게 됩니다.
*편집자 주: 이 작성된 튜토리얼은 Build UX의 David Luhr가 만든 비디오 튜토리얼에서 파생되었습니다.
작업 1: 기본 Figma 버튼 구성 요소 빌드
- 새 프레임을 만들고 레이어 패널에서 이름을 Buttons 로 바꾸는 것으로 시작하겠습니다.
- 버튼 레이블 텍스트를 입력합니다. 이 자습서에서는 "가입"을 사용합니다.
- 우리의 서체는 다음과 같습니다.
- 로보토 미디엄
- 글꼴 크기 18
- 줄 높이 24
- 텍스트 정렬 센터
- 가운데 정렬
- 크기 조정 = 고정 크기
- 버튼 레이블을 작성했으면 텍스트 상자의 오른쪽 하단 모서리를 두 번 클릭하여 텍스트의 가장 작은 제약 조건에 맞게 자동으로 크기를 조정합니다.
- 텍스트 레이어의 이름을 Button Label 로 바꿉니다.
- 사각형을 만들고 레이어 패널의 Button Label 아래에 놓고 이름을 Button Container 로 바꿉니다. 버튼 컨테이너의 색상을 기본 회색으로 유지합니다.
- 버튼 컨테이너의 고정 높이를 설정합니다. 60픽셀을 사용하겠습니다.
- 이제 버튼 컨테이너에 내부 패딩을 추가합니다.
- 버튼 레이블의 너비는 63픽셀입니다.
- 24픽셀의 오른쪽 및 왼쪽 패딩이 필요합니다. 합하면 48픽셀입니다.
- 따라서 레이블의 너비(63픽셀) + 총 패딩(48픽셀)을 입력합니다.
- 레이블과 컨테이너를 모두 선택하고 정렬 도구로 가운데에 맞춥니다.


우리는 기본적인 버튼을 디자인했습니다. 그러나 버튼의 내부 패딩은 아직 레이블 길이 변경을 수용할 수 없습니다. 나중 단계에서는 레이블 길이와 관련하여 버튼 컨테이너 너비를 유연하게 할 수 있는 내부 레이아웃을 다룰 것입니다.
작업 2: 버튼을 대화형으로 만들기
버튼을 대화형으로 만들기 위해 포커스 링을 추가합니다.
- Button Container 를 복제하고 이름을 Button Focus Ring 으로 바꿉니다.
- 레이어 패널의 버튼 컨테이너 아래에 포커스 링이 있는지 확인합니다.
- 초점 링의 채우기를 제거하고 4픽셀 두께의 검정색 내부 획을 추가합니다.
- 또한 버튼 컨테이너와 4면의 포커스 링 사이에 4픽셀 간격이 필요하므로 너비와 높이 모두에 +16을 추가합니다.
- 레이블, 버튼 컨테이너 및 포커스 링을 선택하고 가운데 정렬합니다.
- 세 가지 요소(레이블, 버튼 컨테이너, 포커스 링)를 모두 선택하고 마우스 오른쪽 버튼을 클릭한 다음 "구성 요소 생성"을 선택합니다.
- 구성 요소의 이름을 Button/Primitive/Default 로 바꿉니다.
- 버튼 = 구성요소 유형
- 원시 = 변형
- 기본값 = 상태
이것이 가장 단순한 형태의 버튼이 초점이 맞춰진 상태에서 보이는 방식입니다.


이것은 우리의 기본 버튼입니다. 최종 디자인에는 나타나지 않지만 모든 버튼 변형이 구축되는 기반 역할을 합니다. 장점? 나중에 버튼을 다시 디자인해야 하는 경우 한 곳에서만 편집하면 됩니다.

작업 3: 버튼 레이아웃 그리드 설정
- Button/Primitive/Default 를 선택하고 디자인 패널로 이동한 다음 "Layout Grid" 옆에 있는 "+" 아이콘을 클릭합니다.
- 그런 다음 그리드 아이콘을 클릭하고 "열"을 선택한 후 다음 값을 입력합니다.
- 열 개수 = 1
- 너비 = 자동
- 거터 = 0
- 유형 = 스트레치
- "여백"은 버튼 컨테이너 내부에 패딩을 제공합니다.
- 24픽셀의 왼쪽 및 오른쪽 패딩이 필요하다는 것을 기억하십시오.
- 또한 4픽셀 두께의 테두리와 포커스 링의 4픽셀 간격을 고려해야 합니다.
- 이것은 32픽셀의 여백이 필요하다는 것을 의미합니다.
- 여백이 추가되면 버튼 컨테이너의 내부 패딩을 표시하고 레이블 너비에 정확히 맞는 빨간색 표시기 영역이 표시됩니다.
- 구성 요소 내 에서 세 개의 레이어를 모두 선택하고 "제약 조건"으로 이동하여 "왼쪽 및 오른쪽" 및 "중앙"에 고정합니다.
- 이 시점에서 구성 요소를 선택하고 원하는 너비로 드래그할 수 있습니다. 레이아웃이 설계된 대로 정확하게 작동하는 것을 볼 수 있습니다.
- 버튼 너비를 레이블보다 짧게 만들면 레이블이 다른 줄로 구분되는 것을 알 수 있습니다.



이제 버튼의 각 요소에 레이아웃 제약 조건을 추가해야 합니다.

작업 4: 텍스트 길이에 대한 버튼 너비 조정
버튼이 더 긴 버튼 레이블로 어떻게 작동하는지 봅시다.

- 자산 패널로 이동하여 버튼의 새 인스턴스를 드래그하고 "약속 예약" 또는 그 이상을 입력합니다. 무슨 일이야? 레이블은 정확히 우리가 원하는 것이 아니라 다음 줄로 넘칩니다.
- 레이어 패널로 돌아가서 방금 드래그한 새 구성 요소를 선택한 다음 화살표 키를 사용하여 레이블에 맞는 정확한 치수로 너비를 조정합니다.
- 이렇게 하면 내부 패딩, 레이블 배치, 4픽셀 스트로크 및 포커스 링의 4픽셀 간격과 같은 모든 레이아웃 변수가 의도한 대로 유지되는 것을 볼 수 있습니다. (작업 5로 이동하기 전에 이 중복 버튼을 삭제하십시오.)

레이아웃 그리드를 사용하면 모든 디자인에서 사용할 수 있는 하나의 버튼을 만들 수 있으며 필요한 레이블 길이에 맞게 너비를 조정하기만 하면 됩니다.

작업 5: 호버 및 포커스 상태 만들기
기본 버튼이 있는 상태에서 hover 및 focus 상태의 기본 요소를 만들어 보겠습니다.
- 버튼 기본값에서 포커스 링을 끕니다.
- Alt 키를 누른 상태에서 버튼 기본값의 새 인스턴스를 드래그합니다.
- 버튼 컨테이너를 더 밝은 회색으로 만듭니다(#E7E7E7).
- "구성 요소 만들기"를 마우스 오른쪽 버튼으로 클릭하고 이름을 Button/Primitive/Hover 로 바꿉니다.
- 기본 상태의 다른 인스턴스를 드래그하고 포커스 링을 켜고 버튼 컨테이너의 색상을 호버 상태 컨테이너의 색상과 일치시킵니다(#E7E7E7).
- "구성 요소 만들기"를 마우스 오른쪽 버튼으로 클릭하고 Button/Primitive/Focus 의 이름을 바꿉니다.

이제 버튼의 레이아웃과 다양한 상태에서 버튼이 작동하는 방식에 대한 핸들이 생겼습니다. 여기에서 필요에 따라 특정 테마나 스타일을 추가할 수 있습니다.

작업 6: 버튼 테마 구현
이제 스타일 변형을 만들 것입니다.
- Alt 키를 누른 상태에서 Button/Primitive/Default 의 다른 인스턴스로 드래그합니다.
- 원하는 테마 색상(#204ECF)과 일치하도록 컨테이너 색상을 변경합니다.
- 버튼 레이블을 흰색(#FFFFFF)으로 만들고 포커스 링을 토글하고 스트로크를 원하는 테마 색상(#204ECF)으로 변경하고 토글합니다.
- "구성 요소 만들기"를 마우스 오른쪽 버튼으로 클릭하고 이름을 Button/BrightBlue/Default 로 바꿉니다.
- 이 새로운 기본 버튼의 인스턴스 두 개를 드래그합니다. 하나는 호버 상태용이고 다른 하나는 포커스 상태용입니다.
- 버튼 컨테이너의 색상을 원하는 테마 색상과 일치하도록 변경하고(#678FFF) "구성 요소 생성"을 마우스 오른쪽 버튼으로 클릭하고 이름을 Button/BrightBlue/Hover 로 변경합니다.
- 동일한 색상을 포커스 버튼 컨테이너에 적용하고 포커스 링을 토글하고 "구성 요소 생성"을 마우스 오른쪽 버튼으로 클릭하고 이름을 Button/BrightBlue/Focus 로 바꿉니다.

디자인에 필요한 여러 테마에 이 동일한 프로세스를 사용할 수 있습니다.

작업 7: Figma 구성 요소의 아름다움을 보라
테마를 모두 만들고 나면 잠시 시간을 내어 구성 요소로 작업하는 것이 얼마나 강력한지 관찰하십시오.
- Button/Primitive/Default 를 선택하고 모서리 반경을 추가하면 버튼의 모든 인스턴스가 자동으로 업데이트되는 것을 볼 수 있습니다.
- 그런 다음 구성 요소 패널로 이동합니다. 버튼의 모든 인스턴스를 디자인의 어느 부분으로든 드래그할 수 있습니다.
- 또한 이 명명 규칙을 사용했기 때문에 이제 모든 버튼을 대체 인스턴스/테마로 바꿀 수 있습니다. 작동을 확인하려면 버튼의 한 인스턴스를 드래그한 다음 디자인 패널의 "인스턴스"로 이동하여 필요한 인스턴스를 선택하면 즉시 변경됩니다.



구성 요소 프레임워크 내에서 작업하면 디자인의 모든 영역에서 버튼을 빠르고 효율적으로 관리할 수 있습니다. 무엇보다도 버튼으로만 작동하는 것이 아니라 모든 유형의 UI 구성요소에서 작동합니다.
Toptal Design 블로그에 대한 추가 정보:
- 디자인 도구로서의 Figma의 힘
- Figma vs. Sketch vs. Axure – 작업 기반 검토
- Figma로 협업 설계 간소화
- 수년에 걸친 버튼 디자인 – Dribbble 타임라인
- Framer 튜토리얼: 프로토타입을 개선하기 위한 7가지 간단한 마이크로인터랙션