@press2ai/theme-therapy-soft 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/styles/_shared.ts +3 -0
- package/src/styles/base.ts +19 -51
- package/src/styles/catalog-grid.ts +6 -13
- package/src/styles/category-nav.ts +6 -7
- package/src/styles/cta.ts +11 -13
- package/src/styles/faq.ts +14 -24
- package/src/styles/hero.ts +19 -40
- package/src/styles/pagination.ts +6 -4
- package/src/styles/process.ts +15 -21
- package/src/styles/profile-article.ts +17 -47
- package/src/styles/profile-card.ts +24 -42
- package/src/styles/stat-bar.ts +15 -22
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@press2ai/theme-therapy-soft",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Warm sage/beige classless theme for therapy verticals. Crimson Text serif + Inter. Structurally compatible with @press2ai/engine CatalogTheme.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const BREAKOUT = `margin-inline: calc(50% - 50vw); padding-inline: var(--pad);`;
|
|
2
|
+
export const BREAKOUT_LIGHT = `${BREAKOUT} background: var(--gray-bg);`;
|
|
3
|
+
export const BREAKOUT_DARK = `${BREAKOUT} background: linear-gradient(170deg, var(--navy) 0%, #2a2a5c 100%); color: var(--white);`;
|
package/src/styles/base.ts
CHANGED
|
@@ -1,34 +1,18 @@
|
|
|
1
1
|
export const css = `@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,600;1,9..144,400&family=DM+Sans:wght@400;500;600&display=swap');
|
|
2
|
-
|
|
3
2
|
:root {
|
|
4
|
-
--font-sans: 'DM Sans', system-ui,
|
|
3
|
+
--font-sans: 'DM Sans', system-ui, sans-serif;
|
|
5
4
|
--font-display: 'Fraunces', Georgia, serif;
|
|
6
|
-
|
|
7
|
-
--
|
|
8
|
-
--t-xs: 0.8125rem; --t-sm: 0.9375rem; --t-md: 1.125rem; --t-lg: 1.5625rem; --t-xl: 2.125rem; --t-2xl: 2.5rem; --t-3xl: 3.5rem;
|
|
5
|
+
--g1: .5rem; --g2: .75rem; --g3: 1rem; --g4: 1.5rem; --g5: 2.5rem; --g6: 4rem; --g7: 6rem;
|
|
6
|
+
--t-xs: .8125rem; --t-sm: .9375rem; --t-md: 1.125rem; --t-lg: 1.5625rem; --t-xl: 2.125rem; --t-2xl: 2.5rem; --t-3xl: 3.5rem;
|
|
9
7
|
--container: 1200px; --pad: var(--g5);
|
|
8
|
+
--section-gap: var(--g5); --block-gap: var(--g3); --card-gap: var(--g4);
|
|
10
9
|
--measure: 38rem;
|
|
11
|
-
|
|
12
|
-
--
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--navy: #1d1d46;
|
|
18
|
-
--navy-2: #3d3d66;
|
|
19
|
-
--gray: #6e7878;
|
|
20
|
-
--gray-light: #d9e0e1;
|
|
21
|
-
--gray-bg: #f5f7f7;
|
|
22
|
-
--teal-soft: #ecf6f5;
|
|
23
|
-
--peach-soft: #fff6f1;
|
|
24
|
-
--white: #ffffff;
|
|
25
|
-
|
|
26
|
-
--bg: var(--white);
|
|
27
|
-
--card: var(--white);
|
|
28
|
-
--ink: var(--navy);
|
|
29
|
-
--ink-2: var(--gray);
|
|
30
|
-
--line: var(--gray-light);
|
|
31
|
-
|
|
10
|
+
--purple: #a293ff; --purple-soft: #efebff; --purple-dark: #8677e0;
|
|
11
|
+
--gold: #f0be37; --gold-soft: #fff5da;
|
|
12
|
+
--navy: #1d1d46; --navy-2: #3d3d66;
|
|
13
|
+
--gray: #6e7878; --gray-light: #d9e0e1; --gray-bg: #f5f7f7;
|
|
14
|
+
--white: #fff;
|
|
15
|
+
--bg: var(--white); --card: var(--white); --ink: var(--navy); --ink-2: var(--gray); --line: var(--gray-light);
|
|
32
16
|
--r: 8px; --r-lg: 20px; --r-btn: 12px;
|
|
33
17
|
--shadow: 0 1px 3px rgba(29,29,70,.06);
|
|
34
18
|
--shadow-md: 0 4px 20px rgba(29,29,70,.08);
|
|
@@ -37,32 +21,16 @@ export const css = `@import url('https://fonts.googleapis.com/css2?family=Fraunc
|
|
|
37
21
|
}
|
|
38
22
|
*, *::before, *::after { box-sizing: border-box; margin: 0; }
|
|
39
23
|
html { font-size: 16px; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
|
|
40
|
-
body {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
line-height: 1.2; letter-spacing: -0.02em;
|
|
47
|
-
}
|
|
48
|
-
h1 { font-size: clamp(var(--t-2xl), 5.5vw, var(--t-3xl)); margin-bottom: var(--g4); }
|
|
49
|
-
h2 { font-size: clamp(var(--t-lg), 3vw, var(--t-2xl)); margin-bottom: var(--g3); }
|
|
50
|
-
h3 { font-size: var(--t-md); font-weight: 500; font-family: var(--font-sans); margin-bottom: var(--g2); }
|
|
51
|
-
p { font-size: var(--t-sm); line-height: 1.6; color: var(--ink-2); margin-bottom: var(--g2); max-width: var(--measure); }
|
|
24
|
+
body { font-family: var(--font-sans); color: var(--ink); background: var(--bg); line-height: 1.5; overflow-x: clip; }
|
|
25
|
+
h1, h2, h3 { color: var(--ink); font-family: var(--font-display); font-weight: 400; line-height: 1.2; letter-spacing: -.02em; }
|
|
26
|
+
h1 { font-size: clamp(var(--t-2xl), 5.5vw, var(--t-3xl)); }
|
|
27
|
+
h2 { font-size: clamp(var(--t-lg), 3vw, var(--t-2xl)); }
|
|
28
|
+
h3 { font-size: var(--t-md); font-weight: 500; font-family: var(--font-sans); }
|
|
29
|
+
p { font-size: var(--t-sm); line-height: 1.6; color: var(--ink-2); max-width: var(--measure); }
|
|
52
30
|
a { color: var(--purple); text-decoration: none; transition: color var(--ease); }
|
|
53
31
|
a:hover { color: var(--navy); }
|
|
54
32
|
small { font-size: var(--t-xs); color: var(--ink-2); }
|
|
55
33
|
strong { color: var(--ink); font-weight: 600; }
|
|
56
|
-
main {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
main:not(:has(> section, > article, > div, > nav)) {
|
|
61
|
-
padding-top: var(--g6); padding-bottom: var(--g6);
|
|
62
|
-
}
|
|
63
|
-
main > * + * { margin-top: var(--g6); }
|
|
64
|
-
@media (max-width: 640px) {
|
|
65
|
-
:root { --pad: var(--g3); }
|
|
66
|
-
main { padding: 0 var(--pad) var(--g4); }
|
|
67
|
-
main > * + * { margin-top: var(--g5); }
|
|
68
|
-
}`;
|
|
34
|
+
main { max-width: var(--container); margin-inline: auto; padding-inline: var(--pad); }
|
|
35
|
+
main > * + * { margin-top: var(--section-gap); }
|
|
36
|
+
@media (max-width: 640px) { :root { --pad: var(--g3); --section-gap: var(--g4); --block-gap: var(--g2); --card-gap: var(--g3); } }`;
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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);
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
font-family: var(--font-display);
|
|
8
|
-
}
|
|
9
|
-
section:has(> article[itemscope]) > nav[aria-label] {
|
|
10
|
-
grid-column: 1 / -1; margin-bottom: var(--g3); justify-content: center;
|
|
11
|
-
}
|
|
12
|
-
@media (max-width: 640px) {
|
|
13
|
-
section:has(> article[itemscope]) { grid-template-columns: 1fr; }
|
|
14
|
-
}`;
|
|
6
|
+
${R} > h2 { grid-column: 1 / -1; text-align: center; margin-bottom: 0; }
|
|
7
|
+
@media (max-width: 640px) { ${R} { grid-template-columns: 1fr; } }`;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
4
|
-
|
|
1
|
+
const R = 'main > nav:has(> a)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} { display: flex; flex-wrap: wrap; gap: var(--g1); justify-content: center; }
|
|
4
|
+
${R} > a {
|
|
5
5
|
display: inline-flex; align-items: center; height: 40px; padding: 0 var(--g3);
|
|
6
6
|
border-radius: var(--r-btn); font-size: var(--t-xs); font-weight: 500;
|
|
7
|
-
background: var(--purple-soft); border: none; color: var(--navy);
|
|
8
|
-
transition: all var(--ease);
|
|
7
|
+
background: var(--purple-soft); border: none; color: var(--navy); transition: all var(--ease);
|
|
9
8
|
}
|
|
10
|
-
|
|
9
|
+
${R} > a:hover { background: var(--purple); color: var(--white); }`;
|
package/src/styles/cta.ts
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { BREAKOUT_DARK } from './_shared.ts';
|
|
2
|
+
|
|
3
|
+
const R = 'section[aria-label="CTA"]';
|
|
4
|
+
|
|
5
|
+
export const css = `${R} {
|
|
6
|
+
${BREAKOUT_DARK}
|
|
7
|
+
padding-block: var(--g6); text-align: center;
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
section[aria-label="CTA"] > p {
|
|
10
|
-
color: rgba(255,255,255,.7); font-size: var(--t-md); max-width: var(--measure);
|
|
11
|
-
margin: 0 auto var(--g5);
|
|
12
|
-
}
|
|
13
|
-
section[aria-label="CTA"] > a {
|
|
9
|
+
${R} > h2 { color: var(--white); max-width: 18ch; margin: 0 auto var(--block-gap); }
|
|
10
|
+
${R} > p { color: rgba(255,255,255,.7); font-size: var(--t-md); max-width: var(--measure); margin: 0 auto var(--g5); }
|
|
11
|
+
${R} > a {
|
|
14
12
|
display: inline-flex; align-items: center; height: 56px; padding: 0 var(--g5);
|
|
15
13
|
border-radius: var(--r-btn); background: var(--gold); color: var(--navy);
|
|
16
14
|
font-weight: 600; font-size: var(--t-sm); transition: background var(--ease);
|
|
17
15
|
}
|
|
18
|
-
|
|
16
|
+
${R} > a:hover { background: #e5b030; color: var(--navy); }`;
|
package/src/styles/faq.ts
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
section[aria-label="FAQ"] details > summary {
|
|
1
|
+
const R = 'main > section:has(> details)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} { max-width: 800px; margin-inline: auto; }
|
|
4
|
+
${R} > h2 { text-align: center; margin-bottom: var(--g5); }
|
|
5
|
+
${R} > details { border-bottom: 1px solid var(--line); }
|
|
6
|
+
${R} > details > summary {
|
|
9
7
|
display: flex; justify-content: space-between; align-items: center;
|
|
10
|
-
padding: var(--
|
|
11
|
-
font-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
section[aria-label="FAQ"] details[open] > summary::after {
|
|
20
|
-
content: '−';
|
|
21
|
-
}
|
|
22
|
-
section[aria-label="FAQ"] details > summary:hover { color: var(--purple); }
|
|
23
|
-
section[aria-label="FAQ"] details > div {
|
|
24
|
-
padding: 0 0 var(--g3); font-size: var(--t-sm); line-height: 1.7; color: var(--ink-2);
|
|
25
|
-
}`;
|
|
8
|
+
padding: var(--block-gap) 0; cursor: pointer; list-style: none;
|
|
9
|
+
font-size: var(--t-sm); font-weight: 500; color: var(--ink); transition: color var(--ease);
|
|
10
|
+
}
|
|
11
|
+
${R} > details > summary::-webkit-details-marker { display: none; }
|
|
12
|
+
${R} > details > summary::after { content: '+'; font-size: var(--t-lg); font-weight: 300; color: var(--purple); }
|
|
13
|
+
${R} > details[open] > summary::after { content: '\\2212'; }
|
|
14
|
+
${R} > details > summary:hover { color: var(--purple); }
|
|
15
|
+
${R} > details > div { padding: 0 0 var(--block-gap); font-size: var(--t-sm); line-height: 1.7; color: var(--ink-2); }`;
|
package/src/styles/hero.ts
CHANGED
|
@@ -1,54 +1,33 @@
|
|
|
1
|
-
|
|
1
|
+
import { BREAKOUT_DARK } from './_shared.ts';
|
|
2
|
+
|
|
3
|
+
const R = 'main > hgroup';
|
|
4
|
+
|
|
5
|
+
export const css = `${R} {
|
|
6
|
+
${BREAKOUT_DARK}
|
|
2
7
|
position: relative; text-align: center; isolation: isolate;
|
|
3
|
-
padding: var(--g7) var(--
|
|
4
|
-
margin-inline: calc(50% - 50vw);
|
|
5
|
-
background: linear-gradient(170deg, var(--navy) 0%, #2a2a5c 40%, #3d2d6b 100%);
|
|
6
|
-
color: var(--white);
|
|
8
|
+
padding-block: var(--g7) var(--g6);
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
${R} > * { position: relative; max-width: 860px; margin-inline: auto; }
|
|
11
|
+
${R} > p:first-child { display: inline-flex; margin: 0 auto var(--g4); }
|
|
12
|
+
${R} > p:first-child small {
|
|
11
13
|
display: inline-flex; align-items: center; gap: var(--g1);
|
|
12
14
|
background: rgba(255,255,255,.1); backdrop-filter: blur(8px);
|
|
13
15
|
padding: var(--g1) var(--g3); border: 1px solid rgba(255,255,255,.15);
|
|
14
|
-
border-radius: 999px; font-size: var(--t-xs); font-weight: 500; color: var(--gold);
|
|
15
|
-
letter-spacing: 0.04em;
|
|
16
|
+
border-radius: 999px; font-size: var(--t-xs); font-weight: 500; color: var(--gold); letter-spacing: .04em;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
${R} > p:first-child small::before {
|
|
18
19
|
content: ''; width: 6px; height: 6px; border-radius: 50%;
|
|
19
20
|
background: var(--gold); box-shadow: 0 0 0 3px rgba(240,190,55,.3);
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
${R} h1 { font-weight: 300; max-width: 16ch; margin: 0 auto var(--g4); color: var(--white); line-height: 1.1; }
|
|
23
|
+
${R} > p:not(:first-child) {
|
|
24
|
+
font-size: var(--t-md); line-height: 1.6; color: rgba(255,255,255,.7);
|
|
25
|
+
max-width: var(--measure); margin: 0 auto var(--g5);
|
|
25
26
|
}
|
|
26
|
-
hgroup > p:not(:first-child) {
|
|
27
|
-
font-size: var(--t-md); font-weight: 400; line-height: 1.6;
|
|
28
|
-
color: rgba(255,255,255,.7); max-width: var(--measure);
|
|
29
|
-
margin: 0 auto var(--g5);
|
|
30
|
-
}
|
|
31
|
-
hgroup > nav {
|
|
32
|
-
display: flex; gap: var(--g2); flex-wrap: wrap; justify-content: center;
|
|
33
|
-
margin-top: var(--g4);
|
|
34
|
-
}
|
|
35
|
-
hgroup > nav > a {
|
|
36
|
-
display: inline-flex; align-items: center; height: 56px; padding: 0 var(--g5);
|
|
37
|
-
border-radius: var(--r-btn); font-weight: 500; font-size: var(--t-sm);
|
|
38
|
-
transition: all var(--ease);
|
|
39
|
-
background: rgba(255,255,255,.08); color: var(--white); border: 1px solid rgba(255,255,255,.15);
|
|
40
|
-
}
|
|
41
|
-
hgroup > nav > a:first-child {
|
|
42
|
-
background: var(--gold); color: var(--navy); border-color: transparent;
|
|
43
|
-
font-weight: 600;
|
|
44
|
-
}
|
|
45
|
-
hgroup > nav > a:first-child:hover { background: #e5b030; }
|
|
46
|
-
hgroup > nav > a:not(:first-child):hover { background: rgba(255,255,255,.15); }
|
|
47
27
|
form[role="search"] {
|
|
48
28
|
display: flex; max-width: 520px; height: 56px;
|
|
49
29
|
margin: var(--g5) auto 0; background: var(--white);
|
|
50
|
-
border-radius: var(--r-btn); overflow: hidden;
|
|
51
|
-
box-shadow: 0 8px 32px rgba(0,0,0,.2);
|
|
30
|
+
border-radius: var(--r-btn); overflow: hidden; box-shadow: 0 8px 32px rgba(0,0,0,.2);
|
|
52
31
|
}
|
|
53
32
|
form[role="search"] input {
|
|
54
33
|
flex: 1; min-width: 0; border: none; background: transparent; color: var(--ink);
|
|
@@ -62,6 +41,6 @@ form[role="search"] button {
|
|
|
62
41
|
}
|
|
63
42
|
form[role="search"] button:hover { background: var(--purple-dark); }
|
|
64
43
|
@media (max-width: 640px) {
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
${R} { padding-block: var(--g6) var(--g5); }
|
|
45
|
+
form[role="search"] { height: 48px; }
|
|
67
46
|
}`;
|
package/src/styles/pagination.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const R = 'main > nav:has(> p)';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} > p {
|
|
4
|
+
display: flex; align-items: center; justify-content: center; gap: var(--block-gap);
|
|
3
5
|
font-size: var(--t-xs); color: var(--ink-2);
|
|
4
6
|
}
|
|
5
|
-
|
|
7
|
+
${R} a {
|
|
6
8
|
height: 40px; display: inline-flex; align-items: center; padding: 0 var(--g3);
|
|
7
9
|
border-radius: var(--r-btn); background: var(--purple-soft);
|
|
8
10
|
font-size: var(--t-xs); font-weight: 500; color: var(--navy); border: none;
|
|
9
11
|
transition: all var(--ease);
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
${R} a:hover { background: var(--purple); color: var(--white); }`;
|
package/src/styles/process.ts
CHANGED
|
@@ -1,33 +1,27 @@
|
|
|
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(--g6);
|
|
4
8
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
section[aria-label="Proces"] > p {
|
|
9
|
-
text-align: center; max-width: var(--container); margin: 0 auto var(--g5);
|
|
10
|
-
font-size: var(--t-md); color: var(--ink-2);
|
|
11
|
-
}
|
|
12
|
-
section[aria-label="Proces"] > ol {
|
|
9
|
+
${R} > h2 { text-align: center; max-width: var(--container); margin: 0 auto var(--g2); }
|
|
10
|
+
${R} > p { text-align: center; max-width: var(--container); margin: 0 auto var(--g5); font-size: var(--t-md); color: var(--ink-2); }
|
|
11
|
+
${R} > ol {
|
|
13
12
|
display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
14
|
-
gap: var(--
|
|
13
|
+
gap: var(--card-gap); max-width: var(--container); margin: 0 auto;
|
|
15
14
|
list-style: none; padding: 0; counter-reset: step;
|
|
16
15
|
}
|
|
17
|
-
|
|
16
|
+
${R} > ol > li {
|
|
18
17
|
counter-increment: step; text-align: center;
|
|
19
18
|
background: var(--white); border-radius: var(--r-lg); padding: var(--g5) var(--g3);
|
|
20
19
|
box-shadow: var(--shadow);
|
|
21
20
|
}
|
|
22
|
-
|
|
21
|
+
${R} > ol > li::before {
|
|
23
22
|
content: counter(step, decimal-leading-zero);
|
|
24
23
|
display: block; font-family: var(--font-display); font-size: var(--t-2xl);
|
|
25
24
|
font-weight: 300; color: var(--purple); margin-bottom: var(--g3);
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
font-weight: 600; margin-bottom: var(--g2);
|
|
30
|
-
}
|
|
31
|
-
section[aria-label="Proces"] > ol > li > span {
|
|
32
|
-
font-size: var(--t-xs); color: var(--ink-2); line-height: 1.6;
|
|
33
|
-
}`;
|
|
26
|
+
${R} > ol > li > strong { display: block; font-size: var(--t-sm); font-weight: 600; margin-bottom: var(--g2); }
|
|
27
|
+
${R} > ol > li > span { font-size: var(--t-xs); color: var(--ink-2); line-height: 1.6; }`;
|
|
@@ -1,49 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
font-family: var(--font-display); font-style: italic;
|
|
17
|
-
}
|
|
18
|
-
main > article address {
|
|
19
|
-
font-style: normal; font-size: var(--t-sm); color: var(--ink-2);
|
|
20
|
-
padding: var(--g2) 0; margin-bottom: var(--g4); border-bottom: 1px solid var(--line);
|
|
21
|
-
}
|
|
22
|
-
main > article section {
|
|
23
|
-
margin: var(--g5) 0; padding-top: var(--g4); border-top: 1px solid var(--line);
|
|
24
|
-
}
|
|
25
|
-
main > article section h2 {
|
|
26
|
-
font-family: var(--font-sans); font-size: var(--t-xs); font-weight: 600;
|
|
27
|
-
text-transform: uppercase; letter-spacing: 0.1em; color: var(--purple);
|
|
28
|
-
margin: 0 0 var(--g3);
|
|
29
|
-
}
|
|
30
|
-
main > article ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--g1); }
|
|
31
|
-
main > article ul li {
|
|
32
|
-
font-size: var(--t-xs); font-weight: 500; color: var(--purple-dark);
|
|
33
|
-
padding: var(--g1) var(--g2); background: var(--purple-soft); border-radius: 999px;
|
|
34
|
-
}
|
|
35
|
-
main > article dl {
|
|
36
|
-
display: grid; grid-template-columns: 9rem 1fr; gap: var(--g2) var(--g3);
|
|
37
|
-
}
|
|
38
|
-
main > article dt {
|
|
39
|
-
font-size: var(--t-xs); color: var(--ink-2); font-weight: 600;
|
|
40
|
-
text-transform: uppercase; letter-spacing: 0.06em;
|
|
41
|
-
}
|
|
42
|
-
main > article dd { margin: 0; font-size: var(--t-sm); }
|
|
43
|
-
main > article dd a { color: var(--purple); }
|
|
44
|
-
main > article dd a:hover { color: var(--navy); }
|
|
1
|
+
const R = 'main > article[itemscope]';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} { max-width: 720px; margin-inline: auto; }
|
|
4
|
+
${R} > header { padding-bottom: var(--g4); margin-bottom: var(--g4); border-bottom: 2px solid var(--purple); }
|
|
5
|
+
${R} > header h1 { font-weight: 400; font-size: clamp(var(--t-xl), 5vw, var(--t-2xl)); letter-spacing: -.02em; line-height: 1.15; margin-bottom: var(--g1); }
|
|
6
|
+
${R} > header p { font-size: var(--t-md); color: var(--purple); margin: 0; font-family: var(--font-display); font-style: italic; }
|
|
7
|
+
${R} address { font-style: normal; font-size: var(--t-sm); color: var(--ink-2); padding: var(--g2) 0; margin-bottom: var(--g4); border-bottom: 1px solid var(--line); }
|
|
8
|
+
${R} section { margin: var(--g5) 0; padding-top: var(--g4); border-top: 1px solid var(--line); }
|
|
9
|
+
${R} section h2 { font-family: var(--font-sans); font-size: var(--t-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--purple); margin: 0 0 var(--block-gap); }
|
|
10
|
+
${R} ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--g1); }
|
|
11
|
+
${R} ul li { font-size: var(--t-xs); font-weight: 500; color: var(--purple-dark); padding: var(--g1) var(--g2); background: var(--purple-soft); border-radius: 999px; }
|
|
12
|
+
${R} dl { display: grid; grid-template-columns: 9rem 1fr; gap: var(--g2) var(--block-gap); }
|
|
13
|
+
${R} dt { font-size: var(--t-xs); color: var(--ink-2); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
|
|
14
|
+
${R} dd { margin: 0; font-size: var(--t-sm); }
|
|
15
|
+
${R} dd a { color: var(--purple); }
|
|
45
16
|
@media (max-width: 640px) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
main > article dt { margin-top: var(--g2); }
|
|
17
|
+
${R} dl { grid-template-columns: 1fr; gap: 2px 0; }
|
|
18
|
+
${R} dt { margin-top: var(--g2); }
|
|
49
19
|
}`;
|
|
@@ -1,47 +1,29 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
border
|
|
5
|
-
display: flex; flex-direction: column;
|
|
1
|
+
const R = 'main > section:has(> article[itemscope]) > article[itemscope]';
|
|
2
|
+
|
|
3
|
+
export const css = `${R} {
|
|
4
|
+
background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
|
|
5
|
+
padding: var(--g4); display: flex; flex-direction: column;
|
|
6
6
|
box-shadow: var(--shadow); transition: all var(--ease);
|
|
7
7
|
}
|
|
8
|
-
${
|
|
9
|
-
${
|
|
8
|
+
${R}:hover { box-shadow: var(--shadow-md); border-color: var(--purple); }
|
|
9
|
+
${R} > div[aria-hidden] {
|
|
10
10
|
width: 56px; height: 56px; border-radius: 50%;
|
|
11
11
|
display: flex; align-items: center; justify-content: center;
|
|
12
12
|
font-family: var(--font-display); font-size: var(--t-md); font-weight: 400;
|
|
13
|
-
color: var(--white); background: var(--purple);
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
${
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
-
${
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
${S} [itemprop="description"] {
|
|
31
|
-
font-size: var(--t-xs); line-height: 1.6; margin: var(--g2) 0 0; color: var(--ink-2);
|
|
32
|
-
}
|
|
33
|
-
${S} ul {
|
|
34
|
-
list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 4px;
|
|
35
|
-
margin: var(--g2) 0 0;
|
|
36
|
-
}
|
|
37
|
-
${S} ul li {
|
|
38
|
-
background: var(--purple-soft); color: var(--purple-dark);
|
|
39
|
-
padding: 3px var(--g2); border-radius: 999px; font-size: 0.75rem; font-weight: 500;
|
|
40
|
-
}
|
|
41
|
-
${S} > a:last-child {
|
|
42
|
-
display: inline-flex; align-items: center; justify-content: center;
|
|
43
|
-
margin-top: auto; padding-top: var(--g3);
|
|
44
|
-
font-size: var(--t-xs); font-weight: 600; color: var(--purple);
|
|
45
|
-
transition: color var(--ease);
|
|
46
|
-
}
|
|
47
|
-
${S} > a:last-child:hover { color: var(--navy); }`;
|
|
13
|
+
color: var(--white); background: var(--purple); margin-bottom: var(--block-gap);
|
|
14
|
+
}
|
|
15
|
+
${R} header { margin-bottom: var(--g2); }
|
|
16
|
+
${R} h2 { font-family: var(--font-sans); font-size: var(--t-sm); font-weight: 600; line-height: 1.3; margin: 0 0 4px; }
|
|
17
|
+
${R} h2 a { color: var(--ink); }
|
|
18
|
+
${R} h2 a:hover { color: var(--purple); }
|
|
19
|
+
${R} header p { font-size: var(--t-xs); color: var(--ink-2); margin: 0; }
|
|
20
|
+
${R} header p:has([itemprop="address"]) { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; }
|
|
21
|
+
${R} header p:has([itemprop="address"])::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--purple); }
|
|
22
|
+
${R} [itemprop="description"] { font-size: var(--t-xs); line-height: 1.6; margin: var(--g2) 0 0; color: var(--ink-2); }
|
|
23
|
+
${R} ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; margin: var(--g2) 0 0; }
|
|
24
|
+
${R} ul li { background: var(--purple-soft); color: var(--purple-dark); padding: 3px var(--g2); border-radius: 999px; font-size: .75rem; font-weight: 500; }
|
|
25
|
+
${R} > a:last-child {
|
|
26
|
+
display: inline-flex; margin-top: auto; padding-top: var(--block-gap);
|
|
27
|
+
font-size: var(--t-xs); font-weight: 600; color: var(--purple); transition: color var(--ease);
|
|
28
|
+
}
|
|
29
|
+
${R} > a:last-child:hover { color: var(--navy); }`;
|
package/src/styles/stat-bar.ts
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BREAKOUT_LIGHT } from './_shared.ts';
|
|
2
|
+
|
|
3
|
+
const R = 'main > section:has(> dl)';
|
|
4
|
+
|
|
5
|
+
export const css = `${R} {
|
|
6
|
+
${BREAKOUT_LIGHT}
|
|
7
|
+
padding-block: var(--g5); border-bottom: 1px solid var(--line);
|
|
4
8
|
}
|
|
5
|
-
|
|
6
|
-
text-align: center; font-family: var(--font-display); font-style: italic;
|
|
7
|
-
font-size: var(--t-md); color: var(--ink); margin: 0 auto var(--g4); max-width: var(--measure);
|
|
8
|
-
}
|
|
9
|
-
section[aria-label="Statystyki"] > dl {
|
|
9
|
+
${R} > dl {
|
|
10
10
|
display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
|
|
11
|
-
gap: var(--
|
|
11
|
+
gap: var(--card-gap); max-width: 800px; margin: 0 auto;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
${R} > dl div { text-align: center; }
|
|
14
|
+
${R} > dl div > span:has(> svg) {
|
|
15
15
|
display: flex; align-items: center; justify-content: center;
|
|
16
16
|
width: 48px; height: 48px; margin: 0 auto var(--g2);
|
|
17
17
|
background: var(--purple-soft); border-radius: 50%; color: var(--purple);
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
section[aria-label="Statystyki"] > dl dd {
|
|
25
|
-
margin: var(--g1) 0 0; font-size: var(--t-xs); color: var(--ink-2); font-weight: 500;
|
|
26
|
-
}
|
|
27
|
-
@media (max-width: 640px) {
|
|
28
|
-
section[aria-label="Statystyki"] > dl { grid-template-columns: repeat(2, 1fr); }
|
|
29
|
-
}`;
|
|
19
|
+
${R} > dl div > span:has(> svg) > svg { width: 22px; height: 22px; }
|
|
20
|
+
${R} > dl dt { font-family: var(--font-display); font-size: var(--t-2xl); font-weight: 300; line-height: 1.1; color: var(--navy); }
|
|
21
|
+
${R} > dl dd { margin: var(--g1) 0 0; font-size: var(--t-xs); color: var(--ink-2); font-weight: 500; }
|
|
22
|
+
@media (max-width: 640px) { ${R} > dl { grid-template-columns: repeat(2, 1fr); } }`;
|