@ponchia/ui 0.10.0 → 0.12.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 (62) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/MIGRATIONS.json +52 -9
  3. package/README.md +3 -3
  4. package/behaviors/forms.d.ts +1 -1
  5. package/behaviors/internal.d.ts +1 -1
  6. package/classes/classes.json +31 -2
  7. package/classes/index.d.ts +12 -0
  8. package/classes/index.js +13 -0
  9. package/css/annotations.css +2 -2
  10. package/css/app.css +3 -1
  11. package/css/command.css +4 -4
  12. package/css/dataviz.css +117 -64
  13. package/css/discussion.css +150 -0
  14. package/css/figure.css +6 -4
  15. package/css/generated.css +19 -12
  16. package/css/legend.css +14 -7
  17. package/css/report.css +25 -11
  18. package/css/sources.css +1 -1
  19. package/dist/bronto.css +1 -1
  20. package/dist/css/analytical.css +1 -1
  21. package/dist/css/annotations.css +1 -1
  22. package/dist/css/app.css +1 -1
  23. package/dist/css/command.css +1 -1
  24. package/dist/css/dataviz.css +1 -1
  25. package/dist/css/discussion.css +1 -0
  26. package/dist/css/figure.css +1 -1
  27. package/dist/css/generated.css +1 -1
  28. package/dist/css/legend.css +1 -1
  29. package/dist/css/report-kit.css +1 -1
  30. package/dist/css/report.css +1 -1
  31. package/dist/css/sources.css +1 -1
  32. package/docs/adr/0001-color-system.md +29 -0
  33. package/docs/architecture.md +1 -1
  34. package/docs/compositions.md +23 -2
  35. package/docs/contrast.md +24 -24
  36. package/docs/discussion.md +64 -0
  37. package/docs/figure.md +10 -1
  38. package/docs/frontier-primitives.md +5 -0
  39. package/docs/mermaid.md +1 -1
  40. package/docs/migrations/0.10-to-0.11.md +61 -0
  41. package/docs/migrations/0.11-to-0.12.md +47 -0
  42. package/docs/package-contract.md +14 -2
  43. package/docs/reference.md +18 -1
  44. package/docs/renderer.md +100 -0
  45. package/docs/reporting.md +9 -9
  46. package/docs/stability.md +4 -2
  47. package/docs/theming.md +29 -19
  48. package/docs/usage.md +12 -8
  49. package/docs/vega.md +24 -23
  50. package/llms.txt +8 -4
  51. package/package.json +18 -3
  52. package/renderer/index.d.ts +203 -0
  53. package/renderer/index.d.ts.map +1 -0
  54. package/renderer/index.js +650 -0
  55. package/tokens/charts.d.ts +16 -10
  56. package/tokens/charts.js +65 -49
  57. package/tokens/charts.json +77 -29
  58. package/tokens/mermaid.js +56 -56
  59. package/tokens/mermaid.json +56 -56
  60. package/tokens/vega.d.ts +3 -3
  61. package/tokens/vega.js +111 -72
  62. package/tokens/vega.json +198 -126
package/tokens/vega.js CHANGED
@@ -10,126 +10,167 @@
10
10
  export const vega = {
11
11
  light: {
12
12
  background: '#f4f4f2',
13
- view: { stroke: '#d8d8d4' },
14
- mark: { color: '#d71921' },
15
- rule: { color: '#a8a8a2' },
16
- text: {
17
- color: '#0a0a0a',
18
- font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
19
- },
20
- title: {
21
- color: '#0a0a0a',
22
- subtitleColor: '#686863',
23
- font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
24
- subtitleFont:
25
- "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
13
+ font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
14
+ range: {
15
+ category: [
16
+ '#2a78d6',
17
+ '#eb6834',
18
+ '#1baf7a',
19
+ '#eda100',
20
+ '#e87ba4',
21
+ '#008300',
22
+ '#4a3aa7',
23
+ '#e34948',
24
+ ],
25
+ ordinal: ['#80b0e8', '#5598e7', '#2a78d6', '#1c5cab', '#104281'],
26
+ ramp: ['#80b0e8', '#5598e7', '#2a78d6', '#1c5cab', '#104281'],
27
+ heatmap: ['#80b0e8', '#5598e7', '#2a78d6', '#1c5cab', '#104281'],
28
+ diverging: ['#0c54a0', '#558ac0', '#aac8e3', '#d9dfe5', '#e0b491', '#ce7a3b', '#b95115'],
26
29
  },
27
30
  axis: {
28
31
  domainColor: '#a8a8a2',
29
32
  gridColor: '#d8d8d4',
30
33
  tickColor: '#a8a8a2',
31
34
  labelColor: '#353533',
32
- titleColor: '#0a0a0a',
33
35
  labelFont:
34
36
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
37
+ labelFontSize: 12,
38
+ titleColor: '#0a0a0a',
35
39
  titleFont:
36
40
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
41
+ titleFontSize: 13,
42
+ titleFontWeight: 600,
37
43
  },
38
44
  legend: {
39
45
  labelColor: '#353533',
40
- titleColor: '#0a0a0a',
41
46
  labelFont:
42
47
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
48
+ labelFontSize: 12,
49
+ titleColor: '#0a0a0a',
43
50
  titleFont:
44
51
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
52
+ titleFontSize: 13,
53
+ titleFontWeight: 600,
54
+ symbolType: 'circle',
55
+ symbolSize: 100,
45
56
  },
46
57
  header: {
47
58
  labelColor: '#353533',
48
- titleColor: '#0a0a0a',
49
59
  labelFont:
50
60
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
61
+ titleColor: '#0a0a0a',
51
62
  titleFont:
52
63
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
53
64
  },
54
- range: {
55
- category: [
56
- '#d71921',
57
- '#e69f00',
58
- '#56b4e9',
59
- '#009e73',
60
- '#f0e442',
61
- '#0072b2',
62
- '#cc79a7',
63
- '#4d5358',
64
- ],
65
- ordinal: ['#ffe4e1', '#f9bdb7', '#ed8c84', '#d55753', '#ac3031', '#79191b'],
66
- ramp: ['#ffe4e1', '#f9bdb7', '#ed8c84', '#d55753', '#ac3031', '#79191b'],
67
- heatmap: ['#ffe4e1', '#f9bdb7', '#ed8c84', '#d55753', '#ac3031', '#79191b'],
68
- diverging: ['#0c54a0', '#558ac0', '#aac8e3', '#d9dfe5', '#e0b491', '#ce7a3b', '#b95115'],
69
- },
70
- },
71
- dark: {
72
- background: '#121212',
73
- view: { stroke: '#383838' },
74
- mark: { color: '#ff3b41' },
75
- rule: { color: '#555555' },
76
- text: {
77
- color: '#e6e6e6',
78
- font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
79
- },
80
65
  title: {
81
- color: '#e6e6e6',
82
- subtitleColor: '#a0a0a0',
66
+ color: '#0a0a0a',
83
67
  font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
68
+ fontSize: 15,
69
+ fontWeight: 600,
70
+ subtitleColor: '#686863',
84
71
  subtitleFont:
85
72
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
73
+ subtitleFontSize: 13,
74
+ },
75
+ mark: { color: '#2a78d6' },
76
+ view: { stroke: null },
77
+ axisXDiscrete: { labelAngle: 0, labelOverlap: 'greedy', labelLimit: 120 },
78
+ text: {
79
+ color: '#0a0a0a',
80
+ font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
81
+ },
82
+ rule: { color: '#a8a8a2' },
83
+ line: { strokeWidth: 2 },
84
+ point: { size: 64, filled: true },
85
+ bar: { cornerRadiusEnd: 4 },
86
+ rect: { stroke: '#ffffff', strokeWidth: 2 },
87
+ arc: { stroke: '#ffffff', strokeWidth: 2 },
88
+ area: { stroke: '#ffffff', strokeWidth: 1 },
89
+ },
90
+ dark: {
91
+ background: '#121212',
92
+ font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
93
+ range: {
94
+ category: [
95
+ '#3987e5',
96
+ '#d95926',
97
+ '#199e70',
98
+ '#c98500',
99
+ '#d55181',
100
+ '#008300',
101
+ '#9085e9',
102
+ '#e66767',
103
+ ],
104
+ ordinal: ['#1b5298', '#256abf', '#3987e5', '#6da7ec', '#9ec5f4'],
105
+ ramp: ['#1b5298', '#256abf', '#3987e5', '#6da7ec', '#9ec5f4'],
106
+ heatmap: ['#1b5298', '#256abf', '#3987e5', '#6da7ec', '#9ec5f4'],
107
+ diverging: ['#5aa3ec', '#4683c5', '#3e5f8a', '#44484d', '#a56b38', '#e18e4b', '#f9a870'],
86
108
  },
87
109
  axis: {
88
110
  domainColor: '#555555',
89
111
  gridColor: '#383838',
90
112
  tickColor: '#555555',
91
113
  labelColor: '#c8c8c8',
92
- titleColor: '#e6e6e6',
93
114
  labelFont:
94
115
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
116
+ labelFontSize: 12,
117
+ titleColor: '#e6e6e6',
95
118
  titleFont:
96
119
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
120
+ titleFontSize: 13,
121
+ titleFontWeight: 600,
97
122
  },
98
123
  legend: {
99
124
  labelColor: '#c8c8c8',
100
- titleColor: '#e6e6e6',
101
125
  labelFont:
102
126
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
127
+ labelFontSize: 12,
128
+ titleColor: '#e6e6e6',
103
129
  titleFont:
104
130
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
131
+ titleFontSize: 13,
132
+ titleFontWeight: 600,
133
+ symbolType: 'circle',
134
+ symbolSize: 100,
105
135
  },
106
136
  header: {
107
137
  labelColor: '#c8c8c8',
108
- titleColor: '#e6e6e6',
109
138
  labelFont:
110
139
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
140
+ titleColor: '#e6e6e6',
111
141
  titleFont:
112
142
  "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
113
143
  },
114
- range: {
115
- category: [
116
- '#ff3b41',
117
- '#e69f00',
118
- '#56b4e9',
119
- '#009e73',
120
- '#f0e442',
121
- '#0072b2',
122
- '#cc79a7',
123
- '#4d5358',
124
- ],
125
- ordinal: ['#551112', '#8d1a1e', '#c13c3b', '#e66e68', '#f8a49d', '#fed2cd'],
126
- ramp: ['#551112', '#8d1a1e', '#c13c3b', '#e66e68', '#f8a49d', '#fed2cd'],
127
- heatmap: ['#551112', '#8d1a1e', '#c13c3b', '#e66e68', '#f8a49d', '#fed2cd'],
128
- diverging: ['#5aa3ec', '#4683c5', '#3e5f8a', '#44484d', '#a56b38', '#e18e4b', '#f9a870'],
144
+ title: {
145
+ color: '#e6e6e6',
146
+ font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
147
+ fontSize: 15,
148
+ fontWeight: 600,
149
+ subtitleColor: '#a0a0a0',
150
+ subtitleFont:
151
+ "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
152
+ subtitleFontSize: 13,
129
153
  },
154
+ mark: { color: '#3987e5' },
155
+ view: { stroke: null },
156
+ axisXDiscrete: { labelAngle: 0, labelOverlap: 'greedy', labelLimit: 120 },
157
+ text: {
158
+ color: '#e6e6e6',
159
+ font: "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
160
+ },
161
+ rule: { color: '#555555' },
162
+ line: { strokeWidth: 2 },
163
+ point: { size: 64, filled: true },
164
+ bar: { cornerRadiusEnd: 4 },
165
+ rect: { stroke: '#1c1c1c', strokeWidth: 2 },
166
+ arc: { stroke: '#1c1c1c', strokeWidth: 2 },
167
+ area: { stroke: '#1c1c1c', strokeWidth: 1 },
130
168
  },
131
169
  };
132
170
 
171
+ const ACCENT = { light: '#d71921', dark: '#ff3b41' };
172
+ const NEUTRAL = { light: '#686863', dark: '#a0a0a0' };
173
+
133
174
  /** The on-brand Vega-Lite `config` for a bronto theme (default `light`).
134
175
  * Spread into a spec — `{ ...spec, config: brontoVegaConfig(theme) }` —
135
176
  * or hand to vega-embed as `{ config: brontoVegaConfig(theme) }`. */
@@ -137,20 +178,18 @@ export function brontoVegaConfig(theme = 'light') {
137
178
  return vega[theme === 'dark' ? 'dark' : 'light'];
138
179
  }
139
180
 
140
- /** The resolved accent hex for a theme — series 1 of `range.category`, the one
141
- * chromatic mark. Use it to spend the accent on a single emphasised mark in
142
- * a multi-series chart (a Vega-Lite conditional to this colour) without
143
- * reverse-engineering the palette array index. Regenerate after changing
144
- * `--accent`; already-rendered charts do not live-reskin. */
181
+ /** The resolved accent hex for a theme. Spend it on one emphasised mark in a
182
+ * multi-series chart (a Vega-Lite conditional to this colour) while the
183
+ * others stay neutral. Regenerate after changing `--accent`; already-
184
+ * rendered charts do not live-reskin (use @ponchia/ui/renderer for that). */
145
185
  export function brontoVegaAccent(theme = 'light') {
146
- return vega[theme === 'dark' ? 'dark' : 'light'].range.category[0];
186
+ return ACCENT[theme === 'dark' ? 'dark' : 'light'];
147
187
  }
148
188
 
149
- /** The neutral series hex for a theme — the last of `range.category` — for the
150
- * "every other mark stays quiet" half of accent-spending. */
189
+ /** The neutral hex for a theme — the quiet ink every other mark takes in
190
+ * accent-spending. */
151
191
  export function brontoVegaNeutral(theme = 'light') {
152
- const cat = vega[theme === 'dark' ? 'dark' : 'light'].range.category;
153
- return cat[cat.length - 1];
192
+ return NEUTRAL[theme === 'dark' ? 'dark' : 'light'];
154
193
  }
155
194
 
156
195
  export default brontoVegaConfig;
package/tokens/vega.json CHANGED
@@ -1,81 +1,39 @@
1
1
  {
2
- "$comment": "@ponchia/ui Vega-Lite `config` resolved to static colours per theme. Spread into a spec's `config`, or pass `{ config }` to vega-embed. Monochrome chrome + one rationed accent (the default mark / series 1); `range.category` is the CVD-safe 8-series palette, `range.ramp`/`heatmap`/`ordinal` the sequential ramp, `range.diverging` the −…+ ramp. Resolved hex on purpose: Vega bakes colours into SVG/canvas and cannot read var(). Generated from the token source — do not edit by hand; run `npm run vega:build`. Drift-checked in CI.",
2
+ "$comment": "@ponchia/ui Vega-Lite `config` resolved to static colours per theme, on the page background. Spread into a spec's `config`, or pass `{ config }` to vega-embed. Quiet chrome in the bronto inks; `range.category` is the 8-hue categorical palette (a single series takes its first hue), `range.ramp`/`heatmap`/`ordinal` the sequential ramp, `range.diverging` the −…+ ramp. A page that switches skin, contrast or surface at runtime should build its config with @ponchia/ui/renderer instead. Resolved hex on purpose: Vega bakes colours into SVG/canvas and cannot read var(). Generated from the token source — do not edit by hand; run `npm run vega:build`. Drift-checked in CI.",
3
3
  "light": {
4
4
  "background": "#f4f4f2",
5
- "view": {
6
- "stroke": "#d8d8d4"
7
- },
8
- "mark": {
9
- "color": "#d71921"
10
- },
11
- "rule": {
12
- "color": "#a8a8a2"
13
- },
14
- "text": {
15
- "color": "#0a0a0a",
16
- "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
17
- },
18
- "title": {
19
- "color": "#0a0a0a",
20
- "subtitleColor": "#686863",
21
- "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
22
- "subtitleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
23
- },
24
- "axis": {
25
- "domainColor": "#a8a8a2",
26
- "gridColor": "#d8d8d4",
27
- "tickColor": "#a8a8a2",
28
- "labelColor": "#353533",
29
- "titleColor": "#0a0a0a",
30
- "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
31
- "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
32
- },
33
- "legend": {
34
- "labelColor": "#353533",
35
- "titleColor": "#0a0a0a",
36
- "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
37
- "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
38
- },
39
- "header": {
40
- "labelColor": "#353533",
41
- "titleColor": "#0a0a0a",
42
- "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
43
- "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
44
- },
5
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
45
6
  "range": {
46
7
  "category": [
47
- "#d71921",
48
- "#e69f00",
49
- "#56b4e9",
50
- "#009e73",
51
- "#f0e442",
52
- "#0072b2",
53
- "#cc79a7",
54
- "#4d5358"
8
+ "#2a78d6",
9
+ "#eb6834",
10
+ "#1baf7a",
11
+ "#eda100",
12
+ "#e87ba4",
13
+ "#008300",
14
+ "#4a3aa7",
15
+ "#e34948"
55
16
  ],
56
17
  "ordinal": [
57
- "#ffe4e1",
58
- "#f9bdb7",
59
- "#ed8c84",
60
- "#d55753",
61
- "#ac3031",
62
- "#79191b"
18
+ "#80b0e8",
19
+ "#5598e7",
20
+ "#2a78d6",
21
+ "#1c5cab",
22
+ "#104281"
63
23
  ],
64
24
  "ramp": [
65
- "#ffe4e1",
66
- "#f9bdb7",
67
- "#ed8c84",
68
- "#d55753",
69
- "#ac3031",
70
- "#79191b"
25
+ "#80b0e8",
26
+ "#5598e7",
27
+ "#2a78d6",
28
+ "#1c5cab",
29
+ "#104281"
71
30
  ],
72
31
  "heatmap": [
73
- "#ffe4e1",
74
- "#f9bdb7",
75
- "#ed8c84",
76
- "#d55753",
77
- "#ac3031",
78
- "#79191b"
32
+ "#80b0e8",
33
+ "#5598e7",
34
+ "#2a78d6",
35
+ "#1c5cab",
36
+ "#104281"
79
37
  ],
80
38
  "diverging": [
81
39
  "#0c54a0",
@@ -86,84 +44,120 @@
86
44
  "#ce7a3b",
87
45
  "#b95115"
88
46
  ]
89
- }
90
- },
91
- "dark": {
92
- "background": "#121212",
93
- "view": {
94
- "stroke": "#383838"
95
- },
96
- "mark": {
97
- "color": "#ff3b41"
98
- },
99
- "rule": {
100
- "color": "#555555"
101
- },
102
- "text": {
103
- "color": "#e6e6e6",
104
- "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
105
- },
106
- "title": {
107
- "color": "#e6e6e6",
108
- "subtitleColor": "#a0a0a0",
109
- "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
110
- "subtitleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
111
47
  },
112
48
  "axis": {
113
- "domainColor": "#555555",
114
- "gridColor": "#383838",
115
- "tickColor": "#555555",
116
- "labelColor": "#c8c8c8",
117
- "titleColor": "#e6e6e6",
49
+ "domainColor": "#a8a8a2",
50
+ "gridColor": "#d8d8d4",
51
+ "tickColor": "#a8a8a2",
52
+ "labelColor": "#353533",
118
53
  "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
119
- "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
54
+ "labelFontSize": 12,
55
+ "titleColor": "#0a0a0a",
56
+ "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
57
+ "titleFontSize": 13,
58
+ "titleFontWeight": 600
120
59
  },
121
60
  "legend": {
122
- "labelColor": "#c8c8c8",
123
- "titleColor": "#e6e6e6",
61
+ "labelColor": "#353533",
124
62
  "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
125
- "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
63
+ "labelFontSize": 12,
64
+ "titleColor": "#0a0a0a",
65
+ "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
66
+ "titleFontSize": 13,
67
+ "titleFontWeight": 600,
68
+ "symbolType": "circle",
69
+ "symbolSize": 100
126
70
  },
127
71
  "header": {
128
- "labelColor": "#c8c8c8",
129
- "titleColor": "#e6e6e6",
72
+ "labelColor": "#353533",
130
73
  "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
74
+ "titleColor": "#0a0a0a",
131
75
  "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
132
76
  },
77
+ "title": {
78
+ "color": "#0a0a0a",
79
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
80
+ "fontSize": 15,
81
+ "fontWeight": 600,
82
+ "subtitleColor": "#686863",
83
+ "subtitleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
84
+ "subtitleFontSize": 13
85
+ },
86
+ "mark": {
87
+ "color": "#2a78d6"
88
+ },
89
+ "view": {
90
+ "stroke": null
91
+ },
92
+ "axisXDiscrete": {
93
+ "labelAngle": 0,
94
+ "labelOverlap": "greedy",
95
+ "labelLimit": 120
96
+ },
97
+ "text": {
98
+ "color": "#0a0a0a",
99
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
100
+ },
101
+ "rule": {
102
+ "color": "#a8a8a2"
103
+ },
104
+ "line": {
105
+ "strokeWidth": 2
106
+ },
107
+ "point": {
108
+ "size": 64,
109
+ "filled": true
110
+ },
111
+ "bar": {
112
+ "cornerRadiusEnd": 4
113
+ },
114
+ "rect": {
115
+ "stroke": "#ffffff",
116
+ "strokeWidth": 2
117
+ },
118
+ "arc": {
119
+ "stroke": "#ffffff",
120
+ "strokeWidth": 2
121
+ },
122
+ "area": {
123
+ "stroke": "#ffffff",
124
+ "strokeWidth": 1
125
+ }
126
+ },
127
+ "dark": {
128
+ "background": "#121212",
129
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
133
130
  "range": {
134
131
  "category": [
135
- "#ff3b41",
136
- "#e69f00",
137
- "#56b4e9",
138
- "#009e73",
139
- "#f0e442",
140
- "#0072b2",
141
- "#cc79a7",
142
- "#4d5358"
132
+ "#3987e5",
133
+ "#d95926",
134
+ "#199e70",
135
+ "#c98500",
136
+ "#d55181",
137
+ "#008300",
138
+ "#9085e9",
139
+ "#e66767"
143
140
  ],
144
141
  "ordinal": [
145
- "#551112",
146
- "#8d1a1e",
147
- "#c13c3b",
148
- "#e66e68",
149
- "#f8a49d",
150
- "#fed2cd"
142
+ "#1b5298",
143
+ "#256abf",
144
+ "#3987e5",
145
+ "#6da7ec",
146
+ "#9ec5f4"
151
147
  ],
152
148
  "ramp": [
153
- "#551112",
154
- "#8d1a1e",
155
- "#c13c3b",
156
- "#e66e68",
157
- "#f8a49d",
158
- "#fed2cd"
149
+ "#1b5298",
150
+ "#256abf",
151
+ "#3987e5",
152
+ "#6da7ec",
153
+ "#9ec5f4"
159
154
  ],
160
155
  "heatmap": [
161
- "#551112",
162
- "#8d1a1e",
163
- "#c13c3b",
164
- "#e66e68",
165
- "#f8a49d",
166
- "#fed2cd"
156
+ "#1b5298",
157
+ "#256abf",
158
+ "#3987e5",
159
+ "#6da7ec",
160
+ "#9ec5f4"
167
161
  ],
168
162
  "diverging": [
169
163
  "#5aa3ec",
@@ -174,6 +168,84 @@
174
168
  "#e18e4b",
175
169
  "#f9a870"
176
170
  ]
171
+ },
172
+ "axis": {
173
+ "domainColor": "#555555",
174
+ "gridColor": "#383838",
175
+ "tickColor": "#555555",
176
+ "labelColor": "#c8c8c8",
177
+ "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
178
+ "labelFontSize": 12,
179
+ "titleColor": "#e6e6e6",
180
+ "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
181
+ "titleFontSize": 13,
182
+ "titleFontWeight": 600
183
+ },
184
+ "legend": {
185
+ "labelColor": "#c8c8c8",
186
+ "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
187
+ "labelFontSize": 12,
188
+ "titleColor": "#e6e6e6",
189
+ "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
190
+ "titleFontSize": 13,
191
+ "titleFontWeight": 600,
192
+ "symbolType": "circle",
193
+ "symbolSize": 100
194
+ },
195
+ "header": {
196
+ "labelColor": "#c8c8c8",
197
+ "labelFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
198
+ "titleColor": "#e6e6e6",
199
+ "titleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
200
+ },
201
+ "title": {
202
+ "color": "#e6e6e6",
203
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
204
+ "fontSize": 15,
205
+ "fontWeight": 600,
206
+ "subtitleColor": "#a0a0a0",
207
+ "subtitleFont": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
208
+ "subtitleFontSize": 13
209
+ },
210
+ "mark": {
211
+ "color": "#3987e5"
212
+ },
213
+ "view": {
214
+ "stroke": null
215
+ },
216
+ "axisXDiscrete": {
217
+ "labelAngle": 0,
218
+ "labelOverlap": "greedy",
219
+ "labelLimit": 120
220
+ },
221
+ "text": {
222
+ "color": "#e6e6e6",
223
+ "font": "'Inter', 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif"
224
+ },
225
+ "rule": {
226
+ "color": "#555555"
227
+ },
228
+ "line": {
229
+ "strokeWidth": 2
230
+ },
231
+ "point": {
232
+ "size": 64,
233
+ "filled": true
234
+ },
235
+ "bar": {
236
+ "cornerRadiusEnd": 4
237
+ },
238
+ "rect": {
239
+ "stroke": "#1c1c1c",
240
+ "strokeWidth": 2
241
+ },
242
+ "arc": {
243
+ "stroke": "#1c1c1c",
244
+ "strokeWidth": 2
245
+ },
246
+ "area": {
247
+ "stroke": "#1c1c1c",
248
+ "strokeWidth": 1
177
249
  }
178
250
  }
179
251
  }