Spaces:
Running
on
Zero
Running
on
Zero
| /* LoRA Studio - Pure Dark Theme - Force Override */ | |
| /* 전체 배경 강제 적용 */ | |
| * { | |
| box-sizing: border-box ; | |
| } | |
| .gradio-container, .gradio-container * { | |
| background: #000000 ; | |
| color: #ffffff ; | |
| } | |
| .gradio-container { | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| width: 100vw ; | |
| min-height: 100vh ; | |
| } | |
| /* 모든 컨테이너와 패널을 강제로 어둡게 */ | |
| .gr-panel, .gr-box, .gr-form, .gr-block, .panel, .block, .container { | |
| background: #0a0a0a ; | |
| border-color: #333333 ; | |
| } | |
| /* 메인 헤더 */ | |
| .main-header { | |
| background: #0a0a0a ; | |
| border-bottom: 1px solid #333333 ; | |
| padding: 1.5rem 2rem ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .main-header h1 { | |
| color: #ffffff ; | |
| font-size: 1.75rem ; | |
| font-weight: 700 ; | |
| margin: 0 ; | |
| line-height: 1.2 ; | |
| } | |
| /* 메인 콘텐츠 레이아웃 - 1:4 비율 */ | |
| .main-content { | |
| background: #000000 ; | |
| width: 100% ; | |
| max-width: none ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| gap: 0 ; | |
| min-height: calc(100vh - 100px) ; | |
| } | |
| /* 사이드바 - 화면의 1/5 */ | |
| .sidebar, .sidebar * { | |
| background: #0a0a0a ; | |
| } | |
| .sidebar { | |
| border-right: 1px solid #333333 ; | |
| padding: 1.5rem 0 ; | |
| min-height: calc(100vh - 100px) ; | |
| width: 20% ; | |
| max-width: 280px ; | |
| min-width: 200px ; | |
| flex-shrink: 0 ; | |
| } | |
| .nav-button { | |
| display: flex ; | |
| align-items: center ; | |
| width: 100% ; | |
| padding: 1.2rem 2rem ; | |
| margin: 0.2rem 0 ; | |
| background: #0a0a0a ; | |
| border: none ; | |
| color: #9ca3af ; | |
| font-size: 1rem ; | |
| font-weight: 500 ; | |
| text-align: left ; | |
| border-radius: 0 ; | |
| transition: all 0.2s ease ; | |
| cursor: pointer ; | |
| line-height: 1.5 ; | |
| } | |
| .nav-button:hover { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| } | |
| .nav-button.active { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| border-left: 3px solid #3b82f6 ; | |
| } | |
| /* 콘텐츠 영역 - 화면의 4/5 */ | |
| .content-area, .content-area * { | |
| background: #000000 ; | |
| } | |
| .content-area { | |
| padding: 2rem ; | |
| flex: 4 ; | |
| width: 80% ; | |
| min-height: calc(100vh - 100px) ; | |
| } | |
| /* 카테고리 필터 버튼들 */ | |
| .category-filters { | |
| display: flex ; | |
| gap: 1rem ; | |
| margin-bottom: 2rem ; | |
| flex-wrap: wrap ; | |
| width: 100% ; | |
| } | |
| .category-btn { | |
| background: #0a0a0a ; | |
| border: 1px solid #333333 ; | |
| color: #ffffff ; | |
| padding: 1rem 1.5rem ; | |
| border-radius: 8px ; | |
| font-size: 0.95rem ; | |
| font-weight: 500 ; | |
| transition: all 0.2s ease ; | |
| cursor: pointer ; | |
| line-height: 1.4 ; | |
| white-space: nowrap ; | |
| } | |
| .category-btn:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| } | |
| .category-btn.selected { | |
| background: #0a0a0a ; | |
| border-color: #666666 ; | |
| color: #ffffff ; | |
| } | |
| /* 프롬프트 표시 영역 강제 적용 */ | |
| .prompt-display, .prompt-display * { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| } | |
| .prompt-display { | |
| border: 1px solid #333333 ; | |
| border-radius: 8px ; | |
| padding: 1.5rem ; | |
| margin-bottom: 2rem ; | |
| font-family: 'Monaco', 'Menlo', monospace ; | |
| font-size: 0.9rem ; | |
| line-height: 1.5 ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .prompt-display textarea, .prompt-display input { | |
| background: #0a0a0a ; | |
| border: none ; | |
| color: #ffffff ; | |
| resize: none ; | |
| width: 100% ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| } | |
| .prompt-display:focus-within { | |
| border-color: #555555 ; | |
| } | |
| /* 갤러리 강제 다크 테마 */ | |
| .gr-gallery, .gr-gallery * { | |
| background: #000000 ; | |
| } | |
| .gr-gallery { | |
| border: none ; | |
| width: 100% ; | |
| } | |
| .gr-gallery .grid { | |
| gap: 1.5rem ; | |
| width: 100% ; | |
| } | |
| .gr-gallery .thumbnail { | |
| background: #0a0a0a ; | |
| border: 2px solid #333333 ; | |
| border-radius: 12px ; | |
| transition: all 0.3s ease ; | |
| cursor: pointer ; | |
| } | |
| .gr-gallery .thumbnail:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| transform: translateY(-2px) ; | |
| } | |
| .gr-gallery .thumbnail img { | |
| border-radius: 10px ; | |
| object-fit: cover ; | |
| } | |
| .gr-gallery .caption { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| font-weight: 600 ; | |
| text-align: center ; | |
| padding: 0.75rem ; | |
| font-size: 0.95rem ; | |
| } | |
| /* 모든 텍스트박스 강제 다크 테마 */ | |
| .gr-textbox, .gr-textbox * { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| } | |
| .gr-textbox { | |
| border: 1px solid #333333 ; | |
| border-radius: 8px ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .gr-textbox:focus-within, .gr-textbox:focus { | |
| border-color: #555555 ; | |
| outline: none ; | |
| box-shadow: none ; | |
| } | |
| .gr-textbox textarea, .gr-textbox input { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| border: none ; | |
| padding: 1rem ; | |
| line-height: 1.5 ; | |
| min-height: 20px ; | |
| } | |
| .gr-textbox label { | |
| background: transparent ; | |
| color: #ffffff ; | |
| font-weight: 500 ; | |
| margin-bottom: 0.75rem ; | |
| font-size: 0.95rem ; | |
| } | |
| /* 모든 이미지 컴포넌트 */ | |
| .gr-image, .gr-image * { | |
| background: #0a0a0a ; | |
| } | |
| .gr-image { | |
| border-radius: 12px ; | |
| border: 1px solid #333333 ; | |
| overflow: hidden ; | |
| } | |
| .gr-image img { | |
| border-radius: 12px ; | |
| max-width: 100% ; | |
| height: auto ; | |
| } | |
| /* Upload 버튼 스타일 */ | |
| .upload-btn { | |
| background: #3b82f6 ; | |
| color: #ffffff ; | |
| border: none ; | |
| border-radius: 8px ; | |
| padding: 1rem 2rem ; | |
| font-size: 1rem ; | |
| font-weight: 600 ; | |
| transition: all 0.2s ease ; | |
| cursor: pointer ; | |
| line-height: 1.4 ; | |
| } | |
| .upload-btn:hover { | |
| background: #2563eb ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* 모든 버튼 강제 스타일 */ | |
| .gr-button, button { | |
| border-radius: 8px ; | |
| font-weight: 600 ; | |
| font-size: 0.95rem ; | |
| padding: 1.2rem 2rem ; | |
| transition: all 0.2s ease ; | |
| border: 1px solid transparent ; | |
| line-height: 1.4 ; | |
| white-space: nowrap ; | |
| cursor: pointer ; | |
| min-height: 50px ; | |
| } | |
| .gr-button.primary, button[variant="primary"] { | |
| background: #3b82f6 ; | |
| color: #ffffff ; | |
| border-color: #3b82f6 ; | |
| } | |
| .gr-button.primary:hover, button[variant="primary"]:hover { | |
| background: #2563eb ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3) ; | |
| } | |
| .gr-button.secondary, button[variant="secondary"] { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| border-color: #333333 ; | |
| } | |
| .gr-button.secondary:hover, button[variant="secondary"]:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| } | |
| .gr-button.stop, button[variant="stop"] { | |
| background: #dc2626 ; | |
| color: #ffffff ; | |
| border-color: #dc2626 ; | |
| } | |
| .gr-button.stop:hover, button[variant="stop"]:hover { | |
| background: #b91c1c ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* 업로드 영역 */ | |
| .upload-area, .gr-file-upload, .gr-upload { | |
| background: #0a0a0a ; | |
| border: 2px dashed #555555 ; | |
| border-radius: 12px ; | |
| padding: 3rem 2rem ; | |
| text-align: center ; | |
| transition: all 0.3s ease ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| color: #ffffff ; | |
| } | |
| .upload-area:hover, .gr-file-upload:hover { | |
| border-color: #777777 ; | |
| background: #0a0a0a ; | |
| } | |
| /* 슬라이더 강제 다크 테마 */ | |
| .gr-slider, .gr-slider * { | |
| background: transparent ; | |
| } | |
| .gr-slider { | |
| margin: 1.5rem 0 ; | |
| width: 100% ; | |
| } | |
| .gr-slider label { | |
| background: transparent ; | |
| color: #ffffff ; | |
| font-weight: 500 ; | |
| margin-bottom: 0.75rem ; | |
| font-size: 0.95rem ; | |
| line-height: 1.4 ; | |
| } | |
| .gr-slider input[type="range"] { | |
| width: 100% ; | |
| height: 6px ; | |
| border-radius: 3px ; | |
| background: #333333 ; | |
| outline: none ; | |
| -webkit-appearance: none ; | |
| margin: 0.5rem 0 ; | |
| } | |
| .gr-slider input[type="range"]::-webkit-slider-thumb { | |
| -webkit-appearance: none ; | |
| appearance: none ; | |
| width: 20px ; | |
| height: 20px ; | |
| border-radius: 50% ; | |
| background: #3b82f6 ; | |
| cursor: pointer ; | |
| border: 3px solid #ffffff ; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.3) ; | |
| } | |
| .gr-slider input[type="range"]::-moz-range-thumb { | |
| width: 20px ; | |
| height: 20px ; | |
| border-radius: 50% ; | |
| background: #3b82f6 ; | |
| cursor: pointer ; | |
| border: 3px solid #ffffff ; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.3) ; | |
| } | |
| /* 후보정 패널 */ | |
| .postprocess-panel, .generate-section { | |
| background: #0a0a0a ; | |
| border: 1px solid #333333 ; | |
| border-radius: 12px ; | |
| padding: 2rem ; | |
| margin-bottom: 1.5rem ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .postprocess-section { | |
| background: transparent ; | |
| margin-bottom: 2.5rem ; | |
| } | |
| .postprocess-section h3 { | |
| background: transparent ; | |
| color: #ffffff ; | |
| font-size: 1.1rem ; | |
| font-weight: 600 ; | |
| margin: 0 0 1.5rem 0 ; | |
| padding-bottom: 0.75rem ; | |
| border-bottom: 1px solid #333333 ; | |
| line-height: 1.4 ; | |
| } | |
| /* 마크다운 강제 다크 */ | |
| .gr-markdown, .gr-markdown * { | |
| background: transparent ; | |
| color: #ffffff ; | |
| } | |
| .gr-markdown h1, .gr-markdown h2, .gr-markdown h3 { | |
| font-weight: 700 ; | |
| line-height: 1.3 ; | |
| margin-top: 0 ; | |
| } | |
| .gr-markdown h2 { | |
| border-bottom: 2px solid #333333 ; | |
| padding-bottom: 0.75rem ; | |
| margin-bottom: 1.5rem ; | |
| } | |
| .gr-markdown p { | |
| line-height: 1.6 ; | |
| margin: 0.75rem 0 ; | |
| } | |
| /* 모든 그룹과 컨테이너 */ | |
| .gr-group, .gr-row, .gr-column { | |
| background: transparent ; | |
| border: none ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| width: 100% ; | |
| } | |
| .gr-row { | |
| gap: 2rem ; | |
| margin-bottom: 2rem ; | |
| align-items: flex-start ; | |
| } | |
| .gr-column { | |
| gap: 1.5rem ; | |
| } | |
| /* 버튼 행 스타일 */ | |
| .button-row { | |
| background: transparent ; | |
| gap: 1.5rem ; | |
| margin-top: 2rem ; | |
| justify-content: space-between ; | |
| align-items: center ; | |
| width: 100% ; | |
| } | |
| /* 스크롤바 */ | |
| ::-webkit-scrollbar { | |
| width: 8px ; | |
| height: 8px ; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #0a0a0a ; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #333333 ; | |
| border-radius: 4px ; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #555555 ; | |
| } | |
| /* 강제로 모든 회색 배경 제거 */ | |
| [style*="background-color: rgb(55, 65, 81)"], | |
| [style*="background-color: rgb(75, 85, 99)"], | |
| [style*="background-color: rgb(107, 114, 128)"], | |
| [style*="background-color: rgb(156, 163, 175)"], | |
| [style*="background: rgb(55, 65, 81)"], | |
| [style*="background: rgb(75, 85, 99)"] { | |
| background: #0a0a0a ; | |
| } | |
| /* 반응형 디자인 */ | |
| @media (max-width: 1200px) { | |
| .sidebar { | |
| width: 22% ; | |
| } | |
| .content-area { | |
| width: 78% ; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .main-header { | |
| padding: 1rem ; | |
| } | |
| .content-area { | |
| padding: 1.5rem ; | |
| width: 100% ; | |
| } | |
| .sidebar { | |
| display: none ; | |
| } | |
| .main-content .gr-column:first-child { | |
| display: none ; | |
| } | |
| .category-filters { | |
| flex-direction: column ; | |
| gap: 0.75rem ; | |
| } | |
| .category-btn { | |
| width: 100% ; | |
| } | |
| .gr-row { | |
| flex-direction: column ; | |
| gap: 1.5rem ; | |
| } | |
| .button-row { | |
| flex-direction: column ; | |
| gap: 1rem ; | |
| } | |
| .gr-button { | |
| width: 100% ; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .main-header h1 { | |
| font-size: 1.5rem ; | |
| } | |
| .content-area { | |
| padding: 1rem ; | |
| } | |
| } | |
| /* 포커스 및 상태 */ | |
| button:focus, input:focus, textarea:focus { | |
| outline: 2px solid #3b82f6 ; | |
| outline-offset: 2px ; | |
| } | |
| .gr-button:disabled, button:disabled { | |
| opacity: 0.5 ; | |
| cursor: not-allowed ; | |
| } | |
| .gr-loading { | |
| opacity: 0.6 ; | |
| } | |
| /* 프롬프트 표시 영역 */ | |
| .prompt-display { | |
| background: #0a0a0a ; | |
| border: 1px solid #333333 ; | |
| border-radius: 8px ; | |
| padding: 1.5rem ; | |
| margin-bottom: 2rem ; | |
| font-family: 'Monaco', 'Menlo', monospace ; | |
| font-size: 0.9rem ; | |
| line-height: 1.5 ; | |
| color: #ffffff ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .prompt-display textarea { | |
| background: transparent ; | |
| border: none ; | |
| color: #ffffff ; | |
| resize: none ; | |
| width: 100% ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| } | |
| .prompt-display:focus-within { | |
| border-color: #555555 ; | |
| } | |
| /* 모델 갤러리 컨테이너 */ | |
| .model-gallery-container { | |
| width: 100% ; | |
| background: transparent ; | |
| } | |
| .model-grid { | |
| display: grid ; | |
| grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) ; | |
| gap: 1.5rem ; | |
| width: 100% ; | |
| padding: 0 ; | |
| } | |
| /* 개별 모델 카드 */ | |
| .model-card { | |
| background: #0a0a0a ; | |
| border: 2px solid #333333 ; | |
| border-radius: 12px ; | |
| overflow: hidden ; | |
| transition: all 0.3s ease ; | |
| cursor: pointer ; | |
| position: relative ; | |
| } | |
| .model-card:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| transform: translateY(-2px) ; | |
| } | |
| .model-card.selected { | |
| border-color: #888888 ; | |
| background: #0a0a0a ; | |
| } | |
| .model-card.selected::after { | |
| content: "✓" ; | |
| position: absolute ; | |
| top: 10px ; | |
| right: 10px ; | |
| background: #3b82f6 ; | |
| color: white ; | |
| width: 24px ; | |
| height: 24px ; | |
| border-radius: 50% ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| font-size: 0.75rem ; | |
| font-weight: bold ; | |
| } | |
| .model-image { | |
| width: 100% ; | |
| height: 200px ; | |
| object-fit: cover ; | |
| border-bottom: 1px solid #333333 ; | |
| display: block ; | |
| } | |
| .model-info { | |
| padding: 1.25rem ; | |
| } | |
| .model-name { | |
| color: #ffffff ; | |
| font-size: 1rem ; | |
| font-weight: 600 ; | |
| margin: 0 ; | |
| line-height: 1.4 ; | |
| } | |
| /* Upload 버튼 스타일 */ | |
| .upload-btn { | |
| background: #3b82f6 ; | |
| color: #ffffff ; | |
| border: none ; | |
| border-radius: 8px ; | |
| padding: 1rem 2rem ; | |
| font-size: 1rem ; | |
| font-weight: 600 ; | |
| transition: all 0.2s ease ; | |
| cursor: pointer ; | |
| line-height: 1.4 ; | |
| } | |
| .upload-btn:hover { | |
| background: #2563eb ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* 업로드 영역 스타일 */ | |
| .upload-area { | |
| background: #0a0a0a ; | |
| border: 2px dashed #555555 ; | |
| border-radius: 12px ; | |
| padding: 3rem 2rem ; | |
| text-align: center ; | |
| transition: all 0.3s ease ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .upload-area:hover { | |
| border-color: #777777 ; | |
| background: #0a0a0a ; | |
| } | |
| /* Generate 및 후보정 섹션 */ | |
| .generate-section, .postprocess-panel { | |
| background: #0a0a0a ; | |
| border: 1px solid #333333 ; | |
| border-radius: 12px ; | |
| padding: 2rem ; | |
| margin-bottom: 1.5rem ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .postprocess-section { | |
| margin-bottom: 2.5rem ; | |
| } | |
| .postprocess-section h3 { | |
| color: #ffffff ; | |
| font-size: 1.1rem ; | |
| font-weight: 600 ; | |
| margin: 0 0 1.5rem 0 ; | |
| padding-bottom: 0.75rem ; | |
| border-bottom: 1px solid #333333 ; | |
| line-height: 1.4 ; | |
| } | |
| /* 슬라이더 스타일 */ | |
| .gr-slider { | |
| margin: 1.5rem 0 ; | |
| width: 100% ; | |
| } | |
| .gr-slider label { | |
| color: #ffffff ; | |
| font-weight: 500 ; | |
| margin-bottom: 0.75rem ; | |
| font-size: 0.95rem ; | |
| line-height: 1.4 ; | |
| } | |
| .gr-slider input[type="range"] { | |
| width: 100% ; | |
| height: 6px ; | |
| border-radius: 3px ; | |
| background: #333333 ; | |
| outline: none ; | |
| -webkit-appearance: none ; | |
| margin: 0.5rem 0 ; | |
| } | |
| .gr-slider input[type="range"]::-webkit-slider-thumb { | |
| -webkit-appearance: none ; | |
| appearance: none ; | |
| width: 20px ; | |
| height: 20px ; | |
| border-radius: 50% ; | |
| background: #3b82f6 ; | |
| cursor: pointer ; | |
| border: 3px solid #ffffff ; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.3) ; | |
| } | |
| .gr-slider input[type="range"]::-moz-range-thumb { | |
| width: 20px ; | |
| height: 20px ; | |
| border-radius: 50% ; | |
| background: #3b82f6 ; | |
| cursor: pointer ; | |
| border: 3px solid #ffffff ; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.3) ; | |
| } | |
| /* 버튼 스타일 */ | |
| .gr-button { | |
| border-radius: 8px ; | |
| font-weight: 600 ; | |
| font-size: 0.95rem ; | |
| padding: 1.2rem 2rem ; | |
| transition: all 0.2s ease ; | |
| border: 1px solid transparent ; | |
| line-height: 1.4 ; | |
| white-space: nowrap ; | |
| cursor: pointer ; | |
| min-height: 50px ; | |
| } | |
| .gr-button.primary { | |
| background: #3b82f6 ; | |
| color: #ffffff ; | |
| border-color: #3b82f6 ; | |
| } | |
| .gr-button.primary:hover { | |
| background: #2563eb ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3) ; | |
| } | |
| .gr-button.secondary { | |
| background: #0a0a0a ; | |
| color: #ffffff ; | |
| border-color: #333333 ; | |
| } | |
| .gr-button.secondary:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| } | |
| .gr-button.stop { | |
| background: #dc2626 ; | |
| color: #ffffff ; | |
| border-color: #dc2626 ; | |
| } | |
| .gr-button.stop:hover { | |
| background: #b91c1c ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* 버튼 행 스타일 */ | |
| .button-row { | |
| gap: 1.5rem ; | |
| margin-top: 2rem ; | |
| justify-content: space-between ; | |
| align-items: center ; | |
| width: 100% ; | |
| } | |
| /* 텍스트박스 스타일 */ | |
| .gr-textbox { | |
| background: #0a0a0a ; | |
| border: 1px solid #333333 ; | |
| border-radius: 8px ; | |
| color: #ffffff ; | |
| width: 100% ; | |
| box-sizing: border-box ; | |
| } | |
| .gr-textbox:focus { | |
| border-color: #555555 ; | |
| outline: none ; | |
| } | |
| .gr-textbox textarea, .gr-textbox input { | |
| background: transparent ; | |
| color: #ffffff ; | |
| border: none ; | |
| padding: 1rem ; | |
| line-height: 1.5 ; | |
| min-height: 20px ; | |
| } | |
| .gr-textbox label { | |
| color: #ffffff ; | |
| font-weight: 500 ; | |
| margin-bottom: 0.75rem ; | |
| font-size: 0.95rem ; | |
| } | |
| /* 이미지 컴포넌트 스타일 */ | |
| .gr-image { | |
| border-radius: 12px ; | |
| border: 1px solid #333333 ; | |
| overflow: hidden ; | |
| background: #0a0a0a ; | |
| } | |
| .gr-image img { | |
| border-radius: 12px ; | |
| max-width: 100% ; | |
| height: auto ; | |
| } | |
| /* 마크다운 스타일 */ | |
| .gr-markdown h1, .gr-markdown h2, .gr-markdown h3 { | |
| color: #ffffff ; | |
| font-weight: 700 ; | |
| line-height: 1.3 ; | |
| margin-top: 0 ; | |
| } | |
| .gr-markdown h2 { | |
| border-bottom: 2px solid #333333 ; | |
| padding-bottom: 0.75rem ; | |
| margin-bottom: 1.5rem ; | |
| } | |
| .gr-markdown p { | |
| color: #ffffff ; | |
| line-height: 1.6 ; | |
| margin: 0.75rem 0 ; | |
| } | |
| /* 그룹 스타일 */ | |
| .gr-group { | |
| background: transparent ; | |
| border: none ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| width: 100% ; | |
| } | |
| /* 행과 열 스타일 */ | |
| .gr-row { | |
| gap: 2rem ; | |
| margin-bottom: 2rem ; | |
| width: 100% ; | |
| align-items: flex-start ; | |
| } | |
| .gr-column { | |
| gap: 1.5rem ; | |
| width: 100% ; | |
| } | |
| /* 갤러리 기본 스타일 오버라이드 */ | |
| .gr-gallery { | |
| background: transparent ; | |
| border: none ; | |
| width: 100% ; | |
| } | |
| .gr-gallery .grid { | |
| gap: 1.5rem ; | |
| width: 100% ; | |
| } | |
| .gr-gallery .thumbnail { | |
| background: #0a0a0a ; | |
| border: 2px solid #333333 ; | |
| border-radius: 12px ; | |
| transition: all 0.3s ease ; | |
| cursor: pointer ; | |
| } | |
| .gr-gallery .thumbnail:hover { | |
| background: #0a0a0a ; | |
| border-color: #555555 ; | |
| transform: translateY(-2px) ; | |
| } | |
| .gr-gallery .thumbnail img { | |
| border-radius: 10px ; | |
| object-fit: cover ; | |
| } | |
| .gr-gallery .caption { | |
| color: #ffffff ; | |
| font-weight: 600 ; | |
| text-align: center ; | |
| padding: 0.75rem ; | |
| font-size: 0.95rem ; | |
| } | |
| /* HTML 컴포넌트 전체 너비 */ | |
| .gr-html { | |
| width: 100% ; | |
| } | |
| /* 스크롤바 스타일 */ | |
| ::-webkit-scrollbar { | |
| width: 8px ; | |
| height: 8px ; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #0a0a0a ; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #333333 ; | |
| border-radius: 4px ; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #555555 ; | |
| } | |
| /* 반응형 디자인 */ | |
| @media (max-width: 1200px) { | |
| .model-grid { | |
| grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) ; | |
| gap: 1.25rem ; | |
| } | |
| .sidebar { | |
| width: 22% ; | |
| } | |
| .content-area { | |
| width: 78% ; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .main-header { | |
| padding: 1rem ; | |
| } | |
| .content-area { | |
| padding: 1.5rem ; | |
| width: 100% ; | |
| } | |
| .sidebar { | |
| display: none ; | |
| } | |
| .main-content .gr-column:first-child { | |
| display: none ; | |
| } | |
| .model-grid { | |
| grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) ; | |
| gap: 1rem ; | |
| } | |
| .category-filters { | |
| flex-direction: column ; | |
| gap: 0.75rem ; | |
| } | |
| .category-btn { | |
| width: 100% ; | |
| } | |
| .gr-row { | |
| flex-direction: column ; | |
| gap: 1.5rem ; | |
| } | |
| .button-row { | |
| flex-direction: column ; | |
| gap: 1rem ; | |
| } | |
| .gr-button { | |
| width: 100% ; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .model-grid { | |
| grid-template-columns: 1fr ; | |
| } | |
| .main-header h1 { | |
| font-size: 1.5rem ; | |
| } | |
| .content-area { | |
| padding: 1rem ; | |
| } | |
| } | |
| /* 로딩 상태 */ | |
| .gr-loading { | |
| opacity: 0.6 ; | |
| } | |
| /* 포커스 상태 */ | |
| button:focus, input:focus, textarea:focus { | |
| outline: 2px solid #3b82f6 ; | |
| outline-offset: 2px ; | |
| } | |
| /* 비활성화 상태 */ | |
| .gr-button:disabled { | |
| opacity: 0.5 ; | |
| cursor: not-allowed ; | |
| } |