persona_create / styles /custom.css
haepada's picture
Update styles/custom.css
0f3d71d verified
/* 전체 UI 스타일 */
body {
font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
}
/* 이미지 업로더 스타일 개선 */
#object_image_uploader {
border: 2px dashed #4f46e5;
border-radius: 0.5rem;
padding: 1rem;
background-color: #f5f7ff;
transition: all 0.3s ease;
margin-bottom: 1rem;
}
#object_image_uploader:hover {
border-color: #3730a3;
background-color: #e0e7ff;
}
#object_image_uploader .gradio-image-upload {
border: none !important;
background: transparent !important;
}
#object_image_uploader .gradio-image {
border-radius: 0.5rem;
overflow: hidden;
}
#object_image_uploader img {
object-fit: contain !important;
max-height: 260px;
width: auto;
margin: 0 auto;
display: block;
}
/* 기본 이미지 제거 */
#object_image_uploader .fixed-height > img:first-child,
#object_image_uploader img[alt="사물 이미지 (선택사항)"] {
display: none !important;
}
/* 라벨 요소 숨김 - Svelte 특정 클래스 타겟팅 */
label.svelte-1to105q.float,
.svelte-1to105q.float,
[class*="svelte"][class*="float"],
#object_image_uploader .float {
display: none !important;
opacity: 0 !important;
visibility: hidden !important;
}
/* 이미지 위 텍스트 오버레이 제거 */
#object_image_uploader .overlay-text,
#object_image_uploader [class*="overlay"],
#object_image_uploader span:not(button span) {
display: none !important;
opacity: 0 !important;
visibility: hidden !important;
}
/* 이미지 라벨 모두 제거 */
#object_image_uploader label,
div:has(> #object_image_uploader) label {
display: none !important;
}
/* 업로드 버튼 스타일 개선 */
#object_image_uploader button {
background-color: #e0e7ff;
color: #4338ca;
transition: all 0.2s ease;
}
#object_image_uploader button:hover {
background-color: #c7d2fe;
}
/* 제목 스타일 */
h1 {
font-weight: 700;
color: #3730a3;
margin-bottom: 1.5rem;
}
h2 {
font-weight: 600;
color: #4f46e5;
margin-top: 1.5rem;
margin-bottom: 1rem;
}
h3 {
font-weight: 600;
color: #6366f1;
margin-top: 1rem;
margin-bottom: 0.5rem;
}
/* 탭 스타일 */
.tabs {
border-radius: 0.5rem;
overflow: hidden;
}
/* 슬라이더 스타일 */
.slider-container {
margin-bottom: 1rem;
}
.slider {
height: 0.5rem;
border-radius: 0.25rem;
}
.slider-track {
background: #e0e7ff;
}
.slider-track-highlight {
background: #4f46e5;
}
.slider-handle {
width: 1rem;
height: 1rem;
background: #4f46e5;
border: 2px solid #fff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
/* 버튼 스타일 */
.primary-button {
background: #4f46e5;
color: white;
font-weight: 600;
border-radius: 0.375rem;
padding: 0.5rem 1rem;
transition: background-color 0.2s;
}
.primary-button:hover {
background: #3730a3;
}
.secondary-button {
background: #e0e7ff;
color: #4338ca;
font-weight: 600;
border-radius: 0.375rem;
padding: 0.5rem 1rem;
transition: background-color 0.2s;
}
.secondary-button:hover {
background: #c7d2fe;
}
/* 입력 필드 스타일 */
.input-container {
margin-bottom: 1rem;
}
.text-input {
border-radius: 0.375rem;
border: 1px solid #d1d5db;
padding: 0.5rem;
width: 100%;
}
.text-input:focus {
border-color: #4f46e5;
outline: none;
box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
}
/* 채팅 UI 스타일 */
.chatbot-container {
height: 60vh;
border-radius: 0.5rem;
overflow: hidden;
border: 1px solid #e5e7eb;
}
.user-message {
background: #f9fafb;
padding: 0.75rem;
border-radius: 0.5rem;
margin-bottom: 0.5rem;
}
.assistant-message {
background: #e0e7ff;
padding: 0.75rem;
border-radius: 0.5rem;
margin-bottom: 0.5rem;
}
/* 라디오 버튼과 체크박스 스타일 */
.radio-group, .checkbox-group {
margin-bottom: 1rem;
}
.radio-item, .checkbox-item {
margin-bottom: 0.25rem;
}
/* JSON 표시 스타일 */
.json-container {
font-family: 'Roboto Mono', monospace;
font-size: 0.875rem;
background: #f9fafb;
border-radius: 0.375rem;
padding: 1rem;
overflow: auto;
max-height: 30vh;
}
/* 테이블 스타일 */
table {
width: 100%;
border-collapse: collapse;
}
th {
background: #f3f4f6;
padding: 0.5rem;
text-align: left;
font-weight: 600;
}
td {
padding: 0.5rem;
border-top: 1px solid #e5e7eb;
}
tr:hover {
background: #f9fafb;
}
/* 성격 특성 시각화 스타일 */
.trait-container {
display: flex;
align-items: center;
margin-bottom: 0.5rem;
}
.trait-label {
width: 6rem;
font-weight: 500;
}
.trait-bar {
flex-grow: 1;
height: 0.5rem;
background: #e0e7ff;
border-radius: 0.25rem;
overflow: hidden;
}
.trait-bar-fill {
height: 100%;
background: #4f46e5;
}
.trait-value {
width: 2.5rem;
text-align: right;
font-weight: 500;
font-size: 0.875rem;
}
/* 반응형 레이아웃 */
@media (max-width: 768px) {
.trait-label {
width: 4rem;
}
.two-column-container {
display: block !important;
}
.column {
width: 100% !important;
margin-bottom: 1rem;
}
}
/* 애니메이션 효과 */
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in {
animation: fade-in 0.3s ease-in-out;
}