@refrakt-md/lumina 0.21.0 → 0.23.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 (131) hide show
  1. package/base.css +2 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +7 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/tokens.d.ts +5 -3
  6. package/dist/tokens.d.ts.map +1 -1
  7. package/dist/tokens.js +44 -3
  8. package/dist/tokens.js.map +1 -1
  9. package/index.css +11 -1
  10. package/package.json +7 -5
  11. package/styles/base/attributes.css +6 -7
  12. package/styles/dimensions/checklist.css +7 -36
  13. package/styles/dimensions/cover.css +13 -95
  14. package/styles/dimensions/density.css +6 -3
  15. package/styles/dimensions/frame.css +7 -4
  16. package/styles/dimensions/media.css +14 -61
  17. package/styles/dimensions/metadata.css +30 -80
  18. package/styles/dimensions/sections.css +16 -30
  19. package/styles/dimensions/sequence.css +17 -82
  20. package/styles/dimensions/state.css +39 -56
  21. package/styles/dimensions/substrate.css +3 -0
  22. package/styles/dimensions/surfaces.css +73 -113
  23. package/styles/elements/blockquote.css +3 -2
  24. package/styles/elements/code.css +3 -0
  25. package/styles/elements/table.css +3 -0
  26. package/styles/global.css +24 -63
  27. package/styles/layouts/blog.css +34 -95
  28. package/styles/layouts/default.css +12 -86
  29. package/styles/layouts/docs.css +9 -159
  30. package/styles/layouts/mobile.css +3 -52
  31. package/styles/layouts/on-this-page.css +8 -7
  32. package/styles/layouts/plan.css +27 -158
  33. package/styles/layouts/search.css +17 -82
  34. package/styles/layouts/split.css +24 -169
  35. package/styles/layouts/theme-toggle.css +3 -29
  36. package/styles/layouts/version-switcher.css +9 -10
  37. package/styles/runes/accordion.css +25 -68
  38. package/styles/runes/aggregate.css +4 -13
  39. package/styles/runes/annotate.css +11 -40
  40. package/styles/runes/api.css +4 -1
  41. package/styles/runes/audio.css +12 -50
  42. package/styles/runes/badge.css +5 -2
  43. package/styles/runes/bar.css +3 -0
  44. package/styles/runes/bento.css +18 -161
  45. package/styles/runes/bg.css +3 -37
  46. package/styles/runes/blog.css +18 -20
  47. package/styles/runes/bond.css +6 -26
  48. package/styles/runes/breadcrumb.css +7 -15
  49. package/styles/runes/budget.css +23 -45
  50. package/styles/runes/bug.css +5 -2
  51. package/styles/runes/card.css +27 -95
  52. package/styles/runes/cast.css +10 -27
  53. package/styles/runes/changelog.css +13 -17
  54. package/styles/runes/character.css +6 -20
  55. package/styles/runes/chart.css +15 -57
  56. package/styles/runes/codegroup.css +18 -26
  57. package/styles/runes/collection.css +8 -85
  58. package/styles/runes/compare.css +8 -19
  59. package/styles/runes/comparison.css +29 -56
  60. package/styles/runes/conversation.css +9 -31
  61. package/styles/runes/cta.css +17 -40
  62. package/styles/runes/datatable.css +33 -48
  63. package/styles/runes/decision.css +5 -2
  64. package/styles/runes/design-context.css +5 -4
  65. package/styles/runes/details.css +9 -17
  66. package/styles/runes/diagram.css +8 -16
  67. package/styles/runes/diff.css +11 -94
  68. package/styles/runes/drawer.css +9 -113
  69. package/styles/runes/embed.css +5 -13
  70. package/styles/runes/event.css +5 -3
  71. package/styles/runes/expand.css +10 -45
  72. package/styles/runes/faction.css +6 -12
  73. package/styles/runes/feature.css +15 -43
  74. package/styles/runes/figure.css +7 -26
  75. package/styles/runes/file-ref.css +3 -18
  76. package/styles/runes/form.css +19 -48
  77. package/styles/runes/gallery.css +8 -140
  78. package/styles/runes/grid.css +4 -56
  79. package/styles/runes/hero.css +28 -140
  80. package/styles/runes/hint.css +23 -48
  81. package/styles/runes/howto.css +9 -31
  82. package/styles/runes/itinerary.css +15 -44
  83. package/styles/runes/juxtapose.css +17 -92
  84. package/styles/runes/lore.css +7 -14
  85. package/styles/runes/map.css +9 -42
  86. package/styles/runes/mediatext.css +4 -45
  87. package/styles/runes/milestone.css +15 -28
  88. package/styles/runes/mockup.css +10 -115
  89. package/styles/runes/nav.css +37 -212
  90. package/styles/runes/organization.css +6 -5
  91. package/styles/runes/page-section.css +3 -4
  92. package/styles/runes/pagination.css +10 -42
  93. package/styles/runes/palette.css +16 -35
  94. package/styles/runes/placeholder.css +16 -0
  95. package/styles/runes/plan-history.css +23 -43
  96. package/styles/runes/plan-progress.css +6 -7
  97. package/styles/runes/plan-ref.css +4 -1
  98. package/styles/runes/playlist.css +10 -44
  99. package/styles/runes/plot.css +9 -25
  100. package/styles/runes/preview.css +9 -34
  101. package/styles/runes/pricing.css +23 -41
  102. package/styles/runes/progress.css +8 -27
  103. package/styles/runes/pullquote.css +9 -31
  104. package/styles/runes/realm.css +6 -12
  105. package/styles/runes/recipe.css +12 -36
  106. package/styles/runes/relationships.css +5 -36
  107. package/styles/runes/reveal.css +17 -22
  108. package/styles/runes/sandbox.css +9 -39
  109. package/styles/runes/section.css +10 -24
  110. package/styles/runes/showcase.css +3 -20
  111. package/styles/runes/sidenote.css +5 -4
  112. package/styles/runes/snippet.css +3 -0
  113. package/styles/runes/spacing.css +14 -33
  114. package/styles/runes/spec.css +5 -2
  115. package/styles/runes/steps.css +14 -46
  116. package/styles/runes/storyboard.css +4 -19
  117. package/styles/runes/swatch.css +4 -7
  118. package/styles/runes/symbol.css +16 -14
  119. package/styles/runes/tabs.css +15 -18
  120. package/styles/runes/testimonial.css +12 -13
  121. package/styles/runes/textblock.css +6 -24
  122. package/styles/runes/timeline.css +10 -28
  123. package/styles/runes/tint.css +3 -0
  124. package/styles/runes/toc.css +9 -7
  125. package/styles/runes/track.css +12 -41
  126. package/styles/runes/typography.css +15 -27
  127. package/styles/runes/work.css +5 -2
  128. package/styles/runes/xref.css +3 -1
  129. package/tokens/base.css +56 -66
  130. package/tokens/dark.css +79 -80
  131. package/styles/dimensions/guest-posture.css +0 -27
@@ -1,42 +1,20 @@
1
+ @layer skin {
1
2
  /* Form */
2
3
  .rf-form {
3
- display: flex;
4
- flex-direction: column;
5
4
  gap: 1.25rem;
6
5
  max-width: none;
7
6
  }
8
7
  .rf-form__body {
9
- display: flex;
10
- flex-direction: column;
11
8
  gap: 1.25rem;
12
9
  }
13
- .rf-form meta { display: none; }
14
- /* Honeypot */
15
- .rf-form__hp {
16
- position: absolute;
17
- left: -9999px;
18
- opacity: 0;
19
- height: 0;
20
- overflow: hidden;
21
- }
22
10
  /* Inline variant */
23
11
  .rf-form--inline .rf-form__body {
24
- flex-direction: row;
25
- flex-wrap: wrap;
26
- align-items: flex-end;
27
12
  gap: 0.75rem;
28
13
  }
29
- .rf-form--inline .rf-form-field {
30
- flex: 1;
31
- min-width: 10rem;
32
- }
33
- .rf-form--inline .rf-form__submit {
34
- align-self: flex-end;
35
- }
36
14
  /* Compact variant */
37
15
  .rf-form--compact {
38
16
  gap: 0.75rem;
39
- font-size: 0.875rem;
17
+ font-size: var(--rf-text-sm);
40
18
  }
41
19
  .rf-form--compact .rf-form__body {
42
20
  gap: 0.75rem;
@@ -45,17 +23,15 @@
45
23
  .rf-form--compact textarea,
46
24
  .rf-form--compact select {
47
25
  padding: 0.375rem 0.625rem;
48
- font-size: 0.8125rem;
26
+ font-size: var(--rf-text-sm);
49
27
  }
50
28
  /* Field */
51
29
  .rf-form-field {
52
- display: flex;
53
- flex-direction: column;
54
30
  gap: 0.375rem;
55
31
  }
56
32
  .rf-form-field label {
57
- font-size: 0.875rem;
58
- font-weight: 600;
33
+ font-size: var(--rf-text-sm);
34
+ font-weight: var(--rf-weight-semibold);
59
35
  color: var(--rf-color-text);
60
36
  }
61
37
  .rf-form-field__required {
@@ -68,13 +44,11 @@
68
44
  padding: 0.5rem 0.75rem;
69
45
  border: 1px solid var(--rf-color-border);
70
46
  border-radius: var(--rf-radius-md);
71
- font-size: 0.9375rem;
47
+ font-size: var(--rf-text);
72
48
  font-family: inherit;
73
49
  color: var(--rf-color-text);
74
50
  background: var(--rf-color-bg);
75
51
  transition: border-color 0.15s, box-shadow 0.15s;
76
- width: 100%;
77
- box-sizing: border-box;
78
52
  }
79
53
  .rf-form-field input:focus,
80
54
  .rf-form-field textarea:focus,
@@ -85,7 +59,6 @@
85
59
  }
86
60
  .rf-form-field textarea {
87
61
  resize: vertical;
88
- min-height: 6rem;
89
62
  }
90
63
  /* Fieldset */
91
64
  .rf-form-fieldset {
@@ -94,8 +67,8 @@
94
67
  margin: 0.5rem 0 0;
95
68
  }
96
69
  .rf-form-fieldset legend {
97
- font-size: 1.0625rem;
98
- font-weight: 700;
70
+ font-size: var(--rf-text-lg);
71
+ font-weight: var(--rf-weight-bold);
99
72
  color: var(--rf-color-text);
100
73
  padding: 0;
101
74
  margin-bottom: 0.75rem;
@@ -106,22 +79,19 @@
106
79
  padding: 0;
107
80
  }
108
81
  .rf-form-choice-group legend {
109
- font-size: 0.875rem;
110
- font-weight: 600;
82
+ font-size: var(--rf-text-sm);
83
+ font-weight: var(--rf-weight-semibold);
111
84
  color: var(--rf-color-text);
112
85
  padding: 0;
113
86
  margin-bottom: 0.5rem;
114
87
  }
115
88
  .rf-form-choice {
116
- display: flex;
117
- align-items: center;
118
89
  gap: 0.5rem;
119
90
  padding: 0.375rem 0;
120
91
  cursor: pointer;
121
- font-size: 0.9375rem;
92
+ font-size: var(--rf-text);
122
93
  }
123
94
  .rf-form-choice input {
124
- width: auto;
125
95
  margin: 0;
126
96
  accent-color: var(--rf-color-primary);
127
97
  }
@@ -132,11 +102,10 @@
132
102
  color: white;
133
103
  border: none;
134
104
  border-radius: var(--rf-radius-md);
135
- font-size: 0.9375rem;
136
- font-weight: 600;
105
+ font-size: var(--rf-text);
106
+ font-weight: var(--rf-weight-semibold);
137
107
  cursor: pointer;
138
108
  transition: background 0.15s;
139
- align-self: flex-start;
140
109
  }
141
110
  .rf-form__submit:hover {
142
111
  background: color-mix(in srgb, var(--rf-color-primary) 85%, black);
@@ -146,13 +115,13 @@
146
115
  }
147
116
  /* Help & description */
148
117
  .rf-form__help {
149
- font-size: 0.8125rem;
118
+ font-size: var(--rf-text-sm);
150
119
  color: var(--rf-color-muted);
151
120
  font-style: italic;
152
121
  margin: 0;
153
122
  }
154
123
  .rf-form__text {
155
- font-size: 0.9375rem;
124
+ font-size: var(--rf-text);
156
125
  color: var(--rf-color-muted);
157
126
  margin: 0;
158
127
  }
@@ -166,8 +135,8 @@
166
135
  .rf-form__status {
167
136
  padding: 0.75rem 1rem;
168
137
  border-radius: var(--rf-radius-md);
169
- font-size: 0.875rem;
170
- font-weight: 500;
138
+ font-size: var(--rf-text-sm);
139
+ font-weight: var(--rf-weight-medium);
171
140
  }
172
141
  .rf-form__status--submitting {
173
142
  background: var(--rf-color-surface);
@@ -183,3 +152,5 @@
183
152
  color: var(--rf-color-danger);
184
153
  border: 1px solid color-mix(in srgb, var(--rf-color-danger) 25%, transparent);
185
154
  }
155
+
156
+ }
@@ -1,208 +1,76 @@
1
- /* Gallery — Multi-image container with grid/carousel/masonry layout.
2
- *
3
- * Thin-edge tile mosaic: a gallery is media all the way down (every child is an
4
- * image), so the outer padding is treated as a frame margin and locked to the
5
- * same value as the inter-item gap — outer = inter = a single visual rhythm.
6
- * Both are theme tokens (`--rf-gallery-edge` / `--rf-gallery-gap`), not author
7
- * attributes; the `gap` attribute was removed because aesthetic spacing is the
8
- * theme's concern. `columns` stays an author attribute — that's content density,
9
- * not aesthetics. */
1
+ @layer skin {
2
+ /* Gallery — skin. The grid/carousel/masonry layouts, item/lightbox/nav positioning,
3
+ * and responsive columns live in @refrakt-md/skeleton (styles/runes/gallery.css). */
10
4
  .rf-gallery {
11
- position: relative;
12
5
  margin: 0;
13
6
  --rf-gallery-edge: 0.5rem;
14
7
  --rf-gallery-gap: 0.5rem;
15
8
  padding: var(--rf-gallery-edge);
16
9
  }
17
-
18
- /* Layout modifier classes */
19
- .rf-gallery--grid {}
20
- .rf-gallery--carousel {}
21
- .rf-gallery--masonry {}
22
-
23
- /* Items container — grid layout by default */
24
10
  .rf-gallery__items {
25
- display: grid;
26
- grid-template-columns: repeat(var(--gallery-columns, 3), 1fr);
27
11
  gap: var(--rf-gallery-gap);
28
12
  }
29
-
30
- /* Individual gallery items */
31
13
  .rf-gallery__item {
32
- position: relative;
33
- overflow: hidden;
34
14
  border-radius: var(--rf-radius-md);
35
15
  margin: 0;
36
16
  }
37
- .rf-gallery__item img {
38
- width: 100%;
39
- height: 100%;
40
- object-fit: cover;
41
- display: block;
42
- }
43
17
  .rf-gallery__item figcaption {
44
- position: absolute;
45
- bottom: 0;
46
- left: 0;
47
- right: 0;
48
18
  padding: 0.5rem 0.75rem;
49
19
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
50
20
  color: white;
51
- font-size: 0.825rem;
21
+ font-size: var(--rf-text-sm);
52
22
  }
53
-
54
- /* Gallery caption */
55
23
  .rf-gallery > figcaption {
56
24
  margin-top: 0.625rem;
57
- font-size: 0.825rem;
25
+ font-size: var(--rf-text-sm);
58
26
  color: var(--rf-color-muted);
59
27
  text-align: center;
60
28
  font-style: italic;
61
29
  }
62
-
63
- /* Carousel layout */
64
- .rf-gallery[data-layout="carousel"] .rf-gallery__items {
65
- display: flex;
66
- overflow-x: auto;
67
- scroll-snap-type: x mandatory;
68
- -webkit-overflow-scrolling: touch;
69
- }
70
- .rf-gallery[data-layout="carousel"] .rf-gallery__item {
71
- flex: 0 0 calc(100% / var(--gallery-columns, 3));
72
- scroll-snap-align: start;
73
- }
74
-
75
- /* Carousel nav buttons */
76
30
  .rf-gallery__nav {
77
- position: absolute;
78
- top: 50%;
79
- transform: translateY(-50%);
80
- z-index: 2;
81
- width: 2.5rem;
82
- height: 2.5rem;
83
31
  border-radius: 50%;
84
32
  border: none;
85
33
  background: var(--rf-color-surface);
86
34
  color: var(--rf-color-text);
87
35
  box-shadow: var(--rf-shadow-md);
88
36
  cursor: pointer;
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- font-size: 1.25rem;
37
+ font-size: var(--rf-text-xl);
93
38
  opacity: 0.8;
94
39
  transition: opacity 0.2s;
95
40
  }
96
41
  .rf-gallery__nav:hover {
97
42
  opacity: 1;
98
43
  }
99
- /* Inset the carousel nav buttons from the image edge by the same 0.5rem the
100
- * gallery uses as its thin-edge frame, so the buttons overlap onto the image
101
- * slightly rather than sitting flush against it. The gallery's outer padding
102
- * already inserts 0.5rem between gallery border and image, so the total offset
103
- * from the gallery border is `edge + 0.5rem` = 1rem. */
104
- .rf-gallery__nav--prev {
105
- left: calc(var(--rf-gallery-edge) + 0.5rem);
106
- }
107
- .rf-gallery__nav--next {
108
- right: calc(var(--rf-gallery-edge) + 0.5rem);
109
- }
110
-
111
- /* Masonry layout — CSS multi-column flow gives true variable-height masonry in
112
- * every browser. (`grid-template-rows: masonry` is Firefox-only behind a flag
113
- * and silently falls back to uniform-height grid rows everywhere else, which is
114
- * why heights used to only vary in the collapsed single-column case.) Items
115
- * flow top-to-bottom inside each column, then move to the next column. */
116
44
  .rf-gallery[data-layout="masonry"] .rf-gallery__items {
117
- display: block;
118
- column-count: var(--gallery-columns, 3);
119
45
  column-gap: var(--rf-gallery-gap);
120
46
  }
121
47
  .rf-gallery[data-layout="masonry"] .rf-gallery__item {
122
- break-inside: avoid;
123
48
  margin-bottom: var(--rf-gallery-gap);
124
49
  }
125
- /* In masonry the row height isn't pinned, so let each image take its natural
126
- * height (grid mode keeps `height: 100%` for uniform tiles). */
127
- .rf-gallery[data-layout="masonry"] .rf-gallery__item img {
128
- height: auto;
129
- }
130
-
131
- /* Lightbox cursor hint */
132
50
  .rf-gallery[data-lightbox="true"] .rf-gallery__item {
133
51
  cursor: zoom-in;
134
52
  }
135
-
136
- /* Lightbox overlay */
137
53
  .rf-gallery__lightbox {
138
- position: fixed;
139
- inset: 0;
140
- z-index: 9999;
141
54
  background: rgba(0, 0, 0, 0.9);
142
- display: flex;
143
- align-items: center;
144
- justify-content: center;
145
55
  }
146
56
  .rf-gallery__lightbox img {
147
- max-width: 90vw;
148
- max-height: 90vh;
149
- object-fit: contain;
150
57
  border-radius: var(--rf-radius-md);
151
58
  }
152
59
  .rf-gallery__lightbox-close {
153
- position: absolute;
154
- top: 1rem;
155
- right: 1rem;
156
- width: 2.5rem;
157
- height: 2.5rem;
158
60
  border-radius: 50%;
159
61
  border: none;
160
62
  background: rgba(255, 255, 255, 0.15);
161
63
  color: white;
162
- font-size: 1.5rem;
64
+ font-size: var(--rf-text-2xl);
163
65
  cursor: pointer;
164
- display: flex;
165
- align-items: center;
166
- justify-content: center;
167
66
  }
168
67
  .rf-gallery__lightbox-nav {
169
- position: absolute;
170
- top: 50%;
171
- transform: translateY(-50%);
172
- width: 3rem;
173
- height: 3rem;
174
68
  border-radius: 50%;
175
69
  border: none;
176
70
  background: rgba(255, 255, 255, 0.15);
177
71
  color: white;
178
- font-size: 1.5rem;
72
+ font-size: var(--rf-text-2xl);
179
73
  cursor: pointer;
180
- display: flex;
181
- align-items: center;
182
- justify-content: center;
183
- }
184
- .rf-gallery__lightbox-nav--prev {
185
- left: 1rem;
186
- }
187
- .rf-gallery__lightbox-nav--next {
188
- right: 1rem;
189
74
  }
190
75
 
191
- /* Responsive: collapse columns on small screens. (Gap is theme-locked at all
192
- * widths — no override needed.) */
193
- @media (max-width: 768px) {
194
- .rf-gallery {
195
- --gallery-columns: 2 !important;
196
- }
197
- .rf-gallery[data-layout="carousel"] .rf-gallery__item {
198
- flex-basis: 80%;
199
- }
200
- }
201
- @media (max-width: 480px) {
202
- .rf-gallery {
203
- --gallery-columns: 1 !important;
204
- }
205
- .rf-gallery[data-layout="carousel"] .rf-gallery__item {
206
- flex-basis: 100%;
207
- }
208
76
  }
@@ -1,62 +1,10 @@
1
- /* Grid */
1
+ @layer skin {
2
+ /* Grid — skin. The grid system (tracks, columns, flow, spans, modes, aspect cells,
3
+ * collapse) lives in @refrakt-md/skeleton (styles/runes/grid.css). */
2
4
  .rf-grid [data-layout="grid"] {
3
- display: grid;
4
- grid-template-columns: var(--grid-ratio, repeat(auto-fit, minmax(250px, 1fr)));
5
- align-items: var(--grid-valign, stretch);
6
5
  gap: var(--grid-gap, 1.5rem);
7
6
  }
8
- /* Explicit column counts override auto-fit */
9
- .rf-grid [data-columns="1"] { grid-template-columns: 1fr; }
10
- .rf-grid [data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
11
- .rf-grid [data-columns="3"] { grid-template-columns: repeat(3, 1fr); }
12
- .rf-grid [data-columns="4"] { grid-template-columns: repeat(4, 1fr); }
13
- .rf-grid [data-columns="5"] { grid-template-columns: repeat(5, 1fr); }
14
- .rf-grid [data-columns="6"] { grid-template-columns: repeat(6, 1fr); }
15
- /* Flow */
16
- .rf-grid [data-flow="column"] { grid-auto-flow: column; }
17
- .rf-grid [data-flow="dense"] { grid-auto-flow: dense; }
18
- .rf-grid [data-flow="row dense"] { grid-auto-flow: row dense; }
19
- .rf-grid [data-flow="column dense"] { grid-auto-flow: column dense; }
20
- /* Spans */
21
- .rf-grid [data-colspan="2"] { grid-column: span 2; }
22
- .rf-grid [data-colspan="3"] { grid-column: span 3; }
23
- .rf-grid [data-colspan="4"] { grid-column: span 4; }
24
- .rf-grid [data-rowspan="2"] { grid-row: span 2; }
25
- .rf-grid [data-rowspan="3"] { grid-row: span 3; }
26
- .rf-grid [data-rowspan="4"] { grid-row: span 4; }
27
- /* Cell styling */
28
7
  .rf-grid [data-name="cell"] p:first-child { margin-top: 0; }
29
8
  .rf-grid [data-name="cell"] p:last-child { margin-bottom: 0; }
30
- /* Auto mode — responsive auto-fill */
31
- .rf-grid[data-mode="auto"] [data-layout="grid"] {
32
- grid-template-columns: repeat(auto-fill, minmax(var(--grid-min, 250px), 1fr));
33
- }
34
- /* Masonry mode — progressive enhancement */
35
- .rf-grid[data-mode="masonry"] [data-layout="grid"] {
36
- grid-template-rows: masonry;
37
- }
38
- /* Aspect ratio enforcement on cells */
39
- .rf-grid[data-aspect] [data-name="cell"] {
40
- aspect-ratio: var(--grid-aspect);
41
- overflow: hidden;
42
- }
43
- .rf-grid[data-aspect] [data-name="cell"] > img,
44
- .rf-grid[data-aspect] [data-name="cell"] > video {
45
- width: 100%;
46
- height: 100%;
47
- object-fit: cover;
48
- }
49
- /* Stack order when collapsed */
50
- .rf-grid[data-stack="reverse"] [data-name="cell"]:last-child {
51
- order: -1;
52
- }
53
- /* Collapse breakpoints */
54
- @media (max-width: 640px) {
55
- .rf-grid[data-collapse="sm"] [data-layout="grid"] { grid-template-columns: 1fr; }
56
- }
57
- @media (max-width: 768px) {
58
- .rf-grid[data-collapse="md"] [data-layout="grid"] { grid-template-columns: 1fr; }
59
- }
60
- @media (max-width: 1024px) {
61
- .rf-grid[data-collapse="lg"] [data-layout="grid"] { grid-template-columns: 1fr; }
9
+
62
10
  }