@goodfellow-cms/admin 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/styles.css CHANGED
@@ -4,8 +4,11 @@
4
4
  */
5
5
  /* Each color is light-dark(light, dark): light-dark() picks by color-scheme, which follows
6
6
  * the computer's setting unless the admin panel's color menu chose (data-gfa-theme). */
7
- :root {
7
+ :root:not(.gfa-frame-render) {
8
8
  color-scheme: light dark;
9
+ }
10
+
11
+ :root {
9
12
  --gfa-bg: light-dark(#f8fafc, #0b1120);
10
13
  --gfa-surface: light-dark(#ffffff, #111827);
11
14
  --gfa-text: light-dark(#0f172a, #e2e8f0);
@@ -24,11 +27,18 @@
24
27
  --gfa-published-text: light-dark(#ffffff, #022c22);
25
28
  --gfa-error-bg: light-dark(#fef2f2, #3b0d0d);
26
29
  --gfa-error-text: light-dark(#991b1b, #fca5a5);
30
+ --gfa-warning-bg: light-dark(#fef3c7, #451a03);
31
+ --gfa-warning-text: light-dark(#92400e, #fde68a);
27
32
  --gfa-demo-bg: light-dark(#fef9c3, #422006);
28
33
  --gfa-demo-border: light-dark(#fde68a, #854d0e);
29
34
  --gfa-demo-text: light-dark(#713f12, #fde68a);
35
+ --gfa-draft-bg: light-dark(#eff6ff, #172554);
36
+ --gfa-draft-border: light-dark(#bfdbfe, #1e40af);
37
+ --gfa-draft-text: light-dark(#1e3a8a, #dbeafe);
30
38
  --gfa-checker: light-dark(#f1f5f9, #1e293b);
31
39
  --gfa-checker-alt: light-dark(#ffffff, #0f172a);
40
+ --gfa-tooltip-bg: light-dark(#0f172a, #e2e8f0);
41
+ --gfa-tooltip-text: light-dark(#f8fafc, #0b1120);
32
42
  --gfa-radius: 6px;
33
43
  --gfa-topbar-height: 52px;
34
44
  --gfa-code-active-line: light-dark(rgb(37 99 235 / 0.06), rgb(96 165 250 / 0.08));
@@ -98,6 +108,28 @@ body,
98
108
  font-size: 14px;
99
109
  }
100
110
 
111
+ .gfa-draft-banner {
112
+ display: flex;
113
+ flex-wrap: wrap;
114
+ align-items: center;
115
+ justify-content: center;
116
+ gap: 8px 12px;
117
+ flex-shrink: 0;
118
+ padding: 6px 16px;
119
+ background: var(--gfa-draft-bg);
120
+ border-bottom: 1px solid var(--gfa-draft-border);
121
+ color: var(--gfa-draft-text);
122
+ font-size: 14px;
123
+ }
124
+
125
+ .gfa-draft-banner .gfa-draft-count {
126
+ font-weight: 600;
127
+ }
128
+
129
+ .gfa-draft-banner a {
130
+ color: inherit;
131
+ }
132
+
101
133
  .gfa-brand {
102
134
  font-weight: 700;
103
135
  white-space: nowrap;
@@ -151,12 +183,178 @@ body,
151
183
  overflow: auto;
152
184
  }
153
185
 
186
+ /* Site Settings: the sidebar, and the tab chosen beside it, left-aligned. */
187
+ .gfa-settings {
188
+ display: flex;
189
+ height: 100%;
190
+ min-height: 0;
191
+ }
192
+
193
+ .gfa-settings-content {
194
+ flex: 1;
195
+ min-width: 0;
196
+ overflow: auto;
197
+ }
198
+
199
+ .gfa-sidebar {
200
+ display: flex;
201
+ flex-direction: column;
202
+ flex-shrink: 0;
203
+ width: 216px;
204
+ padding: 12px 8px;
205
+ box-sizing: border-box;
206
+ background: var(--gfa-surface);
207
+ border-right: 1px solid var(--gfa-border);
208
+ overflow-y: auto;
209
+ transition: width 180ms ease;
210
+ }
211
+
212
+ .gfa-sidebar[data-collapsed] {
213
+ width: 56px;
214
+ /* Tooltips hang outside it. */
215
+ overflow: visible;
216
+ }
217
+
218
+ .gfa-sidebar-list {
219
+ display: flex;
220
+ flex-direction: column;
221
+ gap: 2px;
222
+ margin: 0;
223
+ padding: 0;
224
+ list-style: none;
225
+ }
226
+
227
+ .gfa-sidebar-divider {
228
+ width: 100%;
229
+ margin: 10px 0;
230
+ border: 0;
231
+ border-top: 1px solid var(--gfa-border);
232
+ }
233
+
234
+ /*
235
+ * A plugin's screen, drawn by the plugin in a frame of its own, which looks
236
+ * like any other screen: as wide as the screen, with no border, and as tall
237
+ * as what the plugin draws, which its frame reports.
238
+ */
239
+ .gfa-plugin-screen {
240
+ display: block;
241
+ width: 100%;
242
+ min-height: 240px;
243
+ border: 0;
244
+ background: var(--gfa-bg);
245
+ }
246
+
247
+ .gfa-plugin-screen-wrap > .gfa-error {
248
+ margin: 24px;
249
+ }
250
+
251
+ .gfa-sidebar-item {
252
+ position: relative;
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 10px;
256
+ width: 100%;
257
+ min-height: 36px;
258
+ padding: 0 10px;
259
+ box-sizing: border-box;
260
+ border: 0;
261
+ border-radius: var(--gfa-radius);
262
+ background: none;
263
+ color: var(--gfa-muted);
264
+ font: inherit;
265
+ font-size: 14px;
266
+ text-align: left;
267
+ text-decoration: none;
268
+ white-space: nowrap;
269
+ cursor: pointer;
270
+ }
271
+
272
+ .gfa-sidebar-item:hover {
273
+ background: var(--gfa-bg);
274
+ color: var(--gfa-text);
275
+ }
276
+
277
+ .gfa-sidebar-item[aria-current="page"] {
278
+ background: var(--gfa-current-bg);
279
+ color: var(--gfa-accent);
280
+ font-weight: 600;
281
+ }
282
+
283
+ .gfa-sidebar-item:focus-visible {
284
+ outline: 2px solid var(--gfa-accent);
285
+ outline-offset: -2px;
286
+ }
287
+
288
+ .gfa-sidebar-icon {
289
+ flex-shrink: 0;
290
+ }
291
+
292
+ .gfa-sidebar-label {
293
+ overflow: hidden;
294
+ text-overflow: ellipsis;
295
+ }
296
+
297
+ .gfa-sidebar-footer {
298
+ margin-top: auto;
299
+ }
300
+
301
+ /* Collapsed, each name becomes a tooltip beside its icon, which fades and slides in. */
302
+ .gfa-sidebar[data-collapsed] .gfa-sidebar-label {
303
+ position: absolute;
304
+ left: calc(100% + 10px);
305
+ top: 50%;
306
+ z-index: 20;
307
+ padding: 5px 9px;
308
+ border-radius: var(--gfa-radius);
309
+ background: var(--gfa-tooltip-bg);
310
+ color: var(--gfa-tooltip-text);
311
+ font-size: 13px;
312
+ font-weight: 500;
313
+ box-shadow: 0 4px 12px rgb(15 23 42 / 0.18);
314
+ pointer-events: none;
315
+ opacity: 0;
316
+ transform: translate(-6px, -50%);
317
+ transition:
318
+ opacity 140ms ease,
319
+ transform 140ms ease;
320
+ }
321
+
322
+ .gfa-sidebar[data-collapsed] .gfa-sidebar-label::before {
323
+ content: "";
324
+ position: absolute;
325
+ right: 100%;
326
+ top: 50%;
327
+ border: 5px solid transparent;
328
+ border-right-color: var(--gfa-tooltip-bg);
329
+ transform: translateY(-50%);
330
+ }
331
+
332
+ .gfa-sidebar[data-collapsed] .gfa-sidebar-item:hover .gfa-sidebar-label,
333
+ .gfa-sidebar[data-collapsed] .gfa-sidebar-item:focus-visible .gfa-sidebar-label {
334
+ opacity: 1;
335
+ transform: translate(0, -50%);
336
+ transition-delay: 120ms;
337
+ }
338
+
339
+ @media (prefers-reduced-motion: reduce) {
340
+ .gfa-sidebar,
341
+ .gfa-sidebar[data-collapsed] .gfa-sidebar-label {
342
+ transition: none;
343
+ }
344
+ }
345
+
154
346
  .gfa-screen {
155
347
  max-width: 960px;
156
348
  margin: 0 auto;
157
349
  padding: 24px 16px;
158
350
  }
159
351
 
352
+ /* Site Settings' tabs sit beside the sidebar, left-aligned. */
353
+ .gfa-settings-content > .gfa-screen {
354
+ margin: 0;
355
+ padding: 24px;
356
+ }
357
+
160
358
  .gfa-screen-header {
161
359
  display: flex;
162
360
  align-items: center;
@@ -418,6 +616,66 @@ body,
418
616
  color: var(--gfa-error-text);
419
617
  }
420
618
 
619
+ .gfa-notice-warning {
620
+ background: var(--gfa-demo-bg);
621
+ border-color: var(--gfa-demo-border);
622
+ color: var(--gfa-demo-text);
623
+ }
624
+
625
+ /* Scheduled publishing: when a page or item is on the site, and what's coming up. */
626
+ .gfa-schedule {
627
+ margin: 0;
628
+ padding: 0;
629
+ border: 0;
630
+ min-width: 0;
631
+ }
632
+
633
+ .gfa-schedule-times {
634
+ display: flex;
635
+ flex-wrap: wrap;
636
+ gap: 0 16px;
637
+ }
638
+
639
+ .gfa-schedule-times .gfa-field {
640
+ flex: 1 1 14rem;
641
+ }
642
+
643
+ .gfa-schedule-status {
644
+ display: block;
645
+ margin-top: 2px;
646
+ color: var(--gfa-muted);
647
+ font-size: 13px;
648
+ }
649
+
650
+ .gfa-coming-up {
651
+ margin: 0 0 24px;
652
+ padding: 12px 16px;
653
+ border: 1px solid var(--gfa-border);
654
+ border-radius: var(--gfa-radius);
655
+ background: var(--gfa-surface);
656
+ }
657
+
658
+ .gfa-coming-up ul {
659
+ margin: 0 0 8px;
660
+ padding: 0;
661
+ list-style: none;
662
+ }
663
+
664
+ .gfa-coming-up li {
665
+ display: flex;
666
+ flex-wrap: wrap;
667
+ gap: 0 8px;
668
+ padding: 4px 0;
669
+ }
670
+
671
+ .gfa-coming-up time {
672
+ font-variant-numeric: tabular-nums;
673
+ }
674
+
675
+ .gfa-coming-up-kind {
676
+ color: var(--gfa-muted);
677
+ }
678
+
421
679
  .gfa-details summary {
422
680
  cursor: pointer;
423
681
  margin-bottom: 8px;
@@ -460,10 +718,20 @@ body,
460
718
  margin-top: 8px;
461
719
  }
462
720
 
721
+ .gfa-check-list {
722
+ display: grid;
723
+ gap: 6px;
724
+ max-height: 40vh;
725
+ margin: 0 0 16px;
726
+ padding-left: 20px;
727
+ overflow-y: auto;
728
+ }
729
+
463
730
  .gfa-editor {
464
731
  position: relative;
465
732
  display: flex;
466
733
  flex-direction: column;
734
+ width: 100%;
467
735
  height: 100%;
468
736
  }
469
737
 
@@ -487,13 +755,33 @@ body,
487
755
  height: 100%;
488
756
  }
489
757
 
490
- .gfa-layout-screen > .gfa-tabs {
491
- margin: 0;
758
+ .gfa-layout-bar {
759
+ display: flex;
760
+ flex-wrap: wrap;
761
+ align-items: center;
762
+ justify-content: space-between;
763
+ gap: 8px 16px;
492
764
  padding: 8px 16px;
493
765
  background: var(--gfa-surface);
494
766
  border-bottom: 1px solid var(--gfa-border);
495
767
  }
496
768
 
769
+ .gfa-layout-bar > .gfa-tabs {
770
+ margin: 0;
771
+ }
772
+
773
+ /* A field with its label beside it, such as the layout editor's language. */
774
+ .gfa-inline-field {
775
+ display: inline-flex;
776
+ align-items: center;
777
+ gap: 8px;
778
+ font-size: 14px;
779
+ }
780
+
781
+ .gfa-inline-field > .gfa-input {
782
+ width: auto;
783
+ }
784
+
497
785
  .gfa-layout-screen > .gfa-editor {
498
786
  flex: 1;
499
787
  min-height: 0;
@@ -725,6 +1013,109 @@ body,
725
1013
  min-height: 0;
726
1014
  }
727
1015
 
1016
+ /* The editor's header, outside the frame that runs the site's code. */
1017
+ .gfa-editor-header {
1018
+ display: flex;
1019
+ flex-wrap: wrap;
1020
+ align-items: center;
1021
+ gap: 8px 16px;
1022
+ padding: 8px 16px;
1023
+ background: var(--gfa-surface);
1024
+ border-bottom: 1px solid var(--gfa-border);
1025
+ }
1026
+
1027
+ .gfa-editor-title {
1028
+ flex: 1;
1029
+ min-width: 0;
1030
+ margin: 0;
1031
+ overflow: hidden;
1032
+ font-size: 15px;
1033
+ white-space: nowrap;
1034
+ text-overflow: ellipsis;
1035
+ }
1036
+
1037
+ .gfa-editor-title code {
1038
+ color: var(--gfa-muted);
1039
+ font-size: 13px;
1040
+ font-weight: 400;
1041
+ }
1042
+
1043
+ .gfa-editor-tools {
1044
+ display: flex;
1045
+ align-items: center;
1046
+ gap: 4px;
1047
+ }
1048
+
1049
+ /* Tools an editor plugin doesn't have, such as Puck's sidebars and preview widths. */
1050
+ .gfa-editor-tools[hidden] {
1051
+ display: none;
1052
+ }
1053
+
1054
+ /* Which editor to edit with, where the site has editor plugins. */
1055
+ .gfa-editor-choice {
1056
+ font-size: 13px;
1057
+ color: var(--gfa-muted);
1058
+ }
1059
+
1060
+ .gfa-editor-tools .gfa-button[aria-pressed="true"],
1061
+ .gfa-header-actions .gfa-button[aria-pressed="true"] {
1062
+ background: var(--gfa-current-bg);
1063
+ }
1064
+
1065
+ .gfa-icon-button {
1066
+ display: inline-flex;
1067
+ align-items: center;
1068
+ justify-content: center;
1069
+ padding: 6px;
1070
+ }
1071
+
1072
+ .gfa-editor-body {
1073
+ display: flex;
1074
+ flex: 1;
1075
+ min-height: 0;
1076
+ }
1077
+
1078
+ .gfa-editor-ai-panel {
1079
+ flex: none;
1080
+ width: min(360px, 40vw);
1081
+ overflow-y: auto;
1082
+ background: var(--gfa-surface);
1083
+ border-right: 1px solid var(--gfa-border);
1084
+ }
1085
+
1086
+ .gfa-editor-frame-wrap {
1087
+ flex: 1;
1088
+ min-width: 0;
1089
+ display: flex;
1090
+ }
1091
+
1092
+ .gfa-editor-frame {
1093
+ flex: 1;
1094
+ width: 100%;
1095
+ height: 100%;
1096
+ border: 0;
1097
+ background: var(--gfa-bg);
1098
+ }
1099
+
1100
+ /* The frames that run the site's code: the editor fills its page, and its canvas can be a phone's width. */
1101
+ :root.gfa-frame,
1102
+ .gfa-frame body {
1103
+ height: 100%;
1104
+ margin: 0;
1105
+ }
1106
+
1107
+ .gfa-frame-editor #goodfellow-frame,
1108
+ .gfa-frame-editor .gfa-editor-puck {
1109
+ height: 100%;
1110
+ }
1111
+
1112
+ .gfa-frame-editor .gf-canvas {
1113
+ width: var(--gf-canvas-width, auto);
1114
+ max-width: 100%;
1115
+ min-height: 100%;
1116
+ margin-inline: auto;
1117
+ }
1118
+
728
1119
  .gfa-editor-notice {
729
1120
  padding: 8px 16px;
730
1121
  background: var(--gfa-surface);
@@ -979,6 +1370,54 @@ body,
979
1370
  }
980
1371
 
981
1372
  .gfa-media-actions .gfa-button,
1373
+ /* A table's cells, in the editor's fields. */
1374
+ .gfa-table-field {
1375
+ padding: 0 16px 16px;
1376
+ font:
1377
+ 14px / 1.5 ui-sans-serif,
1378
+ system-ui,
1379
+ sans-serif;
1380
+ }
1381
+
1382
+ .gfa-table-field-label {
1383
+ margin-bottom: 8px;
1384
+ font-weight: 600;
1385
+ }
1386
+
1387
+ .gfa-table-field-grid {
1388
+ display: grid;
1389
+ gap: 4px;
1390
+ overflow-x: auto;
1391
+ }
1392
+
1393
+ .gfa-table-field-row {
1394
+ display: contents;
1395
+ }
1396
+
1397
+ .gfa-table-field-cell {
1398
+ min-width: 0;
1399
+ }
1400
+
1401
+ .gfa-table-field-remove {
1402
+ border: 1px solid var(--gfa-border);
1403
+ border-radius: var(--gfa-radius);
1404
+ background: transparent;
1405
+ color: var(--gfa-muted);
1406
+ cursor: pointer;
1407
+ }
1408
+
1409
+ .gfa-table-field-remove:disabled {
1410
+ cursor: default;
1411
+ opacity: 0.4;
1412
+ }
1413
+
1414
+ .gfa-table-field-actions {
1415
+ display: flex;
1416
+ flex-wrap: wrap;
1417
+ gap: 8px;
1418
+ margin-top: 8px;
1419
+ }
1420
+
982
1421
  .gfa-media-chooser .gfa-button {
983
1422
  min-height: 30px;
984
1423
  padding: 0 10px;
@@ -1134,11 +1573,9 @@ body,
1134
1573
 
1135
1574
  /*
1136
1575
  * Items have no blocks, so the item editor leaves out Puck's Blocks and Outline
1137
- * buttons, always the first two in its side bar (after the legacy side bar's,
1138
- * which only shows on wide screens, when the AI assistant is off).
1576
+ * buttons, the two after the legacy side bar's, which only shows on wide screens.
1139
1577
  */
1140
- .gfa-editor-entry.gfa-editor-ai nav[class*="_Nav_"] > ul > li:nth-child(-n + 2),
1141
- .gfa-editor-entry:not(.gfa-editor-ai) nav[class*="_Nav_"] > ul > li:nth-child(n + 2):nth-child(-n + 3) {
1578
+ .gfa-editor-for-entry nav[class*="_Nav_"] > ul > li:nth-child(n + 2):nth-child(-n + 3) {
1142
1579
  display: none;
1143
1580
  }
1144
1581
 
@@ -1337,6 +1774,74 @@ body,
1337
1774
  overflow: hidden;
1338
1775
  }
1339
1776
 
1777
+ .gfa-theme-search {
1778
+ display: flex;
1779
+ align-items: flex-end;
1780
+ gap: 8px;
1781
+ }
1782
+
1783
+ .gfa-theme-search > :first-child {
1784
+ flex: 1;
1785
+ }
1786
+
1787
+ .gfa-theme-installed {
1788
+ flex-wrap: wrap;
1789
+ }
1790
+
1791
+ .gfa-theme-details {
1792
+ display: grid;
1793
+ gap: 12px;
1794
+ margin: 16px 0;
1795
+ padding: 16px;
1796
+ border: 1px solid var(--gfa-border);
1797
+ border-radius: var(--gfa-radius);
1798
+ background: var(--gfa-surface);
1799
+ }
1800
+
1801
+ .gfa-theme-details .gfa-screen-header {
1802
+ margin-bottom: 0;
1803
+ }
1804
+
1805
+ .gfa-theme-image {
1806
+ max-width: 100%;
1807
+ border: 1px solid var(--gfa-border);
1808
+ border-radius: var(--gfa-radius);
1809
+ }
1810
+
1811
+ .gfa-theme-swatches {
1812
+ display: flex;
1813
+ flex-wrap: wrap;
1814
+ gap: 6px;
1815
+ margin: 0;
1816
+ padding: 0;
1817
+ list-style: none;
1818
+ }
1819
+
1820
+ .gfa-theme-swatch {
1821
+ display: block;
1822
+ width: 28px;
1823
+ height: 28px;
1824
+ border: 1px solid var(--gfa-border);
1825
+ border-radius: 50%;
1826
+ }
1827
+
1828
+ .gfa-theme-preview {
1829
+ position: relative;
1830
+ height: 60vh;
1831
+ border: 1px solid var(--gfa-border);
1832
+ border-radius: var(--gfa-radius);
1833
+ overflow: hidden;
1834
+ }
1835
+
1836
+ .gfa-site-changes {
1837
+ display: grid;
1838
+ gap: 8px;
1839
+ }
1840
+
1841
+ .gfa-site-changes .gfa-label {
1842
+ margin: 0 0 4px;
1843
+ }
1844
+
1340
1845
  @media (max-width: 900px) {
1341
1846
  .gfa-versions-layout {
1342
1847
  grid-template-columns: 1fr;
@@ -1484,3 +1989,137 @@ body,
1484
1989
  justify-content: space-between;
1485
1990
  gap: 8px;
1486
1991
  }
1992
+
1993
+ /* How a link to a page looks when it's shared, at the end of the page's settings. */
1994
+ .gfa-share-preview {
1995
+ padding: 16px;
1996
+ border-top: 1px solid var(--gfa-border);
1997
+ }
1998
+
1999
+ .gfa-share-card {
2000
+ overflow: hidden;
2001
+ margin: 8px 0;
2002
+ border: 1px solid var(--gfa-border);
2003
+ border-radius: var(--gfa-radius);
2004
+ background: var(--gfa-surface);
2005
+ }
2006
+
2007
+ .gfa-share-image {
2008
+ display: block;
2009
+ width: 100%;
2010
+ aspect-ratio: 1.91 / 1;
2011
+ object-fit: cover;
2012
+ background: var(--gfa-checker);
2013
+ }
2014
+
2015
+ .gfa-share-no-image {
2016
+ display: grid;
2017
+ place-items: center;
2018
+ color: var(--gfa-muted);
2019
+ font-size: 13px;
2020
+ }
2021
+
2022
+ .gfa-share-text {
2023
+ display: grid;
2024
+ gap: 2px;
2025
+ padding: 8px 12px;
2026
+ font-size: 14px;
2027
+ }
2028
+
2029
+ .gfa-share-host {
2030
+ color: var(--gfa-muted);
2031
+ font-size: 12px;
2032
+ }
2033
+
2034
+ .gfa-share-description {
2035
+ display: -webkit-box;
2036
+ overflow: hidden;
2037
+ color: var(--gfa-muted);
2038
+ -webkit-box-orient: vertical;
2039
+ -webkit-line-clamp: 2;
2040
+ line-clamp: 2;
2041
+ }
2042
+
2043
+ /* Import from WordPress */
2044
+ .gfa-import-address {
2045
+ display: flex;
2046
+ flex-wrap: wrap;
2047
+ gap: 8px;
2048
+ }
2049
+
2050
+ .gfa-import-address .gfa-input {
2051
+ flex: 1 1 288px;
2052
+ width: auto;
2053
+ }
2054
+
2055
+ .gfa-import-summary,
2056
+ .gfa-import-notes {
2057
+ margin: 0;
2058
+ padding-left: 20px;
2059
+ line-height: 1.6;
2060
+ }
2061
+
2062
+ .gfa-import-notes li + li {
2063
+ margin-top: 6px;
2064
+ }
2065
+
2066
+ .gfa-import-actions {
2067
+ display: flex;
2068
+ flex-wrap: wrap;
2069
+ gap: 8px;
2070
+ }
2071
+
2072
+ /* One of the site's other languages, on Site Settings' Languages tab. */
2073
+ .gfa-language-card {
2074
+ display: flex;
2075
+ flex-direction: column;
2076
+ gap: 12px;
2077
+ padding: 16px;
2078
+ border: 1px solid var(--gfa-border);
2079
+ border-radius: var(--gfa-radius);
2080
+ background: var(--gfa-surface);
2081
+ }
2082
+
2083
+ .gfa-language-card > .gfa-section-title {
2084
+ margin: 0;
2085
+ }
2086
+
2087
+ .gfa-language-card > .gfa-button {
2088
+ align-self: flex-start;
2089
+ }
2090
+
2091
+ /* A page's or item's translations, in the Pages screen's and collections' lists. */
2092
+ .gfa-translations {
2093
+ display: flex;
2094
+ flex-wrap: wrap;
2095
+ align-items: center;
2096
+ gap: 4px 12px;
2097
+ margin-top: 4px;
2098
+ font-size: 14px;
2099
+ }
2100
+
2101
+ .gfa-translation {
2102
+ display: inline-flex;
2103
+ align-items: center;
2104
+ gap: 6px;
2105
+ }
2106
+
2107
+ .gfa-badge-warning {
2108
+ background: var(--gfa-warning-bg);
2109
+ color: var(--gfa-warning-text);
2110
+ }
2111
+
2112
+ .gfa-ai-translate {
2113
+ display: flex;
2114
+ flex-direction: column;
2115
+ align-items: flex-start;
2116
+ gap: 8px;
2117
+ padding-bottom: 12px;
2118
+ border-bottom: 1px solid var(--gfa-border);
2119
+ }
2120
+
2121
+ .gfa-editor-viewports {
2122
+ margin: 0;
2123
+ padding: 0;
2124
+ border: 0;
2125
+ }