starlight-theme-celestia 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.
- package/lib/aside.css +13 -0
- package/lib/badge.css +23 -0
- package/lib/card.css +42 -0
- package/lib/fonts.css +4 -0
- package/lib/layer.css +31 -0
- package/lib/markdown.css +71 -0
- package/lib/shiki.css +79 -0
- package/lib/styles.css +6 -0
- package/lib/tailwind.build.css +2 -0
- package/lib/tailwind.css +29 -0
- package/lib/tailwind.gen.css +1197 -0
- package/lib/theme.css +94 -0
- package/package.json +56 -0
- package/src/astro.d.ts +6 -0
- package/src/components/Code.astro +12 -0
- package/src/components/CodeCopy.astro +39 -0
- package/src/components/CodeFile.astro +64 -0
- package/src/components/CodePackageManagers.astro +55 -0
- package/src/components/CodeTabItem.astro +13 -0
- package/src/components/CodeTabs.astro +67 -0
- package/src/components/Head.astro +7 -0
- package/src/components/Header.astro +91 -0
- package/src/components/Hero.astro +169 -0
- package/src/components/LanguageSelect.astro +5 -0
- package/src/components/LinkButton.astro +47 -0
- package/src/components/LinkButtonIcon.astro +22 -0
- package/src/components/LinkCard.astro +32 -0
- package/src/components/MarkdownContent.astro +22 -0
- package/src/components/MobileMenuFooter.astro +11 -0
- package/src/components/MobileMenuToggle.astro +23 -0
- package/src/components/MobileTableOfContents.astro +26 -0
- package/src/components/PageFrame.astro +50 -0
- package/src/components/Pagination.astro +34 -0
- package/src/components/PaginationLink.astro +30 -0
- package/src/components/Search.astro +645 -0
- package/src/components/SiteTitle.astro +47 -0
- package/src/components/SiteTitleVersioned.astro +62 -0
- package/src/components/SocialIcons.astro +31 -0
- package/src/components/ThemeProvider.astro +102 -0
- package/src/components/ThemeSelect.astro +188 -0
- package/src/components/TwoColumnContent.astro +44 -0
- package/src/components/VersionSelect.astro +261 -0
- package/src/components/get-i18n-text.ts +39 -0
- package/src/components/index.ts +7 -0
- package/src/components/mobile-menu-toggle.ts +49 -0
- package/src/components/rehype-code-tabs.ts +52 -0
- package/src/constants.ts +7 -0
- package/src/content.config.ts +16 -0
- package/src/content.d.ts +22 -0
- package/src/icons/lucide-arrow-left.svg +1 -0
- package/src/icons/lucide-arrow-right.svg +1 -0
- package/src/icons/lucide-check.svg +1 -0
- package/src/icons/lucide-chevron-left.svg +1 -0
- package/src/icons/lucide-chevron-right.svg +1 -0
- package/src/icons/lucide-clipboard.svg +1 -0
- package/src/icons/lucide-menu.svg +1 -0
- package/src/icons/lucide-search.svg +1 -0
- package/src/icons/lucide-x.svg +1 -0
- package/src/icons/tabler-moon-filled.svg +1 -0
- package/src/icons/tabler-sun-high-filled.svg +1 -0
- package/src/index.ts +112 -0
- package/src/shiki-config.ts +49 -0
- package/src/shiki-meta-title.ts +6 -0
- package/src/shiki-transformer-container.ts +85 -0
- package/src/types.d.ts +2 -0
- package/src/user-options.ts +37 -0
- package/src/virtual-internal.d.ts +44 -0
- package/src/virtual-user-config.ts +44 -0
package/lib/aside.css
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
.starlight-aside {
|
|
2
|
+
border: 1px solid var(--sl-color-asides-border);
|
|
3
|
+
border-radius: 0.5rem;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.starlight-aside,
|
|
7
|
+
.starlight-aside a {
|
|
8
|
+
color: color-mix(in srgb, var(--sl-color-asides-text-accent) 50%, var(--sl-color-white));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.starlight-aside a:is(:hover, :focus-visible) {
|
|
12
|
+
color: var(--sl-color-asides-text-accent);
|
|
13
|
+
}
|
package/lib/badge.css
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.sl-badge {
|
|
2
|
+
--sl-badge-default-border: var(--sl-color-accent);
|
|
3
|
+
--sl-badge-default-bg: var(--sl-color-accent-low);
|
|
4
|
+
--sl-badge-default-text: var(--sl-color-accent-high);
|
|
5
|
+
--sl-badge-tip-text: var(--sl-color-purple-high);
|
|
6
|
+
--sl-badge-caution-text: var(--sl-color-orange-high);
|
|
7
|
+
--sl-badge-note-text: var(--sl-color-blue-high);
|
|
8
|
+
--sl-badge-success-text: var(--sl-color-green-high);
|
|
9
|
+
--sl-badge-danger-text: var(--sl-color-red-high);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[data-theme="light"] .sl-badge {
|
|
13
|
+
--sl-badge-tip-bg: var(--sl-color-purple-low);
|
|
14
|
+
--sl-badge-tip-text: var(--sl-color-purple-high);
|
|
15
|
+
--sl-badge-caution-bg: var(--sl-color-orange-low);
|
|
16
|
+
--sl-badge-caution-text: var(--sl-color-orange-high);
|
|
17
|
+
--sl-badge-note-bg: var(--sl-color-blue-low);
|
|
18
|
+
--sl-badge-note-text: var(--sl-color-blue-high);
|
|
19
|
+
--sl-badge-success-bg: var(--sl-color-green-low);
|
|
20
|
+
--sl-badge-success-text: var(--sl-color-green-high);
|
|
21
|
+
--sl-badge-danger-bg: var(--sl-color-red-low);
|
|
22
|
+
--sl-badge-danger-text: var(--sl-color-red-high);
|
|
23
|
+
}
|
package/lib/card.css
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
.sl-markdown-content .card-grid.stagger {
|
|
2
|
+
--stagger-height: 2.5rem;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sl-markdown-content .card {
|
|
6
|
+
--sl-text-h1: var(--sl-text-4xl);
|
|
7
|
+
--sl-text-h2: var(--sl-text-3xl);
|
|
8
|
+
--sl-text-h3: var(--sl-text-2xl);
|
|
9
|
+
--sl-text-h4: var(--sl-text-xl);
|
|
10
|
+
--sl-text-h5: var(--sl-text-lg);
|
|
11
|
+
|
|
12
|
+
border-radius: 0.5rem;
|
|
13
|
+
padding: clamp(1rem, calc(0.125rem + 1.5vw), 2.5rem);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.sl-markdown-content .card .title .icon {
|
|
17
|
+
font-size: 1.875rem;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.sl-markdown-content .sl-link-card {
|
|
21
|
+
box-shadow: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sl-markdown-content .sl-link-card:hover {
|
|
25
|
+
background: initial;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.sl-markdown-content .sl-link-card .title {
|
|
29
|
+
color: var(--sl-color-white);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.sl-markdown-content .sl-link-card .description {
|
|
33
|
+
color: var(--sl-color-gray-3);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.sl-markdown-content .sl-link-card:is(:hover, :focus-visible) .description {
|
|
37
|
+
color: var(--sl-color-gray-2);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.sl-markdown-content .sl-link-card .icon {
|
|
41
|
+
color: var(--sl-color-gray-2);
|
|
42
|
+
}
|
package/lib/fonts.css
ADDED
package/lib/layer.css
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
@layer base, starlight, celestia, theme, components, utilities;
|
|
2
|
+
|
|
3
|
+
:root,
|
|
4
|
+
::backdrop {
|
|
5
|
+
font-size: 14px;
|
|
6
|
+
--sl-text-body: 0.9rem;
|
|
7
|
+
--sl-text-h1: 1.45rem;
|
|
8
|
+
--sl-text-h2: 1.2rem;
|
|
9
|
+
--sl-text-h3: 1.05rem;
|
|
10
|
+
--sl-text-h4: 0.95rem;
|
|
11
|
+
--sl-text-h5: 0.85rem;
|
|
12
|
+
--sl-text-h6: 0.8rem;
|
|
13
|
+
--sl-text-code: 0.8rem;
|
|
14
|
+
--sl-text-code-sm: 0.75rem;
|
|
15
|
+
|
|
16
|
+
--celestia-secondary-light: #c2410c;
|
|
17
|
+
--celestia-secondary-dark: #fb923c;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Dark mode accents — must load first to prevent flash */
|
|
21
|
+
:root {
|
|
22
|
+
--sl-color-accent-low: color-mix(in oklch, #fb923c 15%, #030712);
|
|
23
|
+
--sl-color-accent: #fb923c;
|
|
24
|
+
--sl-color-accent-high: #fb923c;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:root[data-theme="light"] {
|
|
28
|
+
--sl-color-accent-low: color-mix(in oklch, #c2410c 10%, #f3f4f6);
|
|
29
|
+
--sl-color-accent: #c2410c;
|
|
30
|
+
--sl-color-accent-high: #c2410c;
|
|
31
|
+
}
|
package/lib/markdown.css
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
.sl-markdown-content {
|
|
2
|
+
/* Style the Markdown heading links. */
|
|
3
|
+
:is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) > a {
|
|
4
|
+
color: var(--sl-color-white);
|
|
5
|
+
text-decoration: none;
|
|
6
|
+
|
|
7
|
+
&:hover {
|
|
8
|
+
text-decoration: underline;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
ul:not(:where(.not-content *)):not(.sl-steps) {
|
|
13
|
+
padding-inline-start: 1.6em;
|
|
14
|
+
|
|
15
|
+
& > li:not(.task-list-item):not(:where(.not-content *)) {
|
|
16
|
+
list-style-type: disc;
|
|
17
|
+
list-style-position: outside;
|
|
18
|
+
padding-inline-start: 0.3em;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
& > li.task-list-item:not(:where(.not-content *)) {
|
|
22
|
+
list-style-type: none;
|
|
23
|
+
padding-inline-start: 0.3em;
|
|
24
|
+
position: relative;
|
|
25
|
+
|
|
26
|
+
> input[type="checkbox"] {
|
|
27
|
+
position: absolute;
|
|
28
|
+
left: -1.1em;
|
|
29
|
+
top: 0.6em;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
ol:not(:where(.not-content *)):not(.sl-steps) {
|
|
35
|
+
padding-inline-start: 1.6em;
|
|
36
|
+
|
|
37
|
+
& > li:not(:where(.not-content *)) {
|
|
38
|
+
list-style-type: decimal;
|
|
39
|
+
list-style-position: outside;
|
|
40
|
+
padding-inline-start: 0.3em;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
code:not(:where(.not-content *)) {
|
|
45
|
+
border-radius: 0.25rem;
|
|
46
|
+
border-style: solid;
|
|
47
|
+
border-width: 1px;
|
|
48
|
+
border-color: var(--sl-color-border-inline-code);
|
|
49
|
+
padding: 0.125rem 0.25rem;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
a:not(:where(.not-content *)) {
|
|
53
|
+
text-underline-offset: 0.25em;
|
|
54
|
+
text-decoration: underline;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Rounded images with subtle shadow */
|
|
58
|
+
img:not(:where(.not-content *)) {
|
|
59
|
+
border-radius: 0.5rem;
|
|
60
|
+
box-shadow:
|
|
61
|
+
0 1px 3px 0 rgb(0 0 0 / 0.1),
|
|
62
|
+
0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* <code> inside asides */
|
|
67
|
+
@supports (border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)) {
|
|
68
|
+
.sl-markdown-content .starlight-aside code:not(:where(.not-content *)) {
|
|
69
|
+
border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent);
|
|
70
|
+
}
|
|
71
|
+
}
|
package/lib/shiki.css
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
@import "shiki-twoslash-renderer/style.css";
|
|
2
|
+
|
|
3
|
+
.sl-markdown-content .astro-code {
|
|
4
|
+
padding: 0;
|
|
5
|
+
font-size: 0.875rem;
|
|
6
|
+
border-radius: 0.5rem;
|
|
7
|
+
overflow-x: hidden;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-items: stretch;
|
|
11
|
+
|
|
12
|
+
border-width: 1px;
|
|
13
|
+
border-style: solid;
|
|
14
|
+
border-color: var(--sl-color-gray-5);
|
|
15
|
+
|
|
16
|
+
& > code {
|
|
17
|
+
display: grid;
|
|
18
|
+
align-items: stretch;
|
|
19
|
+
overflow-x: hidden;
|
|
20
|
+
padding: 0.75rem 0;
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
min-width: min-content;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.line {
|
|
26
|
+
min-height: 1lh;
|
|
27
|
+
margin-left: 0;
|
|
28
|
+
margin-right: 0;
|
|
29
|
+
padding-left: 1rem;
|
|
30
|
+
padding-right: 1rem;
|
|
31
|
+
display: inline-block;
|
|
32
|
+
flex: 1;
|
|
33
|
+
flex-grow: 1;
|
|
34
|
+
width: 100%;
|
|
35
|
+
min-width: min-content;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.line.highlighted,
|
|
39
|
+
.line.diff.add,
|
|
40
|
+
.line.diff.remove {
|
|
41
|
+
display: inline-block;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.line.highlighted {
|
|
45
|
+
background-color: var(--nano-color-highlight);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.line.diff.add {
|
|
49
|
+
background-color: var(--sl-color-green-low);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.line.diff.remove {
|
|
53
|
+
background-color: var(--sl-color-red-low);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.highlighted-word {
|
|
57
|
+
border-radius: 0.25rem;
|
|
58
|
+
border-color: var(--sl-color-gray-5);
|
|
59
|
+
border-style: solid;
|
|
60
|
+
border-width: 1px;
|
|
61
|
+
padding: 0 0.125rem;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.astro-code,
|
|
66
|
+
.astro-code span {
|
|
67
|
+
color: var(--shiki-light);
|
|
68
|
+
font-style: var(--shiki-light-font-style);
|
|
69
|
+
font-weight: var(--shiki-light-font-weight);
|
|
70
|
+
text-decoration: var(--shiki-light-text-decoration);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
html[data-theme="dark"] .astro-code,
|
|
74
|
+
html[data-theme="dark"] .astro-code span {
|
|
75
|
+
color: var(--shiki-dark);
|
|
76
|
+
font-style: var(--shiki-dark-font-style);
|
|
77
|
+
font-weight: var(--shiki-dark-font-weight);
|
|
78
|
+
text-decoration: var(--shiki-dark-text-decoration);
|
|
79
|
+
}
|
package/lib/styles.css
ADDED
package/lib/tailwind.css
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@source '../src/**/*.ts';
|
|
2
|
+
@source '../src/**/*.astro';
|
|
3
|
+
|
|
4
|
+
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
|
|
5
|
+
|
|
6
|
+
@theme {
|
|
7
|
+
/*
|
|
8
|
+
Match Starlight breakpoints
|
|
9
|
+
https://github.com/withastro/starlight/blob/893be3b4a106ab75b706142bbd06b00268ccc298/packages/starlight/style/util.css#L22-L43
|
|
10
|
+
*/
|
|
11
|
+
--breakpoint-md: 50rem;
|
|
12
|
+
--breakpoint-lg: 72rem;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@layer utilities {
|
|
16
|
+
/* Wire up Starlight theme to use Tailwind config. */
|
|
17
|
+
:root {
|
|
18
|
+
--sl-font-mono: var(--font-mono);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@utility celestia-scroll-container {
|
|
23
|
+
scrollbar-width: thin;
|
|
24
|
+
scrollbar-color: var(--sl-color-gray-5) transparent;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.sl-markdown-content .code-tabs .tablist-wrapper {
|
|
28
|
+
@apply celestia-scroll-container;
|
|
29
|
+
}
|