3gghdf5 / style.css
ssboost's picture
Update style.css
3a0a8c2 verified
/* ============================================
๋‹คํฌ๋ชจ๋“œ ์ž๋™ ๋ณ€๊ฒฝ 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) !important;
color: var(--text-color) !important;
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) !important;
color: var(--text-color) !important;
}
.gradio-container {
width: 100%;
margin: 0 auto;
padding: 20px;
background-color: var(--background-color) !important;
}
/* โ”€โ”€ ์„น์…˜ ์Šคํƒ€์ผ โ”€โ”€ */
.custom-section-group,
.gr-block.gr-group {
background-color: var(--background-color) !important;
box-shadow: none !important;
}
.custom-section-group::before,
.custom-section-group::after,
.gr-block.gr-group::before,
.gr-block.gr-group::after {
display: none !important;
content: none !important;
}
/* ์„น์…˜ ํ”„๋ ˆ์ž„ */
.custom-frame {
background-color: var(--card-bg) !important;
border: 1px solid var(--border-light) !important;
border-radius: var(--border-radius);
padding: 20px;
margin: 10px 0;
box-shadow: var(--shadow) !important;
color: var(--text-color) !important;
}
/* ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ์„น์…˜ */
.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) !important;
border: 1px solid var(--border-light) !important;
border-radius: 0 0 var(--border-radius) var(--border-radius);
margin-top: -5px;
color: var(--text-color) !important;
}
.collapsible-content.active {
display: block;
}
/* ๋‘ ๋ฒ„ํŠผ์— ๊ณตํ†ต์œผ๋กœ ์ ์šฉํ•  ์Šคํƒ€์ผ */
.execution-button {
font-size: 18px !important;
padding: 10px 20px !important;
height: 45px !important;
width: 100% !important;
border-radius: 30px !important;
margin: 0 !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
text-align: center !important;
color: white !important;
border: none !important;
transition: transform 0.3s ease !important;
}
/* ๊ฐ ๋ฒ„ํŠผ๋ณ„ ๊ณ ์œ  ์ƒ‰์ƒ */
.primary-button {
background: var(--primary-color) !important;
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25) !important;
}
.secondary-button {
background: #6c757d !important;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25) !important;
}
.execution-button:hover {
transform: translateY(-2px) !important;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25) !important;
}
/* ์‹คํ–‰ ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ */
.execution-section {
margin-top: 20px;
padding: 15px;
background-color: var(--card-bg) !important;
border-radius: 8px;
border: 1px solid var(--border-light) !important;
color: var(--text-color) !important;
}
/* โ”€โ”€ ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ โ”€โ”€ */
/* ๋ฒ„ํŠผ ์Šคํƒ€์ผ */
.custom-button {
border-radius: 30px !important;
background: var(--primary-color) !important;
color: white !important;
font-size: 18px !important;
padding: 10px 20px !important;
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 !important;
background: var(--primary-color) !important;
color: white !important;
font-size: 14px !important;
padding: 8px 15px !important;
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 !important;
background: #6c757d !important;
color: white !important;
font-size: 16px !important;
padding: 8px 16px !important;
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) !important;
border: 1px solid var(--border-color) !important;
padding: 12px !important;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05) !important;
transition: all 0.3s ease !important;
background-color: var(--input-bg) !important;
color: var(--text-color) !important;
}
.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) !important;
outline: none !important;
box-shadow: 0 0 0 2px rgba(251, 127, 13, 0.2) !important;
}
/* ์ฒดํฌ๋ฐ•์Šค์™€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์Šคํƒ€์ผ */
input[type="checkbox"], input[type="radio"] {
accent-color: var(--primary-color);
}
/* ๋“œ๋กญ๋‹ค์šด ์Šคํƒ€์ผ */
.gr-dropdown {
border-radius: var(--border-radius) !important;
border: 1px solid var(--border-color) !important;
padding: 12px !important;
transition: all 0.3s ease !important;
background-color: var(--input-bg) !important;
color: var(--text-color) !important;
}
.gr-dropdown:focus {
border-color: var(--primary-color) !important;
outline: none !important;
box-shadow: 0 0 0 2px rgba(251, 127, 13, 0.2) !important;
}
/* โ”€โ”€ ์„น์…˜ ์ œ๋ชฉ ์Šคํƒ€์ผ โ”€โ”€ */
.section-title {
display: flex;
align-items: center;
font-size: 20px;
font-weight: 700;
color: var(--text-color) !important;
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) !important;
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) !important;
color: var(--text-color) !important;
position: relative;
}
.styled-table th,
.styled-table td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid var(--border-color) !important;
overflow: hidden;
text-overflow: ellipsis;
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
}
.styled-table th {
background-color: var(--primary-color) !important;
color: white !important;
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) !important;
}
.styled-table tbody tr:hover {
background-color: var(--table-hover-bg) !important;
}
.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) !important;
margin-top: 15px;
background-color: var(--card-bg) !important;
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) !important;
}
/* ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ํ—ค๋” ์œ„๋กœ ์˜ค๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ */
.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) !important;
}
/* ์Šคํฌ๋กค๋ฐ” ์Šคํƒ€์ผ */
::-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) !important;
border-radius: 5px;
padding: 15px;
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
}
.result-header {
font-weight: bold;
margin-bottom: 15px;
color: var(--primary-color);
font-size: 16px;
}
.summary-box {
background-color: var(--table-even-bg) !important;
border-left: 4px solid var(--primary-color);
padding: 10px 15px;
margin-bottom: 20px;
font-size: 14px;
color: var(--text-color) !important;
}
.summary-title {
font-weight: bold;
margin-bottom: 5px;
color: var(--text-color) !important;
}
.recommendation-box {
background-color: var(--card-bg) !important;
border-radius: 5px;
padding: 15px;
margin-bottom: 25px;
box-shadow: var(--shadow-light) !important;
border: 1px solid var(--border-color) !important;
color: var(--text-color) !important;
}
.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) !important;
color: var(--text-color) !important;
}
.recommendation-item:last-child {
border-bottom: none;
}
/* ํ‚ค์›Œ๋“œ ํƒœ๊ทธ ์Šคํƒ€์ผ */
.keyword-tag-container {
margin-top: 20px;
padding: 10px;
border: 1px solid var(--border-color) !important;
border-radius: 5px;
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
}
.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) !important;
color: var(--text-color) !important;
border-color: var(--border-color) !important;
}
/* ๋ผ๋ฒจ ๋ฐ ํ…์ŠคํŠธ ์š”์†Œ */
label,
.gr-label,
.gr-checkbox label,
.gr-radio label,
p, span, div {
color: var(--text-color) !important;
}
/* ํˆดํŒ ๋ฐ ํŒ์—… */
[data-tooltip]:hover::after,
.tooltip,
.popup {
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
border-color: var(--border-color) !important;
box-shadow: var(--shadow-light) !important;
}
/* ๋ชจ๋‹ฌ ๋ฐ ์˜ค๋ฒ„๋ ˆ์ด */
.modal,
.overlay,
[class*="modal"],
[class*="overlay"] {
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
border-color: var(--border-color) !important;
}
/* ์ฝ”๋“œ ๋ธ”๋ก ๋ฐ pre ํƒœ๊ทธ */
code,
pre,
.code-block {
background-color: var(--table-even-bg) !important;
color: var(--text-color) !important;
border-color: var(--border-color) !important;
}
/* ์•Œ๋ฆผ ๋ฐ ๋ฉ”์‹œ์ง€ */
.alert,
.message,
.notification,
[class*="alert"],
[class*="message"],
[class*="notification"] {
background-color: var(--card-bg) !important;
color: var(--text-color) !important;
border-color: var(--border-color) !important;
}
/* ์ „ํ™˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ */
* {
transition: background-color 0.3s ease,
color 0.3s ease,
border-color 0.3s ease !important;
}
/* ๋ฐ˜์‘ํ˜• ์กฐ์ • */
@media (max-width: 768px) {
.grid-container {
grid-template-columns: 1fr;
}
}