slidev-theme-meetup 1.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/.eslintrc.js +14 -0
- package/.gitattributes +5 -0
- package/.releaserc +43 -0
- package/CHANGELOG.md +8 -0
- package/LICENSE +427 -0
- package/README.md +125 -0
- package/components/CornerCurves.vue +13 -0
- package/components/LayoutFooter.vue +47 -0
- package/components/LayoutHeader.vue +3 -0
- package/components/assets/curve-large.svg +3 -0
- package/components/assets/curve-small.svg +3 -0
- package/example.md +89 -0
- package/layouts/center.vue +9 -0
- package/layouts/cover.vue +9 -0
- package/layouts/default.vue +66 -0
- package/layouts/intro.vue +9 -0
- package/layouts/presenter.vue +43 -0
- package/layouts/qrcode.vue +33 -0
- package/layouts/twocols.vue +36 -0
- package/package.json +62 -0
- package/public/images/tboerger.jpg +0 -0
- package/setup/windicss.ts +53 -0
- package/styles/code.css +76 -0
- package/styles/index.ts +4 -0
- package/styles/layout.css +178 -0
- package/vite.config.js +6 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="322" height="279" viewBox="0 0 322 279" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M92.5 38C73.3 18.8 22.8333 4.66666 3.32108e-06 0L0 278.5L322 278.5C316.833 269.167 298.4 248.5 266 240.5C225.5 230.5 187.5 214 176 202C164.5 190 144 158 137 123C130 88 116.5 62 92.5 38Z" fill="#859900" fill-opacity="0.3"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="317" height="83" viewBox="0 0 317 83" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M6.0946 82.9068C3.66097 83.1007 1.61977 83.082 1.65093e-09 82.9068L6.0946 82.9068C22.1913 81.6248 55.4565 71.0434 97.5 34.9068C158 -17.0932 234.5 -18.5932 317 82.9068L6.0946 82.9068Z" fill="#b58900"/>
|
|
3
|
+
</svg>
|
package/example.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
theme: ./
|
|
3
|
+
layout: intro
|
|
4
|
+
themeConfig:
|
|
5
|
+
title: Welcome to Slidev
|
|
6
|
+
twitter: tboerger
|
|
7
|
+
github: tboerger
|
|
8
|
+
---
|
|
9
|
+
# Welcome to Slidev
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
layout: presenter
|
|
13
|
+
photo: /images/tboerger.jpg
|
|
14
|
+
---
|
|
15
|
+
# Thomas Boerger
|
|
16
|
+
|
|
17
|
+
Cloud engineer @ cloudpunks GmbH
|
|
18
|
+
|
|
19
|
+
* Golang
|
|
20
|
+
* Containers
|
|
21
|
+
* Kubernetes
|
|
22
|
+
* Terraform
|
|
23
|
+
* Ansible
|
|
24
|
+
* Prometheus
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
layout: twocols
|
|
28
|
+
---
|
|
29
|
+
# Twocols Example
|
|
30
|
+
|
|
31
|
+
::left::
|
|
32
|
+
- This is the left column
|
|
33
|
+
- Sed diam voluptua
|
|
34
|
+
|
|
35
|
+
::right::
|
|
36
|
+
- This is the right column
|
|
37
|
+
- Lorem ipsum dolor sit amet
|
|
38
|
+
- Consetetur sadipscing elitr
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
layout: center
|
|
42
|
+
---
|
|
43
|
+
# This is a centered slide
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
const aspectRatioPlugin = plugin(({ addUtilities }) => {
|
|
47
|
+
const newUtilities = {
|
|
48
|
+
'.aspect-none': {
|
|
49
|
+
aspectRatio: 'none',
|
|
50
|
+
},
|
|
51
|
+
'.aspect-16-9': {
|
|
52
|
+
aspectRatio: '16/9',
|
|
53
|
+
},
|
|
54
|
+
'.aspect-4-3': {
|
|
55
|
+
aspectRatio: '4/3',
|
|
56
|
+
},
|
|
57
|
+
'.aspect-1-1': {
|
|
58
|
+
aspectRatio: '1/1',
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
addUtilities(newUtilities, ['responsive', 'hover'])
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
layout: cover
|
|
67
|
+
---
|
|
68
|
+
# This is a cover
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
layout: default
|
|
72
|
+
---
|
|
73
|
+
# What is Slidev?
|
|
74
|
+
|
|
75
|
+
Slidev is a slides maker and presenter designed for developers, consist of the following features
|
|
76
|
+
|
|
77
|
+
- ๐ **Text-based** - focus on the content with Markdown, and then style them later
|
|
78
|
+
- ๐จ **Themable** - theme can be shared and used with npm packages
|
|
79
|
+
- ๐งโ๐ป **Developer Friendly** - code highlighting, live coding with autocompletion
|
|
80
|
+
- ๐คน **Interactive** - embedding Vue components to enhance your expressions
|
|
81
|
+
- ๐ฅ **Recording** - built-in recording and camera view
|
|
82
|
+
- ๐ค **Portable** - export into PDF, PNGs, or even a hostable SPA
|
|
83
|
+
- ๐ **Hackable** - anything possible on a webpage
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
layout: qrcode
|
|
87
|
+
url: https://example.com
|
|
88
|
+
---
|
|
89
|
+
# Link to slides
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
class: {
|
|
4
|
+
type: String,
|
|
5
|
+
default: '',
|
|
6
|
+
},
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<div class="slidev-layout default col-grid">
|
|
12
|
+
<div
|
|
13
|
+
class="top"
|
|
14
|
+
:class="props.class"
|
|
15
|
+
>
|
|
16
|
+
<LayoutHeader class="absolute bottom-0 right-0 transform flip-x" />
|
|
17
|
+
<slot />
|
|
18
|
+
</div>
|
|
19
|
+
<div
|
|
20
|
+
class="left"
|
|
21
|
+
:class="props.class"
|
|
22
|
+
>
|
|
23
|
+
<slot name="left" />
|
|
24
|
+
</div>
|
|
25
|
+
<div
|
|
26
|
+
class="right"
|
|
27
|
+
:class="props.class"
|
|
28
|
+
>
|
|
29
|
+
<slot name="right" />
|
|
30
|
+
</div>
|
|
31
|
+
<div
|
|
32
|
+
class="bottom"
|
|
33
|
+
:class="props.class"
|
|
34
|
+
>
|
|
35
|
+
<slot name="bottom" />
|
|
36
|
+
<LayoutFooter />
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</template>
|
|
40
|
+
|
|
41
|
+
<style>
|
|
42
|
+
.col-grid {
|
|
43
|
+
display: grid;
|
|
44
|
+
grid-template-columns: 1fr 1fr;
|
|
45
|
+
grid-template-rows: min-content auto min-content;
|
|
46
|
+
grid-column-gap: 3rem;
|
|
47
|
+
grid-row-gap: 0;
|
|
48
|
+
height: 100%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.top {
|
|
52
|
+
grid-area: 1 / 1 / 2 / 3;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.left {
|
|
56
|
+
grid-area: 2 / 1 / 3 / 2;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.right {
|
|
60
|
+
grid-area: 2 / 2 / 3 / 3;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.bottom {
|
|
64
|
+
grid-area: 3 / 1 / 4 / 3;
|
|
65
|
+
}
|
|
66
|
+
</style>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from 'vue'
|
|
3
|
+
import { resolveAssetUrl } from '@slidev/client/layoutHelper'
|
|
4
|
+
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
photo: {
|
|
7
|
+
type: String,
|
|
8
|
+
default: '',
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
const photoSrc = computed(() => resolveAssetUrl(props.photo))
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<div class="slidev-layout presenter">
|
|
17
|
+
<LayoutHeader class="absolute bottom-0 right-0 transform flip-x" />
|
|
18
|
+
<div class="grid grid-cols-2 w-full h-full">
|
|
19
|
+
<div class="image-right">
|
|
20
|
+
<slot />
|
|
21
|
+
</div>
|
|
22
|
+
<div class="my-14 mr-14">
|
|
23
|
+
<img
|
|
24
|
+
v-if="photo"
|
|
25
|
+
:src="photoSrc"
|
|
26
|
+
class="
|
|
27
|
+
rounded-full
|
|
28
|
+
object-cover
|
|
29
|
+
object-top
|
|
30
|
+
h-80
|
|
31
|
+
w-80
|
|
32
|
+
border
|
|
33
|
+
border-8
|
|
34
|
+
border-secondary-400
|
|
35
|
+
z-10
|
|
36
|
+
float-right
|
|
37
|
+
"
|
|
38
|
+
>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<LayoutFooter />
|
|
42
|
+
</div>
|
|
43
|
+
</template>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed } from 'vue'
|
|
3
|
+
import QRious from 'qrious'
|
|
4
|
+
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
url: {
|
|
7
|
+
type: String,
|
|
8
|
+
default: '',
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
const qrcode = computed(() => {
|
|
13
|
+
return new QRious({
|
|
14
|
+
value: props.url,
|
|
15
|
+
size: 300
|
|
16
|
+
}).toDataURL()
|
|
17
|
+
})
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<div class="slidev-layout qrcode text-center">
|
|
22
|
+
<LayoutHeader class="absolute bottom-0 right-0 transform flip-x" />
|
|
23
|
+
<slot />
|
|
24
|
+
<div class="container mx-auto">
|
|
25
|
+
<img
|
|
26
|
+
:src="qrcode"
|
|
27
|
+
alt="QR Code"
|
|
28
|
+
class="w-m inline-block"
|
|
29
|
+
>
|
|
30
|
+
</div>
|
|
31
|
+
<LayoutFooter />
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
class: {
|
|
4
|
+
type: String,
|
|
5
|
+
default: '',
|
|
6
|
+
},
|
|
7
|
+
})
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<div class="slidev-layout default">
|
|
12
|
+
<LayoutHeader class="absolute bottom-0 right-0 transform flip-x" />
|
|
13
|
+
<slot />
|
|
14
|
+
<div class="flex mt-6 mb-3">
|
|
15
|
+
<div
|
|
16
|
+
class="w-1/2 mr-8"
|
|
17
|
+
:class="props.class"
|
|
18
|
+
>
|
|
19
|
+
<slot name="left" />
|
|
20
|
+
</div>
|
|
21
|
+
<div
|
|
22
|
+
class="w-1/2 ml-8"
|
|
23
|
+
:class="props.class"
|
|
24
|
+
>
|
|
25
|
+
<slot name="right" />
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div
|
|
29
|
+
class="bottom"
|
|
30
|
+
:class="props.class"
|
|
31
|
+
>
|
|
32
|
+
<slot name="bottom" />
|
|
33
|
+
<LayoutFooter />
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</template>
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "slidev-theme-meetup",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Slidev theme used for talks on meetups",
|
|
5
|
+
"homepage": "https://github.com/tboerger/slidev-theme-meetup#readme",
|
|
6
|
+
"license": "CC-BY-SA-4.0",
|
|
7
|
+
"author": "Thomas Boerger <thomas@boerger.ws>",
|
|
8
|
+
"repository": "https://github.com/tboerger/slidev-theme-meetup.git",
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/tboerger/slidev-theme-meetup/issues",
|
|
11
|
+
"email": "thomas@boerger.ws"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "slidev build example.md",
|
|
15
|
+
"dev": "slidev example.md --open",
|
|
16
|
+
"export": "slidev export example.md",
|
|
17
|
+
"screenshot": "slidev export example.md --format png",
|
|
18
|
+
"lint": "eslint --ext js --ext ts --ext vue .",
|
|
19
|
+
"release": "semantic-release"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@slidev/types": "0.36.4",
|
|
23
|
+
"codemirror-theme-vars": "0.1.1",
|
|
24
|
+
"prism-theme-vars": "0.2.4",
|
|
25
|
+
"theme-vitesse": "0.4.10",
|
|
26
|
+
"vite-svg-loader": "3.6.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@iconify-json/mdi": "1.1.32",
|
|
30
|
+
"@semantic-release/changelog": "^6.0.1",
|
|
31
|
+
"@semantic-release/commit-analyzer": "^9.0.2",
|
|
32
|
+
"@semantic-release/git": "^10.0.1",
|
|
33
|
+
"@semantic-release/github": "^8.0.6",
|
|
34
|
+
"@semantic-release/npm": "^9.0.1",
|
|
35
|
+
"@semantic-release/release-notes-generator": "^10.0.3",
|
|
36
|
+
"@slidev/cli": "0.36.4",
|
|
37
|
+
"conventional-changelog-conventionalcommits": "^5.0.0",
|
|
38
|
+
"eslint": "^8.23.1",
|
|
39
|
+
"eslint-plugin-vue": "^9.4.0",
|
|
40
|
+
"playwright-chromium": "1.25.2",
|
|
41
|
+
"qrious": "4.0.2"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"slidev-theme",
|
|
45
|
+
"slidev"
|
|
46
|
+
],
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=14.0.0",
|
|
49
|
+
"slidev": ">=0.36.4"
|
|
50
|
+
},
|
|
51
|
+
"slidev": {
|
|
52
|
+
"colorSchema": "both",
|
|
53
|
+
"highlighter": "all",
|
|
54
|
+
"defaults": {
|
|
55
|
+
"fonts": {
|
|
56
|
+
"sans": "Helvetica",
|
|
57
|
+
"mono": "Fira Code"
|
|
58
|
+
},
|
|
59
|
+
"hightlighter": "prism"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { resolve } from 'path'
|
|
2
|
+
import { defineWindiSetup } from '@slidev/types'
|
|
3
|
+
|
|
4
|
+
const plugin = require('windicss/plugin')
|
|
5
|
+
|
|
6
|
+
const aspectRatioPlugin = plugin(({ addUtilities }) => {
|
|
7
|
+
const newUtilities = {
|
|
8
|
+
'.aspect-none': {
|
|
9
|
+
aspectRatio: 'none',
|
|
10
|
+
},
|
|
11
|
+
'.aspect-16-9': {
|
|
12
|
+
aspectRatio: '16/9',
|
|
13
|
+
},
|
|
14
|
+
'.aspect-4-3': {
|
|
15
|
+
aspectRatio: '4/3',
|
|
16
|
+
},
|
|
17
|
+
'.aspect-1-1': {
|
|
18
|
+
aspectRatio: '1/1',
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
addUtilities(newUtilities, ['responsive', 'hover'])
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
export default defineWindiSetup(() => ({
|
|
25
|
+
extract: {
|
|
26
|
+
include: [
|
|
27
|
+
resolve(__dirname, '../**/*.{vue,ts}'),
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
theme: {
|
|
31
|
+
extend: {
|
|
32
|
+
fontFamily: {
|
|
33
|
+
sans: ['Nunito', 'system-ui', 'sans-serif'],
|
|
34
|
+
title: ['Georgia', 'serif'],
|
|
35
|
+
mono: ['Fira Code', 'ui-monospace'],
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
plugins: [
|
|
40
|
+
aspectRatioPlugin,
|
|
41
|
+
plugin(function ({ addUtilities, variants }) {
|
|
42
|
+
const newUtilities = {
|
|
43
|
+
'.flip-y': {
|
|
44
|
+
'--tw-scale-y': '-1 !important',
|
|
45
|
+
},
|
|
46
|
+
'.flip-x': {
|
|
47
|
+
'--tw-scale-x': '-1 !important',
|
|
48
|
+
},
|
|
49
|
+
}
|
|
50
|
+
addUtilities(newUtilities, variants('flip'))
|
|
51
|
+
}),
|
|
52
|
+
],
|
|
53
|
+
}))
|
package/styles/code.css
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
@import 'prism-theme-vars/base.css';
|
|
2
|
+
@import 'codemirror-theme-vars/base.css';
|
|
3
|
+
@import 'prism-theme-vars/to-codemirror.css';
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--prism-font-family: var(--slidev-code-font-family);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
html:not(.dark) {
|
|
10
|
+
--prism-foreground: #393a34;
|
|
11
|
+
--prism-background: #f8f8f8;
|
|
12
|
+
--prism-comment: #a0ada0;
|
|
13
|
+
--prism-string: #b56959;
|
|
14
|
+
--prism-literal: #2f8a89;
|
|
15
|
+
--prism-number: #296aa3;
|
|
16
|
+
--prism-keyword: #1c6b48;
|
|
17
|
+
--prism-function: #6c7834;
|
|
18
|
+
--prism-boolean: #1c6b48;
|
|
19
|
+
--prism-constant: #a65e2b;
|
|
20
|
+
--prism-deleted: #a14f55;
|
|
21
|
+
--prism-class: #2993a3;
|
|
22
|
+
--prism-builtin: #ab5959;
|
|
23
|
+
--prism-property: #b58451;
|
|
24
|
+
--prism-namespace: #b05a78;
|
|
25
|
+
--prism-punctuation: #8e8f8b;
|
|
26
|
+
--prism-decorator: #bd8f8f;
|
|
27
|
+
--prism-regex: #ab5e3f;
|
|
28
|
+
--prism-json-property: #698c96;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
html.dark {
|
|
32
|
+
--prism-foreground: #d4cfbf;
|
|
33
|
+
--prism-background: #1b1b1b;
|
|
34
|
+
--prism-comment: #758575;
|
|
35
|
+
--prism-string: #d48372;
|
|
36
|
+
--prism-literal: #429988;
|
|
37
|
+
--prism-keyword: #4d9375;
|
|
38
|
+
--prism-boolean: #1c6b48;
|
|
39
|
+
--prism-number: #6394bf;
|
|
40
|
+
--prism-variable: #c2b36e;
|
|
41
|
+
--prism-function: #a1b567;
|
|
42
|
+
--prism-deleted: #a14f55;
|
|
43
|
+
--prism-class: #54b1bf;
|
|
44
|
+
--prism-builtin: #e0a569;
|
|
45
|
+
--prism-property: #dd8e6e;
|
|
46
|
+
--prism-namespace: #db889a;
|
|
47
|
+
--prism-punctuation: #858585;
|
|
48
|
+
--prism-decorator: #bd8f8f;
|
|
49
|
+
--prism-regex: #ab5e3f;
|
|
50
|
+
--prism-json-property: #6b8b9e;
|
|
51
|
+
--prism-line-number: #888888;
|
|
52
|
+
--prism-line-number-gutter: #eeeeee;
|
|
53
|
+
--prism-line-highlight-background: #444444;
|
|
54
|
+
--prism-selection-background: #444444;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
pre[class*='language-'] {
|
|
58
|
+
@apply p-2;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:not(pre) > code {
|
|
62
|
+
font-size: 0.9em;
|
|
63
|
+
background: var(--prism-background);
|
|
64
|
+
@apply font-light py-0.5 rounded;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
:not(pre) > code:before,
|
|
69
|
+
:not(pre) > code:after {
|
|
70
|
+
content: '`';
|
|
71
|
+
opacity: 0.50;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:not(pre) > code:before {
|
|
75
|
+
margin-right: -0.08em;
|
|
76
|
+
}
|
package/styles/index.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
@import url(http://fonts.googleapis.com/css?family=Nunito);
|
|
2
|
+
@import url(http://fonts.googleapis.com/css?family=Georgia);
|
|
3
|
+
@import url(http://fonts.googleapis.com/css?family=Fira+Code);
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--slidev-theme-primary: #5d8392;
|
|
7
|
+
--slidev-code-font-size: 0.95rem;
|
|
8
|
+
--slidev-code-line-height: 1.25rem;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
html, body {
|
|
12
|
+
background-color: #fdf6e3;
|
|
13
|
+
color: #839496;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
html:not(.dark) {
|
|
17
|
+
a, a:visited, a:active {
|
|
18
|
+
color: #2aa198;
|
|
19
|
+
border-color: #eee8d5;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
a:hover {
|
|
23
|
+
background-color: #eee8d5;
|
|
24
|
+
border-color: #eee8d5;
|
|
25
|
+
color: #2aa198;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
h1, h2, h3 {
|
|
29
|
+
color: #cb4b16;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
h1 a, h1 a:visited, h1 a:active {
|
|
33
|
+
color: #cb4b16;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
h1 a:hover {
|
|
37
|
+
background-color: #eee8d5;
|
|
38
|
+
border-color: #eee8d5;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
article h1 a.anchor {
|
|
42
|
+
color: #2aa198;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
blockquote {
|
|
46
|
+
border-color: #cb4b16;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
html.dark {
|
|
51
|
+
a, a:visited, a:active {
|
|
52
|
+
color: #2aa198;
|
|
53
|
+
border-color: #073642;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
a:hover {
|
|
57
|
+
background-color: #073642;
|
|
58
|
+
border-color: #073642;
|
|
59
|
+
color: #2aa198;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
h1, h2, h3 {
|
|
63
|
+
color: #cb4b16;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
h1 a, h1 a:visited, h1 a:active {
|
|
67
|
+
color: #cb4b16;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
h1 a:hover {
|
|
71
|
+
background-color: #073642;
|
|
72
|
+
border-color: #073642;
|
|
73
|
+
color: #cb4b16;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
article h1 a.anchor {
|
|
77
|
+
color: #2aa198;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
blockquote {
|
|
81
|
+
border-color: #cb4b16;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.slidev-layout {
|
|
86
|
+
font-variant-ligatures: none;
|
|
87
|
+
text-align: justify;
|
|
88
|
+
|
|
89
|
+
h1, h2, h3, h4, p, div {
|
|
90
|
+
@apply select-text;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
h1 {
|
|
94
|
+
@apply font-bold;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
h1 + h2 {
|
|
98
|
+
@apply -mt-4;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
h2 {
|
|
102
|
+
@apply text-2xl font-bold;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
h3 {
|
|
106
|
+
@apply text-xl font-bold;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
p {
|
|
110
|
+
@apply mt-4 mb-4;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
p:first-child {
|
|
114
|
+
@apply mt-0 mb-4;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
p:last-child {
|
|
118
|
+
@apply mb-0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
p + h2, ul + h2, table + h2 {
|
|
122
|
+
@apply mt-10;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
blockquote > * {
|
|
126
|
+
@apply my-0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
ul {
|
|
130
|
+
list-style: disc;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
li > ul,
|
|
134
|
+
li > ol,
|
|
135
|
+
ul:first-child,
|
|
136
|
+
ol:first-child {
|
|
137
|
+
margin-top: 0;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:not(pre) > code:before,
|
|
141
|
+
:not(pre) > code:after {
|
|
142
|
+
content: '\2005';
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.katex-display {
|
|
146
|
+
@apply my-0
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
th {
|
|
150
|
+
@apply font-bold;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
td {
|
|
154
|
+
@apply py-1.5;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
li {
|
|
158
|
+
line-height: 1.6em;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.slidev-layout.intro,
|
|
163
|
+
.slidev-layout.cover {
|
|
164
|
+
@apply h-full grid;
|
|
165
|
+
|
|
166
|
+
h1 {
|
|
167
|
+
@apply text-6xl font-700 leading-20;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
h1 + p {
|
|
171
|
+
@apply font-700 -mt-4 text-2xl;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
:not(li) > ul > li:not(li:first-child),
|
|
176
|
+
:not(li) > ol > li:not(li:first-child) {
|
|
177
|
+
margin-top: 1rem;
|
|
178
|
+
}
|