swq2f / style.css
ssboost's picture
Update style.css
63b9898 verified
raw
history blame
9.38 kB
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f0f0f0;
color: #333;
}
:root {
--primary-color: #FF7F00; /* ์ฃผํ™ฉ์ƒ‰ ํฌ์ธํŠธ ์ปฌ๋Ÿฌ */
}
.container {
max-width: 1200px;
margin: 20px auto;
padding: 20px;
background-color: white;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
border-radius: 8px;
display: flex;
flex-direction: column;
}
h1, h2, h3 {
color: #2c3e50;
text-align: center;
}
p {
text-align: center;
margin-bottom: 20px;
}
.upload-container {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-bottom: 20px;
gap: 20px;
}
.upload-box {
flex: 1;
min-width: 300px;
border: 2px dashed var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ํ…Œ๋‘๋ฆฌ */
border-radius: 5px;
padding: 20px;
text-align: center;
transition: background-color 0.3s;
}
.upload-box:hover {
background-color: #ecf0f1;
}
.upload-label {
display: block;
font-weight: bold;
margin-bottom: 10px;
color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ๋ ˆ์ด๋ธ” */
}
.file-input {
display: none;
}
.upload-button {
display: inline-block;
background-color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ */
color: white;
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}
.upload-button:hover {
background-color: #E67300; /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„ */
}
/* ์ž‘์—… ์˜์—ญ ๋ž˜ํผ */
.workspace-wrapper {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-bottom: 20px;
}
/* ์บ”๋ฒ„์Šค์™€ ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ฌถ๋Š” ์˜์—ญ */
.canvas-and-controls {
flex: 3;
display: flex;
flex-direction: column;
min-width: 0;
}
.canvas-container {
position: relative;
width: 100%;
border: 2px solid #333;
border-radius: 4px;
overflow: hidden;
margin-bottom: 20px;
}
#canvas {
display: block;
width: 100%;
height: auto;
background-color: #ffffff;
cursor: default;
}
/* ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ชจ์•„๋‘๋Š” ์‚ฌ์ด๋“œ๋ฐ” ์—ญํ•  */
.control-panel-sidebar {
display: flex;
flex-direction: column;
gap: 15px;
}
.control-group {
display: flex;
flex-direction: column;
border: 1px solid #ddd;
padding: 15px;
border-radius: 5px;
background-color: #f9f9f9;
}
.control-group h3 {
margin: 0 0 15px 0;
font-size: 1rem;
text-align: center;
width: 100%;
color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ์ œ๋ชฉ */
}
.slider-container {
display: flex;
align-items: center;
gap: 10px;
margin: 8px 0;
width: 100%;
padding: 0 5px;
box-sizing: border-box;
}
.slider-container label {
font-weight: bold;
min-width: 50px;
text-align: left;
flex-shrink: 0;
}
.slider-container input[type="range"] {
flex-grow: 1;
width: auto;
margin: 0 5px;
-webkit-appearance: none;
background: white;
border-radius: 10px;
height: 6px;
border: 1px solid #ddd;
}
/* ์Šฌ๋ผ์ด๋” ๋ฐ” ์ฃผํ™ฉ์ƒ‰ */
.slider-container input[type="range"]::-webkit-slider-runnable-track {
width: 100%;
height: 6px;
background: white;
border-radius: 10px;
}
/* ์Šฌ๋ผ์ด๋” ๋™๊ทธ๋ผ๋ฏธ ๋ถ€๋ถ„ */
.slider-container input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
background: var(--primary-color);
margin-top: -6px;
cursor: pointer;
border: 2px solid white;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
/* Firefox ์Šฌ๋ผ์ด๋” ์Šคํƒ€์ผ */
.slider-container input[type="range"]::-moz-range-track {
width: 100%;
height: 6px;
background: white;
border-radius: 10px;
}
.slider-container input[type="range"]::-moz-range-thumb {
width: 18px;
height: 18px;
border-radius: 50%;
background: var(--primary-color);
cursor: pointer;
border: 2px solid white;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
/* Edge/IE ์Šฌ๋ผ์ด๋” ์Šคํƒ€์ผ */
.slider-container input[type="range"]::-ms-track {
width: 100%;
height: 6px;
background: transparent;
border-color: transparent;
border-width: 10px 0;
color: transparent;
}
.slider-container input[type="range"]::-ms-fill-lower {
background: white;
border-radius: 10px;
}
.slider-container input[type="range"]::-ms-fill-upper {
background: white;
border-radius: 10px;
}
.slider-container input[type="range"]::-ms-thumb {
width: 18px;
height: 18px;
border-radius: 50%;
background: var(--primary-color);
cursor: pointer;
border: 2px solid white;
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
/* ๋ ˆ์ด์–ด ๋ชฉ๋ก ์Šคํƒ€์ผ */
.layers-list {
width: 100%;
max-height: 150px;
overflow-y: auto;
border: 1px solid #ddd;
border-radius: 4px;
}
.layer-item {
padding: 8px;
border-bottom: 1px solid #eee;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
}
.layer-item:last-child { border-bottom: none; }
.layer-item:hover { background-color: #f5f5f5; }
.layer-item.active { background-color: #FFF0E6; font-weight: bold; color: var(--primary-color); } /* ์ฃผํ™ฉ์ƒ‰ ๊ฐ•์กฐ */
.layer-name { flex-grow: 1; padding-left: 5px; }
.layer-controls { display: flex; gap: 5px; }
.layer-button {
background-color: #f0f0f0;
border: 1px solid #ddd;
border-radius: 3px;
padding: 2px 5px;
cursor: pointer;
font-size: 11px;
color: #555;
transition: all 0.2s ease;
}
.layer-button:hover {
background-color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„ */
color: white;
}
/* ํ•„ํ„ฐ ํŒจ๋„ ์Šคํƒ€์ผ */
.filter-panel {
padding: 15px;
border: 1px solid #ddd;
border-radius: 5px;
background-color: #f9f9f9;
}
.filter-panel h3 {
margin: 0 0 15px 0;
text-align: center;
color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ์ œ๋ชฉ */
}
.filter-sliders { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; }
.filter-slider-container { display: flex; flex-direction: column; gap: 5px; width: 100%; padding: 0 5px; box-sizing: border-box; }
.filter-slider-container label { font-size: 14px; margin-bottom: 5px; text-align: left; }
.large-slider {
width: 100%;
height: 20px;
accent-color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ์Šฌ๋ผ์ด๋” */
}
.filter-slider-container .value-display {
text-align: right;
font-weight: bold;
color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ๊ฐ’ ํ‘œ์‹œ */
}
.filter-buttons { display: flex; justify-content: center; margin-top: 15px; }
#reset-filter-btn { width: auto; padding: 8px 15px; flex-grow: 1; max-width: 200px; }
/* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„น์…˜ */
.preview-section {
flex: 2;
display: flex;
flex-direction: column;
align-items: center;
min-width: 0;
}
.preview-container {
width: 100%;
margin-top: 0;
display: none;
flex-direction: column;
align-items: center;
padding: 10px;
border: 1px dashed #ccc;
border-radius: 4px;
background-color: #f9f9f9;
}
.preview-container h3 {
margin-bottom: 10px;
color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ์ œ๋ชฉ */
}
#preview-img {
max-width: 100%;
max-height: 400px;
border: 2px solid #333;
border-radius: 4px;
object-fit: contain;
}
/* ํ•˜๋‹จ ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ */
.button-container {
display: flex;
justify-content: center;
gap: 15px;
margin-top: 20px;
flex-wrap: wrap;
}
button {
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
transition: background-color 0.3s;
}
.primary-btn { background-color: var(--primary-color); color: white; } /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ */
.primary-btn:hover { background-color: #E67300; } /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„ */
.danger-btn { background-color: #e74c3c; color: white; }
.danger-btn:hover { background-color: #c0392b; }
.info-btn { background-color: var(--primary-color); color: white; } /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ */
.info-btn:hover { background-color: #E67300; } /* ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„ */
/* ์˜ˆ์‹œ ์ด๋ฏธ์ง€ ์Šคํƒ€์ผ */
#example-images-container img {
width: 160px;
height: 160px;
cursor: pointer;
border: 1px solid #ccc;
transition: border-color 0.3s;
}
#example-images-container img:hover {
border-color: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ํ…Œ๋‘๋ฆฌ ํ˜ธ๋ฒ„ */
}
/* ์Šคํฌ๋กค๋ฐ” ์Šคํƒ€์ผ๋ง */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.05);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: var(--primary-color); /* ์ฃผํ™ฉ์ƒ‰ ์Šคํฌ๋กค๋ฐ” */
border-radius: 10px;
}
/* ๋ชจ๋ฐ”์ผ ๋Œ€์‘ */
@media (max-width: 900px) {
.workspace-wrapper {
flex-direction: column;
align-items: center;
}
.canvas-and-controls, .preview-section {
flex-basis: auto;
width: 100%;
max-width: 600px;
}
.control-panel-sidebar {
width: 100%;
}
.filter-sliders {
grid-template-columns: 1fr;
}
}
@media (max-width: 768px) {
.upload-container {
flex-direction: column;
}
.upload-box {
width: 100%;
margin-bottom: 10px;
}
}