slidev-theme-neversink 0.0.3 → 0.1.1
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/customizing.md +3 -3
- package/docs/getting-started.md +6 -3
- package/docs/index.md +2 -1
- package/docs/markdown.md +0 -35
- package/docs/public/screenshots/arrowheads.png +0 -0
- package/docs/public/screenshots/email.png +0 -0
- package/docs/styling.md +179 -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/layouts/two-cols-title.vue +13 -1
- package/package.json +1 -1
- package/styles/base.css +9 -18
- package/styles/index.ts +1 -0
- package/styles/neversink-c.css +110 -0
- package/uno.config.ts +90 -115
- package/vite.config.ts +2 -1
- 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/gureckis/slidev-theme-neversink/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/customizing.md
CHANGED
|
@@ -7,7 +7,7 @@ Generally you can customize this theme following the recommendations of [Slidev]
|
|
|
7
7
|
To add custom CSS styles to your project simply create a folder in the same files as your slide markdown file (usually `slides.md`) called `styles`.
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
your-
|
|
10
|
+
your-presentation-folder/
|
|
11
11
|
├── slides.md
|
|
12
12
|
└── styles/
|
|
13
13
|
├── index.ts
|
|
@@ -32,7 +32,7 @@ To customize the fonts used in the theme, you can set the following CSS variable
|
|
|
32
32
|
:root {
|
|
33
33
|
--neversink-title-font: 'Inter', sans-serif;
|
|
34
34
|
--neversink-main-font: 'Inter', sans-serif;
|
|
35
|
-
--neversink-mono-font: '
|
|
36
|
-
--neversink-quote-font: '
|
|
35
|
+
--neversink-mono-font: 'Fira Code', monospace;
|
|
36
|
+
--neversink-quote-font: 'Fira Code', monospace;
|
|
37
37
|
}
|
|
38
38
|
```
|
package/docs/getting-started.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Getting started with Neversink
|
|
2
2
|
|
|
3
|
-
The theme depends on Slidev.
|
|
3
|
+
The theme depends on Node.js and [Slidev](https://sli.dev). If you don't have Node.js installed, you can download it from [nodejs.org](https://nodejs.org/). Once you have Node.js installed, you can create a new Slidev project with the Neversink theme by running the following command:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm
|
|
6
|
+
npm init slidev@latest
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Then
|
|
9
|
+
Then answer the sequence of questions. When it asks for the theme select `neversink`.
|
|
10
|
+
|
|
11
|
+
Alternatively if you already have installed Slidev globally you can just create a slidev markdown file (e.g., `slides.md`) and add the theme to the frontmatter of your first slide:
|
|
10
12
|
|
|
11
13
|
```md
|
|
12
14
|
---
|
|
@@ -23,6 +25,7 @@ If you are new to Slidev highly recommend you check out the [Slidev documentatio
|
|
|
23
25
|
- [Markdown features](markdown.md) - special addons to the Slidev markdown syntax
|
|
24
26
|
- [Color schemes](colors.md) - the color schemes available in Neversink
|
|
25
27
|
- [Branding](branding.md) - how to customize the theme to your brand/logos
|
|
28
|
+
- [Styling](styling.md) - the custom CSS classes available in Neversink
|
|
26
29
|
- [Custom layouts](layouts.md) - the custom slide layouts available in Neversink
|
|
27
30
|
- [Components](components.md) - the custom components such as sticky notes and admonitions
|
|
28
31
|
- [Customizing](customizing.md) - how to customize the theme with your own CSS/fonts, etc...
|
package/docs/index.md
CHANGED
package/docs/markdown.md
CHANGED
|
@@ -50,38 +50,3 @@ This is my ==highlighted text==.
|
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Using the `==` syntax. Like ==this==.
|
|
53
|
-
|
|
54
|
-
## Icon link
|
|
55
|
-
|
|
56
|
-
Drops the underline styling from icons.
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
<a href="https://todd.gureckislab.org" class="iconlink"><mdi-open-in-new /></a>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Tight bullets
|
|
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
|
-
```
|
|
74
|
-
|
|
75
|
-
## V-click faders
|
|
76
|
-
|
|
77
|
-
If you want to fade out a bullet as you step through, add the `class='fader'`
|
|
78
|
-
|
|
79
|
-
```md
|
|
80
|
-
<v-clicks at="+0" class="fader">
|
|
81
|
-
|
|
82
|
-
- This one appears immediately on slide load
|
|
83
|
-
- This is a second click
|
|
84
|
-
- This is a third click
|
|
85
|
-
|
|
86
|
-
</v-clicks>
|
|
87
|
-
```
|
|
Binary file
|
|
Binary file
|
package/docs/styling.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
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
|
+
## V-click faders
|
|
41
|
+
|
|
42
|
+
If you want to fade out a bullet as you step through, add the `class='ns-c-fader'`
|
|
43
|
+
|
|
44
|
+
```md
|
|
45
|
+
<v-clicks at="+0" class="ns-c-fader">
|
|
46
|
+
|
|
47
|
+
- This one appears immediately on slide load
|
|
48
|
+
- This is a second click
|
|
49
|
+
- This is a third click
|
|
50
|
+
|
|
51
|
+
</v-clicks>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## References
|
|
55
|
+
|
|
56
|
+
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
|
|
57
|
+
applies a smaller, italic, and gray color to the text.
|
|
58
|
+
|
|
59
|
+
```css
|
|
60
|
+
.ns-c-cite {
|
|
61
|
+
font-size: 0.75em;
|
|
62
|
+
font-style: italic;
|
|
63
|
+
@apply text-gray-400;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
To position the cittion on the bottom left of the slide add `ns-c-cite-bl` for `bottom-left`.
|
|
68
|
+
|
|
69
|
+
```css
|
|
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
|
+
|
|
78
|
+
## Quote
|
|
79
|
+
|
|
80
|
+
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.
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
.ns-c-quote {
|
|
84
|
+
font-family: var(--neversink-quote-font);
|
|
85
|
+
font-weight: 300;
|
|
86
|
+
@apply leading-relaxed;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Icon links
|
|
91
|
+
|
|
92
|
+
If you write an icon in a link it includes the underline styleing. To remove that use
|
|
93
|
+
`ns-c-iconlink`.
|
|
94
|
+
|
|
95
|
+
```css
|
|
96
|
+
/* for links that are icons. removes underlining which is default for links in markdown parser */
|
|
97
|
+
.ns-c-iconlink a {
|
|
98
|
+
border-style: none !important;
|
|
99
|
+
border-bottom: none !important;
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Grids
|
|
104
|
+
|
|
105
|
+
This is not a specific `ns-c-` class but a general unocss/tailwind utility for making grids.
|
|
106
|
+
|
|
107
|
+
```html
|
|
108
|
+
<div class="grid grid-cols-2 gap-4 w-full">
|
|
109
|
+
<div class="grid-item grid-span-1 center">Row 1, Col 1</div>
|
|
110
|
+
<div class="grid-item grid-span-1 center">Row 1, Col 2</div>
|
|
111
|
+
<div class="grid-item grid-span-1 center">Row 2, Col 1</div>
|
|
112
|
+
<div class="grid-item grid-span-1 center">Row 2, Col 2</div>
|
|
113
|
+
</div>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### For putting images in grids
|
|
117
|
+
|
|
118
|
+
If you want to put images in a grid and have them fill the space you can use the `ns-c-imgtile` class.
|
|
119
|
+
|
|
120
|
+
```css
|
|
121
|
+
.ns-c-imgtile img {
|
|
122
|
+
width: 100%;
|
|
123
|
+
height: fit-content;
|
|
124
|
+
object-fit: cover;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
then you use it like this:
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<div class="grid grid-cols-2 gap-4 w-full">
|
|
132
|
+
<div class="grid-item grid-span-1 center"><img src="/images/img1.jpg" /></div>
|
|
133
|
+
<div class="grid-item grid-span-1 center"><img src="/images/img2.jpg" /></div>
|
|
134
|
+
<div class="grid-item grid-span-1 center"><img src="/images/img3.jpg" /></div>
|
|
135
|
+
<div class="grid-item grid-span-1 center"><img src="/images/img4.jpg" /></div>
|
|
136
|
+
</div>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Columns
|
|
140
|
+
|
|
141
|
+
To make side by side columns use a flex box with `flex-wrap` and `w-1/X` where X is the proportion you want to give to each column.
|
|
142
|
+
|
|
143
|
+
```html
|
|
144
|
+
<div class="flex flex-wrap ">
|
|
145
|
+
<div class="w-1/5">Hit wall</div>
|
|
146
|
+
<div class="w-1/5">Hit wall and goes on floor</div>
|
|
147
|
+
<div class="w-1/5">Hit wall and goes in bucket</div>
|
|
148
|
+
<div class="w-1/5">Misses wall</div>
|
|
149
|
+
<div class="w-1/5">Hit bucket and then hits walls</div>
|
|
150
|
+
</div>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
To add a border
|
|
154
|
+
|
|
155
|
+
```html
|
|
156
|
+
<div class="flex flex-wrap ">
|
|
157
|
+
<div class="w-1/5 border-1 border-r-0">Hit wall</div>
|
|
158
|
+
<div class="w-1/5 border-1 border-r-0">Hit wall and goes on floor</div>
|
|
159
|
+
<div class="w-1/5 border-1 border-r-0">Hit wall and goes in bucket</div>
|
|
160
|
+
<div class="w-1/5 border-1 border-r-0">Misses wall</div>
|
|
161
|
+
<div class="w-1/5 border-1">Hit bucket and then hits walls</div>
|
|
162
|
+
</div>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Borders
|
|
166
|
+
|
|
167
|
+
I forgot why i made this utility
|
|
168
|
+
|
|
169
|
+
```css
|
|
170
|
+
.ns-c-border {
|
|
171
|
+
border-left: 0.25em solid var(--neversink-text-color);
|
|
172
|
+
background-color: var(--neversink-bg-color);
|
|
173
|
+
color: var(--neversink-text-color);
|
|
174
|
+
margin-top: 0.5em;
|
|
175
|
+
margin-bottom: 0.5em;
|
|
176
|
+
padding-left: 1em;
|
|
177
|
+
padding-right: 1em;
|
|
178
|
+
}
|
|
179
|
+
```
|
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>
|
|
@@ -105,7 +105,7 @@ const flexclass = computed(() => {
|
|
|
105
105
|
</div>
|
|
106
106
|
</template>
|
|
107
107
|
|
|
108
|
-
<style
|
|
108
|
+
<style>
|
|
109
109
|
.slidev-layout.two-cols-header,
|
|
110
110
|
.slidev-layout.two-cols-footer {
|
|
111
111
|
display: grid;
|
|
@@ -129,6 +129,18 @@ const flexclass = computed(() => {
|
|
|
129
129
|
margin-bottom: 1rem;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
.slidev-layout.two-cols-header .title h1 + p,
|
|
133
|
+
.slidev-layout.two-cols-footer .title h1 + p {
|
|
134
|
+
margin-top: 0.2em;
|
|
135
|
+
margin-bottom: 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.slidev-layout.two-cols-header .title p,
|
|
139
|
+
.slidev-layout.two-cols-footer .title p {
|
|
140
|
+
margin-top: 0.2em;
|
|
141
|
+
margin-bottom: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
132
144
|
.slidev-layout.two-cols .left-col,
|
|
133
145
|
.slidev-layout.two-cols-header .left-col,
|
|
134
146
|
.slidev-layout.two-cols-footer .left-col {
|
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,16 +26,17 @@
|
|
|
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
|
-
|
|
35
|
-
.
|
|
36
|
-
line-height: 1em;
|
|
37
|
-
margin-bottom: 0.5em;
|
|
38
|
+
.slidev-layout ul {
|
|
39
|
+
margin-top: 0.7em;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/* change the bold and strong fonts */
|
|
@@ -73,12 +75,6 @@
|
|
|
73
75
|
font-weight: 300;
|
|
74
76
|
}
|
|
75
77
|
|
|
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
78
|
/* default layout */
|
|
83
79
|
|
|
84
80
|
.my-auto p {
|
|
@@ -196,11 +192,6 @@ img {
|
|
|
196
192
|
pointer-events: none;
|
|
197
193
|
}
|
|
198
194
|
|
|
199
|
-
.fader .slidev-vclick-prior {
|
|
200
|
-
opacity: 0.3;
|
|
201
|
-
pointer-events: none;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
195
|
html.dark {
|
|
205
196
|
/* dark mode css here */
|
|
206
197
|
.lectureno {
|
package/styles/index.ts
CHANGED
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
margin-top: 0.4em;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.ns-c-verytight li {
|
|
56
|
+
line-height: normal;
|
|
57
|
+
margin-bottom: 0.1em;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ns-c-supertight li {
|
|
61
|
+
line-height: normal;
|
|
62
|
+
margin-bottom: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ns-c-cite {
|
|
66
|
+
font-size: 0.75em;
|
|
67
|
+
font-style: italic;
|
|
68
|
+
@apply text-gray-400;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.ns-c-cite-bl {
|
|
72
|
+
text-align: left;
|
|
73
|
+
margin-bottom: 0.85em;
|
|
74
|
+
margin-left: 1.5em;
|
|
75
|
+
margin-top: auto;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ns-c-quote {
|
|
79
|
+
font-family: var(--neversink-quote-font);
|
|
80
|
+
font-weight: 300;
|
|
81
|
+
@apply leading-relaxed;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.ns-c-border {
|
|
85
|
+
border-left: 0.25em solid var(--neversink-text-color);
|
|
86
|
+
background-color: var(--neversink-bg-color);
|
|
87
|
+
color: var(--neversink-text-color);
|
|
88
|
+
margin-top: 0.5em;
|
|
89
|
+
margin-bottom: 0.5em;
|
|
90
|
+
padding-left: 1em;
|
|
91
|
+
padding-right: 1em;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.ns-c-imgtile img {
|
|
95
|
+
width: 100%;
|
|
96
|
+
height: fit-content;
|
|
97
|
+
object-fit: cover;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* for links that are icons. removes underlining which is default for links in markdown parser */
|
|
101
|
+
.ns-c-iconlink a {
|
|
102
|
+
border-style: none !important;
|
|
103
|
+
border-bottom: none !important;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* fader for past bullets */
|
|
107
|
+
.ns-c-fader .slidev-vclick-prior {
|
|
108
|
+
opacity: 0.3;
|
|
109
|
+
pointer-events: none;
|
|
110
|
+
}
|
package/uno.config.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { defineConfig } from 'unocss'
|
|
|
3
3
|
import presetUno from '@unocss/preset-uno'
|
|
4
4
|
import { colors } from '@unocss/preset-mini'
|
|
5
5
|
import transformerDirectives from '@unocss/transformer-directives'
|
|
6
|
+
import { version } from './package.json'
|
|
6
7
|
|
|
7
8
|
// Tailwind CSS color palette
|
|
8
9
|
const colornames = [
|
|
@@ -53,124 +54,98 @@ const generate_color_schemes = (colors) => {
|
|
|
53
54
|
const schemes = []
|
|
54
55
|
const classes = []
|
|
55
56
|
|
|
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')
|
|
57
|
+
const addScheme = (longName, shortName, styles) => {
|
|
58
|
+
schemes.push([longName, styles])
|
|
59
|
+
schemes.push([shortName, styles])
|
|
60
|
+
classes.push(longName, shortName)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
addScheme('neversink-black-scheme', 'ns-c-bk-scheme', {
|
|
64
|
+
'--neversink-bg-color': colors['black'],
|
|
65
|
+
'--neversink-bg-code-color': colors['gray'][600],
|
|
66
|
+
'--neversink-fg-code-color': colors['white'],
|
|
67
|
+
'--neversink-fg-color': colors['white'],
|
|
68
|
+
'--neversink-text-color': colors['white'],
|
|
69
|
+
'--neversink-border-color': colors['white'],
|
|
70
|
+
'--neversink-highlight-color': '#FFA500',
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
addScheme('neversink-white-scheme', 'ns-c-wh-scheme', {
|
|
74
|
+
'--neversink-bg-color': colors['white'],
|
|
75
|
+
'--neversink-bg-code-color': colors['gray'][100],
|
|
76
|
+
'--neversink-fg-code-color': colors['black'],
|
|
77
|
+
'--neversink-fg-color': colors['black'],
|
|
78
|
+
'--neversink-text-color': colors['black'],
|
|
79
|
+
'--neversink-border-color': colors['gray'][950],
|
|
80
|
+
'--neversink-highlight-color': '#FFA500',
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
addScheme('neversink-dark-scheme', 'ns-c-dk-scheme', {
|
|
84
|
+
'--neversink-bg-color': colors['gray'][800],
|
|
85
|
+
'--neversink-bg-code-color': colors['gray'][600],
|
|
86
|
+
'--neversink-fg-code-color': colors['white'],
|
|
87
|
+
'--neversink-fg-color': colors['gray'][100],
|
|
88
|
+
'--neversink-text-color': colors['gray'][100],
|
|
89
|
+
'--neversink-border-color': colors['gray'][100],
|
|
90
|
+
'--neversink-highlight-color': '#FFA500',
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
addScheme('neversink-light-scheme', 'ns-c-lt-scheme', {
|
|
94
|
+
'--neversink-bg-color': colors['gray'][100],
|
|
95
|
+
'--neversink-bg-code-color': colors['gray'][200],
|
|
96
|
+
'--neversink-fg-color': colors['gray'][800],
|
|
97
|
+
'--neversink-text-color': colors['gray'][800],
|
|
98
|
+
'--neversink-border-color': colors['gray'][800],
|
|
99
|
+
'--neversink-highlight-color': '#FFA500',
|
|
100
|
+
})
|
|
110
101
|
|
|
111
102
|
for (const color of colornames) {
|
|
112
103
|
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')
|
|
104
|
+
addScheme('neversink-navy-scheme', 'ns-c-nv-scheme', {
|
|
105
|
+
'--neversink-bg-color': '#2a373a',
|
|
106
|
+
'--neversink-bg-code-color': colors['gray'][200],
|
|
107
|
+
'--neversink-fg-color': colors['gray'][300],
|
|
108
|
+
'--neversink-text-color': colors['gray'][300],
|
|
109
|
+
'--neversink-border-color': colors['gray'][300],
|
|
110
|
+
'--neversink-highlight-color': '#FFA500',
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
addScheme('neversink-navy-light-scheme', 'ns-c-nv-lt-scheme', {
|
|
114
|
+
'--neversink-bg-color': colors['gray'][50],
|
|
115
|
+
'--neversink-bg-code-color': colors['gray'][400],
|
|
116
|
+
'--neversink-fg-color': '#2a373a',
|
|
117
|
+
'--neversink-text-color': '#2a373a',
|
|
118
|
+
'--neversink-border-color': '#2a373a',
|
|
119
|
+
'--neversink-highlight-color': '#FFA500',
|
|
120
|
+
})
|
|
138
121
|
} 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`)
|
|
122
|
+
const shortColor = color.slice(0, 2)
|
|
123
|
+
|
|
124
|
+
addScheme(`neversink-${color}-scheme`, `ns-c-${shortColor}-scheme`, {
|
|
125
|
+
'--neversink-bg-color': colors[color][500],
|
|
126
|
+
'--neversink-bg-code-color': colors[color][600],
|
|
127
|
+
'--neversink-fg-code-color': colors[color][100],
|
|
128
|
+
'--neversink-fg-color': colors[color][100],
|
|
129
|
+
'--neversink-text-color': colors[color][100],
|
|
130
|
+
'--neversink-border-color': colors[color][100],
|
|
131
|
+
'--neversink-highlight-color': colors[color][100],
|
|
132
|
+
'--neversink-admon-bg-color': colors[color][500],
|
|
133
|
+
'--neversink-admon-border-color': colors[color][300],
|
|
134
|
+
'--neversink-admon-text-color': colors[color][100],
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
addScheme(`neversink-${color}-light-scheme`, `ns-c-${shortColor}-lt-scheme`, {
|
|
138
|
+
'--neversink-bg-color': colors[color][100],
|
|
139
|
+
'--neversink-bg-code-color': colors[color][200],
|
|
140
|
+
'--neversink-fg-code-color': colors[color][500],
|
|
141
|
+
'--neversink-fg-color': colors[color][600],
|
|
142
|
+
'--neversink-text-color': colors[color][500],
|
|
143
|
+
'--neversink-border-color': colors[color][500],
|
|
144
|
+
'--neversink-highlight-color': colors[color][500],
|
|
145
|
+
'--neversink-admon-bg-color': colors[color][100],
|
|
146
|
+
'--neversink-admon-border-color': colors[color][300],
|
|
147
|
+
'--neversink-admon-text-color': colors[color][600],
|
|
148
|
+
})
|
|
174
149
|
}
|
|
175
150
|
}
|
|
176
151
|
return { classes: classes, schemes: schemes }
|
|
@@ -195,7 +170,7 @@ const generateRows = (max) => {
|
|
|
195
170
|
|
|
196
171
|
const schemes = generate_color_schemes(colors)
|
|
197
172
|
|
|
198
|
-
console.log(
|
|
173
|
+
console.log(`Loading Neversink ${version} theme uno.config.ts...`)
|
|
199
174
|
export default defineConfig({
|
|
200
175
|
// ...UnoCSS options
|
|
201
176
|
presets: [presetUno()],
|
package/vite.config.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { defineConfig } from 'vite'
|
|
|
2
2
|
//import MarkdownItMagicLink from 'markdown-it-magic-link'
|
|
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
|
-
console.log(
|
|
7
|
+
console.log(`Loading Neversink ${version} theme vite.config.ts...`)
|
|
7
8
|
export default defineConfig({
|
|
8
9
|
slidev: {
|
|
9
10
|
markdown: {
|
|
@@ -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).
|