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.
Binary file
Binary file
@@ -0,0 +1,6 @@
1
+ <script setup>
2
+ import imgUrl from '../assets/arrowheads.png'
3
+ </script>
4
+ <template>
5
+ <img :src="imgUrl" alt="Arrowhead" class="w-30" />
6
+ </template>
@@ -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/academia oriented Slidev theme with whimsical elements',
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/vuejs/vitepress' }],
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: black;
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" />
@@ -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
@@ -3,7 +3,8 @@
3
3
  layout: home
4
4
 
5
5
  hero:
6
- name: 'Neversink'
6
+ name: ''
7
+ text: 'Neversink'
7
8
  tagline: An education/academic Slidev theme
8
9
  actions:
9
10
  - theme: brand
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
- ## 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
- ```
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
+ ````
@@ -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
- quote: "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: text2xl` and `authorsize: text-l`). I feel it is a little uninspired but might save you some time."
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="my-auto w-full">
23
+ <div class="myauto w-full">
24
24
  <slot />
25
25
  </div>
26
- <div class="absolute bottom-10">
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-14 pt-2 pb-2 slidecolor" :class="colorscheme">
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="slidev-layout toptitlecontent h-fit w-full">
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;
@@ -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-14 pt-2 pb-2 slidecolor" :class="colorscheme">
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 toptitlecontent h-fit w-full">
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slidev-theme-neversink",
3
- "version": "0.0.3",
3
+ "version": "0.1.0",
4
4
  "author": "gureckis",
5
5
  "type": "module",
6
6
  "keywords": [
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: 'Inter', monospace;
9
- --neversink-quote-font: 'Fire Code', monospace;
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.015em;
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
@@ -5,6 +5,7 @@ import './bubbles.css'
5
5
  import './stickynote.css'
6
6
  import './base.css'
7
7
  import './colors.css'
8
+ import './neversink-c.css'
8
9
 
9
10
  // import './code.css'
10
11
  // import './layout.css'
@@ -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
- schemes.push([
57
- `neversink-black-scheme`,
58
- {
59
- '--neversink-bg-color': colors['black'],
60
- '--neversink-bg-code-color': colors['gray'][600],
61
- '--neversink-fg-code-color': colors['white'],
62
- '--neversink-fg-color': colors['white'],
63
- '--neversink-text-color': colors['white'],
64
- '--neversink-border-color': colors['white'],
65
- '--neversink-highlight-color': '#FFA500',
66
- },
67
- ])
68
- classes.push('neversink-black-scheme')
69
-
70
- schemes.push([
71
- `neversink-white-scheme`,
72
- {
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
- classes.push('neversink-white-scheme')
83
-
84
- schemes.push([
85
- `neversink-dark-scheme`,
86
- {
87
- '--neversink-bg-color': colors['gray'][800],
88
- '--neversink-bg-code-color': colors['gray'][600],
89
- '--neversink-fg-code-color': colors['white'],
90
- '--neversink-fg-color': colors['gray'][100],
91
- '--neversink-text-color': colors['gray'][100],
92
- '--neversink-border-color': colors['gray'][100],
93
- '--neversink-highlight-color': '#FFA500',
94
- },
95
- ])
96
- classes.push('neversink-dark-scheme')
97
-
98
- schemes.push([
99
- `neversink-light-scheme`,
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
- schemes.push([
114
- `neversink-navy-scheme`,
115
- {
116
- '--neversink-bg-color': '#2a373a',
117
- '--neversink-bg-code-color': colors['gray'][200],
118
- '--neversink-fg-color': colors['gray'][300],
119
- '--neversink-text-color': colors['gray'][300],
120
- '--neversink-border-color': colors['gray'][300],
121
- '--neversink-highlight-color': '#FFA500',
122
- },
123
- ])
124
- classes.push('neversink-navy-scheme')
125
-
126
- schemes.push([
127
- `neversink-navy-light-scheme`,
128
- {
129
- '--neversink-bg-color': colors['gray'][50],
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
- // push the normal theme
140
- schemes.push([
141
- `neversink-${color}-scheme`,
142
- {
143
- '--neversink-bg-color': colors[color][500],
144
- '--neversink-bg-code-color': colors[color][600],
145
- '--neversink-fg-code-color': colors[color][100],
146
- '--neversink-fg-color': colors[color][100],
147
- '--neversink-text-color': colors[color][100],
148
- '--neversink-border-color': colors[color][100],
149
- '--neversink-highlight-color': colors[color][100],
150
- '--neversink-admon-bg-color': colors[color][500],
151
- '--neversink-admon-border-color': colors[color][300],
152
- '--neversink-admon-text-color': colors[color][100],
153
- },
154
- ])
155
- classes.push(`neversink-${color}-scheme`)
156
-
157
- // push the light theme
158
- schemes.push([
159
- `neversink-${color}-light-scheme`,
160
- {
161
- '--neversink-bg-color': colors[color][100],
162
- '--neversink-bg-code-color': colors[color][200],
163
- '--neversink-fg-code-color': colors[color][500],
164
- '--neversink-fg-color': colors[color][600],
165
- '--neversink-text-color': colors[color][500],
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).