@refrakt-md/lumina 0.8.1 → 0.8.3
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/contracts/structures.json +485 -21
- package/package.json +6 -6
- package/styles/layouts/default.css +11 -5
- package/styles/layouts/search.css +3 -0
- package/styles/runes/audio.css +2 -7
- package/styles/runes/bond.css +0 -3
- package/styles/runes/budget.css +16 -24
- package/styles/runes/cast.css +37 -14
- package/styles/runes/character.css +19 -29
- package/styles/runes/datatable.css +2 -6
- package/styles/runes/event.css +13 -11
- package/styles/runes/faction.css +79 -36
- package/styles/runes/howto.css +70 -18
- package/styles/runes/lore.css +21 -15
- package/styles/runes/organization.css +3 -5
- package/styles/runes/playlist.css +58 -34
- package/styles/runes/plot.css +84 -24
- package/styles/runes/preview.css +21 -20
- package/styles/runes/pullquote.css +21 -7
- package/styles/runes/realm.css +72 -32
- package/styles/runes/recipe.css +163 -22
- package/styles/runes/steps.css +13 -17
- package/styles/runes/tabs.css +16 -15
- package/styles/runes/track.css +3 -4
|
@@ -113,14 +113,20 @@
|
|
|
113
113
|
);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
/* Section spacing — vertical rhythm
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
|
|
116
|
+
/* Section spacing — vertical rhythm around block runes.
|
|
117
|
+
* Rune blocks (elements with data-rune) get section-level margins.
|
|
118
|
+
* Prose elements (p, h2, pre, table, etc.) keep their natural flow
|
|
119
|
+
* spacing from global.css — only gaining section margins when
|
|
120
|
+
* immediately adjacent to a rune block. */
|
|
121
|
+
.rf-page-content > article > * + [data-rune] {
|
|
121
122
|
margin-top: var(--rf-spacing-section, 4rem);
|
|
122
123
|
margin-bottom: var(--rf-spacing-section, 4rem);
|
|
123
124
|
}
|
|
125
|
+
/* Prose after a rune block: section gap above only.
|
|
126
|
+
* No margin-bottom so subsequent prose keeps natural flow spacing. */
|
|
127
|
+
.rf-page-content > article > [data-rune] + :not([data-rune]) {
|
|
128
|
+
margin-top: var(--rf-spacing-section, 4rem);
|
|
129
|
+
}
|
|
124
130
|
.rf-page-content > article > [data-spacing="flush"] {
|
|
125
131
|
margin-top: 0;
|
|
126
132
|
margin-bottom: 0;
|
package/styles/runes/audio.css
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/* Audio */
|
|
2
2
|
.rf-audio {
|
|
3
3
|
margin: 1.5rem 0;
|
|
4
|
-
border: 1px solid var(--rf-color-border);
|
|
5
|
-
border-radius: var(--rf-radius-md);
|
|
6
|
-
overflow: hidden;
|
|
7
4
|
}
|
|
8
5
|
.rf-audio rf-audio {
|
|
9
6
|
display: block;
|
|
@@ -12,7 +9,6 @@
|
|
|
12
9
|
padding: 0.75rem 1rem;
|
|
13
10
|
font-size: 0.875rem;
|
|
14
11
|
color: var(--rf-color-muted);
|
|
15
|
-
border-top: 1px solid var(--rf-color-border);
|
|
16
12
|
line-height: 1.5;
|
|
17
13
|
}
|
|
18
14
|
.rf-audio__description p {
|
|
@@ -145,9 +141,8 @@
|
|
|
145
141
|
.rf-audio-player__chapters {
|
|
146
142
|
list-style: none;
|
|
147
143
|
padding: 0;
|
|
148
|
-
margin: 0.
|
|
149
|
-
|
|
150
|
-
padding-top: 0.5rem;
|
|
144
|
+
margin: 0.75rem 0 0;
|
|
145
|
+
padding-top: 0;
|
|
151
146
|
}
|
|
152
147
|
.rf-audio-player__chapter {
|
|
153
148
|
display: flex;
|
package/styles/runes/bond.css
CHANGED
package/styles/runes/budget.css
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/* Budget */
|
|
2
2
|
.rf-budget {
|
|
3
|
-
border: 1px solid var(--rf-color-border);
|
|
4
|
-
border-radius: var(--rf-radius-lg);
|
|
5
|
-
padding: 2rem;
|
|
6
3
|
margin: 1.5rem 0;
|
|
7
4
|
}
|
|
8
5
|
.rf-budget__header {
|
|
9
6
|
margin-bottom: 1.5rem;
|
|
10
|
-
padding-bottom: 1rem;
|
|
11
|
-
border-bottom: 1px solid var(--rf-color-border);
|
|
12
7
|
}
|
|
13
8
|
.rf-budget__title {
|
|
14
9
|
margin: 0 0 0.5rem;
|
|
@@ -16,44 +11,43 @@
|
|
|
16
11
|
font-weight: 700;
|
|
17
12
|
color: var(--rf-color-text);
|
|
18
13
|
}
|
|
14
|
+
|
|
15
|
+
/* Meta bar — single surface strip matching recipe pattern */
|
|
19
16
|
.rf-budget__meta {
|
|
20
17
|
display: flex;
|
|
21
18
|
flex-wrap: wrap;
|
|
22
|
-
gap:
|
|
19
|
+
gap: 0.75rem 1.25rem;
|
|
23
20
|
align-items: center;
|
|
21
|
+
background: var(--rf-color-surface);
|
|
22
|
+
border-radius: var(--rf-radius-md);
|
|
23
|
+
padding: 0.625rem 1rem;
|
|
24
24
|
}
|
|
25
25
|
.rf-budget__meta-item {
|
|
26
26
|
font-size: 0.8125rem;
|
|
27
|
-
font-weight:
|
|
27
|
+
font-weight: 400;
|
|
28
28
|
color: var(--rf-color-muted);
|
|
29
|
-
padding: 0.125rem 0.5rem;
|
|
30
|
-
background: var(--rf-color-surface);
|
|
31
|
-
border-radius: var(--rf-radius-full);
|
|
32
29
|
}
|
|
30
|
+
|
|
31
|
+
/* Categories */
|
|
33
32
|
.rf-budget__categories {
|
|
34
33
|
display: flex;
|
|
35
34
|
flex-direction: column;
|
|
36
|
-
gap: 1.
|
|
35
|
+
gap: 1.5rem;
|
|
37
36
|
}
|
|
38
37
|
|
|
39
|
-
/* Budget Category */
|
|
38
|
+
/* Budget Category — no border box, spacing and typography create hierarchy */
|
|
40
39
|
.rf-budget-category {
|
|
41
|
-
|
|
42
|
-
border-radius: var(--rf-radius-md);
|
|
43
|
-
padding: 1rem 1.25rem;
|
|
44
|
-
background: var(--rf-color-bg);
|
|
40
|
+
padding: 0;
|
|
45
41
|
}
|
|
46
42
|
.rf-budget-category--estimate {
|
|
47
|
-
border-
|
|
48
|
-
|
|
43
|
+
border-left: 2px dashed var(--rf-color-warning);
|
|
44
|
+
padding-left: 1rem;
|
|
49
45
|
}
|
|
50
46
|
.rf-budget-category__header {
|
|
51
47
|
display: flex;
|
|
52
48
|
justify-content: space-between;
|
|
53
49
|
align-items: center;
|
|
54
|
-
margin-bottom: 0.
|
|
55
|
-
padding-bottom: 0.5rem;
|
|
56
|
-
border-bottom: 1px solid var(--rf-color-border);
|
|
50
|
+
margin-bottom: 0.5rem;
|
|
57
51
|
}
|
|
58
52
|
.rf-budget-category--estimate .rf-budget-category__header::after {
|
|
59
53
|
content: 'est.';
|
|
@@ -109,7 +103,7 @@
|
|
|
109
103
|
font-variant-numeric: tabular-nums;
|
|
110
104
|
}
|
|
111
105
|
|
|
112
|
-
/* Budget Footer
|
|
106
|
+
/* Budget Footer — total line */
|
|
113
107
|
.rf-budget__footer {
|
|
114
108
|
margin-top: 1.5rem;
|
|
115
109
|
padding-top: 1rem;
|
|
@@ -159,6 +153,4 @@
|
|
|
159
153
|
}
|
|
160
154
|
[data-variant="summary"] .rf-budget-category__header {
|
|
161
155
|
margin-bottom: 0;
|
|
162
|
-
padding-bottom: 0;
|
|
163
|
-
border-bottom: none;
|
|
164
156
|
}
|
package/styles/runes/cast.css
CHANGED
|
@@ -2,50 +2,54 @@
|
|
|
2
2
|
.rf-cast {
|
|
3
3
|
margin: 1.5rem 0;
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
/* Members list — base */
|
|
5
7
|
.rf-cast__members {
|
|
6
|
-
|
|
8
|
+
list-style: none;
|
|
9
|
+
padding: 0;
|
|
10
|
+
margin: 0;
|
|
7
11
|
}
|
|
8
|
-
|
|
12
|
+
|
|
13
|
+
/* Grid layout (default) */
|
|
14
|
+
.rf-cast--grid .rf-cast__members {
|
|
9
15
|
display: grid;
|
|
10
16
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
11
17
|
gap: 1rem;
|
|
12
|
-
list-style: none;
|
|
13
|
-
padding: 0;
|
|
14
18
|
}
|
|
15
|
-
|
|
19
|
+
|
|
20
|
+
/* List layout */
|
|
21
|
+
.rf-cast--list .rf-cast__members {
|
|
16
22
|
display: flex;
|
|
17
23
|
flex-direction: column;
|
|
18
24
|
gap: 0.75rem;
|
|
19
|
-
list-style: none;
|
|
20
|
-
padding: 0;
|
|
21
25
|
}
|
|
26
|
+
|
|
27
|
+
/* Member card — surface instead of border */
|
|
22
28
|
.rf-cast-member {
|
|
23
|
-
|
|
29
|
+
background: var(--rf-color-surface);
|
|
24
30
|
border-radius: var(--rf-radius-md);
|
|
25
31
|
padding: 1.25rem;
|
|
26
32
|
text-align: center;
|
|
27
33
|
}
|
|
28
|
-
.rf-cast-member__info {
|
|
29
|
-
display: flex;
|
|
30
|
-
flex-direction: column;
|
|
31
|
-
gap: 0.25rem;
|
|
32
|
-
}
|
|
33
34
|
.rf-cast-member__name {
|
|
35
|
+
display: block;
|
|
34
36
|
font-weight: 600;
|
|
35
37
|
font-size: 1rem;
|
|
36
38
|
color: var(--rf-color-text);
|
|
37
39
|
}
|
|
38
40
|
.rf-cast-member__role {
|
|
41
|
+
display: block;
|
|
39
42
|
font-size: 0.875rem;
|
|
40
43
|
color: var(--rf-color-muted);
|
|
44
|
+
margin-top: 0.125rem;
|
|
41
45
|
}
|
|
42
46
|
.rf-cast-member__body {
|
|
43
47
|
margin-top: 0.75rem;
|
|
44
48
|
font-size: 0.875rem;
|
|
45
49
|
color: var(--rf-color-muted);
|
|
50
|
+
line-height: 1.5;
|
|
46
51
|
}
|
|
47
52
|
.rf-cast-member__body:empty { display: none; }
|
|
48
|
-
.rf-cast-member__body > span[property] { display: none; }
|
|
49
53
|
.rf-cast-member img {
|
|
50
54
|
width: 80px;
|
|
51
55
|
height: 80px;
|
|
@@ -54,3 +58,22 @@
|
|
|
54
58
|
margin: 0 auto 0.75rem;
|
|
55
59
|
display: block;
|
|
56
60
|
}
|
|
61
|
+
|
|
62
|
+
/* List layout — horizontal member cards */
|
|
63
|
+
.rf-cast--list .rf-cast-member {
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: 1rem;
|
|
67
|
+
text-align: left;
|
|
68
|
+
padding: 0.75rem 1rem;
|
|
69
|
+
}
|
|
70
|
+
.rf-cast--list .rf-cast-member img {
|
|
71
|
+
width: 48px;
|
|
72
|
+
height: 48px;
|
|
73
|
+
margin: 0;
|
|
74
|
+
flex-shrink: 0;
|
|
75
|
+
}
|
|
76
|
+
.rf-cast--list .rf-cast-member__body {
|
|
77
|
+
margin-top: 0;
|
|
78
|
+
flex: 1;
|
|
79
|
+
}
|
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
/* Character */
|
|
2
2
|
.rf-character {
|
|
3
|
-
border: 1px solid var(--rf-color-border);
|
|
4
|
-
border-radius: var(--rf-radius-lg);
|
|
5
|
-
padding: 2rem;
|
|
6
3
|
margin: 1.5rem 0;
|
|
7
4
|
}
|
|
5
|
+
|
|
6
|
+
/* Badge bar — surface strip */
|
|
8
7
|
.rf-character__badge {
|
|
9
8
|
display: flex;
|
|
10
9
|
flex-wrap: wrap;
|
|
11
|
-
gap: 0.
|
|
10
|
+
gap: 0.75rem 1.25rem;
|
|
11
|
+
align-items: center;
|
|
12
|
+
background: var(--rf-color-surface);
|
|
13
|
+
border-radius: var(--rf-radius-md);
|
|
14
|
+
padding: 0.625rem 1rem;
|
|
12
15
|
margin-bottom: 1rem;
|
|
13
16
|
}
|
|
14
|
-
.rf-character__role-badge
|
|
15
|
-
display: inline-block;
|
|
16
|
-
padding: 0.25rem 0.75rem;
|
|
17
|
-
border-radius: var(--rf-radius-full);
|
|
18
|
-
font-size: 0.75rem;
|
|
19
|
-
font-weight: 600;
|
|
20
|
-
text-transform: uppercase;
|
|
21
|
-
letter-spacing: 0.05em;
|
|
22
|
-
background: var(--rf-color-muted-bg);
|
|
23
|
-
color: var(--rf-color-muted);
|
|
24
|
-
}
|
|
17
|
+
.rf-character__role-badge,
|
|
25
18
|
.rf-character__status-badge {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
font-size: 0.75rem;
|
|
30
|
-
font-weight: 600;
|
|
31
|
-
text-transform: uppercase;
|
|
32
|
-
letter-spacing: 0.05em;
|
|
33
|
-
background: var(--rf-color-muted-bg);
|
|
19
|
+
font-size: 0.8125rem;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
text-transform: capitalize;
|
|
34
22
|
color: var(--rf-color-muted);
|
|
35
23
|
}
|
|
24
|
+
.rf-character__role-badge::before { content: 'Role: '; font-weight: 400; opacity: 0.65; }
|
|
25
|
+
.rf-character__status-badge::before { content: 'Status: '; font-weight: 400; opacity: 0.65; }
|
|
26
|
+
|
|
27
|
+
/* Portrait */
|
|
36
28
|
.rf-character__portrait {
|
|
37
29
|
float: right;
|
|
38
30
|
margin-left: 1.5rem;
|
|
@@ -47,6 +39,8 @@
|
|
|
47
39
|
height: 100%;
|
|
48
40
|
object-fit: cover;
|
|
49
41
|
}
|
|
42
|
+
|
|
43
|
+
/* Content */
|
|
50
44
|
.rf-character__sections {
|
|
51
45
|
display: flex;
|
|
52
46
|
flex-direction: column;
|
|
@@ -67,23 +61,19 @@
|
|
|
67
61
|
color: var(--rf-color-heading);
|
|
68
62
|
}
|
|
69
63
|
|
|
70
|
-
/* Role variant colors */
|
|
64
|
+
/* Role variant colors — text color only */
|
|
71
65
|
.rf-character[data-role="protagonist"] .rf-character__role-badge {
|
|
72
|
-
background: var(--rf-color-success-bg);
|
|
73
66
|
color: var(--rf-color-success);
|
|
74
67
|
}
|
|
75
68
|
.rf-character[data-role="antagonist"] .rf-character__role-badge {
|
|
76
|
-
background: var(--rf-color-danger-bg);
|
|
77
69
|
color: var(--rf-color-danger);
|
|
78
70
|
}
|
|
79
71
|
|
|
80
|
-
/* Status indicators */
|
|
72
|
+
/* Status indicators — text color only */
|
|
81
73
|
.rf-character[data-status="dead"] .rf-character__status-badge {
|
|
82
|
-
background: var(--rf-color-danger-bg);
|
|
83
74
|
color: var(--rf-color-danger);
|
|
84
75
|
}
|
|
85
76
|
.rf-character[data-status="missing"] .rf-character__status-badge {
|
|
86
|
-
background: var(--rf-color-warning-bg);
|
|
87
77
|
color: var(--rf-color-warning);
|
|
88
78
|
}
|
|
89
79
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/* DataTable */
|
|
2
2
|
.rf-datatable {
|
|
3
3
|
margin: 1.5rem 0;
|
|
4
|
-
border: 1px solid var(--rf-color-border);
|
|
5
|
-
border-radius: var(--rf-radius-lg);
|
|
6
|
-
overflow: hidden;
|
|
7
4
|
}
|
|
8
5
|
.rf-datatable__toolbar {
|
|
9
6
|
display: flex;
|
|
@@ -58,8 +55,7 @@
|
|
|
58
55
|
text-transform: uppercase;
|
|
59
56
|
letter-spacing: 0.05em;
|
|
60
57
|
color: var(--rf-color-muted);
|
|
61
|
-
background: var(--rf-color-surface
|
|
62
|
-
border-bottom: 1px solid var(--rf-color-border);
|
|
58
|
+
background: var(--rf-color-surface);
|
|
63
59
|
}
|
|
64
60
|
.rf-datatable__content th[style*="cursor"]:hover {
|
|
65
61
|
color: var(--rf-color-text);
|
|
@@ -85,7 +81,7 @@
|
|
|
85
81
|
justify-content: flex-end;
|
|
86
82
|
gap: 0.75rem;
|
|
87
83
|
padding: 0.5rem 0.75rem;
|
|
88
|
-
|
|
84
|
+
background: var(--rf-color-surface);
|
|
89
85
|
}
|
|
90
86
|
.rf-datatable__page-btn {
|
|
91
87
|
padding: 0.25rem 0.5rem;
|
package/styles/runes/event.css
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
/* Event */
|
|
2
2
|
.rf-event {
|
|
3
|
-
border: 1px solid var(--rf-color-border);
|
|
4
|
-
border-radius: var(--rf-radius-lg);
|
|
5
|
-
padding: 2rem;
|
|
6
3
|
margin: 1.5rem 0;
|
|
7
4
|
}
|
|
8
5
|
.rf-event__details {
|
|
9
6
|
display: flex;
|
|
10
7
|
flex-wrap: wrap;
|
|
8
|
+
align-items: center;
|
|
11
9
|
gap: 1.5rem;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
background: var(--rf-color-surface);
|
|
11
|
+
border-radius: var(--rf-radius-md);
|
|
12
|
+
padding: 0.75rem 1rem;
|
|
15
13
|
}
|
|
16
14
|
.rf-event__detail {
|
|
17
|
-
display:
|
|
18
|
-
flex-direction: column;
|
|
19
|
-
gap: 0.25rem;
|
|
15
|
+
display: block;
|
|
20
16
|
}
|
|
21
17
|
.rf-event__label {
|
|
18
|
+
display: block;
|
|
19
|
+
margin-bottom: 0.125rem;
|
|
22
20
|
font-size: 0.75rem;
|
|
23
|
-
font-weight:
|
|
21
|
+
font-weight: 400;
|
|
24
22
|
text-transform: uppercase;
|
|
25
23
|
letter-spacing: 0.05em;
|
|
26
24
|
color: var(--rf-color-muted);
|
|
25
|
+
opacity: 0.6;
|
|
27
26
|
}
|
|
28
27
|
.rf-event__value {
|
|
29
28
|
font-size: 0.9375rem;
|
|
@@ -39,11 +38,14 @@
|
|
|
39
38
|
font-weight: 500;
|
|
40
39
|
font-size: 0.875rem;
|
|
41
40
|
text-decoration: none;
|
|
42
|
-
margin-
|
|
41
|
+
margin-left: auto;
|
|
43
42
|
}
|
|
44
43
|
.rf-event__register:hover {
|
|
45
44
|
background: var(--rf-color-primary-hover);
|
|
46
45
|
}
|
|
46
|
+
.rf-event__content {
|
|
47
|
+
margin-top: 1.5rem;
|
|
48
|
+
}
|
|
47
49
|
.rf-event__content ul,
|
|
48
50
|
.rf-event__content ol {
|
|
49
51
|
padding-left: 1.5rem;
|
package/styles/runes/faction.css
CHANGED
|
@@ -1,57 +1,51 @@
|
|
|
1
1
|
/* Faction */
|
|
2
2
|
.rf-faction {
|
|
3
|
-
border: 1px solid var(--rf-color-border);
|
|
4
|
-
border-radius: var(--rf-radius-lg);
|
|
5
|
-
padding: 2rem;
|
|
6
3
|
margin: 1.5rem 0;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
7
6
|
}
|
|
7
|
+
|
|
8
|
+
/* Badge bar — surface strip */
|
|
8
9
|
.rf-faction__badge {
|
|
9
10
|
display: flex;
|
|
10
11
|
flex-wrap: wrap;
|
|
11
|
-
gap: 0.
|
|
12
|
+
gap: 0.75rem 1.25rem;
|
|
13
|
+
align-items: center;
|
|
14
|
+
background: var(--rf-color-surface);
|
|
15
|
+
border-radius: var(--rf-radius-md);
|
|
16
|
+
padding: 0.625rem 1rem;
|
|
12
17
|
margin-bottom: 1rem;
|
|
13
18
|
}
|
|
14
|
-
.rf-faction__type-badge
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
font-
|
|
19
|
-
|
|
20
|
-
text-transform: uppercase;
|
|
21
|
-
letter-spacing: 0.05em;
|
|
22
|
-
background: var(--rf-color-muted-bg);
|
|
19
|
+
.rf-faction__type-badge,
|
|
20
|
+
.rf-faction__alignment-badge,
|
|
21
|
+
.rf-faction__size-badge {
|
|
22
|
+
font-size: 0.8125rem;
|
|
23
|
+
font-weight: 500;
|
|
24
|
+
text-transform: capitalize;
|
|
23
25
|
color: var(--rf-color-muted);
|
|
24
26
|
}
|
|
25
|
-
.rf-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
background: var(--rf-color-muted-bg);
|
|
34
|
-
color: var(--rf-color-muted);
|
|
27
|
+
.rf-faction__type-badge::before { content: 'Type: '; font-weight: 400; opacity: 0.65; }
|
|
28
|
+
.rf-faction__alignment-badge::before { content: 'Alignment: '; font-weight: 400; opacity: 0.65; }
|
|
29
|
+
.rf-faction__size-badge::before { content: 'Size: '; font-weight: 400; opacity: 0.65; }
|
|
30
|
+
|
|
31
|
+
/* Scene image */
|
|
32
|
+
.rf-faction__scene {
|
|
33
|
+
border-radius: var(--rf-radius-lg);
|
|
34
|
+
overflow: hidden;
|
|
35
35
|
}
|
|
36
|
-
.rf-
|
|
37
|
-
display:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
font-weight: 600;
|
|
42
|
-
text-transform: uppercase;
|
|
43
|
-
letter-spacing: 0.05em;
|
|
44
|
-
background: var(--rf-color-muted-bg);
|
|
45
|
-
color: var(--rf-color-muted);
|
|
36
|
+
.rf-faction__scene img {
|
|
37
|
+
display: block;
|
|
38
|
+
width: 100%;
|
|
39
|
+
height: auto;
|
|
40
|
+
border-radius: var(--rf-radius-lg);
|
|
46
41
|
}
|
|
42
|
+
|
|
43
|
+
/* Content */
|
|
47
44
|
.rf-faction__sections {
|
|
48
45
|
display: flex;
|
|
49
46
|
flex-direction: column;
|
|
50
47
|
gap: 1rem;
|
|
51
48
|
}
|
|
52
|
-
.rf-faction__content {
|
|
53
|
-
/* content wrapper */
|
|
54
|
-
}
|
|
55
49
|
.rf-faction__content ul,
|
|
56
50
|
.rf-faction__content ol {
|
|
57
51
|
padding-left: 1.5rem;
|
|
@@ -62,6 +56,7 @@
|
|
|
62
56
|
font-weight: 700;
|
|
63
57
|
margin-bottom: 0.5rem;
|
|
64
58
|
color: var(--rf-color-heading);
|
|
59
|
+
order: -1;
|
|
65
60
|
}
|
|
66
61
|
|
|
67
62
|
/* Faction Section */
|
|
@@ -79,3 +74,51 @@
|
|
|
79
74
|
.rf-faction-section__body ol {
|
|
80
75
|
padding-left: 1.5rem;
|
|
81
76
|
}
|
|
77
|
+
|
|
78
|
+
/* Split layout — shared */
|
|
79
|
+
.rf-faction[data-layout="split"],
|
|
80
|
+
.rf-faction[data-layout="split-reverse"] {
|
|
81
|
+
display: grid;
|
|
82
|
+
grid-template-columns: var(--split-ratio, 1fr 1fr);
|
|
83
|
+
gap: var(--split-gap, 2rem);
|
|
84
|
+
align-items: var(--split-valign, start);
|
|
85
|
+
}
|
|
86
|
+
/* Name and badge span full width at the top */
|
|
87
|
+
.rf-faction[data-layout="split"] > span[property="name"],
|
|
88
|
+
.rf-faction[data-layout="split-reverse"] > span[property="name"] {
|
|
89
|
+
grid-column: 1 / -1;
|
|
90
|
+
grid-row: 1;
|
|
91
|
+
}
|
|
92
|
+
.rf-faction[data-layout="split"] > .rf-faction__badge,
|
|
93
|
+
.rf-faction[data-layout="split-reverse"] > .rf-faction__badge {
|
|
94
|
+
grid-column: 1 / -1;
|
|
95
|
+
grid-row: 2;
|
|
96
|
+
}
|
|
97
|
+
/* Split: content left (col 1), scene right (col 2) */
|
|
98
|
+
.rf-faction[data-layout="split"] > .rf-faction__content {
|
|
99
|
+
grid-column: 1;
|
|
100
|
+
grid-row: 3;
|
|
101
|
+
}
|
|
102
|
+
.rf-faction[data-layout="split"] > .rf-faction__scene {
|
|
103
|
+
grid-column: 2;
|
|
104
|
+
grid-row: 3;
|
|
105
|
+
}
|
|
106
|
+
/* Split-reverse: scene left (col 1), content right (col 2) — matches DOM order */
|
|
107
|
+
/* Collapse to single column on small screens */
|
|
108
|
+
@media (max-width: 640px) {
|
|
109
|
+
.rf-faction[data-layout="split"],
|
|
110
|
+
.rf-faction[data-layout="split-reverse"] {
|
|
111
|
+
grid-template-columns: 1fr;
|
|
112
|
+
}
|
|
113
|
+
.rf-faction[data-layout="split"] > .rf-faction__content,
|
|
114
|
+
.rf-faction[data-layout="split"] > .rf-faction__scene {
|
|
115
|
+
grid-column: auto;
|
|
116
|
+
grid-row: auto;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Split layout scene gets subtle depth */
|
|
121
|
+
.rf-faction[data-layout="split"] .rf-faction__scene img,
|
|
122
|
+
.rf-faction[data-layout="split-reverse"] .rf-faction__scene img {
|
|
123
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
|
|
124
|
+
}
|
package/styles/runes/howto.css
CHANGED
|
@@ -1,37 +1,89 @@
|
|
|
1
|
-
/* HowTo */
|
|
1
|
+
/* HowTo — matches recipe design */
|
|
2
|
+
|
|
3
|
+
/* Root: no border box, just flow spacing */
|
|
2
4
|
.rf-howto {
|
|
3
|
-
border: 1px solid var(--rf-color-border);
|
|
4
|
-
border-radius: var(--rf-radius-lg);
|
|
5
|
-
padding: 2rem;
|
|
6
5
|
margin: 1.5rem 0;
|
|
7
6
|
}
|
|
7
|
+
|
|
8
|
+
/* Meta bar — soft surface strip */
|
|
8
9
|
.rf-howto__meta {
|
|
9
10
|
display: flex;
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
gap: 0.75rem 1.25rem;
|
|
13
|
+
align-items: center;
|
|
14
|
+
background: var(--rf-color-surface);
|
|
15
|
+
border-radius: var(--rf-radius-md);
|
|
16
|
+
padding: 0.625rem 1rem;
|
|
12
17
|
margin-bottom: 1.5rem;
|
|
13
|
-
border-bottom: 1px solid var(--rf-color-border);
|
|
14
18
|
}
|
|
15
19
|
.rf-howto__meta-item {
|
|
16
|
-
font-size: 0.
|
|
20
|
+
font-size: 0.8125rem;
|
|
17
21
|
color: var(--rf-color-muted);
|
|
18
|
-
font-weight:
|
|
22
|
+
font-weight: 400;
|
|
19
23
|
}
|
|
24
|
+
|
|
25
|
+
/* Tools/materials list — surfaced zone with primary markers */
|
|
20
26
|
.rf-howto__content ul {
|
|
21
|
-
background: var(--rf-color-surface
|
|
27
|
+
background: var(--rf-color-surface);
|
|
22
28
|
border-radius: var(--rf-radius-md);
|
|
23
|
-
padding:
|
|
24
|
-
margin
|
|
29
|
+
padding: 1.25rem 1.25rem 1.25rem 2.5rem;
|
|
30
|
+
margin: 0 0 1.75rem;
|
|
25
31
|
list-style: disc;
|
|
26
32
|
}
|
|
33
|
+
.rf-howto__content ul li {
|
|
34
|
+
padding: 0.2rem 0;
|
|
35
|
+
line-height: 1.6;
|
|
36
|
+
}
|
|
37
|
+
.rf-howto__content ul li::marker {
|
|
38
|
+
color: var(--rf-color-primary);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Steps — numbered with styled counters */
|
|
27
42
|
.rf-howto__content ol {
|
|
28
|
-
padding-left:
|
|
29
|
-
|
|
43
|
+
padding-left: 0;
|
|
44
|
+
margin: 0;
|
|
45
|
+
list-style: none;
|
|
46
|
+
counter-reset: howto-step;
|
|
30
47
|
}
|
|
31
48
|
.rf-howto__content ol > li {
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
counter-increment: howto-step;
|
|
50
|
+
padding: 0.625rem 0;
|
|
51
|
+
padding-left: 2.25rem;
|
|
52
|
+
position: relative;
|
|
53
|
+
line-height: 1.65;
|
|
54
|
+
}
|
|
55
|
+
.rf-howto__content ol > li + li {
|
|
56
|
+
border-top: 1px solid var(--rf-color-border);
|
|
57
|
+
}
|
|
58
|
+
.rf-howto__content ol > li::before {
|
|
59
|
+
content: counter(howto-step);
|
|
60
|
+
position: absolute;
|
|
61
|
+
left: 0;
|
|
62
|
+
top: 0.625rem;
|
|
63
|
+
width: 1.5rem;
|
|
64
|
+
height: 1.5rem;
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
font-size: 0.75rem;
|
|
69
|
+
font-weight: 700;
|
|
70
|
+
color: var(--rf-color-primary);
|
|
71
|
+
background: var(--rf-color-surface);
|
|
72
|
+
border-radius: var(--rf-radius-full);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Tips — callout accent like hint */
|
|
76
|
+
.rf-howto__content blockquote {
|
|
77
|
+
border-left: 2px solid var(--rf-color-primary);
|
|
78
|
+
background: var(--rf-color-surface);
|
|
79
|
+
border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
|
|
80
|
+
padding: 0.75rem 1.25rem;
|
|
81
|
+
margin: 1.75rem 0 0;
|
|
82
|
+
font-size: 0.9125rem;
|
|
83
|
+
font-style: italic;
|
|
84
|
+
color: var(--rf-color-muted);
|
|
85
|
+
line-height: 1.6;
|
|
34
86
|
}
|
|
35
|
-
.rf-howto__content
|
|
36
|
-
|
|
87
|
+
.rf-howto__content blockquote p {
|
|
88
|
+
margin: 0;
|
|
37
89
|
}
|