- 기본 스타일을 위한 UTKDefaultStyle.uss파일을 생성했습니다. - UIToolkit 설정 구성을 위한 UTKSettings.asset 파일을 추가했습니다. - 포괄적인 색상 정의를 포함하는 다크 및 라이트 테마 스타일(UTKThemeDark.uss, UTKThemeLight.uss)을 도입했습니다. - 테마에 독립적인 레이아웃 및 크기 변수를 위한 UTKVariables.uss를 구현했습니다. - 스타일 및 이벤트 처리를 통해 열거형 선택을 위한 사용자 지정 드롭다운 컴포넌트(UTKEnumDropDown)를 개발했습니다. - 사용자 지정 스타일 및 이벤트 관리를 통해 각각 이중 입력 필드와 긴 입력 필드를 위한 UTKDoubleField 및 UTKLongField 컴포넌트를 생성했습니다.
324 lines
7.5 KiB
Plaintext
324 lines
7.5 KiB
Plaintext
/*
|
|
* ===================================
|
|
* UTKButton.uss
|
|
* 기본 버튼 컴포넌트 스타일
|
|
* ===================================
|
|
*/
|
|
|
|
/* ===================================
|
|
Base Button
|
|
=================================== */
|
|
|
|
.utk-button {
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding-left: var(--space-m);
|
|
padding-right: var(--space-m);
|
|
padding-top: var(--space-s);
|
|
padding-bottom: var(--space-s);
|
|
border-radius: var(--radius-s);
|
|
border-width: var(--border-width);
|
|
border-color: var(--color-border);
|
|
background-color: var(--color-btn-normal);
|
|
color: var(--color-text-primary);
|
|
transition-duration: var(--anim-fast);
|
|
transition-property: background-color, border-color, color;
|
|
cursor: resource('UIToolkit/Images/cursor_point_white_32') 14 5;
|
|
}
|
|
|
|
.utk-button:hover {
|
|
background-color: var(--color-btn-hover);
|
|
}
|
|
|
|
.utk-button:active {
|
|
background-color: var(--color-btn-pressed);
|
|
}
|
|
|
|
.utk-button:focus {
|
|
border-color: var(--color-border-focus);
|
|
}
|
|
|
|
/* ===================================
|
|
Button Icon
|
|
=================================== */
|
|
|
|
.utk-button__icon {
|
|
font-size: var(--font-size-body1);
|
|
color: var(--color-text-primary);
|
|
margin: 0;
|
|
padding: 0;
|
|
-unity-text-align: middle-center;
|
|
align-self: center;
|
|
}
|
|
|
|
.utk-button--has-icon .utk-button__icon {
|
|
margin-right: var(--space-s);
|
|
}
|
|
|
|
/* ===================================
|
|
Button Text
|
|
=================================== */
|
|
|
|
.utk-button__text {
|
|
font-size: var(--font-size-body2);
|
|
color: var(--color-text-primary);
|
|
-unity-text-align: middle-center;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
/* ===================================
|
|
Icon Only Mode
|
|
=================================== */
|
|
|
|
.utk-button--icon-only {
|
|
padding: 0;
|
|
min-width: auto;
|
|
width: var(--size-icon-btn);
|
|
height: var(--size-icon-btn);
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.utk-button--icon-only .utk-button__icon {
|
|
margin: 0;
|
|
padding: 0;
|
|
align-self: center;
|
|
}
|
|
|
|
/* ===================================
|
|
Size Variants
|
|
=================================== */
|
|
|
|
.utk-button--small {
|
|
height: 20px;
|
|
min-width: 60px;
|
|
padding-left: var(--space-s);
|
|
padding-right: var(--space-s);
|
|
font-size: var(--font-size-label3);
|
|
}
|
|
|
|
.utk-button--small .utk-button__text {
|
|
font-size: var(--font-size-label3);
|
|
}
|
|
|
|
.utk-button--small .utk-button__icon {
|
|
font-size: var(--font-size-label3);
|
|
}
|
|
|
|
.utk-button--medium {
|
|
height: var(--size-btn-height);
|
|
min-width: var(--size-btn-min-width);
|
|
}
|
|
|
|
.utk-button--large {
|
|
height: 32px;
|
|
min-width: 100px;
|
|
padding-left: var(--space-l);
|
|
padding-right: var(--space-l);
|
|
}
|
|
|
|
.utk-button--large .utk-button__text {
|
|
font-size: var(--font-size-body1);
|
|
}
|
|
|
|
.utk-button--large .utk-button__icon {
|
|
font-size: var(--font-size-body1);
|
|
}
|
|
|
|
/* ===================================
|
|
Style Variants
|
|
=================================== */
|
|
|
|
/* Normal (Default) */
|
|
.utk-button--normal {
|
|
background-color: var(--color-btn-normal);
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.utk-button--normal:hover {
|
|
background-color: var(--color-btn-hover);
|
|
}
|
|
|
|
.utk-button--normal:active {
|
|
background-color: var(--color-btn-pressed);
|
|
}
|
|
|
|
/* Primary */
|
|
.utk-button--primary {
|
|
background-color: var(--color-btn-primary);
|
|
border-color: var(--color-btn-primary);
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
.utk-button--primary:hover {
|
|
background-color: var(--color-btn-primary-hover);
|
|
border-color: var(--color-btn-primary-hover);
|
|
}
|
|
|
|
.utk-button--primary:active {
|
|
background-color: var(--color-blue-04);
|
|
border-color: var(--color-blue-04);
|
|
}
|
|
|
|
.utk-button--primary .utk-button__text,
|
|
.utk-button--primary .utk-button__icon {
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
/* Secondary */
|
|
.utk-button--secondary {
|
|
background-color: var(--color-btn-secondary);
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.utk-button--secondary:hover {
|
|
background-color: var(--color-btn-secondary-hover);
|
|
}
|
|
|
|
/* Ghost (Transparent) */
|
|
.utk-button--ghost {
|
|
background-color: transparent;
|
|
border-color: transparent;
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.utk-button--ghost:hover {
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.utk-button--ghost:active {
|
|
background-color: rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
/* Danger */
|
|
.utk-button--danger {
|
|
background-color: var(--color-red-01);
|
|
border-color: var(--color-red-01);
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
.utk-button--danger:hover {
|
|
background-color: var(--color-red-02);
|
|
border-color: var(--color-red-02);
|
|
}
|
|
|
|
.utk-button--danger .utk-button__text,
|
|
.utk-button--danger .utk-button__icon {
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
/* ===================================
|
|
Outline Variants
|
|
=================================== */
|
|
|
|
/* Outline Normal */
|
|
.utk-button--outline-normal {
|
|
background-color: transparent;
|
|
border-color: var(--color-border);
|
|
border-width: 1px;
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.utk-button--outline-normal:hover {
|
|
background-color: var(--color-btn-hover);
|
|
border-color: var(--color-text-primary);
|
|
}
|
|
|
|
.utk-button--outline-normal:active {
|
|
background-color: var(--color-btn-pressed);
|
|
}
|
|
|
|
.utk-button--outline-normal .utk-button__text,
|
|
.utk-button--outline-normal .utk-button__icon {
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
/* Outline Primary */
|
|
.utk-button--outline-primary {
|
|
background-color: transparent;
|
|
border-color: var(--color-btn-primary);
|
|
border-width: 1px;
|
|
color: var(--color-btn-primary);
|
|
}
|
|
|
|
.utk-button--outline-primary:hover {
|
|
background-color: var(--color-btn-primary);
|
|
border-color: var(--color-btn-primary);
|
|
}
|
|
|
|
.utk-button--outline-primary:active {
|
|
background-color: var(--color-btn-primary-hover);
|
|
border-color: var(--color-btn-primary-hover);
|
|
}
|
|
|
|
.utk-button--outline-primary .utk-button__text,
|
|
.utk-button--outline-primary .utk-button__icon {
|
|
color: var(--color-btn-primary);
|
|
}
|
|
|
|
.utk-button--outline-primary:hover .utk-button__text,
|
|
.utk-button--outline-primary:hover .utk-button__icon {
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
/* Outline Danger */
|
|
.utk-button--outline-danger {
|
|
background-color: transparent;
|
|
border-color: var(--color-red-01);
|
|
border-width: 1px;
|
|
color: var(--color-red-01);
|
|
}
|
|
|
|
.utk-button--outline-danger:hover {
|
|
background-color: var(--color-red-01);
|
|
border-color: var(--color-red-01);
|
|
}
|
|
|
|
.utk-button--outline-danger:active {
|
|
background-color: var(--color-red-02);
|
|
border-color: var(--color-red-02);
|
|
}
|
|
|
|
.utk-button--outline-danger .utk-button__text,
|
|
.utk-button--outline-danger .utk-button__icon {
|
|
color: var(--color-red-01);
|
|
}
|
|
|
|
.utk-button--outline-danger:hover .utk-button__text,
|
|
.utk-button--outline-danger:hover .utk-button__icon {
|
|
color: var(--color-text-on-primary);
|
|
}
|
|
|
|
/* ===================================
|
|
Disabled State
|
|
=================================== */
|
|
|
|
.utk-button--disabled {
|
|
background-color: var(--color-btn-disabled);
|
|
border-color: var(--color-border);
|
|
color: var(--color-text-disabled);
|
|
cursor: arrow;
|
|
}
|
|
|
|
.utk-button--disabled:hover {
|
|
background-color: var(--color-btn-disabled);
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
.utk-button--disabled:active {
|
|
background-color: var(--color-btn-disabled);
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
.utk-button--disabled:focus {
|
|
border-color: var(--color-border);
|
|
}
|
|
|
|
.utk-button--disabled .utk-button__text,
|
|
.utk-button--disabled .utk-button__icon {
|
|
color: var(--color-text-disabled);
|
|
}
|