@nukipa/post-content 0.2.0 → 0.2.2

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/styles.css +78 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nukipa/post-content",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Framework-agnostic processor for Nukipa CMS post bodies — markdown + component markers + citations → HTML + interactive island descriptors.",
5
5
  "license": "MIT",
6
6
  "author": "Nukipa Labs",
package/styles.css CHANGED
@@ -1,3 +1,46 @@
1
+ /*
2
+ * Material Icons — declared inline so it works regardless of where
3
+ * this stylesheet lands in the bundle.
4
+ *
5
+ * We used to `@import url("https://fonts.googleapis.com/icon?family=Material+Icons")`,
6
+ * but the CSS spec requires every `@import` rule to appear BEFORE
7
+ * any other rule in the document; modern bundlers (Next.js/webpack,
8
+ * Vite) concatenate consumer styles (Tailwind, next/font, globals.css)
9
+ * ahead of package CSS, pushing the @import past other rules where
10
+ * browsers silently ignore it.
11
+ *
12
+ * The renderer emits glyph names verbatim (`help_outline`,
13
+ * `expand_more`, `arrow_forward`, `chevron_left`, `chevron_right`,
14
+ * plus whatever stage icons the post author picked); without the
15
+ * font those names render as literal text. The src URL is Google's
16
+ * gstatic CDN — old versions stay accessible indefinitely, so the
17
+ * pinned `v143` is durable. To self-host: replace the @font-face
18
+ * src with your own woff2 URL and keep the `.material-icons` rules
19
+ * below as-is.
20
+ */
21
+ @font-face {
22
+ font-family: "Material Icons";
23
+ font-style: normal;
24
+ font-weight: 400;
25
+ src: url("https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.woff2") format("woff2");
26
+ font-display: swap;
27
+ }
28
+ .material-icons {
29
+ font-family: "Material Icons";
30
+ font-weight: normal;
31
+ font-style: normal;
32
+ font-size: 24px;
33
+ line-height: 1;
34
+ letter-spacing: normal;
35
+ text-transform: none;
36
+ display: inline-block;
37
+ white-space: nowrap;
38
+ word-wrap: normal;
39
+ direction: ltr;
40
+ -webkit-font-feature-settings: "liga";
41
+ -webkit-font-smoothing: antialiased;
42
+ }
43
+
1
44
  /*
2
45
  * Nukipa post-content default stylesheet.
3
46
  *
@@ -255,11 +298,25 @@
255
298
  font-style: italic;
256
299
  }
257
300
 
258
- /* ───── Process — horizontal stages with connectors ───────────────── */
259
- .bp-process { display: flex; align-items: flex-start; gap: 0; flex-wrap: wrap; justify-content: center; }
301
+ /* ───── Process — auto-fit grid of stages ─────────────────────────────
302
+ The renderer interleaves <div class="bp-process__stage"> and
303
+ <div class="bp-process__connector"> in document order. Laying that
304
+ out as wrapping flex put orphan connector arrows at the start of
305
+ wrapped rows (the connector that "belongs" between stage 4 and
306
+ stage 5 ended up alone on row 2). The grid below tracks columns
307
+ by stage width — connectors are hidden because they only encode
308
+ left-to-right adjacency, which is meaningless once the grid wraps
309
+ into multiple rows. */
310
+ .bp-process {
311
+ display: grid;
312
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
313
+ align-items: start;
314
+ justify-items: center;
315
+ gap: 1rem 0.5rem;
316
+ }
260
317
  .bp-process__stage {
261
318
  display: flex; flex-direction: column; align-items: center; text-align: center;
262
- flex: 1; min-width: 0; padding: 1rem 0.75rem;
319
+ min-width: 0; padding: 1rem 0.75rem;
263
320
  }
264
321
  .bp-process__icon {
265
322
  width: 3rem; height: 3rem; border-radius: 50%;
@@ -273,11 +330,7 @@
273
330
  .bp-process__num { font-weight: 700; font-size: 1rem; }
274
331
  .bp-process__title { font-weight: 600; font-size: 1rem; margin-bottom: 0.25rem; }
275
332
  .bp-process__desc { font-size: 0.875rem; color: var(--color-text-muted, #51646A); line-height: 1.5; }
276
- .bp-process__connector {
277
- display: flex; align-items: center; padding-top: 1.25rem;
278
- color: var(--color-text-muted, #51646A);
279
- }
280
- .bp-process__connector .material-icons { font-size: 1.5rem; }
333
+ .bp-process__connector { display: none; }
281
334
 
282
335
  /* ───── Comparison ─────────────────────────────────────────────────── */
283
336
  .bp-comparison {
@@ -286,8 +339,23 @@
286
339
  overflow-x: auto;
287
340
  -webkit-overflow-scrolling: touch;
288
341
  }
289
- .bp-comparison table { margin: 0; width: max-content; min-width: 100%; }
290
- .bp-comparison th, .bp-comparison td { min-width: 100px; }
342
+ .bp-comparison table {
343
+ margin: 0; width: max-content; min-width: 100%;
344
+ border-collapse: collapse;
345
+ }
346
+ .bp-comparison th, .bp-comparison td {
347
+ min-width: 100px;
348
+ padding: 0.625rem 0.875rem;
349
+ border-bottom: 1px solid var(--color-border, #E5DFDC);
350
+ }
351
+ .bp-comparison thead th {
352
+ background: var(--color-surface, #F0EBEB);
353
+ font-weight: 600;
354
+ text-align: left;
355
+ border-bottom-width: 2px;
356
+ }
357
+ .bp-comparison tbody tr:last-child th, .bp-comparison tbody tr:last-child td { border-bottom: none; }
358
+ .bp-comparison tbody tr:hover td, .bp-comparison tbody tr:hover th { background: color-mix(in srgb, var(--color-surface, #F0EBEB) 60%, transparent); }
291
359
  .bp-comparison__cell { text-align: center; }
292
360
 
293
361
  /* ───── Cite chip — superscript footnote link ──────────────────────── */