@refrakt-md/lumina 0.33.0 → 0.34.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.
Files changed (141) hide show
  1. package/base.css +29 -29
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/icons.d.ts.map +1 -1
  5. package/dist/icons.js +57 -57
  6. package/dist/icons.js.map +1 -1
  7. package/dist/presets/catppuccin.js.map +1 -1
  8. package/dist/presets/dracula.js.map +1 -1
  9. package/dist/presets/gruvbox.js.map +1 -1
  10. package/dist/presets/niwaki.js.map +1 -1
  11. package/dist/presets/nord.js.map +1 -1
  12. package/dist/presets/one-dark.js.map +1 -1
  13. package/dist/presets/solarized.js.map +1 -1
  14. package/dist/presets/tideline.d.ts.map +1 -1
  15. package/dist/presets/tideline.js +20 -4
  16. package/dist/presets/tideline.js.map +1 -1
  17. package/dist/presets/tokyo-night.js.map +1 -1
  18. package/dist/tokens.js.map +1 -1
  19. package/index.css +124 -124
  20. package/package.json +5 -5
  21. package/presets.json +61 -13
  22. package/styles/base/attributes.css +32 -13
  23. package/styles/dimensions/checklist.css +45 -46
  24. package/styles/dimensions/cover.css +71 -51
  25. package/styles/dimensions/density.css +69 -65
  26. package/styles/dimensions/frame.css +116 -57
  27. package/styles/dimensions/metadata.css +110 -103
  28. package/styles/dimensions/motion.css +42 -13
  29. package/styles/dimensions/reading.css +27 -27
  30. package/styles/dimensions/sections.css +44 -45
  31. package/styles/dimensions/sequence.css +56 -57
  32. package/styles/dimensions/state.css +8 -2
  33. package/styles/dimensions/substrate.css +82 -58
  34. package/styles/dimensions/surfaces.css +65 -62
  35. package/styles/elements/blockquote.css +24 -25
  36. package/styles/elements/code.css +72 -71
  37. package/styles/elements/table.css +36 -37
  38. package/styles/global.css +163 -121
  39. package/styles/layouts/blog.css +219 -218
  40. package/styles/layouts/default.css +168 -167
  41. package/styles/layouts/docs.css +121 -122
  42. package/styles/layouts/mobile.css +54 -55
  43. package/styles/layouts/on-this-page.css +46 -47
  44. package/styles/layouts/plan.css +248 -247
  45. package/styles/layouts/search.css +142 -140
  46. package/styles/layouts/split.css +45 -45
  47. package/styles/layouts/theme-toggle.css +33 -31
  48. package/styles/layouts/version-switcher.css +38 -37
  49. package/styles/runes/accordion.css +90 -81
  50. package/styles/runes/aggregate.css +50 -39
  51. package/styles/runes/annotate.css +46 -45
  52. package/styles/runes/api.css +22 -23
  53. package/styles/runes/audio.css +140 -141
  54. package/styles/runes/badge.css +12 -13
  55. package/styles/runes/bar.css +4 -5
  56. package/styles/runes/bento.css +73 -62
  57. package/styles/runes/bg.css +62 -47
  58. package/styles/runes/blog.css +89 -90
  59. package/styles/runes/bond.css +49 -50
  60. package/styles/runes/breadcrumb.css +34 -35
  61. package/styles/runes/budget.css +126 -127
  62. package/styles/runes/bug.css +28 -27
  63. package/styles/runes/card.css +63 -60
  64. package/styles/runes/carousel.css +15 -15
  65. package/styles/runes/cast.css +50 -51
  66. package/styles/runes/changelog.css +45 -46
  67. package/styles/runes/character.css +31 -32
  68. package/styles/runes/chart.css +194 -106
  69. package/styles/runes/codegroup.css +109 -100
  70. package/styles/runes/collection.css +87 -86
  71. package/styles/runes/compare.css +38 -39
  72. package/styles/runes/comparison.css +205 -179
  73. package/styles/runes/conversation.css +36 -33
  74. package/styles/runes/cta.css +135 -132
  75. package/styles/runes/datatable.css +84 -83
  76. package/styles/runes/decision.css +25 -26
  77. package/styles/runes/design-context.css +21 -23
  78. package/styles/runes/details.css +26 -27
  79. package/styles/runes/diagram.css +28 -29
  80. package/styles/runes/diff.css +75 -72
  81. package/styles/runes/drawer.css +276 -198
  82. package/styles/runes/embed.css +20 -21
  83. package/styles/runes/event.css +35 -36
  84. package/styles/runes/expand.css +43 -34
  85. package/styles/runes/faction.css +47 -48
  86. package/styles/runes/feature.css +119 -112
  87. package/styles/runes/figure.css +11 -12
  88. package/styles/runes/file-ref.css +11 -13
  89. package/styles/runes/form.css +155 -154
  90. package/styles/runes/gallery.css +59 -60
  91. package/styles/runes/grid.css +10 -7
  92. package/styles/runes/hero.css +189 -185
  93. package/styles/runes/hint.css +57 -58
  94. package/styles/runes/howto.css +62 -64
  95. package/styles/runes/itinerary.css +133 -134
  96. package/styles/runes/juxtapose.css +83 -82
  97. package/styles/runes/lore.css +32 -34
  98. package/styles/runes/map.css +106 -99
  99. package/styles/runes/mediatext.css +30 -27
  100. package/styles/runes/milestone.css +98 -97
  101. package/styles/runes/mockup.css +338 -335
  102. package/styles/runes/nav.css +465 -450
  103. package/styles/runes/organization.css +23 -20
  104. package/styles/runes/page-section.css +14 -15
  105. package/styles/runes/pagination.css +45 -44
  106. package/styles/runes/palette.css +78 -80
  107. package/styles/runes/placeholder.css +8 -9
  108. package/styles/runes/plan-history.css +160 -161
  109. package/styles/runes/plan-progress.css +15 -16
  110. package/styles/runes/plan-ref.css +32 -23
  111. package/styles/runes/playlist.css +106 -107
  112. package/styles/runes/plot.css +92 -91
  113. package/styles/runes/preview.css +152 -149
  114. package/styles/runes/pricing.css +133 -123
  115. package/styles/runes/progress.css +32 -27
  116. package/styles/runes/pullquote.css +89 -90
  117. package/styles/runes/realm.css +47 -48
  118. package/styles/runes/recipe.css +112 -114
  119. package/styles/runes/relationships.css +77 -76
  120. package/styles/runes/reveal.css +90 -79
  121. package/styles/runes/sandbox.css +59 -60
  122. package/styles/runes/section.css +57 -50
  123. package/styles/runes/showcase.css +35 -16
  124. package/styles/runes/sidenote.css +30 -27
  125. package/styles/runes/snippet.css +8 -9
  126. package/styles/runes/spacing.css +86 -88
  127. package/styles/runes/spec.css +24 -25
  128. package/styles/runes/steps.css +89 -80
  129. package/styles/runes/storyboard.css +46 -45
  130. package/styles/runes/swatch.css +22 -23
  131. package/styles/runes/symbol.css +117 -118
  132. package/styles/runes/tabs.css +88 -79
  133. package/styles/runes/testimonial.css +43 -44
  134. package/styles/runes/textblock.css +32 -28
  135. package/styles/runes/timeline.css +63 -64
  136. package/styles/runes/tint.css +214 -215
  137. package/styles/runes/toc.css +40 -41
  138. package/styles/runes/track.css +89 -90
  139. package/styles/runes/typography.css +89 -91
  140. package/styles/runes/work.css +47 -36
  141. package/styles/runes/xref.css +21 -22
@@ -1,138 +1,136 @@
1
1
  @layer skin {
2
- /* Recipe — editorial cookbook aesthetic */
2
+ /* Recipe — editorial cookbook aesthetic */
3
3
 
4
- /* Thin-edge inset model (matches `.rf-card`): card outer padding is a thin edge,
4
+ /* Thin-edge inset model (matches `.rf-card`): card outer padding is a thin edge,
5
5
  * the content column adds the remaining inset back so text sits at the full
6
6
  * `--rune-padding` without negative-margin bleed. Unlike `card`, the split
7
7
  * layout keeps `align-items: start` (no `--split-valign: stretch`) — recipe
8
8
  * content can be very tall (ingredients + many steps + tips), so stretching the
9
9
  * media to match would crop the image hard. The image keeps its natural ratio
10
10
  * and any leftover height in the media column sits as quiet card padding. */
11
- .rf-recipe {
12
- --rf-recipe-edge: 0.5rem;
13
- --rf-recipe-media-gap: var(--rf-spacing-lg);
14
- --rf-recipe-split-gap: var(--rf-spacing-sm);
15
- padding: var(--rf-recipe-edge);
16
- }
11
+ .rf-recipe {
12
+ --rf-recipe-edge: 0.5rem;
13
+ --rf-recipe-media-gap: var(--rf-spacing-lg);
14
+ --rf-recipe-split-gap: var(--rf-spacing-sm);
15
+ padding: var(--rf-recipe-edge);
16
+ }
17
17
 
18
- .rf-recipe__content {
19
- padding: max(0px, calc(var(--rune-padding, var(--rf-spacing-md)) - var(--rf-recipe-edge)));
20
- }
18
+ .rf-recipe__content {
19
+ padding: max(0px, calc(var(--rune-padding, var(--rf-spacing-md)) - var(--rf-recipe-edge)));
20
+ }
21
21
 
22
- /* Direct grid properties (column-gap / row-gap) rather than overriding shared
22
+ /* Direct grid properties (column-gap / row-gap) rather than overriding shared
23
23
  * media-position layout vars — the per-rune rules win via selector specificity
24
24
  * and stay in our control regardless of inline styles. */
25
- .rf-recipe[data-media-position="start"],
26
- .rf-recipe[data-media-position="end"] {
27
- column-gap: var(--rf-recipe-split-gap);
28
- row-gap: var(--rf-recipe-media-gap);
29
- }
25
+ .rf-recipe[data-media-position="start"],
26
+ .rf-recipe[data-media-position="end"] {
27
+ column-gap: var(--rf-recipe-split-gap);
28
+ row-gap: var(--rf-recipe-media-gap);
29
+ }
30
30
 
31
- .rf-recipe[data-media-position="top"] > [data-section="media"] {
32
- margin-bottom: var(--rf-recipe-media-gap);
33
- }
34
- .rf-recipe[data-media-position="bottom"] > [data-section="media"] {
35
- margin-top: var(--rf-recipe-media-gap);
36
- }
31
+ .rf-recipe[data-media-position="top"] > [data-section="media"] {
32
+ margin-bottom: var(--rf-recipe-media-gap);
33
+ }
34
+ .rf-recipe[data-media-position="bottom"] > [data-section="media"] {
35
+ margin-top: var(--rf-recipe-media-gap);
36
+ }
37
37
 
38
- .rf-recipe .rf-recipe__eyebrow {
39
- font-size: var(--rf-text-xs);
40
- font-weight: var(--rf-weight-semibold);
41
- letter-spacing: var(--rf-tracking-wider);
42
- text-transform: uppercase;
43
- color: var(--rf-color-primary);
44
- margin: 0 0 0.375rem;
45
- }
46
- .rf-recipe__headline {
47
- margin-top: 0;
48
- margin-bottom: 0.25rem;
49
- }
50
- .rf-recipe .rf-recipe__blurb {
51
- color: var(--rf-color-muted);
52
- margin-bottom: 0;
53
- max-width: 40rem;
54
- }
55
- .rf-recipe__image {
56
- margin-bottom: 1rem;
57
- }
38
+ .rf-recipe .rf-recipe__eyebrow {
39
+ font-size: var(--rf-text-xs);
40
+ font-weight: var(--rf-weight-semibold);
41
+ letter-spacing: var(--rf-tracking-wider);
42
+ text-transform: uppercase;
43
+ color: var(--rf-color-primary);
44
+ margin: 0 0 0.375rem;
45
+ }
46
+ .rf-recipe__headline {
47
+ margin-top: 0;
48
+ margin-bottom: 0.25rem;
49
+ }
50
+ .rf-recipe .rf-recipe__blurb {
51
+ color: var(--rf-color-muted);
52
+ margin-bottom: 0;
53
+ max-width: 40rem;
54
+ }
55
+ .rf-recipe__image {
56
+ margin-bottom: 1rem;
57
+ }
58
58
 
59
- /* Content wrapper */
60
- .rf-recipe__content {
61
- gap: 1.75rem;
62
- }
59
+ /* Content wrapper */
60
+ .rf-recipe__content {
61
+ gap: 1.75rem;
62
+ }
63
63
 
64
- /* Ingredients — surfaced zone with custom markers */
65
- .rf-recipe__content ul {
66
- background: var(--rf-color-surface);
67
- border: 1px solid var(--rf-color-border);
68
- border-radius: var(--rf-radius-md);
69
- padding: 1.25rem 1.25rem 1.25rem 2.5rem;
70
- list-style: disc;
71
- margin: 0;
72
- }
73
- .rf-recipe__content ul li {
74
- padding: 0.2rem 0;
75
- line-height: var(--rf-leading-relaxed);
76
- }
77
- .rf-recipe__content ul li::marker {
78
- color: var(--rf-color-primary);
79
- }
64
+ /* Ingredients — surfaced zone with custom markers */
65
+ .rf-recipe__content ul {
66
+ background: var(--rf-color-surface);
67
+ border: 1px solid var(--rf-color-border);
68
+ border-radius: var(--rf-radius-md);
69
+ padding: 1.25rem 1.25rem 1.25rem 2.5rem;
70
+ list-style: disc;
71
+ margin: 0;
72
+ }
73
+ .rf-recipe__content ul li {
74
+ padding: 0.2rem 0;
75
+ line-height: var(--rf-leading-relaxed);
76
+ }
77
+ .rf-recipe__content ul li::marker {
78
+ color: var(--rf-color-primary);
79
+ }
80
80
 
81
- /* Steps — numbered with styled counters */
82
- .rf-recipe__content ol {
83
- padding-left: 0;
84
- margin: 0;
85
- }
86
- .rf-recipe__content ol > li {
87
- padding: 0.625rem 0;
88
- padding-left: 2.25rem;
89
- line-height: var(--rf-leading-relaxed);
90
- }
91
- .rf-recipe__content ol > li + li {
92
- border-top: 1px solid var(--rf-color-border);
93
- }
94
- .rf-recipe__content ol > li::before {
95
- font-size: var(--rf-text-xs);
96
- font-weight: var(--rf-weight-bold);
97
- color: var(--rf-color-primary);
98
- background: var(--rf-color-surface);
99
- border-radius: var(--rf-radius-full);
100
- }
81
+ /* Steps — numbered with styled counters */
82
+ .rf-recipe__content ol {
83
+ padding-left: 0;
84
+ margin: 0;
85
+ }
86
+ .rf-recipe__content ol > li {
87
+ padding: 0.625rem 0;
88
+ padding-left: 2.25rem;
89
+ line-height: var(--rf-leading-relaxed);
90
+ }
91
+ .rf-recipe__content ol > li + li {
92
+ border-top: 1px solid var(--rf-color-border);
93
+ }
94
+ .rf-recipe__content ol > li::before {
95
+ font-size: var(--rf-text-xs);
96
+ font-weight: var(--rf-weight-bold);
97
+ color: var(--rf-color-primary);
98
+ background: var(--rf-color-surface);
99
+ border-radius: var(--rf-radius-full);
100
+ }
101
101
 
102
- .rf-recipe__content ol > li > p,
103
- .rf-recipe__content ul > li > p {
104
- margin: 0;
105
- }
102
+ .rf-recipe__content ol > li > p,
103
+ .rf-recipe__content ul > li > p {
104
+ margin: 0;
105
+ }
106
106
 
107
- /* Tips — callout accent like hint */
108
- .rf-recipe__content blockquote {
109
- border-left: 2px solid var(--rf-color-primary);
110
- background: var(--rf-color-surface);
111
- border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
112
- padding: 0.75rem 1.25rem;
113
- margin: 0;
114
- font-size: var(--rf-text-sm);
115
- font-style: italic;
116
- color: var(--rf-color-muted);
117
- line-height: var(--rf-leading-relaxed);
118
- }
119
- .rf-recipe__content blockquote p {
120
- margin: 0;
121
- }
107
+ /* Tips — callout accent like hint */
108
+ .rf-recipe__content blockquote {
109
+ border-left: 2px solid var(--rf-color-primary);
110
+ background: var(--rf-color-surface);
111
+ border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
112
+ padding: 0.75rem 1.25rem;
113
+ margin: 0;
114
+ font-size: var(--rf-text-sm);
115
+ font-style: italic;
116
+ color: var(--rf-color-muted);
117
+ line-height: var(--rf-leading-relaxed);
118
+ }
119
+ .rf-recipe__content blockquote p {
120
+ margin: 0;
121
+ }
122
122
 
123
- /* Media zone — base sizing/clip come from the shared [data-section="media"]
123
+ /* Media zone — base sizing/clip come from the shared [data-section="media"]
124
124
  * rule in split.css. The image uses the media radius tier so it reads as a
125
125
  * guest nested inside the (larger-radius) recipe card. */
126
- .rf-recipe__media img {
127
- border-radius: var(--rf-radius-media);
128
- }
129
- @media (max-width: 48rem) {
130
- .rf-recipe__metadata {
131
- gap: 0.75rem;
132
- padding: 0;
133
- border: none;
126
+ .rf-recipe__media img {
127
+ border-radius: var(--rf-radius-media);
128
+ }
129
+ @media (max-width: 48rem) {
130
+ .rf-recipe__metadata {
131
+ gap: 0.75rem;
132
+ padding: 0;
133
+ border: none;
134
+ }
134
135
  }
135
- }
136
-
137
-
138
136
  }
@@ -1,101 +1,102 @@
1
1
  @layer skin {
2
- /* Relationships — an entity's graph edges, grouped by kind (SPEC-072).
2
+ /* Relationships — an entity's graph edges, grouped by kind (SPEC-072).
3
3
  *
4
4
  * Generic over kind: the rune emits `data-kind` on each item and a humanized
5
5
  * group heading per kind. Mirrors collection's list chrome.
6
6
  */
7
7
 
8
- .rf-relationships {
9
- margin: var(--rf-spacing-md) 0;
10
- }
8
+ .rf-relationships {
9
+ margin: var(--rf-spacing-md) 0;
10
+ }
11
11
 
12
- .rf-relationships__preamble > :first-child { margin-top: 0; }
12
+ .rf-relationships__preamble > :first-child {
13
+ margin-top: 0;
14
+ }
13
15
 
14
- .rf-relationships__empty {
15
- color: var(--rf-color-muted);
16
- font-size: 0.9375em;
17
- }
16
+ .rf-relationships__empty {
17
+ color: var(--rf-color-muted);
18
+ font-size: 0.9375em;
19
+ }
18
20
 
19
- .rf-relationships__items {
20
- gap: var(--rf-spacing-sm);
21
- }
21
+ .rf-relationships__items {
22
+ gap: var(--rf-spacing-sm);
23
+ }
22
24
 
23
- /* grid arranges edges into responsive columns; list stays a stacked flow.
25
+ /* grid arranges edges into responsive columns; list stays a stacked flow.
24
26
  * Mirrors collection: item chrome comes from the item (the card built-in, or
25
27
  * a {% card %} in the body template), not the layout. */
26
- .rf-relationships[data-layout='grid'] .rf-relationships__items {
27
- gap: var(--rf-spacing-md);
28
- }
28
+ .rf-relationships[data-layout="grid"] .rf-relationships__items {
29
+ gap: var(--rf-spacing-md);
30
+ }
29
31
 
30
- /* Grouped grid: the grid belongs to each group (its items are the cells), not
32
+ /* Grouped grid: the grid belongs to each group (its items are the cells), not
31
33
  * to __items — whose children are the group blocks (or the accordion wrapper).
32
34
  * Left on __items, each group collapses into a single column. So __items stacks
33
35
  * the groups and each group becomes the grid, with its title spanning. */
34
- .rf-relationships[data-layout='grid'] .rf-relationships__items:has(.rf-relationships__group),
35
- .rf-relationships[data-layout='grid'] .rf-relationships__items:has(.rf-accordion) {
36
- gap: var(--rf-spacing-md);
37
- }
38
- .rf-relationships[data-layout='grid'] .rf-relationships__group {
39
- gap: var(--rf-spacing-md);
40
- }
36
+ .rf-relationships[data-layout="grid"] .rf-relationships__items:has(.rf-relationships__group),
37
+ .rf-relationships[data-layout="grid"] .rf-relationships__items:has(.rf-accordion) {
38
+ gap: var(--rf-spacing-md);
39
+ }
40
+ .rf-relationships[data-layout="grid"] .rf-relationships__group {
41
+ gap: var(--rf-spacing-md);
42
+ }
41
43
 
42
- .rf-relationships__group {
43
- margin-top: var(--rf-spacing-md);
44
- /* Tight default for the built-in inline shape (title + field spans). */
45
- gap: var(--rf-spacing-xs);
46
- }
47
- .rf-relationships__group:first-child {
48
- margin-top: 0;
49
- }
50
- /* Modestly roomier when items carry a body template (block content — more than
44
+ .rf-relationships__group {
45
+ margin-top: var(--rf-spacing-md);
46
+ /* Tight default for the built-in inline shape (title + field spans). */
47
+ gap: var(--rf-spacing-xs);
48
+ }
49
+ .rf-relationships__group:first-child {
50
+ margin-top: 0;
51
+ }
52
+ /* Modestly roomier when items carry a body template (block content — more than
51
53
  * a one-liner). Body-template items are marked `data-block` by the resolver;
52
54
  * the built-in inline title+field rows are not. */
53
- .rf-relationships__group:has(.rf-relationships__item[data-block]) {
54
- gap: var(--rf-spacing-sm);
55
- }
55
+ .rf-relationships__group:has(.rf-relationships__item[data-block]) {
56
+ gap: var(--rf-spacing-sm);
57
+ }
56
58
 
57
- .rf-relationships__group-title {
58
- margin: 0 0 var(--rf-spacing-sm);
59
- font-size: 0.875em;
60
- text-transform: uppercase;
61
- letter-spacing: var(--rf-tracking-wider);
62
- color: var(--rf-color-muted);
63
- }
59
+ .rf-relationships__group-title {
60
+ margin: 0 0 var(--rf-spacing-sm);
61
+ font-size: 0.875em;
62
+ text-transform: uppercase;
63
+ letter-spacing: var(--rf-tracking-wider);
64
+ color: var(--rf-color-muted);
65
+ }
64
66
 
65
- .rf-relationships__item {
66
- gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
67
- }
68
- .rf-relationships__item[data-block] > :first-child {
69
- margin-top: 0;
70
- }
71
- .rf-relationships__item[data-block] > :last-child {
72
- margin-bottom: 0;
73
- }
67
+ .rf-relationships__item {
68
+ gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
69
+ }
70
+ .rf-relationships__item[data-block] > :first-child {
71
+ margin-top: 0;
72
+ }
73
+ .rf-relationships__item[data-block] > :last-child {
74
+ margin-bottom: 0;
75
+ }
74
76
 
75
- /* Card chrome for the grid built-in (mirrors collection's __card). */
76
- .rf-relationships__card {
77
- gap: var(--rf-spacing-xs);
78
- padding: var(--rf-spacing-md);
79
- border: 1px solid var(--rf-color-border);
80
- border-radius: var(--rf-radius-md);
81
- background: var(--rf-color-surface);
82
- }
83
- .rf-relationships__card:hover {
84
- background: var(--rf-color-surface-hover);
85
- }
77
+ /* Card chrome for the grid built-in (mirrors collection's __card). */
78
+ .rf-relationships__card {
79
+ gap: var(--rf-spacing-xs);
80
+ padding: var(--rf-spacing-md);
81
+ border: 1px solid var(--rf-color-border);
82
+ border-radius: var(--rf-radius-md);
83
+ background: var(--rf-color-surface);
84
+ }
85
+ .rf-relationships__card:hover {
86
+ background: var(--rf-color-surface-hover);
87
+ }
86
88
 
87
- .rf-relationships__title {
88
- font-weight: var(--rf-weight-semibold);
89
- color: var(--rf-color-text);
90
- text-decoration: none;
91
- }
92
- .rf-relationships__title:hover {
93
- color: var(--rf-color-primary);
94
- }
95
-
96
- .rf-relationships__field {
97
- font-size: 0.875em;
98
- color: var(--rf-color-muted);
99
- }
89
+ .rf-relationships__title {
90
+ font-weight: var(--rf-weight-semibold);
91
+ color: var(--rf-color-text);
92
+ text-decoration: none;
93
+ }
94
+ .rf-relationships__title:hover {
95
+ color: var(--rf-color-primary);
96
+ }
100
97
 
98
+ .rf-relationships__field {
99
+ font-size: 0.875em;
100
+ color: var(--rf-color-muted);
101
+ }
101
102
  }
@@ -1,83 +1,94 @@
1
1
  @layer skin {
2
- /* Reveal — skin. The eyebrow stretched-link, steps flex, hidden-step collapse,
2
+ /* Reveal — skin. The eyebrow stretched-link, steps flex, hidden-step collapse,
3
3
  * metadata hide, and control flex live in @refrakt-md/skeleton
4
4
  * (styles/runes/reveal.css). */
5
- .rf-reveal__preamble {
6
- margin-bottom: 1.5rem;
7
- }
8
- .rf-reveal__eyebrow {
9
- font-size: var(--rf-text-sm);
10
- font-weight: var(--rf-weight-semibold);
11
- letter-spacing: var(--rf-tracking-wider);
12
- text-transform: uppercase;
13
- color: var(--rf-color-primary);
14
- margin: 0 0 0.5rem;
15
- }
16
- .rf-reveal__eyebrow:has(a) {
17
- padding: 0.25rem 0.875rem;
18
- border: 1px solid var(--rf-color-border);
19
- border-radius: var(--rf-radius-full);
20
- color: var(--rf-color-text);
21
- font-weight: var(--rf-weight-normal);
22
- text-transform: none;
23
- letter-spacing: var(--rf-tracking-normal);
24
- transition: border-color 150ms ease;
25
- }
26
- .rf-reveal__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
27
- .rf-reveal__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
28
- .rf-reveal__eyebrow:has(a) a::before { border-radius: inherit; }
29
- .rf-reveal__headline {
30
- margin-top: 0;
31
- }
32
- .rf-reveal__blurb {
33
- color: var(--rf-color-muted);
34
- margin-bottom: 0;
35
- }
36
- .rf-reveal__image {
37
- margin-bottom: 1rem;
38
- }
39
- .rf-reveal__steps {
40
- gap: 1rem;
41
- }
42
- .rf-reveal-step {
43
- transition: opacity 0.3s ease, transform 0.3s ease;
44
- }
45
- .rf-reveal-step--visible {
46
- opacity: 1;
47
- transform: translateY(0);
48
- }
49
- .rf-reveal-step--hidden {
50
- opacity: 0;
51
- margin: 0;
52
- transform: translateY(0.5rem);
53
- }
54
- .rf-reveal-step__content {
55
- padding: 1rem 0;
56
- border-bottom: 1px solid var(--rf-color-border);
57
- }
58
- .rf-reveal-step__title {
59
- font-size: var(--rf-text-lg);
60
- font-weight: var(--rf-weight-semibold);
61
- margin: 0 0 0.5rem;
62
- }
63
- .rf-reveal-step__body p:last-child { margin-bottom: 0; }
64
- .rf-reveal__next,
65
- .rf-reveal__reset {
66
- gap: 0.5rem;
67
- margin-top: 1rem;
68
- padding: 0.5rem 1.25rem;
69
- border: 1px solid var(--rf-color-border);
70
- border-radius: var(--rf-radius-md);
71
- background: var(--rf-color-surface);
72
- color: var(--rf-color-text);
73
- font-size: var(--rf-text-sm);
74
- font-weight: var(--rf-weight-medium);
75
- cursor: pointer;
76
- transition: background 0.15s;
77
- }
78
- .rf-reveal__next:hover,
79
- .rf-reveal__reset:hover {
80
- background: var(--rf-color-border);
81
- }
82
-
5
+ .rf-reveal__preamble {
6
+ margin-bottom: 1.5rem;
7
+ }
8
+ .rf-reveal__eyebrow {
9
+ font-size: var(--rf-text-sm);
10
+ font-weight: var(--rf-weight-semibold);
11
+ letter-spacing: var(--rf-tracking-wider);
12
+ text-transform: uppercase;
13
+ color: var(--rf-color-primary);
14
+ margin: 0 0 0.5rem;
15
+ }
16
+ .rf-reveal__eyebrow:has(a) {
17
+ padding: 0.25rem 0.875rem;
18
+ border: 1px solid var(--rf-color-border);
19
+ border-radius: var(--rf-radius-full);
20
+ color: var(--rf-color-text);
21
+ font-weight: var(--rf-weight-normal);
22
+ text-transform: none;
23
+ letter-spacing: var(--rf-tracking-normal);
24
+ transition: border-color 150ms ease;
25
+ }
26
+ .rf-reveal__eyebrow:has(a):hover {
27
+ border-color: var(--rf-color-muted);
28
+ }
29
+ .rf-reveal__eyebrow:has(a) a {
30
+ color: var(--rf-color-primary);
31
+ font-weight: var(--rf-weight-semibold);
32
+ text-decoration: none;
33
+ }
34
+ .rf-reveal__eyebrow:has(a) a::before {
35
+ border-radius: inherit;
36
+ }
37
+ .rf-reveal__headline {
38
+ margin-top: 0;
39
+ }
40
+ .rf-reveal__blurb {
41
+ color: var(--rf-color-muted);
42
+ margin-bottom: 0;
43
+ }
44
+ .rf-reveal__image {
45
+ margin-bottom: 1rem;
46
+ }
47
+ .rf-reveal__steps {
48
+ gap: 1rem;
49
+ }
50
+ .rf-reveal-step {
51
+ transition:
52
+ opacity 0.3s ease,
53
+ transform 0.3s ease;
54
+ }
55
+ .rf-reveal-step--visible {
56
+ opacity: 1;
57
+ transform: translateY(0);
58
+ }
59
+ .rf-reveal-step--hidden {
60
+ opacity: 0;
61
+ margin: 0;
62
+ transform: translateY(0.5rem);
63
+ }
64
+ .rf-reveal-step__content {
65
+ padding: 1rem 0;
66
+ border-bottom: 1px solid var(--rf-color-border);
67
+ }
68
+ .rf-reveal-step__title {
69
+ font-size: var(--rf-text-lg);
70
+ font-weight: var(--rf-weight-semibold);
71
+ margin: 0 0 0.5rem;
72
+ }
73
+ .rf-reveal-step__body p:last-child {
74
+ margin-bottom: 0;
75
+ }
76
+ .rf-reveal__next,
77
+ .rf-reveal__reset {
78
+ gap: 0.5rem;
79
+ margin-top: 1rem;
80
+ padding: 0.5rem 1.25rem;
81
+ border: 1px solid var(--rf-color-border);
82
+ border-radius: var(--rf-radius-md);
83
+ background: var(--rf-color-surface);
84
+ color: var(--rf-color-text);
85
+ font-size: var(--rf-text-sm);
86
+ font-weight: var(--rf-weight-medium);
87
+ cursor: pointer;
88
+ transition: background 0.15s;
89
+ }
90
+ .rf-reveal__next:hover,
91
+ .rf-reveal__reset:hover {
92
+ background: var(--rf-color-border);
93
+ }
83
94
  }