slidev-theme-neversink 0.1.0 → 0.2.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.
@@ -17,7 +17,7 @@ export default defineConfig({
17
17
  { text: 'Example Deck', link: 'https://gureckis.github.io/slidev-theme-neversink/example/#1', target: '_self' },
18
18
  {
19
19
  text: `v${version}`,
20
- items: [{ text: 'Release Notes', link: 'https://github.com/slidevjs/slidev/releases' }],
20
+ items: [{ text: 'Release Notes', link: 'https://github.com/gureckis/slidev-theme-neversink/releases' }],
21
21
  },
22
22
  ],
23
23
 
@@ -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-slidev/
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: 'Inter', monospace;
36
- --neversink-quote-font: 'Fire Code', monospace;
35
+ --neversink-mono-font: 'Fira Code', monospace;
36
+ --neversink-quote-font: 'Fira Code', monospace;
37
37
  }
38
38
  ```
@@ -1,12 +1,14 @@
1
1
  # Getting started with Neversink
2
2
 
3
- The theme depends on Slidev. So you need to have that [installed first](https://sli.dev/guide/install). Then you can install the theme with npm:
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 install slidev-theme-neversink
6
+ npm init slidev@latest
7
7
  ```
8
8
 
9
- Then create a slidev markdown file (e.g., `slides.md`) and add the theme to the frontmatter of your first slide:
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/markdown.md CHANGED
@@ -50,27 +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
- ````
63
-
64
- ## V-click faders
65
-
66
- If you want to fade out a bullet as you step through, add the `class='fader'`
67
-
68
- ```md
69
- <v-clicks at="+0" class="fader">
70
-
71
- - This one appears immediately on slide load
72
- - This is a second click
73
- - This is a third click
74
-
75
- </v-clicks>
76
- ````
package/docs/styling.md CHANGED
@@ -37,6 +37,20 @@ If you want to make bullets a little closer together to make spaceadd the `class
37
37
 
38
38
  Other options are `ns-c-tight` and `ns-c-supertight`.
39
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
+
40
54
  ## References
41
55
 
42
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
@@ -86,9 +100,24 @@ If you write an icon in a link it includes the underline styleing. To remove tha
86
100
  }
87
101
  ```
88
102
 
89
- ## For putting images in grids
103
+ ## Grids
90
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>
91
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
92
121
  .ns-c-imgtile img {
93
122
  width: 100%;
94
123
  height: fit-content;
@@ -96,7 +125,44 @@ If you write an icon in a link it includes the underline styleing. To remove tha
96
125
  }
97
126
  ```
98
127
 
99
- ## Border
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
100
166
 
101
167
  I forgot why i made this utility
102
168
 
package/layoutHelper.ts CHANGED
@@ -34,29 +34,29 @@ export function handleBackground(background?: string, dim = false): CSSPropertie
34
34
  export function compute_alignment(val) {
35
35
  switch (val) {
36
36
  case 'ct':
37
- return 'center top'
37
+ return 'ns-c-center ns-c-top'
38
38
  case 'cm':
39
- return 'center middle'
39
+ return 'ns-c-center ns-c-middle'
40
40
  case 'cb':
41
- return 'center bottom'
41
+ return 'ns-c-center ns-c-bottom'
42
42
  case 'lt':
43
- return 'left top'
43
+ return 'ns-c-left ns-c-top'
44
44
  case 'lm':
45
- return 'left middle'
45
+ return 'ns-c-left ns-c-middle'
46
46
  case 'lb':
47
- return 'left bottom'
47
+ return 'ns-c-left ns-c-bottom'
48
48
  case 'rt':
49
- return 'right top'
49
+ return 'ns-c-right ns-c-top'
50
50
  case 'rm':
51
- return 'right middle'
51
+ return 'ns-c-right ns-c-middle'
52
52
  case 'rb':
53
- return 'right bottom'
53
+ return 'ns-c-right ns-c-bottom'
54
54
  case 'c':
55
- return 'center top'
55
+ return 'ns-c-center ns-c-top'
56
56
  case 'l':
57
- return 'left top'
57
+ return 'ns-c-left ns-c-top'
58
58
  case 'r':
59
- return 'right top'
59
+ return 'ns-c-right ns-c-top'
60
60
  default:
61
61
  return 'error'
62
62
  }
@@ -50,7 +50,7 @@ const colorscheme = computed(() => {
50
50
  </script>
51
51
  <template>
52
52
  <div v-if="side == 'error' || colwidth == 'error'" class="slidev-layout default error">
53
- <span class="warning"><b>Error</b>: invalid layout params.</span>
53
+ <span class="ns-c-warning"><b>Error</b>: invalid layout params.</span>
54
54
  <hr />
55
55
  <p>
56
56
  There are three parameters: <code>color</code>, <code>columns</code> and <code>align</code>. Currently:
@@ -32,7 +32,7 @@ const colorscheme = computed(() => {
32
32
  v-if="colwidth == 'error' || alignment.t == 'error' || alignment.l == 'error' || alignment.r == 'error'"
33
33
  class="slidev-layout default error"
34
34
  >
35
- <span class="warning"><b>Error</b>: invalid layout params.</span>
35
+ <span class="ns-c-warning"><b>Error</b>: invalid layout params.</span>
36
36
  <hr />
37
37
  <p>
38
38
  There are three parameters: <code>columns</code>, <code>align</code>, and <code>color</code>. Currently:
@@ -23,7 +23,7 @@ const colorscheme = computed(() => {
23
23
  </script>
24
24
  <template>
25
25
  <div v-if="alignment == 'error'" class="slidev-layout default error">
26
- <span class="warning"><b>Error</b>: invalid layout params.</span>
26
+ <span class="ns-c-warning"><b>Error</b>: invalid layout params.</span>
27
27
  <hr />
28
28
  <p>
29
29
  There are two parameters: <code>color</code> <code>align</code>. Currently:
@@ -54,7 +54,7 @@ const flexclass = computed(() => {
54
54
  v-if="colwidth == 'error' || alignment.t == 'error' || alignment.l == 'error' || alignment.r == 'error'"
55
55
  class="slidev-layout default error"
56
56
  >
57
- <span class="warning"><b>Error</b>: invalid layout params.</span>
57
+ <span class="ns-c-warning"><b>Error</b>: invalid layout params.</span>
58
58
  <hr />
59
59
  <p>
60
60
  There are four parameters: <code>columns</code>, <code>align</code>, <code>color</code>, and
@@ -105,7 +105,7 @@ const flexclass = computed(() => {
105
105
  </div>
106
106
  </template>
107
107
 
108
- <style scoped>
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 {
@@ -35,7 +35,7 @@ const colorscheme = computed(() => {
35
35
  v-if="colwidth == 'error' || alignment.l == 'error' || alignment.r == 'error'"
36
36
  class="slidev-layout default error"
37
37
  >
38
- <span class="warning"><b>Error</b>: invalid layout params.</span>
38
+ <span class="ns-c-warning"><b>Error</b>: invalid layout params.</span>
39
39
  <hr />
40
40
  <p>
41
41
  There are two parameters: <code>columns</code> and <code>align</code>. Currently:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slidev-theme-neversink",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "author": "gureckis",
5
5
  "type": "module",
6
6
  "keywords": [
package/styles/base.css CHANGED
@@ -35,6 +35,10 @@
35
35
  line-height: 1.5em;
36
36
  }
37
37
 
38
+ .slidev-layout ul {
39
+ margin-top: 0.7em;
40
+ }
41
+
38
42
  /* change the bold and strong fonts */
39
43
  .slidev-layout strong,
40
44
  .slidev-layout b {
@@ -125,50 +129,6 @@
125
129
  margin-top: 1.5em;
126
130
  }
127
131
 
128
- /* columns stuff */
129
- .warning {
130
- color: red;
131
- }
132
- .error {
133
- font-size: 0.9em;
134
- }
135
-
136
- .left {
137
- justify-content: left; /* Left align the content */
138
- text-align: left;
139
- align-items: start;
140
- }
141
-
142
- .center {
143
- justify-content: center; /* Horizontally center the content */
144
- text-align: center;
145
- align-items: center;
146
- }
147
-
148
- .right {
149
- justify-content: right; /* Right align the content */
150
- text-align: right;
151
- align-items: end;
152
- }
153
-
154
- .top {
155
- margin-top: 0;
156
- margin-bottom: auto;
157
- }
158
- .middle {
159
- margin-top: auto;
160
- margin-bottom: auto;
161
- }
162
- .bottom {
163
- margin-top: auto;
164
- margin-bottom: 0;
165
- }
166
-
167
- /* a new tight bullet list */
168
- /* .tight {
169
- margin-top: 1em;
170
- } */
171
-
172
132
  .bwimg {
173
133
  filter: grayscale(100%) contrast(150%) brightness(120%);
174
134
  display: inline;
@@ -188,11 +148,6 @@ img {
188
148
  pointer-events: none;
189
149
  }
190
150
 
191
- .ns-c-fader .slidev-vclick-prior {
192
- opacity: 0.3;
193
- pointer-events: none;
194
- }
195
-
196
151
  html.dark {
197
152
  /* dark mode css here */
198
153
  .lectureno {
@@ -45,10 +45,51 @@
45
45
 
46
46
 
47
47
  */
48
+
49
+ /* columns stuff */
50
+ .ns-c-warning {
51
+ color: red;
52
+ }
53
+ .ns-c-error {
54
+ font-size: 0.9em;
55
+ }
56
+
57
+ .ns-c-left {
58
+ justify-content: left; /* Left align the content */
59
+ text-align: left;
60
+ align-items: start;
61
+ }
62
+
63
+ .ns-c-center {
64
+ justify-content: center; /* Horizontally center the content */
65
+ text-align: center;
66
+ align-items: center;
67
+ }
68
+
69
+ .ns-c-right {
70
+ justify-content: right; /* Right align the content */
71
+ text-align: right;
72
+ align-items: end;
73
+ }
74
+
75
+ .ns-c-top {
76
+ margin-top: 0;
77
+ margin-bottom: auto;
78
+ }
79
+ .ns-c-middle {
80
+ margin-top: auto;
81
+ margin-bottom: auto;
82
+ }
83
+ .ns-c-bottom {
84
+ margin-top: auto;
85
+ margin-bottom: 0;
86
+ }
87
+
48
88
  /* adds a modifier class which reduces the space between bullets */
49
89
  .ns-c-tight li {
50
90
  line-height: normal;
51
91
  margin-bottom: 0.4em;
92
+ margin-top: 0.4em;
52
93
  }
53
94
 
54
95
  .ns-c-verytight li {
@@ -101,3 +142,9 @@
101
142
  border-style: none !important;
102
143
  border-bottom: none !important;
103
144
  }
145
+
146
+ /* fader for past bullets */
147
+ .ns-c-fader .slidev-vclick-prior {
148
+ opacity: 0.3;
149
+ pointer-events: none;
150
+ }
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 = [
@@ -169,7 +170,7 @@ const generateRows = (max) => {
169
170
 
170
171
  const schemes = generate_color_schemes(colors)
171
172
 
172
- console.log('Loading Neversink theme uno.config.ts...')
173
+ console.log(`Loading Neversink ${version} theme uno.config.ts...`)
173
174
  export default defineConfig({
174
175
  // ...UnoCSS options
175
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('Loading Neversink theme vite.config.ts...')
7
+ console.log(`Loading Neversink ${version} theme vite.config.ts...`)
7
8
  export default defineConfig({
8
9
  slidev: {
9
10
  markdown: {