@yadeck/slide-components-basic 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +16 -2
- package/dist/chrome.d.ts +8 -0
- package/dist/chrome.d.ts.map +1 -0
- package/dist/chrome.js +17 -0
- package/dist/chrome.js.map +1 -0
- package/dist/flow.d.ts +26 -0
- package/dist/flow.d.ts.map +1 -0
- package/dist/flow.js +46 -0
- package/dist/flow.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts.d.ts +114 -0
- package/dist/layouts.d.ts.map +1 -0
- package/dist/layouts.js +220 -0
- package/dist/layouts.js.map +1 -0
- package/dist/panes.d.ts +43 -0
- package/dist/panes.d.ts.map +1 -0
- package/dist/panes.js +131 -0
- package/dist/panes.js.map +1 -0
- package/dist/styles.d.ts +12 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +157 -0
- package/dist/styles.js.map +1 -0
- package/package.json +60 -4
- package/src/chrome.tsx +29 -0
- package/src/flow.tsx +89 -0
- package/src/index.ts +91 -0
- package/src/layouts.tsx +508 -0
- package/src/panes.tsx +213 -0
- package/src/styles.ts +157 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../src/layouts.tsx"],"names":[],"mappings":"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"}
|
package/dist/panes.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type BlockNode, type SlideNode } from "@yadeck/slide-core";
|
|
2
|
+
import type { CSSProperties } from "react";
|
|
3
|
+
type Pane = {
|
|
4
|
+
kind: "text";
|
|
5
|
+
blocks: BlockNode[];
|
|
6
|
+
} | {
|
|
7
|
+
kind: "block";
|
|
8
|
+
block: BlockNode;
|
|
9
|
+
};
|
|
10
|
+
/** 出現順を保ったまま pane に分ける。テキスト pane は最初のテキスト block の位置に置く */
|
|
11
|
+
export declare function toPanes(blocks: BlockNode[]): Pane[];
|
|
12
|
+
/** pane を左右の列に振り分ける。戻り値は [左の pane 数, 右の pane 数] */
|
|
13
|
+
export declare function splitColumns(n: number): [number, number];
|
|
14
|
+
interface PaneBox {
|
|
15
|
+
w: number;
|
|
16
|
+
h: number;
|
|
17
|
+
/** 縦に積んだときの高さの比(flex-grow) */
|
|
18
|
+
grow?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 同じ slide に code が 2 つ以上あるとき、全部が収まる最小のフォントサイズを --code-fit で渡す。
|
|
22
|
+
* pane ごとに最大サイズを選ぶと、並んだコードの文字の大きさが揃わないため。式は styles.ts の .b-code と同じ
|
|
23
|
+
*/
|
|
24
|
+
export declare function codeFitStyle(placed: {
|
|
25
|
+
pane: Pane;
|
|
26
|
+
box: PaneBox;
|
|
27
|
+
}[]): CSSProperties;
|
|
28
|
+
/**
|
|
29
|
+
* 縦に積む pane の高さの比。全部が code なら「行数 + caption などの余白」の比で分け、
|
|
30
|
+
* 行の多いコードが切れたり、短いコードの箱が間延びしたりしないようにする。それ以外は等分
|
|
31
|
+
*/
|
|
32
|
+
export declare function paneWeights(panes: Pane[]): number[];
|
|
33
|
+
/** テキスト pane。body / list / tags 無しの block は行にまとめ、1 行なら中央に大きく、2 行以上なら箇条書きにする */
|
|
34
|
+
export declare const TextPane: ({ blocks }: {
|
|
35
|
+
blocks: BlockNode[];
|
|
36
|
+
}) => import("react").JSX.Element;
|
|
37
|
+
export declare const DefaultSlide: (slide: SlideNode) => import("react").JSX.Element;
|
|
38
|
+
/** columns の列数。4 までは横一列、5 以上は 3 列で折り返す */
|
|
39
|
+
export declare function columnsFor(n: number): number;
|
|
40
|
+
/** `columns` を付けた slide。pane を横に等分し、5 以上は 3 列 × 2 行に折り返す */
|
|
41
|
+
export declare const ColumnsSlide: (slide: SlideNode) => import("react").JSX.Element;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=panes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panes.d.ts","sourceRoot":"","sources":["../src/panes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAuBtD,KAAK,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAMxF,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAgBnD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxD;AAED,UAAU,OAAO;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,aAAa,CAQlF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAOnD;AAqBD,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,YAAY;IAAE,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,gCAoC3D,CAAC;AAMF,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,gCA+B5C,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,4DAA4D;AAC5D,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,gCAoB5C,CAAC"}
|
package/dist/panes.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Block, RichText, pick } from "@yadeck/slide-core";
|
|
3
|
+
import { PAGE, SlideHeading } from "./chrome.js";
|
|
4
|
+
import { codeChrome, codeSize } from "./layouts.js";
|
|
5
|
+
/**
|
|
6
|
+
* tags 無しの slide の自動レイアウト。
|
|
7
|
+
* 内容を pane に数え、数に応じて配置を決める。
|
|
8
|
+
* - テキスト(body / list / tags 無し / その他の block)は全部まとめて 1 pane
|
|
9
|
+
* - image / code / video は 1 つにつき 1 pane
|
|
10
|
+
* 1: 全面、2: 左右、3: ト型(左 1 + 右 2)、4: 十字、5 以上: 左 floor(N/2) + 右 残り(8 まで)
|
|
11
|
+
*/
|
|
12
|
+
const SLIDE_W = 1280;
|
|
13
|
+
const SLIDE_H = 720;
|
|
14
|
+
const PAD_X = 80;
|
|
15
|
+
const PAD_Y = 56;
|
|
16
|
+
const HEADING_H = 69 + 24;
|
|
17
|
+
const DESCRIPTION_H = 36;
|
|
18
|
+
const GAP = 32;
|
|
19
|
+
/** 1 つで 1 pane になる block の tags */
|
|
20
|
+
const PANE_TAGS = ["image", "code", "video", "flow"];
|
|
21
|
+
function isPaneBlock(b) {
|
|
22
|
+
return b.tags.some((t) => PANE_TAGS.includes(t));
|
|
23
|
+
}
|
|
24
|
+
/** 出現順を保ったまま pane に分ける。テキスト pane は最初のテキスト block の位置に置く */
|
|
25
|
+
export function toPanes(blocks) {
|
|
26
|
+
const panes = [];
|
|
27
|
+
let text;
|
|
28
|
+
for (const b of blocks) {
|
|
29
|
+
if (b.tags.includes("note"))
|
|
30
|
+
continue;
|
|
31
|
+
if (isPaneBlock(b)) {
|
|
32
|
+
panes.push({ kind: "block", block: b });
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (!text) {
|
|
36
|
+
text = { kind: "text", blocks: [] };
|
|
37
|
+
panes.push(text);
|
|
38
|
+
}
|
|
39
|
+
text.blocks.push(b);
|
|
40
|
+
}
|
|
41
|
+
return panes;
|
|
42
|
+
}
|
|
43
|
+
/** pane を左右の列に振り分ける。戻り値は [左の pane 数, 右の pane 数] */
|
|
44
|
+
export function splitColumns(n) {
|
|
45
|
+
if (n <= 1)
|
|
46
|
+
return [n, 0];
|
|
47
|
+
const left = Math.floor(n / 2);
|
|
48
|
+
return [left, n - left];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 同じ slide に code が 2 つ以上あるとき、全部が収まる最小のフォントサイズを --code-fit で渡す。
|
|
52
|
+
* pane ごとに最大サイズを選ぶと、並んだコードの文字の大きさが揃わないため。式は styles.ts の .b-code と同じ
|
|
53
|
+
*/
|
|
54
|
+
export function codeFitStyle(placed) {
|
|
55
|
+
const terms = placed.flatMap(({ pane, box }) => {
|
|
56
|
+
if (pane.kind !== "block" || !pane.block.tags.includes("code"))
|
|
57
|
+
return [];
|
|
58
|
+
const { cols, rows } = codeSize(pane.block.text);
|
|
59
|
+
const chrome = codeChrome(typeof pane.block.caption === "string" ? pane.block.caption : undefined);
|
|
60
|
+
return [`calc((${Math.round(box.w)}px - 48px) / ${cols} / 0.62)`, `calc((${Math.round(box.h)}px - ${chrome}px) / ${rows} / 1.375)`];
|
|
61
|
+
});
|
|
62
|
+
return terms.length >= 4 ? { "--code-fit": `min(${terms.join(", ")})` } : {};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 縦に積む pane の高さの比。全部が code なら「行数 + caption などの余白」の比で分け、
|
|
66
|
+
* 行の多いコードが切れたり、短いコードの箱が間延びしたりしないようにする。それ以外は等分
|
|
67
|
+
*/
|
|
68
|
+
export function paneWeights(panes) {
|
|
69
|
+
const sizes = panes.map((p) => p.kind === "block" && p.block.tags.includes("code")
|
|
70
|
+
? codeSize(p.block.text).rows + codeChrome(typeof p.block.caption === "string" ? p.block.caption : undefined) / 24
|
|
71
|
+
: undefined);
|
|
72
|
+
return sizes.every((x) => x !== undefined) ? sizes : panes.map(() => 1);
|
|
73
|
+
}
|
|
74
|
+
/** 1 列に縦に積んだ pane の寸法 */
|
|
75
|
+
function columnBoxes(contentH, columnCount, column) {
|
|
76
|
+
const w = columnCount === 1 ? SLIDE_W - PAD_X * 2 : (SLIDE_W - PAD_X * 2 - GAP) / 2;
|
|
77
|
+
const weights = paneWeights(column);
|
|
78
|
+
const total = weights.reduce((a, b) => a + b, 0);
|
|
79
|
+
const free = contentH - GAP * (column.length - 1);
|
|
80
|
+
return weights.map((wt) => ({ w, h: (free * wt) / total, grow: wt }));
|
|
81
|
+
}
|
|
82
|
+
/** pane の寸法を CSS 変数で渡す。code の自動フォントサイズなどが参照する */
|
|
83
|
+
const PaneFrame = ({ box, children }) => (_jsx("div", { className: "b-pane relative flex min-h-0 min-w-0 flex-1 flex-col", style: { "--pane-w": `${Math.round(box.w)}px`, "--pane-h": `${Math.round(box.h)}px`, flexGrow: box.grow ?? 1, flexBasis: 0 }, children: children }));
|
|
84
|
+
/** テキスト pane。body / list / tags 無しの block は行にまとめ、1 行なら中央に大きく、2 行以上なら箇条書きにする */
|
|
85
|
+
export const TextPane = ({ blocks }) => {
|
|
86
|
+
const lines = [];
|
|
87
|
+
const others = [];
|
|
88
|
+
for (const b of blocks) {
|
|
89
|
+
const isText = b.tags.length === 0 || b.tags.includes("body") || b.tags.includes("list");
|
|
90
|
+
if (!isText) {
|
|
91
|
+
others.push(b);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
for (const line of (b.text ?? "").split("\n")) {
|
|
95
|
+
if (line.trim())
|
|
96
|
+
lines.push(_jsx(RichText, { text: line }, `${b.id}-${lines.length}`));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (lines.length === 1 && others.length === 0) {
|
|
100
|
+
return (_jsx("div", { className: "b-center flex flex-1 items-center justify-center text-center text-h3 leading-relaxed", children: lines[0] }));
|
|
101
|
+
}
|
|
102
|
+
return (_jsxs("div", { className: "b-bullets flex flex-1 flex-col justify-center gap-5", children: [lines.length > 0 && (_jsx("ul", { className: "m-0 list-disc pl-[1.2em] marker:text-accent", children: lines.map((l, i) => (_jsx("li", { className: "my-2", children: l }, i))) })), others.map((b) => (_jsx(Block, { data: b }, b.id)))] }));
|
|
103
|
+
};
|
|
104
|
+
const PaneView = ({ pane, box }) => (_jsx(PaneFrame, { box: box, children: pane.kind === "text" ? _jsx(TextPane, { blocks: pane.blocks }) : _jsx(Block, { data: pane.block }) }));
|
|
105
|
+
export const DefaultSlide = (slide) => {
|
|
106
|
+
const [heading, rest] = pick(slide.items, ["heading"]);
|
|
107
|
+
const panes = toPanes(rest);
|
|
108
|
+
const contentH = SLIDE_H - PAD_Y * 2 - (heading ? HEADING_H : 0) - (heading && slide.description ? DESCRIPTION_H : 0);
|
|
109
|
+
const [leftCount, rightCount] = splitColumns(panes.length);
|
|
110
|
+
const left = panes.slice(0, leftCount);
|
|
111
|
+
const right = panes.slice(leftCount);
|
|
112
|
+
const columns = panes.length <= 1 ? [panes] : [left, right];
|
|
113
|
+
const boxes = columns.map((column) => columnBoxes(contentH, columns.length, column));
|
|
114
|
+
const placed = columns.flatMap((column, ci) => column.map((pane, i) => ({ pane, box: boxes[ci][i] })));
|
|
115
|
+
return (_jsxs("div", { className: `${PAGE} b-default`, style: codeFitStyle(placed), children: [heading && _jsx(SlideHeading, { block: heading, description: slide.description }), panes.length <= 1 ? (_jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: panes[0] && _jsx(PaneView, { pane: panes[0], box: boxes[0][0] }) })) : (_jsx("div", { className: "grid min-h-0 flex-1 grid-cols-2 gap-8", children: columns.map((column, ci) => (_jsx("div", { className: "flex min-h-0 min-w-0 flex-col gap-8", children: column.map((pane, i) => (_jsx(PaneView, { pane: pane, box: boxes[ci][i] }, i))) }, ci))) }))] }));
|
|
116
|
+
};
|
|
117
|
+
/** columns の列数。4 までは横一列、5 以上は 3 列で折り返す */
|
|
118
|
+
export function columnsFor(n) {
|
|
119
|
+
return n <= 4 ? Math.max(1, n) : 3;
|
|
120
|
+
}
|
|
121
|
+
/** `columns` を付けた slide。pane を横に等分し、5 以上は 3 列 × 2 行に折り返す */
|
|
122
|
+
export const ColumnsSlide = (slide) => {
|
|
123
|
+
const [heading, rest] = pick(slide.items, ["heading"]);
|
|
124
|
+
const panes = toPanes(rest);
|
|
125
|
+
const contentH = SLIDE_H - PAD_Y * 2 - (heading ? HEADING_H : 0) - (heading && slide.description ? DESCRIPTION_H : 0);
|
|
126
|
+
const cols = columnsFor(panes.length);
|
|
127
|
+
const rows = Math.max(1, Math.ceil(panes.length / cols));
|
|
128
|
+
const box = { w: (SLIDE_W - PAD_X * 2 - GAP * (cols - 1)) / cols, h: (contentH - GAP * (rows - 1)) / rows };
|
|
129
|
+
return (_jsxs("div", { className: `${PAGE} b-columns`, style: codeFitStyle(panes.map((pane) => ({ pane, box }))), children: [heading && _jsx(SlideHeading, { block: heading, description: slide.description }), _jsx("div", { className: "grid min-h-0 flex-1 gap-8", style: { gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`, gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))` }, children: panes.map((pane, i) => (_jsx(PaneView, { pane: pane, box: box }, i))) })] }));
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=panes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panes.js","sourceRoot":"","sources":["../src/panes.tsx"],"names":[],"mappings":"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"}
|
package/dist/styles.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* basic の既定テーマ。Tailwind v4 の `@theme` トークンで、利用者は slide.config.ts の `theme` に
|
|
3
|
+
* 指定した CSS で同名トークンを上書きして色・フォント・文字サイズを差し替える。
|
|
4
|
+
* 色は `bg-primary` `text-ink`、フォントは `font-sans`、サイズは `text-h1` のように utility になる。
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_THEME = "\n@theme {\n --color-primary: #2a5bd7;\n --color-primary-deep: #163a8f;\n --color-accent: #e8c547;\n --color-ink: #222222;\n --color-muted: #666666;\n --color-faint: #888888;\n --color-surface: #ffffff;\n --color-code: #1e1e1e;\n --color-code-ink: #eeeeee;\n\n --font-sans: \"Helvetica Neue\", Arial, \"Hiragino Sans\", \"Noto Sans JP\", sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n\n --text-body: 28px;\n --text-small: 22px;\n --text-h1: 64px;\n --text-h2: 44px;\n --text-h3: 34px;\n --text-h4: 30px;\n --text-display: 96px;\n}\n";
|
|
7
|
+
/**
|
|
8
|
+
* utility を付けられない要素(RichText が生成する markdown 由来の p / ul / code など)のための最小 CSS。
|
|
9
|
+
* Layout 自体の見た目は layouts.tsx の className で持つ。
|
|
10
|
+
*/
|
|
11
|
+
export declare const BASIC_CSS = "\n@layer components {\n .yd-slide { font-family: var(--font-sans); color: var(--color-ink); font-size: var(--text-body); line-height: 1.5; }\n .b-body p { margin: 0 0 .6em; }\n .b-body p:last-child { margin-bottom: 0; }\n .b-body ul { list-style: disc; padding-left: 1.2em; }\n .b-body ol { list-style: decimal; padding-left: 1.2em; }\n .b-body li::marker { color: var(--color-accent); }\n /* \u672C\u6587\u4E2D\u306E\u30B3\u30FC\u30C9\u3002\u5408\u5B57(-> \u304C \u2192 \u306B\u306A\u308B\u7B49)\u306F\u539F\u6587\u3068\u9055\u3063\u3066\u898B\u3048\u308B\u306E\u3067\u5207\u308B */\n .yd-slide :not(pre) > code { font-family: var(--font-mono); font-size: .9em; font-variant-ligatures: none; background: color-mix(in srgb, var(--color-ink) 8%, transparent); padding: 0 .3em; border-radius: 4px; }\n .b-body a { color: var(--color-primary); text-decoration: underline; }\n\n /* code: pane \u306E\u5BF8\u6CD5(--pane-w / --pane-h)\u3068\u884C\u6570\u30FB\u6700\u5927\u884C\u9577\u304B\u3089\u3001\u53CE\u307E\u308B\u6700\u5927\u306E\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA\u3092\u9078\u3076 */\n .yd-slide { --pane-w: 1120px; --pane-h: 500px; }\n .b-code {\n font-size: max(14px, min(\n var(--text-body),\n calc((var(--pane-w) - 48px) / var(--code-cols, 40) / 0.62),\n calc((var(--pane-h) - var(--code-chrome, 40px)) / var(--code-rows, 10) / 1.375),\n var(--code-fit, 9999px)\n ));\n /* \u4E0B\u9650\u307E\u3067\u7E2E\u3081\u3066\u3082\u5165\u3089\u306A\u3044\u9577\u3044\u884C\u306F\u6298\u308A\u8FD4\u3059\u3002\u306F\u307F\u51FA\u3057\u3066\u8AAD\u3081\u306A\u3044\u3088\u308A\u3088\u3044 */\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font-variant-ligatures: none;\n }\n .b-code .hljs { color: var(--color-code-ink); }\n .hljs-comment, .hljs-quote { color: #8b949e; font-style: italic; }\n .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-type, .hljs-built_in, .hljs-doctag, .hljs-meta { color: #ff7b72; }\n .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attr, .hljs-meta .hljs-string { color: #a5d6ff; }\n .hljs-number, .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-variable, .hljs-template-variable { color: #79c0ff; }\n .hljs-title, .hljs-section, .hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-function .hljs-title { color: #d2a8ff; }\n .hljs-attribute, .hljs-params, .hljs-property { color: #ffa657; }\n .hljs-emphasis { font-style: italic; }\n .hljs-strong { font-weight: bold; }\n .hljs-deletion { color: #ffa198; }\n\n /* ---- flow(\u624B\u9806)\u3002https://www.ameamelog.com/css-flow/ \u306E 5 \u30D1\u30BF\u30FC\u30F3\u3092\u79FB\u690D\u3002\u5BF8\u6CD5\u306F\u30B9\u30E9\u30A4\u30C9\u5411\u3051\u306B 1.5 \u500D ---- */\n .b-flow { --flow-grad: linear-gradient(to right, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 55%, white) 100%); margin: auto 0; padding: 0; list-style: none; width: 100%; }\n .b-flow > li { list-style: none; }\n .b-flow dl, .b-flow dd { margin: 0; }\n .b-flow dt { font-size: var(--text-h4); font-weight: 700; color: var(--color-primary); line-height: 1.3; }\n .b-flow dd { font-size: var(--text-small); color: color-mix(in srgb, var(--color-ink) 80%, transparent); line-height: 1.45; }\n .b-flow .phase { display: inline-block; margin-left: .6em; padding: .1em .7em; border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 10%, transparent); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); vertical-align: middle; }\n .b-flow .via { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); white-space: nowrap; }\n .b-flow .icon { font-size: 18px; font-weight: 700; color: #fff; background: var(--flow-grad); }\n .b-flow.has-focus > li:not(.is-focus) { opacity: .35; }\n .b-flow > li.is-focus .icon { background: var(--color-accent); color: var(--color-ink); }\n .b-flow > li.is-focus dt { color: var(--color-ink); }\n\n /* 1 \u30AB\u30E9\u30E0\u69CB\u6210: \u5DE6\u306B STEP \u30D4\u30EB\u3001\u7E26\u30EC\u30FC\u30EB\u3001\u70B9\u3068\u70B9\u7DDA\u3001\u53F3\u306B\u898B\u51FA\u3057\u3068\u8AAC\u660E */\n .b-flow-rail { padding-left: 180px; position: relative; }\n .b-flow-rail::before { content: \"\"; width: 22px; height: 100%; background: color-mix(in srgb, var(--color-ink) 7%, transparent); margin-left: -11px; display: block; position: absolute; top: 0; left: 180px; }\n .b-flow-rail > li { position: relative; }\n .b-flow-rail > li:not(:last-child) { margin-bottom: 60px; }\n .b-flow-rail > li .icon { padding: 10px 28px; display: block; position: absolute; top: 0; left: -180px; z-index: 2; }\n .b-flow-rail > li .icon::after { content: \"\"; border-style: solid; border-width: 8px 0 8px 14px; border-color: transparent transparent transparent color-mix(in srgb, var(--color-primary) 55%, white); position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }\n .b-flow-rail > li.is-focus .icon::after { border-left-color: var(--color-accent); }\n .b-flow-rail > li .via { position: absolute; top: -30px; left: 28px; transform: translateY(-50%); }\n .b-flow-rail > li dl { padding-left: 100px; position: relative; }\n .b-flow-rail > li dl::before, .b-flow-rail > li dl::after { content: \"\"; display: block; position: absolute; top: 24px; }\n .b-flow-rail > li dl::before { width: 11px; height: 11px; margin-top: -5px; background: var(--color-primary); border-radius: 50%; left: -6px; z-index: 1; }\n .b-flow-rail > li.is-focus dl::before { background: var(--color-accent); }\n .b-flow-rail > li dl::after { width: 72px; border-bottom: 2px dashed color-mix(in srgb, var(--color-ink) 40%, transparent); left: 8px; }\n .b-flow-rail > li dl dt { margin-bottom: 6px; }\n\n /* \u30DD\u30C3\u30D7: \u5439\u304D\u51FA\u3057\u306E\u756A\u53F7 + \u67A0\u30AB\u30FC\u30C9\u3092\u6A2A\u306B\u4E26\u3079\u3001\u9593\u306B \u203A */\n .b-flow-pop { --flow-gap: 56px; display: flex; justify-content: space-between; gap: var(--flow-gap); }\n .b-flow-pop > li { flex: 1 1 0; min-width: 0; position: relative; }\n .b-flow-pop > li .icon { font-family: var(--font-mono); font-size: 26px; line-height: 72px; width: 72px; background: var(--color-primary); margin: 0 auto 28px; display: block; border-radius: 50%; text-align: center; position: relative; letter-spacing: 2px; }\n .b-flow-pop > li .icon::before { content: \"\"; border: solid transparent; border-width: 12px; border-top-color: var(--color-primary); position: absolute; top: calc(100% - 3px); left: 50%; transform: translateX(-50%); }\n .b-flow-pop > li.is-focus .icon::before { border-top-color: var(--color-accent); }\n .b-flow-pop > li .via { position: absolute; top: 24px; right: calc(100% + var(--flow-gap) / 2 + 4px); transform: translateX(50%); }\n .b-flow-pop > li dl { padding: 32px 10px; word-break: auto-phrase; text-wrap: balance; border: 4px solid var(--color-primary); position: relative; text-align: center; height: calc(100% - 100px); }\n .b-flow-pop > li.is-focus dl { border-color: var(--color-accent); }\n /* \u7BB1\u306E\u9593\u306E \u203A\u3002\u9699\u9593(--flow-gap)\u306E\u4E2D\u592E\u306B\u7F6E\u304D\u3001\u67A0\u7DDA\u306B\u91CD\u306D\u306A\u3044 */\n .b-flow-pop > li:not(:last-child) dl::before { content: \"\"; width: 36px; height: 36px; display: block; border-top: 8px solid var(--color-primary); border-right: 8px solid var(--color-primary); position: absolute; top: 50%; left: calc(100% + var(--flow-gap) / 2 - 8px); transform: translate(-50%, -50%) rotate(45deg); }\n .b-flow-pop > li dl dt { margin-bottom: 10px; word-break: keep-all; }\n .b-flow-pop > li dl dt .phase { display: block; margin: 8px auto 0; padding: .15em .6em; font-size: 18px; width: fit-content; max-width: 100%; box-sizing: border-box; white-space: nowrap; }\n\n /* \u67A0\u7DDA\u3092\u4F7F\u3063\u305F\u30C7\u30B6\u30A4\u30F3: \u89D2\u4E38\u306E\u67A0\u3092\u7E26\u306B\u7A4D\u307F\u3001\u70B9\u7DDA\u3068 \u25BD \u3067\u3064\u306A\u3050 */\n .b-flow-boxed > li { position: relative; }\n .b-flow-boxed > li:not(:last-child) { margin-bottom: 40px; }\n .b-flow-boxed > li:not(:first-child)::before { content: \"\"; height: 60px; display: block; border-left: 5px dotted color-mix(in srgb, var(--color-ink) 15%, transparent); position: absolute; top: -40px; left: calc(12% + 40px); z-index: 1; }\n .b-flow-boxed > li .via { position: absolute; top: -20px; left: calc(12% + 72px); transform: translateY(-50%); }\n .b-flow-boxed > li dl { width: 100%; padding: 8px 36px; display: flex; align-items: center; border: 3px solid var(--color-primary); border-radius: 14px; position: relative; background: var(--color-surface); }\n .b-flow-boxed > li.is-focus dl { border-color: var(--color-accent); }\n .b-flow-boxed > li:not(:last-child) dl::before, .b-flow-boxed > li:not(:last-child) dl::after { content: \"\"; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); }\n .b-flow-boxed > li:not(:last-child) dl::before { border-width: 26px; border-top-color: var(--color-primary); }\n .b-flow-boxed > li.is-focus:not(:last-child) dl::before { border-top-color: var(--color-accent); }\n .b-flow-boxed > li:not(:last-child) dl::after { border-width: 23px; border-top-color: var(--color-surface); }\n .b-flow-boxed > li dl dt { flex: 0 0 24%; margin-right: 2vw; text-align: center; }\n .b-flow-boxed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; position: relative; z-index: 2; }\n .b-flow-boxed > li dl dd { flex: 1; }\n .b-flow-boxed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }\n\n /* \u30B9\u30BF\u30A4\u30EA\u30C3\u30B7\u30E5: \u5168\u4F53\u3092 1 \u3064\u306E\u67A0\u3067\u56F2\u307F\u3001\u533A\u5207\u308A\u7DDA\u306B \u25BD */\n .b-flow-framed { border: 4px solid var(--color-primary); }\n .b-flow-framed > li { padding: 12px 36px; position: relative; }\n .b-flow-framed > li:not(:last-child) { border-bottom: 4px solid var(--color-primary); }\n .b-flow-framed > li:not(:last-child)::before, .b-flow-framed > li:not(:last-child)::after { content: \"\"; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 1; }\n .b-flow-framed > li:not(:last-child)::before { border-width: 26px; border-top-color: var(--color-primary); }\n .b-flow-framed > li:not(:last-child)::after { border-width: 21px; border-top-color: var(--color-surface); }\n .b-flow-framed > li .via { position: absolute; top: 0; left: calc(50% + 44px); transform: translateY(-50%); background: var(--color-surface); padding: 0 10px; z-index: 2; }\n .b-flow-framed > li dl { display: flex; align-items: center; }\n .b-flow-framed > li dl dt { flex: 0 0 24%; margin-right: 1vw; text-align: center; }\n .b-flow-framed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; }\n .b-flow-framed > li dl dd { flex: 1; }\n .b-flow-framed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }\n\n /* 2 \u30AB\u30E9\u30E0\u69CB\u6210: \u53F3\u7AEF\u304C\u77E2\u5370\u306E\u67A0\u3092 2 \u5217\u306B */\n .b-flow-grid { display: flex; flex-wrap: wrap; gap: 48px 4%; }\n .b-flow-grid > li { padding: 28px 44px 24px 36px; flex: 0 0 48%; border: 3px solid var(--color-primary); position: relative; background: var(--color-surface); }\n .b-flow-grid > li.is-focus { border-color: var(--color-accent); }\n .b-flow-grid > li:not(:last-child)::before, .b-flow-grid > li:not(:last-child)::after { content: \"\"; border: solid transparent; position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }\n .b-flow-grid > li:not(:last-child)::before { border-width: 30px; border-left-color: var(--color-primary); }\n .b-flow-grid > li.is-focus:not(:last-child)::before { border-left-color: var(--color-accent); }\n .b-flow-grid > li:not(:last-child)::after { border-width: 27px; border-left-color: var(--color-surface); }\n .b-flow-grid > li .icon { padding: 7px 28px; display: block; border-radius: 999px; position: absolute; top: -18px; left: -14px; z-index: 2; }\n .b-flow-grid > li .via { display: none; }\n .b-flow-grid > li dl dt { margin-bottom: 6px; }\n}\n";
|
|
12
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,aAAa,mlBAuBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,qgYA0HrB,CAAC"}
|
package/dist/styles.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* basic の既定テーマ。Tailwind v4 の `@theme` トークンで、利用者は slide.config.ts の `theme` に
|
|
3
|
+
* 指定した CSS で同名トークンを上書きして色・フォント・文字サイズを差し替える。
|
|
4
|
+
* 色は `bg-primary` `text-ink`、フォントは `font-sans`、サイズは `text-h1` のように utility になる。
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_THEME = `
|
|
7
|
+
@theme {
|
|
8
|
+
--color-primary: #2a5bd7;
|
|
9
|
+
--color-primary-deep: #163a8f;
|
|
10
|
+
--color-accent: #e8c547;
|
|
11
|
+
--color-ink: #222222;
|
|
12
|
+
--color-muted: #666666;
|
|
13
|
+
--color-faint: #888888;
|
|
14
|
+
--color-surface: #ffffff;
|
|
15
|
+
--color-code: #1e1e1e;
|
|
16
|
+
--color-code-ink: #eeeeee;
|
|
17
|
+
|
|
18
|
+
--font-sans: "Helvetica Neue", Arial, "Hiragino Sans", "Noto Sans JP", sans-serif;
|
|
19
|
+
--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
20
|
+
|
|
21
|
+
--text-body: 28px;
|
|
22
|
+
--text-small: 22px;
|
|
23
|
+
--text-h1: 64px;
|
|
24
|
+
--text-h2: 44px;
|
|
25
|
+
--text-h3: 34px;
|
|
26
|
+
--text-h4: 30px;
|
|
27
|
+
--text-display: 96px;
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
/**
|
|
31
|
+
* utility を付けられない要素(RichText が生成する markdown 由来の p / ul / code など)のための最小 CSS。
|
|
32
|
+
* Layout 自体の見た目は layouts.tsx の className で持つ。
|
|
33
|
+
*/
|
|
34
|
+
export const BASIC_CSS = `
|
|
35
|
+
@layer components {
|
|
36
|
+
.yd-slide { font-family: var(--font-sans); color: var(--color-ink); font-size: var(--text-body); line-height: 1.5; }
|
|
37
|
+
.b-body p { margin: 0 0 .6em; }
|
|
38
|
+
.b-body p:last-child { margin-bottom: 0; }
|
|
39
|
+
.b-body ul { list-style: disc; padding-left: 1.2em; }
|
|
40
|
+
.b-body ol { list-style: decimal; padding-left: 1.2em; }
|
|
41
|
+
.b-body li::marker { color: var(--color-accent); }
|
|
42
|
+
/* 本文中のコード。合字(-> が → になる等)は原文と違って見えるので切る */
|
|
43
|
+
.yd-slide :not(pre) > code { font-family: var(--font-mono); font-size: .9em; font-variant-ligatures: none; background: color-mix(in srgb, var(--color-ink) 8%, transparent); padding: 0 .3em; border-radius: 4px; }
|
|
44
|
+
.b-body a { color: var(--color-primary); text-decoration: underline; }
|
|
45
|
+
|
|
46
|
+
/* code: pane の寸法(--pane-w / --pane-h)と行数・最大行長から、収まる最大のフォントサイズを選ぶ */
|
|
47
|
+
.yd-slide { --pane-w: 1120px; --pane-h: 500px; }
|
|
48
|
+
.b-code {
|
|
49
|
+
font-size: max(14px, min(
|
|
50
|
+
var(--text-body),
|
|
51
|
+
calc((var(--pane-w) - 48px) / var(--code-cols, 40) / 0.62),
|
|
52
|
+
calc((var(--pane-h) - var(--code-chrome, 40px)) / var(--code-rows, 10) / 1.375),
|
|
53
|
+
var(--code-fit, 9999px)
|
|
54
|
+
));
|
|
55
|
+
/* 下限まで縮めても入らない長い行は折り返す。はみ出して読めないよりよい */
|
|
56
|
+
white-space: pre-wrap;
|
|
57
|
+
overflow-wrap: anywhere;
|
|
58
|
+
font-variant-ligatures: none;
|
|
59
|
+
}
|
|
60
|
+
.b-code .hljs { color: var(--color-code-ink); }
|
|
61
|
+
.hljs-comment, .hljs-quote { color: #8b949e; font-style: italic; }
|
|
62
|
+
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-type, .hljs-built_in, .hljs-doctag, .hljs-meta { color: #ff7b72; }
|
|
63
|
+
.hljs-string, .hljs-regexp, .hljs-addition, .hljs-attr, .hljs-meta .hljs-string { color: #a5d6ff; }
|
|
64
|
+
.hljs-number, .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-variable, .hljs-template-variable { color: #79c0ff; }
|
|
65
|
+
.hljs-title, .hljs-section, .hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-function .hljs-title { color: #d2a8ff; }
|
|
66
|
+
.hljs-attribute, .hljs-params, .hljs-property { color: #ffa657; }
|
|
67
|
+
.hljs-emphasis { font-style: italic; }
|
|
68
|
+
.hljs-strong { font-weight: bold; }
|
|
69
|
+
.hljs-deletion { color: #ffa198; }
|
|
70
|
+
|
|
71
|
+
/* ---- flow(手順)。https://www.ameamelog.com/css-flow/ の 5 パターンを移植。寸法はスライド向けに 1.5 倍 ---- */
|
|
72
|
+
.b-flow { --flow-grad: linear-gradient(to right, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 55%, white) 100%); margin: auto 0; padding: 0; list-style: none; width: 100%; }
|
|
73
|
+
.b-flow > li { list-style: none; }
|
|
74
|
+
.b-flow dl, .b-flow dd { margin: 0; }
|
|
75
|
+
.b-flow dt { font-size: var(--text-h4); font-weight: 700; color: var(--color-primary); line-height: 1.3; }
|
|
76
|
+
.b-flow dd { font-size: var(--text-small); color: color-mix(in srgb, var(--color-ink) 80%, transparent); line-height: 1.45; }
|
|
77
|
+
.b-flow .phase { display: inline-block; margin-left: .6em; padding: .1em .7em; border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 10%, transparent); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); vertical-align: middle; }
|
|
78
|
+
.b-flow .via { font-family: var(--font-mono); font-size: var(--text-small); font-weight: 700; color: var(--color-primary); white-space: nowrap; }
|
|
79
|
+
.b-flow .icon { font-size: 18px; font-weight: 700; color: #fff; background: var(--flow-grad); }
|
|
80
|
+
.b-flow.has-focus > li:not(.is-focus) { opacity: .35; }
|
|
81
|
+
.b-flow > li.is-focus .icon { background: var(--color-accent); color: var(--color-ink); }
|
|
82
|
+
.b-flow > li.is-focus dt { color: var(--color-ink); }
|
|
83
|
+
|
|
84
|
+
/* 1 カラム構成: 左に STEP ピル、縦レール、点と点線、右に見出しと説明 */
|
|
85
|
+
.b-flow-rail { padding-left: 180px; position: relative; }
|
|
86
|
+
.b-flow-rail::before { content: ""; width: 22px; height: 100%; background: color-mix(in srgb, var(--color-ink) 7%, transparent); margin-left: -11px; display: block; position: absolute; top: 0; left: 180px; }
|
|
87
|
+
.b-flow-rail > li { position: relative; }
|
|
88
|
+
.b-flow-rail > li:not(:last-child) { margin-bottom: 60px; }
|
|
89
|
+
.b-flow-rail > li .icon { padding: 10px 28px; display: block; position: absolute; top: 0; left: -180px; z-index: 2; }
|
|
90
|
+
.b-flow-rail > li .icon::after { content: ""; border-style: solid; border-width: 8px 0 8px 14px; border-color: transparent transparent transparent color-mix(in srgb, var(--color-primary) 55%, white); position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }
|
|
91
|
+
.b-flow-rail > li.is-focus .icon::after { border-left-color: var(--color-accent); }
|
|
92
|
+
.b-flow-rail > li .via { position: absolute; top: -30px; left: 28px; transform: translateY(-50%); }
|
|
93
|
+
.b-flow-rail > li dl { padding-left: 100px; position: relative; }
|
|
94
|
+
.b-flow-rail > li dl::before, .b-flow-rail > li dl::after { content: ""; display: block; position: absolute; top: 24px; }
|
|
95
|
+
.b-flow-rail > li dl::before { width: 11px; height: 11px; margin-top: -5px; background: var(--color-primary); border-radius: 50%; left: -6px; z-index: 1; }
|
|
96
|
+
.b-flow-rail > li.is-focus dl::before { background: var(--color-accent); }
|
|
97
|
+
.b-flow-rail > li dl::after { width: 72px; border-bottom: 2px dashed color-mix(in srgb, var(--color-ink) 40%, transparent); left: 8px; }
|
|
98
|
+
.b-flow-rail > li dl dt { margin-bottom: 6px; }
|
|
99
|
+
|
|
100
|
+
/* ポップ: 吹き出しの番号 + 枠カードを横に並べ、間に › */
|
|
101
|
+
.b-flow-pop { --flow-gap: 56px; display: flex; justify-content: space-between; gap: var(--flow-gap); }
|
|
102
|
+
.b-flow-pop > li { flex: 1 1 0; min-width: 0; position: relative; }
|
|
103
|
+
.b-flow-pop > li .icon { font-family: var(--font-mono); font-size: 26px; line-height: 72px; width: 72px; background: var(--color-primary); margin: 0 auto 28px; display: block; border-radius: 50%; text-align: center; position: relative; letter-spacing: 2px; }
|
|
104
|
+
.b-flow-pop > li .icon::before { content: ""; border: solid transparent; border-width: 12px; border-top-color: var(--color-primary); position: absolute; top: calc(100% - 3px); left: 50%; transform: translateX(-50%); }
|
|
105
|
+
.b-flow-pop > li.is-focus .icon::before { border-top-color: var(--color-accent); }
|
|
106
|
+
.b-flow-pop > li .via { position: absolute; top: 24px; right: calc(100% + var(--flow-gap) / 2 + 4px); transform: translateX(50%); }
|
|
107
|
+
.b-flow-pop > li dl { padding: 32px 10px; word-break: auto-phrase; text-wrap: balance; border: 4px solid var(--color-primary); position: relative; text-align: center; height: calc(100% - 100px); }
|
|
108
|
+
.b-flow-pop > li.is-focus dl { border-color: var(--color-accent); }
|
|
109
|
+
/* 箱の間の ›。隙間(--flow-gap)の中央に置き、枠線に重ねない */
|
|
110
|
+
.b-flow-pop > li:not(:last-child) dl::before { content: ""; width: 36px; height: 36px; display: block; border-top: 8px solid var(--color-primary); border-right: 8px solid var(--color-primary); position: absolute; top: 50%; left: calc(100% + var(--flow-gap) / 2 - 8px); transform: translate(-50%, -50%) rotate(45deg); }
|
|
111
|
+
.b-flow-pop > li dl dt { margin-bottom: 10px; word-break: keep-all; }
|
|
112
|
+
.b-flow-pop > li dl dt .phase { display: block; margin: 8px auto 0; padding: .15em .6em; font-size: 18px; width: fit-content; max-width: 100%; box-sizing: border-box; white-space: nowrap; }
|
|
113
|
+
|
|
114
|
+
/* 枠線を使ったデザイン: 角丸の枠を縦に積み、点線と ▽ でつなぐ */
|
|
115
|
+
.b-flow-boxed > li { position: relative; }
|
|
116
|
+
.b-flow-boxed > li:not(:last-child) { margin-bottom: 40px; }
|
|
117
|
+
.b-flow-boxed > li:not(:first-child)::before { content: ""; height: 60px; display: block; border-left: 5px dotted color-mix(in srgb, var(--color-ink) 15%, transparent); position: absolute; top: -40px; left: calc(12% + 40px); z-index: 1; }
|
|
118
|
+
.b-flow-boxed > li .via { position: absolute; top: -20px; left: calc(12% + 72px); transform: translateY(-50%); }
|
|
119
|
+
.b-flow-boxed > li dl { width: 100%; padding: 8px 36px; display: flex; align-items: center; border: 3px solid var(--color-primary); border-radius: 14px; position: relative; background: var(--color-surface); }
|
|
120
|
+
.b-flow-boxed > li.is-focus dl { border-color: var(--color-accent); }
|
|
121
|
+
.b-flow-boxed > li:not(:last-child) dl::before, .b-flow-boxed > li:not(:last-child) dl::after { content: ""; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); }
|
|
122
|
+
.b-flow-boxed > li:not(:last-child) dl::before { border-width: 26px; border-top-color: var(--color-primary); }
|
|
123
|
+
.b-flow-boxed > li.is-focus:not(:last-child) dl::before { border-top-color: var(--color-accent); }
|
|
124
|
+
.b-flow-boxed > li:not(:last-child) dl::after { border-width: 23px; border-top-color: var(--color-surface); }
|
|
125
|
+
.b-flow-boxed > li dl dt { flex: 0 0 24%; margin-right: 2vw; text-align: center; }
|
|
126
|
+
.b-flow-boxed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; position: relative; z-index: 2; }
|
|
127
|
+
.b-flow-boxed > li dl dd { flex: 1; }
|
|
128
|
+
.b-flow-boxed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }
|
|
129
|
+
|
|
130
|
+
/* スタイリッシュ: 全体を 1 つの枠で囲み、区切り線に ▽ */
|
|
131
|
+
.b-flow-framed { border: 4px solid var(--color-primary); }
|
|
132
|
+
.b-flow-framed > li { padding: 12px 36px; position: relative; }
|
|
133
|
+
.b-flow-framed > li:not(:last-child) { border-bottom: 4px solid var(--color-primary); }
|
|
134
|
+
.b-flow-framed > li:not(:last-child)::before, .b-flow-framed > li:not(:last-child)::after { content: ""; border: solid transparent; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 1; }
|
|
135
|
+
.b-flow-framed > li:not(:last-child)::before { border-width: 26px; border-top-color: var(--color-primary); }
|
|
136
|
+
.b-flow-framed > li:not(:last-child)::after { border-width: 21px; border-top-color: var(--color-surface); }
|
|
137
|
+
.b-flow-framed > li .via { position: absolute; top: 0; left: calc(50% + 44px); transform: translateY(-50%); background: var(--color-surface); padding: 0 10px; z-index: 2; }
|
|
138
|
+
.b-flow-framed > li dl { display: flex; align-items: center; }
|
|
139
|
+
.b-flow-framed > li dl dt { flex: 0 0 24%; margin-right: 1vw; text-align: center; }
|
|
140
|
+
.b-flow-framed > li dl dt .icon { padding: 4px 14px; margin: 0 auto 6px; display: block; border-radius: 999px; width: fit-content; }
|
|
141
|
+
.b-flow-framed > li dl dd { flex: 1; }
|
|
142
|
+
.b-flow-framed > li dl dd .phase { display: block; width: fit-content; margin: 0 0 4px; }
|
|
143
|
+
|
|
144
|
+
/* 2 カラム構成: 右端が矢印の枠を 2 列に */
|
|
145
|
+
.b-flow-grid { display: flex; flex-wrap: wrap; gap: 48px 4%; }
|
|
146
|
+
.b-flow-grid > li { padding: 28px 44px 24px 36px; flex: 0 0 48%; border: 3px solid var(--color-primary); position: relative; background: var(--color-surface); }
|
|
147
|
+
.b-flow-grid > li.is-focus { border-color: var(--color-accent); }
|
|
148
|
+
.b-flow-grid > li:not(:last-child)::before, .b-flow-grid > li:not(:last-child)::after { content: ""; border: solid transparent; position: absolute; top: 50%; left: 100%; transform: translateY(-50%); }
|
|
149
|
+
.b-flow-grid > li:not(:last-child)::before { border-width: 30px; border-left-color: var(--color-primary); }
|
|
150
|
+
.b-flow-grid > li.is-focus:not(:last-child)::before { border-left-color: var(--color-accent); }
|
|
151
|
+
.b-flow-grid > li:not(:last-child)::after { border-width: 27px; border-left-color: var(--color-surface); }
|
|
152
|
+
.b-flow-grid > li .icon { padding: 7px 28px; display: block; border-radius: 999px; position: absolute; top: -18px; left: -14px; z-index: 2; }
|
|
153
|
+
.b-flow-grid > li .via { display: none; }
|
|
154
|
+
.b-flow-grid > li dl dt { margin-bottom: 6px; }
|
|
155
|
+
}
|
|
156
|
+
`;
|
|
157
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yadeck/slide-components-basic",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "YADECK: minimal tag set (header / section-header / heading / body / list / code / image / quote / note)",
|
|
5
|
+
"homepage": "https://onfi.github.io/yadeck/",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/onfi/yadeck.git",
|
|
9
|
+
"directory": "packages/slide-components-basic"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/onfi/yadeck/issues"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"src",
|
|
26
|
+
"!src/**/*.test.ts",
|
|
27
|
+
"!src/**/*.test.tsx",
|
|
28
|
+
"!src/**/__snapshots__"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc -b"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@yadeck/slide-core": "^0.1.0",
|
|
35
|
+
"@yadeck/slide-schema": "^0.1.0",
|
|
36
|
+
"highlight.js": "^11.12.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"react": "^19.0.0",
|
|
40
|
+
"zod": "^4.0.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"react": "^19.3.0",
|
|
44
|
+
"zod": "^4.6.0"
|
|
45
|
+
},
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"author": "onfi",
|
|
48
|
+
"keywords": [
|
|
49
|
+
"yadeck",
|
|
50
|
+
"slides",
|
|
51
|
+
"presentation",
|
|
52
|
+
"yaml",
|
|
53
|
+
"react",
|
|
54
|
+
"ai"
|
|
55
|
+
],
|
|
56
|
+
"engines": {
|
|
57
|
+
"node": ">=22"
|
|
58
|
+
},
|
|
59
|
+
"publishConfig": {
|
|
60
|
+
"access": "public"
|
|
61
|
+
}
|
|
62
|
+
}
|
package/src/chrome.tsx
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Block, RichText, type BlockNode } from "@yadeck/slide-core";
|
|
2
|
+
|
|
3
|
+
/** スライド枠いっぱいに広げる共通のパディング付きコンテナ */
|
|
4
|
+
export const PAGE = "absolute inset-0 flex flex-col gap-6 px-20 py-14";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* スライド上部の見出し。accent の縦バーと primary の細い下線で、表紙と同じ文法にする。
|
|
8
|
+
* slide の description があれば見出しの下に 1 行添える
|
|
9
|
+
*/
|
|
10
|
+
/** 見出しの表示幅(全角 2、半角 1)。長い見出しは 1 段小さくして 1 行に収める */
|
|
11
|
+
function headingWidth(text: string): number {
|
|
12
|
+
let w = 0;
|
|
13
|
+
for (const ch of text.replace(/[`*_]/g, "")) w += (ch.codePointAt(0) ?? 0) > 0x2e7f ? 2 : 1;
|
|
14
|
+
return w;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const SlideHeading = ({ block, description }: { block: BlockNode; description?: string }) => (
|
|
18
|
+
<header className="flex flex-col gap-2">
|
|
19
|
+
<div
|
|
20
|
+
className={`flex items-center gap-4 border-b-2 border-primary/30 pb-3 ${
|
|
21
|
+
headingWidth(block.text ?? "") > 44 ? "[&_.b-heading]:text-h3" : "[&_.b-heading]:text-h2"
|
|
22
|
+
}`}
|
|
23
|
+
>
|
|
24
|
+
<span className="h-10 w-2 shrink-0 rounded-sm bg-accent" />
|
|
25
|
+
<Block data={block} />
|
|
26
|
+
</div>
|
|
27
|
+
{description && <RichText as="p" className="m-0 pl-6 text-small leading-snug text-muted" text={description} />}
|
|
28
|
+
</header>
|
|
29
|
+
);
|