@md-plugins/quasar-app-extension-q-press 0.1.0-beta.21 → 0.1.0-beta.22
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 +2 -2
- package/dist/index.js +1 -1
- package/dist/install.js +1 -1
- package/dist/templates/init/src/_q-press/components/MarkdownApi.vue +1 -1
- package/dist/templates/init/src/_q-press/css/app.scss +73 -0
- package/dist/templates/init/src/_q-press/css/themes/newspaper.scss +4 -4
- package/dist/templates/init/src/components/LandingPage/LandingPage.vue +1068 -225
- package/dist/templates/init/src/markdown/other/upgrade-guide.md +8 -7
- package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/overview.md +1 -1
- package/dist/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/overview.md +1 -1
- package/dist/templates/init/src/pages/Error404.vue +19 -0
- package/dist/templates/init/src/pages/ErrorNotFound.vue +19 -0
- package/dist/templates/update/src/_q-press/components/MarkdownApi.vue +1 -1
- package/dist/templates/update/src/_q-press/css/app.scss +73 -0
- package/dist/templates/update/src/_q-press/css/themes/newspaper.scss +4 -4
- package/package.json +17 -17
- package/src/index.ts +1 -1
- package/src/install.ts +1 -1
- package/src/templates/init/src/_q-press/components/MarkdownApi.vue +1 -1
- package/src/templates/init/src/_q-press/css/app.scss +73 -0
- package/src/templates/init/src/_q-press/css/themes/newspaper.scss +4 -4
- package/src/templates/init/src/components/LandingPage/LandingPage.vue +1068 -225
- package/src/templates/init/src/markdown/other/upgrade-guide.md +8 -7
- package/src/templates/init/src/markdown/quasar-app-extensions/qpress/overview.md +1 -1
- package/src/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/overview.md +1 -1
- package/src/templates/init/src/pages/Error404.vue +19 -0
- package/src/templates/init/src/pages/ErrorNotFound.vue +19 -0
- package/src/templates/update/src/_q-press/components/MarkdownApi.vue +1 -1
- package/src/templates/update/src/_q-press/css/app.scss +73 -0
- package/src/templates/update/src/_q-press/css/themes/newspaper.scss +4 -4
|
@@ -1,205 +1,371 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
2
|
+
<section class="landing-page markdown-brand">
|
|
3
3
|
<header class="hero">
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
alt="Markdown Plugins Logo"
|
|
7
|
-
class="hero-logo"
|
|
8
|
-
/>
|
|
9
|
-
<h1 class="hero-title">Markdown Plugins</h1>
|
|
10
|
-
<h2 class="hero-subtitle">(@md-plugins)</h2>
|
|
11
|
-
<div class="row justify-center">
|
|
12
|
-
<p class="hero-subtitle2" style="max-width: 660px">
|
|
13
|
-
{{ siteConfig.description }}
|
|
14
|
-
</p>
|
|
15
|
-
</div>
|
|
4
|
+
<div class="hero__mesh hero__mesh--left" />
|
|
5
|
+
<div class="hero__mesh hero__mesh--right" />
|
|
16
6
|
|
|
17
|
-
<div class="
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
class="hero-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
7
|
+
<div class="hero__grid">
|
|
8
|
+
<div class="hero__copy">
|
|
9
|
+
<div class="hero__eyebrow">{{ heroEyebrow }}</div>
|
|
10
|
+
<img :src="logoSrc" :alt="logoAlt" class="hero-logo" />
|
|
11
|
+
<h1 class="hero-title">{{ productName }}</h1>
|
|
12
|
+
|
|
13
|
+
<p class="hero-subtitle">{{ siteConfig.description }}</p>
|
|
14
|
+
<p class="hero-lede">{{ heroLede }}</p>
|
|
15
|
+
|
|
16
|
+
<div class="hero-buttons">
|
|
17
|
+
<q-btn
|
|
18
|
+
to="/getting-started/introduction"
|
|
19
|
+
no-caps
|
|
20
|
+
rounded
|
|
21
|
+
unelevated
|
|
22
|
+
class="hero-button hero-button--solid"
|
|
23
|
+
>
|
|
24
|
+
<div class="hero-button__content q-anchor--skip">
|
|
25
|
+
<span class="hero-button__slot hero-button__slot--empty" aria-hidden="true" />
|
|
26
|
+
<span class="hero-button__label">Get Started</span>
|
|
27
|
+
<span class="hero-button__slot">
|
|
28
|
+
<q-icon :name="biArrowRightCircle" />
|
|
29
|
+
</span>
|
|
30
|
+
</div>
|
|
31
|
+
</q-btn>
|
|
32
|
+
|
|
33
|
+
<q-btn
|
|
34
|
+
to="/other/upgrade-guide"
|
|
35
|
+
no-caps
|
|
36
|
+
rounded
|
|
37
|
+
unelevated
|
|
38
|
+
class="hero-button hero-button--ghost"
|
|
39
|
+
>
|
|
40
|
+
<div class="hero-button__content q-anchor--skip">
|
|
41
|
+
<span class="hero-button__slot hero-button__slot--empty" aria-hidden="true" />
|
|
42
|
+
<span class="hero-button__label">Upgrade Guide</span>
|
|
43
|
+
<span class="hero-button__slot">
|
|
44
|
+
<q-icon name="upgrade" />
|
|
45
|
+
</span>
|
|
46
|
+
</div>
|
|
47
|
+
</q-btn>
|
|
48
|
+
|
|
49
|
+
<q-btn
|
|
50
|
+
:href="githubRepoUrl"
|
|
51
|
+
target="_blank"
|
|
52
|
+
rel="noopener noreferrer"
|
|
53
|
+
no-caps
|
|
54
|
+
rounded
|
|
55
|
+
unelevated
|
|
56
|
+
class="hero-button hero-button--ghost"
|
|
57
|
+
>
|
|
58
|
+
<div class="hero-button__content q-anchor--skip">
|
|
59
|
+
<span class="hero-button__slot">
|
|
60
|
+
<q-icon :name="fabGithub" />
|
|
61
|
+
</span>
|
|
62
|
+
<span class="hero-button__label">GitHub Repo</span>
|
|
63
|
+
<span class="hero-button__slot hero-button__slot--empty" aria-hidden="true" />
|
|
64
|
+
</div>
|
|
65
|
+
</q-btn>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div class="hero-pills">
|
|
69
|
+
<span v-for="pill in heroPills" :key="pill" class="hero-pill">
|
|
70
|
+
{{ pill }}
|
|
71
|
+
</span>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="hero__visual">
|
|
76
|
+
<div class="preview-panel">
|
|
77
|
+
<div class="preview-panel__header">
|
|
78
|
+
<span class="preview-panel__kicker">{{ previewKicker }}</span>
|
|
79
|
+
<span class="preview-panel__note">Docs and app-ready</span>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div class="preview-panel__body">
|
|
83
|
+
<div class="preview-panel__copy">
|
|
84
|
+
<h2>{{ previewTitle }}</h2>
|
|
85
|
+
<p>{{ previewBody }}</p>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="preview-highlights">
|
|
89
|
+
<article
|
|
90
|
+
v-for="highlight in familyHighlights"
|
|
91
|
+
:key="highlight.label"
|
|
92
|
+
class="highlight-card"
|
|
93
|
+
>
|
|
94
|
+
<div class="highlight-card__value">{{ highlight.value }}</div>
|
|
95
|
+
<div class="highlight-card__label">{{ highlight.label }}</div>
|
|
96
|
+
<p class="highlight-card__body">{{ highlight.body }}</p>
|
|
97
|
+
</article>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
50
102
|
</div>
|
|
51
103
|
</header>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
Use the Markdown-it and Vite plugins in Vue/Vite projects, or choose the Quasar app
|
|
59
|
-
extensions when you want Q-Press and Quasar CLI Vite integration.
|
|
60
|
-
</p>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="row justify-center hero">
|
|
63
|
-
<div class="hero-title">Markdown-It! Plugins</div>
|
|
64
|
-
</div>
|
|
65
|
-
<main class="content grid-container">
|
|
66
|
-
<div
|
|
67
|
-
v-for="plugin in mdPlugins"
|
|
68
|
-
:key="plugin.name"
|
|
69
|
-
class="section grid-item"
|
|
70
|
-
@click="navigate(plugin.path)"
|
|
71
|
-
>
|
|
72
|
-
<q-card flat style="background: transparent">
|
|
73
|
-
<h2>{{ plugin.name }}</h2>
|
|
74
|
-
<p>{{ plugin.desc }}</p>
|
|
75
|
-
</q-card>
|
|
76
|
-
</div>
|
|
77
|
-
</main>
|
|
78
|
-
<div class="row justify-center hero">
|
|
79
|
-
<div class="hero-title">Vite Plugins</div>
|
|
80
|
-
</div>
|
|
81
|
-
<main class="content grid-container">
|
|
82
|
-
<div
|
|
83
|
-
v-for="plugin in vitePlugins"
|
|
84
|
-
:key="plugin.name"
|
|
85
|
-
class="section grid-item"
|
|
86
|
-
@click="navigate(plugin.path)"
|
|
87
|
-
>
|
|
88
|
-
<h2>{{ plugin.name }}</h2>
|
|
89
|
-
<p>{{ plugin.desc }}</p>
|
|
104
|
+
|
|
105
|
+
<section class="feature-section">
|
|
106
|
+
<div class="section-heading">
|
|
107
|
+
<div class="section-heading__eyebrow">Included</div>
|
|
108
|
+
<h2 class="section-heading__title">{{ sectionTitle }}</h2>
|
|
109
|
+
<p class="section-heading__text">{{ sectionText }}</p>
|
|
90
110
|
</div>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@click="navigate(ext.path)"
|
|
101
|
-
>
|
|
102
|
-
<h2>{{ ext.name }}</h2>
|
|
103
|
-
<p>{{ ext.desc }}</p>
|
|
111
|
+
|
|
112
|
+
<div class="feature-grid">
|
|
113
|
+
<article v-for="feature in featureCards" :key="feature.title" class="feature-card">
|
|
114
|
+
<div class="feature-card__icon">
|
|
115
|
+
<q-icon :name="feature.icon" />
|
|
116
|
+
</div>
|
|
117
|
+
<h3 class="feature-card__title">{{ feature.title }}</h3>
|
|
118
|
+
<p class="feature-card__body">{{ feature.body }}</p>
|
|
119
|
+
</article>
|
|
104
120
|
</div>
|
|
105
|
-
</
|
|
106
|
-
|
|
107
|
-
<
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
</section>
|
|
122
|
+
|
|
123
|
+
<section class="plugin-sections">
|
|
124
|
+
<article v-for="group in pluginGroups" :key="group.title" class="plugin-group">
|
|
125
|
+
<div class="plugin-group__header">
|
|
126
|
+
<div class="plugin-group__eyebrow">{{ group.eyebrow }}</div>
|
|
127
|
+
<h2 class="plugin-group__title">{{ group.title }}</h2>
|
|
128
|
+
<p class="plugin-group__body">{{ group.body }}</p>
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
<div class="plugin-grid">
|
|
132
|
+
<router-link
|
|
133
|
+
v-for="item in group.items"
|
|
134
|
+
:key="item.name"
|
|
135
|
+
:to="item.path"
|
|
136
|
+
class="plugin-tile"
|
|
137
|
+
>
|
|
138
|
+
<div class="plugin-tile__name">{{ item.name }}</div>
|
|
139
|
+
<p class="plugin-tile__body">{{ item.desc }}</p>
|
|
140
|
+
<div class="plugin-tile__meta">
|
|
141
|
+
<span>Open docs</span>
|
|
142
|
+
<q-icon :name="biArrowRightCircle" />
|
|
143
|
+
</div>
|
|
144
|
+
</router-link>
|
|
145
|
+
</div>
|
|
146
|
+
</article>
|
|
147
|
+
</section>
|
|
148
|
+
|
|
149
|
+
<section class="resource-section">
|
|
150
|
+
<article class="resource-card resource-card--primary">
|
|
151
|
+
<div class="resource-card__eyebrow">Ecosystem</div>
|
|
152
|
+
<h2 class="resource-card__title">
|
|
153
|
+
Markdown authoring, Vite transforms, and Quasar docs tooling in one stack
|
|
154
|
+
</h2>
|
|
155
|
+
<p class="resource-card__body">
|
|
156
|
+
Use the Markdown-it and Vite plugins directly in Vue and Vite projects, or move up to the
|
|
157
|
+
Quasar app extensions when you want docs-site scaffolding, examples, and Q-Press
|
|
158
|
+
integration.
|
|
159
|
+
</p>
|
|
160
|
+
|
|
161
|
+
<div class="resource-card__actions">
|
|
162
|
+
<a :href="githubRepoUrl" target="_blank" rel="noopener noreferrer" class="resource-link">
|
|
163
|
+
<q-icon :name="fabGithub" />
|
|
164
|
+
<span>md-plugins Repo</span>
|
|
165
|
+
</a>
|
|
166
|
+
|
|
167
|
+
<a
|
|
168
|
+
href="https://www.npmjs.com/package/@md-plugins/quasar-app-extension-q-press"
|
|
169
|
+
target="_blank"
|
|
170
|
+
rel="noopener noreferrer"
|
|
171
|
+
class="resource-link"
|
|
172
|
+
>
|
|
173
|
+
<q-icon name="description" />
|
|
174
|
+
<span>Q-Press</span>
|
|
175
|
+
</a>
|
|
176
|
+
|
|
177
|
+
<a
|
|
178
|
+
href="https://www.npmjs.com/search?q=%40md-plugins"
|
|
179
|
+
target="_blank"
|
|
180
|
+
rel="noopener noreferrer"
|
|
181
|
+
class="resource-link"
|
|
182
|
+
>
|
|
183
|
+
<q-icon name="inventory_2" />
|
|
184
|
+
<span>NPM Packages</span>
|
|
185
|
+
</a>
|
|
186
|
+
</div>
|
|
187
|
+
</article>
|
|
188
|
+
|
|
189
|
+
<article class="resource-card resource-card--secondary">
|
|
190
|
+
<div class="resource-card__eyebrow">Need Help?</div>
|
|
191
|
+
<h2 class="resource-card__title">
|
|
192
|
+
Start with introduction, then pick the layer you actually need
|
|
193
|
+
</h2>
|
|
194
|
+
<p class="resource-card__body">
|
|
195
|
+
Most teams only need one or two pieces of the stack. The docs are organized so you can
|
|
196
|
+
start with the overview, then jump straight to plugin-specific pages or the Q-Press path.
|
|
197
|
+
</p>
|
|
198
|
+
|
|
199
|
+
<div class="resource-list">
|
|
200
|
+
<div v-for="item in supportItems" :key="item.title" class="resource-list__item">
|
|
201
|
+
<div class="resource-list__title">{{ item.title }}</div>
|
|
202
|
+
<div class="resource-list__body">{{ item.body }}</div>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</article>
|
|
206
|
+
</section>
|
|
207
|
+
</section>
|
|
126
208
|
</template>
|
|
127
209
|
|
|
128
210
|
<script setup lang="ts">
|
|
129
|
-
import { QIcon } from 'quasar'
|
|
130
211
|
import { fabGithub } from '@quasar/extras/fontawesome-v7'
|
|
131
|
-
import {
|
|
212
|
+
import { biArrowRightCircle } from '@quasar/extras/bootstrap-icons'
|
|
132
213
|
import siteConfig from '../../siteConfig'
|
|
133
214
|
|
|
134
|
-
const
|
|
215
|
+
const productName = 'Markdown Plugins'
|
|
216
|
+
const logoSrc =
|
|
217
|
+
'https://raw.githubusercontent.com/md-plugins/md-plugins/refs/heads/main/media/markdown-1024x1024.png'
|
|
218
|
+
const logoAlt = 'Markdown Plugins Logo'
|
|
219
|
+
const githubRepoUrl = 'https://github.com/md-plugins/md-plugins'
|
|
220
|
+
const heroEyebrow = 'Markdown + Vue + Quasar'
|
|
221
|
+
const heroLede =
|
|
222
|
+
'Build richer Markdown experiences with a layered toolset: authoring plugins, Vite transforms, example loaders, and Quasar documentation scaffolding that all speak the same language.'
|
|
223
|
+
const previewKicker = 'Plugin Families'
|
|
224
|
+
const previewTitle = 'Start small with a single plugin, or grow into a full documentation workflow'
|
|
225
|
+
const previewBody =
|
|
226
|
+
'MD Plugins covers multiple layers of the stack, from Markdown syntax helpers and imported content to Vue SFC generation and full Q-Press documentation sites.'
|
|
227
|
+
const sectionTitle =
|
|
228
|
+
'One toolkit for authored content, markdown-driven UI, and documentation workflows'
|
|
229
|
+
const sectionText =
|
|
230
|
+
'MD Plugins stays useful at different scales: a single Markdown-it enhancement, a Vite pipeline for docs-style content, or a complete Quasar docs site with shared conventions and examples.'
|
|
231
|
+
|
|
232
|
+
const heroPills = [
|
|
233
|
+
'Markdown-it',
|
|
234
|
+
'Vite',
|
|
235
|
+
'Vue SFCs',
|
|
236
|
+
'Q-Press',
|
|
237
|
+
'Quasar App Extensions',
|
|
238
|
+
'Docs Tooling',
|
|
239
|
+
]
|
|
240
|
+
|
|
241
|
+
const familyHighlights = [
|
|
242
|
+
{
|
|
243
|
+
value: '13',
|
|
244
|
+
label: 'Markdown-it Plugins',
|
|
245
|
+
body: 'Authoring helpers for quotes, code, containers, imports, Mermaid, tables, shared helpers, and more.',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
value: '2',
|
|
249
|
+
label: 'Vite Plugins',
|
|
250
|
+
body: 'Transform Markdown into Vue SFCs and import example source alongside live demos.',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
value: '2',
|
|
254
|
+
label: 'Quasar App Extensions',
|
|
255
|
+
body: 'Add the Vite markdown flow to Quasar or scaffold a full documentation site with Q-Press.',
|
|
256
|
+
},
|
|
257
|
+
]
|
|
258
|
+
|
|
259
|
+
const featureCards = [
|
|
260
|
+
{
|
|
261
|
+
icon: 'article',
|
|
262
|
+
title: 'Authoring Primitives',
|
|
263
|
+
body: 'Extend plain Markdown with targeted plugins instead of inventing one-off content rules for each project.',
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
icon: 'description',
|
|
267
|
+
title: 'Markdown to Vue',
|
|
268
|
+
body: 'Convert Markdown into Vue SFC content when authored pages need richer structure, components, and slots.',
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
icon: 'code',
|
|
272
|
+
title: 'Examples Workflow',
|
|
273
|
+
body: 'Keep live examples and readable source side by side without duplicating the same content by hand.',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
icon: 'integration_instructions',
|
|
277
|
+
title: 'Vue and Quasar Fit',
|
|
278
|
+
body: 'Use the lower-level plugins in Vite apps or move into Quasar app extensions when the project needs more scaffolding.',
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
icon: 'web',
|
|
282
|
+
title: 'Q-Press Docs Sites',
|
|
283
|
+
body: 'Create documentation sites with shared navigation, landing pages, markdown utilities, and theming conventions.',
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
icon: 'architecture',
|
|
287
|
+
title: 'Layered Adoption',
|
|
288
|
+
body: 'Adopt one plugin or the whole stack, depending on whether the job is authoring content, building examples, or shipping docs.',
|
|
289
|
+
},
|
|
290
|
+
]
|
|
135
291
|
|
|
136
292
|
const mdPlugins = [
|
|
137
293
|
{
|
|
138
294
|
name: 'Blockquote Plugin',
|
|
139
|
-
desc: 'Adds support for
|
|
295
|
+
desc: 'Adds support for authored blockquote content and richer quote presentation in Markdown.',
|
|
140
296
|
path: '/md-plugins/blockquote/overview',
|
|
141
297
|
},
|
|
142
298
|
{
|
|
143
299
|
name: 'Codeblocks Plugin',
|
|
144
|
-
desc: 'Adds support for
|
|
300
|
+
desc: 'Adds support for fenced code blocks and code-focused authoring flows.',
|
|
145
301
|
path: '/md-plugins/codeblocks/overview',
|
|
146
302
|
},
|
|
147
303
|
{
|
|
148
|
-
name: '
|
|
149
|
-
desc: '
|
|
304
|
+
name: 'Containers Plugin',
|
|
305
|
+
desc: 'Create structured content containers for notes, warnings, tips, and custom callouts.',
|
|
150
306
|
path: '/md-plugins/containers/overview',
|
|
151
307
|
},
|
|
152
308
|
{
|
|
153
309
|
name: 'Frontmatter Plugin',
|
|
154
|
-
desc: '
|
|
310
|
+
desc: 'Expose frontmatter data cleanly so Markdown pages can drive richer app and docs behavior.',
|
|
155
311
|
path: '/md-plugins/frontmatter/overview',
|
|
156
312
|
},
|
|
157
313
|
{
|
|
158
314
|
name: 'Headers Plugin',
|
|
159
|
-
desc:
|
|
315
|
+
desc: 'Work with headings and table-of-contents style content more deliberately.',
|
|
160
316
|
path: '/md-plugins/headers/overview',
|
|
161
317
|
},
|
|
162
318
|
{
|
|
163
319
|
name: 'Image Plugin',
|
|
164
|
-
desc: '
|
|
320
|
+
desc: 'Improve Markdown image handling for documentation pages and content-heavy interfaces.',
|
|
165
321
|
path: '/md-plugins/image/overview',
|
|
166
322
|
},
|
|
167
323
|
{
|
|
168
324
|
name: 'Imports Plugin',
|
|
169
|
-
desc: '
|
|
325
|
+
desc: 'Pull external authored content into Markdown-driven pages without manual duplication.',
|
|
170
326
|
path: '/md-plugins/imports/overview',
|
|
171
327
|
},
|
|
172
328
|
{
|
|
173
|
-
name: '
|
|
174
|
-
desc: '
|
|
329
|
+
name: 'Inline Code Plugin',
|
|
330
|
+
desc: 'Handle inline code formatting for technical writing and product guidance.',
|
|
175
331
|
path: '/md-plugins/inline-code/overview',
|
|
176
332
|
},
|
|
177
333
|
{
|
|
178
334
|
name: 'Link Plugin',
|
|
179
|
-
desc: '
|
|
335
|
+
desc: 'Create and manage Markdown links with a more deliberate content pipeline.',
|
|
180
336
|
path: '/md-plugins/link/overview',
|
|
181
337
|
},
|
|
338
|
+
{
|
|
339
|
+
name: 'Mermaid Plugin',
|
|
340
|
+
desc: 'Render diagrams directly from authored Markdown when documentation needs visual structure.',
|
|
341
|
+
path: '/md-plugins/mermaid/overview',
|
|
342
|
+
},
|
|
182
343
|
{
|
|
183
344
|
name: 'Table Plugin',
|
|
184
|
-
desc: '
|
|
345
|
+
desc: 'Add support for Markdown tables in pages that need denser structured content.',
|
|
185
346
|
path: '/md-plugins/table/overview',
|
|
186
347
|
},
|
|
187
348
|
{
|
|
188
349
|
name: 'Title Plugin',
|
|
189
|
-
desc: '
|
|
350
|
+
desc: 'Support Markdown title handling for cleaner content metadata and rendering.',
|
|
190
351
|
path: '/md-plugins/title/overview',
|
|
191
352
|
},
|
|
353
|
+
{
|
|
354
|
+
name: 'Shared Helpers',
|
|
355
|
+
desc: 'Common utilities that tie the Markdown plugin family together.',
|
|
356
|
+
path: '/md-plugins/shared/overview',
|
|
357
|
+
},
|
|
192
358
|
]
|
|
193
359
|
|
|
194
360
|
const vitePlugins = [
|
|
195
361
|
{
|
|
196
362
|
name: 'Vite MD Plugin',
|
|
197
|
-
desc: '
|
|
363
|
+
desc: 'Turn Markdown files into Vue SFCs for authored pages that need components and richer layout control.',
|
|
198
364
|
path: '/vite-plugins/vite-md-plugin/overview',
|
|
199
365
|
},
|
|
200
366
|
{
|
|
201
367
|
name: 'Vite Examples Plugin',
|
|
202
|
-
desc: '
|
|
368
|
+
desc: 'Import example source alongside live demos so docs can show both behavior and implementation.',
|
|
203
369
|
path: '/vite-plugins/vite-examples-plugin/overview',
|
|
204
370
|
},
|
|
205
371
|
]
|
|
@@ -207,168 +373,845 @@ const vitePlugins = [
|
|
|
207
373
|
const appExtensions = [
|
|
208
374
|
{
|
|
209
375
|
name: 'viteMdPluginAppExt',
|
|
210
|
-
desc: '
|
|
376
|
+
desc: 'Bring the Vite Markdown workflow directly into Quasar CLI projects.',
|
|
211
377
|
path: '/quasar-app-extensions/vite-md-plugin-app-ext/overview',
|
|
212
378
|
},
|
|
213
379
|
{
|
|
214
|
-
name: 'Q-Press
|
|
215
|
-
desc: 'Create
|
|
380
|
+
name: 'Q-Press',
|
|
381
|
+
desc: 'Create polished Quasar documentation sites with shared page structure, navigation, and tooling.',
|
|
216
382
|
path: '/quasar-app-extensions/qpress/overview',
|
|
217
383
|
},
|
|
218
384
|
]
|
|
219
385
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
386
|
+
const pluginGroups = [
|
|
387
|
+
{
|
|
388
|
+
eyebrow: 'Markdown-it',
|
|
389
|
+
title: 'Authoring plugins for structure, content transforms, and richer Markdown',
|
|
390
|
+
body: 'Use targeted Markdown-it plugins when you need better authoring primitives without changing the entire publishing stack.',
|
|
391
|
+
items: mdPlugins,
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
eyebrow: 'Vite',
|
|
395
|
+
title: 'Build Markdown-driven Vue pages and example systems',
|
|
396
|
+
body: 'Move from authored text to app-ready content when pages need components, embedded demos, and raw source visibility.',
|
|
397
|
+
items: vitePlugins,
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
eyebrow: 'Quasar App Extensions',
|
|
401
|
+
title: 'Bring the stack into Quasar and scaffold documentation sites faster',
|
|
402
|
+
body: 'Use app extensions when the project needs tighter Quasar integration or a full docs-site workflow with Q-Press.',
|
|
403
|
+
items: appExtensions,
|
|
404
|
+
},
|
|
405
|
+
]
|
|
406
|
+
|
|
407
|
+
const supportItems = [
|
|
408
|
+
{
|
|
409
|
+
title: 'Pick the Smallest Useful Layer',
|
|
410
|
+
body: 'Start with the introduction, then choose whether the job is a Markdown-it plugin, a Vite transform, or a full Q-Press site.',
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
title: 'Use Plugin Pages as Reference',
|
|
414
|
+
body: 'Each plugin section is the fastest way to understand what problem it solves and how deeply it affects the content pipeline.',
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
title: 'Issues and Discussions',
|
|
418
|
+
body: 'Questions, bugs, and feature ideas are easiest to track in the md-plugins repo and related GitHub discussions.',
|
|
419
|
+
},
|
|
420
|
+
]
|
|
223
421
|
</script>
|
|
224
422
|
|
|
225
423
|
<style lang="scss" scoped>
|
|
226
424
|
.landing-page {
|
|
227
|
-
|
|
228
|
-
|
|
425
|
+
--landing-border: rgba(240, 248, 240, 0.14);
|
|
426
|
+
--landing-border-strong: rgba(240, 248, 240, 0.22);
|
|
427
|
+
--landing-surface: rgba(25, 41, 33, 0.76);
|
|
428
|
+
--landing-surface-strong: rgba(34, 55, 43, 0.88);
|
|
429
|
+
--landing-text-soft: rgba(240, 248, 240, 0.82);
|
|
430
|
+
--landing-shadow: 0 28px 60px rgba(13, 21, 17, 0.28);
|
|
431
|
+
padding: 28px clamp(16px, 2.4vw, 34px) 42px;
|
|
432
|
+
color: #203126;
|
|
229
433
|
}
|
|
230
434
|
|
|
231
435
|
.hero {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
padding:
|
|
436
|
+
position: relative;
|
|
437
|
+
overflow: hidden;
|
|
438
|
+
margin-bottom: 32px;
|
|
439
|
+
padding: clamp(24px, 4vw, 44px);
|
|
440
|
+
border: 1px solid var(--landing-border);
|
|
441
|
+
border-radius: 34px;
|
|
442
|
+
background:
|
|
443
|
+
radial-gradient(circle at top left, rgba(168, 222, 141, 0.22), transparent 34%),
|
|
444
|
+
radial-gradient(circle at 82% 20%, rgba(252, 246, 227, 0.09), transparent 20%),
|
|
445
|
+
linear-gradient(145deg, rgba(31, 49, 38, 0.96), rgba(17, 27, 20, 0.96));
|
|
446
|
+
box-shadow: var(--landing-shadow);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.hero__mesh {
|
|
450
|
+
position: absolute;
|
|
451
|
+
width: 240px;
|
|
452
|
+
height: 240px;
|
|
453
|
+
border-radius: 999px;
|
|
454
|
+
background: radial-gradient(circle, rgba(252, 246, 227, 0.12), transparent 68%);
|
|
455
|
+
filter: blur(10px);
|
|
456
|
+
pointer-events: none;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.hero__mesh--left {
|
|
460
|
+
top: -90px;
|
|
461
|
+
left: -70px;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
.hero__mesh--right {
|
|
465
|
+
right: -40px;
|
|
466
|
+
bottom: -90px;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.hero__grid {
|
|
470
|
+
position: relative;
|
|
471
|
+
z-index: 1;
|
|
472
|
+
display: grid;
|
|
473
|
+
gap: 24px;
|
|
474
|
+
align-items: center;
|
|
475
|
+
grid-template-columns: minmax(0, 1.04fr) minmax(320px, 0.96fr);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
.hero__copy {
|
|
479
|
+
display: flex;
|
|
480
|
+
flex-direction: column;
|
|
481
|
+
align-items: flex-start;
|
|
482
|
+
gap: 14px;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.hero__eyebrow,
|
|
486
|
+
.section-heading__eyebrow,
|
|
487
|
+
.resource-card__eyebrow,
|
|
488
|
+
.preview-panel__kicker,
|
|
489
|
+
.plugin-group__eyebrow {
|
|
490
|
+
display: inline-flex;
|
|
491
|
+
align-items: center;
|
|
492
|
+
min-height: 32px;
|
|
493
|
+
padding: 0 14px;
|
|
494
|
+
border: 1px solid var(--landing-border-strong);
|
|
495
|
+
border-radius: 999px;
|
|
496
|
+
background: rgba(252, 246, 227, 0.08);
|
|
497
|
+
color: #ffe5a5;
|
|
498
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
499
|
+
font-size: 0.76rem;
|
|
500
|
+
font-weight: 700;
|
|
501
|
+
letter-spacing: 0.14em;
|
|
502
|
+
text-transform: uppercase;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.plugin-group__eyebrow,
|
|
506
|
+
.resource-card__eyebrow {
|
|
507
|
+
margin-bottom: 14px;
|
|
236
508
|
}
|
|
237
509
|
|
|
238
510
|
.hero-logo {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
511
|
+
width: clamp(92px, 12vw, 132px);
|
|
512
|
+
border-radius: 30px;
|
|
513
|
+
box-shadow: 0 24px 48px rgba(10, 17, 12, 0.3);
|
|
242
514
|
}
|
|
243
515
|
|
|
244
516
|
.hero-title {
|
|
245
|
-
font-size: 3.5em;
|
|
246
|
-
line-height: 1.2em;
|
|
247
|
-
font-weight: 700;
|
|
248
517
|
margin: 0;
|
|
249
|
-
|
|
250
|
-
|
|
518
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
519
|
+
font-size: clamp(3.1rem, 8vw, 5.8rem);
|
|
520
|
+
line-height: 0.95;
|
|
521
|
+
font-weight: 800;
|
|
522
|
+
letter-spacing: -0.05em;
|
|
523
|
+
color: #fcfbf3;
|
|
251
524
|
}
|
|
252
525
|
|
|
253
526
|
.hero-subtitle {
|
|
254
|
-
|
|
255
|
-
line-height: 1.8em;
|
|
527
|
+
max-width: 640px;
|
|
256
528
|
margin: 0;
|
|
529
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
530
|
+
font-size: clamp(1.12rem, 2vw, 1.42rem);
|
|
531
|
+
line-height: 1.45;
|
|
532
|
+
font-weight: 700;
|
|
533
|
+
color: #f4fce9;
|
|
257
534
|
}
|
|
258
535
|
|
|
259
|
-
.hero-
|
|
260
|
-
|
|
261
|
-
|
|
536
|
+
.hero-lede {
|
|
537
|
+
max-width: 620px;
|
|
538
|
+
margin: 0;
|
|
539
|
+
font-size: 1rem;
|
|
540
|
+
line-height: 1.72;
|
|
541
|
+
color: var(--landing-text-soft);
|
|
262
542
|
}
|
|
263
543
|
|
|
264
544
|
.hero-buttons {
|
|
265
545
|
display: flex;
|
|
266
|
-
|
|
546
|
+
flex-wrap: wrap;
|
|
547
|
+
gap: 10px 12px;
|
|
548
|
+
padding-top: 6px;
|
|
549
|
+
margin-bottom: 6px;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.hero-pills {
|
|
553
|
+
display: flex;
|
|
554
|
+
flex-wrap: wrap;
|
|
267
555
|
gap: 10px;
|
|
556
|
+
padding-top: 6px;
|
|
268
557
|
}
|
|
269
558
|
|
|
270
559
|
.hero-button {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
border-radius: 5px;
|
|
560
|
+
min-height: 50px;
|
|
561
|
+
padding: 0 18px;
|
|
562
|
+
border: 1px solid transparent;
|
|
275
563
|
text-decoration: none;
|
|
276
|
-
|
|
277
|
-
|
|
564
|
+
transition:
|
|
565
|
+
transform 0.22s ease,
|
|
566
|
+
background-color 0.22s ease,
|
|
567
|
+
border-color 0.22s ease,
|
|
568
|
+
color 0.22s ease,
|
|
569
|
+
box-shadow 0.22s ease;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
.hero-button:hover,
|
|
573
|
+
.resource-link:hover,
|
|
574
|
+
.plugin-tile:hover {
|
|
575
|
+
transform: translateY(-1px);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.hero-button :deep(.q-btn__content) {
|
|
579
|
+
width: 100%;
|
|
580
|
+
min-width: 0;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.hero-button--solid {
|
|
584
|
+
background: #fff6dc;
|
|
585
|
+
color: #1f2f24;
|
|
586
|
+
box-shadow: 0 18px 30px rgba(10, 17, 12, 0.18);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.hero-button--ghost {
|
|
590
|
+
background: rgba(252, 246, 227, 0.08);
|
|
591
|
+
border-color: var(--landing-border-strong);
|
|
592
|
+
color: #fcfbf3;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
.hero-button__content {
|
|
596
|
+
display: grid;
|
|
597
|
+
grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem;
|
|
598
|
+
align-items: center;
|
|
599
|
+
column-gap: 12px;
|
|
600
|
+
min-width: 0;
|
|
601
|
+
width: 100%;
|
|
602
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
603
|
+
font-size: 0.95rem;
|
|
604
|
+
font-weight: 700;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
.hero-button__slot {
|
|
608
|
+
display: inline-flex;
|
|
609
|
+
align-items: center;
|
|
610
|
+
justify-content: center;
|
|
611
|
+
width: 1.5rem;
|
|
612
|
+
height: 1.5rem;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.hero-button__slot--empty {
|
|
616
|
+
visibility: hidden;
|
|
278
617
|
}
|
|
279
618
|
|
|
280
|
-
.hero-
|
|
281
|
-
|
|
619
|
+
.hero-button__slot :deep(.q-icon) {
|
|
620
|
+
font-size: 1.3rem;
|
|
282
621
|
}
|
|
283
622
|
|
|
284
|
-
.
|
|
623
|
+
.hero-button__label {
|
|
624
|
+
white-space: nowrap;
|
|
285
625
|
text-align: center;
|
|
286
|
-
font-size: 1.2em;
|
|
287
|
-
margin: 20px 0;
|
|
288
|
-
color: #35495e;
|
|
289
626
|
}
|
|
290
627
|
|
|
291
|
-
|
|
292
|
-
|
|
628
|
+
.hero-pill {
|
|
629
|
+
padding: 8px 12px;
|
|
630
|
+
border: 1px solid rgba(252, 246, 227, 0.12);
|
|
631
|
+
border-radius: 999px;
|
|
632
|
+
background: rgba(252, 246, 227, 0.05);
|
|
633
|
+
color: #f2e3b6;
|
|
634
|
+
font-size: 0.84rem;
|
|
635
|
+
font-weight: 600;
|
|
293
636
|
}
|
|
294
637
|
|
|
295
|
-
.
|
|
638
|
+
.preview-panel,
|
|
639
|
+
.feature-card,
|
|
640
|
+
.resource-card,
|
|
641
|
+
.plugin-group {
|
|
642
|
+
overflow: hidden;
|
|
643
|
+
border: 1px solid var(--landing-border);
|
|
644
|
+
border-radius: 24px;
|
|
645
|
+
background: var(--landing-surface);
|
|
646
|
+
box-shadow: var(--landing-card-shadow);
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
.preview-panel {
|
|
650
|
+
width: 100%;
|
|
651
|
+
padding: 20px;
|
|
652
|
+
background:
|
|
653
|
+
linear-gradient(180deg, rgba(252, 246, 227, 0.08), rgba(252, 246, 227, 0.02)),
|
|
654
|
+
rgba(18, 29, 22, 0.54);
|
|
655
|
+
backdrop-filter: blur(8px);
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
.preview-panel__header {
|
|
296
659
|
display: flex;
|
|
297
660
|
flex-wrap: wrap;
|
|
298
|
-
|
|
299
|
-
|
|
661
|
+
align-items: center;
|
|
662
|
+
justify-content: space-between;
|
|
663
|
+
gap: 12px;
|
|
664
|
+
margin-bottom: 18px;
|
|
300
665
|
}
|
|
301
666
|
|
|
302
|
-
.
|
|
667
|
+
.preview-panel__note,
|
|
668
|
+
.section-heading__text,
|
|
669
|
+
.feature-card__body,
|
|
670
|
+
.plugin-group__body,
|
|
671
|
+
.resource-card__body,
|
|
672
|
+
.resource-list__body,
|
|
673
|
+
.highlight-card__body,
|
|
674
|
+
.plugin-tile__body {
|
|
675
|
+
color: var(--landing-text-soft);
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
.preview-panel__note {
|
|
679
|
+
color: var(--landing-note-text);
|
|
680
|
+
font-size: 0.84rem;
|
|
681
|
+
font-weight: 600;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.preview-panel__body {
|
|
303
685
|
display: grid;
|
|
304
|
-
|
|
305
|
-
|
|
686
|
+
gap: 20px;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.preview-panel__copy h2,
|
|
690
|
+
.section-heading__title,
|
|
691
|
+
.feature-card__title,
|
|
692
|
+
.plugin-group__title,
|
|
693
|
+
.resource-card__title,
|
|
694
|
+
.plugin-tile__name {
|
|
695
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
696
|
+
color: #fcfbf3;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.preview-panel__copy h2 {
|
|
700
|
+
margin: 0 0 10px;
|
|
701
|
+
font-size: clamp(1.35rem, 2vw, 1.7rem);
|
|
702
|
+
line-height: 1.2;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
.preview-panel__copy p,
|
|
706
|
+
.section-heading__text,
|
|
707
|
+
.feature-card__body,
|
|
708
|
+
.plugin-group__body,
|
|
709
|
+
.resource-card__body,
|
|
710
|
+
.resource-list__body,
|
|
711
|
+
.highlight-card__body,
|
|
712
|
+
.plugin-tile__body {
|
|
713
|
+
margin: 0;
|
|
714
|
+
line-height: 1.68;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.preview-highlights {
|
|
718
|
+
display: grid;
|
|
719
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
720
|
+
gap: 14px;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
.highlight-card {
|
|
724
|
+
padding: 18px;
|
|
725
|
+
border: 1px solid rgba(252, 246, 227, 0.1);
|
|
726
|
+
border-radius: 20px;
|
|
727
|
+
background:
|
|
728
|
+
linear-gradient(180deg, rgba(252, 246, 227, 0.08), rgba(252, 246, 227, 0.03)),
|
|
729
|
+
rgba(252, 246, 227, 0.03);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.highlight-card__value {
|
|
733
|
+
margin-bottom: 8px;
|
|
734
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
735
|
+
font-size: 2rem;
|
|
736
|
+
font-weight: 800;
|
|
737
|
+
color: #ffe5a5;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.highlight-card__label {
|
|
741
|
+
margin-bottom: 8px;
|
|
742
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
743
|
+
font-size: 1rem;
|
|
744
|
+
font-weight: 700;
|
|
745
|
+
color: #fcfbf3;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
.feature-section,
|
|
749
|
+
.plugin-sections,
|
|
750
|
+
.resource-section {
|
|
751
|
+
margin-top: 28px;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
.section-heading,
|
|
755
|
+
.plugin-group__header {
|
|
756
|
+
max-width: 860px;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.section-heading {
|
|
760
|
+
margin: 0 auto 20px;
|
|
761
|
+
text-align: center;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
.section-heading__title {
|
|
765
|
+
margin: 14px 0 10px;
|
|
766
|
+
font-size: clamp(2rem, 4vw, 2.8rem);
|
|
767
|
+
line-height: 1.12;
|
|
768
|
+
text-wrap: balance;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
.feature-grid,
|
|
772
|
+
.resource-section,
|
|
773
|
+
.plugin-sections,
|
|
774
|
+
.plugin-grid {
|
|
775
|
+
display: grid;
|
|
776
|
+
gap: 18px;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.feature-grid {
|
|
780
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.plugin-sections {
|
|
784
|
+
grid-template-columns: 1fr;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
.plugin-grid {
|
|
788
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
789
|
+
margin-top: 18px;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
.resource-section {
|
|
793
|
+
display: grid;
|
|
794
|
+
gap: 16px;
|
|
795
|
+
align-items: start;
|
|
796
|
+
grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
.feature-card,
|
|
800
|
+
.resource-card,
|
|
801
|
+
.plugin-group {
|
|
802
|
+
position: relative;
|
|
803
|
+
padding: 20px;
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
.feature-card::before,
|
|
807
|
+
.plugin-group::before {
|
|
808
|
+
content: '';
|
|
809
|
+
position: absolute;
|
|
810
|
+
inset: 0 auto auto 0;
|
|
306
811
|
width: 100%;
|
|
307
|
-
|
|
812
|
+
height: 1px;
|
|
813
|
+
background: linear-gradient(90deg, rgba(168, 222, 141, 0.55), transparent 65%);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
.feature-card__icon {
|
|
817
|
+
display: inline-flex;
|
|
818
|
+
align-items: center;
|
|
308
819
|
justify-content: center;
|
|
309
|
-
|
|
820
|
+
width: 46px;
|
|
821
|
+
height: 46px;
|
|
822
|
+
margin-bottom: 14px;
|
|
823
|
+
border-radius: 14px;
|
|
824
|
+
background: rgba(168, 222, 141, 0.14);
|
|
825
|
+
color: #f8e4a3;
|
|
826
|
+
font-size: 1.35rem;
|
|
310
827
|
}
|
|
311
828
|
|
|
312
|
-
.
|
|
313
|
-
|
|
314
|
-
|
|
829
|
+
.feature-card__title,
|
|
830
|
+
.plugin-group__title,
|
|
831
|
+
.resource-card__title {
|
|
832
|
+
margin: 0 0 10px;
|
|
833
|
+
font-size: 1.16rem;
|
|
834
|
+
line-height: 1.3;
|
|
315
835
|
}
|
|
316
836
|
|
|
317
|
-
.
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
837
|
+
.plugin-tile {
|
|
838
|
+
display: flex;
|
|
839
|
+
flex-direction: column;
|
|
840
|
+
gap: 12px;
|
|
841
|
+
min-height: 100%;
|
|
842
|
+
padding: 18px;
|
|
843
|
+
border: 1px solid rgba(252, 246, 227, 0.1);
|
|
844
|
+
border-radius: 18px;
|
|
845
|
+
background: rgba(252, 246, 227, 0.04);
|
|
846
|
+
color: inherit;
|
|
322
847
|
text-decoration: none;
|
|
323
|
-
background: linear-gradient(135deg, $brand-primary, $brand-secondary);
|
|
324
|
-
border-radius: 10px;
|
|
325
|
-
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
|
|
326
848
|
transition:
|
|
327
|
-
transform 0.
|
|
328
|
-
|
|
849
|
+
transform 0.22s ease,
|
|
850
|
+
border-color 0.22s ease,
|
|
851
|
+
background-color 0.22s ease,
|
|
852
|
+
box-shadow 0.22s ease;
|
|
329
853
|
}
|
|
330
854
|
|
|
331
|
-
.
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
cursor: pointer;
|
|
855
|
+
.plugin-tile:hover {
|
|
856
|
+
border-color: rgba(255, 229, 165, 0.38);
|
|
857
|
+
background: rgba(252, 246, 227, 0.07);
|
|
858
|
+
box-shadow: 0 14px 28px rgba(13, 21, 17, 0.18);
|
|
336
859
|
}
|
|
337
860
|
|
|
338
|
-
.
|
|
339
|
-
|
|
340
|
-
color: white;
|
|
341
|
-
font-size: 2.125rem;
|
|
342
|
-
font-weight: 400;
|
|
343
|
-
line-height: 2.5rem;
|
|
344
|
-
letter-spacing: 0.00735em;
|
|
861
|
+
.plugin-tile__name {
|
|
862
|
+
font-size: 1rem;
|
|
345
863
|
font-weight: 700;
|
|
346
|
-
|
|
864
|
+
line-height: 1.32;
|
|
347
865
|
}
|
|
348
866
|
|
|
349
|
-
.
|
|
350
|
-
|
|
351
|
-
|
|
867
|
+
.plugin-tile__meta {
|
|
868
|
+
display: inline-flex;
|
|
869
|
+
align-items: center;
|
|
870
|
+
gap: 8px;
|
|
871
|
+
margin-top: auto;
|
|
872
|
+
color: #ffe5a5;
|
|
873
|
+
font-size: 0.88rem;
|
|
874
|
+
font-weight: 700;
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
.resource-card--primary {
|
|
878
|
+
background:
|
|
879
|
+
radial-gradient(circle at top right, rgba(255, 229, 165, 0.18), transparent 30%),
|
|
880
|
+
var(--landing-surface-strong);
|
|
352
881
|
}
|
|
353
882
|
|
|
354
|
-
.
|
|
355
|
-
|
|
883
|
+
.resource-card__actions {
|
|
884
|
+
display: flex;
|
|
885
|
+
flex-wrap: wrap;
|
|
886
|
+
gap: 10px;
|
|
887
|
+
margin-top: 16px;
|
|
356
888
|
}
|
|
357
889
|
|
|
358
|
-
.
|
|
359
|
-
|
|
890
|
+
.resource-link {
|
|
891
|
+
display: inline-flex;
|
|
892
|
+
align-items: center;
|
|
893
|
+
gap: 10px;
|
|
894
|
+
min-height: 44px;
|
|
895
|
+
padding: 0 16px;
|
|
896
|
+
border: 1px solid var(--landing-border-strong);
|
|
897
|
+
border-radius: 999px;
|
|
898
|
+
background: rgba(252, 246, 227, 0.05);
|
|
899
|
+
color: #f4fce9;
|
|
360
900
|
text-decoration: none;
|
|
361
|
-
transition:
|
|
901
|
+
transition:
|
|
902
|
+
transform 0.22s ease,
|
|
903
|
+
border-color 0.22s ease,
|
|
904
|
+
background-color 0.22s ease;
|
|
362
905
|
}
|
|
363
906
|
|
|
364
|
-
.
|
|
365
|
-
|
|
907
|
+
.resource-list {
|
|
908
|
+
display: grid;
|
|
909
|
+
gap: 0;
|
|
910
|
+
margin-top: 16px;
|
|
366
911
|
}
|
|
367
912
|
|
|
368
|
-
.
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
913
|
+
.resource-list__item {
|
|
914
|
+
padding: 12px 0;
|
|
915
|
+
border-top: 1px solid var(--landing-resource-item-border);
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
.resource-list__item:first-child {
|
|
919
|
+
padding-top: 0;
|
|
920
|
+
border-top: 0;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
.resource-list__title {
|
|
924
|
+
margin-bottom: 6px;
|
|
925
|
+
font-family: 'Space Grotesk', 'Sora', 'Segoe UI', sans-serif;
|
|
926
|
+
font-size: 0.96rem;
|
|
927
|
+
font-weight: 700;
|
|
928
|
+
color: #f8e4a3;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
.feature-card__body,
|
|
932
|
+
.plugin-group__body,
|
|
933
|
+
.resource-card__body,
|
|
934
|
+
.highlight-card__body,
|
|
935
|
+
.plugin-tile__body {
|
|
936
|
+
color: var(--landing-body-text);
|
|
937
|
+
font-size: 0.97rem;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
.resource-list__body {
|
|
941
|
+
color: var(--landing-body-text);
|
|
942
|
+
font-size: 0.93rem;
|
|
943
|
+
line-height: 1.55;
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
@media (max-width: 1180px) {
|
|
947
|
+
.hero__grid,
|
|
948
|
+
.resource-section,
|
|
949
|
+
.feature-grid,
|
|
950
|
+
.plugin-grid,
|
|
951
|
+
.preview-highlights {
|
|
952
|
+
grid-template-columns: 1fr;
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
@media (max-width: 760px) {
|
|
957
|
+
.landing-page {
|
|
958
|
+
padding: 18px 12px 30px;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
.hero {
|
|
962
|
+
padding: 24px 18px;
|
|
963
|
+
border-radius: 24px;
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
.hero__copy {
|
|
967
|
+
align-items: stretch;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
.hero-buttons,
|
|
971
|
+
.resource-card__actions {
|
|
972
|
+
flex-direction: column;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
.hero-button,
|
|
976
|
+
.resource-link {
|
|
977
|
+
justify-content: center;
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
.feature-card,
|
|
981
|
+
.resource-card,
|
|
982
|
+
.plugin-group {
|
|
983
|
+
padding: 18px;
|
|
984
|
+
border-radius: 20px;
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
/* codex-theme-override:start */
|
|
989
|
+
.landing-page {
|
|
990
|
+
--landing-page-text: #{$brand-light-text};
|
|
991
|
+
--landing-heading: #{$brand-light-text};
|
|
992
|
+
--landing-body-text: #{rgba($brand-light-text, 0.84)};
|
|
993
|
+
--landing-note-text: #{rgba($brand-light-text, 0.66)};
|
|
994
|
+
--landing-border: #{rgba($brand-secondary, 0.16)};
|
|
995
|
+
--landing-border-strong: #{rgba($brand-secondary, 0.24)};
|
|
996
|
+
--landing-surface: #{rgba($brand-light, 0.78)};
|
|
997
|
+
--landing-surface-strong: #{rgba($brand-light, 0.92)};
|
|
998
|
+
--landing-text-soft: #{rgba($brand-light-text, 0.78)};
|
|
999
|
+
--landing-shadow: 0 28px 60px #{rgba($brand-primary, 0.14)};
|
|
1000
|
+
--landing-card-shadow: 0 16px 34px #{rgba($brand-secondary, 0.12)};
|
|
1001
|
+
--landing-chip-bg: #{rgba($brand-light, 0.52)};
|
|
1002
|
+
--landing-chip-text: #{$brand-primary};
|
|
1003
|
+
--landing-solid-bg: #{$brand-primary};
|
|
1004
|
+
--landing-solid-text: #{$brand-light};
|
|
1005
|
+
--landing-solid-shadow: 0 18px 30px #{rgba($brand-primary, 0.24)};
|
|
1006
|
+
--landing-ghost-bg: #{rgba($brand-light, 0.46)};
|
|
1007
|
+
--landing-ghost-text: #{$brand-light-text};
|
|
1008
|
+
--landing-pill-border: #{rgba($brand-secondary, 0.14)};
|
|
1009
|
+
--landing-pill-bg: #{rgba($brand-light, 0.44)};
|
|
1010
|
+
--landing-pill-text: #{$brand-primary};
|
|
1011
|
+
--landing-panel-gradient-top: #{rgba($brand-light, 0.7)};
|
|
1012
|
+
--landing-panel-gradient-bottom: #{rgba($brand-light, 0.22)};
|
|
1013
|
+
--landing-panel-bg: #{rgba($brand-light-bg, 0.88)};
|
|
1014
|
+
--landing-highlight-border: #{rgba($brand-secondary, 0.16)};
|
|
1015
|
+
--landing-highlight-bg: #{rgba($brand-light, 0.52)};
|
|
1016
|
+
--landing-highlight-value: #{$brand-primary};
|
|
1017
|
+
--landing-highlight-label: #{$brand-light-text};
|
|
1018
|
+
--landing-accent-line: #{rgba($brand-primary, 0.4)};
|
|
1019
|
+
--landing-icon-bg: #{rgba($brand-primary, 0.1)};
|
|
1020
|
+
--landing-icon-color: #{$brand-primary};
|
|
1021
|
+
--landing-tile-border: #{rgba($brand-secondary, 0.12)};
|
|
1022
|
+
--landing-tile-bg: #{rgba($brand-light, 0.42)};
|
|
1023
|
+
--landing-tile-hover-border: #{rgba($brand-primary, 0.28)};
|
|
1024
|
+
--landing-tile-hover-bg: #{rgba($brand-light, 0.56)};
|
|
1025
|
+
--landing-tile-hover-shadow: 0 14px 28px #{rgba($brand-secondary, 0.12)};
|
|
1026
|
+
--landing-meta-text: #{$brand-primary};
|
|
1027
|
+
--landing-spot-accent: #{rgba($brand-primary, 0.14)};
|
|
1028
|
+
--landing-resource-link-bg: #{rgba($brand-light, 0.48)};
|
|
1029
|
+
--landing-resource-link-text: #{$brand-light-text};
|
|
1030
|
+
--landing-resource-item-border: #{rgba($brand-secondary, 0.1)};
|
|
1031
|
+
--landing-resource-item-bg: #{rgba($brand-light, 0.42)};
|
|
1032
|
+
--landing-accent-text: #{$brand-primary};
|
|
1033
|
+
--landing-mesh-color: #{rgba($brand-primary, 0.16)};
|
|
1034
|
+
--landing-hero-glow-1: #{rgba($brand-primary, 0.18)};
|
|
1035
|
+
--landing-hero-glow-2: #{rgba($brand-secondary, 0.12)};
|
|
1036
|
+
--landing-hero-start: #{rgba($brand-light, 0.96)};
|
|
1037
|
+
--landing-hero-end: #{rgba($brand-light-bg, 0.96)};
|
|
1038
|
+
color: var(--landing-page-text);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
body.body--dark .landing-page {
|
|
1042
|
+
--landing-page-text: #{$brand-dark-text};
|
|
1043
|
+
--landing-heading: #{$brand-dark-text};
|
|
1044
|
+
--landing-body-text: #{rgba($brand-dark-text, 0.8)};
|
|
1045
|
+
--landing-note-text: #{rgba($brand-dark-text, 0.64)};
|
|
1046
|
+
--landing-border: #{rgba($brand-light, 0.12)};
|
|
1047
|
+
--landing-border-strong: #{rgba($brand-light, 0.2)};
|
|
1048
|
+
--landing-surface: #{rgba($dark-pill, 0.74)};
|
|
1049
|
+
--landing-surface-strong: #{rgba($dark-pill, 0.88)};
|
|
1050
|
+
--landing-text-soft: #{rgba($brand-dark-text, 0.82)};
|
|
1051
|
+
--landing-shadow: 0 28px 60px #{rgba($brand-dark-bg, 0.28)};
|
|
1052
|
+
--landing-card-shadow: 0 16px 34px #{rgba($brand-dark-bg, 0.24)};
|
|
1053
|
+
--landing-chip-bg: #{rgba($brand-light, 0.08)};
|
|
1054
|
+
--landing-chip-text: #{$brand-primary};
|
|
1055
|
+
--landing-solid-bg: #{$brand-light};
|
|
1056
|
+
--landing-solid-text: #{$brand-dark-bg};
|
|
1057
|
+
--landing-solid-shadow: 0 18px 30px #{rgba($brand-dark-bg, 0.28)};
|
|
1058
|
+
--landing-ghost-bg: #{rgba($brand-light, 0.08)};
|
|
1059
|
+
--landing-ghost-text: #{$brand-dark-text};
|
|
1060
|
+
--landing-pill-border: #{rgba($brand-light, 0.12)};
|
|
1061
|
+
--landing-pill-bg: #{rgba($brand-light, 0.05)};
|
|
1062
|
+
--landing-pill-text: #{$brand-primary};
|
|
1063
|
+
--landing-panel-gradient-top: #{rgba($brand-light, 0.08)};
|
|
1064
|
+
--landing-panel-gradient-bottom: #{rgba($brand-light, 0.02)};
|
|
1065
|
+
--landing-panel-bg: #{rgba($brand-dark-bg, 0.56)};
|
|
1066
|
+
--landing-highlight-border: #{rgba($brand-light, 0.08)};
|
|
1067
|
+
--landing-highlight-bg: #{rgba($brand-light, 0.05)};
|
|
1068
|
+
--landing-highlight-value: #{$brand-primary};
|
|
1069
|
+
--landing-highlight-label: #{$brand-dark-text};
|
|
1070
|
+
--landing-accent-line: #{rgba($brand-primary, 0.55)};
|
|
1071
|
+
--landing-icon-bg: #{rgba($brand-primary, 0.16)};
|
|
1072
|
+
--landing-icon-color: #{$brand-primary};
|
|
1073
|
+
--landing-tile-border: #{rgba($brand-light, 0.08)};
|
|
1074
|
+
--landing-tile-bg: #{rgba($brand-light, 0.04)};
|
|
1075
|
+
--landing-tile-hover-border: #{rgba($brand-primary, 0.34)};
|
|
1076
|
+
--landing-tile-hover-bg: #{rgba($brand-light, 0.08)};
|
|
1077
|
+
--landing-tile-hover-shadow: 0 14px 28px #{rgba($brand-dark-bg, 0.2)};
|
|
1078
|
+
--landing-meta-text: #{$brand-primary};
|
|
1079
|
+
--landing-spot-accent: #{rgba($brand-primary, 0.18)};
|
|
1080
|
+
--landing-resource-link-bg: #{rgba($brand-light, 0.06)};
|
|
1081
|
+
--landing-resource-link-text: #{$brand-dark-text};
|
|
1082
|
+
--landing-resource-item-border: #{rgba($brand-light, 0.08)};
|
|
1083
|
+
--landing-resource-item-bg: #{rgba($brand-light, 0.04)};
|
|
1084
|
+
--landing-accent-text: #{$brand-primary};
|
|
1085
|
+
--landing-mesh-color: #{rgba($brand-light, 0.12)};
|
|
1086
|
+
--landing-hero-glow-1: #{rgba($brand-primary, 0.22)};
|
|
1087
|
+
--landing-hero-glow-2: #{rgba($brand-light, 0.08)};
|
|
1088
|
+
--landing-hero-start: #{rgba($brand-dark-bg, 0.96)};
|
|
1089
|
+
--landing-hero-end: #{rgba($dark-pill, 0.96)};
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
.hero {
|
|
1093
|
+
background:
|
|
1094
|
+
radial-gradient(circle at top left, var(--landing-hero-glow-1), transparent 34%),
|
|
1095
|
+
radial-gradient(circle at 82% 20%, var(--landing-hero-glow-2), transparent 20%),
|
|
1096
|
+
linear-gradient(145deg, var(--landing-hero-start), var(--landing-hero-end));
|
|
1097
|
+
box-shadow: var(--landing-shadow);
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
.hero__mesh {
|
|
1101
|
+
background: radial-gradient(circle, var(--landing-mesh-color), transparent 68%);
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
.hero__eyebrow,
|
|
1105
|
+
.section-heading__eyebrow,
|
|
1106
|
+
.resource-card__eyebrow,
|
|
1107
|
+
.preview-panel__kicker,
|
|
1108
|
+
.plugin-group__eyebrow {
|
|
1109
|
+
border-color: var(--landing-border-strong);
|
|
1110
|
+
background: var(--landing-chip-bg);
|
|
1111
|
+
color: var(--landing-chip-text);
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
.hero-title,
|
|
1115
|
+
.hero-subtitle,
|
|
1116
|
+
.preview-panel__copy h2,
|
|
1117
|
+
.section-heading__title,
|
|
1118
|
+
.feature-card__title,
|
|
1119
|
+
.plugin-group__title,
|
|
1120
|
+
.resource-card__title,
|
|
1121
|
+
.plugin-tile__name,
|
|
1122
|
+
.highlight-card__label {
|
|
1123
|
+
color: var(--landing-heading);
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
.hero-button--solid {
|
|
1127
|
+
background: var(--landing-solid-bg);
|
|
1128
|
+
color: var(--landing-solid-text);
|
|
1129
|
+
box-shadow: var(--landing-solid-shadow);
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
.hero-button--ghost {
|
|
1133
|
+
background: var(--landing-ghost-bg);
|
|
1134
|
+
border-color: var(--landing-border-strong);
|
|
1135
|
+
color: var(--landing-ghost-text);
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
.hero-pill {
|
|
1139
|
+
border-color: var(--landing-pill-border);
|
|
1140
|
+
background: var(--landing-pill-bg);
|
|
1141
|
+
color: var(--landing-pill-text);
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
.preview-panel,
|
|
1145
|
+
.feature-card,
|
|
1146
|
+
.resource-card,
|
|
1147
|
+
.plugin-group {
|
|
1148
|
+
background: var(--landing-surface);
|
|
1149
|
+
box-shadow: var(--landing-card-shadow);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
.preview-panel {
|
|
1153
|
+
background:
|
|
1154
|
+
linear-gradient(
|
|
1155
|
+
180deg,
|
|
1156
|
+
var(--landing-panel-gradient-top),
|
|
1157
|
+
var(--landing-panel-gradient-bottom)
|
|
1158
|
+
),
|
|
1159
|
+
var(--landing-panel-bg);
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
.highlight-card {
|
|
1163
|
+
border-color: var(--landing-highlight-border);
|
|
1164
|
+
background: var(--landing-highlight-bg);
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
.highlight-card__value {
|
|
1168
|
+
color: var(--landing-highlight-value);
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
.feature-card::before,
|
|
1172
|
+
.plugin-group::before {
|
|
1173
|
+
background: linear-gradient(90deg, var(--landing-accent-line), transparent 65%);
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
.feature-card__icon {
|
|
1177
|
+
background: var(--landing-icon-bg);
|
|
1178
|
+
color: var(--landing-icon-color);
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
.plugin-tile {
|
|
1182
|
+
border-color: var(--landing-tile-border);
|
|
1183
|
+
background: var(--landing-tile-bg);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.plugin-tile:hover {
|
|
1187
|
+
border-color: var(--landing-tile-hover-border);
|
|
1188
|
+
background: var(--landing-tile-hover-bg);
|
|
1189
|
+
box-shadow: var(--landing-tile-hover-shadow);
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
.plugin-tile__meta {
|
|
1193
|
+
color: var(--landing-meta-text);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
.resource-card--primary {
|
|
1197
|
+
background:
|
|
1198
|
+
radial-gradient(circle at top right, var(--landing-spot-accent), transparent 30%),
|
|
1199
|
+
var(--landing-surface-strong);
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.resource-link {
|
|
1203
|
+
border-color: var(--landing-border-strong);
|
|
1204
|
+
background: var(--landing-resource-link-bg);
|
|
1205
|
+
color: var(--landing-resource-link-text);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
.resource-list__item {
|
|
1209
|
+
border-color: var(--landing-resource-item-border);
|
|
1210
|
+
background: var(--landing-resource-item-bg);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
.resource-list__title {
|
|
1214
|
+
color: var(--landing-accent-text);
|
|
373
1215
|
}
|
|
1216
|
+
/* codex-theme-override:end */
|
|
374
1217
|
</style>
|