@refrakt-md/lumina 0.8.4 → 0.9.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 (81) hide show
  1. package/base.css +10 -0
  2. package/contracts/structures.json +235 -45
  3. package/index.css +22 -0
  4. package/package.json +6 -6
  5. package/styles/dimensions/checklist.css +81 -0
  6. package/styles/dimensions/density.css +51 -0
  7. package/styles/dimensions/media.css +62 -0
  8. package/styles/dimensions/metadata.css +161 -0
  9. package/styles/dimensions/sections.css +77 -0
  10. package/styles/dimensions/sequence.css +129 -0
  11. package/styles/dimensions/state.css +57 -0
  12. package/styles/dimensions/surfaces.css +88 -0
  13. package/styles/global.css +1 -1
  14. package/styles/layouts/docs.css +28 -2
  15. package/styles/layouts/split.css +159 -3
  16. package/styles/runes/accordion.css +1 -2
  17. package/styles/runes/annotate.css +0 -3
  18. package/styles/runes/api.css +0 -4
  19. package/styles/runes/audio.css +0 -3
  20. package/styles/runes/backlog.css +61 -0
  21. package/styles/runes/bento.css +4 -5
  22. package/styles/runes/blog.css +94 -0
  23. package/styles/runes/budget.css +3 -19
  24. package/styles/runes/bug.css +25 -0
  25. package/styles/runes/cast.css +0 -3
  26. package/styles/runes/character.css +5 -43
  27. package/styles/runes/chart.css +0 -2
  28. package/styles/runes/codegroup.css +2 -2
  29. package/styles/runes/compare.css +0 -1
  30. package/styles/runes/conversation.css +0 -1
  31. package/styles/runes/cta.css +6 -3
  32. package/styles/runes/datatable.css +0 -3
  33. package/styles/runes/decision-log.css +46 -0
  34. package/styles/runes/decision.css +21 -0
  35. package/styles/runes/design-context.css +0 -1
  36. package/styles/runes/details.css +0 -1
  37. package/styles/runes/diagram.css +0 -1
  38. package/styles/runes/diff.css +0 -1
  39. package/styles/runes/embed.css +0 -1
  40. package/styles/runes/event.css +0 -3
  41. package/styles/runes/faction.css +79 -48
  42. package/styles/runes/feature.css +10 -10
  43. package/styles/runes/figure.css +0 -3
  44. package/styles/runes/form.css +0 -1
  45. package/styles/runes/gallery.css +0 -1
  46. package/styles/runes/grid.css +0 -3
  47. package/styles/runes/hero.css +13 -4
  48. package/styles/runes/hint.css +0 -7
  49. package/styles/runes/howto.css +7 -18
  50. package/styles/runes/itinerary.css +0 -2
  51. package/styles/runes/juxtapose.css +160 -0
  52. package/styles/runes/lore.css +0 -20
  53. package/styles/runes/map.css +6 -1
  54. package/styles/runes/mediatext.css +0 -3
  55. package/styles/runes/milestone.css +106 -0
  56. package/styles/runes/mockup.css +0 -1
  57. package/styles/runes/organization.css +0 -3
  58. package/styles/runes/palette.css +0 -3
  59. package/styles/runes/plan-activity.css +87 -0
  60. package/styles/runes/plan-progress.css +69 -0
  61. package/styles/runes/playlist.css +101 -83
  62. package/styles/runes/plot.css +0 -23
  63. package/styles/runes/preview.css +9 -17
  64. package/styles/runes/pricing.css +4 -1
  65. package/styles/runes/realm.css +80 -46
  66. package/styles/runes/recipe.css +7 -89
  67. package/styles/runes/reveal.css +1 -4
  68. package/styles/runes/sandbox.css +0 -1
  69. package/styles/runes/spacing.css +0 -3
  70. package/styles/runes/spec.css +20 -0
  71. package/styles/runes/steps.css +4 -2
  72. package/styles/runes/storyboard.css +0 -3
  73. package/styles/runes/symbol.css +0 -39
  74. package/styles/runes/tabs.css +1 -4
  75. package/styles/runes/testimonial.css +0 -2
  76. package/styles/runes/textblock.css +0 -3
  77. package/styles/runes/toc.css +0 -1
  78. package/styles/runes/track.css +16 -5
  79. package/styles/runes/typography.css +0 -3
  80. package/styles/runes/work.css +35 -0
  81. package/styles/runes/xref.css +12 -0
@@ -0,0 +1,106 @@
1
+ /* Milestone */
2
+ .rf-milestone__target-badge {
3
+ margin-left: auto;
4
+ }
5
+ .rf-milestone__body {
6
+ font-size: 0.925rem;
7
+ line-height: 1.65;
8
+ }
9
+ .rf-milestone__body > header {
10
+ margin-bottom: 0.75rem;
11
+ }
12
+ .rf-milestone__body > header h1,
13
+ .rf-milestone__body > header h2,
14
+ .rf-milestone__body > header h3 {
15
+ margin-top: 0;
16
+ }
17
+ .rf-milestone__body ul {
18
+ padding-left: 1.5rem;
19
+ }
20
+
21
+ /* Auto-backlog */
22
+ .rf-milestone__backlog {
23
+ margin-top: 1.25rem;
24
+ padding-top: 1rem;
25
+ border-top: 1px solid var(--rf-color-border);
26
+ }
27
+ .rf-milestone__backlog-group {
28
+ margin-bottom: 1rem;
29
+ }
30
+ .rf-milestone__backlog-group-label {
31
+ font-size: 0.75rem;
32
+ font-weight: 700;
33
+ text-transform: uppercase;
34
+ letter-spacing: 0.05em;
35
+ color: var(--rf-color-muted);
36
+ margin: 0 0 0.375rem;
37
+ }
38
+
39
+ /* Backlog tabs */
40
+ .rf-milestone__tabs {
41
+ display: flex;
42
+ border-bottom: 1px solid var(--rf-color-border);
43
+ overflow-x: auto;
44
+ overflow-y: hidden;
45
+ -webkit-overflow-scrolling: touch;
46
+ margin-bottom: 0;
47
+ }
48
+ .rf-milestone__tab {
49
+ flex: 0 0 auto;
50
+ padding: 0.5rem 1rem;
51
+ font-size: 0.8125rem;
52
+ font-weight: 500;
53
+ color: var(--rf-color-muted);
54
+ background: none;
55
+ border: none;
56
+ border-bottom: 2px solid transparent;
57
+ cursor: pointer;
58
+ transition: color 200ms ease, border-color 200ms ease;
59
+ white-space: nowrap;
60
+ font-family: inherit;
61
+ }
62
+ .rf-milestone__tab:hover {
63
+ color: var(--rf-color-text);
64
+ }
65
+ .rf-milestone__tab--active {
66
+ color: var(--rf-color-primary);
67
+ border-bottom-color: var(--rf-color-primary);
68
+ font-weight: 600;
69
+ }
70
+ .rf-milestone__panels {
71
+ padding: 0;
72
+ margin: 0;
73
+ }
74
+ .rf-milestone__panel {
75
+ padding-top: 0.75rem;
76
+ }
77
+
78
+ /* Aggregate progress */
79
+ .rf-milestone__progress {
80
+ display: flex;
81
+ align-items: center;
82
+ gap: 0.625rem;
83
+ margin-bottom: 1rem;
84
+ }
85
+ .rf-milestone__progress-label {
86
+ font-size: 0.75rem;
87
+ font-weight: 600;
88
+ color: var(--rf-color-muted);
89
+ white-space: nowrap;
90
+ }
91
+ .rf-milestone__progress-bar {
92
+ flex: 1;
93
+ height: 0.375rem;
94
+ border-radius: var(--rf-radius-sm);
95
+ background: var(--rf-color-surface-active);
96
+ overflow: hidden;
97
+ }
98
+ .rf-milestone__progress-bar::after {
99
+ content: '';
100
+ display: block;
101
+ height: 100%;
102
+ width: var(--rf-progress, 0%);
103
+ background: var(--rf-color-success);
104
+ border-radius: var(--rf-radius-sm);
105
+ transition: width 0.3s ease;
106
+ }
@@ -10,7 +10,6 @@
10
10
  display: block;
11
11
  width: 100%;
12
12
  container-type: inline-size;
13
- margin: 1.5rem 0;
14
13
  background-color: transparent;
15
14
  }
16
15
 
@@ -1,7 +1,4 @@
1
1
  /* Organization */
2
- .rf-organization {
3
- margin: 1.5rem 0;
4
- }
5
2
  .rf-organization__type {
6
3
  font-size: 0.75rem;
7
4
  font-weight: 400;
@@ -1,7 +1,4 @@
1
1
  /* Palette — color swatch grid */
2
- .rf-palette {
3
- margin: 1.5rem 0;
4
- }
5
2
  .rf-palette__title {
6
3
  font-size: 1.125rem;
7
4
  font-weight: 600;
@@ -0,0 +1,87 @@
1
+ /* Plan Activity */
2
+ .rf-plan-activity__list {
3
+ list-style: none;
4
+ padding: 0;
5
+ margin: 0;
6
+ }
7
+ .rf-plan-activity__entry {
8
+ display: flex;
9
+ align-items: baseline;
10
+ gap: 0.5rem;
11
+ padding: 0.25rem 0.5rem;
12
+ border-radius: var(--rf-radius-sm);
13
+ font-size: 0.8125rem;
14
+ }
15
+ .rf-plan-activity__entry:nth-child(odd) {
16
+ background: var(--rf-color-surface);
17
+ }
18
+ .rf-plan-activity__date {
19
+ font-family: var(--rf-font-mono);
20
+ font-size: 0.75rem;
21
+ color: var(--rf-color-muted);
22
+ white-space: nowrap;
23
+ }
24
+ .rf-plan-activity__type {
25
+ font-size: 0.75rem;
26
+ text-transform: uppercase;
27
+ letter-spacing: 0.05em;
28
+ color: var(--rf-color-muted);
29
+ min-width: 4rem;
30
+ }
31
+ .rf-plan-activity__id {
32
+ font-family: var(--rf-font-mono);
33
+ font-size: 0.75rem;
34
+ color: var(--rf-color-primary);
35
+ white-space: nowrap;
36
+ }
37
+ .rf-plan-activity__status {
38
+ font-size: 0.75rem;
39
+ padding: 0.0625rem 0.375rem;
40
+ border-radius: var(--rf-radius-sm);
41
+ white-space: nowrap;
42
+ }
43
+
44
+ /* Status badge colors */
45
+ .rf-plan-activity__status[data-status="done"],
46
+ .rf-plan-activity__status[data-status="fixed"],
47
+ .rf-plan-activity__status[data-status="accepted"] {
48
+ color: var(--rf-color-success);
49
+ background: var(--rf-color-success-bg);
50
+ }
51
+ .rf-plan-activity__status[data-status="in-progress"],
52
+ .rf-plan-activity__status[data-status="confirmed"],
53
+ .rf-plan-activity__status[data-status="review"] {
54
+ color: var(--rf-color-warning);
55
+ background: var(--rf-color-warning-bg);
56
+ }
57
+ .rf-plan-activity__status[data-status="ready"],
58
+ .rf-plan-activity__status[data-status="reported"],
59
+ .rf-plan-activity__status[data-status="proposed"] {
60
+ color: var(--rf-color-info);
61
+ background: var(--rf-color-info-bg);
62
+ }
63
+ .rf-plan-activity__status[data-status="blocked"] {
64
+ color: var(--rf-color-danger);
65
+ background: var(--rf-color-danger-bg);
66
+ }
67
+ .rf-plan-activity__status[data-status="draft"] {
68
+ color: var(--rf-color-muted);
69
+ background: var(--rf-color-surface-active);
70
+ }
71
+ .rf-plan-activity__title {
72
+ color: var(--rf-color-text);
73
+ overflow: hidden;
74
+ text-overflow: ellipsis;
75
+ white-space: nowrap;
76
+ }
77
+ .rf-plan-activity__link {
78
+ display: flex;
79
+ align-items: baseline;
80
+ gap: 0.5rem;
81
+ color: inherit;
82
+ text-decoration: none;
83
+ width: 100%;
84
+ }
85
+ .rf-plan-activity__link:hover .rf-plan-activity__title {
86
+ color: var(--rf-color-primary);
87
+ }
@@ -0,0 +1,69 @@
1
+ /* Plan Progress */
2
+ .rf-plan-progress {
3
+ background: var(--rf-color-surface);
4
+ border: 1px solid var(--rf-color-border);
5
+ border-radius: var(--rf-radius-md);
6
+ padding: 0.75rem 1.25rem;
7
+ }
8
+ .rf-plan-progress__row {
9
+ display: flex;
10
+ align-items: baseline;
11
+ gap: 0.5rem;
12
+ padding-block: 0.25rem;
13
+ }
14
+ .rf-plan-progress__row + .rf-plan-progress__row {
15
+ border-block-start: 1px solid var(--rf-color-border);
16
+ }
17
+ .rf-plan-progress__label {
18
+ font-weight: 600;
19
+ font-size: 0.8125rem;
20
+ color: var(--rf-color-text);
21
+ min-width: 8rem;
22
+ }
23
+ .rf-plan-progress__counts {
24
+ display: flex;
25
+ flex-wrap: wrap;
26
+ gap: 0.25rem 0.5rem;
27
+ }
28
+ .rf-plan-progress__count {
29
+ font-size: 0.75rem;
30
+ padding: 0.125rem 0.5rem;
31
+ border-radius: var(--rf-radius-sm);
32
+ white-space: nowrap;
33
+ }
34
+
35
+ /* Status-colored counts */
36
+ .rf-plan-progress__count[data-status="done"],
37
+ .rf-plan-progress__count[data-status="fixed"],
38
+ .rf-plan-progress__count[data-status="accepted"],
39
+ .rf-plan-progress__count[data-status="active"],
40
+ .rf-plan-progress__count[data-status="complete"] {
41
+ color: var(--rf-color-success);
42
+ background: var(--rf-color-success-bg);
43
+ }
44
+ .rf-plan-progress__count[data-status="in-progress"],
45
+ .rf-plan-progress__count[data-status="confirmed"],
46
+ .rf-plan-progress__count[data-status="review"] {
47
+ color: var(--rf-color-warning);
48
+ background: var(--rf-color-warning-bg);
49
+ }
50
+ .rf-plan-progress__count[data-status="ready"],
51
+ .rf-plan-progress__count[data-status="reported"],
52
+ .rf-plan-progress__count[data-status="proposed"],
53
+ .rf-plan-progress__count[data-status="planning"] {
54
+ color: var(--rf-color-info);
55
+ background: var(--rf-color-info-bg);
56
+ }
57
+ .rf-plan-progress__count[data-status="blocked"] {
58
+ color: var(--rf-color-danger);
59
+ background: var(--rf-color-danger-bg);
60
+ }
61
+ .rf-plan-progress__count[data-status="draft"],
62
+ .rf-plan-progress__count[data-status="pending"],
63
+ .rf-plan-progress__count[data-status="superseded"],
64
+ .rf-plan-progress__count[data-status="deprecated"],
65
+ .rf-plan-progress__count[data-status="wontfix"],
66
+ .rf-plan-progress__count[data-status="duplicate"] {
67
+ color: var(--rf-color-muted);
68
+ background: var(--rf-color-surface-active);
69
+ }
@@ -1,52 +1,112 @@
1
1
  /* Playlist */
2
- .rf-playlist {
3
- margin: 1.5rem 0;
4
- }
5
2
 
6
- /* Header: title + description */
7
- .rf-playlist__header {
8
- display: flex;
3
+ /* Inner header (headline + description) inside content */
4
+ .rf-playlist__content > .rf-playlist__header {
9
5
  flex-direction: column;
10
- gap: 0.5rem;
11
- padding: 0 0 1rem;
12
- }
13
- .rf-playlist__header h1,
14
- .rf-playlist__header h2,
15
- .rf-playlist__header h3,
16
- .rf-playlist__header h4,
17
- .rf-playlist__header h5,
18
- .rf-playlist__header h6 {
6
+ align-items: flex-start;
7
+ gap: 0.25rem;
8
+ margin-bottom: 1rem;
9
+ }
10
+ .rf-playlist__headline {
19
11
  margin: 0;
20
- font-size: 1.25rem;
21
- font-weight: 700;
22
- color: var(--rf-color-text);
23
12
  }
24
- .rf-playlist__header p {
13
+ .rf-playlist__content > .rf-playlist__header p {
25
14
  margin: 0;
26
- font-size: 0.875rem;
15
+ font-size: 0.925rem;
27
16
  color: var(--rf-color-muted);
28
17
  line-height: 1.5;
29
18
  }
30
19
 
31
- /* Type badge */
32
- .rf-playlist__type-badge {
33
- display: inline-block;
34
- font-size: 0.7rem;
35
- font-weight: 600;
36
- text-transform: uppercase;
37
- letter-spacing: 0.05em;
38
- padding: 0.125rem 0.5rem;
39
- border-radius: var(--rf-radius-full);
40
- color: var(--rf-color-primary);
41
- background: color-mix(in srgb, var(--rf-color-primary) 10%, transparent);
42
- width: fit-content;
43
- }
44
-
45
20
  /* Tracks list wrapper */
46
21
  .rf-playlist__tracks {
47
22
  list-style: none;
48
23
  padding: 0;
49
- margin: 0.5rem 0 0;
24
+ margin: 0;
25
+ counter-reset: track;
26
+ border: 1px solid var(--rf-color-border);
27
+ border-radius: var(--rf-radius-md);
28
+ overflow: hidden;
29
+ }
30
+
31
+ /* Track items — override sequence dimension's absolute positioning */
32
+ .rf-playlist__tracks > li {
33
+ display: flex;
34
+ align-items: baseline;
35
+ gap: 0.75rem;
36
+ padding: 0.75rem 1.25rem;
37
+ padding-left: 1.25rem;
38
+ position: static;
39
+ transition: background 0.15s ease;
40
+ }
41
+ /* Hide meta elements from flex layout */
42
+ .rf-playlist__tracks > li > meta {
43
+ display: none;
44
+ }
45
+ .rf-playlist__tracks > li + li {
46
+ border-top: 1px solid var(--rf-color-border);
47
+ }
48
+ .rf-playlist__tracks > li:hover {
49
+ background: color-mix(in srgb, var(--rf-color-border) 15%, transparent);
50
+ }
51
+ .rf-playlist__tracks > li::before {
52
+ position: static;
53
+ width: auto;
54
+ height: auto;
55
+ min-width: 1.5rem;
56
+ font-size: 0.8rem;
57
+ font-variant-numeric: tabular-nums;
58
+ color: var(--rf-color-muted);
59
+ background: none;
60
+ border-radius: 0;
61
+ text-align: right;
62
+ flex-shrink: 0;
63
+ }
64
+
65
+ /* Track name */
66
+ .rf-playlist__tracks [data-name="track-name"] {
67
+ flex: 1;
68
+ font-size: 0.9375rem;
69
+ font-weight: 500;
70
+ color: var(--rf-color-text);
71
+ min-width: 0;
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ /* Track artist */
78
+ .rf-playlist__tracks [data-name="track-artist"] {
79
+ font-size: 0.8125rem;
80
+ color: var(--rf-color-muted);
81
+ flex-shrink: 0;
82
+ }
83
+ .rf-playlist__tracks [data-name="track-artist"]::before {
84
+ content: '\00b7';
85
+ margin-right: 0.5rem;
86
+ opacity: 0.5;
87
+ }
88
+
89
+ /* Track duration — pushed right */
90
+ .rf-playlist__tracks [data-name="track-duration"] {
91
+ font-size: 0.8125rem;
92
+ color: var(--rf-color-muted);
93
+ font-variant-numeric: tabular-nums;
94
+ flex-shrink: 0;
95
+ margin-left: auto;
96
+ min-width: 3rem;
97
+ text-align: right;
98
+ }
99
+
100
+ /* Track meta (date etc.) */
101
+ .rf-playlist__tracks [data-name="track-meta"] {
102
+ font-size: 0.75rem;
103
+ color: var(--rf-color-muted);
104
+ flex-shrink: 0;
105
+ }
106
+ .rf-playlist__tracks [data-name="track-meta"]::before {
107
+ content: '\00b7';
108
+ margin-right: 0.5rem;
109
+ opacity: 0.5;
50
110
  }
51
111
 
52
112
  /* Player area */
@@ -55,58 +115,16 @@
55
115
  margin-top: 0.5rem;
56
116
  }
57
117
 
58
- /* Media zone — cover art */
59
- .rf-playlist__media {
60
- border-radius: var(--rf-radius-lg);
61
- overflow: hidden;
62
- }
118
+ /* Media zone — domain-specific cover art overrides (base styles in split.css) */
63
119
  .rf-playlist__media img {
64
- display: block;
65
- width: 100%;
66
- height: auto;
67
- border-radius: var(--rf-radius-lg);
68
120
  aspect-ratio: 1;
69
121
  object-fit: cover;
70
122
  }
71
123
 
72
- /* Split layout shared */
73
- .rf-playlist[data-layout="split"],
74
- .rf-playlist[data-layout="split-reverse"] {
75
- display: grid;
76
- grid-template-columns: var(--split-ratio, 1fr 1fr);
77
- gap: var(--split-gap, 2rem);
78
- align-items: var(--split-valign, start);
79
- }
80
- /* Split: content left (col 1), media right (col 2) — DOM order is media first */
81
- .rf-playlist[data-layout="split"] > .rf-playlist__content {
82
- grid-column: 1;
83
- grid-row: 2;
84
- }
85
- .rf-playlist[data-layout="split"] > .rf-playlist__media {
86
- grid-column: 2;
87
- grid-row: 2;
88
- }
89
- /* Split-reverse: media left (col 1), content right (col 2) — matches DOM order */
90
- /* Type badge spans full width in split layouts */
91
- .rf-playlist[data-layout="split"] > .rf-playlist__type-badge,
92
- .rf-playlist[data-layout="split-reverse"] > .rf-playlist__type-badge {
93
- grid-column: 1 / -1;
94
- }
95
- /* Collapse to single column on small screens */
96
- @media (max-width: 640px) {
97
- .rf-playlist[data-layout="split"],
98
- .rf-playlist[data-layout="split-reverse"] {
99
- grid-template-columns: 1fr;
100
- }
101
- .rf-playlist[data-layout="split"] > .rf-playlist__content,
102
- .rf-playlist[data-layout="split"] > .rf-playlist__media {
103
- grid-column: auto;
104
- grid-row: auto;
124
+ /* Hide secondary columns on narrow screens */
125
+ @media (max-width: 480px) {
126
+ .rf-playlist__tracks [data-name="track-artist"],
127
+ .rf-playlist__tracks [data-name="track-meta"] {
128
+ display: none;
105
129
  }
106
130
  }
107
-
108
- /* Split layout media gets subtle depth */
109
- .rf-playlist[data-layout="split"] .rf-playlist__media img,
110
- .rf-playlist[data-layout="split-reverse"] .rf-playlist__media img {
111
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
112
- }
@@ -1,6 +1,5 @@
1
1
  /* Plot */
2
2
  .rf-plot {
3
- margin: 1.5rem 0;
4
3
  display: flex;
5
4
  flex-direction: column;
6
5
  }
@@ -10,30 +9,8 @@
10
9
  font-weight: 700;
11
10
  margin-bottom: 0.5rem;
12
11
  color: var(--rf-color-heading);
13
- order: -1;
14
12
  }
15
13
 
16
- /* Meta bar — surface strip */
17
- .rf-plot__badge {
18
- display: flex;
19
- flex-wrap: wrap;
20
- gap: 0.75rem 1.25rem;
21
- align-items: center;
22
- background: var(--rf-color-surface);
23
- border-radius: var(--rf-radius-md);
24
- padding: 0.625rem 1rem;
25
- margin-bottom: 1rem;
26
- }
27
- .rf-plot__type-badge,
28
- .rf-plot__structure-badge {
29
- font-size: 0.8125rem;
30
- font-weight: 500;
31
- text-transform: capitalize;
32
- color: var(--rf-color-muted);
33
- }
34
- .rf-plot__type-badge::before { content: 'Type: '; font-weight: 400; opacity: 0.65; }
35
- .rf-plot__structure-badge::before { content: 'Structure: '; font-weight: 400; opacity: 0.65; }
36
-
37
14
  /* Description */
38
15
  .rf-plot > p {
39
16
  color: var(--rf-color-muted);
@@ -3,19 +3,6 @@
3
3
  margin: 2rem 0;
4
4
  }
5
5
 
6
- /* Width variants */
7
- @container (min-width: 1008px) {
8
- .rf-preview[data-width="wide"] {
9
- width: calc(100% + 8rem);
10
- margin-left: -4rem;
11
- max-width: 76rem;
12
- }
13
- }
14
- .rf-preview[data-width="full"] {
15
- width: 100vw;
16
- margin-left: calc(-50vw + 50%);
17
- }
18
-
19
6
  /* Toolbar — transparent, controls float above the canvas */
20
7
  .rf-preview__toolbar {
21
8
  display: flex;
@@ -79,7 +66,7 @@
79
66
  box-shadow: var(--rf-shadow-xs);
80
67
  }
81
68
 
82
- /* Canvas — bordered frame for the preview content */
69
+ /* Canvas — framed area for the preview content */
83
70
  .rf-preview__canvas {
84
71
  padding: 2rem 2.5rem;
85
72
  background: var(--rf-color-bg);
@@ -170,7 +157,7 @@
170
157
  }
171
158
 
172
159
  /* Small containers: edge-to-edge bleed */
173
- @container (max-width: 1008px) {
160
+ @container (max-width: 1280px) {
174
161
  .rf-preview__toolbar {
175
162
  padding: 0.25rem var(--rf-content-padding, 1.5rem) 0.5rem;
176
163
  }
@@ -182,7 +169,12 @@
182
169
  }
183
170
  .rf-preview__source {
184
171
  border-radius: 0;
185
- border-left: none;
186
- border-right: none;
172
+ }
173
+ /* Break out of feature's padding-inline to reach viewport edges */
174
+ .rf-preview--in-feature {
175
+ margin-inline: calc(-1 * var(--rf-content-gutter, 1.5rem));
176
+ }
177
+ .rf-preview--in-feature .rf-preview__toolbar {
178
+ padding-inline: var(--rf-content-gutter, 1.5rem);
187
179
  }
188
180
  }
@@ -3,7 +3,10 @@
3
3
  padding: 2rem 0;
4
4
  }
5
5
  .rf-pricing > header,
6
- .rf-pricing__header {
6
+ .rf-pricing__preamble {
7
+ flex-direction: column;
8
+ align-items: flex-start;
9
+ gap: 0.25rem;
7
10
  text-align: center;
8
11
  margin-bottom: 2rem;
9
12
  }