Update style.css
Browse files
style.css
CHANGED
@@ -1,19 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
body {
|
2 |
-
font-family: '
|
3 |
line-height: 1.6;
|
4 |
margin: 0;
|
5 |
padding: 0;
|
6 |
-
background-color:
|
7 |
-
color:
|
8 |
}
|
9 |
|
10 |
.container {
|
11 |
-
max-width: 1200px;
|
12 |
margin: 20px auto;
|
13 |
padding: 20px;
|
14 |
background-color: white;
|
15 |
-
box-shadow:
|
16 |
-
border-radius:
|
17 |
display: flex;
|
18 |
flex-direction: column;
|
19 |
}
|
@@ -28,6 +42,28 @@ p {
|
|
28 |
margin-bottom: 20px;
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
.upload-container {
|
32 |
display: flex;
|
33 |
flex-wrap: wrap;
|
@@ -39,22 +75,23 @@ p {
|
|
39 |
.upload-box {
|
40 |
flex: 1;
|
41 |
min-width: 300px;
|
42 |
-
border: 2px
|
43 |
-
border-radius:
|
44 |
padding: 20px;
|
45 |
text-align: center;
|
46 |
transition: background-color 0.3s;
|
|
|
47 |
}
|
48 |
|
49 |
.upload-box:hover {
|
50 |
-
background-color: #
|
51 |
}
|
52 |
|
53 |
.upload-label {
|
54 |
display: block;
|
55 |
font-weight: bold;
|
56 |
margin-bottom: 10px;
|
57 |
-
color:
|
58 |
}
|
59 |
|
60 |
.file-input {
|
@@ -63,77 +100,104 @@ p {
|
|
63 |
|
64 |
.upload-button {
|
65 |
display: inline-block;
|
66 |
-
background-color
|
67 |
color: white;
|
68 |
padding: 10px 20px;
|
69 |
-
border-radius:
|
70 |
cursor: pointer;
|
71 |
-
transition:
|
|
|
|
|
72 |
}
|
73 |
|
74 |
.upload-button:hover {
|
75 |
-
|
|
|
76 |
}
|
77 |
|
78 |
/* 작업 영역 래퍼 */
|
79 |
.workspace-wrapper {
|
80 |
-
display: flex;
|
81 |
-
flex-wrap: wrap;
|
82 |
gap: 20px;
|
83 |
margin-bottom: 20px;
|
84 |
}
|
85 |
|
86 |
/* 캔버스와 컨트롤 패널들을 묶는 영역 */
|
87 |
.canvas-and-controls {
|
88 |
-
flex: 3;
|
89 |
display: flex;
|
90 |
-
flex-direction: column;
|
91 |
-
min-width: 0;
|
92 |
}
|
93 |
|
94 |
.canvas-container {
|
95 |
position: relative;
|
96 |
-
width: 100%;
|
97 |
-
|
98 |
-
border:
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
}
|
103 |
|
104 |
#canvas {
|
105 |
-
display: block;
|
106 |
-
width: 100%;
|
107 |
-
height: auto;
|
108 |
background-color: #ffffff;
|
109 |
cursor: default;
|
110 |
}
|
111 |
|
112 |
-
/* 컨트롤 패널들을 모아두는 사이드바 역할
|
113 |
.control-panel-sidebar {
|
114 |
display: flex;
|
115 |
flex-direction: column;
|
116 |
gap: 15px;
|
117 |
-
/* flex: 1; /* canvas-and-controls 내에서 비율 (필요시) */
|
118 |
}
|
119 |
|
120 |
-
|
121 |
.control-group {
|
122 |
display: flex;
|
123 |
flex-direction: column;
|
124 |
-
|
125 |
-
border: 1px solid #ddd;
|
126 |
padding: 15px;
|
127 |
-
border-radius:
|
128 |
-
background-color: #
|
129 |
-
|
130 |
}
|
131 |
|
132 |
.control-group h3 {
|
133 |
margin: 0 0 15px 0;
|
134 |
-
font-size: 1rem;
|
135 |
text-align: center;
|
136 |
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
.slider-container {
|
@@ -148,21 +212,25 @@ p {
|
|
148 |
|
149 |
.slider-container label {
|
150 |
font-weight: bold;
|
151 |
-
min-width: 50px;
|
152 |
text-align: left;
|
153 |
flex-shrink: 0;
|
|
|
154 |
}
|
155 |
|
156 |
.slider-container input[type="range"] {
|
157 |
-
flex-grow: 1;
|
158 |
-
width: auto;
|
159 |
-
margin: 0 5px;
|
|
|
160 |
}
|
161 |
|
162 |
.slider-container .value-display {
|
163 |
-
min-width: 40px;
|
164 |
-
text-align: right;
|
165 |
flex-shrink: 0;
|
|
|
|
|
166 |
}
|
167 |
|
168 |
/* 레이어 목록 스타일 */
|
@@ -170,12 +238,13 @@ p {
|
|
170 |
width: 100%;
|
171 |
max-height: 150px;
|
172 |
overflow-y: auto;
|
173 |
-
border: 1px solid
|
174 |
-
border-radius:
|
|
|
175 |
}
|
176 |
|
177 |
.layer-item {
|
178 |
-
padding:
|
179 |
border-bottom: 1px solid #eee;
|
180 |
cursor: pointer;
|
181 |
display: flex;
|
@@ -183,67 +252,159 @@ p {
|
|
183 |
align-items: center;
|
184 |
}
|
185 |
.layer-item:last-child { border-bottom: none; }
|
186 |
-
.layer-item:hover { background-color: #
|
187 |
-
.layer-item.active { background-color:
|
188 |
.layer-name { flex-grow: 1; padding-left: 5px; }
|
189 |
.layer-controls { display: flex; gap: 5px; }
|
190 |
.layer-button {
|
191 |
-
background-color:
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
193 |
transition: all 0.2s ease;
|
194 |
}
|
195 |
-
.layer-button:hover {
|
196 |
-
|
|
|
|
|
197 |
|
198 |
/* 필터 패널 스타일 */
|
199 |
.filter-panel {
|
200 |
-
/* width: 100%; /* 부모(.control-panel-sidebar)에 의해 너비 결정 */
|
201 |
padding: 15px;
|
202 |
-
border: 1px solid
|
203 |
-
border-radius:
|
204 |
-
background-color: #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
}
|
206 |
-
.filter-panel h3 { margin: 0 0 15px 0; text-align: center; }
|
207 |
-
.filter-sliders { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; }
|
208 |
-
.filter-slider-container { display: flex; flex-direction: column; gap: 5px; width: 100%; padding: 0 5px; box-sizing: border-box; }
|
209 |
-
.filter-slider-container label { font-size: 14px; margin-bottom: 5px; text-align: left; }
|
210 |
-
.large-slider { width: 100%; height: 20px; /* 슬라이더 높이 조정 */ }
|
211 |
-
.filter-slider-container .value-display { text-align: right; font-weight: bold; }
|
212 |
-
.filter-buttons { display: flex; justify-content: center; margin-top: 15px; }
|
213 |
-
#reset-filter-btn { width: auto; padding: 8px 15px; flex-grow: 1; max-width: 200px; }
|
214 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
|
216 |
/* 미리보기 섹션 */
|
217 |
.preview-section {
|
218 |
-
flex: 2;
|
219 |
-
display: flex;
|
220 |
flex-direction: column;
|
221 |
-
align-items: center;
|
222 |
-
min-width: 0;
|
223 |
}
|
224 |
|
225 |
.preview-container {
|
226 |
-
width: 100%;
|
227 |
-
margin-top: 0;
|
228 |
-
display: none;
|
229 |
flex-direction: column;
|
230 |
align-items: center;
|
231 |
-
padding:
|
232 |
-
border:
|
233 |
-
border-radius:
|
234 |
-
background-color: #
|
|
|
235 |
}
|
236 |
|
237 |
.preview-container h3 {
|
238 |
-
margin-bottom:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
}
|
240 |
|
241 |
#preview-img {
|
242 |
max-width: 100%;
|
243 |
-
max-height: 400px;
|
244 |
-
border: 2px solid
|
245 |
-
border-radius:
|
246 |
-
object-fit: contain;
|
|
|
247 |
}
|
248 |
|
249 |
/* 하단 버튼 컨테이너 */
|
@@ -251,42 +412,100 @@ p {
|
|
251 |
display: flex;
|
252 |
justify-content: center;
|
253 |
gap: 15px;
|
254 |
-
margin-top: 20px;
|
255 |
flex-wrap: wrap;
|
256 |
}
|
257 |
|
258 |
button {
|
259 |
padding: 10px 20px;
|
260 |
border: none;
|
261 |
-
border-radius:
|
262 |
cursor: pointer;
|
263 |
font-weight: bold;
|
264 |
-
transition:
|
|
|
265 |
}
|
266 |
-
.primary-btn { background-color: #27ae60; color: white; }
|
267 |
-
.primary-btn:hover { background-color: #219653; }
|
268 |
-
.danger-btn { background-color: #e74c3c; color: white; }
|
269 |
-
.danger-btn:hover { background-color: #c0392b; }
|
270 |
-
.info-btn { background-color: #3498db; color: white; }
|
271 |
-
.info-btn:hover { background-color: #2980b9; }
|
272 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
/* 모바일 대응 */
|
275 |
-
@media (max-width: 900px) {
|
276 |
.workspace-wrapper {
|
277 |
-
flex-direction: column;
|
278 |
-
align-items: center;
|
279 |
}
|
280 |
.canvas-and-controls, .preview-section {
|
281 |
-
flex-basis: auto;
|
282 |
-
width: 100%;
|
283 |
-
max-width: 600px;
|
284 |
}
|
285 |
.control-panel-sidebar {
|
286 |
-
width: 100%;
|
287 |
}
|
288 |
.filter-sliders {
|
289 |
-
grid-template-columns: 1fr;
|
290 |
}
|
291 |
}
|
292 |
|
|
|
1 |
+
/* FontAwesome 아이콘 포함 */
|
2 |
+
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css");
|
3 |
+
|
4 |
+
:root {
|
5 |
+
--primary-color: #FF7F00;
|
6 |
+
--secondary-color: #ff9a8b;
|
7 |
+
--accent-color: #FF6B6B;
|
8 |
+
--background-color: #FFFFFF;
|
9 |
+
--card-bg: #ffffff;
|
10 |
+
--text-color: #334155;
|
11 |
+
--border-radius: 18px;
|
12 |
+
--shadow: 0 8px 30px rgba(251, 127, 13, 0.08);
|
13 |
+
}
|
14 |
+
|
15 |
body {
|
16 |
+
font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
|
17 |
line-height: 1.6;
|
18 |
margin: 0;
|
19 |
padding: 0;
|
20 |
+
background-color: var(--background-color);
|
21 |
+
color: var(--text-color);
|
22 |
}
|
23 |
|
24 |
.container {
|
25 |
+
max-width: 1200px;
|
26 |
margin: 20px auto;
|
27 |
padding: 20px;
|
28 |
background-color: white;
|
29 |
+
box-shadow: var(--shadow);
|
30 |
+
border-radius: var(--border-radius);
|
31 |
display: flex;
|
32 |
flex-direction: column;
|
33 |
}
|
|
|
42 |
margin-bottom: 20px;
|
43 |
}
|
44 |
|
45 |
+
/* 헤더 섹션 스타일 */
|
46 |
+
.container > h1 {
|
47 |
+
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
48 |
+
color: white;
|
49 |
+
padding: 2rem;
|
50 |
+
border-radius: 15px;
|
51 |
+
margin-bottom: 20px;
|
52 |
+
box-shadow: var(--shadow);
|
53 |
+
font-size: 2.5rem;
|
54 |
+
font-weight: 700;
|
55 |
+
}
|
56 |
+
|
57 |
+
.container > p {
|
58 |
+
background-color: #FFF6F0;
|
59 |
+
border-radius: var(--border-radius);
|
60 |
+
padding: 1.5rem;
|
61 |
+
margin-bottom: 1.5rem;
|
62 |
+
border: 1px solid rgba(255, 127, 0, 0.1);
|
63 |
+
color: var(--text-color);
|
64 |
+
font-size: 1.1rem;
|
65 |
+
}
|
66 |
+
|
67 |
.upload-container {
|
68 |
display: flex;
|
69 |
flex-wrap: wrap;
|
|
|
75 |
.upload-box {
|
76 |
flex: 1;
|
77 |
min-width: 300px;
|
78 |
+
border: 2px solid var(--primary-color);
|
79 |
+
border-radius: var(--border-radius);
|
80 |
padding: 20px;
|
81 |
text-align: center;
|
82 |
transition: background-color 0.3s;
|
83 |
+
background-color: #FFF6F0;
|
84 |
}
|
85 |
|
86 |
.upload-box:hover {
|
87 |
+
background-color: #FFF0E6;
|
88 |
}
|
89 |
|
90 |
.upload-label {
|
91 |
display: block;
|
92 |
font-weight: bold;
|
93 |
margin-bottom: 10px;
|
94 |
+
color: var(--primary-color);
|
95 |
}
|
96 |
|
97 |
.file-input {
|
|
|
100 |
|
101 |
.upload-button {
|
102 |
display: inline-block;
|
103 |
+
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
104 |
color: white;
|
105 |
padding: 10px 20px;
|
106 |
+
border-radius: 30px;
|
107 |
cursor: pointer;
|
108 |
+
transition: all 0.3s ease;
|
109 |
+
font-weight: 600;
|
110 |
+
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25);
|
111 |
}
|
112 |
|
113 |
.upload-button:hover {
|
114 |
+
transform: translateY(-2px);
|
115 |
+
box-shadow: 0 6px 12px rgba(251, 127, 13, 0.3);
|
116 |
}
|
117 |
|
118 |
/* 작업 영역 래퍼 */
|
119 |
.workspace-wrapper {
|
120 |
+
display: flex;
|
121 |
+
flex-wrap: wrap;
|
122 |
gap: 20px;
|
123 |
margin-bottom: 20px;
|
124 |
}
|
125 |
|
126 |
/* 캔버스와 컨트롤 패널들을 묶는 영역 */
|
127 |
.canvas-and-controls {
|
128 |
+
flex: 3;
|
129 |
display: flex;
|
130 |
+
flex-direction: column;
|
131 |
+
min-width: 0;
|
132 |
}
|
133 |
|
134 |
.canvas-container {
|
135 |
position: relative;
|
136 |
+
width: 100%;
|
137 |
+
border: 2px solid var(--primary-color);
|
138 |
+
border-radius: var(--border-radius);
|
139 |
+
overflow: hidden;
|
140 |
+
margin-bottom: 20px;
|
141 |
+
box-shadow: var(--shadow);
|
142 |
}
|
143 |
|
144 |
#canvas {
|
145 |
+
display: block;
|
146 |
+
width: 100%;
|
147 |
+
height: auto;
|
148 |
background-color: #ffffff;
|
149 |
cursor: default;
|
150 |
}
|
151 |
|
152 |
+
/* 컨트롤 패널들을 모아두는 사이드바 역할 */
|
153 |
.control-panel-sidebar {
|
154 |
display: flex;
|
155 |
flex-direction: column;
|
156 |
gap: 15px;
|
|
|
157 |
}
|
158 |
|
|
|
159 |
.control-group {
|
160 |
display: flex;
|
161 |
flex-direction: column;
|
162 |
+
border: 1px solid rgba(255, 127, 0, 0.2);
|
|
|
163 |
padding: 15px;
|
164 |
+
border-radius: var(--border-radius);
|
165 |
+
background-color: #FFF6F0;
|
166 |
+
box-shadow: var(--shadow);
|
167 |
}
|
168 |
|
169 |
.control-group h3 {
|
170 |
margin: 0 0 15px 0;
|
171 |
+
font-size: 1.1rem;
|
172 |
text-align: center;
|
173 |
width: 100%;
|
174 |
+
color: var(--primary-color);
|
175 |
+
font-weight: 700;
|
176 |
+
padding-bottom: 8px;
|
177 |
+
border-bottom: 2px solid var(--primary-color);
|
178 |
+
display: flex;
|
179 |
+
align-items: center;
|
180 |
+
justify-content: center;
|
181 |
+
}
|
182 |
+
|
183 |
+
/* 각 컨트롤 그룹 아이콘 추가 */
|
184 |
+
.control-group h3::before {
|
185 |
+
font-family: "Font Awesome 6 Free";
|
186 |
+
margin-right: 10px;
|
187 |
+
color: var(--primary-color);
|
188 |
+
font-weight: 900;
|
189 |
+
}
|
190 |
+
|
191 |
+
.control-group:nth-of-type(1) h3::before {
|
192 |
+
content: "\f547"; /* 크기 조절 아이콘 */
|
193 |
+
}
|
194 |
+
|
195 |
+
.control-group:nth-of-type(2) h3::before {
|
196 |
+
content: "\f03e"; /* 이미지 아이콘 */
|
197 |
+
}
|
198 |
+
|
199 |
+
#layers-panel h3::before {
|
200 |
+
content: "\f5fd"; /* 레이어 아이콘 */
|
201 |
}
|
202 |
|
203 |
.slider-container {
|
|
|
212 |
|
213 |
.slider-container label {
|
214 |
font-weight: bold;
|
215 |
+
min-width: 50px;
|
216 |
text-align: left;
|
217 |
flex-shrink: 0;
|
218 |
+
color: #444;
|
219 |
}
|
220 |
|
221 |
.slider-container input[type="range"] {
|
222 |
+
flex-grow: 1;
|
223 |
+
width: auto;
|
224 |
+
margin: 0 5px;
|
225 |
+
accent-color: var(--primary-color);
|
226 |
}
|
227 |
|
228 |
.slider-container .value-display {
|
229 |
+
min-width: 40px;
|
230 |
+
text-align: right;
|
231 |
flex-shrink: 0;
|
232 |
+
font-weight: 600;
|
233 |
+
color: var(--primary-color);
|
234 |
}
|
235 |
|
236 |
/* 레이어 목록 스타일 */
|
|
|
238 |
width: 100%;
|
239 |
max-height: 150px;
|
240 |
overflow-y: auto;
|
241 |
+
border: 1px solid rgba(255, 127, 0, 0.1);
|
242 |
+
border-radius: var(--border-radius);
|
243 |
+
background-color: white;
|
244 |
}
|
245 |
|
246 |
.layer-item {
|
247 |
+
padding: 10px;
|
248 |
border-bottom: 1px solid #eee;
|
249 |
cursor: pointer;
|
250 |
display: flex;
|
|
|
252 |
align-items: center;
|
253 |
}
|
254 |
.layer-item:last-child { border-bottom: none; }
|
255 |
+
.layer-item:hover { background-color: #FFF0E6; }
|
256 |
+
.layer-item.active { background-color: rgba(255, 127, 0, 0.1); font-weight: bold; color: var(--primary-color); }
|
257 |
.layer-name { flex-grow: 1; padding-left: 5px; }
|
258 |
.layer-controls { display: flex; gap: 5px; }
|
259 |
.layer-button {
|
260 |
+
background-color: white;
|
261 |
+
border: 1px solid var(--primary-color);
|
262 |
+
border-radius: 10px;
|
263 |
+
padding: 2px 8px;
|
264 |
+
cursor: pointer;
|
265 |
+
font-size: 11px;
|
266 |
+
color: var(--primary-color);
|
267 |
transition: all 0.2s ease;
|
268 |
}
|
269 |
+
.layer-button:hover {
|
270 |
+
background-color: var(--primary-color);
|
271 |
+
color: white;
|
272 |
+
}
|
273 |
|
274 |
/* 필터 패널 스타일 */
|
275 |
.filter-panel {
|
|
|
276 |
padding: 15px;
|
277 |
+
border: 1px solid rgba(255, 127, 0, 0.2);
|
278 |
+
border-radius: var(--border-radius);
|
279 |
+
background-color: #FFF6F0;
|
280 |
+
box-shadow: var(--shadow);
|
281 |
+
}
|
282 |
+
|
283 |
+
.filter-panel h3 {
|
284 |
+
margin: 0 0 15px 0;
|
285 |
+
text-align: center;
|
286 |
+
color: var(--primary-color);
|
287 |
+
font-weight: 700;
|
288 |
+
padding-bottom: 8px;
|
289 |
+
border-bottom: 2px solid var(--primary-color);
|
290 |
+
display: flex;
|
291 |
+
align-items: center;
|
292 |
+
justify-content: center;
|
293 |
+
}
|
294 |
+
|
295 |
+
.filter-panel h3::before {
|
296 |
+
content: "\f06e"; /* 필터 아이콘 */
|
297 |
+
font-family: "Font Awesome 6 Free";
|
298 |
+
margin-right: 10px;
|
299 |
+
color: var(--primary-color);
|
300 |
+
font-weight: 900;
|
301 |
+
}
|
302 |
+
|
303 |
+
.filter-sliders {
|
304 |
+
display: grid;
|
305 |
+
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
306 |
+
gap: 15px;
|
307 |
+
}
|
308 |
+
|
309 |
+
.filter-slider-container {
|
310 |
+
display: flex;
|
311 |
+
flex-direction: column;
|
312 |
+
gap: 5px;
|
313 |
+
width: 100%;
|
314 |
+
padding: 0 5px;
|
315 |
+
box-sizing: border-box;
|
316 |
+
}
|
317 |
+
|
318 |
+
.filter-slider-container label {
|
319 |
+
font-size: 14px;
|
320 |
+
margin-bottom: 5px;
|
321 |
+
text-align: left;
|
322 |
+
font-weight: 600;
|
323 |
+
color: #444;
|
324 |
+
}
|
325 |
+
|
326 |
+
.large-slider {
|
327 |
+
width: 100%;
|
328 |
+
height: 20px;
|
329 |
+
accent-color: var(--primary-color);
|
330 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
|
332 |
+
.filter-slider-container .value-display {
|
333 |
+
text-align: right;
|
334 |
+
font-weight: bold;
|
335 |
+
color: var(--primary-color);
|
336 |
+
}
|
337 |
+
|
338 |
+
.filter-buttons {
|
339 |
+
display: flex;
|
340 |
+
justify-content: center;
|
341 |
+
margin-top: 15px;
|
342 |
+
}
|
343 |
+
|
344 |
+
#reset-filter-btn {
|
345 |
+
width: auto;
|
346 |
+
padding: 8px 15px;
|
347 |
+
flex-grow: 1;
|
348 |
+
max-width: 200px;
|
349 |
+
background: linear-gradient(135deg, #e74c3c, #c0392b);
|
350 |
+
color: white;
|
351 |
+
border-radius: 30px;
|
352 |
+
border: none;
|
353 |
+
font-weight: 600;
|
354 |
+
box-shadow: 0 4px 8px rgba(231, 76, 60, 0.25);
|
355 |
+
transition: all 0.3s ease;
|
356 |
+
}
|
357 |
+
|
358 |
+
#reset-filter-btn:hover {
|
359 |
+
transform: translateY(-2px);
|
360 |
+
box-shadow: 0 6px 12px rgba(231, 76, 60, 0.3);
|
361 |
+
}
|
362 |
|
363 |
/* 미리보기 섹션 */
|
364 |
.preview-section {
|
365 |
+
flex: 2;
|
366 |
+
display: flex;
|
367 |
flex-direction: column;
|
368 |
+
align-items: center;
|
369 |
+
min-width: 0;
|
370 |
}
|
371 |
|
372 |
.preview-container {
|
373 |
+
width: 100%;
|
374 |
+
margin-top: 0;
|
375 |
+
display: none;
|
376 |
flex-direction: column;
|
377 |
align-items: center;
|
378 |
+
padding: 20px;
|
379 |
+
border: 2px solid var(--primary-color);
|
380 |
+
border-radius: var(--border-radius);
|
381 |
+
background-color: #FFF6F0;
|
382 |
+
box-shadow: var(--shadow);
|
383 |
}
|
384 |
|
385 |
.preview-container h3 {
|
386 |
+
margin-bottom: 15px;
|
387 |
+
color: var(--primary-color);
|
388 |
+
font-weight: 700;
|
389 |
+
display: flex;
|
390 |
+
align-items: center;
|
391 |
+
}
|
392 |
+
|
393 |
+
.preview-container h3::before {
|
394 |
+
content: "\f06e"; /* 미리보기 아이콘 */
|
395 |
+
font-family: "Font Awesome 6 Free";
|
396 |
+
margin-right: 10px;
|
397 |
+
color: var(--primary-color);
|
398 |
+
font-weight: 900;
|
399 |
}
|
400 |
|
401 |
#preview-img {
|
402 |
max-width: 100%;
|
403 |
+
max-height: 400px;
|
404 |
+
border: 2px solid var(--primary-color);
|
405 |
+
border-radius: var(--border-radius);
|
406 |
+
object-fit: contain;
|
407 |
+
box-shadow: var(--shadow);
|
408 |
}
|
409 |
|
410 |
/* 하단 버튼 컨테이너 */
|
|
|
412 |
display: flex;
|
413 |
justify-content: center;
|
414 |
gap: 15px;
|
415 |
+
margin-top: 20px;
|
416 |
flex-wrap: wrap;
|
417 |
}
|
418 |
|
419 |
button {
|
420 |
padding: 10px 20px;
|
421 |
border: none;
|
422 |
+
border-radius: 30px;
|
423 |
cursor: pointer;
|
424 |
font-weight: bold;
|
425 |
+
transition: all 0.3s ease;
|
426 |
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
|
427 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
+
button:hover {
|
430 |
+
transform: translateY(-2px);
|
431 |
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
|
432 |
+
}
|
433 |
+
|
434 |
+
.primary-btn {
|
435 |
+
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
436 |
+
color: white;
|
437 |
+
box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25);
|
438 |
+
}
|
439 |
+
|
440 |
+
.primary-btn:hover {
|
441 |
+
box-shadow: 0 6px 12px rgba(251, 127, 13, 0.3);
|
442 |
+
}
|
443 |
+
|
444 |
+
.danger-btn {
|
445 |
+
background: linear-gradient(135deg, #e74c3c, #c0392b);
|
446 |
+
color: white;
|
447 |
+
box-shadow: 0 4px 8px rgba(231, 76, 60, 0.25);
|
448 |
+
}
|
449 |
+
|
450 |
+
.danger-btn:hover {
|
451 |
+
box-shadow: 0 6px 12px rgba(231, 76, 60, 0.3);
|
452 |
+
}
|
453 |
+
|
454 |
+
.info-btn {
|
455 |
+
background: linear-gradient(135deg, #3498db, #2980b9);
|
456 |
+
color: white;
|
457 |
+
box-shadow: 0 4px 8px rgba(52, 152, 219, 0.25);
|
458 |
+
}
|
459 |
+
|
460 |
+
.info-btn:hover {
|
461 |
+
box-shadow: 0 6px 12px rgba(52, 152, 219, 0.3);
|
462 |
+
}
|
463 |
+
|
464 |
+
/* 예시 이미지 스타일 */
|
465 |
+
#example-images-container img {
|
466 |
+
border: 2px solid #ddd;
|
467 |
+
border-radius: 10px;
|
468 |
+
transition: all 0.3s ease;
|
469 |
+
}
|
470 |
+
|
471 |
+
#example-images-container img:hover {
|
472 |
+
transform: scale(1.05);
|
473 |
+
border-color: var(--primary-color);
|
474 |
+
box-shadow: 0 4px 10px rgba(251, 127, 13, 0.2);
|
475 |
+
}
|
476 |
+
|
477 |
+
/* 스크롤바 스타일링 */
|
478 |
+
::-webkit-scrollbar {
|
479 |
+
width: 8px;
|
480 |
+
height: 8px;
|
481 |
+
}
|
482 |
+
|
483 |
+
::-webkit-scrollbar-track {
|
484 |
+
background: rgba(0, 0, 0, 0.05);
|
485 |
+
border-radius: 10px;
|
486 |
+
}
|
487 |
+
|
488 |
+
::-webkit-scrollbar-thumb {
|
489 |
+
background: var(--primary-color);
|
490 |
+
border-radius: 10px;
|
491 |
+
}
|
492 |
|
493 |
/* 모바일 대응 */
|
494 |
+
@media (max-width: 900px) {
|
495 |
.workspace-wrapper {
|
496 |
+
flex-direction: column;
|
497 |
+
align-items: center;
|
498 |
}
|
499 |
.canvas-and-controls, .preview-section {
|
500 |
+
flex-basis: auto;
|
501 |
+
width: 100%;
|
502 |
+
max-width: 600px;
|
503 |
}
|
504 |
.control-panel-sidebar {
|
505 |
+
width: 100%;
|
506 |
}
|
507 |
.filter-sliders {
|
508 |
+
grid-template-columns: 1fr;
|
509 |
}
|
510 |
}
|
511 |
|