@subroh0508/marp-theme-canvas 0.0.3 → 0.0.4
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
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
# prettylights
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Syntax highlighting styles (color mapping for highlight.js classes)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Structure
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
prettylights/
|
|
9
|
-
├── _base.scss #
|
|
10
|
-
├── _light.scss # Light
|
|
11
|
-
└── _dark.scss # Dark
|
|
9
|
+
├── _base.scss # Common logic (mixin with arguments)
|
|
10
|
+
├── _light.scss # Light theme color definitions
|
|
11
|
+
└── _dark.scss # Dark theme color definitions
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Pattern
|
|
15
15
|
|
|
16
|
-
- `_base.scss`: highlight.js
|
|
17
|
-
- `_light.scss` / `_dark.scss`:
|
|
16
|
+
- `_base.scss`: Defines color mapping for highlight.js classes via mixin with arguments
|
|
17
|
+
- `_light.scss` / `_dark.scss`: Define color variables and call base via argumentless mixin
|
|
18
18
|
|
|
19
19
|
```scss
|
|
20
20
|
// _light.scss
|
|
21
21
|
@use 'base';
|
|
22
22
|
|
|
23
23
|
$pl-comment: #59636e;
|
|
24
|
-
// ...
|
|
24
|
+
// ... color definitions
|
|
25
25
|
|
|
26
26
|
@mixin configure {
|
|
27
27
|
@include base.configure($pl-comment, ...);
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## Usage from Theme
|
|
32
32
|
|
|
33
|
-
section
|
|
33
|
+
Use within section:
|
|
34
34
|
|
|
35
35
|
```scss
|
|
36
36
|
@use './component/prettylights/light' as prettylights;
|
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
// ===== _base.scss =====
|
|
2
|
-
//
|
|
3
|
-
// marp-core v4.2.0
|
|
2
|
+
// Syntax highlighting styles (color mapping for highlight.js classes)
|
|
3
|
+
// Modified from marp-core v4.2.0
|
|
4
4
|
// https://github.com/marp-team/marp-core/blob/v4.2.0/themes/default.scss
|
|
5
5
|
|
|
6
|
+
/*!
|
|
7
|
+
* MIT License
|
|
8
|
+
* Copyright (c) 2018 Marp team (marp-team@marp.app)
|
|
9
|
+
* https://github.com/marp-team/marp-core/blob/main/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
|
|
6
12
|
@mixin configure(
|
|
7
|
-
$comment, //
|
|
8
|
-
$constant, //
|
|
9
|
-
$entity, //
|
|
10
|
-
$entity-tag, //
|
|
11
|
-
$keyword, //
|
|
12
|
-
$string, //
|
|
13
|
-
$variable, //
|
|
14
|
-
$storage-modifier, //
|
|
15
|
-
$markup-heading, //
|
|
16
|
-
$markup-list, //
|
|
17
|
-
$markup-inserted-text, //
|
|
18
|
-
$markup-inserted-bg, //
|
|
19
|
-
$markup-deleted-text, //
|
|
20
|
-
$markup-deleted-bg //
|
|
13
|
+
$comment, // Comment (pl-c)
|
|
14
|
+
$constant, // Constant (pl-c1)
|
|
15
|
+
$entity, // Entity / Function name (pl-e, pl-en)
|
|
16
|
+
$entity-tag, // Tag name (pl-ent)
|
|
17
|
+
$keyword, // Keyword (pl-k)
|
|
18
|
+
$string, // String (pl-s)
|
|
19
|
+
$variable, // Variable (pl-v)
|
|
20
|
+
$storage-modifier, // Default text (pl-smi)
|
|
21
|
+
$markup-heading, // Heading (pl-mh)
|
|
22
|
+
$markup-list, // List marker (pl-ml)
|
|
23
|
+
$markup-inserted-text, // Inserted text color (pl-mi1)
|
|
24
|
+
$markup-inserted-bg, // Inserted background color (pl-mi1)
|
|
25
|
+
$markup-deleted-text, // Deleted text color (pl-md)
|
|
26
|
+
$markup-deleted-bg // Deleted background color (pl-md)
|
|
21
27
|
) {
|
|
22
28
|
pre {
|
|
23
|
-
//
|
|
29
|
+
// Default color
|
|
24
30
|
:where(.hljs) {
|
|
25
31
|
color: $storage-modifier;
|
|
26
32
|
}
|
|
27
33
|
|
|
28
|
-
//
|
|
34
|
+
// Keywords
|
|
29
35
|
:where(.hljs-doctag),
|
|
30
36
|
:where(.hljs-keyword),
|
|
31
37
|
:where(.hljs-meta .hljs-keyword),
|
|
@@ -36,7 +42,7 @@
|
|
|
36
42
|
color: $keyword;
|
|
37
43
|
}
|
|
38
44
|
|
|
39
|
-
//
|
|
45
|
+
// Functions / Class names
|
|
40
46
|
:where(.hljs-title),
|
|
41
47
|
:where(.hljs-title.class_),
|
|
42
48
|
:where(.hljs-title.class_.inherited__),
|
|
@@ -44,7 +50,7 @@
|
|
|
44
50
|
color: $entity;
|
|
45
51
|
}
|
|
46
52
|
|
|
47
|
-
//
|
|
53
|
+
// Constants / Attributes / Numbers
|
|
48
54
|
:where(.hljs-attr),
|
|
49
55
|
:where(.hljs-attribute),
|
|
50
56
|
:where(.hljs-literal),
|
|
@@ -58,27 +64,27 @@
|
|
|
58
64
|
color: $constant;
|
|
59
65
|
}
|
|
60
66
|
|
|
61
|
-
//
|
|
67
|
+
// Strings / Regular expressions
|
|
62
68
|
:where(.hljs-string),
|
|
63
69
|
:where(.hljs-meta .hljs-string),
|
|
64
70
|
:where(.hljs-regexp) {
|
|
65
71
|
color: $string;
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
//
|
|
74
|
+
// Built-in functions / Symbols
|
|
69
75
|
:where(.hljs-built_in),
|
|
70
76
|
:where(.hljs-symbol) {
|
|
71
77
|
color: $variable;
|
|
72
78
|
}
|
|
73
79
|
|
|
74
|
-
//
|
|
80
|
+
// Comments
|
|
75
81
|
:where(.hljs-code),
|
|
76
82
|
:where(.hljs-comment),
|
|
77
83
|
:where(.hljs-formula) {
|
|
78
84
|
color: $comment;
|
|
79
85
|
}
|
|
80
86
|
|
|
81
|
-
//
|
|
87
|
+
// Tag names / Selectors
|
|
82
88
|
:where(.hljs-name),
|
|
83
89
|
:where(.hljs-quote),
|
|
84
90
|
:where(.hljs-selector-pseudo),
|
|
@@ -86,23 +92,23 @@
|
|
|
86
92
|
color: $entity-tag;
|
|
87
93
|
}
|
|
88
94
|
|
|
89
|
-
//
|
|
95
|
+
// Variable interpolation
|
|
90
96
|
:where(.hljs-subst) {
|
|
91
97
|
color: $storage-modifier;
|
|
92
98
|
}
|
|
93
99
|
|
|
94
|
-
//
|
|
100
|
+
// Markup: Heading
|
|
95
101
|
:where(.hljs-section) {
|
|
96
102
|
font-weight: bold;
|
|
97
103
|
color: $markup-heading;
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
//
|
|
106
|
+
// Markup: List
|
|
101
107
|
:where(.hljs-bullet) {
|
|
102
108
|
color: $markup-list;
|
|
103
109
|
}
|
|
104
110
|
|
|
105
|
-
//
|
|
111
|
+
// Markup: Emphasis
|
|
106
112
|
:where(.hljs-emphasis) {
|
|
107
113
|
font-style: italic;
|
|
108
114
|
color: $storage-modifier;
|
|
@@ -113,13 +119,13 @@
|
|
|
113
119
|
color: $storage-modifier;
|
|
114
120
|
}
|
|
115
121
|
|
|
116
|
-
// diff:
|
|
122
|
+
// diff: Added lines
|
|
117
123
|
:where(.hljs-addition) {
|
|
118
124
|
color: $markup-inserted-text;
|
|
119
125
|
background-color: $markup-inserted-bg;
|
|
120
126
|
}
|
|
121
127
|
|
|
122
|
-
// diff:
|
|
128
|
+
// diff: Deleted lines
|
|
123
129
|
:where(.hljs-deletion) {
|
|
124
130
|
color: $markup-deleted-text;
|
|
125
131
|
background-color: $markup-deleted-bg;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
// ===== _dark.scss =====
|
|
2
|
-
//
|
|
3
|
-
// github-markdown-css v5.8.1
|
|
2
|
+
// Syntax highlighting (Dark theme) color definitions
|
|
3
|
+
// Modified from github-markdown-css v5.8.1
|
|
4
4
|
// https://github.com/sindresorhus/github-markdown-css/blob/v5.8.1/github-markdown-dark.css
|
|
5
5
|
|
|
6
|
+
/*!
|
|
7
|
+
* MIT License
|
|
8
|
+
* Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
9
|
+
* https://github.com/sindresorhus/github-markdown-css/blob/main/license
|
|
10
|
+
*/
|
|
11
|
+
|
|
6
12
|
@use 'base';
|
|
7
13
|
|
|
8
|
-
// ===== Dark
|
|
14
|
+
// ===== Dark theme colors =====
|
|
9
15
|
$pl-comment: #9198a1;
|
|
10
16
|
$pl-constant: #79c0ff;
|
|
11
17
|
$pl-entity: #d2a8ff;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
@charset "utf-8";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* @use '@subroh0508/marp-theme-canvas/scss/component/prettylights/dark';
|
|
9
|
-
*/
|
|
3
|
+
// Prettylights - GitHub-style syntax highlighting themes
|
|
4
|
+
//
|
|
5
|
+
// @use '@subroh0508/marp-theme-canvas/scss/component/prettylights';
|
|
6
|
+
// @use '@subroh0508/marp-theme-canvas/scss/component/prettylights/light';
|
|
7
|
+
// @use '@subroh0508/marp-theme-canvas/scss/component/prettylights/dark';
|
|
10
8
|
|
|
11
9
|
@forward 'base' as base-*;
|
|
12
10
|
@forward 'light' as light-*;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
// ===== _light.scss =====
|
|
2
|
-
//
|
|
3
|
-
// github-markdown-css v5.8.1
|
|
2
|
+
// Syntax highlighting (Light theme) color definitions
|
|
3
|
+
// Modified from github-markdown-css v5.8.1
|
|
4
4
|
// https://github.com/sindresorhus/github-markdown-css/blob/v5.8.1/github-markdown-light.css
|
|
5
5
|
|
|
6
|
+
/*!
|
|
7
|
+
* MIT License
|
|
8
|
+
* Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
9
|
+
* https://github.com/sindresorhus/github-markdown-css/blob/main/license
|
|
10
|
+
*/
|
|
11
|
+
|
|
6
12
|
@use 'base';
|
|
7
13
|
|
|
8
|
-
// ===== Light
|
|
14
|
+
// ===== Light theme colors =====
|
|
9
15
|
$pl-comment: #59636e;
|
|
10
16
|
$pl-constant: #0550ae;
|
|
11
17
|
$pl-entity: #6639ba;
|
package/scss/page/CLAUDE.md
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
# page
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Page styles specialized for specific purposes (switched via Marp class directive)
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## File Structure
|
|
6
6
|
|
|
7
7
|
```scss
|
|
8
|
-
// =====
|
|
9
|
-
//
|
|
8
|
+
// ===== _filename.scss =====
|
|
9
|
+
// Style description (what kind of page it's used for)
|
|
10
10
|
//
|
|
11
|
-
//
|
|
11
|
+
// Usage: <!-- _class: classname -->
|
|
12
12
|
|
|
13
|
-
@mixin configure(
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
@mixin configure($arg1, $arg2, $arg3: default) {
|
|
14
|
+
&.classname {
|
|
15
|
+
// Explain the role of selectors with comments
|
|
16
|
+
selector {
|
|
17
|
+
property: value;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Scope Settings
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Always wrap with `&.classname` (depends on parent `section`)
|
|
26
26
|
|
|
27
27
|
```scss
|
|
28
28
|
&.toc {
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Comment Conventions
|
|
37
37
|
|
|
38
|
-
-
|
|
39
|
-
-
|
|
38
|
+
- **Selector role**: Explain the purpose with a comment before each selector
|
|
39
|
+
- **Layout information**: Comment on visual arrangement such as flex positioning
|
|
40
40
|
|
|
41
41
|
```scss
|
|
42
|
-
// h1:
|
|
43
|
-
// section
|
|
42
|
+
// h1: Title text
|
|
43
|
+
// Occupies top 80% of section, vertically centered, left-aligned
|
|
44
44
|
h1 {
|
|
45
45
|
font-size: $font-size-title;
|
|
46
46
|
flex: 0 0 80%;
|
|
@@ -48,9 +48,9 @@ h1 {
|
|
|
48
48
|
}
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## Usage from Theme
|
|
52
52
|
|
|
53
|
-
`white-canvas.scss
|
|
53
|
+
Use within the `section` block in theme files like `white-canvas.scss`:
|
|
54
54
|
|
|
55
55
|
```scss
|
|
56
56
|
@use './page/title' as page-title;
|
|
@@ -63,12 +63,12 @@ section {
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
##
|
|
66
|
+
## Existing Page Styles
|
|
67
67
|
|
|
68
|
-
|
|
|
69
|
-
|
|
70
|
-
| `_title.scss` | `title` |
|
|
71
|
-
| `_toc.scss` | `toc` |
|
|
72
|
-
| `_agenda.scss` | `agenda` |
|
|
73
|
-
| `_section.scss` | `section` |
|
|
74
|
-
| `_display.scss` | `display` |
|
|
68
|
+
| File | Class Name | Purpose |
|
|
69
|
+
|------|------------|---------|
|
|
70
|
+
| `_title.scss` | `title` | Title page (h1 + metadata) |
|
|
71
|
+
| `_toc.scss` | `toc` | Table of contents page |
|
|
72
|
+
| `_agenda.scss` | `agenda` | Agenda (topics to cover today, etc.) |
|
|
73
|
+
| `_section.scss` | `section` | Section divider page |
|
|
74
|
+
| `_display.scss` | `display` | Large display (text or image) |
|
package/scss/page/_agenda.scss
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// ===== _agenda.scss =====
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// Styles for agenda page
|
|
3
|
+
// For pages presenting "Topics for today", "Learning Outcomes", etc. at the beginning
|
|
4
4
|
//
|
|
5
|
-
//
|
|
5
|
+
// Usage: <!-- _class: agenda -->
|
|
6
6
|
|
|
7
7
|
@mixin configure(
|
|
8
8
|
$font-size-heading,
|
|
@@ -13,21 +13,21 @@
|
|
|
13
13
|
$font-weight-body: normal
|
|
14
14
|
) {
|
|
15
15
|
&.agenda {
|
|
16
|
-
//
|
|
16
|
+
// List: Direct children
|
|
17
17
|
> ul,
|
|
18
18
|
> ol {
|
|
19
19
|
font-size: $font-size-heading;
|
|
20
20
|
font-weight: $font-weight-heading;
|
|
21
21
|
line-height: $line-height-heading;
|
|
22
22
|
|
|
23
|
-
//
|
|
23
|
+
// Nested lists (2nd level)
|
|
24
24
|
ul,
|
|
25
25
|
ol {
|
|
26
26
|
font-size: calc(#{$font-size-body} / #{$font-size-heading} * 1em);
|
|
27
27
|
font-weight: $font-weight-body;
|
|
28
28
|
line-height: $line-height-body;
|
|
29
29
|
|
|
30
|
-
//
|
|
30
|
+
// 3rd level and beyond maintain size
|
|
31
31
|
ul,
|
|
32
32
|
ol {
|
|
33
33
|
font-size: 1em;
|
package/scss/page/_display.scss
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ===== _display.scss =====
|
|
2
|
-
//
|
|
2
|
+
// Styles for pages displaying short text prominently or highlighting a single photo/diagram
|
|
3
3
|
//
|
|
4
|
-
//
|
|
4
|
+
// Usage: <!-- _class: display -->
|
|
5
5
|
|
|
6
6
|
@mixin configure(
|
|
7
7
|
$font-size,
|
|
@@ -9,32 +9,32 @@
|
|
|
9
9
|
$font-weight-normal: normal
|
|
10
10
|
) {
|
|
11
11
|
&.display {
|
|
12
|
-
//
|
|
12
|
+
// Center horizontally and vertically
|
|
13
13
|
justify-content: center;
|
|
14
14
|
align-items: center;
|
|
15
15
|
|
|
16
|
-
// p:
|
|
16
|
+
// p: Main text (centered horizontally and vertically)
|
|
17
17
|
p {
|
|
18
18
|
margin: 0;
|
|
19
19
|
text-align: center;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
// img,
|
|
22
|
+
// When img or iframe doesn't exist, display p tag prominently
|
|
23
23
|
&:not(:has(img, iframe)) p {
|
|
24
24
|
font-size: $font-size;
|
|
25
25
|
font-weight: $font-weight-bold;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
// img, iframe:
|
|
29
|
-
// emoji
|
|
28
|
+
// img, iframe: Media elements (centered horizontally and vertically)
|
|
29
|
+
// Excludes emoji class
|
|
30
30
|
img:not(.emoji),
|
|
31
31
|
iframe {
|
|
32
32
|
display: block;
|
|
33
33
|
margin: 0 0;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
// p
|
|
37
|
-
// emoji
|
|
36
|
+
// When p tag exists, add margin below media elements
|
|
37
|
+
// Excludes emoji class
|
|
38
38
|
&:has(p) img:not(.emoji),
|
|
39
39
|
&:has(p) iframe {
|
|
40
40
|
margin: 0 0 1em;
|
package/scss/page/_index.scss
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
@charset "utf-8";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* @use '@subroh0508/marp-theme-canvas/scss/page/title';
|
|
8
|
-
*/
|
|
3
|
+
// Page Styles - Specialized page styles for specific purposes
|
|
4
|
+
//
|
|
5
|
+
// @use '@subroh0508/marp-theme-canvas/scss/page';
|
|
6
|
+
// @use '@subroh0508/marp-theme-canvas/scss/page/title';
|
|
9
7
|
|
|
10
8
|
@forward 'agenda' as agenda-*;
|
|
11
9
|
@forward 'display' as display-*;
|
package/scss/page/_section.scss
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// ===== _section.scss =====
|
|
2
|
-
//
|
|
2
|
+
// Styles for section divider page
|
|
3
3
|
//
|
|
4
|
-
//
|
|
4
|
+
// Usage: <!-- _class: section -->
|
|
5
5
|
|
|
6
6
|
@mixin configure($font-size, $font-weight: bold) {
|
|
7
7
|
&.section {
|
|
8
|
-
// p:
|
|
9
|
-
//
|
|
8
|
+
// p: Section title
|
|
9
|
+
// Vertically centered, left-aligned
|
|
10
10
|
p {
|
|
11
11
|
flex: 1;
|
|
12
12
|
display: flex;
|
package/scss/page/_title.scss
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// ===== _title.scss =====
|
|
2
|
-
//
|
|
2
|
+
// Styles for title page
|
|
3
3
|
//
|
|
4
|
-
//
|
|
4
|
+
// Usage: <!-- _class: title -->
|
|
5
5
|
|
|
6
6
|
@mixin configure($font-size-title, $color-metadata-text) {
|
|
7
7
|
&.title {
|
|
8
|
-
// h1:
|
|
9
|
-
// section
|
|
8
|
+
// h1: Title text
|
|
9
|
+
// Occupies 80% of section, vertically centered, left-aligned
|
|
10
10
|
h1 {
|
|
11
11
|
font-size: $font-size-title;
|
|
12
12
|
flex: 0 0 80%;
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
justify-content: center;
|
|
17
17
|
margin: 0;
|
|
18
18
|
|
|
19
|
-
// small:
|
|
19
|
+
// small: Subtitle
|
|
20
20
|
small {
|
|
21
21
|
margin-top: 0.5em;
|
|
22
22
|
font-size: 0.5em;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
// h1
|
|
26
|
+
// p after h1: Date, event name, author name
|
|
27
27
|
h1 + p {
|
|
28
28
|
flex: 1;
|
|
29
29
|
display: flex;
|
package/scss/page/_toc.scss
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// ===== _toc.scss =====
|
|
2
|
-
//
|
|
2
|
+
// Styles for table of contents page
|
|
3
3
|
//
|
|
4
|
-
//
|
|
4
|
+
// Usage: <!-- _class: toc -->
|
|
5
5
|
|
|
6
6
|
@mixin configure($font-size, $line-height) {
|
|
7
7
|
&.toc {
|
|
8
|
-
//
|
|
8
|
+
// List: Table of contents items (direct children only)
|
|
9
9
|
> ul,
|
|
10
10
|
> ol {
|
|
11
11
|
font-size: $font-size;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# theme
|
|
2
|
+
|
|
3
|
+
Theme modules (white-canvas and black-canvas, importable via @use)
|
|
4
|
+
|
|
5
|
+
## Required CSS Variables
|
|
6
|
+
|
|
7
|
+
The following CSS variables have no default values and must be defined when used.
|
|
8
|
+
|
|
9
|
+
| Variable | Description | Used in |
|
|
10
|
+
|----------|-------------|---------|
|
|
11
|
+
| `--color-primary` | Primary color | h2 text color |
|
|
12
|
+
| `--color-accent` | Accent color | mark tag background |
|
|
13
|
+
|
|
14
|
+
## CSS Variables Reference
|
|
15
|
+
|
|
16
|
+
### Colors (Basic)
|
|
17
|
+
|
|
18
|
+
| Variable | Description | Used in | white-canvas | black-canvas |
|
|
19
|
+
|----------|-------------|---------|--------------|--------------|
|
|
20
|
+
| `--color-black` | Black | - | `#000` | `#000` |
|
|
21
|
+
| `--color-white` | White | Slide background (white) | `#fff` | `#fff` |
|
|
22
|
+
| `--color-grey-lightest` | Grey (lightest) | Table header background (white) | `#cbd5e1` (slate-300) | `#f8fafc` (slate-50) |
|
|
23
|
+
| `--color-grey-lighter` | Grey (lighter) | - | `#94a3b8` (slate-400) | `#f1f5f9` (slate-100) |
|
|
24
|
+
| `--color-grey-light` | Grey (light) | Title metadata (white), page number/header/footer (black) | `#64748b` (slate-500) | `#e2e8f0` (slate-200) |
|
|
25
|
+
| `--color-grey-medium` | Grey (medium) | Page number/header/footer (white), blockquote text/mark, title metadata (black) | `#475569` (slate-600) | `#cbd5e1` (slate-300) |
|
|
26
|
+
| `--color-grey-dark` | Grey (dark) | Table header background (black) | `#334155` (slate-700) | `#1e293b` (slate-800) |
|
|
27
|
+
| `--color-grey-darker` | Grey (darker) | - | `#1e293b` (slate-800) | `#0f172a` (slate-900) |
|
|
28
|
+
| `--color-grey-darkest` | Grey (darkest) | Body text (white), slide background (black) | `#0f172a` (slate-900) | `#020617` (slate-950) |
|
|
29
|
+
| `--color-link` | Link color | a tag | `#2563eb` (blue-600) | `#60a5fa` (blue-400) |
|
|
30
|
+
|
|
31
|
+
### Colors (Component)
|
|
32
|
+
|
|
33
|
+
| Variable | Description | white-canvas | black-canvas |
|
|
34
|
+
|----------|-------------|--------------|--------------|
|
|
35
|
+
| `--color-blockquote-background` | Blockquote background | `color-mix(grey-light 10%)` | `color-mix(grey-light 15%)` |
|
|
36
|
+
| `--color-blockquote-mark` | Blockquote mark color | `grey-medium` | `grey-medium` |
|
|
37
|
+
| `--color-blockquote-text` | Blockquote text color | `grey-medium` | `grey-medium` |
|
|
38
|
+
| `--color-table-row-bg` | Table row background | `white` | `grey-darkest` |
|
|
39
|
+
| `--color-table-row-bg-header` | Table header background | `grey-lightest` | `grey-dark` |
|
|
40
|
+
| `--color-table-border` | Table border color | `grey-light` | `grey-medium` |
|
|
41
|
+
| `--color-code-bg` | Code block background | `color-mix(grey-light 10%)` | `color-mix(grey-light 15%)` |
|
|
42
|
+
| `--color-code-fg` | Code block text color | `grey-darkest` | `grey-lightest` |
|
|
43
|
+
|
|
44
|
+
### Fonts
|
|
45
|
+
|
|
46
|
+
| Variable | Description | Used in | Default |
|
|
47
|
+
|----------|-------------|---------|---------|
|
|
48
|
+
| `--font-family-base` | Base font | Entire slide | `'Noto Sans JP', sans-serif` |
|
|
49
|
+
| `--font-family-mono` | Monospace font | Code blocks | `ui-monospace, SFMono-Regular, ...` |
|
|
50
|
+
| `--font-size-base` | Base font size | Entire slide | `40px` |
|
|
51
|
+
| `--font-size-display` | Display size | title page, display page | `2.5em` |
|
|
52
|
+
| `--font-size-title` | Title size | h1, section page | `2em` |
|
|
53
|
+
| `--font-size-heading` | Heading size | h2, toc page, agenda page heading | `1.3em` |
|
|
54
|
+
| `--font-size-medium` | Medium size | h3 | `1.15em` |
|
|
55
|
+
| `--font-size-body` | Body size | agenda page body, blockquote | `1em` |
|
|
56
|
+
| `--font-size-small` | Small size | - | `0.85em` |
|
|
57
|
+
| `--font-size-note` | Note size | Page number, header, footer | `0.7em` |
|
|
58
|
+
| `--font-weight-normal` | Normal weight | h5, h6, agenda page body | `400` |
|
|
59
|
+
| `--font-weight-bold` | Bold weight | h1-h4, agenda page heading, display page emphasis | `700` |
|
|
60
|
+
| `--font-weight-black` | Black weight | - | `900` |
|
|
61
|
+
|
|
62
|
+
### Line Heights
|
|
63
|
+
|
|
64
|
+
| Variable | Description | Used in | Default |
|
|
65
|
+
|----------|-------------|---------|---------|
|
|
66
|
+
| `--line-height-tight` | Tight line height | Headings, blockquote | `1.2` |
|
|
67
|
+
| `--line-height-normal` | Normal line height | Entire slide, agenda page body | `1.45` |
|
|
68
|
+
| `--line-height-loose` | Loose line height | toc page, agenda page heading | `2` |
|
|
69
|
+
|
|
70
|
+
### Layout
|
|
71
|
+
|
|
72
|
+
| Variable | Description | Default |
|
|
73
|
+
|----------|-------------|---------|
|
|
74
|
+
| `--slide-padding-x` | Slide horizontal padding | `80px` |
|
|
75
|
+
| `--slide-padding-y` | Slide vertical padding | `80px` |
|
|
76
|
+
| `--header-footer-margin-x` | Header/footer/page number horizontal margin | `80px` |
|
|
77
|
+
| `--header-footer-margin-y` | Header/footer/page number vertical margin | `20px` |
|
|
78
|
+
| `--border-radius` | Border radius (blockquote) | `8px` |
|
|
79
|
+
|
|
80
|
+
## Available Mixins
|
|
81
|
+
|
|
82
|
+
| Mixin | Description |
|
|
83
|
+
|-------|-------------|
|
|
84
|
+
| `apply()` | Apply CSS variables and styles at once. Can add/override CSS variables via `@content` |
|
|
85
|
+
| `variables()` | Output CSS variables only. Can add/override CSS variables via `@content` |
|
|
86
|
+
| `styles()` | Output styles only (excludes CSS variables) |
|
|
87
|
+
|
|
88
|
+
## Usage Example
|
|
89
|
+
|
|
90
|
+
```scss
|
|
91
|
+
/*!
|
|
92
|
+
* @theme my-custom-theme
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
@use '@subroh0508/marp-theme-canvas/scss/white-canvas' as white-canvas;
|
|
96
|
+
|
|
97
|
+
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
|
|
98
|
+
|
|
99
|
+
@include white-canvas.apply() {
|
|
100
|
+
--color-primary: #e11d48;
|
|
101
|
+
--color-accent: #fde047;
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## File Structure
|
|
106
|
+
|
|
107
|
+
| File | Description |
|
|
108
|
+
|------|-------------|
|
|
109
|
+
| `_white-canvas.scss` | Light theme module |
|
|
110
|
+
| `_black-canvas.scss` | Dark theme module |
|