Spaces:
Sleeping
Sleeping
/* ============================================ | |
๋คํฌ๋ชจ๋ ์๋ ๋ณ๊ฒฝ AI ์ํ ์์ฑ ๋ถ์ ์์คํ CSS | |
============================================ */ | |
/* 1. CSS ๋ณ์ ์ ์ (๋ผ์ดํธ๋ชจ๋ - ๊ธฐ๋ณธ๊ฐ) */ | |
:root { | |
/* ๋ฉ์ธ ์ปฌ๋ฌ */ | |
--primary-color: #FB7F0D; | |
--secondary-color: #ff9a8b; | |
--accent-color: #FF6B6B; | |
/* ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ */ | |
--background-color: #FFFFFF; | |
--card-bg: #ffffff; | |
--input-bg: #ffffff; | |
/* ํ ์คํธ ์ปฌ๋ฌ */ | |
--text-color: #334155; | |
--text-secondary: #64748b; | |
/* ๋ณด๋ ๋ฐ ๊ตฌ๋ถ์ */ | |
--border-color: #dddddd; | |
--border-light: #e5e5e5; | |
/* ํ ์ด๋ธ ์ปฌ๋ฌ */ | |
--table-even-bg: #f3f3f3; | |
--table-hover-bg: #f0f0f0; | |
/* ๊ทธ๋ฆผ์ */ | |
--shadow: 0 8px 30px rgba(251, 127, 13, 0.08); | |
--shadow-light: 0 2px 4px rgba(0, 0, 0, 0.1); | |
/* ๊ธฐํ */ | |
--border-radius: 18px; | |
} | |
/* 2. ๋คํฌ๋ชจ๋ ์์ ๋ณ์ (์๋ ๊ฐ์ง) */ | |
@media (prefers-color-scheme: dark) { | |
:root { | |
/* ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ */ | |
--background-color: #1a1a1a; | |
--card-bg: #2d2d2d; | |
--input-bg: #2d2d2d; | |
/* ํ ์คํธ ์ปฌ๋ฌ */ | |
--text-color: #e5e5e5; | |
--text-secondary: #a1a1aa; | |
/* ๋ณด๋ ๋ฐ ๊ตฌ๋ถ์ */ | |
--border-color: #404040; | |
--border-light: #525252; | |
/* ํ ์ด๋ธ ์ปฌ๋ฌ */ | |
--table-even-bg: #333333; | |
--table-hover-bg: #404040; | |
/* ๊ทธ๋ฆผ์ */ | |
--shadow: 0 8px 30px rgba(0, 0, 0, 0.3); | |
--shadow-light: 0 2px 4px rgba(0, 0, 0, 0.2); | |
} | |
} | |
/* 3. ์๋ ๋คํฌ๋ชจ๋ ํด๋์ค (Gradio ํ ๊ธ์ฉ) */ | |
[data-theme="dark"], | |
.dark, | |
.gr-theme-dark { | |
/* ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ */ | |
--background-color: #1a1a1a; | |
--card-bg: #2d2d2d; | |
--input-bg: #2d2d2d; | |
/* ํ ์คํธ ์ปฌ๋ฌ */ | |
--text-color: #e5e5e5; | |
--text-secondary: #a1a1aa; | |
/* ๋ณด๋ ๋ฐ ๊ตฌ๋ถ์ */ | |
--border-color: #404040; | |
--border-light: #525252; | |
/* ํ ์ด๋ธ ์ปฌ๋ฌ */ | |
--table-even-bg: #333333; | |
--table-hover-bg: #404040; | |
/* ๊ทธ๋ฆผ์ */ | |
--shadow: 0 8px 30px rgba(0, 0, 0, 0.3); | |
--shadow-light: 0 2px 4px rgba(0, 0, 0, 0.2); | |
} | |
/* โโ ์ ์ญ ์คํ์ผ โโ */ | |
body { | |
font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif; | |
background-color: var(--background-color) ; | |
color: var(--text-color) ; | |
line-height: 1.6; | |
margin: 0; | |
padding: 0; | |
transition: background-color 0.3s ease, color 0.3s ease; | |
} | |
/* ํธํฐ ์จ๊น ์ค์ */ | |
footer { | |
visibility: hidden; | |
} | |
.gradio-container, | |
.gradio-container *, | |
.gr-app, | |
.gr-app *, | |
.gr-interface { | |
background-color: var(--background-color) ; | |
color: var(--text-color) ; | |
} | |
.gradio-container { | |
width: 100%; | |
margin: 0 auto; | |
padding: 20px; | |
background-color: var(--background-color) ; | |
} | |
/* โโ ์น์ ์คํ์ผ โโ */ | |
.custom-section-group, | |
.gr-block.gr-group { | |
background-color: var(--background-color) ; | |
box-shadow: none ; | |
} | |
.custom-section-group::before, | |
.custom-section-group::after, | |
.gr-block.gr-group::before, | |
.gr-block.gr-group::after { | |
display: none ; | |
content: none ; | |
} | |
/* ์น์ ํ๋ ์ */ | |
.custom-frame { | |
background-color: var(--card-bg) ; | |
border: 1px solid var(--border-light) ; | |
border-radius: var(--border-radius); | |
padding: 20px; | |
margin: 10px 0; | |
box-shadow: var(--shadow) ; | |
color: var(--text-color) ; | |
} | |
/* ์ ์ ์ ์๋ ์น์ */ | |
.collapsible-section { | |
margin-bottom: 10px; | |
} | |
.collapsible-header { | |
background-color: var(--primary-color); | |
color: white; | |
padding: 10px 15px; | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
transition: background-color 0.3s; | |
} | |
.collapsible-header:hover { | |
background-color: var(--secondary-color); | |
} | |
.collapsible-content { | |
display: none; | |
padding: 15px; | |
background-color: var(--card-bg) ; | |
border: 1px solid var(--border-light) ; | |
border-radius: 0 0 var(--border-radius) var(--border-radius); | |
margin-top: -5px; | |
color: var(--text-color) ; | |
} | |
.collapsible-content.active { | |
display: block; | |
} | |
/* ๋ ๋ฒํผ์ ๊ณตํต์ผ๋ก ์ ์ฉํ ์คํ์ผ */ | |
.execution-button { | |
font-size: 18px ; | |
padding: 10px 20px ; | |
height: 45px ; | |
width: 100% ; | |
border-radius: 30px ; | |
margin: 0 ; | |
display: flex ; | |
align-items: center ; | |
justify-content: center ; | |
text-align: center ; | |
color: white ; | |
border: none ; | |
transition: transform 0.3s ease ; | |
} | |
/* ๊ฐ ๋ฒํผ๋ณ ๊ณ ์ ์์ */ | |
.primary-button { | |
background: var(--primary-color) ; | |
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25) ; | |
} | |
.secondary-button { | |
background: #6c757d ; | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25) ; | |
} | |
.execution-button:hover { | |
transform: translateY(-2px) ; | |
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25) ; | |
} | |
/* ์คํ ๋ฒํผ ์ปจํ ์ด๋ */ | |
.execution-section { | |
margin-top: 20px; | |
padding: 15px; | |
background-color: var(--card-bg) ; | |
border-radius: 8px; | |
border: 1px solid var(--border-light) ; | |
color: var(--text-color) ; | |
} | |
/* โโ ์ปดํฌ๋ํธ ์คํ์ผ โโ */ | |
/* ๋ฒํผ ์คํ์ผ */ | |
.custom-button { | |
border-radius: 30px ; | |
background: var(--primary-color) ; | |
color: white ; | |
font-size: 18px ; | |
padding: 10px 20px ; | |
border: none; | |
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25); | |
transition: transform 0.3s ease; | |
} | |
.custom-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 12px rgba(251, 127, 13, 0.3); | |
} | |
/* ์์ ๋ฒํผ */ | |
.custom-button-small { | |
border-radius: 20px ; | |
background: var(--primary-color) ; | |
color: white ; | |
font-size: 14px ; | |
padding: 8px 15px ; | |
border: none; | |
box-shadow: 0 2px 6px rgba(251, 127, 13, 0.25); | |
transition: transform 0.3s ease; | |
} | |
.custom-button-small:hover { | |
transform: translateY(-1px); | |
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.3); | |
} | |
/* ๋ฆฌ์ ๋ฒํผ */ | |
.reset-button { | |
border-radius: 30px ; | |
background: #6c757d ; | |
color: white ; | |
font-size: 16px ; | |
padding: 8px 16px ; | |
border: none; | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); | |
transition: transform 0.3s ease; | |
margin-top: 20px; | |
} | |
.reset-button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); | |
} | |
/* ์ ๋ ฅ ํ๋ ์คํ์ผ */ | |
.gr-input, .gr-text-input, .gr-sample-inputs, | |
input[type="text"], | |
input[type="number"], | |
input[type="email"], | |
input[type="password"], | |
textarea, | |
select { | |
border-radius: var(--border-radius) ; | |
border: 1px solid var(--border-color) ; | |
padding: 12px ; | |
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05) ; | |
transition: all 0.3s ease ; | |
background-color: var(--input-bg) ; | |
color: var(--text-color) ; | |
} | |
.gr-input:focus, .gr-text-input:focus, | |
input[type="text"]:focus, | |
input[type="number"]:focus, | |
input[type="email"]:focus, | |
input[type="password"]:focus, | |
textarea:focus, | |
select:focus { | |
border-color: var(--primary-color) ; | |
outline: none ; | |
box-shadow: 0 0 0 2px rgba(251, 127, 13, 0.2) ; | |
} | |
/* ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค ๋ฒํผ ์คํ์ผ */ | |
input[type="checkbox"], input[type="radio"] { | |
accent-color: var(--primary-color); | |
} | |
/* ๋๋กญ๋ค์ด ์คํ์ผ */ | |
.gr-dropdown { | |
border-radius: var(--border-radius) ; | |
border: 1px solid var(--border-color) ; | |
padding: 12px ; | |
transition: all 0.3s ease ; | |
background-color: var(--input-bg) ; | |
color: var(--text-color) ; | |
} | |
.gr-dropdown:focus { | |
border-color: var(--primary-color) ; | |
outline: none ; | |
box-shadow: 0 0 0 2px rgba(251, 127, 13, 0.2) ; | |
} | |
/* โโ ์น์ ์ ๋ชฉ ์คํ์ผ โโ */ | |
.section-title { | |
display: flex; | |
align-items: center; | |
font-size: 20px; | |
font-weight: 700; | |
color: var(--text-color) ; | |
margin-bottom: 10px; | |
padding-bottom: 5px; | |
border-bottom: 2px solid var(--primary-color); | |
font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif; | |
} | |
.section-title img, .section-title i { | |
margin-right: 10px; | |
font-size: 20px; | |
color: var(--primary-color); | |
} | |
/* ์๋ธ ์น์ ์ ๋ชฉ */ | |
.subsection-title { | |
font-size: 18px; | |
font-weight: 600; | |
color: var(--text-color) ; | |
margin: 15px 0 8px 0; | |
} | |
/* โโ ํ ์ด๋ธ ์คํ์ผ โโ */ | |
.styled-table { | |
width: 100%; | |
border-collapse: collapse; | |
table-layout: fixed; | |
margin: 0; | |
padding: 0; | |
font-size: 14px; | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
position: relative; | |
} | |
.styled-table th, | |
.styled-table td { | |
padding: 12px 15px; | |
text-align: left; | |
border-bottom: 1px solid var(--border-color) ; | |
overflow: hidden; | |
text-overflow: ellipsis; | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
} | |
.styled-table th { | |
background-color: var(--primary-color) ; | |
color: white ; | |
font-weight: bold; | |
position: sticky; | |
top: 0; | |
white-space: nowrap; | |
z-index: 10; | |
} | |
.styled-table tbody tr:nth-of-type(even) { | |
background-color: var(--table-even-bg) ; | |
} | |
.styled-table tbody tr:hover { | |
background-color: var(--table-hover-bg) ; | |
} | |
.styled-table tbody tr:last-of-type { | |
border-bottom: 2px solid var(--primary-color); | |
} | |
/* ๋ฐ์ดํฐ ์ปจํ ์ด๋ */ | |
.data-container { | |
max-height: 600px; | |
overflow-y: auto; | |
border-radius: var(--border-radius); | |
border: 1px solid var(--border-light) ; | |
margin-top: 15px; | |
background-color: var(--card-bg) ; | |
position: relative; | |
} | |
/* ํ ์ด๋ธ ์ปจํ ์ด๋ ์ถ๊ฐ ์คํ์ผ */ | |
.table-container { | |
position: relative; | |
width: 100%; | |
margin: 0; | |
border-radius: 8px; | |
overflow: hidden; | |
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); | |
} | |
.header-wrap { | |
position: sticky; | |
top: 0; | |
z-index: 20; | |
background-color: var(--primary-color) ; | |
} | |
/* ํ ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ํค๋ ์๋ก ์ค๋ ๊ฒ์ ๋ฐฉ์ง */ | |
.styled-table tbody td { | |
position: relative; | |
z-index: 1; | |
} | |
.styled-table thead th { | |
position: sticky; | |
top: 0; | |
z-index: 10; | |
background-color: var(--primary-color) ; | |
} | |
/* ์คํฌ๋กค๋ฐ ์คํ์ผ */ | |
::-webkit-scrollbar { | |
width: 8px; | |
height: 8px; | |
} | |
::-webkit-scrollbar-track { | |
background: var(--card-bg); | |
border-radius: 10px; | |
} | |
::-webkit-scrollbar-thumb { | |
background: var(--primary-color); | |
border-radius: 10px; | |
} | |
::-webkit-scrollbar-thumb:hover { | |
background: var(--secondary-color); | |
} | |
/* โโ ๋ถ์ ๊ฒฐ๊ณผ ์คํ์ผ โโ */ | |
.analysis-result { | |
margin-top: 30px; | |
border: 1px solid var(--border-color) ; | |
border-radius: 5px; | |
padding: 15px; | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
} | |
.result-header { | |
font-weight: bold; | |
margin-bottom: 15px; | |
color: var(--primary-color); | |
font-size: 16px; | |
} | |
.summary-box { | |
background-color: var(--table-even-bg) ; | |
border-left: 4px solid var(--primary-color); | |
padding: 10px 15px; | |
margin-bottom: 20px; | |
font-size: 14px; | |
color: var(--text-color) ; | |
} | |
.summary-title { | |
font-weight: bold; | |
margin-bottom: 5px; | |
color: var(--text-color) ; | |
} | |
.recommendation-box { | |
background-color: var(--card-bg) ; | |
border-radius: 5px; | |
padding: 15px; | |
margin-bottom: 25px; | |
box-shadow: var(--shadow-light) ; | |
border: 1px solid var(--border-color) ; | |
color: var(--text-color) ; | |
} | |
.recommendation-title { | |
font-weight: bold; | |
font-size: 16px; | |
color: var(--primary-color); | |
margin-bottom: 10px; | |
} | |
.recommendation-item { | |
padding: 6px 0; | |
border-bottom: 1px solid var(--border-color) ; | |
color: var(--text-color) ; | |
} | |
.recommendation-item:last-child { | |
border-bottom: none; | |
} | |
/* ํค์๋ ํ๊ทธ ์คํ์ผ */ | |
.keyword-tag-container { | |
margin-top: 20px; | |
padding: 10px; | |
border: 1px solid var(--border-color) ; | |
border-radius: 5px; | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
} | |
.keyword-tag { | |
display: inline-block; | |
background-color: var(--primary-color); | |
color: white; | |
padding: 5px 10px; | |
margin: 5px; | |
border-radius: 15px; | |
font-size: 12px; | |
} | |
.category-tag { | |
display: inline-block; | |
background-color: #2c7fb8; | |
color: white; | |
padding: 5px 10px; | |
margin: 5px; | |
border-radius: 15px; | |
font-size: 12px; | |
} | |
/* โโ ๋ ์ด์์ ์ ํธ๋ฆฌํฐ โโ */ | |
.hidden-section { | |
display: none; | |
} | |
/* ์น์ ํ์/์จ๊น ์ ์ด */ | |
.section-visible { | |
display: block; | |
animation: fadeIn 0.5s ease-out; | |
} | |
/* ์ ๋๋ฉ์ด์ ํจ๊ณผ */ | |
@keyframes fadeIn { | |
from { opacity: 0; transform: translateY(10px); } | |
to { opacity: 1; transform: translateY(0); } | |
} | |
.fade-in { | |
animation: fadeIn 0.5s ease-out; | |
} | |
/* Gradio ์ปดํฌ๋ํธ ๊ฐ์ ์ ์ฉ */ | |
.gr-form, | |
.gr-box, | |
.gr-panel, | |
.gr-block, | |
.gr-group, | |
.gr-row, | |
.gr-column { | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
border-color: var(--border-color) ; | |
} | |
/* ๋ผ๋ฒจ ๋ฐ ํ ์คํธ ์์ */ | |
label, | |
.gr-label, | |
.gr-checkbox label, | |
.gr-radio label, | |
p, span, div { | |
color: var(--text-color) ; | |
} | |
/* ํดํ ๋ฐ ํ์ */ | |
[data-tooltip]:hover::after, | |
.tooltip, | |
.popup { | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
border-color: var(--border-color) ; | |
box-shadow: var(--shadow-light) ; | |
} | |
/* ๋ชจ๋ฌ ๋ฐ ์ค๋ฒ๋ ์ด */ | |
.modal, | |
.overlay, | |
[class*="modal"], | |
[class*="overlay"] { | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
border-color: var(--border-color) ; | |
} | |
/* ์ฝ๋ ๋ธ๋ก ๋ฐ pre ํ๊ทธ */ | |
code, | |
pre, | |
.code-block { | |
background-color: var(--table-even-bg) ; | |
color: var(--text-color) ; | |
border-color: var(--border-color) ; | |
} | |
/* ์๋ฆผ ๋ฐ ๋ฉ์์ง */ | |
.alert, | |
.message, | |
.notification, | |
[class*="alert"], | |
[class*="message"], | |
[class*="notification"] { | |
background-color: var(--card-bg) ; | |
color: var(--text-color) ; | |
border-color: var(--border-color) ; | |
} | |
/* ์ ํ ์ ๋๋ฉ์ด์ */ | |
* { | |
transition: background-color 0.3s ease, | |
color 0.3s ease, | |
border-color 0.3s ease ; | |
} | |
/* ๋ฐ์ํ ์กฐ์ */ | |
@media (max-width: 768px) { | |
.grid-container { | |
grid-template-columns: 1fr; | |
} | |
} |