@refrakt-md/skeleton 0.33.0 → 0.35.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 (69) hide show
  1. package/index.css +102 -102
  2. package/package.json +2 -2
  3. package/styles/dimensions/checklist.css +1 -1
  4. package/styles/dimensions/cover.css +12 -3
  5. package/styles/dimensions/guest-posture.css +2 -1
  6. package/styles/dimensions/metadata.css +12 -4
  7. package/styles/dimensions/sequence.css +1 -1
  8. package/styles/global.css +52 -12
  9. package/styles/layouts/blog.css +89 -25
  10. package/styles/layouts/default.css +63 -18
  11. package/styles/layouts/docs.css +111 -29
  12. package/styles/layouts/mobile.css +24 -8
  13. package/styles/layouts/on-this-page.css +6 -2
  14. package/styles/layouts/plan.css +108 -32
  15. package/styles/layouts/search.css +27 -9
  16. package/styles/layouts/split.css +45 -13
  17. package/styles/runes/accordion.css +25 -9
  18. package/styles/runes/annotate.css +9 -4
  19. package/styles/runes/audio.css +3 -1
  20. package/styles/runes/bento.css +151 -41
  21. package/styles/runes/bond.css +2 -2
  22. package/styles/runes/breadcrumb.css +6 -2
  23. package/styles/runes/budget.css +3 -1
  24. package/styles/runes/card.css +32 -10
  25. package/styles/runes/cast.css +12 -4
  26. package/styles/runes/changelog.css +12 -4
  27. package/styles/runes/character.css +3 -1
  28. package/styles/runes/chart.css +10 -3
  29. package/styles/runes/codegroup.css +6 -2
  30. package/styles/runes/collection.css +7 -7
  31. package/styles/runes/compare.css +3 -1
  32. package/styles/runes/comparison.css +33 -12
  33. package/styles/runes/conversation.css +6 -2
  34. package/styles/runes/cta.css +1 -1
  35. package/styles/runes/details.css +7 -2
  36. package/styles/runes/drawer.css +4 -20
  37. package/styles/runes/feature.css +1 -1
  38. package/styles/runes/figure.css +22 -7
  39. package/styles/runes/file-ref.css +3 -1
  40. package/styles/runes/form.css +3 -1
  41. package/styles/runes/gallery.css +3 -1
  42. package/styles/runes/grid.css +57 -19
  43. package/styles/runes/hero.css +20 -7
  44. package/styles/runes/hint.css +20 -6
  45. package/styles/runes/itinerary.css +25 -9
  46. package/styles/runes/juxtapose.css +15 -5
  47. package/styles/runes/lore.css +6 -2
  48. package/styles/runes/map.css +17 -7
  49. package/styles/runes/mediatext.css +28 -10
  50. package/styles/runes/milestone.css +1 -1
  51. package/styles/runes/mockup.css +5 -2
  52. package/styles/runes/nav.css +10 -4
  53. package/styles/runes/plan-history.css +13 -5
  54. package/styles/runes/plot.css +14 -5
  55. package/styles/runes/preview.css +18 -6
  56. package/styles/runes/pricing.css +7 -3
  57. package/styles/runes/pullquote.css +12 -4
  58. package/styles/runes/relationships.css +7 -7
  59. package/styles/runes/reveal.css +4 -3
  60. package/styles/runes/sandbox.css +6 -2
  61. package/styles/runes/section.css +1 -1
  62. package/styles/runes/showcase.css +6 -2
  63. package/styles/runes/steps.css +16 -6
  64. package/styles/runes/storyboard.css +15 -6
  65. package/styles/runes/symbol.css +9 -3
  66. package/styles/runes/tabs.css +1 -1
  67. package/styles/runes/testimonial.css +6 -2
  68. package/styles/runes/textblock.css +9 -3
  69. package/styles/runes/timeline.css +14 -6
package/index.css CHANGED
@@ -28,120 +28,120 @@
28
28
  * { margin-bottom: 3rem }` would beat a rune header's tighter margin.) */
29
29
 
30
30
  /* ── Foundation ── */
31
- @import './styles/global.css' layer(skeleton);
31
+ @import "./styles/global.css" layer(skeleton);
32
32
 
33
33
  /* ── Dimension structure ── */
34
- @import './styles/dimensions/state.css' layer(skeleton);
35
- @import './styles/dimensions/media.css' layer(skeleton);
36
- @import './styles/dimensions/cover.css' layer(skeleton);
37
- @import './styles/dimensions/metadata.css' layer(skeleton);
38
- @import './styles/dimensions/sections.css' layer(skeleton);
39
- @import './styles/dimensions/reading.css' layer(skeleton);
40
- @import './styles/dimensions/checklist.css' layer(skeleton);
41
- @import './styles/dimensions/sequence.css' layer(skeleton);
42
- @import './styles/dimensions/guest-posture.css' layer(skeleton);
34
+ @import "./styles/dimensions/state.css" layer(skeleton);
35
+ @import "./styles/dimensions/media.css" layer(skeleton);
36
+ @import "./styles/dimensions/cover.css" layer(skeleton);
37
+ @import "./styles/dimensions/metadata.css" layer(skeleton);
38
+ @import "./styles/dimensions/sections.css" layer(skeleton);
39
+ @import "./styles/dimensions/reading.css" layer(skeleton);
40
+ @import "./styles/dimensions/checklist.css" layer(skeleton);
41
+ @import "./styles/dimensions/sequence.css" layer(skeleton);
42
+ @import "./styles/dimensions/guest-posture.css" layer(skeleton);
43
43
 
44
44
  /* ── Layout structure ── */
45
- @import './styles/layouts/split.css' layer(skeleton);
46
- @import './styles/layouts/default.css' layer(skeleton);
47
- @import './styles/layouts/docs.css' layer(skeleton);
48
- @import './styles/layouts/blog.css' layer(skeleton);
49
- @import './styles/layouts/mobile.css' layer(skeleton);
50
- @import './styles/layouts/on-this-page.css' layer(skeleton);
51
- @import './styles/layouts/search.css' layer(skeleton);
52
- @import './styles/layouts/theme-toggle.css' layer(skeleton);
53
- @import './styles/layouts/version-switcher.css' layer(skeleton);
54
- @import './styles/layouts/plan.css' layer(skeleton);
45
+ @import "./styles/layouts/split.css" layer(skeleton);
46
+ @import "./styles/layouts/default.css" layer(skeleton);
47
+ @import "./styles/layouts/docs.css" layer(skeleton);
48
+ @import "./styles/layouts/blog.css" layer(skeleton);
49
+ @import "./styles/layouts/mobile.css" layer(skeleton);
50
+ @import "./styles/layouts/on-this-page.css" layer(skeleton);
51
+ @import "./styles/layouts/search.css" layer(skeleton);
52
+ @import "./styles/layouts/theme-toggle.css" layer(skeleton);
53
+ @import "./styles/layouts/version-switcher.css" layer(skeleton);
54
+ @import "./styles/layouts/plan.css" layer(skeleton);
55
55
 
56
56
  /* ── Rune structure ── */
57
- @import './styles/runes/card.css' layer(skeleton);
58
- @import './styles/runes/hint.css' layer(skeleton);
59
- @import './styles/runes/steps.css' layer(skeleton);
60
- @import './styles/runes/pricing.css' layer(skeleton);
61
- @import './styles/runes/cta.css' layer(skeleton);
62
- @import './styles/runes/hero.css' layer(skeleton);
63
- @import './styles/runes/feature.css' layer(skeleton);
64
- @import './styles/runes/testimonial.css' layer(skeleton);
65
- @import './styles/runes/bento.css' layer(skeleton);
66
- @import './styles/runes/comparison.css' layer(skeleton);
67
- @import './styles/runes/symbol.css' layer(skeleton);
68
- @import './styles/runes/changelog.css' layer(skeleton);
69
- @import './styles/runes/tabs.css' layer(skeleton);
70
- @import './styles/runes/codegroup.css' layer(skeleton);
71
- @import './styles/runes/accordion.css' layer(skeleton);
72
- @import './styles/runes/details.css' layer(skeleton);
73
- @import './styles/runes/breadcrumb.css' layer(skeleton);
74
- @import './styles/runes/toc.css' layer(skeleton);
75
- @import './styles/runes/pagination.css' layer(skeleton);
76
- @import './styles/runes/reveal.css' layer(skeleton);
77
- @import './styles/runes/expand.css' layer(skeleton);
78
- @import './styles/runes/grid.css' layer(skeleton);
79
- @import './styles/runes/figure.css' layer(skeleton);
80
- @import './styles/runes/embed.css' layer(skeleton);
81
- @import './styles/runes/collection.css' layer(skeleton);
82
- @import './styles/runes/datatable.css' layer(skeleton);
83
- @import './styles/runes/sandbox.css' layer(skeleton);
84
- @import './styles/runes/conversation.css' layer(skeleton);
85
- @import './styles/runes/progress.css' layer(skeleton);
86
- @import './styles/runes/diagram.css' layer(skeleton);
87
- @import './styles/runes/gallery.css' layer(skeleton);
88
- @import './styles/runes/carousel.css' layer(skeleton);
89
- @import './styles/runes/diff.css' layer(skeleton);
90
- @import './styles/runes/chart.css' layer(skeleton);
91
- @import './styles/runes/juxtapose.css' layer(skeleton);
92
- @import './styles/runes/annotate.css' layer(skeleton);
93
- @import './styles/runes/drawer.css' layer(skeleton);
94
- @import './styles/runes/nav.css' layer(skeleton);
95
- @import './styles/runes/mockup.css' layer(skeleton);
57
+ @import "./styles/runes/card.css" layer(skeleton);
58
+ @import "./styles/runes/hint.css" layer(skeleton);
59
+ @import "./styles/runes/steps.css" layer(skeleton);
60
+ @import "./styles/runes/pricing.css" layer(skeleton);
61
+ @import "./styles/runes/cta.css" layer(skeleton);
62
+ @import "./styles/runes/hero.css" layer(skeleton);
63
+ @import "./styles/runes/feature.css" layer(skeleton);
64
+ @import "./styles/runes/testimonial.css" layer(skeleton);
65
+ @import "./styles/runes/bento.css" layer(skeleton);
66
+ @import "./styles/runes/comparison.css" layer(skeleton);
67
+ @import "./styles/runes/symbol.css" layer(skeleton);
68
+ @import "./styles/runes/changelog.css" layer(skeleton);
69
+ @import "./styles/runes/tabs.css" layer(skeleton);
70
+ @import "./styles/runes/codegroup.css" layer(skeleton);
71
+ @import "./styles/runes/accordion.css" layer(skeleton);
72
+ @import "./styles/runes/details.css" layer(skeleton);
73
+ @import "./styles/runes/breadcrumb.css" layer(skeleton);
74
+ @import "./styles/runes/toc.css" layer(skeleton);
75
+ @import "./styles/runes/pagination.css" layer(skeleton);
76
+ @import "./styles/runes/reveal.css" layer(skeleton);
77
+ @import "./styles/runes/expand.css" layer(skeleton);
78
+ @import "./styles/runes/grid.css" layer(skeleton);
79
+ @import "./styles/runes/figure.css" layer(skeleton);
80
+ @import "./styles/runes/embed.css" layer(skeleton);
81
+ @import "./styles/runes/collection.css" layer(skeleton);
82
+ @import "./styles/runes/datatable.css" layer(skeleton);
83
+ @import "./styles/runes/sandbox.css" layer(skeleton);
84
+ @import "./styles/runes/conversation.css" layer(skeleton);
85
+ @import "./styles/runes/progress.css" layer(skeleton);
86
+ @import "./styles/runes/diagram.css" layer(skeleton);
87
+ @import "./styles/runes/gallery.css" layer(skeleton);
88
+ @import "./styles/runes/carousel.css" layer(skeleton);
89
+ @import "./styles/runes/diff.css" layer(skeleton);
90
+ @import "./styles/runes/chart.css" layer(skeleton);
91
+ @import "./styles/runes/juxtapose.css" layer(skeleton);
92
+ @import "./styles/runes/annotate.css" layer(skeleton);
93
+ @import "./styles/runes/drawer.css" layer(skeleton);
94
+ @import "./styles/runes/nav.css" layer(skeleton);
95
+ @import "./styles/runes/mockup.css" layer(skeleton);
96
96
  /* ── Plugin: storytelling ── */
97
- @import './styles/runes/character.css' layer(skeleton);
98
- @import './styles/runes/realm.css' layer(skeleton);
99
- @import './styles/runes/faction.css' layer(skeleton);
100
- @import './styles/runes/lore.css' layer(skeleton);
101
- @import './styles/runes/plot.css' layer(skeleton);
102
- @import './styles/runes/bond.css' layer(skeleton);
103
- @import './styles/runes/storyboard.css' layer(skeleton);
97
+ @import "./styles/runes/character.css" layer(skeleton);
98
+ @import "./styles/runes/realm.css" layer(skeleton);
99
+ @import "./styles/runes/faction.css" layer(skeleton);
100
+ @import "./styles/runes/lore.css" layer(skeleton);
101
+ @import "./styles/runes/plot.css" layer(skeleton);
102
+ @import "./styles/runes/bond.css" layer(skeleton);
103
+ @import "./styles/runes/storyboard.css" layer(skeleton);
104
104
 
105
105
  /* ── Remaining core runes ── */
106
- @import './styles/runes/aggregate.css' layer(skeleton);
107
- @import './styles/runes/bg.css' layer(skeleton);
108
- @import './styles/runes/blog.css' layer(skeleton);
109
- @import './styles/runes/compare.css' layer(skeleton);
110
- @import './styles/runes/file-ref.css' layer(skeleton);
111
- @import './styles/runes/form.css' layer(skeleton);
112
- @import './styles/runes/mediatext.css' layer(skeleton);
113
- @import './styles/runes/page-section.css' layer(skeleton);
114
- @import './styles/runes/placeholder.css' layer(skeleton);
115
- @import './styles/runes/pullquote.css' layer(skeleton);
116
- @import './styles/runes/relationships.css' layer(skeleton);
117
- @import './styles/runes/section.css' layer(skeleton);
118
- @import './styles/runes/showcase.css' layer(skeleton);
119
- @import './styles/runes/textblock.css' layer(skeleton);
120
- @import './styles/runes/xref.css' layer(skeleton);
106
+ @import "./styles/runes/aggregate.css" layer(skeleton);
107
+ @import "./styles/runes/bg.css" layer(skeleton);
108
+ @import "./styles/runes/blog.css" layer(skeleton);
109
+ @import "./styles/runes/compare.css" layer(skeleton);
110
+ @import "./styles/runes/file-ref.css" layer(skeleton);
111
+ @import "./styles/runes/form.css" layer(skeleton);
112
+ @import "./styles/runes/mediatext.css" layer(skeleton);
113
+ @import "./styles/runes/page-section.css" layer(skeleton);
114
+ @import "./styles/runes/placeholder.css" layer(skeleton);
115
+ @import "./styles/runes/pullquote.css" layer(skeleton);
116
+ @import "./styles/runes/relationships.css" layer(skeleton);
117
+ @import "./styles/runes/section.css" layer(skeleton);
118
+ @import "./styles/runes/showcase.css" layer(skeleton);
119
+ @import "./styles/runes/textblock.css" layer(skeleton);
120
+ @import "./styles/runes/xref.css" layer(skeleton);
121
121
  /* ── Plugin: business ── */
122
- @import './styles/runes/cast.css' layer(skeleton);
123
- @import './styles/runes/organization.css' layer(skeleton);
124
- @import './styles/runes/timeline.css' layer(skeleton);
125
- @import './styles/runes/budget.css' layer(skeleton);
122
+ @import "./styles/runes/cast.css" layer(skeleton);
123
+ @import "./styles/runes/organization.css" layer(skeleton);
124
+ @import "./styles/runes/timeline.css" layer(skeleton);
125
+ @import "./styles/runes/budget.css" layer(skeleton);
126
126
  /* ── Plugin: places ── */
127
- @import './styles/runes/event.css' layer(skeleton);
128
- @import './styles/runes/map.css' layer(skeleton);
129
- @import './styles/runes/itinerary.css' layer(skeleton);
127
+ @import "./styles/runes/event.css" layer(skeleton);
128
+ @import "./styles/runes/map.css" layer(skeleton);
129
+ @import "./styles/runes/itinerary.css" layer(skeleton);
130
130
  /* ── Plugin: media ── */
131
- @import './styles/runes/playlist.css' layer(skeleton);
132
- @import './styles/runes/track.css' layer(skeleton);
133
- @import './styles/runes/audio.css' layer(skeleton);
131
+ @import "./styles/runes/playlist.css" layer(skeleton);
132
+ @import "./styles/runes/track.css" layer(skeleton);
133
+ @import "./styles/runes/audio.css" layer(skeleton);
134
134
  /* ── Plugin: learning ── */
135
- @import './styles/runes/howto.css' layer(skeleton);
136
- @import './styles/runes/recipe.css' layer(skeleton);
135
+ @import "./styles/runes/howto.css" layer(skeleton);
136
+ @import "./styles/runes/recipe.css" layer(skeleton);
137
137
  /* ── Plugin: design ── */
138
- @import './styles/runes/swatch.css' layer(skeleton);
139
- @import './styles/runes/palette.css' layer(skeleton);
140
- @import './styles/runes/typography.css' layer(skeleton);
141
- @import './styles/runes/spacing.css' layer(skeleton);
142
- @import './styles/runes/design-context.css' layer(skeleton);
143
- @import './styles/runes/preview.css' layer(skeleton);
138
+ @import "./styles/runes/swatch.css" layer(skeleton);
139
+ @import "./styles/runes/palette.css" layer(skeleton);
140
+ @import "./styles/runes/typography.css" layer(skeleton);
141
+ @import "./styles/runes/spacing.css" layer(skeleton);
142
+ @import "./styles/runes/design-context.css" layer(skeleton);
143
+ @import "./styles/runes/preview.css" layer(skeleton);
144
144
  /* ── Plugin: plan ── */
145
- @import './styles/runes/plan-progress.css' layer(skeleton);
146
- @import './styles/runes/milestone.css' layer(skeleton);
147
- @import './styles/runes/plan-history.css' layer(skeleton);
145
+ @import "./styles/runes/plan-progress.css" layer(skeleton);
146
+ @import "./styles/runes/milestone.css" layer(skeleton);
147
+ @import "./styles/runes/plan-history.css" layer(skeleton);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/skeleton",
3
3
  "description": "The structural cascade layer + layer-order contract every refrakt theme builds on — ships `@layer skeleton` and the `@layer skeleton, skin;` order declaration, plus the token-name contract",
4
- "version": "0.33.0",
4
+ "version": "0.35.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -29,7 +29,7 @@
29
29
  "styles"
30
30
  ],
31
31
  "dependencies": {
32
- "@refrakt-md/types": "0.33.0"
32
+ "@refrakt-md/types": "0.35.0"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsc"
@@ -14,7 +14,7 @@
14
14
 
15
15
  /* Indicator base — positioned left of text (the box; its chrome is skin). */
16
16
  [data-checked]::before {
17
- content: '';
17
+ content: "";
18
18
  position: absolute;
19
19
  left: 0.125rem;
20
20
  top: 0.5em;
@@ -78,13 +78,22 @@
78
78
  }
79
79
 
80
80
  /* ── auto / unset placement — adapts to the cover region's orientation ── */
81
- [data-media-position="cover"]:not([data-cover-scope="header"]):is([data-content-place="auto"], :not([data-content-place])) > [data-name="content"],
82
- [data-cover-scope="header"]:is([data-content-place="auto"], :not([data-content-place])) > [data-name="cover-band"] > [data-name="preamble"] {
81
+ [data-media-position="cover"]:not([data-cover-scope="header"]):is(
82
+ [data-content-place="auto"],
83
+ :not([data-content-place])
84
+ ) > [data-name="content"],
85
+ [data-cover-scope="header"]:is([data-content-place="auto"], :not([data-content-place]))
86
+ > [data-name="cover-band"]
87
+ > [data-name="preamble"] {
83
88
  align-self: end;
84
89
  justify-self: stretch;
85
90
  }
86
91
  @container (min-aspect-ratio: 1 / 1) {
87
- [data-media-position="cover"]:not([data-cover-scope="header"]):is([data-content-place="auto"], :not([data-content-place])) > [data-name="content"] {
92
+ [data-media-position="cover"]:not([data-cover-scope="header"]):is(
93
+ [data-content-place="auto"],
94
+ :not([data-content-place])
95
+ )
96
+ > [data-name="content"] {
88
97
  align-self: center;
89
98
  justify-self: start;
90
99
  }
@@ -14,7 +14,8 @@
14
14
  [data-section="media"][data-guest-posture="presentational"] {
15
15
  pointer-events: none;
16
16
  }
17
- [data-section="media"][data-guest-posture="presentational"] :is(.rf-tabs__tabs, .rf-codegroup__tabs) {
17
+ [data-section="media"][data-guest-posture="presentational"]
18
+ :is(.rf-tabs__tabs, .rf-codegroup__tabs) {
18
19
  display: none;
19
20
  }
20
21
 
@@ -6,7 +6,9 @@
6
6
  * dimensions/metadata.css). */
7
7
 
8
8
  /* Rating — star-row is an inline flex row (the glyph + colours are skin). */
9
- [data-meta-type="rating"] { display: inline-flex; }
9
+ [data-meta-type="rating"] {
10
+ display: inline-flex;
11
+ }
10
12
 
11
13
  /* ── Layout: bar (SPEC-080) ──
12
14
  * Horizontal flex row of fields; wraps by default (`data-wrap="false"` keeps it
@@ -17,8 +19,12 @@
17
19
  flex-wrap: wrap;
18
20
  align-items: center;
19
21
  }
20
- [data-zone-layout="bar"][data-wrap="false"] { flex-wrap: nowrap; }
21
- [data-zone-layout="bar"] [data-align="end"] { margin-left: auto; }
22
+ [data-zone-layout="bar"][data-wrap="false"] {
23
+ flex-wrap: nowrap;
24
+ }
25
+ [data-zone-layout="bar"] [data-align="end"] {
26
+ margin-left: auto;
27
+ }
22
28
 
23
29
  /* ── Layout: definition-list ──
24
30
  * Each row stacks dt over dd; rows flow into auto-fit columns that collapse to a
@@ -32,7 +38,9 @@
32
38
  flex-direction: column;
33
39
  min-width: 0;
34
40
  }
35
- [data-zone-layout="definition-list"] dd { margin: 0; }
41
+ [data-zone-layout="definition-list"] dd {
42
+ margin: 0;
43
+ }
36
44
  /* Multi-value dd (fields with `splitOn`) renders a row of chips inside the cell. */
37
45
  [data-zone-layout="definition-list"] dd[data-multi-value] {
38
46
  display: flex;
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  [data-sequence="connected"] > li::before {
51
- content: '';
51
+ content: "";
52
52
  position: absolute;
53
53
  left: -0.4375rem;
54
54
  top: 0.25rem;
package/styles/global.css CHANGED
@@ -10,28 +10,68 @@
10
10
  * specificity within the same layer. In skin it would beat those resets
11
11
  * regardless of specificity, opening gaps at zone edges. */
12
12
 
13
- *, *::before, *::after { box-sizing: border-box; }
13
+ *,
14
+ *::before,
15
+ *::after {
16
+ box-sizing: border-box;
17
+ }
14
18
 
15
- body { margin: 0; }
19
+ body {
20
+ margin: 0;
21
+ }
16
22
 
17
23
  /* Consumed meta tags never render. */
18
- meta { display: none; }
24
+ meta {
25
+ display: none;
26
+ }
19
27
 
20
28
  /* Heading + paragraph vertical rhythm. */
21
- h1, h2, h3, h4, h5, h6 { margin-top: 2em; margin-bottom: 0.5em; }
22
- p { margin-top: 0; margin-bottom: 1rem; }
23
- hr { margin: 2rem 0; }
29
+ h1,
30
+ h2,
31
+ h3,
32
+ h4,
33
+ h5,
34
+ h6 {
35
+ margin-top: 2em;
36
+ margin-bottom: 0.5em;
37
+ }
38
+ p {
39
+ margin-top: 0;
40
+ margin-bottom: 1rem;
41
+ }
42
+ hr {
43
+ margin: 2rem 0;
44
+ }
24
45
 
25
46
  /* Lists — indent + rhythm (rune list resets override these in-layer). */
26
- ul, ol { padding-left: 1.5rem; margin-top: 0; margin-bottom: 1rem; }
27
- li { margin-bottom: 0.25rem; }
28
- li > p { margin-bottom: 0.5rem; }
47
+ ul,
48
+ ol {
49
+ padding-left: 1.5rem;
50
+ margin-top: 0;
51
+ margin-bottom: 1rem;
52
+ }
53
+ li {
54
+ margin-bottom: 0.25rem;
55
+ }
56
+ li > p {
57
+ margin-bottom: 0.5rem;
58
+ }
29
59
 
30
60
  /* Responsive image constraint. */
31
- img { max-width: 100%; height: auto; }
61
+ img {
62
+ max-width: 100%;
63
+ height: auto;
64
+ }
32
65
 
33
66
  /* Code block scroll + rhythm (its surface treatment is skin). */
34
- pre { overflow-x: auto; margin: 1.5rem 0; }
67
+ pre {
68
+ overflow-x: auto;
69
+ margin: 1.5rem 0;
70
+ }
35
71
 
36
72
  /* Table layout + rhythm (cell treatment is skin). */
37
- table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
73
+ table {
74
+ width: 100%;
75
+ border-collapse: collapse;
76
+ margin: 1.5rem 0;
77
+ }
@@ -5,36 +5,100 @@
5
5
  * borders, type, padding, and gaps are skin. */
6
6
  /* Height pinned to --rf-header-height so the docked mobile nav panel
7
7
  (top: var(--rf-header-height)) lines up with the header bottom. */
8
- .rf-blog-header { position: sticky; top: 0; z-index: 100; height: var(--rf-header-height, 3.5rem); }
9
- .rf-blog-header__inner { display: flex; align-items: center; }
10
- .rf-blog-header__inner .rf-search-trigger { margin-left: auto; }
11
- .rf-blog-header__inner p ~ p { order: 1; }
12
- .rf-blog-header__inner .rf-mobile-menu-btn { order: 2; }
13
- .rf-blog-header a { display: inline-block; }
14
- .rf-blog-header p:first-child a { display: inline-flex; align-items: center; }
8
+ .rf-blog-header {
9
+ position: sticky;
10
+ top: 0;
11
+ z-index: 100;
12
+ height: var(--rf-header-height, 3.5rem);
13
+ }
14
+ .rf-blog-header__inner {
15
+ display: flex;
16
+ align-items: center;
17
+ }
18
+ .rf-blog-header__inner .rf-search-trigger {
19
+ margin-left: auto;
20
+ }
21
+ .rf-blog-header__inner p ~ p {
22
+ order: 1;
23
+ }
24
+ .rf-blog-header__inner .rf-mobile-menu-btn {
25
+ order: 2;
26
+ }
27
+ .rf-blog-header a {
28
+ display: inline-block;
29
+ }
30
+ .rf-blog-header p:first-child a {
31
+ display: inline-flex;
32
+ align-items: center;
33
+ }
15
34
  .rf-blog-header img,
16
- .rf-blog-header p:first-child a > .rf-icon { height: 2rem; width: 2rem; }
17
- .rf-blog-header p:first-child a > .rf-icon { display: inline-block; }
18
- .rf-blog-header__inner p ~ p a svg { width: 1.1rem; height: 1.1rem; }
19
- .rf-blog { max-width: 72rem; margin: 0 auto; }
35
+ .rf-blog-header p:first-child a > .rf-icon {
36
+ height: 2rem;
37
+ width: 2rem;
38
+ }
39
+ .rf-blog-header p:first-child a > .rf-icon {
40
+ display: inline-block;
41
+ }
42
+ .rf-blog-header__inner p ~ p a svg {
43
+ width: 1.1rem;
44
+ height: 1.1rem;
45
+ }
46
+ .rf-blog {
47
+ max-width: 72rem;
48
+ margin: 0 auto;
49
+ }
20
50
  .rf-blog--has-sidebar {
21
51
  display: grid;
22
52
  grid-template-columns: 1fr 16rem;
23
53
  align-items: start;
24
54
  }
25
- .rf-blog-index { max-width: 42rem; }
26
- .rf-blog-index__body:empty { display: none; }
27
- .rf-blog-index__posts { display: flex; flex-direction: column; }
28
- .rf-blog-card { display: block; }
29
- .rf-blog-card__meta { display: flex; align-items: center; }
30
- .rf-blog-card__tags { display: flex; flex-wrap: wrap; }
31
- .rf-blog-article { max-width: 42rem; }
32
- .rf-blog-article__meta { display: flex; align-items: center; }
33
- .rf-blog-article__tags { display: flex; flex-wrap: wrap; }
34
- .rf-blog-sidebar { position: sticky; top: 2.5rem; }
35
- .rf-blog-sidebar ul { list-style: none; }
55
+ .rf-blog-index {
56
+ max-width: 42rem;
57
+ }
58
+ .rf-blog-index__body:empty {
59
+ display: none;
60
+ }
61
+ .rf-blog-index__posts {
62
+ display: flex;
63
+ flex-direction: column;
64
+ }
65
+ .rf-blog-card {
66
+ display: block;
67
+ }
68
+ .rf-blog-card__meta {
69
+ display: flex;
70
+ align-items: center;
71
+ }
72
+ .rf-blog-card__tags {
73
+ display: flex;
74
+ flex-wrap: wrap;
75
+ }
76
+ .rf-blog-article {
77
+ max-width: 42rem;
78
+ }
79
+ .rf-blog-article__meta {
80
+ display: flex;
81
+ align-items: center;
82
+ }
83
+ .rf-blog-article__tags {
84
+ display: flex;
85
+ flex-wrap: wrap;
86
+ }
87
+ .rf-blog-sidebar {
88
+ position: sticky;
89
+ top: 2.5rem;
90
+ }
91
+ .rf-blog-sidebar ul {
92
+ list-style: none;
93
+ }
36
94
  @media (max-width: 768px) {
37
- .rf-blog-header__inner p ~ p { display: none; }
38
- .rf-blog--has-sidebar { grid-template-columns: 1fr; }
39
- .rf-blog-sidebar { position: static; }
95
+ .rf-blog-header__inner p ~ p {
96
+ display: none;
97
+ }
98
+ .rf-blog--has-sidebar {
99
+ grid-template-columns: 1fr;
100
+ }
101
+ .rf-blog-sidebar {
102
+ position: static;
103
+ }
40
104
  }