x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<div class="p-8"> <figure class="midwest-chart chart-type-column legend-alignment-center" data-controller="midwest-chart" data-midwest-chart-tooltip-enabled-value="true"> <svg viewBox="0 0 600 320" width="600" height="320" role="img" aria-label="" class="chart-svg" data-midwest-chart-target="svg"> <title></title> <desc>2 series: Series A, Series B; 6 data points</desc> <g class="chart-grid" aria-hidden="true"> <line x1="60.0" y1="284.0" x2="580.0" y2="284.0" /> <line x1="60.0" y1="218.0" x2="580.0" y2="218.0" /> <line x1="60.0" y1="152.0" x2="580.0" y2="152.0" /> <line x1="60.0" y1="86.0" x2="580.0" y2="86.0" /> <line x1="60.0" y1="20.0" x2="580.0" y2="20.0" /> </g> <g class="chart-axis chart-axis-x" aria-hidden="true"> <line x1="103.33" y1="284.0" x2="103.33" y2="288.0" /> <text x="103.33" y="300.0" text-anchor="middle" transform=""> Jan </text> <line x1="190.0" y1="284.0" x2="190.0" y2="288.0" /> <text x="190.0" y="300.0" text-anchor="middle" transform=""> Feb </text> <line x1="276.67" y1="284.0" x2="276.67" y2="288.0" /> <text x="276.67" y="300.0" text-anchor="middle" transform=""> Mar </text> <line x1="363.33" y1="284.0" x2="363.33" y2="288.0" /> <text x="363.33" y="300.0" text-anchor="middle" transform=""> Apr </text> <line x1="450.0" y1="284.0" x2="450.0" y2="288.0" /> <text x="450.0" y="300.0" text-anchor="middle" transform=""> May </text> <line x1="536.67" y1="284.0" x2="536.67" y2="288.0" /> <text x="536.67" y="300.0" text-anchor="middle" transform=""> Jun </text> </g> <g class="chart-axis chart-axis-y" aria-hidden="true"> <line x1="56.0" y1="284.0" x2="60.0" y2="284.0" /> <text x="52.0" y="288.0" text-anchor="end">0</text> <line x1="56.0" y1="218.0" x2="60.0" y2="218.0" /> <text x="52.0" y="222.0" text-anchor="end">20</text> <line x1="56.0" y1="152.0" x2="60.0" y2="152.0" /> <text x="52.0" y="156.0" text-anchor="end">40</text> <line x1="56.0" y1="86.0" x2="60.0" y2="86.0" /> <text x="52.0" y="90.0" text-anchor="end">60</text> <line x1="56.0" y1="20.0" x2="60.0" y2="20.0" /> <text x="52.0" y="24.0" text-anchor="end">80</text> </g> <g class="chart-bars"> <g class="chart-series" style="--i: 0"> <rect x="68.23" y="145.4" width="31.2" height="138.6" fill="var(--theme-6)" data-tooltip-content="Series A: 42" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 42" /> <rect x="154.9" y="102.5" width="31.2" height="181.5" fill="var(--theme-6)" data-tooltip-content="Series A: 55" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 55" /> <rect x="241.57" y="158.6" width="31.2" height="125.4" fill="var(--theme-6)" data-tooltip-content="Series A: 38" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 38" /> <rect x="328.23" y="82.7" width="31.2" height="201.3" fill="var(--theme-6)" data-tooltip-content="Series A: 61" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 61" /> <rect x="414.9" y="39.8" width="31.2" height="244.2" fill="var(--theme-6)" data-tooltip-content="Series A: 74" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 74" /> <rect x="501.57" y="102.5" width="31.2" height="181.5" fill="var(--theme-6)" data-tooltip-content="Series A: 55" class="chart-bar" tabindex="0" role="img" aria-label="Series A: 55" /> </g> <g class="chart-series" style="--i: 1"> <rect x="107.23" y="191.6" width="31.2" height="92.4" fill="var(--complement-6)" data-tooltip-content="Series B: 28" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 28" /> <rect x="193.9" y="175.1" width="31.2" height="108.9" fill="var(--complement-6)" data-tooltip-content="Series B: 33" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 33" /> <rect x="280.57" y="135.5" width="31.2" height="148.5" fill="var(--complement-6)" data-tooltip-content="Series B: 45" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 45" /> <rect x="367.23" y="161.9" width="31.2" height="122.1" fill="var(--complement-6)" data-tooltip-content="Series B: 37" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 37" /> <rect x="453.9" y="112.4" width="31.2" height="171.6" fill="var(--complement-6)" data-tooltip-content="Series B: 52" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 52" /> <rect x="540.57" y="125.6" width="31.2" height="158.4" fill="var(--complement-6)" data-tooltip-content="Series B: 48" class="chart-bar" tabindex="0" role="img" aria-label="Series B: 48" /> </g> </g> </svg> <div id="midwest-chart-73696-tooltip" class="midwest-chart-tooltip" data-midwest-chart-target="tooltip" role="tooltip"></div> <ul class="chart-legend" aria-label="Chart legend"> <li class="chart-legend-item"> <span class="chart-legend-swatch" style="background: var(--theme-6)"></span> Series A </li> <li class="chart-legend-item"> <span class="chart-legend-swatch" style="background: var(--complement-6)"></span> Series B </li> </ul> </figure></div>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="p-8"> <% type = params[:horizontal] == true ? :bar : :column %> <% axis_key = params[:horizontal] == true ? :y_axis : :x_axis %> <%= midwest_chart( type, title: params[:title].presence, animated: params[:animated] == true, horizontal: params[:horizontal] == true, rounded_corners: params[:rounded_corners]&.to_i, bar_padding: params[:bar_padding]&.to_f, group_padding: params[:group_padding]&.to_f, data_labels: params[:data_labels] == true, **{ axis_key => { categories: %w[Jan Feb Mar Apr May Jun] } }, series: [ { name: "Series A", data: [42, 55, 38, 61, 74, 55] }, { name: "Series B", data: [28, 33, 45, 37, 52, 48] } ] ) %></div>Column Playground
Explore column / bar chart options live.
| Param | Description | Input |
|---|---|---|
|
Chart title |
|
|
|
Animate bars on load |
|
|
|
Render as horizontal bar chart |
|
|
|
px radius on bar leading edge (0 to disable) |
|
|
|
0.0–1.0 gap between bars within a group |
|
|
|
0.0–1.0 gap between category groups |
|
|
|
Show value labels on bars |
|
No assets to display.
Add a .js or .css file alongside the component to see it here.
Figma embed for Chart/column_playground
Annotate a preview to embed its Figma design here:
@figma "https://figma.com/..."