SegmentedButton세그먼트 버튼
세그먼트 버튼 컴포넌트는 버튼 그룹을 캡슐화하여 옵션 제공, 보기 전환, 요소 정렬 등에 사용됩니다.
사용법
컴포넌트 가져오기:
import 'mdui/components/segmented-button-group.js';
import 'mdui/components/segmented-button.js';
컴포넌트의 TypeScript 타입 가져오기:
import type { SegmentedButtonGroup } from 'mdui/components/segmented-button-group.js';
import type { SegmentedButton } from 'mdui/components/segmented-button.js';
사용 예시:
<mdui-segmented-button-group>
<mdui-segmented-button>Day</mdui-segmented-button>
<mdui-segmented-button>Week</mdui-segmented-button>
<mdui-segmented-button>Month</mdui-segmented-button>
</mdui-segmented-button-group>단일 선택 모드
<mdui-segmented-button-group> 요소에 selects 속성을 single로 지정하면 단일 선택 모드를 구현할 수 있습니다. 이때 <mdui-segmented-button-group>의 value 속성값은 현재 선택된 <mdui-segmented-button>의 value 속성값입니다.
다중 선택 모드
<mdui-segmented-button-group> 요소에 selects 속성을 multiple로 지정하면 다중 선택 모드를 구현할 수 있습니다. 이때 <mdui-segmented-button-group>의 value 속성값은 현재 선택된 <mdui-segmented-button>의 value 속성값으로 구성된 배열입니다.
참고: 다중 선택 모드에서는 <mdui-segmented-button-group>의 value 속성값이 배열이므로 JavaScript 속성으로서만 값을 읽고 설정할 수 있습니다.
아이콘
<mdui-segmented-button> 요소에 icon 및 end-icon 속성을 설정하면 버튼의 왼쪽과 오른쪽에 각각 Material Icons 아이콘을 추가할 수 있습니다. 또한 icon 및 end-icon 슬롯을 통해 버튼의 왼쪽과 오른쪽에 요소를 추가할 수 있습니다.
<mdui-segmented-button> 요소에 selected-icon 속성을 추가하면 선택 상태의 Material Icons 아이콘을 설정할 수 있습니다. selected-icon 슬롯을 통해서도 설정할 수 있습니다.
링크
<mdui-segmented-button> 요소에 href 속성을 설정하면 버튼을 링크로 변환할 수 있습니다. 이때 링크 관련 속성(download, target, rel)도 함께 사용합니다.
비활성화 및 로딩 중 상태
<mdui-segmented-button-group> 요소에 disabled 속성을 추가하면 전체 세그먼트 버튼 그룹을 비활성화할 수 있습니다.
<mdui-segmented-button> 요소에 disabled 속성을 추가하면 특정 버튼을 비활성화할 수 있고, loading 속성을 추가하면 특정 버튼에 로딩 중 상태를 추가할 수 있습니다.
mdui-segmented-button-group API
속성
| HTML 속성 | JavaScript 프로퍼티 | Reflect | 유형 | 기본값 |
|---|---|---|---|---|
full-width | fullWidth | boolean | false | |
부모 요소의 너비를 채울지 여부를 설정합니다. | ||||
selects | selects | 'single' | 'multiple' | - | |
세그먼트 버튼의 선택 가능 상태입니다. 기본값은 선택 불가입니다. 사용 가능한 값:
| ||||
disabled | disabled | boolean | false | |
비활성화할지 여부를 설정합니다. | ||||
required | required | boolean | false | |
폼 제출 시 반드시 선택해야 하는지 여부를 설정합니다. | ||||
form | form | string | - | |
연결된 이 속성을 지정하지 않으면 이 요소는 | ||||
name | name | string | '' | |
폼 제출 시 이름이며, 폼 데이터와 함께 제출됩니다. | ||||
value | value | string | string[] | '' | |
현재 선택된 참고: 이 프로퍼티의 HTML 속성 값은 항상 문자열이며, | ||||
defaultValue | string | string[] | '' | ||
기본 선택 값입니다. 폼을 재설정할 때 이 기본값으로 재설정됩니다. 이 프로퍼티는 JavaScript 프로퍼티로만 설정할 수 있습니다. | ||||
validity | ValidityState | - | ||
폼 유효성 검사 상태 객체입니다. 자세한 내용은 | ||||
validationMessage | string | - | ||
폼 유효성 검사를 통과하지 못하면 오류 메시지가 포함되고, 통과하면 빈 문자열입니다. | ||||
메서드
| 이름 | 매개변수 | 반환값 |
|---|---|---|
checkValidity | boolean | |
폼 필드가 유효성 검사를 통과하는지 확인합니다. 통과하지 못하면 | ||
reportValidity | boolean | |
폼 필드가 유효성 검사를 통과하는지 확인합니다. 통과하지 못하면 유효성 검사를 통과하지 못하면 컴포넌트에 유효성 검사 실패 메시지가 표시됩니다. | ||
setCustomValidity |
| void |
사용자 정의 오류 메시지 텍스트를 설정합니다. 이 텍스트가 비어 있지 않으면 필드가 유효성 검사를 통과하지 못했음을 나타냅니다. | ||
CSS 사용자 정의 속성
| 이름 |
|---|
--shape-corner |
컴포넌트의 둥근 모서리 크기입니다. 구체적인 픽셀 값을 지정할 수 있지만, 디자인 토큰을 참조하는 것을 권장합니다. |
mdui-segmented-button API
속성
| HTML 속성 | JavaScript 프로퍼티 | Reflect | 유형 | 기본값 |
|---|---|---|---|---|
icon | icon | string | - | |
왼쪽의 Material Icons 아이콘 이름입니다. | ||||
end-icon | endIcon | string | - | |
오른쪽의 Material Icons 아이콘 이름입니다. | ||||
selected-icon | selectedIcon | string | - | |
선택됨 상태의 Material Icons 아이콘 이름입니다. | ||||
href | href | string | - | |
링크의 대상 URL입니다. 이 속성을 설정하면 컴포넌트 내부가 | ||||
download | download | string | - | |
다운로드할 링크 대상을 지정합니다. 참고: | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
링크를 여는 방식을 지정합니다. 사용 가능한 값은 다음과 같습니다:
참고: | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
현재 문서와 링크된 문서 간의 관계를 나타냅니다. 사용 가능한 값은 다음과 같습니다:
참고: | ||||
autofocus | autofocus | boolean | false | |
페이지 로드 후 자동으로 포커스를 받을지 여부를 지정합니다. | ||||
tabindex | tabIndex | number | - | |
Tab 키를 사용하여 포커스를 이동할 때 요소의 순서를 지정합니다. | ||||
disabled | disabled | boolean | false | |
비활성화할지 여부를 설정합니다. | ||||
loading | loading | boolean | false | |
로딩할지 여부를 설정합니다. | ||||
name | name | string | '' | |
버튼의 이름이며, 폼 데이터와 함께 제출됩니다. 참고: | ||||
value | value | string | '' | |
버튼의 초기값이며, 폼 데이터와 함께 제출됩니다. 참고: | ||||
type | type | 'submit' | 'reset' | 'button' | 'button' | |
버튼의 유형입니다. 기본 유형은
참고: | ||||
form | form | string | - | |
연결된 이 속성을 지정하지 않으면 이 요소는 참고: | ||||
formaction | formAction | string | - | |
폼을 제출할 URL을 지정합니다. 이 속성이 지정되면 참고: | ||||
formenctype | formEnctype | 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' | - | |
폼을 서버에 제출할 때의 콘텐츠 유형을 지정합니다. 사용 가능한 값은 다음과 같습니다:
이 속성이 지정되면 참고: | ||||
formmethod | formMethod | 'post' | 'get' | - | |
폼 제출 시 사용할 HTTP 메서드를 지정합니다. 사용 가능한 값은 다음과 같습니다:
이 속성이 설정되면 참고: | ||||
formnovalidate | formNoValidate | boolean | false | |
이 속성을 설정하면 폼 제출 시 폼 유효성 검사를 수행하지 않습니다. 이 속성을 설정하면 참고: | ||||
formtarget | formTarget | '_self' | '_blank' | '_parent' | '_top' | - | |
폼 제출 후 수신된 응답이 표시될 위치를 지정합니다. 사용 가능한 값은 다음과 같습니다:
이 속성을 설정하면 참고: | ||||
validity | ValidityState | - | ||
폼 유효성 검사 상태 객체입니다. 자세한 내용은 | ||||
validationMessage | string | - | ||
폼 유효성 검사를 통과하지 못하면 오류 메시지가 포함되고, 통과하면 빈 문자열입니다. | ||||
메서드
| 이름 | 매개변수 | 반환값 |
|---|---|---|
click | void | |
마우스 클릭을 시뮬레이션합니다. | ||
focus |
| void |
현재 요소에 포커스를 설정합니다. 객체를 인자로 전달할 수 있으며, 객체의 속성은 다음과 같습니다:
| ||
blur | void | |
현재 요소에서 포커스를 제거합니다. | ||
checkValidity | boolean | |
폼 필드가 유효성 검사를 통과하는지 확인합니다. 통과하지 못하면 | ||
reportValidity | boolean | |
폼 필드가 유효성 검사를 통과하는지 확인합니다. 통과하지 못하면 유효성 검사를 통과하지 못하면 컴포넌트에 유효성 검사 실패 메시지가 표시됩니다. | ||
setCustomValidity |
| void |
사용자 정의 오류 메시지 텍스트를 설정합니다. 이 텍스트가 비어 있지 않으면 필드가 유효성 검사를 통과하지 못했음을 나타냅니다. | ||
Slots
| 이름 |
|---|
| 기본 |
세그먼트 버튼 항목의 텍스트 콘텐츠 |
icon |
세그먼트 버튼 항목의 왼쪽 아이콘 |
selected-icon |
선택됨 상태의 왼쪽 아이콘 |
end-icon |
세그먼트 버튼 항목의 오른쪽 아이콘 |