PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 7.1.1
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v7.1.1
7.2.1 7.2 7.1.2 7.1.1 7.1 7.0.4 7.0.6 7.0.7 6.3.8 6.3.7 6.3.6 6.3.5 6.3.4 6.3.3 6.3.1 trunk 5.7.3 5.7.5 5.8.1 5.8.2 5.8.3 5.8.4 5.8.6 6.0.4 6.0.5 All 36 releases
mlsimport / admin / css / mlsimport-property-metabox.css

mlsimport-property-metabox.css in MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings 7.1.1, at admin/css/mlsimport-property-metabox.css

432 lines 12.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * MLS Listing metabox — admin styling.
3 *
4 * Two-column tabbed layout (rail + panes) inside the standalone property edit
5 * screen. Skinned to match the public single-property design language
6 * (public/css/mlsimport-property-sections.css): warm accent, Roboto, rounded
7 * inputs, soft tints and pill chips — so the editor reads like the front end.
8 *
9 * Design tokens are scoped to .mlsimport-mb (NOT :root) so they never leak into
10 * the rest of wp-admin. A small warm subset of the front-end token set.
11 */
12
13 /* Remote Google Fonts import — Roboto, the metabox's typeface (matches front end). */
14 @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
15
16 .mlsimport-mb {
17 /* — Sunny Bento warm token subset (cream/near-black/orange accent) — */
18 --mlsmb-accent: #e85d3c;
19 --mlsmb-accent-hover: #d1502f;
20 --mlsmb-accent2: #a63c1f;
21 --mlsmb-ink: #1c1917;
22 --mlsmb-ink-2: #6b6358;
23 --mlsmb-muted: #9a9285;
24 --mlsmb-hairline: #efe7dc;
25 --mlsmb-good: #2faa6a;
26 --mlsmb-card-bg: #ffffff;
27 --mlsmb-accent-wash: color-mix(in srgb, var(--mlsmb-accent) 5%, #fff);
28 --mlsmb-accent-tint: color-mix(in srgb, var(--mlsmb-accent) 8%, #fff);
29 --mlsmb-accent-tint-strong: color-mix(in srgb, var(--mlsmb-accent) 12%, #fff);
30 --mlsmb-good-tint: color-mix(in srgb, var(--mlsmb-good) 12%, #fff);
31 --mlsmb-radius-input: 10px;
32 --mlsmb-radius-tab: 10px;
33 --mlsmb-radius-chip: 999px;
34
35 display: grid;
36 grid-template-columns: 210px 1fr;
37 min-height: 380px;
38 margin: -6px -12px -12px; /* bleed to the postbox edges */
39 font-family: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
40 color: var(--mlsmb-ink-2);
41 background: var(--mlsmb-card-bg);
42 }
43
44 .mlsimport-mb * {
45 box-sizing: border-box;
46 }
47
48 @media ( max-width: 782px ) {
49 .mlsimport-mb { grid-template-columns: 1fr; }
50 }
51
52 /* =========================================================================
53 TAB RAIL — warm wash, accent active marker
54 ========================================================================= */
55 .mlsimport-mb__rail {
56 border-right: 1px solid var(--mlsmb-hairline);
57 background: var(--mlsmb-accent-wash);
58 padding: 10px 0;
59 }
60 @media ( max-width: 782px ) {
61 .mlsimport-mb__rail { border-right: 0; border-bottom: 1px solid var(--mlsmb-hairline); display: flex; flex-wrap: wrap; }
62 }
63 .mlsimport-mb__tab {
64 display: block;
65 width: 100%;
66 text-align: left;
67 background: none;
68 border: 0;
69 border-left: 3px solid transparent;
70 padding: 11px 18px;
71 font-family: inherit;
72 font-size: 13px;
73 font-weight: 500;
74 color: var(--mlsmb-ink-2);
75 cursor: pointer;
76 transition: background 0.18s linear, color 0.18s linear, border-color 0.18s linear;
77 }
78 .mlsimport-mb__tab:hover { background: var(--mlsmb-accent-tint); color: var(--mlsmb-accent2); }
79 .mlsimport-mb__tab.is-active {
80 background: var(--mlsmb-card-bg);
81 border-left-color: var(--mlsmb-accent);
82 font-weight: 600;
83 color: var(--mlsmb-accent2);
84 }
85
86 /* =========================================================================
87 PANES + FIELD GRID
88 ========================================================================= */
89 .mlsimport-mb__panes { padding: 20px 24px; }
90 .mlsimport-mb__pane { display: none; }
91 .mlsimport-mb__pane.is-active { display: block; }
92
93 .mlsimport-mb__grid {
94 display: grid;
95 grid-template-columns: 1fr 1fr;
96 gap: 16px 22px;
97 }
98 @media ( max-width: 600px ) {
99 .mlsimport-mb__grid { grid-template-columns: 1fr; }
100 }
101
102 .mlsimport-mb__f { display: flex; flex-direction: column; gap: 6px; }
103 .mlsimport-mb__f--full { grid-column: 1 / -1; }
104 .mlsimport-mb__f label {
105 display: flex;
106 align-items: center;
107 gap: 7px;
108 font-size: 11.5px;
109 font-weight: 600;
110 text-transform: uppercase;
111 letter-spacing: 0.04em;
112 color: var(--mlsmb-muted);
113 }
114
115 /* Inputs — rounded, hairline border, warm focus ring (mirrors lead-form). */
116 .mlsimport-mb__f input[type="text"],
117 .mlsimport-mb__f input[type="number"],
118 .mlsimport-mb__f input[type="date"],
119 .mlsimport-mb__f select,
120 .mlsimport-mb__f textarea {
121 width: 100%;
122 max-width: 100%;
123 min-height: 40px;
124 padding: 9px 12px;
125 border: 1px solid var(--mlsmb-hairline);
126 border-radius: var(--mlsmb-radius-input);
127 font-family: inherit;
128 font-size: 14px;
129 color: var(--mlsmb-ink);
130 background: #fff;
131 box-shadow: none;
132 outline: none;
133 transition: border-color 0.18s linear, box-shadow 0.18s linear;
134 }
135 .mlsimport-mb__f select { height: 40px; }
136 .mlsimport-mb__f textarea { min-height: 72px; resize: vertical; line-height: 1.6; }
137
138 .mlsimport-mb__f input[type="text"]:focus,
139 .mlsimport-mb__f input[type="number"]:focus,
140 .mlsimport-mb__f input[type="date"]:focus,
141 .mlsimport-mb__f select:focus,
142 .mlsimport-mb__f textarea:focus {
143 border-color: var(--mlsmb-accent);
144 box-shadow: 0 0 0 3px var(--mlsmb-accent-tint-strong);
145 }
146
147 .mlsimport-mb__f input::placeholder,
148 .mlsimport-mb__f textarea::placeholder { color: var(--mlsmb-muted); }
149
150 /* Checkbox rows — sit in a soft tinted tile so toggles read as a group. */
151 .mlsimport-mb__f--check {
152 flex-direction: row;
153 align-items: center;
154 padding: 12px 14px;
155 border: 1px solid var(--mlsmb-hairline);
156 border-radius: var(--mlsmb-radius-tab);
157 background: var(--mlsmb-accent-wash);
158 }
159 .mlsimport-mb__check {
160 display: inline-flex;
161 align-items: center;
162 gap: 8px;
163 margin: 0;
164 font-size: 13.5px;
165 font-weight: 500 !important;
166 text-transform: none;
167 letter-spacing: 0;
168 color: var(--mlsmb-ink);
169 }
170 .mlsimport-mb__check input[type="checkbox"] {
171 border-color: var(--mlsmb-accent);
172 }
173 .mlsimport-mb__check input[type="checkbox"]:checked {
174 background: var(--mlsmb-accent);
175 border-color: var(--mlsmb-accent);
176 }
177 .mlsimport-mb__check input[type="checkbox"]:checked::before {
178 color: #fff;
179 }
180 .mlsimport-mb__check input[type="checkbox"]:focus {
181 border-color: var(--mlsmb-accent);
182 box-shadow: 0 0 0 2px var(--mlsmb-accent-tint-strong);
183 }
184
185 /* =========================================================================
186 ORIGIN TAGS — pill chips (MLS = accent, LOCAL = green)
187 ========================================================================= */
188 .mlsimport-mb__tag {
189 display: inline-block;
190 font-size: 9px;
191 font-weight: 700;
192 letter-spacing: 0.05em;
193 padding: 2px 7px;
194 border-radius: var(--mlsmb-radius-chip);
195 text-transform: uppercase;
196 line-height: 1.4;
197 vertical-align: middle;
198 }
199 .mlsimport-mb__tag--mls { background: #fde4d8; color: var(--mlsmb-accent2); }
200 .mlsimport-mb__tag--local { background: #b8e6cc; color: #1c5c3a; }
201 /* Section tag on the Other Fields tab — the front-end group a field appears in.
202 Neutral ink tint so it reads as a category, distinct from the MLS/LOCAL chips. */
203 .mlsimport-mb__tag--group {
204 background: color-mix(in srgb, var(--mlsmb-ink-2) 12%, #fff);
205 color: var(--mlsmb-ink-2);
206 text-transform: none;
207 letter-spacing: 0.02em;
208 }
209
210 /* =========================================================================
211 OTHER FIELDS TAB — every imported field not on a named tab, editable
212 ========================================================================= */
213 .mlsimport-mb__other-note {
214 margin: 0 0 16px;
215 font-size: 12.5px;
216 line-height: 1.5;
217 color: var(--mlsmb-muted);
218 }
219 .mlsimport-mb__other-empty {
220 margin: 0;
221 font-size: 13px;
222 color: var(--mlsmb-muted);
223 }
224 /* The section tag sits on its own line under the label so the two never crowd. */
225 .mlsimport-mb__other-grid .mlsimport-mb__f label {
226 flex-wrap: wrap;
227 gap: 4px 7px;
228 }
229
230 /* =========================================================================
231 LEAD ROUTING — read-only "who gets enquiries" callout (Agent & Office tab)
232 Sits above the feed's editable Agent/Office fields, visually distinct (a
233 tinted, accent-bordered card) so the two are never mistaken for each other.
234 ========================================================================= */
235 /* Editable Lead Agent picker — left-aligned, above the read-only summary. */
236 .mlsimport-mb__leadedit {
237 max-width: 520px;
238 margin: 4px 0 22px;
239 }
240 .mlsimport-mb__leadedit .mlsimport-mb__f { gap: 8px; }
241 .mlsimport-mb__leadedit .mlsimport-mb__f label {
242 font-size: 14px;
243 font-weight: 600;
244 text-transform: none;
245 letter-spacing: 0;
246 color: var(--mlsmb-ink);
247 }
248 /* Own the select styling here (not the shared field rule) so the value never
249 clips and the picker carries an obvious dropdown caret. */
250 .mlsimport-mb__leadedit .mlsimport-mb__f select {
251 width: 100%;
252 max-width: 460px;
253 height: 46px;
254 line-height: 1.4;
255 padding: 0 42px 0 14px;
256 text-align: left;
257 font-size: 14px;
258 color: var(--mlsmb-ink);
259 appearance: none;
260 -webkit-appearance: none;
261 -moz-appearance: none;
262 background-color: #fff;
263 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M3 5l4 4 4-4' fill='none' stroke='%23a63c1f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
264 background-repeat: no-repeat;
265 background-position: right 16px center;
266 background-size: 14px 14px;
267 }
268 .mlsimport-mb__leadedit-hint {
269 margin: 0;
270 max-width: 460px;
271 font-size: 12px;
272 line-height: 1.5;
273 color: var(--mlsmb-muted);
274 }
275
276 /* Read-only "Where do leads go?" summary — a clean, light info card. */
277 .mlsimport-mb__lead {
278 max-width: 620px;
279 margin: 0;
280 padding: 14px 16px;
281 border: 1px solid var(--mlsmb-hairline);
282 border-left: 3px solid var(--mlsmb-accent);
283 border-radius: var(--mlsmb-radius-tab);
284 border-radius: 18px; /* Sunny Bento: callout card gets the larger "panel" radius, not the shared small-box token. */
285 background: var(--mlsmb-accent-wash);
286 }
287 .mlsimport-mb__lead-title {
288 margin: 0 0 8px;
289 font-size: 11.5px;
290 font-weight: 700;
291 text-transform: uppercase;
292 letter-spacing: 0.05em;
293 color: var(--mlsmb-accent2);
294 }
295 .mlsimport-mb__lead-to {
296 margin: 0 0 6px;
297 font-size: 14.5px;
298 color: var(--mlsmb-ink);
299 }
300 .mlsimport-mb__lead-to strong { color: var(--mlsmb-accent2); }
301 .mlsimport-mb__lead-src {
302 margin: 0;
303 font-size: 12.5px;
304 line-height: 1.55;
305 color: var(--mlsmb-ink-2);
306 }
307 .mlsimport-mb__lead-src a { color: var(--mlsmb-accent2); }
308
309 /* =========================================================================
310 MEDIA TAB GALLERY — read-only thumbnail strip of the imported photos
311 ========================================================================= */
312 .mlsimport-mb__gallery {
313 margin-top: 20px;
314 padding-top: 16px;
315 border-top: 1px solid var(--mlsmb-hairline);
316 }
317 .mlsimport-mb__gallery-title {
318 margin: 0 0 12px;
319 font-size: 13.5px;
320 font-weight: 600;
321 color: var(--mlsmb-ink);
322 }
323 .mlsimport-mb__gallery-note {
324 margin: -6px 0 12px;
325 font-size: 12px;
326 color: var(--mlsmb-muted);
327 }
328 .mlsimport-mb__gallery-empty {
329 margin: 0;
330 font-size: 13px;
331 color: var(--mlsmb-muted);
332 }
333 .mlsimport-mb__thumbs {
334 display: grid;
335 grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
336 gap: 10px;
337 }
338 .mlsimport-mb__thumb {
339 position: relative;
340 display: block;
341 aspect-ratio: 4 / 3;
342 overflow: hidden;
343 border: 1px solid var(--mlsmb-hairline);
344 border-radius: var(--mlsmb-radius-input);
345 background: var(--mlsmb-accent-wash);
346 box-shadow: none;
347 }
348 .mlsimport-mb__thumb:focus {
349 outline: 2px solid var(--mlsmb-accent);
350 outline-offset: 1px;
351 box-shadow: none;
352 }
353 .mlsimport-mb__thumb > a {
354 display: block;
355 width: 100%;
356 height: 100%;
357 box-shadow: none;
358 }
359 .mlsimport-mb__thumb > a:focus {
360 outline: 2px solid var(--mlsmb-accent);
361 outline-offset: -2px;
362 box-shadow: none;
363 }
364 .mlsimport-mb__thumb img {
365 display: block;
366 width: 100%;
367 height: 100%;
368 object-fit: cover;
369 }
370
371 /* Photos Count excludes this image — kept in the DOM so raising the number
372 brings it straight back, but not shown as part of the published gallery. */
373 .mlsimport-mb__thumb.is-beyond-count {
374 display: none;
375 }
376
377 /* Delete — a small round control, revealed on hover/focus of its tile. */
378 .mlsimport-mb__thumb-del {
379 position: absolute;
380 top: 5px;
381 right: 5px;
382 display: flex;
383 align-items: center;
384 justify-content: center;
385 width: 22px;
386 height: 22px;
387 padding: 0;
388 border: 0;
389 border-radius: var(--mlsmb-radius-chip);
390 background: rgba( 0, 0, 0, 0.55 );
391 color: #fff;
392 font-size: 15px;
393 line-height: 1;
394 cursor: pointer;
395 opacity: 0;
396 transition: opacity 0.12s ease, background 0.12s ease;
397 }
398 .mlsimport-mb__thumb:hover .mlsimport-mb__thumb-del,
399 .mlsimport-mb__thumb-del:focus {
400 opacity: 1;
401 }
402 .mlsimport-mb__thumb-del:hover {
403 background: #c02617;
404 }
405 .mlsimport-mb__thumb-del:disabled {
406 opacity: 0.5;
407 cursor: default;
408 }
409
410 /* Touch devices have no hover, so the control stays visible there. */
411 @media ( hover: none ) {
412 .mlsimport-mb__thumb-del { opacity: 1; }
413 }
414 .mlsimport-mb__thumb.is-featured {
415 border-color: var(--mlsmb-accent);
416 box-shadow: 0 0 0 1px var(--mlsmb-accent);
417 }
418 .mlsimport-mb__thumb-badge {
419 position: absolute;
420 left: 6px;
421 bottom: 6px;
422 padding: 2px 7px;
423 border-radius: var(--mlsmb-radius-chip);
424 background: var(--mlsmb-accent);
425 color: #fff;
426 font-size: 9px;
427 font-weight: 700;
428 letter-spacing: 0.05em;
429 text-transform: uppercase;
430 line-height: 1.4;
431 }
432