PluginProbe
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO / trunk
ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO vtrunk
2.6.0 2.5.0 2.4.0 2.3.0 2.2.0 2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.32.0 1.31.0 1.30.0 1.29.0 1.28.0 1.27.0 1.26.0 1.25.0 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.10.0 1.11.0 All 47 releases
thinkrank / static / css / seo-quick-edit.css

seo-quick-edit.css in ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console & Local SEO trunk, at static/css/seo-quick-edit.css

342 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * ThinkRank SEO Quick Edit modal (post list).
3 *
4 * Hand-authored, so it lives in static/ (assets/ is wiped on every build).
5 * Values mirror the design tokens in src/admin/styles/_variables.scss —
6 * the admin app's compiled CSS is not enqueued on edit.php, so the tokens
7 * are restated here as literals:
8 * primary #4451FF · text #1D1D1D / #535353 / #5A5C5E
9 * borders #D5D5DD / #E2E6F1 · bg #F8F8FB · error #921C13
10 * radius 6px / 8px
11 *
12 * @package ThinkRank
13 * @since 1.27.1
14 */
15
16 /* Trigger button in the column cell (pushed to the cell's right edge) */
17 .thinkrank-qe-trigger {
18 margin-left: auto;
19 display: inline-flex;
20 align-items: center;
21 justify-content: center;
22 width: 24px;
23 height: 24px;
24 padding: 0;
25 border: 1px solid transparent;
26 border-radius: 6px;
27 background: transparent;
28 color: #a5aaac;
29 cursor: pointer;
30 transition: all 0.15s ease;
31 }
32
33 .thinkrank-qe-trigger:hover,
34 .thinkrank-qe-trigger:focus {
35 color: #4451ff;
36 background: #f0f1ff;
37 border-color: #d5d8ff;
38 outline: none;
39 }
40
41 /* Overlay */
42 .thinkrank-qe-overlay {
43 position: fixed;
44 inset: 0;
45 z-index: 100100; /* above #wpadminbar (99999) */
46 display: flex;
47 align-items: center;
48 justify-content: center;
49 padding: 24px;
50 background: rgba(29, 29, 29, 0.55);
51 animation: thinkrank-qe-fade 0.12s ease-out;
52 }
53
54 @keyframes thinkrank-qe-fade {
55
56 from {
57 opacity: 0;
58 }
59
60 to {
61 opacity: 1;
62 }
63 }
64
65 /* Modal card */
66 .thinkrank-qe-modal {
67 width: 560px;
68 max-width: 100%;
69 max-height: min(85vh, 720px);
70 display: flex;
71 flex-direction: column;
72 background: #fff;
73 border-radius: 8px;
74 box-shadow: 0 20px 50px rgba(29, 29, 29, 0.25);
75 animation: thinkrank-qe-pop 0.14s ease-out;
76 font-size: 13px;
77 }
78
79 @keyframes thinkrank-qe-pop {
80
81 from {
82 opacity: 0;
83 transform: translateY(6px) scale(0.985);
84 }
85
86 to {
87 opacity: 1;
88 transform: none;
89 }
90 }
91
92 /* Header */
93 .thinkrank-qe-header {
94 display: flex;
95 align-items: flex-start;
96 justify-content: space-between;
97 gap: 16px;
98 padding: 18px 24px;
99 border-bottom: 1px solid #e2e6f1;
100 }
101
102 .thinkrank-qe-title {
103 margin: 0;
104 font-size: 16px;
105 font-weight: 600;
106 line-height: 1.3;
107 color: #1d1d1d;
108 }
109
110 .thinkrank-qe-post-title {
111 margin: 3px 0 0;
112 font-size: 12px;
113 color: #5a5c5e;
114 overflow: hidden;
115 text-overflow: ellipsis;
116 display: -webkit-box;
117 -webkit-line-clamp: 1;
118 -webkit-box-orient: vertical;
119 }
120
121 .thinkrank-qe-close {
122 flex-shrink: 0;
123 display: inline-flex;
124 align-items: center;
125 justify-content: center;
126 width: 28px;
127 height: 28px;
128 padding: 0;
129 margin-top: 1px;
130 border: none;
131 border-radius: 6px;
132 background: transparent;
133 color: #5a5c5e;
134 cursor: pointer;
135 transition: all 0.15s ease;
136 }
137
138 .thinkrank-qe-close:hover,
139 .thinkrank-qe-close:focus {
140 background: #f1f1f5;
141 color: #1d1d1d;
142 outline: none;
143 }
144
145 /* Body */
146 .thinkrank-qe-body {
147 padding: 20px 24px;
148 overflow-y: auto;
149 display: flex;
150 flex-direction: column;
151 gap: 18px;
152 }
153
154 .thinkrank-qe-field {
155 display: flex;
156 flex-direction: column;
157 gap: 6px;
158 }
159
160 .thinkrank-qe-field-top {
161 display: flex;
162 align-items: baseline;
163 justify-content: space-between;
164 gap: 12px;
165 }
166
167 .thinkrank-qe-label {
168 font-size: 13px;
169 font-weight: 600;
170 color: #1d1d1d;
171 }
172
173 .thinkrank-qe-counter {
174 font-size: 12px;
175 color: #5a5c5e;
176 font-variant-numeric: tabular-nums;
177 }
178
179 .thinkrank-qe-counter.is-over {
180 color: #921c13;
181 font-weight: 600;
182 }
183
184 .thinkrank-qe-input {
185 width: 100%;
186 box-sizing: border-box;
187 margin: 0;
188 padding: 8px 12px;
189 font-size: 13px;
190 line-height: 1.5;
191 color: #1d1d1d;
192 background: #fff;
193 border: 1px solid #d5d5dd;
194 border-radius: 6px;
195 box-shadow: none;
196 transition: border-color 0.15s ease, box-shadow 0.15s ease;
197 }
198
199 .thinkrank-qe-input::placeholder {
200 color: #8c8f94;
201 }
202
203 .thinkrank-qe-input:focus {
204 border-color: #4451ff;
205 box-shadow: 0 0 0 2px rgba(68, 81, 255, 0.18);
206 outline: none;
207 }
208
209 textarea.thinkrank-qe-input {
210 resize: vertical;
211 min-height: 68px;
212 }
213
214 .thinkrank-qe-help {
215 margin: 0;
216 font-size: 12px;
217 line-height: 1.45;
218 color: #5a5c5e;
219 }
220
221 .thinkrank-qe-error {
222 margin: 0;
223 padding: 8px 12px;
224 font-size: 12px;
225 color: #921c13;
226 background: #fef3f2;
227 border: 1px solid rgba(146, 28, 19, 0.2);
228 border-radius: 6px;
229 }
230
231 /* Loading state */
232 .thinkrank-qe-loading {
233 height: 120px;
234 display: flex;
235 align-items: center;
236 justify-content: center;
237 }
238
239 .thinkrank-qe-loading::after {
240 content: "";
241 width: 22px;
242 height: 22px;
243 border: 2.5px solid #e2e6f1;
244 border-top-color: #4451ff;
245 border-radius: 50%;
246 animation: thinkrank-qe-spin 0.7s linear infinite;
247 }
248
249 @keyframes thinkrank-qe-spin {
250
251 to {
252 transform: rotate(360deg);
253 }
254 }
255
256 /* Footer */
257 .thinkrank-qe-footer {
258 display: flex;
259 align-items: center;
260 justify-content: space-between;
261 gap: 12px;
262 padding: 14px 24px;
263 border-top: 1px solid #e2e6f1;
264 background: #f8f8fb;
265 border-radius: 0 0 8px 8px;
266 }
267
268 .thinkrank-qe-edit-link {
269 font-size: 12px;
270 color: #5a5c5e;
271 text-decoration: none;
272 }
273
274 .thinkrank-qe-edit-link:hover,
275 .thinkrank-qe-edit-link:focus {
276 color: #4451ff;
277 text-decoration: underline;
278 }
279
280 .thinkrank-qe-actions {
281 display: flex;
282 align-items: center;
283 gap: 8px;
284 margin-left: auto;
285 }
286
287 .thinkrank-qe-btn {
288 display: inline-flex;
289 align-items: center;
290 justify-content: center;
291 padding: 8px 16px;
292 font-size: 13px;
293 font-weight: 500;
294 line-height: 1;
295 border-radius: 6px;
296 border: 1px solid transparent;
297 cursor: pointer;
298 transition: all 0.15s ease;
299 }
300
301 .thinkrank-qe-btn:focus {
302 outline: none;
303 box-shadow: 0 0 0 2px rgba(68, 81, 255, 0.25);
304 }
305
306 .thinkrank-qe-btn-ghost {
307 background: #fff;
308 border-color: #d5d5dd;
309 color: #1d1d1d;
310 }
311
312 .thinkrank-qe-btn-ghost:hover {
313 background: #f1f1f5;
314 }
315
316 .thinkrank-qe-btn-primary {
317 background: #4451ff;
318 color: #fff;
319 }
320
321 .thinkrank-qe-btn-primary:hover {
322 background: #3743e0;
323 }
324
325 .thinkrank-qe-btn-primary:disabled {
326 opacity: 0.6;
327 cursor: default;
328 }
329
330 /* Small screens: WP switches to its stacked list at 782px */
331 @media screen and (max-width: 600px) {
332
333 .thinkrank-qe-overlay {
334 padding: 12px;
335 align-items: flex-end;
336 }
337
338 .thinkrank-qe-modal {
339 max-height: 92vh;
340 }
341 }
342