accessible-marp-decks 2.0.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.
@@ -0,0 +1,237 @@
1
+ /* @theme high-contrast */
2
+ /*!
3
+ * @auto-scaling true
4
+ * @size 16:9 1280px 720px
5
+ * @size 4:3 960px 720px
6
+ */
7
+
8
+ /*
9
+ * A high-contrast theme: pure black/white with a strong accent, automatic
10
+ * light and dark modes. Built from themes/_template.css — only the colours
11
+ * differ. Everything is sized in `em` so it scales with the window.
12
+ */
13
+
14
+ /* --- COLOURS -------------------------------------------------------------- */
15
+ :root {
16
+ /* Light mode (default) */
17
+ --bg: #ffffff;
18
+ --fg: #000000;
19
+ --muted: #262626;
20
+ --accent: #0033cc;
21
+ --border: #000000;
22
+ --code-bg: #f0f0f0;
23
+ --chip-bg: #e0e0e0;
24
+ --focus-bg: #ffdd00;
25
+ --focus-fg: #000000;
26
+
27
+ /* Syntax highlighting (a11y-light) */
28
+ --hl-bg: #ffffff;
29
+ --hl-fg: #1a1a1a;
30
+ --hl-comment: #4a4a4a;
31
+ --hl-red: #b30000;
32
+ --hl-orange: #8a4b00;
33
+ --hl-green: #006600;
34
+ --hl-cyan: #005f80;
35
+ --hl-purple: #5a1a80;
36
+ --hl-attr: #8a4b00;
37
+ }
38
+
39
+ @media (prefers-color-scheme: dark) {
40
+ :root {
41
+ /* Dark mode */
42
+ --bg: #000000;
43
+ --fg: #ffffff;
44
+ --muted: #e6e6e6;
45
+ --accent: #66aaff;
46
+ --border: #ffffff;
47
+ --code-bg: #141414;
48
+ --chip-bg: #333333;
49
+ --focus-bg: #ffff00;
50
+ --focus-fg: #000000;
51
+
52
+ /* Syntax highlighting (a11y-dark) */
53
+ --hl-bg: #000000;
54
+ --hl-fg: #f8f8f2;
55
+ --hl-comment: #d4d0ab;
56
+ --hl-red: #ffa07a;
57
+ --hl-orange: #f5ab35;
58
+ --hl-green: #abe338;
59
+ --hl-cyan: #00e0e0;
60
+ --hl-purple: #dcc6e0;
61
+ --hl-attr: #ffd700;
62
+ }
63
+ }
64
+
65
+ /* --- TYPE ----------------------------------------------------------------- */
66
+ section {
67
+ --font-body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
68
+ --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
69
+ }
70
+
71
+ /* ===========================================================================
72
+ * Layout helpers — plain grid/flex, tailored to slides. Usually leave as-is.
73
+ * ======================================================================== */
74
+ :root {
75
+ --space-xs: 0.5em;
76
+ --space-s: 1em;
77
+ --space-m: 1.5em;
78
+ --space-l: 2.25em;
79
+ }
80
+
81
+ .box { padding: var(--space-m); }
82
+ .box-s { padding: var(--space-s); }
83
+ .box-l { padding: var(--space-l); }
84
+
85
+ .stack { display: flex; flex-direction: column; gap: var(--space-s); }
86
+ .stack-s { gap: var(--space-xs); }
87
+ .stack-l { gap: var(--space-l); }
88
+
89
+ .cluster { display: flex; flex-wrap: wrap; gap: var(--space-s); align-items: center; }
90
+
91
+ .columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-m); align-items: start; }
92
+ .columns-3 { grid-template-columns: repeat(3, 1fr); }
93
+
94
+ .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14em, 1fr)); gap: var(--space-m); }
95
+
96
+ .center { max-inline-size: 40ch; margin-inline: auto; }
97
+
98
+ .frame { display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; }
99
+ .frame-square { aspect-ratio: 1; }
100
+ .frame > img, .frame > video { inline-size: 100%; block-size: 100%; object-fit: cover; }
101
+
102
+ .cover { display: flex; flex-direction: column; justify-content: space-between; block-size: 100%; }
103
+
104
+ .sidebar { display: grid; grid-template-columns: auto 1fr; gap: var(--space-m); align-items: start; }
105
+
106
+ .overlay-centre { position: absolute; inset: 0; display: grid; place-items: center; }
107
+
108
+ /* Slide-level variants — apply to a whole slide with `<!-- _class: … -->`.
109
+ Written as section.X because Marpit scopes bare classes as descendants. */
110
+ section.cover { justify-content: space-between; }
111
+ section.center { align-items: center; text-align: center; }
112
+ section.stack { justify-content: flex-start; gap: var(--space-s); }
113
+
114
+ /* ===========================================================================
115
+ * Element styles.
116
+ * ======================================================================== */
117
+
118
+ /* Slide */
119
+ section {
120
+ font-family: var(--font-body);
121
+ line-height: 1.3;
122
+ font-size: 29px;
123
+ color: var(--fg);
124
+ background: var(--bg);
125
+ align-items: stretch;
126
+ display: flex;
127
+ flex-flow: column nowrap;
128
+ justify-content: center;
129
+ padding: 2.7em;
130
+ background-size: cover; }
131
+ section > *:last-child { margin-bottom: 0; }
132
+ section > *:first-child, section header:first-child + * { margin-top: 0; }
133
+
134
+ /* Headings and links */
135
+ h1, h2, h3, h4, h5, h6 { color: var(--accent); }
136
+ h1, h2, p, ul li, ol li { max-width: 66%; }
137
+ h1 { font-size: 1.75em; }
138
+ h2 { font-size: 1.6em; margin-bottom: 1em; }
139
+ h3 { font-size: 1.1em; margin-top: 0; }
140
+ h4 { font-size: 1.05em; }
141
+ h5 { font-size: 1em; }
142
+ h6 { font-size: 0.9em; }
143
+ p { margin-top: 0; }
144
+
145
+ a, a:visited { color: var(--accent); }
146
+ a:focus {
147
+ outline: none;
148
+ padding: 0.1em;
149
+ text-decoration: none;
150
+ background-color: var(--focus-bg);
151
+ color: var(--focus-fg);
152
+ border-bottom: 0.17em solid var(--focus-fg); }
153
+
154
+ hr { height: 0; padding-top: 0.25em; }
155
+
156
+ /* Lists */
157
+ ul, ol { margin-top: 0; margin-bottom: 1.5em; }
158
+ ul li, ol li { padding-left: 1em; line-height: 1.3; margin-bottom: .5em; }
159
+
160
+ /* Quotes */
161
+ blockquote { margin: 0; padding-left: 1em; border-left: 0.35em solid var(--border); }
162
+ blockquote p { font-style: italic; }
163
+
164
+ /* Code */
165
+ pre { margin: 0 0 1em; overflow: visible; }
166
+ pre code {
167
+ display: block;
168
+ overflow-y: visible;
169
+ overflow-x: auto;
170
+ padding: .75em;
171
+ border: 1px solid var(--border);
172
+ font-size: .9em; }
173
+ pre code:focus {
174
+ outline: 0.14em solid var(--fg);
175
+ outline-offset: 0.14em;
176
+ box-shadow: 0 0 0 0.17em var(--focus-bg); }
177
+ code {
178
+ font-family: var(--font-mono);
179
+ font-size: 1em;
180
+ background-color: var(--code-bg);
181
+ padding: 0 .2em;
182
+ border-radius: 0.17em; }
183
+ kbd {
184
+ color: var(--fg);
185
+ font-size: .9em;
186
+ border: 1px solid var(--border);
187
+ border-radius: 0.14em;
188
+ padding: 0 .3em; }
189
+
190
+ /* Media */
191
+ img, figure { margin-top: 0; max-width: 100%; }
192
+ figure { margin: 0; }
193
+ img { border: 1px solid var(--border); }
194
+
195
+ /* Table */
196
+ table { border-collapse: collapse; }
197
+ th, td { border: 1px solid var(--border); padding: .4em .6em; text-align: left; }
198
+
199
+ /* Header and footer */
200
+ header, footer {
201
+ font-size: .75em;
202
+ color: var(--muted);
203
+ margin: 0;
204
+ position: absolute;
205
+ left: 0;
206
+ right: 0;
207
+ padding-inline: 1em;
208
+ min-height: 1em; }
209
+ header { top: 0.7em; }
210
+ footer { bottom: 0.7em; }
211
+ footer a, footer a:visited { color: var(--muted); }
212
+
213
+ .pagination {
214
+ color: var(--muted);
215
+ font-size: 1.1em;
216
+ position: absolute;
217
+ padding: 0;
218
+ right: 1em;
219
+ top: 0; }
220
+ .pagination span:last-of-type {
221
+ border-radius: 50%;
222
+ padding: 0.2em 0.4em;
223
+ background-color: var(--chip-bg); }
224
+
225
+ /* Syntax highlighting — a11y-light / a11y-dark by @ericwbailey */
226
+ pre code.hljs { display: block; overflow-x: auto; padding: 1em; }
227
+ code.hljs { padding: 3px 5px; }
228
+ .hljs { background: var(--hl-bg); color: var(--hl-fg); }
229
+ .hljs-comment, .hljs-quote { color: var(--hl-comment); }
230
+ .hljs-deletion, .hljs-name, .hljs-regexp, .hljs-selector-class, .hljs-selector-id, .hljs-tag, .hljs-template-variable, .hljs-variable { color: var(--hl-red); }
231
+ .hljs-built_in, .hljs-link, .hljs-literal, .hljs-meta, .hljs-number, .hljs-params, .hljs-type { color: var(--hl-orange); }
232
+ .hljs-attribute { color: var(--hl-attr); }
233
+ .hljs-addition, .hljs-bullet, .hljs-string, .hljs-symbol { color: var(--hl-green); }
234
+ .hljs-section, .hljs-title { color: var(--hl-cyan); }
235
+ .hljs-keyword, .hljs-selector-tag { color: var(--hl-purple); }
236
+ .hljs-emphasis { font-style: italic; }
237
+ .hljs-strong { font-weight: 700; }