Files
XRLib/Assets/Resources/UIToolkit/Input/UTKInputField.uss
2026-02-02 19:33:27 +09:00

158 lines
3.9 KiB
Plaintext

/*
* ===================================
* UTKInputField.uss
* Unity TextField 래핑 스타일
* ===================================
*/
/* ===================================
Base Container
=================================== */
.utk-input {
flex-direction: row;
align-items: center;
}
/* ===================================
Label
=================================== */
.utk-input > .unity-label {
min-width: 60px;
margin-right: var(--space-m);
font-size: var(--font-size-body2);
color: var(--color-text-primary);
-unity-text-align: middle-left;
}
/* ===================================
Text Input
=================================== */
.utk-input > .unity-base-text-field__input {
flex-grow: 1;
height: var(--size-input-height);
min-width: 120px;
padding-left: var(--space-m);
padding-right: var(--space-m);
background-color: var(--color-bg-input);
border-width: var(--border-width);
border-color: var(--color-border);
border-radius: var(--radius-s);
font-size: var(--font-size-body2);
color: var(--color-text-primary);
--unity-cursor-color: var(--color-text-primary);
transition-duration: var(--anim-fast);
transition-property: border-color, background-color;
}
.utk-input > .unity-base-text-field__input:hover {
border-color: var(--color-btn-primary);
}
.utk-input > .unity-base-text-field__input:focus {
border-color: var(--color-border-focus);
}
/* Hide all inner TextField borders */
.utk-input .unity-text-input {
border-width: 0;
background-color: transparent;
padding: 0;
margin: 0;
}
/* ===================================
Placeholder
=================================== */
.utk-input .unity-text-element--placeholder {
color: var(--color-text-secondary);
}
/* ===================================
Multiline
=================================== */
.utk-input--multiline > .unity-base-text-field__input {
height: auto;
min-height: 24px;
padding-top: var(--space-s);
padding-bottom: var(--space-s);
white-space: normal;
align-items: flex-start;
}
/* Note: min-width: 60px (label), min-width: 120px (input), min-height: 24px (multiline)
are intentionally kept as fixed values for layout consistency */
/* ===================================
Error State
=================================== */
.utk-input--error > .unity-base-text-field__input {
border-color: var(--color-border-error);
}
.utk-input--error > .unity-label {
color: var(--color-state-error);
}
/* ===================================
Variants
=================================== */
/* Default */
.utk-input--default > .unity-base-text-field__input {
background-color: var(--color-bg-input);
}
/* Filled */
.utk-input--filled > .unity-base-text-field__input {
background-color: var(--color-btn-normal);
border-width: 0;
border-bottom-width: var(--border-width-thick);
border-radius: var(--radius-s) var(--radius-s) 0 0;
}
.utk-input--filled.utk-input--focused > .unity-base-text-field__input {
border-bottom-color: var(--color-border-focus);
}
/* Outlined */
.utk-input--outlined > .unity-base-text-field__input {
background-color: transparent;
border-width: var(--border-width-thick);
}
/* ===================================
Read Only
=================================== */
.utk-input--readonly > .unity-base-text-field__input {
background-color: var(--color-btn-disabled);
}
/* ===================================
Disabled State
=================================== */
.utk-input--disabled {
cursor: arrow;
}
.utk-input--disabled > .unity-base-text-field__input {
background-color: var(--color-btn-disabled);
color: var(--color-text-disabled);
cursor: arrow;
}
.utk-input--disabled > .unity-base-text-field__input:hover {
border-color: var(--color-border);
}
.utk-input--disabled > .unity-label {
color: var(--color-text-disabled);
}