@press2ai/theme-specialist-glossy 0.9.2 → 0.10.1
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@press2ai/theme-specialist-glossy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Classless, AI-first theme inspired by Stripe. Framework-agnostic templates (Hono, Astro, raw HTML). Semantic HTML, Schema.org microdata, JSON-LD — built for LLM crawlers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/src/styles/glossy.css
CHANGED
|
@@ -57,12 +57,12 @@ body > header nav {
|
|
|
57
57
|
body > header nav a { color: var(--ink-2); text-decoration: none; font-size: var(--t-sm); font-weight: 500; }
|
|
58
58
|
body > header nav a strong { font-size: var(--t-md); font-weight: 700; color: var(--ink); }
|
|
59
59
|
|
|
60
|
-
/* Main —
|
|
60
|
+
/* Main — systemic gap between blocks, no per-block hacks */
|
|
61
61
|
main {
|
|
62
62
|
max-width: var(--container); margin-inline: auto;
|
|
63
63
|
padding-inline: var(--pad); padding-top: 0; padding-bottom: 0;
|
|
64
64
|
}
|
|
65
|
-
main >
|
|
65
|
+
main > * + * { margin-top: var(--g5); }
|
|
66
66
|
|
|
67
67
|
/* Footer */
|
|
68
68
|
body > footer {
|
|
@@ -96,7 +96,7 @@ body > footer > small > p {
|
|
|
96
96
|
hgroup {
|
|
97
97
|
position: relative; text-align: center; isolation: isolate; overflow: hidden;
|
|
98
98
|
padding: var(--g6) var(--pad) var(--g5);
|
|
99
|
-
margin:
|
|
99
|
+
margin-inline: calc(50% - 50vw);
|
|
100
100
|
background:
|
|
101
101
|
radial-gradient(ellipse 70% 50% at 20% 30%, var(--violet-glow) 0%, transparent 60%),
|
|
102
102
|
radial-gradient(ellipse 50% 60% at 80% 20%, rgba(13,148,136,.12) 0%, transparent 55%),
|
|
@@ -166,7 +166,6 @@ form[role="search"] button {
|
|
|
166
166
|
form[role="search"] button:hover { background: var(--ink); }
|
|
167
167
|
|
|
168
168
|
/* Stats — structural selector, no hardcoded aria-label */
|
|
169
|
-
section:has(> dl) { margin-top: var(--g6); }
|
|
170
169
|
section:has(> dl) > p {
|
|
171
170
|
text-align: center; font-size: var(--t-md); font-weight: 500; line-height: 1.55;
|
|
172
171
|
color: var(--ink); margin: 0 auto var(--g4); max-width: var(--measure);
|
|
@@ -185,7 +184,7 @@ section:has(> dl) > dl dt { font-size: var(--t-lg); font-weight: 800; line-heigh
|
|
|
185
184
|
section:has(> dl) > dl dd { margin: 2px 0 0; font-size: var(--t-xs); line-height: 1.4; color: var(--ink-3); font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; }
|
|
186
185
|
|
|
187
186
|
/* Category pills — single accent, no position-dependent colors */
|
|
188
|
-
nav[aria-label] { display: flex; flex-wrap: wrap; gap: var(--g1);
|
|
187
|
+
nav[aria-label] { display: flex; flex-wrap: wrap; gap: var(--g1); }
|
|
189
188
|
nav[aria-label] a {
|
|
190
189
|
display: inline-flex; align-items: center; height: 32px; padding: 0 var(--g2);
|
|
191
190
|
border-radius: var(--pill); font-size: var(--t-xs); font-weight: 500;
|
|
@@ -195,7 +194,7 @@ nav[aria-label] a:hover { border-color: var(--violet); color: var(--violet); bac
|
|
|
195
194
|
|
|
196
195
|
/* Steps — full-bleed white band */
|
|
197
196
|
section:has(> ol) {
|
|
198
|
-
margin:
|
|
197
|
+
margin-inline: calc(50% - 50vw);
|
|
199
198
|
padding: var(--g5) var(--pad);
|
|
200
199
|
background: var(--white);
|
|
201
200
|
border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
|
|
@@ -222,11 +221,10 @@ section > ol li span { font-size: var(--t-xs); line-height: 1.5; color: var(--in
|
|
|
222
221
|
|
|
223
222
|
/* Trainer cards — no position-dependent colors */
|
|
224
223
|
section:has(> article[itemscope]) {
|
|
225
|
-
margin-top: var(--g6);
|
|
226
224
|
display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--g3);
|
|
227
225
|
}
|
|
228
226
|
section:has(> article[itemscope]) > h2 { grid-column: 1 / -1; margin-bottom: var(--g2); }
|
|
229
|
-
section:has(> article[itemscope]) > nav[aria-label] { grid-column: 1 / -1; margin-
|
|
227
|
+
section:has(> article[itemscope]) > nav[aria-label] { grid-column: 1 / -1; margin-bottom: var(--g2); }
|
|
230
228
|
article[itemscope] {
|
|
231
229
|
position: relative; background: var(--card); border: 1px solid var(--line);
|
|
232
230
|
border-radius: var(--r-lg); padding: var(--g3);
|
|
@@ -268,7 +266,7 @@ article[itemscope] > a:last-child:hover { color: var(--ink); gap: 4px; }
|
|
|
268
266
|
|
|
269
267
|
/* Single trainer */
|
|
270
268
|
main > article {
|
|
271
|
-
max-width: var(--w-8); margin:
|
|
269
|
+
max-width: var(--w-8); margin-inline: auto; background: var(--card);
|
|
272
270
|
border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--g5); box-shadow: var(--shadow-md);
|
|
273
271
|
}
|
|
274
272
|
main > article > header { border-bottom: 1px solid var(--line); padding-bottom: var(--g3); margin-bottom: var(--g4); }
|
|
@@ -292,7 +290,6 @@ main > article dd { margin: 0; font-size: var(--t-sm); }
|
|
|
292
290
|
main > article > footer { margin-top: var(--g4); padding-top: var(--g3); border-top: 1px solid var(--line); text-align: center; }
|
|
293
291
|
|
|
294
292
|
/* Pagination */
|
|
295
|
-
main > nav { margin-top: var(--g4); }
|
|
296
293
|
main > nav p { display: flex; align-items: center; justify-content: center; gap: var(--g3); font-size: var(--t-sm); color: var(--ink-3); }
|
|
297
294
|
main > nav a {
|
|
298
295
|
height: 32px; display: inline-flex; align-items: center; padding: 0 var(--g2);
|
|
@@ -319,7 +316,6 @@ form:not([role="search"]) button[type="submit"] {
|
|
|
319
316
|
form:not([role="search"]) button[type="submit"]:hover { background: var(--ink); transform: translateY(-1px); }
|
|
320
317
|
|
|
321
318
|
/* Trust block */
|
|
322
|
-
aside:has(> ul) { margin-top: var(--g5); }
|
|
323
319
|
|
|
324
320
|
/* Responsive */
|
|
325
321
|
@media (max-width: 640px) {
|
package/src/templates/catalog.ts
CHANGED
|
@@ -55,6 +55,14 @@ export function steps(title: string, items: { title: string; description: string
|
|
|
55
55
|
return `<section>\n<h2>${esc(title)}</h2>\n<ol>\n${lis}\n</ol>\n</section>`;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
export function catalogGrid(p: { title: string; filters?: string; cards: string }): string {
|
|
59
|
+
return `<section>
|
|
60
|
+
<h2>${esc(p.title)}</h2>
|
|
61
|
+
${p.filters ?? ''}
|
|
62
|
+
${p.cards}
|
|
63
|
+
</section>`;
|
|
64
|
+
}
|
|
65
|
+
|
|
58
66
|
export function trustBlock(title: string, points: string[]): string {
|
|
59
67
|
const items = points.map(p => `<li>${esc(p)}</li>`).join('\n');
|
|
60
68
|
return `<aside>
|
package/src/templates/index.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { layout, type LayoutProps } from './layout.ts';
|
|
|
2
2
|
export { hero } from './hero.ts';
|
|
3
3
|
export { profileCard } from './profile-card.ts';
|
|
4
4
|
export { profileArticle } from './profile-article.ts';
|
|
5
|
-
export { catalogHero, statBar, categoryNav, steps, trustBlock, pagination, type CatalogHeroProps, type PaginationProps } from './catalog.ts';
|
|
5
|
+
export { catalogHero, catalogGrid, statBar, categoryNav, steps, trustBlock, pagination, type CatalogHeroProps, type PaginationProps } from './catalog.ts';
|
|
6
6
|
export { esc, fullName } from './helpers.ts';
|