decktile 0.2.0__py3-none-any.whl
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.
- decktile/__init__.py +5 -0
- decktile/__main__.py +3 -0
- decktile/assets/lucide/VENDORED.md +21 -0
- decktile/assets/lucide/lucide.css +2193 -0
- decktile/assets/lucide/lucide.ttf +3 -0
- decktile/cli.py +269 -0
- decktile/parser/__init__.py +0 -0
- decktile/parser/ast.py +191 -0
- decktile/parser/markdown.py +289 -0
- decktile/plugins/cards.py +25 -0
- decktile/plugins/directives.py +56 -0
- decktile/plugins/fenced.py +228 -0
- decktile/plugins/layouts.py +69 -0
- decktile/plugins/lucide.py +65 -0
- decktile/plugins/lucide_font.py +26 -0
- decktile/render/__init__.py +0 -0
- decktile/render/html.py +287 -0
- decktile/render/ir.py +536 -0
- decktile/render/odf/__init__.py +4 -0
- decktile/render/odf/geometry.py +510 -0
- decktile/render/odf/shapes.py +719 -0
- decktile/render/odf/styles.py +828 -0
- decktile/render/odp.py +380 -0
- decktile/render/pdf.py +17 -0
- decktile/render/pdg.py +72 -0
- decktile/render/seaborn.py +155 -0
- decktile/render/templates/base.css +741 -0
- decktile/render/templates/decktile.js +371 -0
- decktile/render/templates/shell.html +106 -0
- decktile/seaborn_styles/__init__.py +5 -0
- decktile/seaborn_styles/ossummit_europe.py +30 -0
- decktile/theme/__init__.py +0 -0
- decktile/theme/colors.py +53 -0
- decktile/theme/loader.py +22 -0
- decktile/theme/parser.py +264 -0
- decktile/themes/default.css +146 -0
- decktile/themes/kcd_vietnam.css +159 -0
- decktile/themes/kubecon_china.css +213 -0
- decktile/themes/kubecon_japan.css +156 -0
- decktile/themes/ossummit_europe.css +196 -0
- decktile/themes/ossummit_korea.css +196 -0
- decktile-0.2.0.dist-info/METADATA +625 -0
- decktile-0.2.0.dist-info/RECORD +46 -0
- decktile-0.2.0.dist-info/WHEEL +4 -0
- decktile-0.2.0.dist-info/entry_points.txt +6 -0
- decktile-0.2.0.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/* decktile KubeCon China 2026 theme */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--color-background: #ffffff;
|
|
5
|
+
--color-background-stripe: #EEF6EA;
|
|
6
|
+
--color-foreground: #1A3315;
|
|
7
|
+
--color-dimmed: #5F8556;
|
|
8
|
+
--color-accent: #127A02;
|
|
9
|
+
--color-accent-bg: rgba(18, 122, 2, 0.12);
|
|
10
|
+
--color-border: #C9DFC2;
|
|
11
|
+
--color-card-bg: #ffffff;
|
|
12
|
+
--bg-image: url("assets/brand/kubecon_china/background.png");
|
|
13
|
+
--bg-overlay: rgba(255, 255, 255, 0.95);
|
|
14
|
+
--watermark: url("assets/brand/kubecon_china/watermark.svg");
|
|
15
|
+
--logo-dark: url("assets/brand/dynamia-logo-white.png");
|
|
16
|
+
--tag-green-bg: #E9F4E2;
|
|
17
|
+
--tag-cyan-bg: #E2F0EA;
|
|
18
|
+
--tag-yellow-bg: #F6F0DC;
|
|
19
|
+
--tag-red-bg: #FBEBE3;
|
|
20
|
+
--tag-default-bg: #F2F8F0;
|
|
21
|
+
--tag-green-border: #127A02;
|
|
22
|
+
--tag-cyan-border: #2F9E86;
|
|
23
|
+
--tag-yellow-border: #C9A86A;
|
|
24
|
+
--tag-red-border: #127A02;
|
|
25
|
+
--tag-default-border: #BEDAB4;
|
|
26
|
+
|
|
27
|
+
--color-accent-primary: #127A02;
|
|
28
|
+
--color-accent-secondary: #2FD78B;
|
|
29
|
+
--color-accent-contrast: #22301F;
|
|
30
|
+
--list-style: "\25B8 ";
|
|
31
|
+
--card-border: 1px solid #B9D6AE;
|
|
32
|
+
--title-h1-size: 2.5em;
|
|
33
|
+
--title-subtitle-size: 1.2em;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
body {
|
|
37
|
+
background: #127A02;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-theme="dark"] {
|
|
41
|
+
--color-background: #0E4A52;
|
|
42
|
+
--color-background-stripe: #10555E;
|
|
43
|
+
--color-foreground: #EAF6EC;
|
|
44
|
+
--color-dimmed: #A3C8B6;
|
|
45
|
+
--color-accent: #2FD78B;
|
|
46
|
+
--color-accent-bg: rgba(47, 215, 139, 0.16);
|
|
47
|
+
--color-border: #1E666E;
|
|
48
|
+
--color-card-bg: #12454B;
|
|
49
|
+
--bg-overlay: rgba(14, 74, 82, 0.92);
|
|
50
|
+
--tag-green-bg: #13351F;
|
|
51
|
+
--tag-cyan-bg: #12342E;
|
|
52
|
+
--tag-yellow-bg: #34311A;
|
|
53
|
+
--tag-red-bg: #3B2318;
|
|
54
|
+
--tag-default-bg: #12454B;
|
|
55
|
+
--tag-green-border: #2FD78B;
|
|
56
|
+
--tag-cyan-border: #3FBFA4;
|
|
57
|
+
--tag-yellow-border: #D9C36A;
|
|
58
|
+
--tag-red-border: #2FD78B;
|
|
59
|
+
--tag-default-border: #1E666E;
|
|
60
|
+
|
|
61
|
+
--color-accent-primary: #2FD78B;
|
|
62
|
+
--color-accent-secondary: #B8F5D4;
|
|
63
|
+
--color-accent-contrast: #EAF6EC;
|
|
64
|
+
--card-border: 1px solid #1E666E;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
section {
|
|
68
|
+
background: linear-gradient(var(--bg-overlay), var(--bg-overlay)), var(--bg-image) left top / cover no-repeat;
|
|
69
|
+
color: var(--color-foreground);
|
|
70
|
+
font-family: Roboto, Arial, "Helvetica Neue", "Noto Sans CJK SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Heading text uses the brand green on light slides (darkened for contrast),
|
|
74
|
+
inherits foreground on dark slides. */
|
|
75
|
+
h1, h2, h3, h4, h5, h6 {
|
|
76
|
+
color: var(--color-accent-primary);
|
|
77
|
+
font-family: Roboto, Arial, "Helvetica Neue", "Noto Sans CJK SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
78
|
+
}
|
|
79
|
+
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
|
|
80
|
+
[data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6 {
|
|
81
|
+
color: #ffffff;
|
|
82
|
+
}
|
|
83
|
+
h1 { font-size: 2.5em; font-weight: 700; }
|
|
84
|
+
h2 { font-size: 1.8em; padding-top: 0; }
|
|
85
|
+
h3 { font-size: 1.15em; }
|
|
86
|
+
h4 { font-size: 0.85em; }
|
|
87
|
+
h3::after {
|
|
88
|
+
display: block;
|
|
89
|
+
content: "";
|
|
90
|
+
width: 100%;
|
|
91
|
+
height: 0;
|
|
92
|
+
border-bottom: 2px solid var(--color-accent-secondary);
|
|
93
|
+
margin-top: 0.3em;
|
|
94
|
+
opacity: 0.45;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
li { font-size: 0.9em; padding-left: 0.3em; }
|
|
98
|
+
ul li::marker { color: var(--color-accent-primary); font-weight: bold; }
|
|
99
|
+
|
|
100
|
+
blockquote {
|
|
101
|
+
border-left-color: var(--color-accent-primary);
|
|
102
|
+
color: var(--color-dimmed);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
th { background: var(--color-accent-bg); color: var(--color-foreground); font-weight: 700; }
|
|
106
|
+
th, td { border: 1px solid var(--color-border); }
|
|
107
|
+
tr:nth-child(even) { background: var(--color-background-stripe); }
|
|
108
|
+
|
|
109
|
+
a { color: var(--color-accent-primary); }
|
|
110
|
+
|
|
111
|
+
.card {
|
|
112
|
+
background: var(--color-card-bg);
|
|
113
|
+
border: var(--card-border);
|
|
114
|
+
}
|
|
115
|
+
.card p { font-size: 0.9em; }
|
|
116
|
+
|
|
117
|
+
.quote { border-left-color: var(--color-accent-primary); color: var(--color-accent-primary); }
|
|
118
|
+
|
|
119
|
+
.kicker { color: var(--color-accent-primary); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.75em; }
|
|
120
|
+
.speaker { color: var(--color-foreground); }
|
|
121
|
+
.speaker .role { color: var(--color-dimmed); }
|
|
122
|
+
|
|
123
|
+
/* White KubeCon wordmark shows only on dark surfaces (title + dark variant).
|
|
124
|
+
Hidden on light content slides where it would be invisible. */
|
|
125
|
+
section::after {
|
|
126
|
+
display: none;
|
|
127
|
+
}
|
|
128
|
+
.layout-title::after {
|
|
129
|
+
display: block;
|
|
130
|
+
background: var(--watermark) right center / contain no-repeat;
|
|
131
|
+
opacity: 0.95;
|
|
132
|
+
right: 4%;
|
|
133
|
+
bottom: 3.4em;
|
|
134
|
+
width: 34%;
|
|
135
|
+
height: 3.8em;
|
|
136
|
+
left: auto;
|
|
137
|
+
}
|
|
138
|
+
[data-theme="dark"] section::after {
|
|
139
|
+
display: block;
|
|
140
|
+
background: var(--watermark) right center / contain no-repeat;
|
|
141
|
+
opacity: 0.9;
|
|
142
|
+
right: 4%;
|
|
143
|
+
bottom: 3.4em;
|
|
144
|
+
width: 30%;
|
|
145
|
+
height: 3.2em;
|
|
146
|
+
left: auto;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Dark title slide: deep green-teal gradient over the scene, white text. */
|
|
150
|
+
.layout-title {
|
|
151
|
+
background: linear-gradient(90deg, rgba(6, 32, 18, 0.9) 0%, rgba(6, 32, 18, 0.85) 46%, rgba(18, 61, 20, 0.35) 74%, rgba(12, 74, 82, 0.05) 96%), var(--bg-image) left top / cover no-repeat;
|
|
152
|
+
color: #ffffff;
|
|
153
|
+
}
|
|
154
|
+
.layout-title h1,
|
|
155
|
+
.layout-title h2,
|
|
156
|
+
.layout-title h3,
|
|
157
|
+
.layout-title h4,
|
|
158
|
+
.layout-title h5,
|
|
159
|
+
.layout-title h6 { color: #ffffff; }
|
|
160
|
+
.layout-title .kicker { color: #2FD78B; }
|
|
161
|
+
.layout-title .subtitle { color: #B8F5D4; }
|
|
162
|
+
.layout-title .speaker { color: rgba(255, 255, 255, 0.85); }
|
|
163
|
+
.layout-title .speaker .role { color: rgba(255, 255, 255, 0.6); }
|
|
164
|
+
.layout-title .speaker-links a { color: rgba(255, 255, 255, 0.8); }
|
|
165
|
+
.layout-title .speaker-links svg { stroke: rgba(255, 255, 255, 0.8); }
|
|
166
|
+
|
|
167
|
+
.layout-title { --logo: var(--logo-dark); }
|
|
168
|
+
|
|
169
|
+
/* Footer: solid #127A02 bar on light content slides, transparent on dark. */
|
|
170
|
+
footer {
|
|
171
|
+
--footer-bg: #127A02;
|
|
172
|
+
--footer-color: #ffffff;
|
|
173
|
+
left: 0;
|
|
174
|
+
right: 0;
|
|
175
|
+
bottom: 0;
|
|
176
|
+
padding: 1em var(--section-padding-h);
|
|
177
|
+
}
|
|
178
|
+
.layout-title footer,
|
|
179
|
+
section[data-theme="dark"] footer {
|
|
180
|
+
--footer-bg: transparent;
|
|
181
|
+
--footer-color: #EAF6EC;
|
|
182
|
+
left: var(--section-padding-h);
|
|
183
|
+
right: auto;
|
|
184
|
+
bottom: 1em;
|
|
185
|
+
padding: 0;
|
|
186
|
+
}
|
|
187
|
+
.slide-num {
|
|
188
|
+
bottom: 0;
|
|
189
|
+
right: var(--section-padding-h);
|
|
190
|
+
padding: 1em 0;
|
|
191
|
+
color: #ffffff;
|
|
192
|
+
}
|
|
193
|
+
.layout-title .slide-num,
|
|
194
|
+
section[data-theme="dark"] .slide-num {
|
|
195
|
+
bottom: 1em;
|
|
196
|
+
padding: 0;
|
|
197
|
+
color: #EAF6EC;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.subtitle { color: var(--color-dimmed); }
|
|
201
|
+
h2 + .subtitle { font-size: 0.85em; }
|
|
202
|
+
.tiny { font-size: 0.7em; color: var(--color-dimmed); }
|
|
203
|
+
.muted { color: var(--color-dimmed); }
|
|
204
|
+
|
|
205
|
+
.accent-primary { color: var(--color-accent-primary); fill: var(--color-accent-primary); stroke: var(--color-accent-primary); }
|
|
206
|
+
.accent-secondary { color: var(--color-accent-secondary); fill: var(--color-accent-secondary); stroke: var(--color-accent-secondary); }
|
|
207
|
+
.accent-contrast { color: var(--color-accent-contrast); fill: var(--color-accent-contrast); stroke: var(--color-accent-contrast); }
|
|
208
|
+
|
|
209
|
+
.tag-green { border-color: var(--tag-green-border); background: var(--tag-green-bg); }
|
|
210
|
+
.tag-cyan { border-color: var(--tag-cyan-border); background: var(--tag-cyan-bg); }
|
|
211
|
+
.tag-yellow { border-color: var(--tag-yellow-border); background: var(--tag-yellow-bg); }
|
|
212
|
+
.tag-red { border-color: var(--tag-red-border); background: var(--tag-red-bg); }
|
|
213
|
+
.tag-quote { border-left: 0.25em solid var(--color-accent-primary); font-style: italic; background: none; }
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/* decktile KubeCon CloudNativeCon Japan 2026 theme */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--color-background: #ffffff;
|
|
5
|
+
--color-background-stripe: #e8e8f0;
|
|
6
|
+
--color-foreground: #2a2a5a;
|
|
7
|
+
--color-dimmed: #6a7a99;
|
|
8
|
+
--color-accent: #3939D8;
|
|
9
|
+
--color-accent-bg: rgba(57, 57, 216, 0.12);
|
|
10
|
+
--color-border: #c0c4d6;
|
|
11
|
+
--color-card-bg: #f5f6fa;
|
|
12
|
+
--bg-image: url("assets/brand/kubecon_japan/background.png");
|
|
13
|
+
--bg-overlay: rgba(255,255,255,0.96);
|
|
14
|
+
--watermark: url("assets/brand/kubecon_japan/cncf_logo.svg");
|
|
15
|
+
--logo-dark: url("assets/brand/dynamia-logo-white.png");
|
|
16
|
+
--tag-green-bg: #e8f5e9;
|
|
17
|
+
--tag-cyan-bg: #e3f0ff;
|
|
18
|
+
--tag-yellow-bg: #fff9e6;
|
|
19
|
+
--tag-red-bg: #ffe8eb;
|
|
20
|
+
--tag-default-bg: #f5f5f5;
|
|
21
|
+
--tag-green-border: #2e7d32;
|
|
22
|
+
--tag-cyan-border: #3939D8;
|
|
23
|
+
--tag-yellow-border: #f9a825;
|
|
24
|
+
--tag-red-border: #DB1E3D;
|
|
25
|
+
--tag-default-border: #ccc;
|
|
26
|
+
|
|
27
|
+
--color-accent-primary: #3939D8;
|
|
28
|
+
--color-accent-secondary: #DB1E3D;
|
|
29
|
+
--color-accent-contrast: #1D1D6B;
|
|
30
|
+
--list-style: "\25B8 ";
|
|
31
|
+
--title-h1-size: 2.5em;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
body {
|
|
35
|
+
background: #1D1D6B;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
[data-theme="dark"] {
|
|
39
|
+
--color-background: #06062D;
|
|
40
|
+
--color-background-stripe: #0d0d3d;
|
|
41
|
+
--color-foreground: #e0e0f0;
|
|
42
|
+
--color-dimmed: #8899bb;
|
|
43
|
+
--color-accent: #5b5bf0;
|
|
44
|
+
--color-accent-bg: rgba(91, 91, 240, 0.15);
|
|
45
|
+
--color-border: #1a1a44;
|
|
46
|
+
--color-card-bg: #0d0d3d;
|
|
47
|
+
--bg-overlay: rgba(6, 6, 45, 0.90);
|
|
48
|
+
--tag-green-bg: #1a2e1a;
|
|
49
|
+
--tag-cyan-bg: #1a2a3a;
|
|
50
|
+
--tag-yellow-bg: #2e2a1a;
|
|
51
|
+
--tag-red-bg: #2e1a1a;
|
|
52
|
+
--tag-default-bg: #1a1a2e;
|
|
53
|
+
--tag-green-border: #2d8a3e;
|
|
54
|
+
--tag-cyan-border: #3939D8;
|
|
55
|
+
--tag-yellow-border: #8a7a2d;
|
|
56
|
+
--tag-red-border: #DB1E3D;
|
|
57
|
+
--tag-default-border: #2a2a4a;
|
|
58
|
+
|
|
59
|
+
--color-accent-primary: #5b5bf0;
|
|
60
|
+
--color-accent-secondary: #ff4d6a;
|
|
61
|
+
--color-accent-contrast: #8899cc;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
section {
|
|
65
|
+
background: linear-gradient(var(--bg-overlay), var(--bg-overlay)), var(--bg-image) left top / cover no-repeat;
|
|
66
|
+
color: var(--color-foreground);
|
|
67
|
+
font-family: Roboto, Arial, "Helvetica Neue", sans-serif;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Title slide hides watermark */
|
|
71
|
+
.layout-title section::after {
|
|
72
|
+
background-image: none;
|
|
73
|
+
}
|
|
74
|
+
section::after {
|
|
75
|
+
opacity: 0.9;
|
|
76
|
+
}
|
|
77
|
+
.layout-title {
|
|
78
|
+
background: linear-gradient(135deg, rgba(29,29,107,0.85) 0%, rgba(57,57,216,0.85) 60%, rgba(10,10,58,0.85) 100%), var(--bg-image) left top / cover no-repeat;
|
|
79
|
+
color: #ffffff;
|
|
80
|
+
}
|
|
81
|
+
.layout-title h1,
|
|
82
|
+
.layout-title h2,
|
|
83
|
+
.layout-title h3,
|
|
84
|
+
.layout-title h4,
|
|
85
|
+
.layout-title h5,
|
|
86
|
+
.layout-title h6 { color: #ffffff; }
|
|
87
|
+
.layout-title .kicker { color: rgba(255,255,255,0.8); }
|
|
88
|
+
.layout-title .subtitle { color: rgba(255,255,255,0.7); }
|
|
89
|
+
.layout-title .speaker { color: rgba(255,255,255,0.8); }
|
|
90
|
+
.layout-title .speaker .role { color: rgba(255,255,255,0.5); }
|
|
91
|
+
.layout-title .speaker-links a { color: rgba(255,255,255,0.75); }
|
|
92
|
+
.layout-title .speaker-links svg { stroke: rgba(255,255,255,0.75); }
|
|
93
|
+
|
|
94
|
+
.layout-title { --logo: var(--logo-dark); }
|
|
95
|
+
|
|
96
|
+
h1, h2, h3, h4, h5, h6 {
|
|
97
|
+
color: var(--color-foreground);
|
|
98
|
+
font-family: Roboto, Arial, "Helvetica Neue", sans-serif;
|
|
99
|
+
}
|
|
100
|
+
h1 { font-size: 2.5em; font-weight: 700; }
|
|
101
|
+
h2 { font-size: 1.8em; padding-top: 0; margin-bottom: 0.15em; }
|
|
102
|
+
h3 { font-size: 1.15em; }
|
|
103
|
+
h4 { font-size: 0.85em; }
|
|
104
|
+
h3::after {
|
|
105
|
+
display: block;
|
|
106
|
+
content: "";
|
|
107
|
+
width: 100%;
|
|
108
|
+
height: 0;
|
|
109
|
+
border-bottom: 2px solid var(--color-accent-primary);
|
|
110
|
+
margin-top: 0.3em;
|
|
111
|
+
opacity: 0.4;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
li { font-size: 0.9em; padding-left: 0.3em; }
|
|
115
|
+
ul li::marker { color: var(--color-accent-primary); font-weight: bold; }
|
|
116
|
+
|
|
117
|
+
blockquote {
|
|
118
|
+
border-left-color: var(--color-accent-primary);
|
|
119
|
+
color: var(--color-dimmed);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
th { background: var(--color-accent-bg); color: var(--color-foreground); font-weight: 700; }
|
|
123
|
+
th, td { border: 1px solid var(--color-border); }
|
|
124
|
+
tr:nth-child(even) { background: var(--color-background-stripe); }
|
|
125
|
+
|
|
126
|
+
a { color: var(--color-accent-primary); }
|
|
127
|
+
|
|
128
|
+
.card {
|
|
129
|
+
background: var(--color-card-bg);
|
|
130
|
+
border: var(--card-border);
|
|
131
|
+
}
|
|
132
|
+
.card p { font-size: 0.9em; }
|
|
133
|
+
|
|
134
|
+
.quote { border-left-color: var(--color-accent-primary); color: var(--color-accent-primary); }
|
|
135
|
+
|
|
136
|
+
.kicker { color: var(--color-accent-primary); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.75em; }
|
|
137
|
+
.speaker { color: var(--color-foreground); }
|
|
138
|
+
.speaker .role { color: var(--color-dimmed); }
|
|
139
|
+
|
|
140
|
+
footer { color: var(--color-dimmed); }
|
|
141
|
+
.slide-num { color: var(--color-dimmed); }
|
|
142
|
+
|
|
143
|
+
.subtitle { color: var(--color-dimmed); }
|
|
144
|
+
h2 + .subtitle { font-size: 0.85em; }
|
|
145
|
+
.tiny { font-size: 0.7em; color: var(--color-dimmed); }
|
|
146
|
+
.muted { color: var(--color-dimmed); }
|
|
147
|
+
|
|
148
|
+
.accent-primary { color: var(--color-accent-primary); fill: var(--color-accent-primary); stroke: var(--color-accent-primary); }
|
|
149
|
+
.accent-secondary { color: var(--color-accent-secondary); fill: var(--color-accent-secondary); stroke: var(--color-accent-secondary); }
|
|
150
|
+
.accent-contrast { color: var(--color-accent-contrast); fill: var(--color-accent-contrast); stroke: var(--color-accent-contrast); }
|
|
151
|
+
|
|
152
|
+
.tag-green { border-color: var(--tag-green-border); background: var(--tag-green-bg); }
|
|
153
|
+
.tag-cyan { border-color: var(--tag-cyan-border); background: var(--tag-cyan-bg); }
|
|
154
|
+
.tag-yellow { border-color: var(--tag-yellow-border); background: var(--tag-yellow-bg); }
|
|
155
|
+
.tag-red { border-color: var(--tag-red-border); background: var(--tag-red-bg); }
|
|
156
|
+
.tag-quote { border-left: 0.25em solid var(--color-accent-primary); font-style: italic; background: none; }
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* decktile Open Source Summit Europe theme */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--color-background: #ffffff;
|
|
5
|
+
--color-background-stripe: #EDF5F4;
|
|
6
|
+
--color-foreground: #003841;
|
|
7
|
+
--color-dimmed: #4F6F73;
|
|
8
|
+
--color-accent: #E05845;
|
|
9
|
+
--color-accent-bg: rgba(224, 88, 69, 0.12);
|
|
10
|
+
--color-border: #C5D8D7;
|
|
11
|
+
--color-card-bg: #ffffff;
|
|
12
|
+
--bg-image: url("assets/brand/ossummit_europe/backgroundfooter.svg");
|
|
13
|
+
--watermark: url("assets/brand/ossummit_europe/watermark.svg");
|
|
14
|
+
--logo-dark: url("assets/brand/dynamia-logo-white.png");
|
|
15
|
+
--tag-green-bg: #E6F6F5;
|
|
16
|
+
--tag-cyan-bg: #E4EFF0;
|
|
17
|
+
--tag-yellow-bg: #FCEFEC;
|
|
18
|
+
--tag-red-bg: #FBE6E3;
|
|
19
|
+
--tag-default-bg: #F3F7F7;
|
|
20
|
+
--tag-green-border: #0DA89D;
|
|
21
|
+
--tag-cyan-border: #0A5560;
|
|
22
|
+
--tag-yellow-border: #E58570;
|
|
23
|
+
--tag-red-border: #E05845;
|
|
24
|
+
--tag-default-border: #C5D8D7;
|
|
25
|
+
|
|
26
|
+
--color-accent-primary: #E05845;
|
|
27
|
+
--color-accent-secondary: #0DA89D;
|
|
28
|
+
--color-accent-contrast: #003841;
|
|
29
|
+
--list-style: "\25B8 ";
|
|
30
|
+
--card-border: 1px solid #B6CFCD;
|
|
31
|
+
--title-h1-size: 2.5em;
|
|
32
|
+
--title-subtitle-size: 1.2em;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body {
|
|
36
|
+
background: #003841;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-theme="dark"] {
|
|
40
|
+
--color-background: #003841;
|
|
41
|
+
--color-background-stripe: #0A4A52;
|
|
42
|
+
--color-foreground: #EAF4F3;
|
|
43
|
+
--color-dimmed: #9DBDBA;
|
|
44
|
+
--color-accent: #E58570;
|
|
45
|
+
--color-accent-bg: rgba(229, 133, 112, 0.16);
|
|
46
|
+
--color-border: #0A5560;
|
|
47
|
+
--color-card-bg: #0A4A52;
|
|
48
|
+
--tag-green-bg: #0E3F3E;
|
|
49
|
+
--tag-cyan-bg: #0A4650;
|
|
50
|
+
--tag-yellow-bg: #3C3330;
|
|
51
|
+
--tag-red-bg: #3D2723;
|
|
52
|
+
--tag-default-bg: #0A4A52;
|
|
53
|
+
--tag-green-border: #0DA89D;
|
|
54
|
+
--tag-cyan-border: #6FB3B0;
|
|
55
|
+
--tag-yellow-border: #E58570;
|
|
56
|
+
--tag-red-border: #E05845;
|
|
57
|
+
--tag-default-border: #0A5560;
|
|
58
|
+
|
|
59
|
+
--color-accent-primary: #E58570;
|
|
60
|
+
--color-accent-secondary: #0DA89D;
|
|
61
|
+
--color-accent-contrast: #EAF4F3;
|
|
62
|
+
--card-border: 1px solid #0A5560;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Light slides: white with the floral line along the bottom edge */
|
|
66
|
+
section {
|
|
67
|
+
background: var(--bg-image) right bottom / auto 6.5em no-repeat, var(--color-background);
|
|
68
|
+
color: var(--color-foreground);
|
|
69
|
+
font-family: Roboto, Arial, "Helvetica Neue", sans-serif;
|
|
70
|
+
}
|
|
71
|
+
section[data-theme="dark"] {
|
|
72
|
+
background: var(--color-background);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Watermark bottom-left, above the floral line */
|
|
76
|
+
section::after {
|
|
77
|
+
left: var(--section-padding-h);
|
|
78
|
+
right: auto;
|
|
79
|
+
bottom: 1em;
|
|
80
|
+
width: 8em;
|
|
81
|
+
height: 1.3em;
|
|
82
|
+
background-position: left bottom;
|
|
83
|
+
opacity: 0.9;
|
|
84
|
+
}
|
|
85
|
+
.layout-title::after,
|
|
86
|
+
section[data-theme="dark"]::after {
|
|
87
|
+
background-image: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Title and section dividers: coral gradient, top to bottom (also with @variant dark) */
|
|
91
|
+
section.layout-title,
|
|
92
|
+
section.layout-title[data-theme="dark"] {
|
|
93
|
+
background: var(--bg-image) right bottom / auto 6.5em no-repeat, linear-gradient(180deg, #E05845 0%, #E58570 100%);
|
|
94
|
+
color: #003841;
|
|
95
|
+
}
|
|
96
|
+
.layout-title h1,
|
|
97
|
+
.layout-title h2,
|
|
98
|
+
.layout-title h3,
|
|
99
|
+
.layout-title h4,
|
|
100
|
+
.layout-title h5,
|
|
101
|
+
.layout-title h6 { color: #003841; }
|
|
102
|
+
.layout-title .kicker { color: #003841; }
|
|
103
|
+
.layout-title .subtitle { color: #003841; }
|
|
104
|
+
.layout-title .speaker { color: #003841; }
|
|
105
|
+
.layout-title .speaker .role { color: rgba(0,56,65,0.8); }
|
|
106
|
+
.layout-title .speaker-links a { color: #003841; }
|
|
107
|
+
.layout-title .speaker-links svg { stroke: #003841; }
|
|
108
|
+
|
|
109
|
+
.layout-title { --logo: var(--logo-dark); }
|
|
110
|
+
|
|
111
|
+
h1, h2, h3, h4, h5, h6 {
|
|
112
|
+
color: var(--color-foreground);
|
|
113
|
+
font-family: Roboto, Arial, "Helvetica Neue", sans-serif;
|
|
114
|
+
}
|
|
115
|
+
h1 { font-size: 2.5em; font-weight: 700; }
|
|
116
|
+
h2 { font-size: 1.8em; padding-top: 0; }
|
|
117
|
+
h3 { font-size: 1.15em; }
|
|
118
|
+
h4 { font-size: 0.85em; }
|
|
119
|
+
h3::after {
|
|
120
|
+
display: block;
|
|
121
|
+
content: "";
|
|
122
|
+
width: 100%;
|
|
123
|
+
height: 0;
|
|
124
|
+
border-bottom: 2px solid var(--color-accent-primary);
|
|
125
|
+
margin-top: 0.3em;
|
|
126
|
+
opacity: 0.4;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
li { font-size: 0.9em; padding-left: 0.3em; }
|
|
130
|
+
ul li::marker { color: var(--color-accent-primary); font-weight: bold; }
|
|
131
|
+
|
|
132
|
+
blockquote {
|
|
133
|
+
border-left-color: var(--color-accent-primary);
|
|
134
|
+
color: var(--color-dimmed);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
th { background: var(--color-accent-bg); color: var(--color-foreground); font-weight: 700; }
|
|
138
|
+
th, td { border: 1px solid var(--color-border); }
|
|
139
|
+
tr:nth-child(even) { background: var(--color-background-stripe); }
|
|
140
|
+
|
|
141
|
+
a { color: var(--color-accent-primary); }
|
|
142
|
+
|
|
143
|
+
.card {
|
|
144
|
+
background: var(--color-card-bg);
|
|
145
|
+
border: var(--card-border);
|
|
146
|
+
}
|
|
147
|
+
.card p { font-size: 0.9em; }
|
|
148
|
+
|
|
149
|
+
.quote { border-left-color: var(--color-accent-primary); color: var(--color-accent-primary); }
|
|
150
|
+
|
|
151
|
+
.kicker { color: var(--color-accent-primary); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.75em; }
|
|
152
|
+
|
|
153
|
+
.speaker { color: var(--color-foreground); }
|
|
154
|
+
.speaker .role { color: var(--color-dimmed); }
|
|
155
|
+
|
|
156
|
+
/* Footer text and page number sit above the floral line */
|
|
157
|
+
footer {
|
|
158
|
+
--footer-bg: transparent;
|
|
159
|
+
--footer-color: var(--color-dimmed);
|
|
160
|
+
left: calc(var(--section-padding-h) + 8.5em / 0.6);
|
|
161
|
+
bottom: calc(1.1em / 0.6);
|
|
162
|
+
}
|
|
163
|
+
.slide-num {
|
|
164
|
+
bottom: calc(1.1em / 0.6);
|
|
165
|
+
right: calc(6.5em / 0.6);
|
|
166
|
+
color: var(--color-dimmed);
|
|
167
|
+
}
|
|
168
|
+
.layout-title footer,
|
|
169
|
+
section[data-theme="dark"] footer {
|
|
170
|
+
--footer-color: rgba(255,255,255,0.85);
|
|
171
|
+
left: var(--section-padding-h);
|
|
172
|
+
bottom: calc(1.1em / 0.6);
|
|
173
|
+
}
|
|
174
|
+
.layout-title .slide-num,
|
|
175
|
+
section[data-theme="dark"] .slide-num {
|
|
176
|
+
bottom: calc(1.1em / 0.6);
|
|
177
|
+
right: var(--section-padding-h);
|
|
178
|
+
color: rgba(255,255,255,0.85);
|
|
179
|
+
}
|
|
180
|
+
section.layout-title footer { --footer-color: #003841; }
|
|
181
|
+
section.layout-title .slide-num { color: #003841; right: calc(6.5em / 0.6); }
|
|
182
|
+
|
|
183
|
+
.subtitle { color: var(--color-dimmed); }
|
|
184
|
+
h2 + .subtitle { font-size: 0.85em; }
|
|
185
|
+
.tiny { font-size: 0.7em; color: var(--color-dimmed); }
|
|
186
|
+
.muted { color: var(--color-dimmed); }
|
|
187
|
+
|
|
188
|
+
.accent-primary { color: var(--color-accent-primary); fill: var(--color-accent-primary); stroke: var(--color-accent-primary); }
|
|
189
|
+
.accent-secondary { color: var(--color-accent-secondary); fill: var(--color-accent-secondary); stroke: var(--color-accent-secondary); }
|
|
190
|
+
.accent-contrast { color: var(--color-accent-contrast); fill: var(--color-accent-contrast); stroke: var(--color-accent-contrast); }
|
|
191
|
+
|
|
192
|
+
.tag-green { border-color: var(--tag-green-border); background: var(--tag-green-bg); }
|
|
193
|
+
.tag-cyan { border-color: var(--tag-cyan-border); background: var(--tag-cyan-bg); }
|
|
194
|
+
.tag-yellow { border-color: var(--tag-yellow-border); background: var(--tag-yellow-bg); }
|
|
195
|
+
.tag-red { border-color: var(--tag-red-border); background: var(--tag-red-bg); }
|
|
196
|
+
.tag-quote { border-left: 0.25em solid var(--color-accent-primary); font-style: italic; background: none; }
|