PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.5
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.5
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 All 203 releases
betterdocs / react-src / admin / content-intelligence / content-intelligence-teaser.scss

content-intelligence-teaser.scss in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 4.9.5, at react-src/admin/content-intelligence/content-intelligence-teaser.scss

358 lines 11.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Free's Content Intelligence teaser.
2 *
3 * The shell (`.bda-app` / `.bda-shell` / `.bda-nav` / `.bda-main`), the lock
4 * panel (`.bda-lock-*`), the cards, tables, badges, KPI cards and banners all
5 * come from the shared analytics stylesheet (`../analytics/scss/dashboard.scss`),
6 * imported by index.js. Only the Content-Intelligence-specific pieces live here.
7 *
8 * Prefix is `bd-cit-*` (content intelligence teaser), not Pro's `bda-ci-*`, for
9 * the same reason the API Docs teaser uses `bd-apit-*`: Free's teaser and Pro's
10 * real screen are mutually exclusive, and keeping the names apart makes that
11 * impossible to get wrong. The values below are Pro's, re-expressed in the
12 * shared admin tokens (`--text-color-*` / `--base-color-*`) so the teaser
13 * follows dark mode the way the rest of the analytics surface does.
14 */
15
16 /* ── Shell ───────────────────────────────────────────────────────────── */
17
18 .bd-cit-wrapper {
19 .bda-app { min-height: 0; }
20 .bda-shell { min-height: calc(100vh - 260px); }
21 }
22
23 /* The nav's Pro pill. `.bda-nav-item span` (in dashboard.scss) makes every span
24 in a nav row the ellipsising label — which would stretch the badge and its
25 two inner spans as well — so pin them back here, where the badge is used. */
26 .bd-cit-nav .bda-nav-item .bda-nav-pro,
27 .bd-cit-nav .bda-nav-item .bda-nav-pro span {
28 flex: 0 0 auto;
29 overflow: visible;
30 }
31
32 /* ── Shared bits across the mocks ────────────────────────────────────── */
33
34 .bd-cit-hint { font-size: 11.5px; color: var(--text-color-600); }
35
36 .bd-cit-label {
37 font-size: 12px;
38 font-weight: 600;
39 color: var(--text-color-850);
40 margin-bottom: 6px;
41 }
42
43 .bd-cit-row-meta { font-size: 12px; color: var(--text-color-600); }
44
45 .bd-cit-row-actions { display: inline-flex; gap: 6px; justify-content: flex-end; align-items: center; }
46
47 /* Banner copy — `.bda-banner` is the shared amber explainer strip; these are
48 just its title/body rows. */
49 .bd-cit-banner-copy { flex: 1; min-width: 0; }
50 .bd-cit-banner-title { font-size: 15px; font-weight: 700; }
51 .bd-cit-banner-sub { font-size: 13px; margin-top: 4px; line-height: 1.5; }
52
53 /* ── Overview: KPI strip ─────────────────────────────────────────────── */
54
55 .bd-cit-kpi { display: flex; flex-direction: column; }
56 .bd-cit-kpi-body { display: flex; align-items: flex-end; gap: 10px; min-height: 34px; }
57 .bd-cit-kpi-foot {
58 display: flex;
59 align-items: center;
60 justify-content: space-between;
61 gap: 8px;
62 margin-top: 10px;
63 min-height: 18px;
64 }
65
66 .bd-cit-score { display: flex; align-items: flex-end; gap: 10px; }
67
68 .bd-cit-grade {
69 display: inline-flex;
70 align-items: center;
71 justify-content: center;
72 min-width: 26px;
73 height: 26px;
74 padding: 0 7px;
75 border-radius: 7px;
76 font-size: 13px;
77 font-weight: 700;
78 }
79
80 .bd-cit-rate { font-size: 12px; color: var(--text-color-600); padding-bottom: 3px; }
81 .bd-cit-rate strong { color: var(--base-color-700); font-weight: 600; }
82
83 .bd-cit-bar {
84 width: 100%;
85 height: 6px;
86 border-radius: 999px;
87 background: var(--base-color-65);
88 overflow: hidden;
89 }
90 .bd-cit-bar-fill { height: 100%; border-radius: 999px; background: #8b5cf6; }
91
92 /* ── Overview: "this week's top action" hero ─────────────────────────── */
93
94 .bd-cit-hero {
95 display: flex;
96 flex-wrap: wrap;
97 align-items: center;
98 justify-content: space-between;
99 gap: 24px;
100 padding: 24px;
101 border: 1px solid var(--base-color-100);
102 border-radius: 8px;
103 background: linear-gradient(135deg, var(--base-color-75) 0%, var(--base-background) 55%);
104 }
105
106 .bd-cit-hero-main { display: flex; align-items: flex-start; gap: 16px; flex: 1; min-width: 340px; }
107
108 .bd-cit-hero-ico {
109 display: flex;
110 align-items: center;
111 justify-content: center;
112 flex-shrink: 0;
113 width: 48px;
114 height: 48px;
115 border-radius: 8px;
116 border: 1px solid var(--base-color-100);
117 background: var(--base-background);
118 color: var(--base-color-700);
119 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
120 }
121
122 .bd-cit-hero-copy { flex: 1; min-width: 0; }
123
124 .bd-cit-hero-eyebrow {
125 display: flex;
126 align-items: center;
127 gap: 8px;
128 margin-bottom: 6px;
129 font-size: 11px;
130 font-weight: 700;
131 letter-spacing: 0.07em;
132 text-transform: uppercase;
133 color: var(--base-color-700);
134 }
135
136 .bd-cit-conf {
137 padding: 2px 8px;
138 border-radius: 999px;
139 font-size: 11px;
140 font-weight: 500;
141 letter-spacing: 0;
142 text-transform: none;
143 background: var(--base-color-65);
144 color: var(--text-color-700);
145 }
146 .bd-cit-conf.is-high { background: var(--base-color-75); color: var(--base-color-700); }
147
148 .bd-cit-hero-title {
149 margin: 0;
150 font-size: 20px;
151 font-weight: 700;
152 line-height: 1.35;
153 letter-spacing: -0.01em;
154 color: var(--text-color-900);
155 }
156 .bd-cit-hero-title em { font-style: normal; color: var(--base-color-700); }
157
158 .bd-cit-hero-sub {
159 margin: 6px 0 0;
160 max-width: 62ch;
161 font-size: 13.5px;
162 line-height: 1.55;
163 color: var(--text-color-700);
164 }
165
166 .bd-cit-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
167
168 .bd-cit-signals {
169 display: grid;
170 grid-template-columns: repeat(auto-fit, minmax(78px, 1fr));
171 gap: 16px;
172 padding: 16px 18px;
173 border: 1px solid var(--text-color-200);
174 border-radius: 8px;
175 background: var(--base-background);
176 }
177 .bd-cit-signal { text-align: center; }
178 .bd-cit-signal-num {
179 font-size: 22px;
180 font-weight: 700;
181 line-height: 1;
182 font-variant-numeric: tabular-nums;
183 color: var(--text-color-900);
184 }
185 .bd-cit-signal-label { margin-top: 5px; font-size: 10.5px; line-height: 1.3; color: var(--text-color-600); }
186
187 /* ── Overview: module tiles ──────────────────────────────────────────── */
188
189 .bd-cit-section { margin: 0 0 12px; font-size: 15px; font-weight: 600; color: var(--text-color-900); }
190
191 .bd-cit-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
192
193 .bd-cit-tile {
194 display: flex;
195 flex-direction: column;
196 align-items: flex-start;
197 padding: 20px;
198 border: 1px solid var(--text-color-200);
199 border-radius: 8px;
200 background: var(--base-background);
201 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
202 }
203 .bd-cit-tile-ico {
204 display: flex;
205 align-items: center;
206 justify-content: center;
207 width: 40px;
208 height: 40px;
209 margin-bottom: 14px;
210 border-radius: 8px;
211 }
212 .bd-cit-tile-num { display: flex; align-items: baseline; gap: 6px; }
213 .bd-cit-tile-num strong {
214 font-size: 22px;
215 font-weight: 700;
216 letter-spacing: -0.02em;
217 font-variant-numeric: tabular-nums;
218 color: var(--text-color-900);
219 }
220 .bd-cit-tile-unit { font-size: 12px; color: var(--text-color-600); }
221 .bd-cit-tile-title { margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--text-color-900); }
222 .bd-cit-tile-blurb { margin-top: 4px; font-size: 12.5px; line-height: 1.45; color: var(--text-color-600); }
223 .bd-cit-tile-cta {
224 display: inline-flex;
225 align-items: center;
226 gap: 4px;
227 margin-top: 12px;
228 font-size: 12.5px;
229 font-weight: 500;
230 color: var(--text-color-600);
231 }
232
233 /* ── Content Gaps ────────────────────────────────────────────────────── */
234
235 .bd-cit-gap-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
236 .bd-cit-gap-main { flex: 1; min-width: 240px; }
237 .bd-cit-gap-badges { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
238 .bd-cit-gap-title { font-size: 15px; font-weight: 700; color: var(--text-color-900); margin-bottom: 4px; }
239 .bd-cit-gap-meta { font-size: 12px; color: var(--text-color-850); }
240 .bd-cit-gap-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
241
242 .bd-cit-demand { display: flex; align-items: center; gap: 3px; }
243 .bd-cit-demand span { width: 14px; height: 6px; border-radius: 2px; background: var(--text-color-100); }
244 .bd-cit-demand span.is-on { background: #8b5cf6; }
245
246 .bd-cit-gap-queries { margin-top: 12px; }
247 .bd-cit-chips { display: flex; flex-wrap: wrap; gap: 6px; }
248 .bd-cit-chip {
249 padding: 3px 8px;
250 border-radius: 6px;
251 background: var(--text-color-100);
252 color: var(--text-color-700);
253 font-size: 12px;
254 }
255
256 .bd-cit-gap-foot { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--text-color-100); }
257 .bd-cit-gap-suggested { font-weight: 600; color: var(--text-color-900); }
258 .bd-cit-gap-outline {
259 margin: 6px 0 0;
260 white-space: pre-wrap;
261 font-family: inherit;
262 font-size: 12px;
263 line-height: 1.6;
264 color: var(--text-color-850);
265 }
266 .bd-cit-gap-draft { display: flex; align-items: center; gap: 8px; }
267
268 /* ── Stale Content ───────────────────────────────────────────────────── */
269
270 .bd-cit-staleness { display: flex; align-items: center; gap: 8px; min-width: 120px; }
271 .bd-cit-staleness-track {
272 flex: 1;
273 height: 6px;
274 border-radius: 4px;
275 background: var(--text-color-100);
276 overflow: hidden;
277 }
278 .bd-cit-staleness-fill { height: 100%; border-radius: 4px; }
279
280 .bd-cit-flags { display: flex; flex-wrap: wrap; gap: 4px; }
281
282 /* ── Health Score ────────────────────────────────────────────────────── */
283
284 .bd-cit-health-top { display: flex; align-items: center; gap: 20px; }
285 .bd-cit-health-grade {
286 display: flex;
287 align-items: center;
288 gap: 8px;
289 font-size: 28px;
290 font-weight: 800;
291 color: var(--text-color-900);
292 }
293 .bd-cit-health-cell { display: flex; align-items: center; gap: 8px; }
294 .bd-cit-health-grade-chip {
295 display: inline-flex;
296 align-items: center;
297 justify-content: center;
298 width: 24px;
299 height: 24px;
300 border-radius: 6px;
301 font-size: 12px;
302 font-weight: 700;
303 color: #fff;
304 }
305
306 /* ── Duplicates & Overlaps ───────────────────────────────────────────── */
307
308 .bd-cit-pair-head {
309 display: flex;
310 align-items: center;
311 justify-content: space-between;
312 gap: 12px;
313 margin-bottom: 12px;
314 }
315 .bd-cit-pair-body { display: flex; align-items: center; gap: 12px; }
316 .bd-cit-pair-doc {
317 flex: 1;
318 min-width: 0;
319 padding: 12px;
320 border: 1px solid var(--text-color-100);
321 border-radius: 8px;
322 background: var(--text-color-50);
323 }
324 .bd-cit-pair-title { font-weight: 500; color: var(--text-color-900); margin-bottom: 6px; }
325 .bd-cit-pair-link {
326 display: inline-flex;
327 align-items: center;
328 gap: 4px;
329 font-size: 12px;
330 color: var(--base-color-700);
331 }
332 .bd-cit-pair-join { flex-shrink: 0; color: var(--text-color-600); }
333
334 /* ── Narrow screens ──────────────────────────────────────────────────── */
335
336 @media (max-width: 1200px) {
337 .bd-cit-tiles { grid-template-columns: repeat(2, 1fr); }
338 }
339
340 @media (max-width: 782px) {
341 .bd-cit-tiles { grid-template-columns: 1fr; }
342 .bd-cit-hero { padding: 20px; }
343 .bd-cit-hero-main { min-width: 0; }
344 .bd-cit-signals { width: 100%; }
345 .bd-cit-pair-body { flex-direction: column; align-items: stretch; }
346 }
347
348 /* Dark mode — everything above is token-driven and flips on its own except the
349 two places the mock reaches past the palette for a module accent (the violet
350 demand meter / suggestion bar), which stay readable as-is, and the hero's
351 gradient, which needs the dark surface rather than the light green wash. */
352 .betterdocs-admin.betterdocs-dark-mode {
353 .bd-cit-hero { background: var(--base-background); border-color: var(--text-color-150); }
354 .bd-cit-signals,
355 .bd-cit-tile { border-color: var(--text-color-150); }
356 .bd-cit-pair-doc { border-color: var(--text-color-150); background: var(--base-color-50); }
357 }
358