@press2ai/theme-specialist-glossy 1.0.0 → 2.0.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/package.json +1 -1
- package/src/ai.ts +1 -1
- package/src/styles/_shared.ts +3 -0
- package/src/styles/base.ts +4 -4
- package/src/styles/catalog-grid.ts +6 -4
- package/src/styles/category-nav.ts +5 -3
- package/src/styles/hero.ts +15 -11
- package/src/styles/pagination.ts +5 -3
- package/src/styles/profile-article.ts +18 -16
- package/src/styles/profile-card.ts +17 -16
- package/src/styles/stat-bar.ts +9 -7
- package/src/styles/steps.ts +18 -13
- package/src/templates/layout.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@press2ai/theme-specialist-glossy",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Classless, AI-first glossy theme. 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/ai.ts
CHANGED
package/src/styles/base.ts
CHANGED
|
@@ -3,14 +3,14 @@ export const css = `@import url('https://rsms.me/inter/inter.css');
|
|
|
3
3
|
--font: 'Inter', system-ui, sans-serif;
|
|
4
4
|
--g1: .5rem; --g2: .8125rem; --g3: 1.3125rem; --g4: 2.125rem; --g5: 3.4375rem; --g6: 5.5625rem;
|
|
5
5
|
--t-xs: .8rem; --t-sm: 1rem; --t-md: 1.25rem; --t-lg: 1.563rem; --t-xl: 1.953rem; --t-2xl: 2.441rem;
|
|
6
|
-
--container: 1080px; --pad: var(--g4);
|
|
6
|
+
--container: 1080px; --pad: var(--g4);
|
|
7
|
+
--section-gap: var(--g4); --block-gap: var(--g3); --card-gap: var(--g3);
|
|
7
8
|
--measure: 38rem;
|
|
8
9
|
--white: #fff; --bg: #f8f9fb; --card: #fff;
|
|
9
10
|
--ink: #1a1a2e; --ink-2: #4a4a68; --ink-3: #8b8ba3;
|
|
10
11
|
--line: #e8e8ef; --line-h: #d0d0de;
|
|
11
12
|
--violet: #7c5cfc; --violet-s: #f3f0ff; --violet-glow: rgba(124,92,252,.18);
|
|
12
13
|
--teal: #0d9488; --teal-s: #ecfdf5;
|
|
13
|
-
--rose: #e11d63; --amber: #d97706; --sky: #0284c7;
|
|
14
14
|
--r: 16px; --r-lg: 20px; --pill: 999px;
|
|
15
15
|
--shadow: 0 1px 3px rgba(0,0,0,.04);
|
|
16
16
|
--shadow-md: 0 4px 16px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);
|
|
@@ -30,5 +30,5 @@ a:hover { color: var(--ink); }
|
|
|
30
30
|
small { font-size: var(--t-xs); color: var(--ink-3); }
|
|
31
31
|
strong { color: var(--ink); font-weight: 600; }
|
|
32
32
|
main { max-width: var(--container); margin-inline: auto; padding-inline: var(--pad); }
|
|
33
|
-
main > * + * { margin-top: var(--gap); }
|
|
34
|
-
@media (max-width: 640px) { :root { --pad: var(--g3); --gap: var(--g3); } }`;
|
|
33
|
+
main > * + * { margin-top: var(--section-gap); }
|
|
34
|
+
@media (max-width: 640px) { :root { --pad: var(--g3); --section-gap: var(--g3); --block-gap: var(--g2); --card-gap: var(--g2); } }`;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const R = 'main > section:has(> article[itemscope])';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} {
|
|
4
|
+
display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--card-gap);
|
|
3
5
|
}
|
|
4
|
-
|
|
5
|
-
@media (max-width: 640px) {
|
|
6
|
+
${R} > h2 { grid-column: 1 / -1; margin-bottom: 0; }
|
|
7
|
+
@media (max-width: 640px) { ${R} { grid-template-columns: 1fr; } }`;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const R = 'main > nav:has(> a)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} { display: flex; flex-wrap: wrap; gap: var(--g1); }
|
|
4
|
+
${R} > a {
|
|
3
5
|
display: inline-flex; align-items: center; height: 32px; padding: 0 var(--g2);
|
|
4
6
|
border-radius: var(--pill); font-size: var(--t-xs); font-weight: 500;
|
|
5
7
|
background: var(--white); border: 1px solid var(--line); color: var(--ink-2); transition: all var(--ease);
|
|
6
8
|
}
|
|
7
|
-
|
|
9
|
+
${R} > a:hover { border-color: var(--violet); color: var(--violet); background: var(--violet-s); }`;
|
package/src/styles/hero.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { BREAKOUT } from './_shared.ts';
|
|
2
|
+
|
|
3
|
+
const R = 'main > hgroup';
|
|
4
|
+
|
|
5
|
+
export const css = `${R} {
|
|
6
|
+
${BREAKOUT}
|
|
2
7
|
position: relative; text-align: center; isolation: isolate; overflow: hidden;
|
|
3
|
-
padding: var(--g6) var(--
|
|
4
|
-
margin-inline: calc(50% - 50vw);
|
|
8
|
+
padding-block: var(--g6) var(--g5);
|
|
5
9
|
background:
|
|
6
10
|
radial-gradient(ellipse 70% 50% at 20% 30%, var(--violet-glow) 0%, transparent 60%),
|
|
7
11
|
radial-gradient(ellipse 50% 60% at 80% 20%, rgba(13,148,136,.12) 0%, transparent 55%),
|
|
@@ -9,7 +13,7 @@ export const css = `hgroup {
|
|
|
9
13
|
linear-gradient(180deg, #fff 0%, var(--bg) 100%);
|
|
10
14
|
border-bottom: 1px solid var(--line);
|
|
11
15
|
}
|
|
12
|
-
|
|
16
|
+
${R}::before {
|
|
13
17
|
content: ''; position: absolute; inset: 0;
|
|
14
18
|
background-image:
|
|
15
19
|
linear-gradient(rgba(124,92,252,.04) 1px, transparent 1px),
|
|
@@ -18,17 +22,17 @@ hgroup::before {
|
|
|
18
22
|
mask-image: radial-gradient(ellipse 60% 50% at 50% 40%, black 0%, transparent 70%);
|
|
19
23
|
z-index: -1;
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
${R} > * { position: relative; }
|
|
26
|
+
${R} > p:first-child { display: inline-flex; margin-bottom: var(--g4); }
|
|
27
|
+
${R} > p:first-child small {
|
|
24
28
|
display: inline-flex; align-items: center; gap: var(--g1);
|
|
25
29
|
background: rgba(255,255,255,.7); backdrop-filter: blur(8px);
|
|
26
30
|
padding: var(--g1) var(--g2); border: 1px solid var(--line);
|
|
27
31
|
border-radius: var(--pill); font-weight: 600; color: var(--teal); box-shadow: var(--shadow);
|
|
28
32
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
${R} > p:first-child small::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #00d24a; box-shadow: 0 0 0 3px rgba(0,210,74,.2); }
|
|
34
|
+
${R} h1 { max-width: 18ch; margin: 0 auto var(--g4); }
|
|
35
|
+
${R} p { font-size: var(--t-md); line-height: 1.55; color: var(--ink-2); max-width: var(--measure); margin: 0 auto var(--g4); }
|
|
32
36
|
form[role="search"] {
|
|
33
37
|
display: flex; max-width: 495px; height: 48px;
|
|
34
38
|
margin: var(--g4) auto 0; background: var(--white);
|
|
@@ -48,7 +52,7 @@ form[role="search"] button {
|
|
|
48
52
|
}
|
|
49
53
|
form[role="search"] button:hover { background: var(--ink); }
|
|
50
54
|
@media (max-width: 640px) {
|
|
51
|
-
|
|
55
|
+
${R} { padding-block: var(--g5) var(--g4); }
|
|
52
56
|
form[role="search"] { height: 40px; }
|
|
53
57
|
form[role="search"] input { font-size: var(--t-xs); }
|
|
54
58
|
}`;
|
package/src/styles/pagination.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const R = 'main > nav:has(> p)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} > p { display: flex; align-items: center; justify-content: center; gap: var(--block-gap); font-size: var(--t-sm); color: var(--ink-3); }
|
|
4
|
+
${R} a {
|
|
3
5
|
height: 32px; display: inline-flex; align-items: center; padding: 0 var(--g2);
|
|
4
6
|
border-radius: var(--pill); background: var(--white); border: 1px solid var(--line);
|
|
5
7
|
font-size: var(--t-xs); font-weight: 500; transition: all var(--ease);
|
|
6
8
|
}
|
|
7
|
-
|
|
9
|
+
${R} a:hover { border-color: var(--violet); color: var(--violet); transform: translateY(-1px); }`;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
const R = 'main > article[itemscope]';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} { max-width: 667px; }
|
|
4
|
+
${R} > header { padding-bottom: var(--g4); margin-bottom: var(--g4); border-bottom: 2px solid var(--ink); }
|
|
5
|
+
${R} > header h1 { font-size: var(--t-2xl); font-weight: 800; letter-spacing: -.04em; line-height: 1.05; margin-bottom: var(--g1); }
|
|
6
|
+
${R} > header p { font-size: var(--t-md); color: var(--ink-2); margin: 0; }
|
|
7
|
+
${R} > header small { display: block; margin-top: var(--g1); font-size: var(--t-xs); color: var(--teal); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
|
|
8
|
+
${R} address { font-style: normal; font-size: var(--t-sm); color: var(--ink-2); padding: var(--g2) 0; margin-bottom: var(--block-gap); border-bottom: 1px solid var(--line); }
|
|
9
|
+
${R} section { margin: var(--g4) 0; padding-top: var(--block-gap); border-top: 1px solid var(--line); }
|
|
10
|
+
${R} section h2 { font-size: var(--t-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 var(--g2); }
|
|
11
|
+
${R} ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--g1); }
|
|
12
|
+
${R} ul li { font-size: var(--t-xs); font-weight: 500; color: var(--ink-2); padding: calc(var(--g1)/2) 0; }
|
|
13
|
+
${R} ul li:not(:last-child)::after { content: ','; }
|
|
14
|
+
${R} dl { display: grid; grid-template-columns: 8rem 1fr; gap: var(--g1) var(--block-gap); }
|
|
15
|
+
${R} dt { font-size: var(--t-xs); color: var(--ink-3); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
|
|
16
|
+
${R} dd { margin: 0; font-size: var(--t-sm); }
|
|
15
17
|
@media (max-width: 640px) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
${R} dl { grid-template-columns: 1fr; gap: calc(var(--g1)/2) 0; }
|
|
19
|
+
${R} dt { margin-top: var(--g2); }
|
|
18
20
|
}`;
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const R = 'main > section:has(> article[itemscope]) > article[itemscope]';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} {
|
|
3
4
|
background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
|
|
4
5
|
padding: var(--g3); display: flex; flex-direction: column;
|
|
5
6
|
box-shadow: var(--shadow); transition: all var(--ease);
|
|
6
7
|
}
|
|
7
|
-
${
|
|
8
|
-
${
|
|
8
|
+
${R}:hover { transform: translateY(-2px); box-shadow: var(--shadow-up); border-color: var(--line-h); }
|
|
9
|
+
${R} > div[aria-hidden] {
|
|
9
10
|
width: 40px; height: 40px; border-radius: 50%;
|
|
10
11
|
display: flex; align-items: center; justify-content: center;
|
|
11
12
|
font-size: var(--t-xs); font-weight: 700; color: var(--white);
|
|
12
13
|
margin-bottom: var(--g2); background: var(--violet);
|
|
13
14
|
}
|
|
14
|
-
${
|
|
15
|
-
${
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
${
|
|
19
|
-
${
|
|
20
|
-
${
|
|
21
|
-
${
|
|
22
|
-
${
|
|
23
|
-
${
|
|
15
|
+
${R} header { margin-bottom: var(--g1); }
|
|
16
|
+
${R} h2 { font-size: var(--t-sm); font-weight: 600; line-height: 1.3; margin: 0 0 2px; }
|
|
17
|
+
${R} h2 a { color: var(--ink); }
|
|
18
|
+
${R} h2 a:hover { color: var(--violet); }
|
|
19
|
+
${R} header p { font-size: var(--t-xs); color: var(--ink-3); margin: 0; }
|
|
20
|
+
${R} header p:has([itemprop="address"]) { display: inline-flex; align-items: center; gap: 4px; margin-top: 2px; }
|
|
21
|
+
${R} header p:has([itemprop="address"])::before { content: ''; width: 3px; height: 3px; border-radius: 50%; background: var(--ink-3); }
|
|
22
|
+
${R} [itemprop="description"] { font-size: var(--t-xs); line-height: 1.5; margin: var(--g1) 0 0; color: var(--ink-2); }
|
|
23
|
+
${R} ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; margin-top: var(--g1); }
|
|
24
|
+
${R} ul li {
|
|
24
25
|
background: var(--violet-s); color: var(--violet);
|
|
25
26
|
padding: 1px var(--g1); border-radius: var(--pill); font-size: .7rem; font-weight: 500;
|
|
26
27
|
}
|
|
27
|
-
${
|
|
28
|
+
${R} > a:last-child {
|
|
28
29
|
display: inline-flex; margin-top: auto; padding-top: var(--g2);
|
|
29
30
|
font-size: var(--t-xs); font-weight: 600; color: var(--violet); transition: all var(--ease);
|
|
30
31
|
}
|
|
31
|
-
${
|
|
32
|
+
${R} > a:last-child:hover { color: var(--ink); }`;
|
package/src/styles/stat-bar.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
const R = 'main > section:has(> dl)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} > dl {
|
|
2
4
|
display: flex; justify-content: center; gap: var(--g5); padding: 0;
|
|
3
5
|
}
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
${R} > dl div { text-align: center; }
|
|
7
|
+
${R} > dl div > span:has(> svg) {
|
|
6
8
|
display: flex; align-items: center; justify-content: center; width: 36px; height: 36px;
|
|
7
9
|
margin: 0 auto var(--g1); background: var(--violet-s); border-radius: 50%; color: var(--violet);
|
|
8
10
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@media (max-width: 640px) {
|
|
11
|
+
${R} > dl div > span:has(> svg) > svg { width: 18px; height: 18px; }
|
|
12
|
+
${R} > dl dt { font-size: var(--t-lg); font-weight: 800; line-height: 1.2; color: var(--violet); }
|
|
13
|
+
${R} > dl dd { margin: 2px 0 0; font-size: var(--t-xs); color: var(--ink-3); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
|
|
14
|
+
@media (max-width: 640px) { ${R} > dl { gap: var(--block-gap); } }`;
|
package/src/styles/steps.ts
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BREAKOUT_LIGHT } from './_shared.ts';
|
|
2
|
+
|
|
3
|
+
const R = 'main > section:has(> ol)';
|
|
4
|
+
|
|
5
|
+
export const css = `${R} {
|
|
6
|
+
${BREAKOUT_LIGHT}
|
|
7
|
+
padding-block: var(--g5);
|
|
8
|
+
border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
|
|
4
9
|
}
|
|
5
|
-
|
|
6
|
-
|
|
10
|
+
${R} > h2 { text-align: center; margin-bottom: var(--g4); }
|
|
11
|
+
${R} > ol {
|
|
7
12
|
list-style: none; padding: 0; margin: 0 auto; max-width: var(--container);
|
|
8
|
-
display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--
|
|
13
|
+
display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--card-gap);
|
|
9
14
|
counter-reset: steps;
|
|
10
15
|
}
|
|
11
|
-
|
|
16
|
+
${R} > ol > li {
|
|
12
17
|
counter-increment: steps; background: var(--bg); border: 1px solid var(--line);
|
|
13
18
|
border-radius: var(--r-lg); padding: var(--g4) var(--g3); text-align: center; transition: all var(--ease);
|
|
14
19
|
}
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
${R} > ol > li:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
|
|
21
|
+
${R} > ol > li::before {
|
|
17
22
|
content: counter(steps); display: flex; align-items: center; justify-content: center;
|
|
18
23
|
width: 40px; height: 40px; margin: 0 auto var(--g2);
|
|
19
24
|
border-radius: 50%; font-size: var(--t-sm); font-weight: 700;
|
|
20
25
|
background: var(--violet-s); color: var(--violet);
|
|
21
26
|
}
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
${R} > ol > li strong { display: block; font-size: var(--t-sm); margin-bottom: 4px; color: var(--ink); }
|
|
28
|
+
${R} > ol > li span { font-size: var(--t-xs); line-height: 1.5; color: var(--ink-3); }
|
|
24
29
|
@media (max-width: 640px) {
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
${R} > ol { grid-template-columns: 1fr; }
|
|
31
|
+
${R} { padding-block: var(--g4); }
|
|
27
32
|
}`;
|