slidev-theme-leilei-custom1 0.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.
- package/.vscode/extensions.json +3 -0
- package/README.md +50 -0
- package/components/.gitkeep +0 -0
- package/example.md +80 -0
- package/layouts/content-1.vue +7 -0
- package/layouts/content-2.vue +7 -0
- package/layouts/cover.vue +7 -0
- package/layouts/end.vue +7 -0
- package/layouts/fact.vue +7 -0
- package/layouts/image-side.vue +19 -0
- package/layouts/intro.vue +7 -0
- package/layouts/section-1.vue +7 -0
- package/layouts/section-2.vue +7 -0
- package/layouts/section.vue +7 -0
- package/package.json +34 -0
- package/setup/shiki.ts +11 -0
- package/styles/index.ts +3 -0
- package/styles/layout.css +244 -0
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# slidev-theme-leilei-custom1
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/slidev-theme-leilei-custom1)
|
|
4
|
+
|
|
5
|
+
A (...) theme for [Slidev](https://github.com/slidevjs/slidev).
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Learn more about how to write a theme:
|
|
9
|
+
https://sli.dev/guide/write-theme.html
|
|
10
|
+
--->
|
|
11
|
+
|
|
12
|
+
<!--
|
|
13
|
+
run `npm run dev` to check out the slides for more details of how to start writing a theme
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
Put some screenshots here to demonstrate your theme
|
|
18
|
+
|
|
19
|
+
Live demo: [...]
|
|
20
|
+
-->
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Add the following frontmatter to your `slides.md`. Start Slidev then it will prompt you to install the theme automatically.
|
|
25
|
+
|
|
26
|
+
<pre><code>---
|
|
27
|
+
theme: <b>leilei-custom1</b>
|
|
28
|
+
---</code></pre>
|
|
29
|
+
|
|
30
|
+
Learn more about [how to use a theme](https://sli.dev/guide/theme-addon#use-theme).
|
|
31
|
+
|
|
32
|
+
## Layouts
|
|
33
|
+
|
|
34
|
+
This theme provides the following layouts:
|
|
35
|
+
|
|
36
|
+
> TODO:
|
|
37
|
+
|
|
38
|
+
## Components
|
|
39
|
+
|
|
40
|
+
This theme provides the following components:
|
|
41
|
+
|
|
42
|
+
> TODO:
|
|
43
|
+
|
|
44
|
+
## Contributing
|
|
45
|
+
|
|
46
|
+
- `npm install`
|
|
47
|
+
- `npm run dev` to start theme preview of `example.md`
|
|
48
|
+
- Edit the `example.md` and style to see the changes
|
|
49
|
+
- `npm run export` to generate the preview PDF
|
|
50
|
+
- `npm run screenshot` to generate the preview PNG
|
|
File without changes
|
package/example.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
theme: ./
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Slidev Theme Starter
|
|
6
|
+
|
|
7
|
+
Presentation slides for developers
|
|
8
|
+
|
|
9
|
+
<div class="pt-12">
|
|
10
|
+
<span @click="$slidev.nav.next" class="px-2 py-1 rounded cursor-pointer" flex="~ justify-center items-center gap-2" hover="bg-white bg-opacity-10">
|
|
11
|
+
Press Space for next page <div class="i-carbon:arrow-right inline-block"/>
|
|
12
|
+
</span>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# What is Slidev?
|
|
18
|
+
|
|
19
|
+
Slidev is a slide maker and presentation tool designed for developers. It includes the following features:
|
|
20
|
+
|
|
21
|
+
- ๐ **Text-based** - focus on your content with Markdown, then style it later
|
|
22
|
+
- ๐จ **Themable** - themes can be shared and reused as npm packages
|
|
23
|
+
- ๐งโ๐ป **Developer Friendly** - code highlighting, live coding with autocompletion
|
|
24
|
+
- ๐คน **Interactive** - embed Vue components to enhance your expressions
|
|
25
|
+
- ๐ฅ **Recording** - built-in recording and camera view
|
|
26
|
+
- ๐ค **Portable** - export to PDF, PPTX, PNGs, or even a hostable SPA
|
|
27
|
+
- ๐ **Hackable** - virtually anything that's possible on a webpage is possible in Slidev
|
|
28
|
+
|
|
29
|
+
<br>
|
|
30
|
+
<br>
|
|
31
|
+
|
|
32
|
+
Read more about [Why Slidev?](https://sli.dev/guide/why)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# Navigation
|
|
37
|
+
|
|
38
|
+
Hover on the bottom-left corner to see the navigation's controls panel
|
|
39
|
+
|
|
40
|
+
## Keyboard Shortcuts
|
|
41
|
+
|
|
42
|
+
| | |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| <kbd>space</kbd> / <kbd>tab</kbd> / <kbd>right</kbd> | next animation or slide |
|
|
45
|
+
| <kbd>left</kbd> / <kbd>shift</kbd><kbd>space</kbd> | previous animation or slide |
|
|
46
|
+
| <kbd>up</kbd> | previous slide |
|
|
47
|
+
| <kbd>down</kbd> | next slide |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
layout: image-right
|
|
51
|
+
image: https://cover.sli.dev
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Code
|
|
55
|
+
|
|
56
|
+
Use code snippets and get the highlighting directly!
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
interface User {
|
|
60
|
+
id: number
|
|
61
|
+
firstName: string
|
|
62
|
+
lastName: string
|
|
63
|
+
role: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function updateUser(id: number, update: Partial<User>) {
|
|
67
|
+
const user = getUser(id)
|
|
68
|
+
const newUser = { ...user, ...update }
|
|
69
|
+
saveUser(id, newUser)
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
layout: center
|
|
75
|
+
class: "text-center"
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
# Learn More
|
|
79
|
+
|
|
80
|
+
[Documentation](https://sli.dev) / [GitHub Repo](https://github.com/slidevjs/slidev)
|
package/layouts/end.vue
ADDED
package/layouts/fact.vue
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import {defineProps} from 'vue'
|
|
3
|
+
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
image: {
|
|
6
|
+
type: String,
|
|
7
|
+
}
|
|
8
|
+
})
|
|
9
|
+
</script>
|
|
10
|
+
<template>
|
|
11
|
+
<div class="slidev-layout image">
|
|
12
|
+
<div class="image-contaier">
|
|
13
|
+
<img class="image-item" :src="props.image">
|
|
14
|
+
</div>
|
|
15
|
+
<div class="pl-40 my-auto w-full block">
|
|
16
|
+
<slot/>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</template>
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "slidev-theme-leilei-custom1",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"slidev-theme",
|
|
7
|
+
"slidev"
|
|
8
|
+
],
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=18.0.0"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "slidev build example.md",
|
|
14
|
+
"dev": "slidev example.md --open",
|
|
15
|
+
"export": "slidev export example.md",
|
|
16
|
+
"screenshot": "slidev export example.md --format png"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@slidev/types": "^52.11.2"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@slidev/cli": "^52.11.2"
|
|
23
|
+
},
|
|
24
|
+
"//": "Learn more: https://sli.dev/guide/write-theme.html",
|
|
25
|
+
"slidev": {
|
|
26
|
+
"colorSchema": "both",
|
|
27
|
+
"defaults": {
|
|
28
|
+
"fonts": {
|
|
29
|
+
"sans": "Nunito Sans",
|
|
30
|
+
"mono": "Fira Code"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
package/setup/shiki.ts
ADDED
package/styles/index.ts
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
.slidev-layout {
|
|
2
|
+
|
|
3
|
+
@apply h-full grid select-none;
|
|
4
|
+
|
|
5
|
+
@apply px-14 py-10 text-[1.1rem];
|
|
6
|
+
|
|
7
|
+
pre, code {
|
|
8
|
+
@apply select-text;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
h1 {
|
|
12
|
+
@apply text-6xl mb-4 -ml-[0.05em] font-bold leading-20;
|
|
13
|
+
font-size: 50px;
|
|
14
|
+
line-height: 80%;
|
|
15
|
+
letter-spacing: 0.01em;
|
|
16
|
+
color:orange
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
h1 + p {
|
|
20
|
+
@apply opacity-40 -mt-4 text-2xl;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
h5 {
|
|
24
|
+
@apply text-3xl;
|
|
25
|
+
font-style: normal;
|
|
26
|
+
font-size: 24px;
|
|
27
|
+
line-height: 56px;
|
|
28
|
+
letter-spacing: -0.02em;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
h3 {
|
|
32
|
+
@apply text-sm pt-2 uppercase tracking-widest font-500 -ml-[0.05em];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
h3:not(.opacity-100) {
|
|
36
|
+
@apply opacity-40;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
p {
|
|
40
|
+
@apply my-4 leading-6;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
h1 + p {
|
|
44
|
+
@apply -mt-2 opacity-50 mb-4;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
p + h2, ul + h2, table + h2 {
|
|
48
|
+
@apply mt-10;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
ul {
|
|
52
|
+
list-style: square;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
li {
|
|
56
|
+
@apply ml-1.1em pl-0.2em leading-1.8em;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
blockquote {
|
|
60
|
+
@apply text-sm px-2 py-1 bg-$prism-background border-primary border-left rounded;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
blockquote > * {
|
|
64
|
+
@apply my-0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
table {
|
|
68
|
+
@apply w-full;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
tr {
|
|
72
|
+
@apply border-b border-gray-400 border-opacity-20;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
th {
|
|
76
|
+
@apply text-left font-400;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
a {
|
|
80
|
+
@apply border-current border-b border-dashed hover:(text-primary border-solid);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
td, th {
|
|
84
|
+
@apply p-2 py-3;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
b, strong {
|
|
88
|
+
@apply font-600;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
kbd {
|
|
92
|
+
@apply border border-gray-400 border-b-2 border-opacity-20 rounded;
|
|
93
|
+
@apply bg-gray-400 bg-opacity-5 py-0.5 px-1 text-sm font-mono;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.slidev-layout.image {
|
|
99
|
+
background-image: url(../backgrounds/image-1.svg);
|
|
100
|
+
background-repeat: no-repeat;
|
|
101
|
+
background-position: left bottom;
|
|
102
|
+
background-size: contain;
|
|
103
|
+
|
|
104
|
+
.block {
|
|
105
|
+
max-width: 55%;
|
|
106
|
+
position: absolute;
|
|
107
|
+
height: auto;
|
|
108
|
+
display: flex;
|
|
109
|
+
flex-direction: column;
|
|
110
|
+
right: 60px;
|
|
111
|
+
bottom: 60px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
img {
|
|
115
|
+
object-fit: cover;
|
|
116
|
+
width: 100%;
|
|
117
|
+
height: 100%;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.image-contaier {
|
|
121
|
+
width: 45%;
|
|
122
|
+
height: 100%;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
.slidev-layout.section-1 {
|
|
127
|
+
background-image: url(../backgrounds/section-1.svg);
|
|
128
|
+
background-repeat: no-repeat;
|
|
129
|
+
background-position: center center;
|
|
130
|
+
background-size: cover;
|
|
131
|
+
|
|
132
|
+
h1 {
|
|
133
|
+
font-size: 56px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.block {
|
|
137
|
+
max-width: 600px;
|
|
138
|
+
margin: auto auto;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
.slidev-layout.end {
|
|
143
|
+
background-image: url(../backgrounds/end.svg);
|
|
144
|
+
background-repeat: no-repeat;
|
|
145
|
+
background-position: center center;
|
|
146
|
+
background-size: cover;
|
|
147
|
+
|
|
148
|
+
.block {
|
|
149
|
+
max-width: 400px;
|
|
150
|
+
margin: auto 200px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
}
|
|
154
|
+
.slidev-layout.section-2 {
|
|
155
|
+
background-image: url(../backgrounds/section-2.svg);
|
|
156
|
+
background-repeat: no-repeat;
|
|
157
|
+
background-position: center center;
|
|
158
|
+
background-size: cover;
|
|
159
|
+
|
|
160
|
+
h1 {
|
|
161
|
+
font-size: 56px;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.block {
|
|
165
|
+
max-width: 600px;
|
|
166
|
+
margin: 50px auto;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
}
|
|
170
|
+
.slidev-layout.content-1 {
|
|
171
|
+
background-image: url(../backgrounds/content-1.svg);
|
|
172
|
+
background-repeat: no-repeat;
|
|
173
|
+
background-position: left bottom;
|
|
174
|
+
background-size: contain;
|
|
175
|
+
|
|
176
|
+
h1 {
|
|
177
|
+
font-size: 56px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.block {
|
|
181
|
+
max-width: 827px;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
.slidev-layout.content-2 {
|
|
186
|
+
background-image: url(../backgrounds/content-2.svg);
|
|
187
|
+
background-repeat: no-repeat;
|
|
188
|
+
background-position: left bottom;
|
|
189
|
+
background-size: contain;
|
|
190
|
+
|
|
191
|
+
h1 {
|
|
192
|
+
font-size: 56px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.block {
|
|
196
|
+
max-width: 827px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
}
|
|
200
|
+
.slidev-layout.cover {
|
|
201
|
+
background-image: url(../backgrounds/cover.svg);
|
|
202
|
+
background-repeat: no-repeat;
|
|
203
|
+
background-position: center center;
|
|
204
|
+
background-size: cover;
|
|
205
|
+
|
|
206
|
+
.block {
|
|
207
|
+
max-width: 60%;
|
|
208
|
+
height: 100%;
|
|
209
|
+
margin: 0 auto;
|
|
210
|
+
display: flex;
|
|
211
|
+
flex-direction: column;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.date {
|
|
215
|
+
color: rgb(221, 221, 221);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.date {
|
|
219
|
+
background: #393A34;
|
|
220
|
+
border-radius: 44px;
|
|
221
|
+
font-size: 24px;
|
|
222
|
+
padding: 1px 32px;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.logo {
|
|
226
|
+
width: 33px;
|
|
227
|
+
height: 33px;
|
|
228
|
+
background: #393A34;
|
|
229
|
+
border-radius: 69px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.company {
|
|
233
|
+
font-size: 28px;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.company-block {
|
|
237
|
+
display: flex;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.red{
|
|
243
|
+
color:rgb(253, 104, 104)
|
|
244
|
+
}
|