@subroh0508/marp-theme-canvas 0.0.3 → 0.0.5
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/README.ja.md +314 -0
- package/README.md +314 -0
- package/css/black-canvas.css +24 -5
- package/css/white-canvas.css +24 -5
- package/package.json +13 -3
- package/scss/_index.scss +30 -21
- package/scss/black-canvas.scss +12 -213
- package/scss/component/CLAUDE.md +24 -24
- package/scss/component/_a.scss +1 -1
- package/scss/component/_blockquote.scss +4 -4
- package/scss/component/_code.scss +8 -2
- package/scss/component/_columns.scss +13 -13
- package/scss/component/_footer.scss +1 -1
- package/scss/component/_header.scss +1 -1
- package/scss/component/_heading.scss +1 -1
- package/scss/component/_index.scss +5 -7
- package/scss/component/_pagination.scss +2 -2
- package/scss/component/_section.scss +3 -3
- package/scss/component/_table.scss +2 -2
- package/scss/component/_text-decorator.scss +1 -1
- package/scss/component/prettylights/CLAUDE.md +11 -11
- package/scss/component/prettylights/_base.scss +36 -30
- package/scss/component/prettylights/_dark.scss +9 -3
- package/scss/component/prettylights/_index.scss +5 -7
- package/scss/component/prettylights/_light.scss +9 -3
- package/scss/page/CLAUDE.md +27 -27
- package/scss/page/_agenda.scss +6 -6
- package/scss/page/_display.scss +9 -9
- package/scss/page/_index.scss +4 -6
- package/scss/page/_section.scss +4 -4
- package/scss/page/_title.scss +6 -6
- package/scss/page/_toc.scss +3 -3
- package/scss/theme/CLAUDE.md +110 -0
- package/scss/theme/_black-canvas.scss +243 -0
- package/scss/theme/_white-canvas.scss +243 -0
- package/scss/white-canvas.scss +12 -213
- package/scss/CLAUDE.md +0 -59
package/README.ja.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# Canvas
|
|
2
|
+
|
|
3
|
+
日本語 | [English](./README.md)
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@subroh0508/marp-theme-canvas)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
|
|
8
|
+
シンプル・ミニマルなMarpテーマ。余計な装飾を廃し、コンテンツに集中できるデザインです。
|
|
9
|
+
|
|
10
|
+
## デモ
|
|
11
|
+
|
|
12
|
+
- [White Canvas Demo](https://subroh0508.github.io/marp-theme-canvas/white_canvas_demo.html)
|
|
13
|
+
- [Black Canvas Demo](https://subroh0508.github.io/marp-theme-canvas/black_canvas_demo.html)
|
|
14
|
+
|
|
15
|
+
## 特徴
|
|
16
|
+
|
|
17
|
+
- **2種類のテーマ**: ライトモード(white-canvas)とダークモード(black-canvas)
|
|
18
|
+
- **5種類のページスタイル**: title, section, toc, agenda, display
|
|
19
|
+
- **CSS変数によるカスタマイズ**: フロントマターから色やフォントを簡単に変更
|
|
20
|
+
- **SCSSモジュール**: 必要なスタイルだけを個別にインポート可能
|
|
21
|
+
- **GitHub風シンタックスハイライト**: prettylightsベースのコードハイライト
|
|
22
|
+
- **マルチカラムレイアウト**: 2カラム・3カラムレイアウトに対応
|
|
23
|
+
|
|
24
|
+
## インストール
|
|
25
|
+
|
|
26
|
+
### npm
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @subroh0508/marp-theme-canvas
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### CDN / 直接利用
|
|
33
|
+
|
|
34
|
+
GitHubのraw URLから直接CSSファイルを参照することも可能です:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
https://raw.githubusercontent.com/subroh0508/marp-theme-canvas/main/css/white-canvas.css
|
|
38
|
+
https://raw.githubusercontent.com/subroh0508/marp-theme-canvas/main/css/black-canvas.css
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 使い方
|
|
42
|
+
|
|
43
|
+
### 基本設定
|
|
44
|
+
|
|
45
|
+
Markdownファイルのフロントマターでテーマを指定します:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
---
|
|
49
|
+
marp: true
|
|
50
|
+
theme: white-canvas
|
|
51
|
+
paginate: true
|
|
52
|
+
style: |
|
|
53
|
+
:root {
|
|
54
|
+
--color-primary: #3b91c4;
|
|
55
|
+
--color-accent: #ead7a4;
|
|
56
|
+
}
|
|
57
|
+
---
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`--color-primary` と `--color-accent` は必須です。プライマリカラーは見出し(h2)に、アクセントカラーはハイライト(`<mark>`)に使用されます。
|
|
61
|
+
|
|
62
|
+
### テーマの選択
|
|
63
|
+
|
|
64
|
+
| テーマ名 | 説明 |
|
|
65
|
+
|----------|------|
|
|
66
|
+
| `white-canvas` | 白背景のライトテーマ |
|
|
67
|
+
| `black-canvas` | 黒背景のダークテーマ |
|
|
68
|
+
|
|
69
|
+
### Marp CLIでのビルド
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
marp --theme node_modules/@subroh0508/marp-theme-canvas/css/white-canvas.css slides.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## ページスタイル
|
|
76
|
+
|
|
77
|
+
`<!-- _class: スタイル名 -->` でページごとにスタイルを切り替えられます。
|
|
78
|
+
|
|
79
|
+
### title
|
|
80
|
+
|
|
81
|
+
タイトルページ用のスタイルです。h1がメインタイトル、それ以外のテキストがメタデータ(発表者名・日付など)として表示されます。
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
<!-- _class: title -->
|
|
85
|
+
|
|
86
|
+
# プレゼンテーションタイトル
|
|
87
|
+
|
|
88
|
+
発表者名
|
|
89
|
+
2026年1月
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### section
|
|
93
|
+
|
|
94
|
+
セクション区切り(中扉)用のスタイルです。テキストが画面中央に大きく表示されます。
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
<!-- _class: section -->
|
|
98
|
+
|
|
99
|
+
セクション1: はじめに
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### toc
|
|
103
|
+
|
|
104
|
+
目次ページ用のスタイルです。リストが見やすくスタイリングされます。
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
<!-- _class: toc -->
|
|
108
|
+
|
|
109
|
+
## 目次
|
|
110
|
+
|
|
111
|
+
1. はじめに
|
|
112
|
+
2. 本題
|
|
113
|
+
3. まとめ
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### agenda
|
|
117
|
+
|
|
118
|
+
アジェンダ・話すこと一覧用のスタイルです。項目と詳細説明を階層的に表示できます。
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
<!-- _class: agenda -->
|
|
122
|
+
|
|
123
|
+
## 今日話すこと
|
|
124
|
+
|
|
125
|
+
- トピック1
|
|
126
|
+
- 詳細説明
|
|
127
|
+
- トピック2
|
|
128
|
+
- 詳細説明
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### display
|
|
132
|
+
|
|
133
|
+
短い文章や画像を大きく表示するためのスタイルです。
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
<!-- _class: display -->
|
|
137
|
+
|
|
138
|
+
ここに強調したいメッセージ
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
画像がある場合は文字サイズは大きくならず、画像が中央に配置されます。
|
|
142
|
+
|
|
143
|
+
## カスタマイズ
|
|
144
|
+
|
|
145
|
+
フロントマターのstyleでCSS変数を上書きできます。
|
|
146
|
+
|
|
147
|
+
### 主要なCSS変数
|
|
148
|
+
|
|
149
|
+
#### 色
|
|
150
|
+
|
|
151
|
+
| 変数名 | 説明 | white-canvas | black-canvas |
|
|
152
|
+
|--------|------|--------------|--------------|
|
|
153
|
+
| `--color-primary` | プライマリカラー(h2など) | 必須 | 必須 |
|
|
154
|
+
| `--color-accent` | アクセントカラー(mark) | 必須 | 必須 |
|
|
155
|
+
| `--color-black` | 黒 | `#000` | `#000` |
|
|
156
|
+
| `--color-white` | 白 | `#fff` | `#fff` |
|
|
157
|
+
| `--color-grey-lightest` | グレー(最も明るい) | `#cbd5e1` (slate-300) | `#f8fafc` (slate-50) |
|
|
158
|
+
| `--color-grey-lighter` | グレー(より明るい) | `#94a3b8` (slate-400) | `#f1f5f9` (slate-100) |
|
|
159
|
+
| `--color-grey-light` | グレー(明るい) | `#64748b` (slate-500) | `#e2e8f0` (slate-200) |
|
|
160
|
+
| `--color-grey-medium` | グレー(中間) | `#475569` (slate-600) | `#cbd5e1` (slate-300) |
|
|
161
|
+
| `--color-grey-dark` | グレー(暗い) | `#334155` (slate-700) | `#1e293b` (slate-800) |
|
|
162
|
+
| `--color-grey-darker` | グレー(より暗い) | `#1e293b` (slate-800) | `#0f172a` (slate-900) |
|
|
163
|
+
| `--color-grey-darkest` | グレー(最も暗い) | `#0f172a` (slate-900) | `#020617` (slate-950) |
|
|
164
|
+
| `--color-link` | リンク色 | `#2563eb` (blue-600) | `#60a5fa` (blue-400) |
|
|
165
|
+
|
|
166
|
+
#### フォント
|
|
167
|
+
|
|
168
|
+
| 変数名 | 説明 | デフォルト値 |
|
|
169
|
+
|--------|------|--------------|
|
|
170
|
+
| `--font-family-base` | 基本フォント | `'Noto Sans JP', sans-serif` |
|
|
171
|
+
| `--font-family-mono` | 等幅フォント | `ui-monospace, ...` |
|
|
172
|
+
| `--font-size-base` | 基本フォントサイズ | `40px` |
|
|
173
|
+
|
|
174
|
+
#### サイズ・レイアウト
|
|
175
|
+
|
|
176
|
+
| 変数名 | 説明 | デフォルト値 |
|
|
177
|
+
|--------|------|--------------|
|
|
178
|
+
| `--slide-padding-x` | スライド左右余白 | `80px` |
|
|
179
|
+
| `--slide-padding-y` | スライド上下余白 | `80px` |
|
|
180
|
+
| `--border-radius` | 角丸 | `8px` |
|
|
181
|
+
|
|
182
|
+
### カスタマイズ例
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
---
|
|
186
|
+
marp: true
|
|
187
|
+
theme: white-canvas
|
|
188
|
+
style: |
|
|
189
|
+
:root {
|
|
190
|
+
--color-primary: #e11d48;
|
|
191
|
+
--color-accent: #fde047;
|
|
192
|
+
--font-size-base: 36px;
|
|
193
|
+
--slide-padding-x: 60px;
|
|
194
|
+
}
|
|
195
|
+
---
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## SCSSモジュール
|
|
199
|
+
|
|
200
|
+
Canvasのスタイルはモジュール化されており、独自テーマ作成時に個別にインポートできます。
|
|
201
|
+
|
|
202
|
+
### モジュール構成
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
scss/
|
|
206
|
+
├── theme/ # テーマモジュール
|
|
207
|
+
│ ├── _white-canvas.scss # ライトテーマ(@use可能)
|
|
208
|
+
│ └── _black-canvas.scss # ダークテーマ(@use可能)
|
|
209
|
+
├── component/ # 共通コンポーネント
|
|
210
|
+
│ ├── _heading.scss # 見出し
|
|
211
|
+
│ ├── _table.scss # テーブル
|
|
212
|
+
│ ├── _code.scss # コードブロック
|
|
213
|
+
│ ├── _blockquote.scss # 引用
|
|
214
|
+
│ ├── _columns.scss # カラムレイアウト
|
|
215
|
+
│ └── ...
|
|
216
|
+
├── page/ # ページスタイル
|
|
217
|
+
│ ├── _title.scss
|
|
218
|
+
│ ├── _section.scss
|
|
219
|
+
│ ├── _toc.scss
|
|
220
|
+
│ ├── _agenda.scss
|
|
221
|
+
│ └── _display.scss
|
|
222
|
+
├── white-canvas.scss # ライトテーマ(CSS出力用)
|
|
223
|
+
└── black-canvas.scss # ダークテーマ(CSS出力用)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### テーマをカスタマイズして使用
|
|
227
|
+
|
|
228
|
+
テーマモジュールを `@use` で取り込み、CSS変数をカスタマイズできます。
|
|
229
|
+
|
|
230
|
+
```scss
|
|
231
|
+
/*!
|
|
232
|
+
* @theme my-custom-theme
|
|
233
|
+
*/
|
|
234
|
+
|
|
235
|
+
@use '@subroh0508/marp-theme-canvas/scss/white-canvas' as white-canvas;
|
|
236
|
+
|
|
237
|
+
// Google Fonts(必要に応じて変更)
|
|
238
|
+
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
|
|
239
|
+
|
|
240
|
+
// テーマを適用(CSS変数をカスタマイズ)
|
|
241
|
+
@include white-canvas.apply() {
|
|
242
|
+
--color-primary: #e11d48;
|
|
243
|
+
--color-accent: #fde047;
|
|
244
|
+
--font-size-base: 36px;
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### 提供されるmixin
|
|
249
|
+
|
|
250
|
+
| mixin | 説明 |
|
|
251
|
+
|-------|------|
|
|
252
|
+
| `apply()` | CSS変数とスタイルを一括適用。`@content` でCSS変数を追加・上書き可能 |
|
|
253
|
+
| `variables()` | CSS変数のみを出力。`@content` でCSS変数を追加・上書き可能 |
|
|
254
|
+
| `styles()` | スタイルのみを出力(CSS変数は含まない) |
|
|
255
|
+
|
|
256
|
+
### コンポーネント・ページスタイルの個別利用
|
|
257
|
+
|
|
258
|
+
```scss
|
|
259
|
+
// テーマモジュール
|
|
260
|
+
@use '@subroh0508/marp-theme-canvas/scss/white-canvas' as white-canvas;
|
|
261
|
+
@use '@subroh0508/marp-theme-canvas/scss/black-canvas' as black-canvas;
|
|
262
|
+
|
|
263
|
+
// コンポーネント
|
|
264
|
+
@use '@subroh0508/marp-theme-canvas/scss/component' as component;
|
|
265
|
+
@use '@subroh0508/marp-theme-canvas/scss/component/heading' as heading;
|
|
266
|
+
|
|
267
|
+
// ページスタイル
|
|
268
|
+
@use '@subroh0508/marp-theme-canvas/scss/page' as page;
|
|
269
|
+
@use '@subroh0508/marp-theme-canvas/scss/page/title' as page-title;
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### コンポーネント単体での使用例
|
|
273
|
+
|
|
274
|
+
```scss
|
|
275
|
+
@use '@subroh0508/marp-theme-canvas/scss/component/heading' as heading;
|
|
276
|
+
@use '@subroh0508/marp-theme-canvas/scss/page/title' as page-title;
|
|
277
|
+
|
|
278
|
+
section {
|
|
279
|
+
@include page-title.configure(
|
|
280
|
+
$font-size-title: 2.5em,
|
|
281
|
+
$color-metadata-text: #666
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
@include heading.configure(
|
|
286
|
+
$font-size-h1: 2em,
|
|
287
|
+
$font-size-h2: 1.5em,
|
|
288
|
+
$color-text-h2: #3b91c4
|
|
289
|
+
);
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## 開発
|
|
293
|
+
|
|
294
|
+
### リポジトリのクローン
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
git clone https://github.com/subroh0508/marp-theme-canvas.git
|
|
298
|
+
cd marp-theme-canvas
|
|
299
|
+
pnpm install
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### コマンド
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# CSSをビルド
|
|
306
|
+
pnpm build
|
|
307
|
+
|
|
308
|
+
# デモサーバーを起動
|
|
309
|
+
pnpm serve
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## ライセンス
|
|
313
|
+
|
|
314
|
+
[MIT License](./LICENSE)
|
package/README.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# Canvas
|
|
2
|
+
|
|
3
|
+
[日本語](./README.ja.md) | English
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@subroh0508/marp-theme-canvas)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
|
|
8
|
+
A simple and minimal Marp theme. A design that eliminates unnecessary decorations and lets you focus on your content.
|
|
9
|
+
|
|
10
|
+
## Demo
|
|
11
|
+
|
|
12
|
+
- [White Canvas Demo](https://subroh0508.github.io/marp-theme-canvas/white_canvas_demo.html)
|
|
13
|
+
- [Black Canvas Demo](https://subroh0508.github.io/marp-theme-canvas/black_canvas_demo.html)
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- **2 Theme Variants**: Light mode (white-canvas) and dark mode (black-canvas)
|
|
18
|
+
- **5 Page Styles**: title, section, toc, agenda, display
|
|
19
|
+
- **CSS Variable Customization**: Easily change colors and fonts from frontmatter
|
|
20
|
+
- **SCSS Modules**: Import only the styles you need
|
|
21
|
+
- **GitHub-style Syntax Highlighting**: Code highlighting based on prettylights
|
|
22
|
+
- **Multi-column Layout**: Support for 2-column and 3-column layouts
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
### npm
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @subroh0508/marp-theme-canvas
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### CDN / Direct Usage
|
|
33
|
+
|
|
34
|
+
You can also reference the CSS files directly via GitHub raw URL:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
https://raw.githubusercontent.com/subroh0508/marp-theme-canvas/main/css/white-canvas.css
|
|
38
|
+
https://raw.githubusercontent.com/subroh0508/marp-theme-canvas/main/css/black-canvas.css
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
### Basic Setup
|
|
44
|
+
|
|
45
|
+
Specify the theme in the frontmatter of your Markdown file:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
---
|
|
49
|
+
marp: true
|
|
50
|
+
theme: white-canvas
|
|
51
|
+
paginate: true
|
|
52
|
+
style: |
|
|
53
|
+
:root {
|
|
54
|
+
--color-primary: #3b91c4;
|
|
55
|
+
--color-accent: #ead7a4;
|
|
56
|
+
}
|
|
57
|
+
---
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`--color-primary` and `--color-accent` are required. The primary color is used for headings (h2), and the accent color is used for highlights (`<mark>`).
|
|
61
|
+
|
|
62
|
+
### Theme Selection
|
|
63
|
+
|
|
64
|
+
| Theme Name | Description |
|
|
65
|
+
|------------|-------------|
|
|
66
|
+
| `white-canvas` | Light theme with white background |
|
|
67
|
+
| `black-canvas` | Dark theme with black background |
|
|
68
|
+
|
|
69
|
+
### Building with Marp CLI
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
marp --theme node_modules/@subroh0508/marp-theme-canvas/css/white-canvas.css slides.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Page Styles
|
|
76
|
+
|
|
77
|
+
Use `<!-- _class: style-name -->` to switch styles for each page.
|
|
78
|
+
|
|
79
|
+
### title
|
|
80
|
+
|
|
81
|
+
Style for title pages. h1 becomes the main title, and other text is displayed as metadata (presenter name, date, etc.).
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
<!-- _class: title -->
|
|
85
|
+
|
|
86
|
+
# Presentation Title
|
|
87
|
+
|
|
88
|
+
Presenter Name
|
|
89
|
+
January 2026
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### section
|
|
93
|
+
|
|
94
|
+
Style for section dividers. Text is displayed large and centered on the screen.
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
<!-- _class: section -->
|
|
98
|
+
|
|
99
|
+
Section 1: Introduction
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### toc
|
|
103
|
+
|
|
104
|
+
Style for table of contents pages. Lists are styled for better readability.
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
<!-- _class: toc -->
|
|
108
|
+
|
|
109
|
+
## Table of Contents
|
|
110
|
+
|
|
111
|
+
1. Introduction
|
|
112
|
+
2. Main Topic
|
|
113
|
+
3. Summary
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### agenda
|
|
117
|
+
|
|
118
|
+
Style for agenda or topics list. Items and detailed descriptions can be displayed hierarchically.
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
<!-- _class: agenda -->
|
|
122
|
+
|
|
123
|
+
## Today's Topics
|
|
124
|
+
|
|
125
|
+
- Topic 1
|
|
126
|
+
- Detailed description
|
|
127
|
+
- Topic 2
|
|
128
|
+
- Detailed description
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### display
|
|
132
|
+
|
|
133
|
+
Style for displaying short text or images prominently.
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
<!-- _class: display -->
|
|
137
|
+
|
|
138
|
+
Your emphasized message here
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
When an image is present, the font size doesn't increase, and the image is centered.
|
|
142
|
+
|
|
143
|
+
## Customization
|
|
144
|
+
|
|
145
|
+
You can override CSS variables in the frontmatter style.
|
|
146
|
+
|
|
147
|
+
### Key CSS Variables
|
|
148
|
+
|
|
149
|
+
#### Colors
|
|
150
|
+
|
|
151
|
+
| Variable | Description | white-canvas | black-canvas |
|
|
152
|
+
|----------|-------------|--------------|--------------|
|
|
153
|
+
| `--color-primary` | Primary color (h2, etc.) | Required | Required |
|
|
154
|
+
| `--color-accent` | Accent color (mark) | Required | Required |
|
|
155
|
+
| `--color-black` | Black | `#000` | `#000` |
|
|
156
|
+
| `--color-white` | White | `#fff` | `#fff` |
|
|
157
|
+
| `--color-grey-lightest` | Grey (lightest) | `#cbd5e1` (slate-300) | `#f8fafc` (slate-50) |
|
|
158
|
+
| `--color-grey-lighter` | Grey (lighter) | `#94a3b8` (slate-400) | `#f1f5f9` (slate-100) |
|
|
159
|
+
| `--color-grey-light` | Grey (light) | `#64748b` (slate-500) | `#e2e8f0` (slate-200) |
|
|
160
|
+
| `--color-grey-medium` | Grey (medium) | `#475569` (slate-600) | `#cbd5e1` (slate-300) |
|
|
161
|
+
| `--color-grey-dark` | Grey (dark) | `#334155` (slate-700) | `#1e293b` (slate-800) |
|
|
162
|
+
| `--color-grey-darker` | Grey (darker) | `#1e293b` (slate-800) | `#0f172a` (slate-900) |
|
|
163
|
+
| `--color-grey-darkest` | Grey (darkest) | `#0f172a` (slate-900) | `#020617` (slate-950) |
|
|
164
|
+
| `--color-link` | Link color | `#2563eb` (blue-600) | `#60a5fa` (blue-400) |
|
|
165
|
+
|
|
166
|
+
#### Fonts
|
|
167
|
+
|
|
168
|
+
| Variable | Description | Default |
|
|
169
|
+
|----------|-------------|---------|
|
|
170
|
+
| `--font-family-base` | Base font | `'Noto Sans JP', sans-serif` |
|
|
171
|
+
| `--font-family-mono` | Monospace font | `ui-monospace, ...` |
|
|
172
|
+
| `--font-size-base` | Base font size | `40px` |
|
|
173
|
+
|
|
174
|
+
#### Size & Layout
|
|
175
|
+
|
|
176
|
+
| Variable | Description | Default |
|
|
177
|
+
|----------|-------------|---------|
|
|
178
|
+
| `--slide-padding-x` | Slide horizontal padding | `80px` |
|
|
179
|
+
| `--slide-padding-y` | Slide vertical padding | `80px` |
|
|
180
|
+
| `--border-radius` | Border radius | `8px` |
|
|
181
|
+
|
|
182
|
+
### Customization Example
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
---
|
|
186
|
+
marp: true
|
|
187
|
+
theme: white-canvas
|
|
188
|
+
style: |
|
|
189
|
+
:root {
|
|
190
|
+
--color-primary: #e11d48;
|
|
191
|
+
--color-accent: #fde047;
|
|
192
|
+
--font-size-base: 36px;
|
|
193
|
+
--slide-padding-x: 60px;
|
|
194
|
+
}
|
|
195
|
+
---
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## SCSS Modules
|
|
199
|
+
|
|
200
|
+
Canvas styles are modularized and can be imported individually when creating custom themes.
|
|
201
|
+
|
|
202
|
+
### Module Structure
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
scss/
|
|
206
|
+
├── theme/ # Theme modules
|
|
207
|
+
│ ├── _white-canvas.scss # Light theme (importable via @use)
|
|
208
|
+
│ └── _black-canvas.scss # Dark theme (importable via @use)
|
|
209
|
+
├── component/ # Common components
|
|
210
|
+
│ ├── _heading.scss # Headings
|
|
211
|
+
│ ├── _table.scss # Tables
|
|
212
|
+
│ ├── _code.scss # Code blocks
|
|
213
|
+
│ ├── _blockquote.scss # Blockquotes
|
|
214
|
+
│ ├── _columns.scss # Column layout
|
|
215
|
+
│ └── ...
|
|
216
|
+
├── page/ # Page styles
|
|
217
|
+
│ ├── _title.scss
|
|
218
|
+
│ ├── _section.scss
|
|
219
|
+
│ ├── _toc.scss
|
|
220
|
+
│ ├── _agenda.scss
|
|
221
|
+
│ └── _display.scss
|
|
222
|
+
├── white-canvas.scss # Light theme (for CSS output)
|
|
223
|
+
└── black-canvas.scss # Dark theme (for CSS output)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Customizing and Using Themes
|
|
227
|
+
|
|
228
|
+
Import theme modules with `@use` and customize CSS variables.
|
|
229
|
+
|
|
230
|
+
```scss
|
|
231
|
+
/*!
|
|
232
|
+
* @theme my-custom-theme
|
|
233
|
+
*/
|
|
234
|
+
|
|
235
|
+
@use '@subroh0508/marp-theme-canvas/scss/white-canvas' as white-canvas;
|
|
236
|
+
|
|
237
|
+
// Google Fonts (change as needed)
|
|
238
|
+
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
|
|
239
|
+
|
|
240
|
+
// Apply theme (customize CSS variables)
|
|
241
|
+
@include white-canvas.apply() {
|
|
242
|
+
--color-primary: #e11d48;
|
|
243
|
+
--color-accent: #fde047;
|
|
244
|
+
--font-size-base: 36px;
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Available Mixins
|
|
249
|
+
|
|
250
|
+
| Mixin | Description |
|
|
251
|
+
|-------|-------------|
|
|
252
|
+
| `apply()` | Apply CSS variables and styles at once. Can add/override CSS variables via `@content` |
|
|
253
|
+
| `variables()` | Output CSS variables only. Can add/override CSS variables via `@content` |
|
|
254
|
+
| `styles()` | Output styles only (excludes CSS variables) |
|
|
255
|
+
|
|
256
|
+
### Using Components and Page Styles Individually
|
|
257
|
+
|
|
258
|
+
```scss
|
|
259
|
+
// Theme modules
|
|
260
|
+
@use '@subroh0508/marp-theme-canvas/scss/white-canvas' as white-canvas;
|
|
261
|
+
@use '@subroh0508/marp-theme-canvas/scss/black-canvas' as black-canvas;
|
|
262
|
+
|
|
263
|
+
// Components
|
|
264
|
+
@use '@subroh0508/marp-theme-canvas/scss/component' as component;
|
|
265
|
+
@use '@subroh0508/marp-theme-canvas/scss/component/heading' as heading;
|
|
266
|
+
|
|
267
|
+
// Page styles
|
|
268
|
+
@use '@subroh0508/marp-theme-canvas/scss/page' as page;
|
|
269
|
+
@use '@subroh0508/marp-theme-canvas/scss/page/title' as page-title;
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Using Components Standalone
|
|
273
|
+
|
|
274
|
+
```scss
|
|
275
|
+
@use '@subroh0508/marp-theme-canvas/scss/component/heading' as heading;
|
|
276
|
+
@use '@subroh0508/marp-theme-canvas/scss/page/title' as page-title;
|
|
277
|
+
|
|
278
|
+
section {
|
|
279
|
+
@include page-title.configure(
|
|
280
|
+
$font-size-title: 2.5em,
|
|
281
|
+
$color-metadata-text: #666
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
@include heading.configure(
|
|
286
|
+
$font-size-h1: 2em,
|
|
287
|
+
$font-size-h2: 1.5em,
|
|
288
|
+
$color-text-h2: #3b91c4
|
|
289
|
+
);
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Development
|
|
293
|
+
|
|
294
|
+
### Clone the Repository
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
git clone https://github.com/subroh0508/marp-theme-canvas.git
|
|
298
|
+
cd marp-theme-canvas
|
|
299
|
+
pnpm install
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Commands
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Build CSS
|
|
306
|
+
pnpm build
|
|
307
|
+
|
|
308
|
+
# Start demo server
|
|
309
|
+
pnpm serve
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## License
|
|
313
|
+
|
|
314
|
+
[MIT License](./LICENSE)
|
package/css/black-canvas.css
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
/*!
|
|
3
|
-
* Black Canvas -
|
|
3
|
+
* Black Canvas - A simple dark slide theme with minimal styling
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* - --color-primary:
|
|
7
|
-
* - --color-accent:
|
|
5
|
+
* When using, you must define the following variables in Marp's inline style:
|
|
6
|
+
* - --color-primary: Primary color (e.g., h2 text color)
|
|
7
|
+
* - --color-accent: Accent color (e.g., mark tag background)
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Example:
|
|
10
10
|
* style: |
|
|
11
11
|
* :root {
|
|
12
12
|
* --color-primary: #3b91c4;
|
|
@@ -18,8 +18,27 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @auto-scaling true
|
|
20
20
|
* @size 16:9 1920px 1080px
|
|
21
|
+
*
|
|
22
|
+
* MIT License
|
|
23
|
+
* Copyright (c) 2026 Subroh Nishikori
|
|
24
|
+
* https://github.com/subroh0508/marp-theme-canvas/blob/main/LICENSE
|
|
25
|
+
*/
|
|
26
|
+
/*!
|
|
27
|
+
* MIT License
|
|
28
|
+
* Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
29
|
+
* https://github.com/sindresorhus/github-markdown-css/blob/main/license
|
|
21
30
|
*/
|
|
22
31
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap");
|
|
32
|
+
/*!
|
|
33
|
+
* MIT License
|
|
34
|
+
* Copyright (c) 2018 Marp team (marp-team@marp.app)
|
|
35
|
+
* https://github.com/marp-team/marp-core/blob/main/LICENSE
|
|
36
|
+
*/
|
|
37
|
+
/*!
|
|
38
|
+
* MIT License
|
|
39
|
+
* Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
40
|
+
* https://github.com/sindresorhus/github-markdown-css/blob/main/license
|
|
41
|
+
*/
|
|
23
42
|
:root {
|
|
24
43
|
--color-black: #000;
|
|
25
44
|
--color-white: #fff;
|