@refrakt-md/lumina 0.32.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 (142) hide show
  1. package/base.css +29 -29
  2. package/contracts/structures.json +58 -60
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/icons.d.ts.map +1 -1
  6. package/dist/icons.js +57 -57
  7. package/dist/icons.js.map +1 -1
  8. package/dist/presets/catppuccin.js.map +1 -1
  9. package/dist/presets/dracula.js.map +1 -1
  10. package/dist/presets/gruvbox.js.map +1 -1
  11. package/dist/presets/niwaki.js.map +1 -1
  12. package/dist/presets/nord.js.map +1 -1
  13. package/dist/presets/one-dark.js.map +1 -1
  14. package/dist/presets/solarized.js.map +1 -1
  15. package/dist/presets/tideline.d.ts.map +1 -1
  16. package/dist/presets/tideline.js +20 -4
  17. package/dist/presets/tideline.js.map +1 -1
  18. package/dist/presets/tokyo-night.js.map +1 -1
  19. package/dist/tokens.js.map +1 -1
  20. package/index.css +124 -124
  21. package/package.json +5 -5
  22. package/presets.json +61 -13
  23. package/styles/base/attributes.css +32 -13
  24. package/styles/dimensions/checklist.css +45 -46
  25. package/styles/dimensions/cover.css +71 -51
  26. package/styles/dimensions/density.css +69 -65
  27. package/styles/dimensions/frame.css +116 -57
  28. package/styles/dimensions/metadata.css +110 -103
  29. package/styles/dimensions/motion.css +42 -13
  30. package/styles/dimensions/reading.css +27 -27
  31. package/styles/dimensions/sections.css +44 -45
  32. package/styles/dimensions/sequence.css +56 -57
  33. package/styles/dimensions/state.css +8 -2
  34. package/styles/dimensions/substrate.css +82 -58
  35. package/styles/dimensions/surfaces.css +65 -62
  36. package/styles/elements/blockquote.css +24 -25
  37. package/styles/elements/code.css +72 -71
  38. package/styles/elements/table.css +36 -37
  39. package/styles/global.css +163 -121
  40. package/styles/layouts/blog.css +219 -218
  41. package/styles/layouts/default.css +168 -167
  42. package/styles/layouts/docs.css +121 -122
  43. package/styles/layouts/mobile.css +54 -55
  44. package/styles/layouts/on-this-page.css +46 -47
  45. package/styles/layouts/plan.css +248 -247
  46. package/styles/layouts/search.css +142 -140
  47. package/styles/layouts/split.css +45 -45
  48. package/styles/layouts/theme-toggle.css +33 -31
  49. package/styles/layouts/version-switcher.css +38 -37
  50. package/styles/runes/accordion.css +90 -81
  51. package/styles/runes/aggregate.css +50 -39
  52. package/styles/runes/annotate.css +46 -45
  53. package/styles/runes/api.css +22 -23
  54. package/styles/runes/audio.css +140 -141
  55. package/styles/runes/badge.css +12 -13
  56. package/styles/runes/bar.css +4 -5
  57. package/styles/runes/bento.css +73 -62
  58. package/styles/runes/bg.css +62 -47
  59. package/styles/runes/blog.css +89 -90
  60. package/styles/runes/bond.css +49 -50
  61. package/styles/runes/breadcrumb.css +34 -35
  62. package/styles/runes/budget.css +126 -127
  63. package/styles/runes/bug.css +28 -27
  64. package/styles/runes/card.css +63 -60
  65. package/styles/runes/carousel.css +15 -15
  66. package/styles/runes/cast.css +50 -51
  67. package/styles/runes/changelog.css +45 -46
  68. package/styles/runes/character.css +31 -32
  69. package/styles/runes/chart.css +194 -106
  70. package/styles/runes/codegroup.css +109 -100
  71. package/styles/runes/collection.css +87 -86
  72. package/styles/runes/compare.css +38 -39
  73. package/styles/runes/comparison.css +205 -179
  74. package/styles/runes/conversation.css +36 -33
  75. package/styles/runes/cta.css +135 -132
  76. package/styles/runes/datatable.css +84 -83
  77. package/styles/runes/decision.css +25 -26
  78. package/styles/runes/design-context.css +21 -23
  79. package/styles/runes/details.css +26 -27
  80. package/styles/runes/diagram.css +28 -29
  81. package/styles/runes/diff.css +75 -72
  82. package/styles/runes/drawer.css +276 -198
  83. package/styles/runes/embed.css +20 -21
  84. package/styles/runes/event.css +35 -36
  85. package/styles/runes/expand.css +43 -34
  86. package/styles/runes/faction.css +47 -48
  87. package/styles/runes/feature.css +119 -112
  88. package/styles/runes/figure.css +11 -12
  89. package/styles/runes/file-ref.css +11 -13
  90. package/styles/runes/form.css +155 -154
  91. package/styles/runes/gallery.css +59 -60
  92. package/styles/runes/grid.css +10 -7
  93. package/styles/runes/hero.css +189 -185
  94. package/styles/runes/hint.css +57 -58
  95. package/styles/runes/howto.css +62 -64
  96. package/styles/runes/itinerary.css +133 -134
  97. package/styles/runes/juxtapose.css +83 -82
  98. package/styles/runes/lore.css +32 -34
  99. package/styles/runes/map.css +106 -99
  100. package/styles/runes/mediatext.css +30 -27
  101. package/styles/runes/milestone.css +98 -97
  102. package/styles/runes/mockup.css +338 -335
  103. package/styles/runes/nav.css +465 -450
  104. package/styles/runes/organization.css +23 -20
  105. package/styles/runes/page-section.css +14 -15
  106. package/styles/runes/pagination.css +45 -44
  107. package/styles/runes/palette.css +78 -80
  108. package/styles/runes/placeholder.css +8 -9
  109. package/styles/runes/plan-history.css +160 -161
  110. package/styles/runes/plan-progress.css +15 -16
  111. package/styles/runes/plan-ref.css +32 -23
  112. package/styles/runes/playlist.css +106 -107
  113. package/styles/runes/plot.css +92 -91
  114. package/styles/runes/preview.css +152 -149
  115. package/styles/runes/pricing.css +133 -123
  116. package/styles/runes/progress.css +32 -27
  117. package/styles/runes/pullquote.css +89 -90
  118. package/styles/runes/realm.css +47 -48
  119. package/styles/runes/recipe.css +112 -114
  120. package/styles/runes/relationships.css +77 -76
  121. package/styles/runes/reveal.css +90 -79
  122. package/styles/runes/sandbox.css +59 -60
  123. package/styles/runes/section.css +57 -50
  124. package/styles/runes/showcase.css +35 -16
  125. package/styles/runes/sidenote.css +30 -27
  126. package/styles/runes/snippet.css +8 -9
  127. package/styles/runes/spacing.css +86 -88
  128. package/styles/runes/spec.css +24 -25
  129. package/styles/runes/steps.css +89 -80
  130. package/styles/runes/storyboard.css +46 -45
  131. package/styles/runes/swatch.css +22 -23
  132. package/styles/runes/symbol.css +117 -118
  133. package/styles/runes/tabs.css +88 -79
  134. package/styles/runes/testimonial.css +43 -44
  135. package/styles/runes/textblock.css +32 -28
  136. package/styles/runes/timeline.css +63 -64
  137. package/styles/runes/tint.css +214 -215
  138. package/styles/runes/toc.css +40 -41
  139. package/styles/runes/track.css +89 -90
  140. package/styles/runes/typography.css +89 -91
  141. package/styles/runes/work.css +47 -36
  142. package/styles/runes/xref.css +21 -22
@@ -1,99 +1,98 @@
1
1
  @layer skin {
2
- /* Track */
3
- .rf-track {
4
- gap: 0.75rem;
5
- padding: 0.75rem 1.25rem;
6
- transition: background 0.15s ease;
7
- }
8
- .rf-track + .rf-track {
9
- border-top: 1px solid var(--rf-color-border);
10
- }
11
- .rf-track:hover {
12
- background: color-mix(in srgb, var(--rf-color-border) 15%, transparent);
13
- }
14
- .rf-track::before {
15
- font-size: var(--rf-text-xs);
16
- color: var(--rf-color-primary);
17
- text-align: right;
18
- }
2
+ /* Track */
3
+ .rf-track {
4
+ gap: 0.75rem;
5
+ padding: 0.75rem 1.25rem;
6
+ transition: background 0.15s ease;
7
+ }
8
+ .rf-track + .rf-track {
9
+ border-top: 1px solid var(--rf-color-border);
10
+ }
11
+ .rf-track:hover {
12
+ background: color-mix(in srgb, var(--rf-color-border) 15%, transparent);
13
+ }
14
+ .rf-track::before {
15
+ font-size: var(--rf-text-xs);
16
+ color: var(--rf-color-primary);
17
+ text-align: right;
18
+ }
19
19
 
20
- /* Track name — primary text, takes remaining space */
21
- .rf-track__track-name {
22
- font-size: var(--rf-text);
23
- font-weight: var(--rf-weight-medium);
24
- color: var(--rf-color-text);
25
- text-overflow: ellipsis;
26
- white-space: nowrap;
27
- }
20
+ /* Track name — primary text, takes remaining space */
21
+ .rf-track__track-name {
22
+ font-size: var(--rf-text);
23
+ font-weight: var(--rf-weight-medium);
24
+ color: var(--rf-color-text);
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ }
28
28
 
29
- /* Artist — secondary text with dot separator */
30
- .rf-track__track-artist {
31
- font-size: var(--rf-text-sm);
32
- color: var(--rf-color-muted);
33
- }
34
- .rf-track__track-artist::before {
35
- content: '\00b7';
36
- margin-right: 0.5rem;
37
- opacity: 0.5;
38
- }
29
+ /* Artist — secondary text with dot separator */
30
+ .rf-track__track-artist {
31
+ font-size: var(--rf-text-sm);
32
+ color: var(--rf-color-muted);
33
+ }
34
+ .rf-track__track-artist::before {
35
+ content: "\00b7";
36
+ margin-right: 0.5rem;
37
+ opacity: 0.5;
38
+ }
39
39
 
40
- /* Duration — pushed right, tabular nums */
41
- .rf-track__track-duration {
42
- font-size: var(--rf-text-sm);
43
- color: var(--rf-color-muted);
44
- font-variant-numeric: tabular-nums;
45
- text-align: right;
46
- }
40
+ /* Duration — pushed right, tabular nums */
41
+ .rf-track__track-duration {
42
+ font-size: var(--rf-text-sm);
43
+ color: var(--rf-color-muted);
44
+ font-variant-numeric: tabular-nums;
45
+ text-align: right;
46
+ }
47
47
 
48
- /* Meta (date etc.) — dot separator */
49
- .rf-track__track-meta {
50
- font-size: var(--rf-text-xs);
51
- color: var(--rf-color-muted);
52
- }
53
- .rf-track__track-meta::before {
54
- content: '\00b7';
55
- margin-right: 0.5rem;
56
- opacity: 0.5;
57
- }
48
+ /* Meta (date etc.) — dot separator */
49
+ .rf-track__track-meta {
50
+ font-size: var(--rf-text-xs);
51
+ color: var(--rf-color-muted);
52
+ }
53
+ .rf-track__track-meta::before {
54
+ content: "\00b7";
55
+ margin-right: 0.5rem;
56
+ opacity: 0.5;
57
+ }
58
58
 
59
- /* Description — full width below the row */
60
- .rf-track__track-description {
61
- font-size: var(--rf-text-sm);
62
- color: var(--rf-color-muted);
63
- line-height: var(--rf-leading-normal);
64
- padding-top: 0.5rem;
65
- }
66
- .rf-track__track-description p {
67
- margin: 0;
68
- }
69
-
70
- /* Cue points (lyrics / chapters) */
71
- .rf-track [data-name="lyrics"],
72
- .rf-track [data-name="chapters"] {
73
- padding: 0.5rem 0 0;
74
- margin: 0;
75
- font-size: var(--rf-text-sm);
76
- }
77
- .rf-track [data-name="lyrics"] li {
78
- padding: 0.125rem 0;
79
- color: var(--rf-color-muted);
80
- }
81
- .rf-track [data-name="lyric"] {
82
- margin: 0;
83
- }
84
- .rf-track [data-name="chapters"] li {
85
- gap: 0.75rem;
86
- padding: 0.25rem 0;
87
- }
88
- .rf-track [data-name="chapter-name"] {
89
- color: var(--rf-color-text);
90
- font-weight: var(--rf-weight-medium);
91
- }
92
- .rf-track [data-name="chapter-time"] {
93
- color: var(--rf-color-muted);
94
- font-variant-numeric: tabular-nums;
95
- }
59
+ /* Description — full width below the row */
60
+ .rf-track__track-description {
61
+ font-size: var(--rf-text-sm);
62
+ color: var(--rf-color-muted);
63
+ line-height: var(--rf-leading-normal);
64
+ padding-top: 0.5rem;
65
+ }
66
+ .rf-track__track-description p {
67
+ margin: 0;
68
+ }
96
69
 
97
- /* Hide secondary columns on narrow screens */
70
+ /* Cue points (lyrics / chapters) */
71
+ .rf-track [data-name="lyrics"],
72
+ .rf-track [data-name="chapters"] {
73
+ padding: 0.5rem 0 0;
74
+ margin: 0;
75
+ font-size: var(--rf-text-sm);
76
+ }
77
+ .rf-track [data-name="lyrics"] li {
78
+ padding: 0.125rem 0;
79
+ color: var(--rf-color-muted);
80
+ }
81
+ .rf-track [data-name="lyric"] {
82
+ margin: 0;
83
+ }
84
+ .rf-track [data-name="chapters"] li {
85
+ gap: 0.75rem;
86
+ padding: 0.25rem 0;
87
+ }
88
+ .rf-track [data-name="chapter-name"] {
89
+ color: var(--rf-color-text);
90
+ font-weight: var(--rf-weight-medium);
91
+ }
92
+ .rf-track [data-name="chapter-time"] {
93
+ color: var(--rf-color-muted);
94
+ font-variant-numeric: tabular-nums;
95
+ }
98
96
 
97
+ /* Hide secondary columns on narrow screens */
99
98
  }
@@ -1,98 +1,96 @@
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-typography {
6
- --rf-title-size: var(--rf-text-lg);
7
- }
4
+ .rf-typography {
5
+ --rf-title-size: var(--rf-text-lg);
6
+ }
8
7
 
9
- /* Typography — font specimen display */
10
- .rf-typography__title {
11
- /* WORK-538 — read the prominence override first; the fallback is this rune's
8
+ /* Typography — font specimen display */
9
+ .rf-typography__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-semibold);
16
- margin-bottom: 1rem;
17
- }
18
- .rf-typography__specimens {
19
- gap: 2rem;
20
- }
21
- .rf-typography__specimen {
22
- border-radius: var(--rf-radius-lg, 12px);
23
- padding: 0;
24
- }
25
- .rf-typography__specimen-header {
26
- gap: 0.75rem;
27
- margin-bottom: 1.25rem;
28
- padding-bottom: 0.75rem;
29
- border-bottom: 1px solid var(--rf-color-border, #e5e7eb);
30
- }
31
- .rf-typography__specimen-role {
32
- font-size: var(--rf-text-xs);
33
- font-weight: var(--rf-weight-semibold);
34
- text-transform: uppercase;
35
- letter-spacing: var(--rf-tracking-wider);
36
- color: var(--rf-color-muted);
37
- background: var(--rf-color-surface-raised);
38
- padding: 0.125rem 0.5rem;
39
- border-radius: var(--rf-radius-sm, 4px);
40
- }
41
- .rf-typography__specimen-family {
42
- font-size: var(--rf-text-sm);
43
- color: var(--rf-color-muted);
44
- }
45
- .rf-typography__sizes {
46
- gap: 0.5rem;
47
- margin-bottom: 1rem;
48
- }
49
- .rf-typography__size-sample {
50
- gap: 1rem;
51
- line-height: var(--rf-leading-snug);
52
- text-overflow: ellipsis;
53
- white-space: nowrap;
54
- }
55
- .rf-typography__size-label {
56
- font-size: var(--rf-text-xs);
57
- font-family: var(--rf-font-mono, monospace);
58
- color: var(--rf-color-muted);
59
- text-align: right;
60
- }
61
- .rf-typography__weights {
62
- gap: 1.5rem;
63
- padding-top: 1rem;
64
- border-top: 1px solid var(--rf-color-border, #e5e7eb);
65
- }
66
- .rf-typography__weight-sample {
67
- gap: 0.25rem;
68
- }
69
- .rf-typography__weight-label {
70
- font-size: var(--rf-text-xs);
71
- font-family: var(--rf-font-mono, monospace);
72
- color: var(--rf-color-muted);
73
- }
74
- .rf-typography__charset {
75
- margin-top: 1rem;
76
- padding-top: 1rem;
77
- border-top: 1px solid var(--rf-color-border, #e5e7eb);
78
- font-size: var(--rf-text-sm);
79
- line-height: var(--rf-leading-relaxed);
80
- letter-spacing: var(--rf-tracking-wider);
81
- word-break: break-all;
82
- color: var(--rf-color-muted);
83
- }
84
-
85
- /* Context-aware: no outer border when inside design-context (parent already has one) */
86
- .rf-typography--in-design-context {
87
- margin: 0;
88
- }
89
- .rf-typography--in-design-context .rf-typography__specimen {
90
- border: none;
91
- border-radius: 0;
92
- padding: 0;
93
- }
94
- .rf-typography--in-design-context .rf-typography__specimen + .rf-typography__specimen {
95
- padding-top: 1.5rem;
96
- }
13
+ font-size: var(--rf-prominence-size, var(--rf-title-size));
14
+ font-weight: var(--rf-weight-semibold);
15
+ margin-bottom: 1rem;
16
+ }
17
+ .rf-typography__specimens {
18
+ gap: 2rem;
19
+ }
20
+ .rf-typography__specimen {
21
+ border-radius: var(--rf-radius-lg, 12px);
22
+ padding: 0;
23
+ }
24
+ .rf-typography__specimen-header {
25
+ gap: 0.75rem;
26
+ margin-bottom: 1.25rem;
27
+ padding-bottom: 0.75rem;
28
+ border-bottom: 1px solid var(--rf-color-border, #e5e7eb);
29
+ }
30
+ .rf-typography__specimen-role {
31
+ font-size: var(--rf-text-xs);
32
+ font-weight: var(--rf-weight-semibold);
33
+ text-transform: uppercase;
34
+ letter-spacing: var(--rf-tracking-wider);
35
+ color: var(--rf-color-muted);
36
+ background: var(--rf-color-surface-raised);
37
+ padding: 0.125rem 0.5rem;
38
+ border-radius: var(--rf-radius-sm, 4px);
39
+ }
40
+ .rf-typography__specimen-family {
41
+ font-size: var(--rf-text-sm);
42
+ color: var(--rf-color-muted);
43
+ }
44
+ .rf-typography__sizes {
45
+ gap: 0.5rem;
46
+ margin-bottom: 1rem;
47
+ }
48
+ .rf-typography__size-sample {
49
+ gap: 1rem;
50
+ line-height: var(--rf-leading-snug);
51
+ text-overflow: ellipsis;
52
+ white-space: nowrap;
53
+ }
54
+ .rf-typography__size-label {
55
+ font-size: var(--rf-text-xs);
56
+ font-family: var(--rf-font-mono, monospace);
57
+ color: var(--rf-color-muted);
58
+ text-align: right;
59
+ }
60
+ .rf-typography__weights {
61
+ gap: 1.5rem;
62
+ padding-top: 1rem;
63
+ border-top: 1px solid var(--rf-color-border, #e5e7eb);
64
+ }
65
+ .rf-typography__weight-sample {
66
+ gap: 0.25rem;
67
+ }
68
+ .rf-typography__weight-label {
69
+ font-size: var(--rf-text-xs);
70
+ font-family: var(--rf-font-mono, monospace);
71
+ color: var(--rf-color-muted);
72
+ }
73
+ .rf-typography__charset {
74
+ margin-top: 1rem;
75
+ padding-top: 1rem;
76
+ border-top: 1px solid var(--rf-color-border, #e5e7eb);
77
+ font-size: var(--rf-text-sm);
78
+ line-height: var(--rf-leading-relaxed);
79
+ letter-spacing: var(--rf-tracking-wider);
80
+ word-break: break-all;
81
+ color: var(--rf-color-muted);
82
+ }
97
83
 
84
+ /* Context-aware: no outer border when inside design-context (parent already has one) */
85
+ .rf-typography--in-design-context {
86
+ margin: 0;
87
+ }
88
+ .rf-typography--in-design-context .rf-typography__specimen {
89
+ border: none;
90
+ border-radius: 0;
91
+ padding: 0;
92
+ }
93
+ .rf-typography--in-design-context .rf-typography__specimen + .rf-typography__specimen {
94
+ padding-top: 1.5rem;
95
+ }
98
96
  }
@@ -1,49 +1,60 @@
1
1
  @layer skin {
2
- /* Work */
2
+ /* Work */
3
3
 
4
- /* SPEC-080: eyebrow / metadata / tags are projected blocks placed at the
4
+ /* SPEC-080: eyebrow / metadata / tags are projected blocks placed at the
5
5
  * rune root via `layout`. Geometry comes from the universal
6
6
  * `[data-zone-layout]` selectors in dimensions/metadata.css; this file
7
7
  * carries the work-specific spacing + complexity dots + assignee prefix. */
8
8
 
9
- .rf-work__eyebrow {
10
- margin-bottom: 0.75rem;
11
- }
9
+ .rf-work__eyebrow {
10
+ margin-bottom: 0.75rem;
11
+ }
12
12
 
13
- .rf-work__title h1,
14
- .rf-work__title h2,
15
- .rf-work__title h3 {
16
- margin-top: 0;
17
- }
13
+ .rf-work__title h1,
14
+ .rf-work__title h2,
15
+ .rf-work__title h3 {
16
+ margin-top: 0;
17
+ }
18
18
 
19
- .rf-work__metadata {
20
- margin-bottom: 1.5rem;
21
- }
19
+ .rf-work__metadata {
20
+ margin-bottom: 1.5rem;
21
+ }
22
22
 
23
- /* Assignee — `@` prefix on the plain-text def-list value. Targets the
23
+ /* Assignee — `@` prefix on the plain-text def-list value. Targets the
24
24
  * row by field name so milestone / tags don't get the prefix too. */
25
- .rf-work__metadata [data-field="assignee"] dd .rf-badge::before { content: '@'; }
26
-
27
- .rf-work__body {
28
- font-size: var(--rf-text-sm);
29
- line-height: var(--rf-leading-relaxed);
30
- }
31
- .rf-work__body > section {
32
- margin-top: 1rem;
33
- padding-top: 0.75rem;
34
- border-top: 1px solid var(--rf-color-border);
35
- }
36
- .rf-work__body > section:first-child {
37
- margin-top: 0.75rem;
38
- }
39
-
40
- /* Complexity dots — appended after the value cell in the def-list. The
25
+ .rf-work__metadata [data-field="assignee"] dd .rf-badge::before {
26
+ content: "@";
27
+ }
28
+
29
+ .rf-work__body {
30
+ font-size: var(--rf-text-sm);
31
+ line-height: var(--rf-leading-relaxed);
32
+ }
33
+ .rf-work__body > section {
34
+ margin-top: 1rem;
35
+ padding-top: 0.75rem;
36
+ border-top: 1px solid var(--rf-color-border);
37
+ }
38
+ .rf-work__body > section:first-child {
39
+ margin-top: 0.75rem;
40
+ }
41
+
42
+ /* Complexity dots — appended after the value cell in the def-list. The
41
43
  * `data-complexity` attribute lives on the root work element (set by
42
44
  * engine modifier processing). */
43
- [data-complexity="trivial"] .rf-work__metadata [data-field="complexity"] dd::after { content: ' ●'; }
44
- [data-complexity="simple"] .rf-work__metadata [data-field="complexity"] dd::after { content: ' ●●'; }
45
- [data-complexity="moderate"] .rf-work__metadata [data-field="complexity"] dd::after { content: ' ●●●'; }
46
- [data-complexity="complex"] .rf-work__metadata [data-field="complexity"] dd::after { content: ' ●●●●'; }
47
- [data-complexity="unknown"] .rf-work__metadata [data-field="complexity"] dd::after { content: ' ?'; }
48
-
45
+ [data-complexity="trivial"] .rf-work__metadata [data-field="complexity"] dd::after {
46
+ content: " ●";
47
+ }
48
+ [data-complexity="simple"] .rf-work__metadata [data-field="complexity"] dd::after {
49
+ content: " ●●";
50
+ }
51
+ [data-complexity="moderate"] .rf-work__metadata [data-field="complexity"] dd::after {
52
+ content: " ●●●";
53
+ }
54
+ [data-complexity="complex"] .rf-work__metadata [data-field="complexity"] dd::after {
55
+ content: " ●●●●";
56
+ }
57
+ [data-complexity="unknown"] .rf-work__metadata [data-field="complexity"] dd::after {
58
+ content: " ?";
59
+ }
49
60
  }
@@ -1,30 +1,29 @@
1
1
  @layer skin {
2
- /* Xref — inline cross-reference link */
2
+ /* Xref — inline cross-reference link */
3
3
 
4
- .rf-xref {
5
- /* Inherits normal link styling from the theme */
6
- }
4
+ .rf-xref {
5
+ /* Inherits normal link styling from the theme */
6
+ }
7
7
 
8
- /* External — pattern-resolved refs and any other type that doesn't have a
8
+ /* External — pattern-resolved refs and any other type that doesn't have a
9
9
  * dedicated treatment. A subtle outbound indicator distinguishes these
10
10
  * from local refs without being noisy. */
11
- .rf-xref--external {
12
- /* Theme-inherited link colour; outbound indicator via a small inline
11
+ .rf-xref--external {
12
+ /* Theme-inherited link colour; outbound indicator via a small inline
13
13
  * arrow that adapts to RTL via the logical-property side. */
14
- }
15
- .rf-xref--external::after {
16
- content: '\2197'; /* ↗ */
17
- margin-inline-start: 0.15em;
18
- font-size: 0.85em;
19
- vertical-align: 0.05em;
20
- opacity: 0.6;
21
- }
22
-
23
- /* Unresolved reference */
24
- .rf-xref--unresolved {
25
- text-decoration: underline dashed;
26
- color: var(--rf-color-muted);
27
- cursor: help;
28
- }
14
+ }
15
+ .rf-xref--external::after {
16
+ content: "\2197"; /* ↗ */
17
+ margin-inline-start: 0.15em;
18
+ font-size: 0.85em;
19
+ vertical-align: 0.05em;
20
+ opacity: 0.6;
21
+ }
29
22
 
23
+ /* Unresolved reference */
24
+ .rf-xref--unresolved {
25
+ text-decoration: underline dashed;
26
+ color: var(--rf-color-muted);
27
+ cursor: help;
28
+ }
30
29
  }