@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,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
  }