@dominikcz/greg 0.9.27
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/README.md +397 -0
- package/bin/greg.js +241 -0
- package/bin/init.js +351 -0
- package/bin/templates/docs/getting-started.md +47 -0
- package/bin/templates/docs/index.md +11 -0
- package/bin/templates/greg.config.js +39 -0
- package/bin/templates/greg.config.ts +38 -0
- package/bin/templates/index.html +16 -0
- package/bin/templates/src/App.svelte +5 -0
- package/bin/templates/src/app.css +20 -0
- package/bin/templates/src/main.js +9 -0
- package/bin/templates/svelte.config.js +1 -0
- package/bin/templates/tsconfig.json +21 -0
- package/bin/templates/vite.config.js +23 -0
- package/docs/__partials/markdown/examples/basic.md +4 -0
- package/docs/__partials/markdown/examples/diff.md +10 -0
- package/docs/__partials/markdown/examples/focus.md +5 -0
- package/docs/__partials/markdown/examples/language-title.md +3 -0
- package/docs/__partials/markdown/examples/line-highlighting.md +5 -0
- package/docs/__partials/markdown/examples/line-numbers.md +5 -0
- package/docs/__partials/note.md +4 -0
- package/docs/guide/__shared-warning.md +4 -0
- package/docs/guide/asset-handling.md +88 -0
- package/docs/guide/deploying.md +162 -0
- package/docs/guide/getting-started.md +334 -0
- package/docs/guide/index.md +23 -0
- package/docs/guide/localization.md +290 -0
- package/docs/guide/markdown/code.md +95 -0
- package/docs/guide/markdown/components-and-mermaid.md +43 -0
- package/docs/guide/markdown/containers.md +110 -0
- package/docs/guide/markdown/header-anchors.md +34 -0
- package/docs/guide/markdown/includes.md +84 -0
- package/docs/guide/markdown/index.md +20 -0
- package/docs/guide/markdown/inline-attributes.md +21 -0
- package/docs/guide/markdown/links-and-toc.md +64 -0
- package/docs/guide/markdown/math.md +54 -0
- package/docs/guide/markdown/syntax-highlighting.md +75 -0
- package/docs/guide/routing.md +150 -0
- package/docs/guide/using-svelte.md +88 -0
- package/docs/guide/versioning.md +281 -0
- package/docs/incompatibilities.md +48 -0
- package/docs/index.md +43 -0
- package/docs/reference/badge.md +100 -0
- package/docs/reference/carbon-ads.md +46 -0
- package/docs/reference/code-group.md +126 -0
- package/docs/reference/home-page.md +232 -0
- package/docs/reference/index.md +18 -0
- package/docs/reference/markdowndocs.md +275 -0
- package/docs/reference/outline.md +79 -0
- package/docs/reference/search.md +263 -0
- package/docs/reference/steps.md +200 -0
- package/docs/reference/team-page.md +189 -0
- package/docs/reference/theme.md +150 -0
- package/fakeDocsGenerator/generate_docs.js +310 -0
- package/package.json +92 -0
- package/scripts/build-versions.js +609 -0
- package/scripts/generate-static.js +79 -0
- package/scripts/render-markdown.js +420 -0
- package/src/lib/MarkdownDocs/AiChat.svelte +936 -0
- package/src/lib/MarkdownDocs/BackToTop.svelte +68 -0
- package/src/lib/MarkdownDocs/Breadcrumb.svelte +68 -0
- package/src/lib/MarkdownDocs/DocsNavigation.svelte +149 -0
- package/src/lib/MarkdownDocs/DocsSiteHeader.svelte +758 -0
- package/src/lib/MarkdownDocs/DocsVersionSwitcher.svelte +103 -0
- package/src/lib/MarkdownDocs/MarkdownDocs.svelte +2115 -0
- package/src/lib/MarkdownDocs/MarkdownRenderer.svelte +487 -0
- package/src/lib/MarkdownDocs/Outline.svelte +238 -0
- package/src/lib/MarkdownDocs/PrevNext.svelte +115 -0
- package/src/lib/MarkdownDocs/SearchModal.svelte +1241 -0
- package/src/lib/MarkdownDocs/TreeView.svelte +32 -0
- package/src/lib/MarkdownDocs/TreeViewItem.svelte +219 -0
- package/src/lib/MarkdownDocs/VersionOutdatedNotice.svelte +72 -0
- package/src/lib/MarkdownDocs/__tests__/codeDirectives.test.js +54 -0
- package/src/lib/MarkdownDocs/__tests__/common.test.js +41 -0
- package/src/lib/MarkdownDocs/__tests__/docsExamplesLint.test.js +77 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/docs/markdown/__partial-basic.md +3 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/docs/markdown/snippet.js +9 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/includes/part.md +11 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/includes/wrapper.md +5 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/snippets/sample.js +8 -0
- package/src/lib/MarkdownDocs/__tests__/fixtures/snippets/sample.md +5 -0
- package/src/lib/MarkdownDocs/__tests__/helpers.js +67 -0
- package/src/lib/MarkdownDocs/__tests__/localeUtils.test.js +204 -0
- package/src/lib/MarkdownDocs/__tests__/markdown.test.js +704 -0
- package/src/lib/MarkdownDocs/__tests__/markdownRendererRuntime.test.js +65 -0
- package/src/lib/MarkdownDocs/__tests__/searchIndexBuilder.test.js +117 -0
- package/src/lib/MarkdownDocs/__tests__/sqliteStore.test.js +202 -0
- package/src/lib/MarkdownDocs/__tests__/useRouter.test.js +16 -0
- package/src/lib/MarkdownDocs/ai/adapters/customAdapter.js +14 -0
- package/src/lib/MarkdownDocs/ai/adapters/customAdapter.ts +43 -0
- package/src/lib/MarkdownDocs/ai/adapters/ollamaAdapter.js +81 -0
- package/src/lib/MarkdownDocs/ai/adapters/ollamaAdapter.ts +116 -0
- package/src/lib/MarkdownDocs/ai/adapters/openaiAdapter.js +92 -0
- package/src/lib/MarkdownDocs/ai/adapters/openaiAdapter.ts +137 -0
- package/src/lib/MarkdownDocs/ai/aiProvider.ts +31 -0
- package/src/lib/MarkdownDocs/ai/characters.js +52 -0
- package/src/lib/MarkdownDocs/ai/characters.ts +69 -0
- package/src/lib/MarkdownDocs/ai/chunkStore.ts +25 -0
- package/src/lib/MarkdownDocs/ai/chunker.js +85 -0
- package/src/lib/MarkdownDocs/ai/chunker.ts +135 -0
- package/src/lib/MarkdownDocs/ai/docLinker.js +26 -0
- package/src/lib/MarkdownDocs/ai/docLinker.ts +36 -0
- package/src/lib/MarkdownDocs/ai/promptBuilder.js +33 -0
- package/src/lib/MarkdownDocs/ai/promptBuilder.ts +53 -0
- package/src/lib/MarkdownDocs/ai/ragPipeline.js +54 -0
- package/src/lib/MarkdownDocs/ai/ragPipeline.ts +106 -0
- package/src/lib/MarkdownDocs/ai/stores/memoryStore.js +88 -0
- package/src/lib/MarkdownDocs/ai/stores/memoryStore.ts +112 -0
- package/src/lib/MarkdownDocs/ai/stores/sqliteStore.ts +372 -0
- package/src/lib/MarkdownDocs/ai/types.ts +71 -0
- package/src/lib/MarkdownDocs/aiServer.js +288 -0
- package/src/lib/MarkdownDocs/codeDirectives.js +191 -0
- package/src/lib/MarkdownDocs/codeFenceInfo.js +45 -0
- package/src/lib/MarkdownDocs/codeGroup.ts +46 -0
- package/src/lib/MarkdownDocs/common.ts +47 -0
- package/src/lib/MarkdownDocs/docsUtils.js +281 -0
- package/src/lib/MarkdownDocs/index.plugins.js +22 -0
- package/src/lib/MarkdownDocs/layouts/LayoutDoc.svelte +8 -0
- package/src/lib/MarkdownDocs/layouts/LayoutHome.svelte +58 -0
- package/src/lib/MarkdownDocs/layouts/LayoutPage.svelte +9 -0
- package/src/lib/MarkdownDocs/loadGregConfig.js +82 -0
- package/src/lib/MarkdownDocs/localeUtils.ts +682 -0
- package/src/lib/MarkdownDocs/markdownRendererRuntime.ts +314 -0
- package/src/lib/MarkdownDocs/mermaidThemes.js +319 -0
- package/src/lib/MarkdownDocs/navigationUtils.js +22 -0
- package/src/lib/MarkdownDocs/rehypeCodeGroup.js +326 -0
- package/src/lib/MarkdownDocs/rehypeCodeTitle.js +96 -0
- package/src/lib/MarkdownDocs/rehypeToc.js +170 -0
- package/src/lib/MarkdownDocs/remarkCodeMeta.js +22 -0
- package/src/lib/MarkdownDocs/remarkContainers.js +329 -0
- package/src/lib/MarkdownDocs/remarkCustomAnchors.js +42 -0
- package/src/lib/MarkdownDocs/remarkEscapeSvelte.js +33 -0
- package/src/lib/MarkdownDocs/remarkGlobalComponents.js +65 -0
- package/src/lib/MarkdownDocs/remarkImports.js +461 -0
- package/src/lib/MarkdownDocs/remarkImportsBrowser.js +349 -0
- package/src/lib/MarkdownDocs/remarkInlineAttrs.js +95 -0
- package/src/lib/MarkdownDocs/remarkMathToHtml.js +138 -0
- package/src/lib/MarkdownDocs/searchIndexBuilder.js +497 -0
- package/src/lib/MarkdownDocs/searchServer.js +263 -0
- package/src/lib/MarkdownDocs/treeViewTypes.ts +11 -0
- package/src/lib/MarkdownDocs/useRouter.svelte.ts +114 -0
- package/src/lib/MarkdownDocs/useSplitter.svelte.ts +33 -0
- package/src/lib/MarkdownDocs/versioningDefaults.js +20 -0
- package/src/lib/MarkdownDocs/vitePluginAiServer.js +204 -0
- package/src/lib/MarkdownDocs/vitePluginCopyDocs.js +153 -0
- package/src/lib/MarkdownDocs/vitePluginFrontmatter.js +109 -0
- package/src/lib/MarkdownDocs/vitePluginGregConfig.js +108 -0
- package/src/lib/MarkdownDocs/vitePluginSearchIndex.js +57 -0
- package/src/lib/MarkdownDocs/vitePluginSearchServer.js +190 -0
- package/src/lib/components/Badge.svelte +59 -0
- package/src/lib/components/Button.svelte +138 -0
- package/src/lib/components/CarbonAds.svelte +99 -0
- package/src/lib/components/CodeGroup.svelte +102 -0
- package/src/lib/components/Feature.svelte +209 -0
- package/src/lib/components/Features.svelte +123 -0
- package/src/lib/components/Hero.svelte +399 -0
- package/src/lib/components/Image.svelte +128 -0
- package/src/lib/components/Link.svelte +105 -0
- package/src/lib/components/SocialLink.svelte +84 -0
- package/src/lib/components/SocialLinks.svelte +33 -0
- package/src/lib/components/Steps.svelte +143 -0
- package/src/lib/components/TeamMember.svelte +273 -0
- package/src/lib/components/TeamMembers.svelte +81 -0
- package/src/lib/components/TeamPage.svelte +65 -0
- package/src/lib/components/TeamPageSection.svelte +108 -0
- package/src/lib/components/TeamPageTitle.svelte +89 -0
- package/src/lib/components/index.js +24 -0
- package/src/lib/portal/context.js +12 -0
- package/src/lib/portal/index.js +3 -0
- package/src/lib/portal/portal.svelte +14 -0
- package/src/lib/portal/slot.svelte +8 -0
- package/src/lib/scss/__code.scss +128 -0
- package/src/lib/scss/__containers.scss +99 -0
- package/src/lib/scss/__markdown.scss +447 -0
- package/src/lib/scss/__scrollbar.scss +60 -0
- package/src/lib/scss/__steps.scss +100 -0
- package/src/lib/scss/__theme.scss +238 -0
- package/src/lib/scss/__toc.scss +55 -0
- package/src/lib/scss/__utilities.scss +7 -0
- package/src/lib/scss/greg.scss +9 -0
- package/src/lib/spinner/spinner.svelte +42 -0
- package/svelte.config.js +146 -0
- package/types/index.d.ts +456 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Steps
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Steps
|
|
6
|
+
|
|
7
|
+
The `Steps` component renders a numbered, visually connected procedure list —
|
|
8
|
+
ideal for installation guides, tutorials, and any sequential workflow.
|
|
9
|
+
It is inspired by the Starlight `<Steps>` component.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
`Steps` supports two authoring styles:
|
|
14
|
+
|
|
15
|
+
- Markdown tag usage in docs pages (`<Steps>...</Steps>`)
|
|
16
|
+
- Direct component usage in `.svelte` files
|
|
17
|
+
|
|
18
|
+
### Markdown tag usage
|
|
19
|
+
|
|
20
|
+
Wrap a standard Markdown ordered list with `<Steps>`. No import is needed —
|
|
21
|
+
the component is available automatically on every docs page.
|
|
22
|
+
|
|
23
|
+
````md
|
|
24
|
+
<Steps>
|
|
25
|
+
|
|
26
|
+
1. **Install dependencies**
|
|
27
|
+
Run `npm install` in the project root.
|
|
28
|
+
|
|
29
|
+
2. **Start the dev server**
|
|
30
|
+
```bash
|
|
31
|
+
npm run dev
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. **Open the app**
|
|
35
|
+
Navigate to `http://localhost:5173` in your browser.
|
|
36
|
+
|
|
37
|
+
</Steps>
|
|
38
|
+
|
|
39
|
+
**Output:**
|
|
40
|
+
````
|
|
41
|
+
|
|
42
|
+
**Result:**
|
|
43
|
+
|
|
44
|
+
<Steps>
|
|
45
|
+
|
|
46
|
+
1. **Install dependencies**
|
|
47
|
+
Run `npm install` in the project root.
|
|
48
|
+
|
|
49
|
+
2. **Start the dev server**
|
|
50
|
+
Run `npm run dev` in your terminal.
|
|
51
|
+
|
|
52
|
+
3. **Open the app**
|
|
53
|
+
Navigate to `http://localhost:5173` in your browser.
|
|
54
|
+
|
|
55
|
+
</Steps>
|
|
56
|
+
|
|
57
|
+
### Direct component usage (`.svelte`)
|
|
58
|
+
|
|
59
|
+
```svelte
|
|
60
|
+
<script>
|
|
61
|
+
import Steps from '$components/Steps.svelte';
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<Steps>
|
|
65
|
+
<ol>
|
|
66
|
+
<li><strong>Install dependencies</strong>Run <code>npm install</code>.</li>
|
|
67
|
+
<li><strong>Start dev server</strong>Run <code>npm run dev</code>.</li>
|
|
68
|
+
<li><strong>Open app</strong>Visit <code>http://localhost:5173</code>.</li>
|
|
69
|
+
</ol>
|
|
70
|
+
</Steps>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Output:**
|
|
74
|
+
|
|
75
|
+
Equivalent numbered steps UI as in Markdown usage.
|
|
76
|
+
|
|
77
|
+
## Step titles
|
|
78
|
+
|
|
79
|
+
The first **bold** text (`**…**`) in each list item is automatically styled
|
|
80
|
+
as a step title — slightly larger and heavier than the body text below it.
|
|
81
|
+
|
|
82
|
+
````md
|
|
83
|
+
<Steps>
|
|
84
|
+
|
|
85
|
+
1. **Clone the repository**
|
|
86
|
+
`git clone https://github.com/your-org/your-repo.git`
|
|
87
|
+
|
|
88
|
+
2. **Configure environment variables**
|
|
89
|
+
Copy `.env.example` to `.env` and fill in the required values.
|
|
90
|
+
|
|
91
|
+
3. **Run the tests**
|
|
92
|
+
```bash
|
|
93
|
+
npm test
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
</Steps>
|
|
97
|
+
````
|
|
98
|
+
|
|
99
|
+
<Steps>
|
|
100
|
+
|
|
101
|
+
1. **Clone the repository**
|
|
102
|
+
`git clone https://github.com/your-org/your-repo.git`
|
|
103
|
+
|
|
104
|
+
2. **Configure environment variables**
|
|
105
|
+
Copy `.env.example` to `.env` and fill in the required values.
|
|
106
|
+
|
|
107
|
+
3. **Run the tests**
|
|
108
|
+
Run `npm test` to verify everything is set up correctly.
|
|
109
|
+
|
|
110
|
+
</Steps>
|
|
111
|
+
|
|
112
|
+
## Rich step content
|
|
113
|
+
|
|
114
|
+
Each step can contain any block-level Markdown content — paragraphs, code
|
|
115
|
+
fences, custom containers, images, and nested lists.
|
|
116
|
+
|
|
117
|
+
````md
|
|
118
|
+
<Steps>
|
|
119
|
+
|
|
120
|
+
1. **Install the CLI**
|
|
121
|
+
|
|
122
|
+
::: tip Requires Node.js 18+
|
|
123
|
+
Check your version with `node --version` before proceeding.
|
|
124
|
+
:::
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npm install -g my-cli
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
2. **Initialise a project**
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
my-cli init my-project
|
|
134
|
+
cd my-project
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
3. **Deploy**
|
|
138
|
+
|
|
139
|
+
- Review `my-cli.config.js`
|
|
140
|
+
- Run `my-cli deploy`
|
|
141
|
+
|
|
142
|
+
</Steps>
|
|
143
|
+
````
|
|
144
|
+
|
|
145
|
+
<Steps>
|
|
146
|
+
|
|
147
|
+
1. **Install the CLI**
|
|
148
|
+
|
|
149
|
+
::: tip Requires Node.js 18+
|
|
150
|
+
Check your version with `node --version` before proceeding.
|
|
151
|
+
:::
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm install -g my-cli
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
2. **Initialise a project**
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
my-cli init my-project
|
|
161
|
+
cd my-project
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
3. **Deploy**
|
|
165
|
+
|
|
166
|
+
- Review `my-cli.config.js`
|
|
167
|
+
- Run `my-cli deploy`
|
|
168
|
+
|
|
169
|
+
</Steps>
|
|
170
|
+
|
|
171
|
+
## Props
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
interface Props {
|
|
175
|
+
/** Step content — should be a Markdown ordered list. */
|
|
176
|
+
children?: Snippet;
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## CSS variables
|
|
181
|
+
|
|
182
|
+
The component inherits Greg's accent and border colours automatically.
|
|
183
|
+
Override them globally or per page with CSS:
|
|
184
|
+
|
|
185
|
+
| Variable | Used for | Default value |
|
|
186
|
+
| -------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
187
|
+
| `--greg-accent` | Number circle border and number colour | `#646cff` (or theme `--greg-accent` value) |
|
|
188
|
+
| `--greg-steps-guide-color` | Connector line between steps | `color-mix(in srgb, var(--greg-accent, #646cff) 42%, var(--greg-border-color, #e5e5ea))` |
|
|
189
|
+
| `--greg-steps-guide-gap` | Gap between each point and connector line | `0.375rem` |
|
|
190
|
+
| `--greg-border-color` | Fallback connector colour (used by guide-color fallback) | `#e5e5ea` (or theme `--greg-border-color` value) |
|
|
191
|
+
| `--greg-color` | Step title text colour | `inherit` (or theme `--greg-color` value) |
|
|
192
|
+
|
|
193
|
+
```css
|
|
194
|
+
/* Example: teal accent for steps */
|
|
195
|
+
.greg-steps {
|
|
196
|
+
--greg-accent: #0d9488;
|
|
197
|
+
--greg-steps-guide-color: #14b8a6;
|
|
198
|
+
--greg-steps-guide-gap: 0.375rem;
|
|
199
|
+
}
|
|
200
|
+
```
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Team Page
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Team Page
|
|
6
|
+
|
|
7
|
+
Greg ships Svelte team-page components.
|
|
8
|
+
There are two ways to display team members: embedded in a doc page, or as a
|
|
9
|
+
dedicated full-page layout.
|
|
10
|
+
|
|
11
|
+
## Authoring styles
|
|
12
|
+
|
|
13
|
+
Team components are available in both authoring contexts:
|
|
14
|
+
|
|
15
|
+
- Markdown docs pages (`.md`) via component tags
|
|
16
|
+
- Direct `.svelte` usage via imported components
|
|
17
|
+
|
|
18
|
+
## Show team members inside a page
|
|
19
|
+
|
|
20
|
+
Use `<TeamMembers>` anywhere in a Markdown page:
|
|
21
|
+
|
|
22
|
+
::: code-group labels=[markdown, output]
|
|
23
|
+
|
|
24
|
+
<<< @/snippets/reference/team-members-example.md
|
|
25
|
+
|
|
26
|
+
<!--@include: @/snippets/reference/team-members-example.md-->
|
|
27
|
+
|
|
28
|
+
:::
|
|
29
|
+
|
|
30
|
+
### Direct component usage (`.svelte`)
|
|
31
|
+
|
|
32
|
+
::: code-group labels=[svelte, output]
|
|
33
|
+
|
|
34
|
+
```svelte
|
|
35
|
+
<script>
|
|
36
|
+
import TeamMembers from '$components/TeamMembers.svelte';
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<TeamMembers
|
|
40
|
+
size="medium"
|
|
41
|
+
members={[
|
|
42
|
+
{
|
|
43
|
+
avatar: 'https://avatars.githubusercontent.com/u/583231?s=96',
|
|
44
|
+
name: 'Monalisa Octocat',
|
|
45
|
+
title: 'Lead Developer',
|
|
46
|
+
links: [{ icon: 'github', link: 'https://github.com/octocat' }],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
avatar: 'https://avatars.githubusercontent.com/u/480938?s=96',
|
|
50
|
+
name: 'Hubot',
|
|
51
|
+
title: 'Automation Bot',
|
|
52
|
+
links: [{ icon: 'github', link: 'https://github.com/hubot' }],
|
|
53
|
+
},
|
|
54
|
+
]}
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
<!--@include: @/snippets/reference/team-members-medium-example.md-->
|
|
59
|
+
|
|
60
|
+
:::
|
|
61
|
+
|
|
62
|
+
### `<TeamMembers>` props
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
interface Props {
|
|
66
|
+
members: TeamMemberData[];
|
|
67
|
+
size?: 'small' | 'medium'; // default: 'medium'
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`small` is better for inline use inside regular doc pages; `medium` suits a
|
|
72
|
+
dedicated team page.
|
|
73
|
+
|
|
74
|
+
## Create a full team page
|
|
75
|
+
|
|
76
|
+
Create a `.md` file (e.g. `docs/team.md`) and use the layout components:
|
|
77
|
+
|
|
78
|
+
::: code-group labels=[markdown, output]
|
|
79
|
+
|
|
80
|
+
<<< @/snippets/reference/team-full-example.md
|
|
81
|
+
|
|
82
|
+
<!--@include: @/snippets/reference/team-full-example.md-->
|
|
83
|
+
|
|
84
|
+
:::
|
|
85
|
+
|
|
86
|
+
### Direct component usage (`.svelte`)
|
|
87
|
+
|
|
88
|
+
::: code-group labels=[svelte, output]
|
|
89
|
+
|
|
90
|
+
```svelte
|
|
91
|
+
<script>
|
|
92
|
+
import TeamMembers from '$components/TeamMembers.svelte';
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<h3>Our Team</h3>
|
|
96
|
+
<p>The people behind Greg.</p>
|
|
97
|
+
|
|
98
|
+
<h4>Core Team</h4>
|
|
99
|
+
<TeamMembers
|
|
100
|
+
size="medium"
|
|
101
|
+
members={[
|
|
102
|
+
{
|
|
103
|
+
avatar: 'https://avatars.githubusercontent.com/u/10137?s=96',
|
|
104
|
+
name: 'Jane Doe',
|
|
105
|
+
title: 'Creator',
|
|
106
|
+
org: 'Acme Corp',
|
|
107
|
+
orgLink: 'https://acme.com',
|
|
108
|
+
desc: 'Open source enthusiast.',
|
|
109
|
+
links: [
|
|
110
|
+
{ icon: 'github', link: 'https://github.com/janedoe' },
|
|
111
|
+
{ icon: 'twitter', link: 'https://twitter.com/janedoe' },
|
|
112
|
+
],
|
|
113
|
+
sponsor: 'https://github.com/sponsors/janedoe',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
avatar: 'https://avatars.githubusercontent.com/u/583231?s=96',
|
|
117
|
+
name: 'Monalisa Octocat',
|
|
118
|
+
title: 'Lead Developer',
|
|
119
|
+
links: [{ icon: 'github', link: 'https://github.com/octocat' }],
|
|
120
|
+
},
|
|
121
|
+
]}
|
|
122
|
+
/>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
<!--@include: @/snippets/reference/team-full-example.md-->
|
|
126
|
+
|
|
127
|
+
:::
|
|
128
|
+
|
|
129
|
+
## Component reference
|
|
130
|
+
|
|
131
|
+
### `<TeamMember>` props
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
interface TeamMemberData {
|
|
135
|
+
avatar: string; // image URL
|
|
136
|
+
name: string;
|
|
137
|
+
title?: string;
|
|
138
|
+
org?: string;
|
|
139
|
+
orgLink?: string;
|
|
140
|
+
desc?: string; // HTML allowed
|
|
141
|
+
links?: SocialLinkItem[];
|
|
142
|
+
sponsor?: string; // sponsor page URL
|
|
143
|
+
actionText?: string; // button label, default 'Sponsor'
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
interface Props {
|
|
147
|
+
member: TeamMemberData;
|
|
148
|
+
size?: 'small' | 'medium';
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### `<TeamMembers>` props
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
interface Props {
|
|
156
|
+
members: TeamMemberData[];
|
|
157
|
+
size?: 'small' | 'medium';
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### `<TeamPage>`
|
|
162
|
+
|
|
163
|
+
Wrapper that provides correct vertical spacing between sections. Accepts only
|
|
164
|
+
`children` (Svelte snippet).
|
|
165
|
+
|
|
166
|
+
### `<TeamPageTitle>`
|
|
167
|
+
|
|
168
|
+
Section title block at the top of a `<TeamPage>`. Accepts `title` and `lead`
|
|
169
|
+
props or their snippet variants.
|
|
170
|
+
|
|
171
|
+
### `<TeamPageSection>`
|
|
172
|
+
|
|
173
|
+
A section within a `<TeamPage>`. Accepts `title` / `lead` props and children.
|
|
174
|
+
|
|
175
|
+
## Social icons
|
|
176
|
+
|
|
177
|
+
The `icon` property of a `SocialLinkItem` can be:
|
|
178
|
+
|
|
179
|
+
- A **string** name of a built-in icon. Supported values: `github`, `twitter`,
|
|
180
|
+
`x`, `linkedin`, `discord`, `facebook`, `instagram`, `mastodon`, `npm`,
|
|
181
|
+
`slack`, `youtube`.
|
|
182
|
+
- An **object** `{ svg: string }` with custom SVG markup.
|
|
183
|
+
|
|
184
|
+
```md
|
|
185
|
+
links: [
|
|
186
|
+
{ icon: 'github', link: 'https://github.com/...' },
|
|
187
|
+
{ icon: { svg: '<svg ...>...</svg>' }, link: 'https://...' },
|
|
188
|
+
]
|
|
189
|
+
```
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Theme & Styling
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Greg ships a carefully crafted two-tone design system — a clean purple-accent
|
|
6
|
+
**light** theme and a warm ember **dark** theme. Both are configured entirely via
|
|
7
|
+
CSS custom properties.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Dark / light mode
|
|
11
|
+
|
|
12
|
+
The user's OS preference (`prefers-color-scheme`) is detected on first load.
|
|
13
|
+
Greg follows system theme by default and only persists a value in
|
|
14
|
+
`localStorage` after a manual toggle.
|
|
15
|
+
|
|
16
|
+
A light/dark toggle is always visible in the top-right header.
|
|
17
|
+
|
|
18
|
+
When the user toggles theme manually, Greg switches to manual mode and stores:
|
|
19
|
+
|
|
20
|
+
- `greg-theme-source = "manual"`
|
|
21
|
+
- `greg-theme = "light" | "dark"`
|
|
22
|
+
|
|
23
|
+
If system mode is active, those keys are removed and Greg follows
|
|
24
|
+
`prefers-color-scheme`.
|
|
25
|
+
|
|
26
|
+
## Theme-aware favicon and header logo
|
|
27
|
+
|
|
28
|
+
Greg can switch favicon and header logo from app theme state (`data-theme`), not
|
|
29
|
+
only from browser/system preference.
|
|
30
|
+
|
|
31
|
+
If you need this behavior, use separate assets for each theme, for example:
|
|
32
|
+
|
|
33
|
+
- `/favicon-light.svg`
|
|
34
|
+
- `/favicon-dark.svg`
|
|
35
|
+
|
|
36
|
+
Why two files: a single `favicon.svg` with only
|
|
37
|
+
`@media (prefers-color-scheme: dark)` reacts to system theme. It does not always
|
|
38
|
+
match an in-app manual toggle.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## CSS variables
|
|
42
|
+
|
|
43
|
+
All visual properties are controlled through CSS custom properties defined on
|
|
44
|
+
`:root` (light) and `[data-theme="dark"]` (dark). Override them in your own
|
|
45
|
+
`src/app.css` or inside a `<style>` block to customise the appearance.
|
|
46
|
+
|
|
47
|
+
### Layout & colours
|
|
48
|
+
|
|
49
|
+
| Variable | Light default | Description |
|
|
50
|
+
| -------------------------- | ------------- | ------------------------------- |
|
|
51
|
+
| `--greg-background` | `#ffffff` | Page background |
|
|
52
|
+
| `--greg-main-background` | `#ffffff` | Content area background |
|
|
53
|
+
| `--greg-menu-background` | `#f8f8f8` | Sidebar background |
|
|
54
|
+
| `--greg-header-background` | `#ffffff` | Top header background |
|
|
55
|
+
| `--greg-color` | `#1a1a2e` | Primary text colour |
|
|
56
|
+
| `--greg-border-color` | `#e5e5ea` | Divider and border colour |
|
|
57
|
+
| `--greg-accent` | `#646cff` | Primary brand / accent colour |
|
|
58
|
+
| `--greg-accent-light` | `#ececf5` | Soft accent (hover backgrounds) |
|
|
59
|
+
| `--greg-header-height` | `3.5rem` | Top header height |
|
|
60
|
+
|
|
61
|
+
### Navigation
|
|
62
|
+
|
|
63
|
+
| Variable | Light default | Description |
|
|
64
|
+
| ------------------------------- | ------------- | ---------------------- |
|
|
65
|
+
| `--greg-menu-color` | `#3d3d3d` | Sidebar text colour |
|
|
66
|
+
| `--greg-menu-section-color` | `#7a7a8c` | Section header colour |
|
|
67
|
+
| `--greg-menu-active-background` | `#646cff` | Active link background |
|
|
68
|
+
| `--greg-menu-active-color` | `#ffffff` | Active link text |
|
|
69
|
+
| `--greg-menu-hover-background` | `#ececf5` | Hover background |
|
|
70
|
+
|
|
71
|
+
### Sidebar splitter
|
|
72
|
+
|
|
73
|
+
| Variable | Light default | Description |
|
|
74
|
+
| ------------------------------------------- | ------------- | ------------------------------------ |
|
|
75
|
+
| `--greg-splitter-handler-background` | `#e5e5ea` | Splitter handle background |
|
|
76
|
+
| `--greg-splitter-handler-color` | `#7a7a8c` | Splitter handle icon colour |
|
|
77
|
+
| `--greg-splitter-active-border` | `#646cff` | Splitter border colour on hover |
|
|
78
|
+
| `--greg-splitter-active-handler-background` | `#646cff` | Splitter handle background on hover |
|
|
79
|
+
| `--greg-splitter-active-handler-color` | `#f8f8f8` | Splitter handle icon colour on hover |
|
|
80
|
+
|
|
81
|
+
### Code blocks
|
|
82
|
+
|
|
83
|
+
| Variable | Light default | Description |
|
|
84
|
+
| -------------------------- | ------------- | ------------------------- |
|
|
85
|
+
| `--greg-code-background` | `#f0f0f4` | Inline code background |
|
|
86
|
+
| `--greg-code-color` | `#1a1a2e` | Inline code text colour |
|
|
87
|
+
| `--greg-code-inline-color` | `#e4004a` | Inline code inline colour |
|
|
88
|
+
|
|
89
|
+
### Status colours (containers & badges)
|
|
90
|
+
|
|
91
|
+
| Variable | Description |
|
|
92
|
+
| ------------------------------------------------------------------- | ---------------------- |
|
|
93
|
+
| `--greg-info-border`, `--greg-info-text`, `--greg-info-bg` | Info container / badge |
|
|
94
|
+
| `--greg-tip-border`, `--greg-tip-text`, `--greg-tip-bg` | Tip container / badge |
|
|
95
|
+
| `--greg-warning-border`, `--greg-warning-text`, `--greg-warning-bg` | Warning |
|
|
96
|
+
| `--greg-danger-border`, `--greg-danger-text`, `--greg-danger-bg` | Danger |
|
|
97
|
+
|
|
98
|
+
### Outline / TOC
|
|
99
|
+
|
|
100
|
+
| Variable | Description |
|
|
101
|
+
| ----------------------- | -------------------------- |
|
|
102
|
+
| `--greg-toc-background` | Outline panel background |
|
|
103
|
+
| `--greg-toc-color` | Section label colour |
|
|
104
|
+
| `--greg-toc-link-color` | Link colour |
|
|
105
|
+
| `--greg-toc-link-hover` | Hover / active link colour |
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
## Customising the accent colour
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
/* src/app.css */
|
|
112
|
+
:root {
|
|
113
|
+
--greg-accent: #ff6f61;
|
|
114
|
+
--greg-accent-light: rgba(255, 111, 97, 0.12);
|
|
115
|
+
--greg-menu-active-background: #ff6f61;
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## Resizable sidebar
|
|
121
|
+
|
|
122
|
+
The left navigation panel is **drag-to-resize**. A vertical splitter between the
|
|
123
|
+
sidebar and content area accepts mouse drag events to set the sidebar width.
|
|
124
|
+
|
|
125
|
+
The splitter includes a centered `EllipsisVertical` handle icon from
|
|
126
|
+
`@lucide/svelte` to indicate draggability.
|
|
127
|
+
|
|
128
|
+
Hover visuals are controlled by splitter-specific CSS variables
|
|
129
|
+
(`--greg-splitter-active-border`,
|
|
130
|
+
`--greg-splitter-active-handler-background`,
|
|
131
|
+
`--greg-splitter-active-handler-color`), so you can style it independently of the
|
|
132
|
+
global accent token.
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
## Code highlighting theme
|
|
136
|
+
|
|
137
|
+
Code blocks are highlighted by Shiki. Greg uses dual themes by default:
|
|
138
|
+
`github-light` for light mode and `github-dark` for dark mode.
|
|
139
|
+
|
|
140
|
+
To change themes, edit `svelte.config.js`:
|
|
141
|
+
|
|
142
|
+
```js
|
|
143
|
+
// svelte.config.js
|
|
144
|
+
const shikiThemes = {
|
|
145
|
+
light: 'github-light',
|
|
146
|
+
dark: 'github-dark',
|
|
147
|
+
};
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Supported Shiki themes: see [shiki.style/themes](https://shiki.style/themes).
|