UIToolkit Sample uxml로 전환

This commit is contained in:
logonkhi
2026-01-20 20:18:47 +09:00
parent ee86f93814
commit fd8f8c6de0
202 changed files with 3614 additions and 1440 deletions

View File

@@ -18,7 +18,8 @@
"mcp__UnityMCP__execute_menu_item", "mcp__UnityMCP__execute_menu_item",
"mcp__UnityMCP__manage_editor", "mcp__UnityMCP__manage_editor",
"Bash(timeout:*)", "Bash(timeout:*)",
"mcp__UnityMCP__manage_asset" "mcp__UnityMCP__manage_asset",
"mcp__UnityMCP__manage_scene"
], ],
"deny": [], "deny": [],
"ask": [] "ask": []

File diff suppressed because one or more lines are too long

View File

@@ -83,6 +83,7 @@
border-bottom-color: var(--color-border); border-bottom-color: var(--color-border);
transition-duration: var(--anim-fast); transition-duration: var(--anim-fast);
transition-property: background-color, color; transition-property: background-color, color;
height: 12px;
} }
.utk-number-stepper__btn:hover { .utk-number-stepper__btn:hover {
@@ -119,3 +120,37 @@
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
border-bottom-right-radius: var(--radius-s); border-bottom-right-radius: var(--radius-s);
} }
/* ===================================
Disabled State
=================================== */
.utk-number-stepper--disabled {
cursor: arrow;
}
.utk-number-stepper--disabled .utk-number-stepper__text-input {
background-color: var(--color-btn-disabled);
color: var(--color-text-disabled);
cursor: arrow;
}
.utk-number-stepper--disabled .utk-number-stepper__text-input:hover {
border-color: var(--color-border);
}
.utk-number-stepper--disabled .utk-number-stepper__btn {
background-color: var(--color-btn-disabled);
color: var(--color-text-disabled);
cursor: arrow;
}
.utk-number-stepper--disabled .utk-number-stepper__btn:hover {
background-color: var(--color-btn-disabled);
color: var(--color-text-disabled);
}
.utk-number-stepper--disabled .utk-number-stepper__btn:active {
background-color: var(--color-btn-disabled);
}

View File

@@ -45,8 +45,8 @@
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
flex-grow: 1; flex-grow: 1;
margin-top: var(--space-l); margin-top: var(--space-xxl);
margin-bottom: var(--space-l); margin-bottom: var(--space-xxl);
} }
/* =================================== /* ===================================

View File

@@ -13,6 +13,8 @@
flex-direction: column; flex-direction: column;
background-color: var(--color-bg-panel); background-color: var(--color-bg-panel);
border-radius: var(--radius-m); border-radius: var(--radius-m);
border-width: var(--border-width);
border-color: var(--color-border);
overflow: hidden; overflow: hidden;
} }
@@ -28,7 +30,13 @@
.utk-panel--elevated { .utk-panel--elevated {
background-color: var(--color-bg-elevated); background-color: var(--color-bg-elevated);
border-width: 0; border-width: var(--border-width);
border-color: var(--color-border-light);
/* Unity USS는 box-shadow 미지원, 테두리로 입체감 표현 */
border-right-width: 2px;
border-bottom-width: 2px;
border-right-color: rgba(0, 0, 0, 0.4);
border-bottom-color: rgba(0, 0, 0, 0.4);
} }
.utk-panel--outlined { .utk-panel--outlined {
@@ -72,9 +80,10 @@
=================================== */ =================================== */
.utk-panel__title { .utk-panel__title {
font-size: var(--font-size-body1); font-size: var(--font-size-label1);
color: var(--color-text-primary); color: var(--color-text-primary);
-unity-font-style: bold; -unity-font-style: bold;
flex-grow: 1;
} }
/* =================================== /* ===================================
@@ -95,9 +104,11 @@
padding: var(--space-l); padding: var(--space-l);
} }
.utk-panel__content .unity-label { /* Content 내부 Label 텍스트 스타일 */
.utk-panel__content-label {
font-size: var(--font-size-body2); font-size: var(--font-size-body2);
color: var(--color-text-primary); color: var(--color-text-secondary);
margin-bottom: var(--space-s);
} }
.utk-panel--collapsed .utk-panel__content { .utk-panel--collapsed .utk-panel__content {

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5f4ffddd9a542104db7833232dc195a3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
/*
* ===================================
* UTKButtonSample.uss
* Button Sample Specific Styles
* ===================================
*/
/* Additional button sample specific styles can be added here */

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0a09b83f4e42cb04e9e2779190e3a5a8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKButtonSample.uss" />
<VisualElement class="utk-sample-container">
<!-- Description -->
<Label class="utk-sample-desc" text="다양한 스타일의 버튼 컴포넌트" />
<!-- Filled Buttons -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Filled Buttons" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-primary" text="Primary" variant="Primary" />
<utk:UTKButton name="btn-normal" text="Normal" variant="Normal" />
<utk:UTKButton name="btn-danger" text="Danger" variant="Danger" />
</VisualElement>
</VisualElement>
<!-- Outline Buttons -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Outline Buttons" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-outline-primary" text="Outline Primary" variant="OutlinePrimary" />
<utk:UTKButton name="btn-outline-normal" text="Outline Normal" variant="OutlineNormal" />
<utk:UTKButton name="btn-outline-danger" text="Outline Danger" variant="OutlineDanger" />
</VisualElement>
</VisualElement>
<!-- Icon Only -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Icon Only" />
<VisualElement class="utk-sample-row" name="icon-only-row">
<!-- Icons will be set via C# code -->
</VisualElement>
</VisualElement>
<!-- Ghost -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Ghost" />
<VisualElement class="utk-sample-row" name="ghost-row">
<utk:UTKButton name="btn-ghost" text="Ghost" variant="Ghost" />
<!-- Ghost icon button will be set via C# -->
</VisualElement>
</VisualElement>
<!-- Text -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Text (Label/Icon Only)" />
<VisualElement class="utk-sample-row" name="text-row">
<utk:UTKButton name="btn-text-only" text="Text Only" variant="Text" />
<utk:UTKButton name="btn-text-link" text="Link Style" variant="Text" />
<!-- Text with icon will be set via C# -->
</VisualElement>
</VisualElement>
<!-- Text Icon Only (Circle) -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Text Icon Only (Circle)" />
<VisualElement class="utk-sample-row" name="text-icon-only-row">
<!-- Circle icon buttons will be set via C# -->
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-disabled-primary" text="Disabled" variant="Primary" is-enabled="false" />
<utk:UTKButton name="btn-disabled-normal" text="Disabled" variant="Normal" is-enabled="false" />
<utk:UTKButton name="btn-disabled-text" text="Disabled" variant="Text" is-enabled="false" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 34978706eb0e4c544b32876bec047e9a
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="체크박스 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="States" />
<VisualElement class="utk-sample-row">
<utk:UTKCheckBox name="cb-unchecked" text="Unchecked" />
<utk:UTKCheckBox name="cb-checked" text="Checked" is-checked="true" />
<utk:UTKCheckBox name="cb-indeterminate" text="Indeterminate" is-indeterminate="true" />
<utk:UTKCheckBox name="cb-disabled" text="Disabled" is-enabled="false" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: de315d9017f24f340ab4d7e317e7d43e
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="라디오 버튼 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Options" />
<VisualElement class="utk-sample-row">
<utk:UTKRadioButton name="radio-a" text="Option A" is-checked="true" />
<utk:UTKRadioButton name="radio-b" text="Option B" />
<utk:UTKRadioButton name="radio-c" text="Option C" />
<utk:UTKRadioButton name="radio-disabled" text="Disabled" is-enabled="false" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 88cadd91ceaaf3544942f6166250b63d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="토글 버튼 그룹 컴포넌트" />
<!-- Single Select -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Single Select" />
<VisualElement class="utk-sample-row" name="single-select-row">
<!-- UTKToggleButtonGroup will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Multi Select -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Multi Select" />
<VisualElement class="utk-sample-row" name="multi-select-row">
<!-- UTKToggleButtonGroup with multiple selection will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row" name="disabled-row">
<!-- Disabled UTKToggleButtonGroup will be created via C# -->
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 63c1c592c6c73cb4c8d47acedbd1e7a6
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="토글 스위치 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="States" />
<VisualElement class="utk-sample-row">
<utk:UTKToggle name="toggle-off" label="Off" />
<utk:UTKToggle name="toggle-on" label="On" is-on="true" />
<utk:UTKToggle name="toggle-disabled-off" label="Disabled Off" is-enabled="false" />
<utk:UTKToggle name="toggle-disabled-on" label="Disabled On" is-on="true" is-enabled="false" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 873a8769199d3d442a91e23cd5fd7485
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: eeb8b759e2653114ba08f548a850ecdf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,14 @@
/*
* ===================================
* UTKCardSample.uss
* Card Sample Specific Styles
* ===================================
*/
.utk-sample-card {
width: 200px;
}
.utk-sample-panel {
width: 300px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f246df85cf52a774d9b761254cf9793b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKCardSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="카드 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Cards" />
<VisualElement class="utk-sample-row">
<utk:UTKCard name="card-1" title="Card Title" subtitle="This is the card content." class="utk-sample-card" />
<utk:UTKCard name="card-2" title="Another Card" subtitle="Different content here." class="utk-sample-card" />
</VisualElement>
</VisualElement>
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Card Variants" />
<VisualElement class="utk-sample-row">
<utk:UTKCard name="card-elevated" title="Elevated" subtitle="기본 그림자 스타일" variant="Elevated" class="utk-sample-card" />
<utk:UTKCard name="card-outlined" title="Outlined" subtitle="외곽선 스타일" variant="Outlined" class="utk-sample-card" />
<utk:UTKCard name="card-filled" title="Filled" subtitle="채움 스타일" variant="Filled" class="utk-sample-card" />
</VisualElement>
</VisualElement>
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Clickable Card" />
<VisualElement class="utk-sample-row">
<utk:UTKCard name="card-clickable" title="클릭 가능" subtitle="클릭해 보세요" is-clickable="true" class="utk-sample-card" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 4cd1e0fe1aa260a4a96ae462f82f2b92
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKCardSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="패널 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Panel" />
<utk:UTKPanel name="panel-sample" title="Panel Title" class="utk-sample-panel">
<Label text="Panel content goes here" />
<Label text="More panel content" />
</utk:UTKPanel>
</VisualElement>
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Panel Variants" />
<utk:UTKPanel name="panel-elevated" title="Elevated Panel" variant="Elevated" class="utk-sample-panel">
<Label text="그림자가 있는 패널" />
</utk:UTKPanel>
<utk:UTKPanel name="panel-outlined" title="Outlined Panel" variant="Outlined" class="utk-sample-panel">
<Label text="외곽선 패널" />
</utk:UTKPanel>
<utk:UTKPanel name="panel-flat" title="Flat Panel" variant="Flat" class="utk-sample-panel">
<Label text="플랫 패널" />
</utk:UTKPanel>
</VisualElement>
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Collapsible Panel" />
<utk:UTKPanel name="panel-collapsible" title="접기 가능한 패널" is-collapsible="true" class="utk-sample-panel">
<Label text="헤더를 클릭하면 접힙니다." />
<Label text="추가 콘텐츠" />
</utk:UTKPanel>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 3b09f207589c6e04ba9d97b38789474b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6766c73083f11b345adfdb8db84ecfb6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="드롭다운 선택 컴포넌트" />
<!-- Normal -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Normal" />
<VisualElement class="utk-sample-row" name="dropdown-normal-row">
<!-- UTKDropdown will be created via C# to set options -->
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row" name="dropdown-disabled-row">
<!-- Disabled UTKDropdown will be created via C# -->
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0c7eba4e992ceaa498bc024531f51c16
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Enum 선택 드롭다운" />
<!-- Enum -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Enum" />
<VisualElement class="utk-sample-row" name="enum-dropdown-row">
<!-- UTKEnumDropDown will be created via C# to set enum type -->
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c3373cb0b5ef8254daefea32911a4fdc
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 28b417029abb76e43a8a639d11fb4f1d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKIconSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Material Symbols Outlined 아이콘 폰트 (UTKMaterialIcons 사용, ListView 가상화 적용)" />
<!-- Icon Count -->
<Label name="icon-count-label" class="utk-sample-icon-count" />
<!-- Search -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Search" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="icon-search" label="" placeholder="Search icons..." class="utk-sample-search-field" />
</VisualElement>
</VisualElement>
<!-- Icon Grid (will be populated via C#) -->
<VisualElement name="icon-grid-container" class="utk-sample-icon-grid-container" />
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 5661938a3cf91d64f815ccfd9186ecd6
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,77 @@
/*
* ===================================
* UTKIconSample.uss
* Icon Sample Specific Styles
* ===================================
*/
.utk-sample-icon-count {
margin-bottom: 10px;
color: rgba(153, 153, 153, 1);
}
.utk-sample-search-field {
width: 300px;
}
.utk-sample-icon-grid-container {
flex-grow: 1;
max-height: 500px;
}
.utk-sample-icon-item {
width: 80px;
height: 80px;
margin-right: 4px;
margin-bottom: 4px;
align-items: center;
justify-content: center;
background-color: rgba(38, 38, 38, 0.5);
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.utk-sample-icon-item:hover {
background-color: rgba(64, 64, 64, 0.8);
}
.utk-sample-icon-label {
color: white;
margin-bottom: 4px;
}
.utk-sample-icon-name {
font-size: 8px;
color: rgba(179, 179, 179, 1);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 76px;
-unity-text-align: middle-center;
}
.utk-sample-image-icon-item {
width: 100px;
height: 100px;
margin-right: 8px;
margin-bottom: 8px;
align-items: center;
justify-content: center;
background-color: rgba(38, 38, 38, 0.5);
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.utk-sample-image-icon-item:hover {
background-color: rgba(64, 64, 64, 0.8);
}
.utk-sample-image-icon-image {
width: 32px;
height: 32px;
margin-bottom: 4px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c9fb1130efb7f8e4db35e60765917ece
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKIconSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="이미지 기반 아이콘 (UTKImageIcons 사용, ListView 가상화 적용)" />
<!-- Icon Count -->
<Label name="image-icon-count-label" class="utk-sample-icon-count" />
<!-- Search -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Search" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="image-icon-search" label="" placeholder="Search image icons..." class="utk-sample-search-field" />
</VisualElement>
</VisualElement>
<!-- Image Icon Grid (will be populated via C#) -->
<VisualElement name="image-icon-grid-container" class="utk-sample-icon-grid-container" />
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a798bb7e417deb041ae65c92ec27eae6
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e151ad7022fcb224fa05643b2a8d82d7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKVectorFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Bounds 입력 필드 (center, extents)" />
<!-- Collision -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Collision" />
<VisualElement class="utk-sample-row">
<utk:UTKBoundsField name="bounds-collision" label="Bounds" class="utk-sample-bounds-field" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 58b4556141fd8ef4ea265e05145be88d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKInputFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Double 실수 입력 필드" />
<!-- Normal -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Normal" />
<VisualElement class="utk-sample-row">
<utk:UTKDoubleField name="double-value" label="Value" value="3.141592653589793" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKDoubleField name="double-disabled" label="Disabled" value="2.718281828459045" is-enabled="false" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 3d45df5f0948b75428740e11fdb621a7
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKInputFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="실수 입력 필드" />
<!-- Normal -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Normal" />
<VisualElement class="utk-sample-row">
<utk:UTKFloatField name="float-value" label="Value" value="3.14" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKFloatField name="float-disabled" label="Disabled" value="2.718" is-enabled="false" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 79d9ca4a0cbe66044952b1e88c841a99
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,14 @@
/*
* ===================================
* UTKInputFieldSample.uss
* Input Field Sample Specific Styles
* ===================================
*/
.utk-sample-input-field {
width: 250px;
}
.utk-sample-input-field--narrow {
width: 200px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6db431c1a11483943b4f68d3e57e9a4a
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKInputFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="텍스트 입력 필드" />
<!-- With Label -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="With Label" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="input-username" label="Username" placeholder="Enter your name..." class="utk-sample-input-field" />
</VisualElement>
</VisualElement>
<!-- No Label -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="No Label" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="input-search" label="" placeholder="Search..." class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="input-disabled" label="Disabled" placeholder="Cannot edit..." is-enabled="false" class="utk-sample-input-field" />
</VisualElement>
</VisualElement>
<!-- No Label Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="No Label Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKInputField name="input-no-label-disabled" label="" placeholder="Cannot edit..." is-enabled="false" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7987d56d01158c54ea332b1b2c49fd5d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKInputFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="정수 입력 필드" />
<!-- Normal -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Normal" />
<VisualElement class="utk-sample-row">
<utk:UTKIntegerField name="int-count" label="Count" value="42" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKIntegerField name="int-disabled" label="Disabled" value="100" is-enabled="false" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 80c6032849f5bdc4b9ec54d8a99a07e5
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKInputFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Long 정수 입력 필드" />
<!-- Normal -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Normal" />
<VisualElement class="utk-sample-row">
<utk:UTKLongField name="long-value" label="Value" value="1234567890" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row">
<utk:UTKLongField name="long-disabled" label="Disabled" value="9876543210" is-enabled="false" class="utk-sample-input-field--narrow" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: d7b2f0c3d38d4534fa954d1a9e10ad07
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,10 @@
/*
* ===================================
* UTKNumberStepperSample.uss
* Number Stepper Sample Specific Styles
* ===================================
*/
.utk-sample-stepper {
width: 150px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d95dfd14b14380546a59b0d14ab94818
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKNumberStepperSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="숫자 스테퍼 컴포넌트 (증감 버튼 포함)" />
<!-- Step 1 -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Step 1" />
<VisualElement class="utk-sample-row">
<utk:UTKNumberStepper name="stepper-step1" min-value="0" max-value="100" value="50" step="1" class="utk-sample-stepper" />
</VisualElement>
</VisualElement>
<!-- Step 5 -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Step 5" />
<VisualElement class="utk-sample-row">
<utk:UTKNumberStepper name="stepper-step5" min-value="0" max-value="100" value="25" step="5" class="utk-sample-stepper" />
</VisualElement>
</VisualElement>
<!-- Wrap Around -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Wrap Around" />
<VisualElement class="utk-sample-row">
<utk:UTKNumberStepper name="stepper-wrap" min-value="0" max-value="100" value="0" step="10" wrap-around="true" class="utk-sample-stepper" />
</VisualElement>
</VisualElement>
<!-- Disabled -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Disabled" />
<VisualElement class="utk-sample-row" name="stepper-disabled-row">
<!-- Disabled stepper will be created via C# to call SetEnabled(false) -->
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: cde67583f4f12ee45808ea0b9e2e79ef
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKVectorFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="Rect 입력 필드 (x, y, width, height)" />
<!-- Bounds -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Bounds" />
<VisualElement class="utk-sample-row">
<utk:UTKRectField name="rect-area" label="Area" class="utk-sample-rect-field" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 4c566ffc57ba33a4c9327bed1b632844
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKVectorFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="2D 벡터 입력 필드" />
<!-- Position -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Position" />
<VisualElement class="utk-sample-row">
<utk:UTKVector2Field name="vec2-position" label="Position" class="utk-sample-vector2-field" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: bc5d57bf0edb08c42a5198bf9e3f67a9
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKVectorFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="3D 벡터 입력 필드" />
<!-- Position -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Position" />
<VisualElement class="utk-sample-row">
<utk:UTKVector3Field name="vec3-position" label="Position" class="utk-sample-vector3-field" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 9b0085e185736434c920abf38e7a6be7
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKVectorFieldSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="4D 벡터 입력 필드" />
<!-- Value -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Value" />
<VisualElement class="utk-sample-row">
<utk:UTKVector4Field name="vec4-color" label="Color" class="utk-sample-vector4-field" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: bd3f48a7687519e4fa0d4b0b7b5bdad7
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,26 @@
/*
* ===================================
* UTKVectorFieldSample.uss
* Vector Field Sample Specific Styles
* ===================================
*/
.utk-sample-vector2-field {
width: 250px;
}
.utk-sample-vector3-field {
width: 300px;
}
.utk-sample-vector4-field {
width: 350px;
}
.utk-sample-rect-field {
width: 300px;
}
.utk-sample-bounds-field {
width: 350px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 14adcd09b88b748489f4368ab3768ae0
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4a8f39572c2fc634ca1c060e9f44690a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="도움말 박스 컴포넌트" />
<VisualElement class="utk-sample-column">
<utk:UTKHelpBox name="helpbox-info" text="This is an info message." message-type="Info" />
<utk:UTKHelpBox name="helpbox-warning" text="This is a warning message." message-type="Warning" />
<utk:UTKHelpBox name="helpbox-error" text="This is an error message." message-type="Error" />
<utk:UTKHelpBox name="helpbox-none" text="This is a plain message." message-type="None" />
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e6e39895eeba53a4c9361d1175c32060
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
/*
* ===================================
* UTKLabelSample.uss
* Label Sample Specific Styles
* ===================================
*/
/* Additional label sample specific styles can be added here */

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 31288bb604abfb545bea9e80d61eea51
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKLabelSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="다양한 크기와 아이콘을 지원하는 라벨 컴포넌트" />
<!-- Text Sizes -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Text Sizes" />
<VisualElement class="utk-sample-column">
<utk:UTKLabel name="label-h1" text="H1 Heading" size="H1" />
<utk:UTKLabel name="label-h2" text="H2 Heading" size="H2" />
<utk:UTKLabel name="label-h3" text="H3 Heading" size="H3" />
<utk:UTKLabel name="label-body1" text="Body1 Text" size="Body1" />
<utk:UTKLabel name="label-body2" text="Body2 Text" size="Body2" />
<utk:UTKLabel name="label-caption" text="Caption Text" size="Caption" />
</VisualElement>
</VisualElement>
<!-- Material Icon + Text -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Material Icon + Text" />
<VisualElement class="utk-sample-row" name="material-icon-row">
<!-- Labels with material icons will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Icon Right -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Icon Right" />
<VisualElement class="utk-sample-row" name="icon-right-row">
<!-- Labels with icons on right will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Image Icon + Text -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Image Icon + Text" />
<VisualElement class="utk-sample-row" name="image-icon-row">
<!-- Labels with image icons will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Material Icon Only -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Material Icon Only" />
<VisualElement class="utk-sample-row" name="material-icon-only-row">
<!-- Icon-only labels will be created via C# -->
</VisualElement>
</VisualElement>
<!-- Variants -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Variants" />
<VisualElement class="utk-sample-row">
<utk:UTKLabel name="label-primary" text="Primary" variant="Primary" />
<utk:UTKLabel name="label-secondary" text="Secondary" variant="Secondary" />
<utk:UTKLabel name="label-success" text="Success" variant="Success" />
<utk:UTKLabel name="label-warning" text="Warning" variant="Warning" />
<utk:UTKLabel name="label-error" text="Error" variant="Error" />
<utk:UTKLabel name="label-disabled" text="Disabled" variant="Disabled" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 6564351f49702674483471bd109f95b8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 88181e7dc2f8e5447b61150be465ee33
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="접을 수 있는 섹션 컴포넌트" />
<VisualElement class="utk-sample-column">
<utk:UTKFoldout name="foldout-expanded" Title="Expanded Section" IsExpanded="true">
<Label text="Content inside the foldout" />
<Label text="More content here" />
</utk:UTKFoldout>
<utk:UTKFoldout name="foldout-collapsed" Title="Collapsed Section" IsExpanded="false">
<Label text="Hidden content" />
</utk:UTKFoldout>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7b0dcd8d51f68354b91889b20f928e03
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,31 @@
/*
* ===================================
* UTKListSample.uss
* List Sample Specific Styles
* ===================================
*/
.utk-sample-listview {
height: 200px;
width: 300px;
}
.utk-sample-treeview {
height: 200px;
width: 300px;
}
.utk-sample-multicolumn-listview {
height: 200px;
width: 450px;
}
.utk-sample-multicolumn-treeview {
height: 220px;
width: 450px;
}
.utk-sample-scrollview {
height: 150px;
width: 200px;
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7f1277911d8979640b90119cc52649e6
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
disableValidation: 0

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKListSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="가상화된 리스트 뷰 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="ListView" />
<utk:UTKListView name="listview-sample" class="utk-sample-listview" />
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 2d68b51000ac86a4eb0a88ca96123f57
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKListSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="멀티 컬럼 리스트 뷰 (정렬 가능한 테이블)" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="MultiColumnListView" />
<utk:UTKMultiColumnListView name="multicolumn-listview-sample" class="utk-sample-multicolumn-listview" />
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 16a79c08898ab9d489b0451eb74d8f52
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKListSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="멀티 컬럼 트리 뷰 (계층적 테이블)" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="MultiColumnTreeView" />
<utk:UTKMultiColumnTreeView name="multicolumn-treeview-sample" class="utk-sample-multicolumn-treeview" />
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 1c0586e083d2ee748834b2462bbe4d7e
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKListSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="스크롤 뷰 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="ScrollViews" />
<VisualElement class="utk-sample-row">
<!-- Vertical Scroll -->
<utk:UTKScrollView name="scroll-vertical" class="utk-sample-scrollview">
<Label text="Vertical Item 1" />
<Label text="Vertical Item 2" />
<Label text="Vertical Item 3" />
<Label text="Vertical Item 4" />
<Label text="Vertical Item 5" />
<Label text="Vertical Item 6" />
<Label text="Vertical Item 7" />
<Label text="Vertical Item 8" />
<Label text="Vertical Item 9" />
<Label text="Vertical Item 10" />
<Label text="Vertical Item 11" />
<Label text="Vertical Item 12" />
<Label text="Vertical Item 13" />
<Label text="Vertical Item 14" />
<Label text="Vertical Item 15" />
</utk:UTKScrollView>
<!-- Horizontal scroll will be created via C# -->
<VisualElement name="horizontal-scroll-container" class="utk-sample-scrollview" />
<!-- Both scroll will be created via C# -->
<VisualElement name="both-scroll-container" class="utk-sample-scrollview" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 25ea0aad4b59aff45ad24e4d8e777ad3
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKListSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="트리 뷰 컴포넌트" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="TreeView" />
<utk:UTKTreeView name="treeview-sample" class="utk-sample-treeview" />
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c54d2d248c5696441888adcb8ad34555
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 02730e562994334488d08f88d58e8831
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="알림 다이얼로그 (async/await 지원)" />
<!-- Alert Types (Async) -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Alert Types (Async)" />
<VisualElement class="utk-sample-row" name="alert-types-row">
<utk:UTKButton name="btn-info" text="Info" variant="Primary" />
<utk:UTKButton name="btn-success" text="Success" variant="Normal" />
<utk:UTKButton name="btn-warning" text="Warning" variant="Normal" />
<utk:UTKButton name="btn-error" text="Error" variant="Danger" />
</VisualElement>
</VisualElement>
<!-- Confirm Dialog (Async) -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Confirm Dialog (Async)" />
<VisualElement class="utk-sample-row" name="confirm-row">
<utk:UTKButton name="btn-confirm" text="Confirm" variant="Normal" />
<utk:UTKButton name="btn-confirm-custom" text="Custom Labels" variant="Normal" />
</VisualElement>
</VisualElement>
<!-- Callback Style -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Callback Style" />
<VisualElement class="utk-sample-row" name="callback-row">
<utk:UTKButton name="btn-callback" text="With Callback" variant="OutlineNormal" />
<utk:UTKButton name="btn-confirm-callback" text="Confirm Callback" variant="OutlineNormal" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7d47aac67f766d14aa58e505f18eae87
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="토스트 알림" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Toasts" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-toast-info" text="Info Toast" variant="Primary" />
<utk:UTKButton name="btn-toast-success" text="Success Toast" variant="Normal" />
<utk:UTKButton name="btn-toast-warning" text="Warning Toast" variant="Normal" />
<utk:UTKButton name="btn-toast-error" text="Error Toast" variant="Danger" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 16b2e4c7815da7b44a06f24024a88d20
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="툴팁 컴포넌트 (마우스 오버 시 표시)" />
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Hover over buttons" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-short-tooltip" text="Short Tooltip" variant="Normal" />
<utk:UTKButton name="btn-long-tooltip" text="Long Tooltip" variant="Normal" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 047afd13aa949d64e92a370a8f574bd3
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 16f2e078ac0b99c4ebc779919d086fb2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<Style src="UTKPickerSample.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="색상 선택 컴포넌트 (버튼 클릭으로 모달 표시)" />
<!-- Current Color Preview -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Current Color" />
<VisualElement class="utk-sample-row">
<VisualElement name="color-preview-box" class="utk-sample-color-preview" />
<Label name="color-hex-label" text="#FFFFFFFF" />
</VisualElement>
</VisualElement>
<!-- With Alpha -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="With Alpha" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-color-alpha" text="Open Color Picker (Alpha)" variant="Primary" />
</VisualElement>
</VisualElement>
<!-- Without Alpha -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Without Alpha" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-color-no-alpha" text="Open Color Picker (No Alpha)" variant="Normal" />
</VisualElement>
</VisualElement>
<!-- Async -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Async/Await" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-color-async" text="Open Color Picker (Async)" variant="Normal" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: daef6e61e809ee743a9737ae89f49a25
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<UXML xmlns="UnityEngine.UIElements" xmlns:utk="UVC.UIToolkit">
<Style src="../UTKSampleCommon.uss" />
<VisualElement class="utk-sample-container">
<Label class="utk-sample-desc" text="날짜 선택 컴포넌트 (버튼 클릭으로 모달 표시)" />
<!-- Current Date -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Current Date" />
<VisualElement class="utk-sample-row">
<Label name="date-label" text="Selected: 2026-01-20" />
</VisualElement>
</VisualElement>
<!-- Date Only -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Date Only" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-date-only" text="Open Date Picker" variant="Primary" />
</VisualElement>
</VisualElement>
<!-- Date & Time -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Date &amp; Time" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-date-time" text="Open DateTime Picker" variant="Normal" />
</VisualElement>
</VisualElement>
<!-- Async -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Async/Await" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-date-async" text="Open Date Picker (Async)" variant="Normal" />
</VisualElement>
</VisualElement>
<!-- Date Range -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Date Range" />
<VisualElement class="utk-sample-row">
<Label name="range-date-label" text="Range: 2026-01-20 ~ 2026-01-27" />
</VisualElement>
</VisualElement>
<!-- Range Picker -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Date Range" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-range" text="Open Range Picker" variant="Normal" />
</VisualElement>
</VisualElement>
<!-- Range Async -->
<VisualElement class="utk-sample-section">
<Label class="utk-sample-section__title" text="Range Async" />
<VisualElement class="utk-sample-row">
<utk:UTKButton name="btn-range-async" text="Open Range Picker (Async)" variant="Normal" />
</VisualElement>
</VisualElement>
</VisualElement>
</UXML>

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 28c79f87e64f6794ca1a62c48db9de85
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

Some files were not shown because too many files have changed in this diff Show More