slidev-theme-neversink 0.0.3 → 0.1.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/assets/arrow.png +0 -0
- package/assets/arrowheads.png +0 -0
- package/components/ArrowHeads.vue +6 -0
- package/components/Email.vue +21 -0
- package/docs/.vitepress/config.js +10 -2
- package/docs/.vitepress/theme/style.css +4 -1
- package/docs/components/arrowheads.md +15 -0
- package/docs/components/email.md +19 -0
- package/docs/components.md +4 -0
- package/docs/index.md +2 -1
- package/docs/markdown.md +2 -13
- package/docs/public/screenshots/arrowheads.png +0 -0
- package/docs/public/screenshots/email.png +0 -0
- package/docs/styling.md +113 -0
- package/example.md +9 -13
- package/layouts/cover.vue +21 -2
- package/layouts/top-title-two-cols.vue +41 -3
- package/layouts/top-title.vue +2 -2
- package/package.json +1 -1
- package/styles/base.css +8 -16
- package/styles/index.ts +1 -0
- package/styles/neversink-c.css +103 -0
- package/uno.config.ts +88 -114
- package/docs/markdown-examples.md +0 -85
package/assets/arrow.png
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
const props = defineProps({
|
|
3
|
+
v: {
|
|
4
|
+
default: 'null@null.com',
|
|
5
|
+
},
|
|
6
|
+
})
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<div class="ns-c-email text-0.85rem text-gray-700 mt-0 tracking-wide leading-none ns-c-iconlink">
|
|
11
|
+
{{ props.v }} <a href="mailto:" class=""><mdi-email /></a>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<style>
|
|
16
|
+
.ns-c-email {
|
|
17
|
+
font-family: var(--neversink-font-mono);
|
|
18
|
+
font-weight: 300;
|
|
19
|
+
letter-spacing: 0.09em;
|
|
20
|
+
}
|
|
21
|
+
</style>
|
|
@@ -2,11 +2,12 @@ import { defineConfig } from 'vitepress'
|
|
|
2
2
|
import Unocss from 'unocss/vite'
|
|
3
3
|
import { sub } from '@mdit/plugin-sub'
|
|
4
4
|
import Mark from 'markdown-it-mark'
|
|
5
|
+
import { version } from '../../package.json'
|
|
5
6
|
|
|
6
7
|
// https://vitepress.dev/reference/site-config
|
|
7
8
|
export default defineConfig({
|
|
8
9
|
title: 'Slidev Theme Neversink',
|
|
9
|
-
description: 'An education/
|
|
10
|
+
description: 'An education/academic oriented Slidev theme',
|
|
10
11
|
base: '/slidev-theme-neversink/',
|
|
11
12
|
themeConfig: {
|
|
12
13
|
// https://vitepress.dev/reference/default-theme-config
|
|
@@ -14,6 +15,10 @@ export default defineConfig({
|
|
|
14
15
|
{ text: 'Home', link: '/' },
|
|
15
16
|
{ text: 'Getting started', link: '/getting-started' },
|
|
16
17
|
{ text: 'Example Deck', link: 'https://gureckis.github.io/slidev-theme-neversink/example/#1', target: '_self' },
|
|
18
|
+
{
|
|
19
|
+
text: `v${version}`,
|
|
20
|
+
items: [{ text: 'Release Notes', link: 'https://github.com/slidevjs/slidev/releases' }],
|
|
21
|
+
},
|
|
17
22
|
],
|
|
18
23
|
|
|
19
24
|
sidebar: [
|
|
@@ -23,6 +28,7 @@ export default defineConfig({
|
|
|
23
28
|
{ text: 'Getting Started', link: '/getting-started' },
|
|
24
29
|
{ text: 'Markdown Features', link: '/markdown' },
|
|
25
30
|
{ text: 'Colors Schemes', link: '/colors' },
|
|
31
|
+
{ text: 'Styling', link: '/styling' },
|
|
26
32
|
{ text: 'Branding', link: '/branding' },
|
|
27
33
|
{
|
|
28
34
|
text: 'Layouts',
|
|
@@ -48,11 +54,13 @@ export default defineConfig({
|
|
|
48
54
|
items: [
|
|
49
55
|
{ text: 'Overview', link: '/components' },
|
|
50
56
|
{ text: 'Admonitions', link: '/components/admonitions' },
|
|
57
|
+
{ text: 'Email', link: '/components/email' },
|
|
51
58
|
{ text: 'SpeechBubble', link: '/components/speechbubble' },
|
|
52
59
|
{ text: 'StickyNote', link: '/components/stickynote' },
|
|
53
60
|
{ text: 'CreditScroll', link: '/components/creditscroll' },
|
|
54
61
|
{ text: 'QRCode', link: '/components/qrcode' },
|
|
55
62
|
{ text: 'Kawaii', link: '/components/kawaii' },
|
|
63
|
+
{ text: 'ArrowHeads', link: '/components/arrowheads' },
|
|
56
64
|
],
|
|
57
65
|
},
|
|
58
66
|
{ text: 'Customizing', link: '/customizing' },
|
|
@@ -61,7 +69,7 @@ export default defineConfig({
|
|
|
61
69
|
},
|
|
62
70
|
],
|
|
63
71
|
|
|
64
|
-
socialLinks: [{ icon: 'github', link: 'https://github.com/
|
|
72
|
+
socialLinks: [{ icon: 'github', link: 'https://github.com/gureckis/slidev-theme-neversink' }],
|
|
65
73
|
},
|
|
66
74
|
markdown: {
|
|
67
75
|
config: (md) => {
|
|
@@ -109,8 +109,11 @@ mark {
|
|
|
109
109
|
* -------------------------------------------------------------------------- */
|
|
110
110
|
|
|
111
111
|
:root {
|
|
112
|
-
--vp-home-hero-name-color:
|
|
112
|
+
--vp-home-hero-name-color: transparent;
|
|
113
113
|
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff);
|
|
114
|
+
|
|
115
|
+
--vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);
|
|
116
|
+
--vp-home-hero-image-filter: blur(44px);
|
|
114
117
|
}
|
|
115
118
|
|
|
116
119
|
@media (min-width: 640px) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# ArrowHeads
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
Draws a set of hand drawn arrows that point to a central location. Useful to call attention to a particular element on a slide.
|
|
6
|
+
|
|
7
|
+
## `ArrowHeads` component
|
|
8
|
+
|
|
9
|
+
```md
|
|
10
|
+
<ArrowHeads v-drag />
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Renders as:
|
|
14
|
+
|
|
15
|
+
<img src="/screenshots/arrowheads.png" alt="ArrowHeads component" width="200px" />
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Email
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
Email is a quick way to format a email addres. In add a `mailto:` link and an icon.
|
|
6
|
+
|
|
7
|
+
## `Email` component
|
|
8
|
+
|
|
9
|
+
The `Email` component formats a email address on (usually) title slides
|
|
10
|
+
|
|
11
|
+
- `v` (required). The email address
|
|
12
|
+
|
|
13
|
+
```md
|
|
14
|
+
<Email v="todd.gureckis@nyu.edu" />
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Renders as:
|
|
18
|
+
|
|
19
|
+
<img src="/screenshots/email.png" alt="ArrowHeads component" width="200px" />
|
package/docs/components.md
CHANGED
|
@@ -16,4 +16,8 @@ The current components are:
|
|
|
16
16
|
|
|
17
17
|
- [Kawaii](/components/kawaii) - Modification of select [Vue Kawaii](https://github.com/youngtailors/vue-kawaii) figures that add cute characters to slides.
|
|
18
18
|
|
|
19
|
+
- [Email](/components/email) - formats email addresses
|
|
20
|
+
|
|
21
|
+
- [ArrowHeads](/components/arrowheads) - draws a bunch of arrows pointing at a central place. Useful for drawing attention to a particular part of a slide.
|
|
22
|
+
|
|
19
23
|
Most component can just be included in-line in your markdown. However, in some cases it can make sense to position these components using the `v-drag` directive. For example, the `SpeechBubble` component can be positioned using the `v-drag` directive to place it in a specific location on the slide. This can be useful for creating custom layouts or animations. In that case, it makes sense to keep the component in the [default slot](/layouts#slots) of each layout.
|
package/docs/index.md
CHANGED
package/docs/markdown.md
CHANGED
|
@@ -59,18 +59,7 @@ Drops the underline styling from icons.
|
|
|
59
59
|
<a href="https://todd.gureckislab.org" class="iconlink"><mdi-open-in-new /></a>
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
If you want to make bullets a little closer together to make spaceadd the `class='tight'`
|
|
65
|
-
|
|
66
|
-
```md
|
|
67
|
-
<div class="tight">
|
|
68
|
-
|
|
69
|
-
- Hi
|
|
70
|
-
- There
|
|
71
|
-
- I need space
|
|
72
|
-
</div>
|
|
73
|
-
```
|
|
62
|
+
````
|
|
74
63
|
|
|
75
64
|
## V-click faders
|
|
76
65
|
|
|
@@ -84,4 +73,4 @@ If you want to fade out a bullet as you step through, add the `class='fader'`
|
|
|
84
73
|
- This is a third click
|
|
85
74
|
|
|
86
75
|
</v-clicks>
|
|
87
|
-
|
|
76
|
+
````
|
|
Binary file
|
|
Binary file
|
package/docs/styling.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Styling
|
|
2
|
+
|
|
3
|
+
In addition to [layouts](/layouts) and [components](/components), **Neversink** also
|
|
4
|
+
provides some helpful CSS classes to help with common slide formatting tasks.
|
|
5
|
+
|
|
6
|
+
These are included in `styles/neversink.css`. Each class in this file begins with `ns-c-` to indicate that it is a Neversink class.
|
|
7
|
+
|
|
8
|
+
## Colors
|
|
9
|
+
|
|
10
|
+
In addition to the main color [schemes](/colors) there are some additional short hand classes you can use in your slides content.
|
|
11
|
+
|
|
12
|
+
| Alias | Equivalent |
|
|
13
|
+
| ---------------------- | ------------------------------ |
|
|
14
|
+
| `ns-c-bk-scheme` | `neversink-black-scheme` |
|
|
15
|
+
| `ns-c-wh-scheme` | `neversink-white-scheme` |
|
|
16
|
+
| `ns-c-dk-scheme` | `neversink-dark-scheme` |
|
|
17
|
+
| `ns-c-lt-scheme` | `neversink-light-scheme` |
|
|
18
|
+
| `ns-c-nv-scheme` | `neversink-navy-scheme` |
|
|
19
|
+
| `ns-c-nv-lt-scheme` | `neversink-navy-light-scheme` |
|
|
20
|
+
| `ns-c-COLOR-scheme` | `neversink-COLOR-scheme` |
|
|
21
|
+
| `ns-c-COLOR-lt-scheme` | `neversink-COLOR-light-scheme` |
|
|
22
|
+
|
|
23
|
+
where color can be any of the [colors](/colors) in the project.
|
|
24
|
+
|
|
25
|
+
## Tight bullets
|
|
26
|
+
|
|
27
|
+
If you want to make bullets a little closer together to make spaceadd the `class='ns-c-tight'`
|
|
28
|
+
|
|
29
|
+
```md
|
|
30
|
+
<div class="ns-c-tight">
|
|
31
|
+
|
|
32
|
+
- Hi
|
|
33
|
+
- There
|
|
34
|
+
- I need space
|
|
35
|
+
</div>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Other options are `ns-c-tight` and `ns-c-supertight`.
|
|
39
|
+
|
|
40
|
+
## References
|
|
41
|
+
|
|
42
|
+
Including references often you want to include them but have them fade a bit relative to the main content of the tslide for this `ns-c-cite` is useful as it
|
|
43
|
+
applies a smaller, italic, and gray color to the text.
|
|
44
|
+
|
|
45
|
+
```css
|
|
46
|
+
.ns-c-cite {
|
|
47
|
+
font-size: 0.75em;
|
|
48
|
+
font-style: italic;
|
|
49
|
+
@apply text-gray-400;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
To position the cittion on the bottom left of the slide add `ns-c-cite-bl` for `bottom-left`.
|
|
54
|
+
|
|
55
|
+
```css
|
|
56
|
+
.ns-c-cite-bl {
|
|
57
|
+
text-align: left;
|
|
58
|
+
margin-bottom: 0.85em;
|
|
59
|
+
margin-left: 1.5em;
|
|
60
|
+
margin-top: auto;
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Quote
|
|
65
|
+
|
|
66
|
+
For quotes that appear outside the context of a [quote layout](/layouts/quote) you can use `ns-c-quote` to apply a larger font size and italic style.
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
.ns-c-quote {
|
|
70
|
+
font-family: var(--neversink-quote-font);
|
|
71
|
+
font-weight: 300;
|
|
72
|
+
@apply leading-relaxed;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Icon links
|
|
77
|
+
|
|
78
|
+
If you write an icon in a link it includes the underline styleing. To remove that use
|
|
79
|
+
`ns-c-iconlink`.
|
|
80
|
+
|
|
81
|
+
```css
|
|
82
|
+
/* for links that are icons. removes underlining which is default for links in markdown parser */
|
|
83
|
+
.ns-c-iconlink a {
|
|
84
|
+
border-style: none !important;
|
|
85
|
+
border-bottom: none !important;
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## For putting images in grids
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
.ns-c-imgtile img {
|
|
93
|
+
width: 100%;
|
|
94
|
+
height: fit-content;
|
|
95
|
+
object-fit: cover;
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Border
|
|
100
|
+
|
|
101
|
+
I forgot why i made this utility
|
|
102
|
+
|
|
103
|
+
```css
|
|
104
|
+
.ns-c-border {
|
|
105
|
+
border-left: 0.25em solid var(--neversink-text-color);
|
|
106
|
+
background-color: var(--neversink-bg-color);
|
|
107
|
+
color: var(--neversink-text-color);
|
|
108
|
+
margin-top: 0.5em;
|
|
109
|
+
margin-bottom: 0.5em;
|
|
110
|
+
padding-left: 1em;
|
|
111
|
+
padding-right: 1em;
|
|
112
|
+
}
|
|
113
|
+
```
|
package/example.md
CHANGED
|
@@ -289,7 +289,7 @@ align: lt
|
|
|
289
289
|
The available layouts in **Neversink** currently are:
|
|
290
290
|
|
|
291
291
|
|
|
292
|
-
<div class="tight">
|
|
292
|
+
<div class="ns-c-tight">
|
|
293
293
|
|
|
294
294
|
<div class='flex flex-wrap'>
|
|
295
295
|
|
|
@@ -478,9 +478,9 @@ Of course you can make bullet lists:
|
|
|
478
478
|
- Hi
|
|
479
479
|
- There
|
|
480
480
|
|
|
481
|
-
Also there's a little helper class you can add to make the bullet spacing a bit tighter:
|
|
481
|
+
Also there's a little helper class `ns-c-tight` you can add to make the bullet spacing a bit tighter:
|
|
482
482
|
|
|
483
|
-
<div class="tight">
|
|
483
|
+
<div class="ns-c-tight">
|
|
484
484
|
|
|
485
485
|
- Hi
|
|
486
486
|
- There
|
|
@@ -574,16 +574,12 @@ You can use HTML and inline CSS to modify the look and feel.
|
|
|
574
574
|
---
|
|
575
575
|
layout: quote
|
|
576
576
|
color: sky-light
|
|
577
|
-
|
|
577
|
+
quotesize: text-sm
|
|
578
|
+
authorsize: text-sm
|
|
578
579
|
author: "Todd Gureckis"
|
|
579
580
|
---
|
|
580
581
|
|
|
581
|
-
|
|
582
|
-
---
|
|
583
|
-
layout: quote
|
|
584
|
-
color: amber-light
|
|
585
|
-
---
|
|
586
|
-
|
|
582
|
+
"This is a quote slide. It has a frontmatter option of `quote` which is the text that appears in the quote box and `author` and options for the size of the text(`quotesize: text-2xl` and `authorsize: text-l`). I feel it is a little uninspired but might save you some time."
|
|
587
583
|
|
|
588
584
|
|
|
589
585
|
|
|
@@ -625,7 +621,7 @@ I'm v-dragged out and ==floating==.
|
|
|
625
621
|
|
|
626
622
|
<IceCream :size="150" mood="lovestruck" color="#FDA7DC" v-drag="[439,341,85,150]" />
|
|
627
623
|
|
|
628
|
-
<div class="tight" v-drag="[143,33,277,214]">
|
|
624
|
+
<div class="ns-c-tight" v-drag="[143,33,277,214]">
|
|
629
625
|
|
|
630
626
|
<span class="bg-red-100 text-red-600 p-2 border-l-6 border-2 border-red-200 rounded-lg pl-4 pr-4">Here's a list of somethings</span>
|
|
631
627
|
|
|
@@ -638,7 +634,7 @@ I'm v-dragged out and ==floating==.
|
|
|
638
634
|
|
|
639
635
|
</div>
|
|
640
636
|
|
|
641
|
-
<div class="tight" v-drag="[461,63,293,148,17]">
|
|
637
|
+
<div class="ns-c-tight" v-drag="[461,63,293,148,17]">
|
|
642
638
|
|
|
643
639
|
<span class="bg-emerald-100 text-emerald-500 p-2 border-l-6 border-2 border-emerald-200 rounded-lg pl-4 pr-4">Here's another list of things</span>
|
|
644
640
|
|
|
@@ -1116,7 +1112,7 @@ layout: default
|
|
|
1116
1112
|
|
|
1117
1113
|
In addition to these custom layouts, the **Neversink** theme includes a few custom components that can be used in your slides. These include sticky notes, speech bubbles, cute icons, QR codes, and more. The next few slides walks through them:
|
|
1118
1114
|
|
|
1119
|
-
<div class="tight">
|
|
1115
|
+
<div class="ns-c-tight">
|
|
1120
1116
|
|
|
1121
1117
|
- admonitions
|
|
1122
1118
|
- sticky notes
|
package/layouts/cover.vue
CHANGED
|
@@ -20,10 +20,10 @@ const colorscheme = computed(() => {
|
|
|
20
20
|
|
|
21
21
|
<template>
|
|
22
22
|
<div class="slidev-layout cover h-full slidecolor" :class="colorscheme">
|
|
23
|
-
<div class="
|
|
23
|
+
<div class="myauto w-full">
|
|
24
24
|
<slot />
|
|
25
25
|
</div>
|
|
26
|
-
<div class="absolute bottom-
|
|
26
|
+
<div class="note absolute bottom-3">
|
|
27
27
|
<slot name="note" />
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
@@ -34,19 +34,36 @@ const colorscheme = computed(() => {
|
|
|
34
34
|
|
|
35
35
|
.slidev-layout.cover {
|
|
36
36
|
font-family: var(--neversink-main-font);
|
|
37
|
+
|
|
37
38
|
font-weight: 300;
|
|
38
39
|
}
|
|
39
40
|
|
|
41
|
+
.slidev-layout.cover {
|
|
42
|
+
margin-bottom: 0px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.slidev-layout.cover p {
|
|
46
|
+
letter-spacing: 0.05em;
|
|
47
|
+
font-size: 0.85em;
|
|
48
|
+
line-height: 1.4em;
|
|
49
|
+
}
|
|
50
|
+
|
|
40
51
|
.slidev-layout.cover strong {
|
|
41
52
|
font-weight: 500;
|
|
42
53
|
}
|
|
43
54
|
|
|
55
|
+
.slidev-layout.cover .note {
|
|
56
|
+
font-weight: 300;
|
|
57
|
+
font-size: 0.9rem;
|
|
58
|
+
}
|
|
59
|
+
|
|
44
60
|
.slidev-layout.cover h1 {
|
|
45
61
|
font-family: var(--neversink-title-font);
|
|
46
62
|
font-weight: 500;
|
|
47
63
|
font-size: 3em;
|
|
48
64
|
line-height: normal;
|
|
49
65
|
margin-bottom: 0.9rem;
|
|
66
|
+
margin-top: 40px;
|
|
50
67
|
}
|
|
51
68
|
|
|
52
69
|
.slidev-layout.cover h2 {
|
|
@@ -55,6 +72,7 @@ const colorscheme = computed(() => {
|
|
|
55
72
|
font-size: 2.5em;
|
|
56
73
|
line-height: normal;
|
|
57
74
|
margin-bottom: 0.9rem;
|
|
75
|
+
margin-top: 40px;
|
|
58
76
|
}
|
|
59
77
|
|
|
60
78
|
.slidev-layout.cover h3 {
|
|
@@ -63,6 +81,7 @@ const colorscheme = computed(() => {
|
|
|
63
81
|
font-size: 1.9em;
|
|
64
82
|
line-height: normal;
|
|
65
83
|
margin-bottom: 0.9rem;
|
|
84
|
+
margin-top: 40px;
|
|
66
85
|
}
|
|
67
86
|
|
|
68
87
|
.slidev-layout.cover h1 + p {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed } from 'vue'
|
|
2
|
+
import { computed, useSlots } from 'vue'
|
|
3
3
|
import { compute_alignment, compute_column_size } from '../layoutHelper'
|
|
4
4
|
|
|
5
|
+
const slots = useSlots()
|
|
6
|
+
|
|
5
7
|
const props = defineProps({
|
|
6
8
|
columns: {
|
|
7
9
|
default: 'is-one-half',
|
|
@@ -59,7 +61,7 @@ const colorscheme = computed(() => {
|
|
|
59
61
|
</div>
|
|
60
62
|
<template v-else>
|
|
61
63
|
<div class="flex flex-col h-full w-full">
|
|
62
|
-
<div class="w-full h-fit min-h-
|
|
64
|
+
<div class="w-full h-fit min-h-13 pt-2 pb-2 slidecolor" :class="colorscheme">
|
|
63
65
|
<div class="slidev-layout toptitlebar p-0 ml-6 mr-6 mt-auto mb-auto" :class="alignment.t">
|
|
64
66
|
<slot name="title" />
|
|
65
67
|
</div>
|
|
@@ -74,7 +76,7 @@ const colorscheme = computed(() => {
|
|
|
74
76
|
</div>
|
|
75
77
|
</div>
|
|
76
78
|
</div>
|
|
77
|
-
<div class="
|
|
79
|
+
<div v-if="$slots.default" class="h-fit w-full">
|
|
78
80
|
<slot name="default" />
|
|
79
81
|
</div>
|
|
80
82
|
</div>
|
|
@@ -86,6 +88,42 @@ const colorscheme = computed(() => {
|
|
|
86
88
|
padding-top: 1.3rem;
|
|
87
89
|
}
|
|
88
90
|
|
|
91
|
+
.slidev-layout.toptitlecontent h1 + ul {
|
|
92
|
+
margin-top: 0em;
|
|
93
|
+
}
|
|
94
|
+
.slidev-layout.toptitlecontent h2 + ul {
|
|
95
|
+
margin-top: 0em;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.slidev-layout.toptitlecontent h3 + ul {
|
|
99
|
+
margin-top: 0em;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
li li {
|
|
103
|
+
margin-top: 0.5em; /* Adjust this value as needed */
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.slidev-layout.toptitlecontent h1 {
|
|
107
|
+
font-size: 1.4em;
|
|
108
|
+
font-family: var(--neversink-title-font);
|
|
109
|
+
font-weight: 500;
|
|
110
|
+
margin-bottom: 0rem;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.slidev-layout.toptitlecontent h2 {
|
|
114
|
+
font-size: 1.4em;
|
|
115
|
+
font-family: var(--neversink-title-font);
|
|
116
|
+
font-weight: 500;
|
|
117
|
+
margin-bottom: 0rem;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.slidev-layout.toptitlecontent h3 {
|
|
121
|
+
font-size: 1.1em;
|
|
122
|
+
font-family: var(--neversink-title-font);
|
|
123
|
+
font-weight: 500;
|
|
124
|
+
margin-bottom: 0rem;
|
|
125
|
+
}
|
|
126
|
+
|
|
89
127
|
.toptitlebar {
|
|
90
128
|
padding: 0;
|
|
91
129
|
margin: 0;
|
package/layouts/top-title.vue
CHANGED
|
@@ -43,7 +43,7 @@ const colorscheme = computed(() => {
|
|
|
43
43
|
</div>
|
|
44
44
|
<template v-else>
|
|
45
45
|
<div class="flex flex-col h-full w-full">
|
|
46
|
-
<div class="w-full h-fit min-h-
|
|
46
|
+
<div class="w-full h-fit min-h-13 pt-2 pb-2 slidecolor" :class="colorscheme">
|
|
47
47
|
<div class="slidev-layout toptitlebar p-0 pt-0 ml-6 mr-6 mt-auto mb-auto" :class="alignment">
|
|
48
48
|
<slot name="title" />
|
|
49
49
|
</div>
|
|
@@ -51,7 +51,7 @@ const colorscheme = computed(() => {
|
|
|
51
51
|
<div class="slidev-layout toptitlecontent h-fit w-full">
|
|
52
52
|
<slot name="content" />
|
|
53
53
|
</div>
|
|
54
|
-
<div class="slidev-layout
|
|
54
|
+
<div v-if="$slots.default" class="slidev-layout default h-fit w-full">
|
|
55
55
|
<slot name="default" />
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
package/package.json
CHANGED
package/styles/base.css
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
:root {
|
|
6
6
|
--neversink-title-font: 'Inter', sans-serif;
|
|
7
7
|
--neversink-main-font: 'Inter', sans-serif;
|
|
8
|
-
--neversink-mono-font: '
|
|
9
|
-
--neversink-quote-font: '
|
|
8
|
+
--neversink-mono-font: 'Fira Code', monospace;
|
|
9
|
+
--neversink-quote-font: 'Fira Code', monospace;
|
|
10
|
+
--font-mono: 'Courier New', Courier, monospace;
|
|
10
11
|
@apply neversink-white-scheme; /* apply the default white scheme everywhere */
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
#page-root {
|
|
17
18
|
font-family: var(--neversink-main-font);
|
|
18
19
|
font-weight: 400;
|
|
19
|
-
letter-spacing: 0.
|
|
20
|
+
letter-spacing: 0.015rem;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
/* binds variable to the color of a slide*/
|
|
@@ -25,18 +26,15 @@
|
|
|
25
26
|
color: var(--neversink-text-color);
|
|
26
27
|
}
|
|
27
28
|
|
|
29
|
+
.slidev-layout p {
|
|
30
|
+
line-height: normal;
|
|
31
|
+
}
|
|
28
32
|
/* adjust default bullets */
|
|
29
33
|
.slidev-layout li {
|
|
30
34
|
margin-bottom: 1em;
|
|
31
35
|
line-height: 1.5em;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
|
-
/* adds a modifier class which reduces the space between bullets */
|
|
35
|
-
.tight li {
|
|
36
|
-
line-height: 1em;
|
|
37
|
-
margin-bottom: 0.5em;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
38
|
/* change the bold and strong fonts */
|
|
41
39
|
.slidev-layout strong,
|
|
42
40
|
.slidev-layout b {
|
|
@@ -73,12 +71,6 @@
|
|
|
73
71
|
font-weight: 300;
|
|
74
72
|
}
|
|
75
73
|
|
|
76
|
-
/* for links that are icons. removes underlining which is default for links in markdown parser */
|
|
77
|
-
.iconlink a {
|
|
78
|
-
border-style: none !important;
|
|
79
|
-
border-bottom: none !important;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
74
|
/* default layout */
|
|
83
75
|
|
|
84
76
|
.my-auto p {
|
|
@@ -196,7 +188,7 @@ img {
|
|
|
196
188
|
pointer-events: none;
|
|
197
189
|
}
|
|
198
190
|
|
|
199
|
-
.fader .slidev-vclick-prior {
|
|
191
|
+
.ns-c-fader .slidev-vclick-prior {
|
|
200
192
|
opacity: 0.3;
|
|
201
193
|
pointer-events: none;
|
|
202
194
|
}
|
package/styles/index.ts
CHANGED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* neversink-c.css
|
|
2
|
+
provides custom helper classes for the Neversink theme
|
|
3
|
+
the have the namespace ns-c- for 'neversink convenience'
|
|
4
|
+
these provide simple styles for common elements
|
|
5
|
+
in talks
|
|
6
|
+
|
|
7
|
+
In addition to these there are shorthands for color schemes
|
|
8
|
+
|
|
9
|
+
ns-c-bk-scheme
|
|
10
|
+
ns-c-wh-scheme
|
|
11
|
+
ns-c-dk-scheme
|
|
12
|
+
ns-c-lt-scheme
|
|
13
|
+
ns-c-nv-scheme
|
|
14
|
+
ns-c-nv-lt-scheme
|
|
15
|
+
ns-c-red-scheme
|
|
16
|
+
ns-c-red-lt-scheme
|
|
17
|
+
and
|
|
18
|
+
ns-c-XX-scheme
|
|
19
|
+
ns-c-XX-lt-scheme
|
|
20
|
+
...
|
|
21
|
+
where XX can be
|
|
22
|
+
slate,
|
|
23
|
+
gray,
|
|
24
|
+
zinc,
|
|
25
|
+
neutral,
|
|
26
|
+
stone,
|
|
27
|
+
red,
|
|
28
|
+
orange,
|
|
29
|
+
amber,
|
|
30
|
+
yellow,
|
|
31
|
+
lime,
|
|
32
|
+
green,
|
|
33
|
+
emerald,
|
|
34
|
+
teal,
|
|
35
|
+
cyan,
|
|
36
|
+
sky,
|
|
37
|
+
blue,
|
|
38
|
+
indigo,
|
|
39
|
+
violet,
|
|
40
|
+
purple,
|
|
41
|
+
fuchsia,
|
|
42
|
+
pink,
|
|
43
|
+
rose,
|
|
44
|
+
navy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
*/
|
|
48
|
+
/* adds a modifier class which reduces the space between bullets */
|
|
49
|
+
.ns-c-tight li {
|
|
50
|
+
line-height: normal;
|
|
51
|
+
margin-bottom: 0.4em;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.ns-c-verytight li {
|
|
55
|
+
line-height: normal;
|
|
56
|
+
margin-bottom: 0.1em;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ns-c-supertight li {
|
|
60
|
+
line-height: normal;
|
|
61
|
+
margin-bottom: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.ns-c-cite {
|
|
65
|
+
font-size: 0.75em;
|
|
66
|
+
font-style: italic;
|
|
67
|
+
@apply text-gray-400;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.ns-c-cite-bl {
|
|
71
|
+
text-align: left;
|
|
72
|
+
margin-bottom: 0.85em;
|
|
73
|
+
margin-left: 1.5em;
|
|
74
|
+
margin-top: auto;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.ns-c-quote {
|
|
78
|
+
font-family: var(--neversink-quote-font);
|
|
79
|
+
font-weight: 300;
|
|
80
|
+
@apply leading-relaxed;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ns-c-border {
|
|
84
|
+
border-left: 0.25em solid var(--neversink-text-color);
|
|
85
|
+
background-color: var(--neversink-bg-color);
|
|
86
|
+
color: var(--neversink-text-color);
|
|
87
|
+
margin-top: 0.5em;
|
|
88
|
+
margin-bottom: 0.5em;
|
|
89
|
+
padding-left: 1em;
|
|
90
|
+
padding-right: 1em;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.ns-c-imgtile img {
|
|
94
|
+
width: 100%;
|
|
95
|
+
height: fit-content;
|
|
96
|
+
object-fit: cover;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* for links that are icons. removes underlining which is default for links in markdown parser */
|
|
100
|
+
.ns-c-iconlink a {
|
|
101
|
+
border-style: none !important;
|
|
102
|
+
border-bottom: none !important;
|
|
103
|
+
}
|
package/uno.config.ts
CHANGED
|
@@ -53,124 +53,98 @@ const generate_color_schemes = (colors) => {
|
|
|
53
53
|
const schemes = []
|
|
54
54
|
const classes = []
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
{
|
|
101
|
-
'--neversink-bg-color': colors['gray'][100],
|
|
102
|
-
'--neversink-bg-code-color': colors['gray'][200],
|
|
103
|
-
'--neversink-fg-color': colors['gray'][800],
|
|
104
|
-
'--neversink-text-color': colors['gray'][800],
|
|
105
|
-
'--neversink-border-color': colors['gray'][800],
|
|
106
|
-
'--neversink-highlight-color': '#FFA500',
|
|
107
|
-
},
|
|
108
|
-
])
|
|
109
|
-
classes.push('neversink-light-scheme')
|
|
56
|
+
const addScheme = (longName, shortName, styles) => {
|
|
57
|
+
schemes.push([longName, styles])
|
|
58
|
+
schemes.push([shortName, styles])
|
|
59
|
+
classes.push(longName, shortName)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
addScheme('neversink-black-scheme', 'ns-c-bk-scheme', {
|
|
63
|
+
'--neversink-bg-color': colors['black'],
|
|
64
|
+
'--neversink-bg-code-color': colors['gray'][600],
|
|
65
|
+
'--neversink-fg-code-color': colors['white'],
|
|
66
|
+
'--neversink-fg-color': colors['white'],
|
|
67
|
+
'--neversink-text-color': colors['white'],
|
|
68
|
+
'--neversink-border-color': colors['white'],
|
|
69
|
+
'--neversink-highlight-color': '#FFA500',
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
addScheme('neversink-white-scheme', 'ns-c-wh-scheme', {
|
|
73
|
+
'--neversink-bg-color': colors['white'],
|
|
74
|
+
'--neversink-bg-code-color': colors['gray'][100],
|
|
75
|
+
'--neversink-fg-code-color': colors['black'],
|
|
76
|
+
'--neversink-fg-color': colors['black'],
|
|
77
|
+
'--neversink-text-color': colors['black'],
|
|
78
|
+
'--neversink-border-color': colors['gray'][950],
|
|
79
|
+
'--neversink-highlight-color': '#FFA500',
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
addScheme('neversink-dark-scheme', 'ns-c-dk-scheme', {
|
|
83
|
+
'--neversink-bg-color': colors['gray'][800],
|
|
84
|
+
'--neversink-bg-code-color': colors['gray'][600],
|
|
85
|
+
'--neversink-fg-code-color': colors['white'],
|
|
86
|
+
'--neversink-fg-color': colors['gray'][100],
|
|
87
|
+
'--neversink-text-color': colors['gray'][100],
|
|
88
|
+
'--neversink-border-color': colors['gray'][100],
|
|
89
|
+
'--neversink-highlight-color': '#FFA500',
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
addScheme('neversink-light-scheme', 'ns-c-lt-scheme', {
|
|
93
|
+
'--neversink-bg-color': colors['gray'][100],
|
|
94
|
+
'--neversink-bg-code-color': colors['gray'][200],
|
|
95
|
+
'--neversink-fg-color': colors['gray'][800],
|
|
96
|
+
'--neversink-text-color': colors['gray'][800],
|
|
97
|
+
'--neversink-border-color': colors['gray'][800],
|
|
98
|
+
'--neversink-highlight-color': '#FFA500',
|
|
99
|
+
})
|
|
110
100
|
|
|
111
101
|
for (const color of colornames) {
|
|
112
102
|
if (color == 'navy') {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
'--neversink-bg-code-color': colors['gray'][400],
|
|
131
|
-
'--neversink-fg-color': '#2a373a',
|
|
132
|
-
'--neversink-text-color': '#2a373a',
|
|
133
|
-
'--neversink-border-color': '#2a373a',
|
|
134
|
-
'--neversink-highlight-color': '#FFA500',
|
|
135
|
-
},
|
|
136
|
-
])
|
|
137
|
-
classes.push('neversink-navy-light-scheme')
|
|
103
|
+
addScheme('neversink-navy-scheme', 'ns-c-nv-scheme', {
|
|
104
|
+
'--neversink-bg-color': '#2a373a',
|
|
105
|
+
'--neversink-bg-code-color': colors['gray'][200],
|
|
106
|
+
'--neversink-fg-color': colors['gray'][300],
|
|
107
|
+
'--neversink-text-color': colors['gray'][300],
|
|
108
|
+
'--neversink-border-color': colors['gray'][300],
|
|
109
|
+
'--neversink-highlight-color': '#FFA500',
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
addScheme('neversink-navy-light-scheme', 'ns-c-nv-lt-scheme', {
|
|
113
|
+
'--neversink-bg-color': colors['gray'][50],
|
|
114
|
+
'--neversink-bg-code-color': colors['gray'][400],
|
|
115
|
+
'--neversink-fg-color': '#2a373a',
|
|
116
|
+
'--neversink-text-color': '#2a373a',
|
|
117
|
+
'--neversink-border-color': '#2a373a',
|
|
118
|
+
'--neversink-highlight-color': '#FFA500',
|
|
119
|
+
})
|
|
138
120
|
} else {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
'--neversink-border-color': colors[color][500],
|
|
167
|
-
'--neversink-highlight-color': colors[color][500],
|
|
168
|
-
'--neversink-admon-bg-color': colors[color][100],
|
|
169
|
-
'--neversink-admon-border-color': colors[color][300],
|
|
170
|
-
'--neversink-admon-text-color': colors[color][600],
|
|
171
|
-
},
|
|
172
|
-
])
|
|
173
|
-
classes.push(`neversink-${color}-light-scheme`)
|
|
121
|
+
const shortColor = color.slice(0, 2)
|
|
122
|
+
|
|
123
|
+
addScheme(`neversink-${color}-scheme`, `ns-c-${shortColor}-scheme`, {
|
|
124
|
+
'--neversink-bg-color': colors[color][500],
|
|
125
|
+
'--neversink-bg-code-color': colors[color][600],
|
|
126
|
+
'--neversink-fg-code-color': colors[color][100],
|
|
127
|
+
'--neversink-fg-color': colors[color][100],
|
|
128
|
+
'--neversink-text-color': colors[color][100],
|
|
129
|
+
'--neversink-border-color': colors[color][100],
|
|
130
|
+
'--neversink-highlight-color': colors[color][100],
|
|
131
|
+
'--neversink-admon-bg-color': colors[color][500],
|
|
132
|
+
'--neversink-admon-border-color': colors[color][300],
|
|
133
|
+
'--neversink-admon-text-color': colors[color][100],
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
addScheme(`neversink-${color}-light-scheme`, `ns-c-${shortColor}-lt-scheme`, {
|
|
137
|
+
'--neversink-bg-color': colors[color][100],
|
|
138
|
+
'--neversink-bg-code-color': colors[color][200],
|
|
139
|
+
'--neversink-fg-code-color': colors[color][500],
|
|
140
|
+
'--neversink-fg-color': colors[color][600],
|
|
141
|
+
'--neversink-text-color': colors[color][500],
|
|
142
|
+
'--neversink-border-color': colors[color][500],
|
|
143
|
+
'--neversink-highlight-color': colors[color][500],
|
|
144
|
+
'--neversink-admon-bg-color': colors[color][100],
|
|
145
|
+
'--neversink-admon-border-color': colors[color][300],
|
|
146
|
+
'--neversink-admon-text-color': colors[color][600],
|
|
147
|
+
})
|
|
174
148
|
}
|
|
175
149
|
}
|
|
176
150
|
return { classes: classes, schemes: schemes }
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Markdown Extension Examples
|
|
2
|
-
|
|
3
|
-
This page demonstrates some of the built-in markdown extensions provided by VitePress.
|
|
4
|
-
|
|
5
|
-
## Syntax Highlighting
|
|
6
|
-
|
|
7
|
-
VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
|
|
8
|
-
|
|
9
|
-
**Input**
|
|
10
|
-
|
|
11
|
-
````md
|
|
12
|
-
```js{4}
|
|
13
|
-
export default {
|
|
14
|
-
data () {
|
|
15
|
-
return {
|
|
16
|
-
msg: 'Highlighted!'
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
````
|
|
22
|
-
|
|
23
|
-
**Output**
|
|
24
|
-
|
|
25
|
-
```js{4}
|
|
26
|
-
export default {
|
|
27
|
-
data () {
|
|
28
|
-
return {
|
|
29
|
-
msg: 'Highlighted!'
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Custom Containers
|
|
36
|
-
|
|
37
|
-
**Input**
|
|
38
|
-
|
|
39
|
-
```md
|
|
40
|
-
::: info
|
|
41
|
-
This is an info box.
|
|
42
|
-
:::
|
|
43
|
-
|
|
44
|
-
::: tip
|
|
45
|
-
This is a tip.
|
|
46
|
-
:::
|
|
47
|
-
|
|
48
|
-
::: warning
|
|
49
|
-
This is a warning.
|
|
50
|
-
:::
|
|
51
|
-
|
|
52
|
-
::: danger
|
|
53
|
-
This is a dangerous warning.
|
|
54
|
-
:::
|
|
55
|
-
|
|
56
|
-
::: details
|
|
57
|
-
This is a details block.
|
|
58
|
-
:::
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**Output**
|
|
62
|
-
|
|
63
|
-
::: info
|
|
64
|
-
This is an info box.
|
|
65
|
-
:::
|
|
66
|
-
|
|
67
|
-
::: tip
|
|
68
|
-
This is a tip.
|
|
69
|
-
:::
|
|
70
|
-
|
|
71
|
-
::: warning
|
|
72
|
-
This is a warning.
|
|
73
|
-
:::
|
|
74
|
-
|
|
75
|
-
::: danger
|
|
76
|
-
This is a dangerous warning.
|
|
77
|
-
:::
|
|
78
|
-
|
|
79
|
-
::: details
|
|
80
|
-
This is a details block.
|
|
81
|
-
:::
|
|
82
|
-
|
|
83
|
-
## More
|
|
84
|
-
|
|
85
|
-
Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
|