@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,36 +1,39 @@
1
1
  @layer skin {
2
- /* Conversation — skin. The column stack, bubble flex/width/side-alignment, and the
2
+ /* Conversation — skin. The column stack, bubble flex/width/side-alignment, and the
3
3
  * data-carrier hides live in @refrakt-md/skeleton (styles/runes/conversation.css). */
4
- .rf-conversation {
5
- gap: 1rem;
6
- max-width: 40rem;
7
- }
8
- .rf-conversation__messages {
9
- gap: 1rem;
10
- }
11
- .rf-conversation-message__speaker {
12
- font-size: var(--rf-text-xs);
13
- font-weight: var(--rf-weight-semibold);
14
- color: var(--rf-color-muted);
15
- margin-bottom: 0.25rem;
16
- padding: 0 0.75rem;
17
- }
18
- .rf-conversation-message__body {
19
- padding: 0.75rem 1rem;
20
- border-radius: 1rem;
21
- font-size: var(--rf-text);
22
- line-height: var(--rf-leading-normal);
23
- }
24
- .rf-conversation-message--left .rf-conversation-message__body {
25
- background: var(--rf-color-surface);
26
- border-bottom-left-radius: 0.25rem;
27
- }
28
- .rf-conversation-message--right .rf-conversation-message__body {
29
- background: var(--rf-color-primary);
30
- color: white;
31
- border-bottom-right-radius: 0.25rem;
32
- }
33
- .rf-conversation-message__body p { margin: 0; }
34
- .rf-conversation-message__body p + p { margin-top: 0.5rem; }
35
-
4
+ .rf-conversation {
5
+ gap: 1rem;
6
+ max-width: 40rem;
7
+ }
8
+ .rf-conversation__messages {
9
+ gap: 1rem;
10
+ }
11
+ .rf-conversation-message__speaker {
12
+ font-size: var(--rf-text-xs);
13
+ font-weight: var(--rf-weight-semibold);
14
+ color: var(--rf-color-muted);
15
+ margin-bottom: 0.25rem;
16
+ padding: 0 0.75rem;
17
+ }
18
+ .rf-conversation-message__body {
19
+ padding: 0.75rem 1rem;
20
+ border-radius: 1rem;
21
+ font-size: var(--rf-text);
22
+ line-height: var(--rf-leading-normal);
23
+ }
24
+ .rf-conversation-message--left .rf-conversation-message__body {
25
+ background: var(--rf-color-surface);
26
+ border-bottom-left-radius: 0.25rem;
27
+ }
28
+ .rf-conversation-message--right .rf-conversation-message__body {
29
+ background: var(--rf-color-primary);
30
+ color: white;
31
+ border-bottom-right-radius: 0.25rem;
32
+ }
33
+ .rf-conversation-message__body p {
34
+ margin: 0;
35
+ }
36
+ .rf-conversation-message__body p + p {
37
+ margin-top: 0.5rem;
38
+ }
36
39
  }
@@ -1,139 +1,142 @@
1
1
  @layer skin {
2
- /* Call to Action — skin. The preamble/eyebrow/button-row layout + mobile stack
2
+ /* Call to Action — skin. The preamble/eyebrow/button-row layout + mobile stack
3
3
  * live in @refrakt-md/skeleton (styles/runes/cta.css). */
4
- .rf-cta {
5
- --rf-title-size: var(--rf-text-4xl);
6
- padding: 3.5rem 2rem 3rem;
7
- }
8
- .rf-cta .rf-cta__preamble,
9
- .rf-cta > h1, .rf-cta > h2, .rf-cta > h3,
10
- .rf-cta > p {
11
- text-align: center;
12
- }
13
- .rf-cta__preamble {
14
- gap: 0.25rem;
15
- margin-bottom: 1.5rem;
16
- }
17
- /* Higher specificity needed to override .rf-cta p (0,1,1) */
18
- .rf-cta .rf-cta__eyebrow {
19
- font-size: var(--rf-text-sm);
20
- font-weight: var(--rf-weight-semibold);
21
- letter-spacing: var(--rf-tracking-wider);
22
- text-transform: uppercase;
23
- color: var(--rf-color-primary);
24
- margin: 0 0 0.75rem;
25
- max-width: none;
26
- }
27
- /* Pill-badge variant when eyebrow contains a link */
28
- .rf-cta .rf-cta__eyebrow:has(a) {
29
- padding: 0.25rem 0.875rem;
30
- border: 1px solid var(--rf-color-border);
31
- border-radius: var(--rf-radius-full);
32
- color: var(--rf-color-text);
33
- font-weight: var(--rf-weight-normal);
34
- text-transform: none;
35
- letter-spacing: var(--rf-tracking-normal);
36
- transition: border-color 150ms ease;
37
- }
38
- .rf-cta .rf-cta__eyebrow:has(a):hover {
39
- border-color: var(--rf-color-muted);
40
- }
41
- .rf-cta .rf-cta__eyebrow:has(a) a {
42
- color: var(--rf-color-primary);
43
- font-weight: var(--rf-weight-semibold);
44
- text-decoration: none;
45
- }
46
- .rf-cta .rf-cta__eyebrow:has(a) a::before {
47
- border-radius: inherit;
48
- }
49
- .rf-cta__image {
50
- margin-bottom: 1.5rem;
51
- }
52
- .rf-cta h1,
53
- .rf-cta h2,
54
- .rf-cta h3,
55
- .rf-cta__headline {
56
- /* WORK-538 — read the prominence override first; the fallback is this rune's
4
+ .rf-cta {
5
+ --rf-title-size: var(--rf-text-4xl);
6
+ padding: 3.5rem 2rem 3rem;
7
+ }
8
+ .rf-cta .rf-cta__preamble,
9
+ .rf-cta > h1,
10
+ .rf-cta > h2,
11
+ .rf-cta > h3,
12
+ .rf-cta > p {
13
+ text-align: center;
14
+ }
15
+ .rf-cta__preamble {
16
+ gap: 0.25rem;
17
+ margin-bottom: 1.5rem;
18
+ }
19
+ /* Higher specificity needed to override .rf-cta p (0,1,1) */
20
+ .rf-cta .rf-cta__eyebrow {
21
+ font-size: var(--rf-text-sm);
22
+ font-weight: var(--rf-weight-semibold);
23
+ letter-spacing: var(--rf-tracking-wider);
24
+ text-transform: uppercase;
25
+ color: var(--rf-color-primary);
26
+ margin: 0 0 0.75rem;
27
+ max-width: none;
28
+ }
29
+ /* Pill-badge variant when eyebrow contains a link */
30
+ .rf-cta .rf-cta__eyebrow:has(a) {
31
+ padding: 0.25rem 0.875rem;
32
+ border: 1px solid var(--rf-color-border);
33
+ border-radius: var(--rf-radius-full);
34
+ color: var(--rf-color-text);
35
+ font-weight: var(--rf-weight-normal);
36
+ text-transform: none;
37
+ letter-spacing: var(--rf-tracking-normal);
38
+ transition: border-color 150ms ease;
39
+ }
40
+ .rf-cta .rf-cta__eyebrow:has(a):hover {
41
+ border-color: var(--rf-color-muted);
42
+ }
43
+ .rf-cta .rf-cta__eyebrow:has(a) a {
44
+ color: var(--rf-color-primary);
45
+ font-weight: var(--rf-weight-semibold);
46
+ text-decoration: none;
47
+ }
48
+ .rf-cta .rf-cta__eyebrow:has(a) a::before {
49
+ border-radius: inherit;
50
+ }
51
+ .rf-cta__image {
52
+ margin-bottom: 1.5rem;
53
+ }
54
+ .rf-cta h1,
55
+ .rf-cta h2,
56
+ .rf-cta h3,
57
+ .rf-cta__headline {
58
+ /* WORK-538 — read the prominence override first; the fallback is this rune's
57
59
  * resting size, stated as --rf-title-size on the root so the prominence ramp
58
60
  * can compute from it. */
59
- font-size: var(--rf-prominence-size, var(--rf-title-size));
60
- font-weight: var(--rf-weight-bold);
61
- letter-spacing: var(--rf-tracking-tight);
62
- margin-bottom: 0.75rem;
63
- margin-top: 0;
64
- line-height: var(--rf-leading-tight);
65
- background: linear-gradient(135deg, var(--rf-color-text) 0%, var(--rf-color-muted) 100%);
66
- -webkit-background-clip: text;
67
- -webkit-text-fill-color: transparent;
68
- background-clip: text;
69
- }
70
- /* Higher specificity needed to override .rf-cta p (0,1,1) */
71
- .rf-cta p,
72
- .rf-cta .rf-cta__blurb {
73
- font-size: var(--rf-text-lg);
74
- color: var(--rf-color-muted);
75
- max-width: 540px;
76
- margin: 0 auto 2rem;
77
- line-height: var(--rf-leading-relaxed);
78
- }
79
- .rf-cta ul {
80
- gap: 0.75rem;
81
- padding: 0;
82
- margin: 0;
83
- }
84
- .rf-cta li {
85
- padding: 0;
86
- margin: 0;
87
- }
88
- .rf-cta li a,
89
- .rf-cta nav a {
90
- padding: 0.625rem 1.5rem;
91
- border-radius: var(--rf-radius-sm);
92
- text-decoration: none;
93
- font-weight: var(--rf-weight-semibold);
94
- font-size: var(--rf-text-sm);
95
- transition: all 200ms ease;
96
- }
97
- .rf-cta li:first-child a {
98
- background: var(--rf-color-primary);
99
- color: white;
100
- box-shadow: var(--rf-shadow-sm);
101
- }
102
- .rf-cta li:first-child a:hover {
103
- background: var(--rf-color-primary-hover);
104
- box-shadow: var(--rf-shadow-md);
105
- transform: translateY(-1px);
106
- text-decoration: none;
107
- }
108
- .rf-cta li:not(:first-child) a {
109
- background: var(--rf-color-surface);
110
- color: var(--rf-color-text);
111
- border: 1px solid var(--rf-color-border);
112
- }
113
- .rf-cta li:not(:first-child) a:hover {
114
- background: var(--rf-color-surface-hover);
115
- border-color: var(--rf-color-surface-active);
116
- text-decoration: none;
117
- }
61
+ font-size: var(--rf-prominence-size, var(--rf-title-size));
62
+ font-weight: var(--rf-weight-bold);
63
+ letter-spacing: var(--rf-tracking-tight);
64
+ margin-bottom: 0.75rem;
65
+ margin-top: 0;
66
+ line-height: var(--rf-leading-tight);
67
+ background: linear-gradient(135deg, var(--rf-color-text) 0%, var(--rf-color-muted) 100%);
68
+ -webkit-background-clip: text;
69
+ -webkit-text-fill-color: transparent;
70
+ background-clip: text;
71
+ }
72
+ /* Higher specificity needed to override .rf-cta p (0,1,1) */
73
+ .rf-cta p,
74
+ .rf-cta .rf-cta__blurb {
75
+ font-size: var(--rf-text-lg);
76
+ color: var(--rf-color-muted);
77
+ max-width: 540px;
78
+ margin: 0 auto 2rem;
79
+ line-height: var(--rf-leading-relaxed);
80
+ }
81
+ .rf-cta ul {
82
+ gap: 0.75rem;
83
+ padding: 0;
84
+ margin: 0;
85
+ }
86
+ .rf-cta li {
87
+ padding: 0;
88
+ margin: 0;
89
+ }
90
+ .rf-cta li a,
91
+ .rf-cta nav a {
92
+ padding: 0.625rem 1.5rem;
93
+ border-radius: var(--rf-radius-sm);
94
+ text-decoration: none;
95
+ font-weight: var(--rf-weight-semibold);
96
+ font-size: var(--rf-text-sm);
97
+ transition: all 200ms ease;
98
+ }
99
+ .rf-cta li:first-child a {
100
+ background: var(--rf-color-primary);
101
+ color: white;
102
+ box-shadow: var(--rf-shadow-sm);
103
+ }
104
+ .rf-cta li:first-child a:hover {
105
+ background: var(--rf-color-primary-hover);
106
+ box-shadow: var(--rf-shadow-md);
107
+ transform: translateY(-1px);
108
+ text-decoration: none;
109
+ }
110
+ .rf-cta li:not(:first-child) a {
111
+ background: var(--rf-color-surface);
112
+ color: var(--rf-color-text);
113
+ border: 1px solid var(--rf-color-border);
114
+ }
115
+ .rf-cta li:not(:first-child) a:hover {
116
+ background: var(--rf-color-surface-hover);
117
+ border-color: var(--rf-color-surface-active);
118
+ text-decoration: none;
119
+ }
118
120
 
119
- /* Context-aware: CTA inside a hero gets more vertical space */
120
- .rf-cta--in-hero {
121
- padding-top: 2rem;
122
- padding-bottom: 0;
123
- }
124
-
125
- /* Context-aware: CTA inside pricing — compact, left-aligned */
126
- .rf-cta--in-pricing {
127
- padding: 1.5rem 0 0;
128
- }
129
- .rf-cta--in-pricing .rf-cta__preamble,
130
- .rf-cta--in-pricing > h1, .rf-cta--in-pricing > h2, .rf-cta--in-pricing > h3,
131
- .rf-cta--in-pricing > p {
132
- text-align: left;
133
- }
134
- .rf-cta--in-pricing p {
135
- margin: 0 0 1rem;
136
- max-width: none;
137
- }
121
+ /* Context-aware: CTA inside a hero gets more vertical space */
122
+ .rf-cta--in-hero {
123
+ padding-top: 2rem;
124
+ padding-bottom: 0;
125
+ }
138
126
 
127
+ /* Context-aware: CTA inside pricing — compact, left-aligned */
128
+ .rf-cta--in-pricing {
129
+ padding: 1.5rem 0 0;
130
+ }
131
+ .rf-cta--in-pricing .rf-cta__preamble,
132
+ .rf-cta--in-pricing > h1,
133
+ .rf-cta--in-pricing > h2,
134
+ .rf-cta--in-pricing > h3,
135
+ .rf-cta--in-pricing > p {
136
+ text-align: left;
137
+ }
138
+ .rf-cta--in-pricing p {
139
+ margin: 0 0 1rem;
140
+ max-width: none;
141
+ }
139
142
  }
@@ -1,90 +1,91 @@
1
1
  @layer skin {
2
- /* DataTable — skin. The toolbar/pagination flex + input width live in
2
+ /* DataTable — skin. The toolbar/pagination flex + input width live in
3
3
  * @refrakt-md/skeleton (styles/runes/datatable.css). The table chrome (header
4
4
  * strip, cell padding, row borders, hover) stays here. */
5
5
 
6
- /* The sunken surface chrome (fill + border + container radius) stays, but the
6
+ /* The sunken surface chrome (fill + border + container radius) stays, but the
7
7
  * elevation padding is dropped: the toolbar, table, and pagination each carry
8
8
  * their own rhythm and sit flush with the surface edge. */
9
- .rf-datatable {
10
- padding: 0;
11
- }
12
- .rf-datatable__toolbar {
13
- padding: var(--rf-spacing-sm);
14
- }
15
- .rf-datatable__input {
16
- padding: var(--rf-spacing-snug);
17
- border: 1px solid var(--rf-color-border);
18
- border-radius: var(--rf-radius-media);
19
- font-size: var(--rf-text-xs);
20
- font-family: var(--rf-font-sans);
21
- background: var(--rf-color-bg);
22
- color: var(--rf-color-text);
23
- }
24
- .rf-datatable__input:focus {
25
- outline: none;
26
- border-color: var(--rf-color-primary);
27
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--rf-color-primary) 15%, transparent);
28
- }
29
- .rf-datatable__table {
30
- width: 100%;
31
- border-collapse: collapse;
32
- margin: 0;
33
- }
34
- .rf-datatable__table th {
35
- text-align: left;
36
- padding: 0.75rem 1rem;
37
- font-size: var(--rf-text-xs);
38
- font-weight: var(--rf-weight-semibold);
39
- text-transform: uppercase;
40
- letter-spacing: var(--rf-tracking-wider);
41
- color: var(--rf-color-muted);
42
- }
43
- /* Sortable headers (the behavior sets inline cursor:pointer on them). */
44
- .rf-datatable__table th[style*="cursor"]:hover {
45
- color: var(--rf-color-text);
46
- }
47
- .rf-datatable__sort-indicator {
48
- font-size: var(--rf-text-xs);
49
- opacity: 0.7;
50
- }
51
- .rf-datatable__table td {
52
- padding: 0.75rem 1rem;
53
- border-bottom: 1px solid var(--rf-color-border);
54
- font-size: var(--rf-text-sm);
55
- }
56
- .rf-datatable__table tr:last-child td {
57
- border-bottom: none;
58
- }
59
- .rf-datatable__table tr:hover td {
60
- background: var(--rf-color-surface-hover);
61
- }
62
- .rf-datatable__pagination {
63
- gap: 0.75rem;
64
- padding: var(--rf-spacing-sm);
65
- }
66
- .rf-datatable__page-btn {
67
- padding: 0.25rem 0.5rem;
68
- border: none;
69
- border-radius: var(--rf-radius-sm);
70
- background: transparent;
71
- color: var(--rf-color-muted);
72
- font-size: var(--rf-text-xs);
73
- font-family: var(--rf-font-sans);
74
- cursor: pointer;
75
- transition: color 150ms ease, background 150ms ease;
76
- }
77
- .rf-datatable__page-btn:hover:not(:disabled) {
78
- color: var(--rf-color-text);
79
- background: var(--rf-color-surface-hover);
80
- }
81
- .rf-datatable__page-btn:disabled {
82
- opacity: 0.3;
83
- cursor: not-allowed;
84
- }
85
- .rf-datatable__page-info {
86
- font-size: var(--rf-text-xs);
87
- color: var(--rf-color-muted);
88
- }
89
-
9
+ .rf-datatable {
10
+ padding: 0;
11
+ }
12
+ .rf-datatable__toolbar {
13
+ padding: var(--rf-spacing-sm);
14
+ }
15
+ .rf-datatable__input {
16
+ padding: var(--rf-spacing-snug);
17
+ border: 1px solid var(--rf-color-border);
18
+ border-radius: var(--rf-radius-media);
19
+ font-size: var(--rf-text-xs);
20
+ font-family: var(--rf-font-sans);
21
+ background: var(--rf-color-bg);
22
+ color: var(--rf-color-text);
23
+ }
24
+ .rf-datatable__input:focus {
25
+ outline: none;
26
+ border-color: var(--rf-color-primary);
27
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--rf-color-primary) 15%, transparent);
28
+ }
29
+ .rf-datatable__table {
30
+ width: 100%;
31
+ border-collapse: collapse;
32
+ margin: 0;
33
+ }
34
+ .rf-datatable__table th {
35
+ text-align: left;
36
+ padding: 0.75rem 1rem;
37
+ font-size: var(--rf-text-xs);
38
+ font-weight: var(--rf-weight-semibold);
39
+ text-transform: uppercase;
40
+ letter-spacing: var(--rf-tracking-wider);
41
+ color: var(--rf-color-muted);
42
+ }
43
+ /* Sortable headers (the behavior sets inline cursor:pointer on them). */
44
+ .rf-datatable__table th[style*="cursor"]:hover {
45
+ color: var(--rf-color-text);
46
+ }
47
+ .rf-datatable__sort-indicator {
48
+ font-size: var(--rf-text-xs);
49
+ opacity: 0.7;
50
+ }
51
+ .rf-datatable__table td {
52
+ padding: 0.75rem 1rem;
53
+ border-bottom: 1px solid var(--rf-color-border);
54
+ font-size: var(--rf-text-sm);
55
+ }
56
+ .rf-datatable__table tr:last-child td {
57
+ border-bottom: none;
58
+ }
59
+ .rf-datatable__table tr:hover td {
60
+ background: var(--rf-color-surface-hover);
61
+ }
62
+ .rf-datatable__pagination {
63
+ gap: 0.75rem;
64
+ padding: var(--rf-spacing-sm);
65
+ }
66
+ .rf-datatable__page-btn {
67
+ padding: 0.25rem 0.5rem;
68
+ border: none;
69
+ border-radius: var(--rf-radius-sm);
70
+ background: transparent;
71
+ color: var(--rf-color-muted);
72
+ font-size: var(--rf-text-xs);
73
+ font-family: var(--rf-font-sans);
74
+ cursor: pointer;
75
+ transition:
76
+ color 150ms ease,
77
+ background 150ms ease;
78
+ }
79
+ .rf-datatable__page-btn:hover:not(:disabled) {
80
+ color: var(--rf-color-text);
81
+ background: var(--rf-color-surface-hover);
82
+ }
83
+ .rf-datatable__page-btn:disabled {
84
+ opacity: 0.3;
85
+ cursor: not-allowed;
86
+ }
87
+ .rf-datatable__page-info {
88
+ font-size: var(--rf-text-xs);
89
+ color: var(--rf-color-muted);
90
+ }
90
91
  }
@@ -1,33 +1,32 @@
1
1
  @layer skin {
2
- /* Decision */
2
+ /* Decision */
3
3
 
4
- /* SPEC-079: eyebrow + metadata zone names replace header-primary /
4
+ /* SPEC-079: eyebrow + metadata zone names replace header-primary /
5
5
  * header-secondary. */
6
6
 
7
- .rf-decision__eyebrow {
8
- margin-bottom: 0.75rem;
9
- }
10
- .rf-decision__title h1,
11
- .rf-decision__title h2,
12
- .rf-decision__title h3 {
13
- margin-top: 0;
14
- }
15
-
16
- .rf-decision__metadata {
17
- margin-bottom: 1.5rem;
18
- }
7
+ .rf-decision__eyebrow {
8
+ margin-bottom: 0.75rem;
9
+ }
10
+ .rf-decision__title h1,
11
+ .rf-decision__title h2,
12
+ .rf-decision__title h3 {
13
+ margin-top: 0;
14
+ }
19
15
 
20
- .rf-decision__body {
21
- font-size: var(--rf-text-sm);
22
- line-height: var(--rf-leading-relaxed);
23
- }
24
- .rf-decision__body > section {
25
- margin-top: 1rem;
26
- padding-top: 0.75rem;
27
- border-top: 1px solid var(--rf-color-border);
28
- }
29
- .rf-decision__body > section:first-child {
30
- margin-top: 0.75rem;
31
- }
16
+ .rf-decision__metadata {
17
+ margin-bottom: 1.5rem;
18
+ }
32
19
 
20
+ .rf-decision__body {
21
+ font-size: var(--rf-text-sm);
22
+ line-height: var(--rf-leading-relaxed);
23
+ }
24
+ .rf-decision__body > section {
25
+ margin-top: 1rem;
26
+ padding-top: 0.75rem;
27
+ border-top: 1px solid var(--rf-color-border);
28
+ }
29
+ .rf-decision__body > section:first-child {
30
+ margin-top: 0.75rem;
31
+ }
33
32
  }
@@ -1,34 +1,32 @@
1
1
  @layer skin {
2
-
3
- /* WORK-538 — resting title size, so the prominence ramp computes from it
2
+ /* WORK-538 — resting title size, so the prominence ramp computes from it
4
3
  * rather than from the density default. */
5
- .rf-design-context {
6
- --rf-title-size: var(--rf-text-xl);
7
- }
4
+ .rf-design-context {
5
+ --rf-title-size: var(--rf-text-xl);
6
+ }
8
7
 
9
- /* Design Context — unified token card wrapper */
10
- .rf-design-context__title {
11
- /* WORK-538 — read the prominence override first; the fallback is this rune's
8
+ /* Design Context — unified token card wrapper */
9
+ .rf-design-context__title {
10
+ /* WORK-538 — read the prominence override first; the fallback is this rune's
12
11
  * resting size, stated as --rf-title-size on the root so the prominence ramp
13
12
  * can compute from it. */
14
- font-size: var(--rf-prominence-size, var(--rf-title-size));
15
- font-weight: var(--rf-weight-bold);
16
- margin-bottom: 1rem;
17
- }
18
- .rf-design-context__sections {
19
- gap: 1.5rem;
20
- }
13
+ font-size: var(--rf-prominence-size, var(--rf-title-size));
14
+ font-weight: var(--rf-weight-bold);
15
+ margin-bottom: 1rem;
16
+ }
17
+ .rf-design-context__sections {
18
+ gap: 1.5rem;
19
+ }
21
20
 
22
- /* Children inside design-context: remove card styling so the outer
21
+ /* Children inside design-context: remove card styling so the outer
23
22
  * design-context surface is the only visible frame. Structural selector
24
23
  * (`> [data-rune]` inside the sections wrapper) catches every direct rune
25
24
  * child, not just the four design-system runes — so dropping a future rune
26
25
  * into a design-context will Just Work without a per-rune CSS update. */
27
- .rf-design-context__sections > [data-rune] {
28
- background: none;
29
- border: none;
30
- border-radius: 0;
31
- padding: 0;
32
- }
33
-
26
+ .rf-design-context__sections > [data-rune] {
27
+ background: none;
28
+ border: none;
29
+ border-radius: 0;
30
+ padding: 0;
31
+ }
34
32
  }