From 14168f852c8b6e9ab8d2fb43a96568e7b1b3e8e4 Mon Sep 17 00:00:00 2001 From: Matthew Meszaros Date: Sun, 8 Mar 2026 08:02:22 +0000 Subject: [PATCH] feat: compact responsive charts layout with adaptive sizing --- README.md | 4 +- assets/charts.jpg | Bin 0 -> 188366 bytes examples/charts.zig | 176 ++++++++++++++++++++++++------------------ examples/showcase.zig | 81 ++++++++++++++----- 4 files changed, 162 insertions(+), 99 deletions(-) create mode 100644 assets/charts.jpg diff --git a/README.md b/README.md index f99764c..c9440ef 100644 --- a/README.md +++ b/README.md @@ -407,7 +407,9 @@ const chart = try spark.view(allocator); Cartesian chart with multiple datasets, axes, grid lines, legends, selectable markers, and interpolation modes (`linear`, stepped, `catmull_rom`, `monotone_cubic`): -Charts are passive views over your data. They do not animate on their own; they only change when your model updates the dataset. `zig build run-charts` and the `Charts` tab in `zig build run-showcase` now demonstrate both static snapshot charts and slower sampled/live updates. The standalone `run-charts` demo also auto-sizes to the current terminal and uses a scrollable viewport when the content is larger than the screen. +Charts are passive views over your data. They do not animate on their own; they only change when your model updates the dataset. `zig build run-charts` and the `Charts` tab in `zig build run-showcase` demonstrate both static snapshot charts and slower sampled/live updates. The standalone `run-charts` demo now renders as a compact chart dashboard that fits like the other examples instead of behaving like a scrollable document. + +![Charts Example](assets/charts.jpg) ```zig var chart = zz.Chart.init(allocator); diff --git a/assets/charts.jpg b/assets/charts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..341a17df2066e9c7613208ea3358dc78743d2e55 GIT binary patch literal 188366 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�-=st;H27P#%$R0&}C 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%0Ac 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

3%LH%r;0WlnXOS?T2>A(g;G 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 literal 0 HcmV?d00001 diff --git a/examples/charts.zig b/examples/charts.zig index ac3d4cb..e068450 100644 --- a/examples/charts.zig +++ b/examples/charts.zig @@ -1,4 +1,4 @@ -//! Charts example showcasing line charts, bar charts, sparklines, and the plotting canvas. +//! Charts example showcasing a compact chart-focused screen. const std = @import("std"); const zz = @import("zigzag"); @@ -7,7 +7,6 @@ const Model = struct { chart: zz.Chart, bars: zz.BarChart, spark: zz.Sparkline, - viewport: zz.Viewport, phase: f64, sample_gate: u8, @@ -19,7 +18,7 @@ const Model = struct { pub fn init(self: *Model, ctx: *zz.Context) zz.Cmd(Msg) { self.chart = zz.Chart.init(ctx.persistent_allocator); - self.chart.setSize(44, 16); + self.chart.setSize(36, 9); self.chart.setMarker(.braille); self.chart.setLegendPosition(.top); self.chart.x_axis = .{ @@ -38,10 +37,12 @@ const Model = struct { cpu.setShowPoints(true); cpu.setInterpolation(.monotone_cubic); cpu.setInterpolationSteps(10); + var mem = zz.ChartDataset.init(ctx.persistent_allocator, "Memory") catch unreachable; mem.setStyle((zz.Style{}).fg(zz.Color.magenta())); mem.setInterpolation(.catmull_rom); mem.setInterpolationSteps(10); + var backlog = zz.ChartDataset.init(ctx.persistent_allocator, "Backlog") catch unreachable; backlog.setStyle((zz.Style{}).fg(zz.Color.yellow())); backlog.setGraphType(.area); @@ -60,9 +61,10 @@ const Model = struct { self.chart.addDataset(backlog) catch unreachable; self.bars = zz.BarChart.init(ctx.persistent_allocator); - self.bars.setSize(30, 12); self.bars.setOrientation(.horizontal); - self.bars.show_values = true; + self.bars.setBarWidth(1); + self.bars.setGap(0); + self.bars.show_values = false; self.bars.label_style = (zz.Style{}).fg(zz.Color.gray(18)).inline_style(true); self.bars.positive_style = (zz.Style{}).fg(zz.Color.green()).inline_style(true); self.bars.negative_style = (zz.Style{}).fg(zz.Color.red()).inline_style(true); @@ -73,7 +75,7 @@ const Model = struct { self.bars.addBar(zz.Bar.init(ctx.persistent_allocator, "cache", 14) catch unreachable) catch unreachable; self.spark = zz.Sparkline.init(ctx.persistent_allocator); - self.spark.setWidth(28); + self.spark.setWidth(22); self.spark.setSummary(.average); self.spark.setRetentionLimit(120); self.spark.setGradient(zz.Color.hex("#F97316"), zz.Color.hex("#22C55E")); @@ -83,17 +85,9 @@ const Model = struct { self.spark.push(30.0 + 10.0 * @sin(x / 5.0)) catch unreachable; } - self.viewport = zz.Viewport.init(ctx.persistent_allocator, ctx.width, ctx.height); - self.viewport.setWrap(false); - self.viewport.setScrollbarChars("·", "█"); - self.viewport.setScrollbarStyle( - (zz.Style{}).fg(zz.Color.gray(8)).inline_style(true), - (zz.Style{}).fg(zz.Color.cyan()).inline_style(true), - ); - self.phase = 0; self.sample_gate = 0; - self.refreshViewport(ctx) catch {}; + self.syncChartsLayout(ctx); return zz.Cmd(Msg).tickMs(80); } @@ -101,7 +95,6 @@ const Model = struct { self.chart.deinit(); self.bars.deinit(); self.spark.deinit(); - self.viewport.deinit(); } pub fn update(self: *Model, msg: Msg, ctx: *zz.Context) zz.Cmd(Msg) { @@ -109,10 +102,10 @@ const Model = struct { .key => |key| switch (key.key) { .char => |c| if (c == 'q') return .quit, .escape => return .quit, - else => self.viewport.handleKey(key), + else => {}, }, .window_size => { - self.refreshViewport(ctx) catch {}; + self.syncChartsLayout(ctx); return .none; }, .tick => { @@ -142,8 +135,7 @@ const Model = struct { self.bars.bars.items[3].value = 8.0 + @cos(self.phase / 6.0) * 10.0; } - self.refreshViewport(ctx) catch {}; - + self.syncChartsLayout(ctx); return zz.Cmd(Msg).tickMs(80); }, } @@ -152,49 +144,83 @@ const Model = struct { } pub fn view(self: *const Model, ctx: *const zz.Context) []const u8 { - const viewport_view = self.viewport.view(ctx.allocator) catch ""; - return viewport_view; + @constCast(self).syncChartsLayout(ctx); + const content = self.composeContent(ctx) catch return "Error rendering charts"; + return zz.place.place(ctx.allocator, ctx.width, ctx.height, .center, .top, content) catch content; + } + + fn chartsCompact(ctx: *const zz.Context) bool { + return ctx.height <= 32 or ctx.width <= 110; } - fn refreshViewport(self: *Model, ctx: *zz.Context) !void { - self.viewport.setSize(ctx.width, ctx.height); - const content = try self.composeContent(ctx); - try self.viewport.setContent(content); + fn chartsUltraCompact(ctx: *const zz.Context) bool { + return ctx.height <= 24 or ctx.width <= 88; } - fn composeContent(self: *const Model, ctx: *zz.Context) ![]const u8 { + fn syncChartsLayout(self: *Model, ctx: *const zz.Context) void { + const ultra = chartsUltraCompact(ctx); + const compact = ultra or chartsCompact(ctx); + + self.chart.setSize( + if (ultra) 30 else if (compact) 32 else 36, + if (ultra) 6 else if (compact) 7 else 9, + ); + self.chart.setLegendPosition(if (compact) .hidden else .top); + self.chart.x_axis.title = if (compact) "" else "Time"; + self.chart.x_axis.tick_count = if (ultra) 4 else 5; + self.chart.y_axis.title = if (compact) "" else "Load"; + self.chart.y_axis.tick_count = if (ultra) 4 else 5; + + self.bars.setSize(if (ultra) 18 else 22, 4); + self.bars.show_values = !compact; + self.spark.setWidth(if (ultra) 12 else if (compact) 16 else 22); + } + + fn composeContent(self: *const Model, ctx: *const zz.Context) ![]const u8 { const line_chart = try self.chart.view(ctx.allocator); const snapshot = try self.renderStaticSnapshot(ctx); const bars = try self.bars.view(ctx.allocator); - const vertical = try self.renderVerticalBars(ctx); const spark = try self.spark.view(ctx.allocator); const canvas = try self.renderCanvas(ctx); - const top = try zz.joinHorizontal(ctx.allocator, &.{ - try box(ctx, "Sampled Stream", line_chart), - " ", - try box(ctx, "Static Snapshot", snapshot), - }); - const middle = try zz.joinHorizontal(ctx.allocator, &.{ - try box(ctx, "Bars", bars), - " ", - try box(ctx, "Vertical Bars", vertical), - }); - const bottom = try zz.joinHorizontal(ctx.allocator, &.{ - try box(ctx, "Sparkline", spark), - " ", - try box(ctx, "Canvas", canvas), - }); - - const note = "Scroll: j/k/h/l, arrows, PgUp/PgDn, g/G. Live panels update only when a new sample arrives."; - return try zz.joinVertical(ctx.allocator, &.{ top, "", middle, "", bottom, "", note, "", "Press q to quit" }); + const ultra = chartsUltraCompact(ctx); + const compact = ultra or chartsCompact(ctx); + + const top = try box(ctx, "Live Trend", line_chart); + const bottom = if (ultra) + try zz.join.horizontal(ctx.allocator, .middle, &.{ + try box(ctx, "Bars", bars), + " ", + try box(ctx, "Canvas", canvas), + }) + else if (compact) + try zz.join.horizontal(ctx.allocator, .middle, &.{ + try box(ctx, "Bars", bars), + " ", + try box(ctx, "Snapshot", snapshot), + }) + else + try zz.join.horizontal(ctx.allocator, .middle, &.{ + try box(ctx, "Bars", bars), + " ", + try box(ctx, "Snapshot", snapshot), + " ", + try box(ctx, "Canvas", canvas), + }); + + const spark_row = try inlineStat(ctx, "Spark", spark); + const footer = try inlineStat(ctx, "Keys", "q quit"); + return try zz.join.vertical(ctx.allocator, .center, &.{ top, "", bottom, "", spark_row, footer }); } fn renderCanvas(self: *const Model, ctx: *const zz.Context) ![]const u8 { + const ultra = chartsUltraCompact(ctx); + const compact = ultra or chartsCompact(ctx); + var canvas = zz.Canvas.init(ctx.allocator); defer canvas.deinit(); - canvas.setSize(28, 10); + canvas.setSize(if (ultra) 12 else if (compact) 14 else 16, if (ultra) 4 else 5); canvas.setMarker(.braille); canvas.setRanges(.{ .min = -1.2, .max = 1.2 }, .{ .min = -1.2, .max = 1.2 }); @@ -202,46 +228,27 @@ const Model = struct { point_style = point_style.fg(zz.Color.yellow()); point_style = point_style.inline_style(true); - for (0..80) |i| { + for (0..64) |i| { const t = self.phase / 10.0 + @as(f64, @floatFromInt(i)) / 18.0; - const x = @sin(t * 1.7); - const y = @cos(t * 2.3); - try canvas.drawPointStyled(x, y, point_style, null); + try canvas.drawPointStyled(@sin(t * 1.7), @cos(t * 2.3), point_style, null); } return try canvas.view(ctx.allocator); } - fn renderVerticalBars(self: *const Model, ctx: *const zz.Context) ![]const u8 { - _ = self; - var chart = zz.BarChart.init(ctx.allocator); - defer chart.deinit(); - - chart.setSize(22, 10); - chart.setOrientation(.vertical); - chart.show_values = true; - chart.label_style = (zz.Style{}).fg(zz.Color.gray(18)).inline_style(true); - chart.axis_style = (zz.Style{}).fg(zz.Color.gray(10)).inline_style(true); - chart.positive_style = (zz.Style{}).fg(zz.Color.hex("#F97316")).inline_style(true); - chart.negative_style = (zz.Style{}).fg(zz.Color.hex("#EF4444")).inline_style(true); - try chart.addBar(try zz.Bar.init(ctx.allocator, "Mon", 9)); - try chart.addBar(try zz.Bar.init(ctx.allocator, "Tue", 13)); - try chart.addBar(try zz.Bar.init(ctx.allocator, "Wed", 6)); - try chart.addBar(try zz.Bar.init(ctx.allocator, "Thu", -4)); - try chart.addBar(try zz.Bar.init(ctx.allocator, "Fri", 11)); - return try chart.view(ctx.allocator); - } - fn renderStaticSnapshot(self: *const Model, ctx: *const zz.Context) ![]const u8 { _ = self; + const ultra = chartsUltraCompact(ctx); + const compact = ultra or chartsCompact(ctx); + var chart = zz.Chart.init(ctx.allocator); defer chart.deinit(); - chart.setSize(34, 12); + chart.setSize(if (ultra) 16 else if (compact) 18 else 20, if (ultra) 5 else 6); chart.setMarker(.braille); - chart.setLegendPosition(.top); - chart.x_axis = .{ .title = "Quarter", .tick_count = 4, .show_grid = true }; - chart.y_axis = .{ .title = "Revenue", .tick_count = 4, .show_grid = true }; + chart.setLegendPosition(if (compact) .hidden else .top); + chart.x_axis = .{ .title = if (compact) "" else "Quarter", .tick_count = if (ultra) 3 else 4, .show_grid = !ultra }; + chart.y_axis = .{ .title = if (compact) "" else "Revenue", .tick_count = if (ultra) 3 else 4, .show_grid = !ultra }; var actual = try zz.ChartDataset.init(ctx.allocator, "Actual"); actual.setStyle((zz.Style{}).fg(zz.Color.hex("#22C55E")).bold(true)); @@ -275,7 +282,7 @@ fn box(ctx: *const zz.Context, title: []const u8, body: []const u8) ![]const u8 var style = zz.Style{}; style = style.borderAll(zz.Border.rounded); style = style.borderForeground(zz.Color.gray(12)); - style = style.paddingAll(1); + style = style.paddingLeft(1).paddingRight(1); var header_style = zz.Style{}; header_style = header_style.bold(true); @@ -283,10 +290,25 @@ fn box(ctx: *const zz.Context, title: []const u8, body: []const u8) ![]const u8 header_style = header_style.inline_style(true); const header = try header_style.render(ctx.allocator, title); - const content = try std.fmt.allocPrint(ctx.allocator, "{s}\n\n{s}", .{ header, body }); + const content = try std.fmt.allocPrint(ctx.allocator, "{s}\n{s}", .{ header, body }); return try style.render(ctx.allocator, content); } +fn inlineStat(ctx: *const zz.Context, label: []const u8, value: []const u8) ![]const u8 { + var label_style = zz.Style{}; + label_style = label_style.fg(zz.Color.gray(15)); + label_style = label_style.inline_style(true); + const rendered_label = try label_style.render(ctx.allocator, label); + + var value_style = zz.Style{}; + value_style = value_style.bold(true); + value_style = value_style.fg(zz.Color.white()); + value_style = value_style.inline_style(true); + const rendered_value = try value_style.render(ctx.allocator, value); + + return try std.fmt.allocPrint(ctx.allocator, "{s}: {s}", .{ rendered_label, rendered_value }); +} + pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; defer _ = gpa.deinit(); diff --git a/examples/showcase.zig b/examples/showcase.zig index b8bb861..0fbfd9e 100644 --- a/examples/showcase.zig +++ b/examples/showcase.zig @@ -88,7 +88,7 @@ const Model = struct { self.sparkline.setGradient(zz.Color.hex("#F97316"), zz.Color.hex("#22C55E")); self.chart = zz.Chart.init(ctx.persistent_allocator); - self.chart.setSize(52, 18); + self.chart.setSize(42, 13); self.chart.setMarker(.braille); self.chart.setLegendPosition(.top); self.chart.x_axis = .{ @@ -131,7 +131,7 @@ const Model = struct { self.chart.addDataset(backlog) catch unreachable; self.bars = zz.BarChart.init(ctx.persistent_allocator); - self.bars.setSize(32, 12); + self.bars.setSize(28, 8); self.bars.setOrientation(.horizontal); self.bars.show_values = true; self.bars.label_style = (zz.Style{}).fg(zz.Color.gray(18)).inline_style(true); @@ -482,6 +482,34 @@ const Model = struct { ) catch main_view; } + fn chartsCompact(ctx: *const zz.Context) bool { + return ctx.height <= 34 or ctx.width <= 120; + } + + fn chartsUltraCompact(ctx: *const zz.Context) bool { + return ctx.height <= 28 or ctx.width <= 96; + } + + fn syncChartsLayout(self: *Model, ctx: *const zz.Context) void { + const ultra = chartsUltraCompact(ctx); + const compact = ultra or chartsCompact(ctx); + + self.chart.setSize( + if (ultra) 34 else if (compact) 38 else 42, + if (ultra) 8 else if (compact) 10 else 13, + ); + self.chart.setLegendPosition(if (ultra) .hidden else .top); + self.chart.x_axis.title = if (compact) "" else "Time"; + self.chart.x_axis.tick_count = if (ultra) 4 else 5; + self.chart.y_axis.title = if (compact) "" else "Utilization"; + self.chart.y_axis.tick_count = if (ultra) 4 else 5; + + self.bars.setSize(if (ultra) 22 else 26, if (ultra) 4 else 5); + self.bars.setBarWidth(1); + self.bars.setGap(0); + self.bars.show_values = !compact; + } + fn renderTabBar(self: *const Model, ctx: *const zz.Context) ![]const u8 { var result = std.array_list.Managed(u8).init(ctx.allocator); const writer = result.writer(); @@ -721,6 +749,8 @@ const Model = struct { } fn renderChartsTab(self: *const Model, ctx: *const zz.Context) ![]const u8 { + @constCast(self).syncChartsLayout(ctx); + const trend_view = try self.chart.view(ctx.allocator); const bars_view = try self.bars.view(ctx.allocator); const vertical_view = try self.renderVerticalBars(ctx); @@ -730,17 +760,17 @@ const Model = struct { var trend_style = zz.Style{}; trend_style = trend_style.borderAll(zz.Border.rounded); trend_style = trend_style.borderForeground(zz.Color.cyan()); - trend_style = trend_style.paddingAll(1); + trend_style = trend_style.paddingLeft(1).paddingRight(1); var bars_style = zz.Style{}; bars_style = bars_style.borderAll(zz.Border.rounded); bars_style = bars_style.borderForeground(zz.Color.green()); - bars_style = bars_style.paddingAll(1); + bars_style = bars_style.paddingLeft(1).paddingRight(1); var aux_style = zz.Style{}; aux_style = aux_style.borderAll(zz.Border.rounded); aux_style = aux_style.borderForeground(zz.Color.yellow()); - aux_style = aux_style.paddingAll(1); + aux_style = aux_style.paddingLeft(1).paddingRight(1); const trend_box = try trend_style.render(ctx.allocator, try self.section(ctx, "Interpolated Lines + Area", trend_view)); const bars_box = try bars_style.render(ctx.allocator, try self.section(ctx, "Horizontal Bars", bars_view)); @@ -748,16 +778,17 @@ const Model = struct { const snapshot_box = try aux_style.render(ctx.allocator, try self.section(ctx, "Static Snapshot", snapshot_view)); const canvas_box = try aux_style.render(ctx.allocator, try self.section(ctx, "Canvas Plot", canvas_view)); - const top = try zz.joinHorizontal(ctx.allocator, &.{ trend_box, " ", bars_box }); - const bottom = try zz.joinHorizontal(ctx.allocator, &.{ vertical_box, " ", snapshot_box, " ", canvas_box }); + if (chartsUltraCompact(ctx)) { + return zz.join.vertical(ctx.allocator, .center, &.{ trend_box, "", bars_box }); + } - var hint_style = zz.Style{}; - hint_style = hint_style.fg(zz.Color.gray(10)); - hint_style = hint_style.italic(true); - hint_style = hint_style.inline_style(true); - const hint = try hint_style.render(ctx.allocator, "Live charts sample at a slower cadence; static snapshot panels show that charts stay fixed until your model changes the data."); + const bottom = if (chartsCompact(ctx)) + try zz.join.horizontal(ctx.allocator, .middle, &.{ bars_box, " ", snapshot_box }) + else + try zz.join.horizontal(ctx.allocator, .middle, &.{ bars_box, " ", snapshot_box, " ", canvas_box }); - return zz.joinVertical(ctx.allocator, &.{ top, "", bottom, "", hint }); + _ = vertical_box; + return zz.join.vertical(ctx.allocator, .center, &.{ trend_box, "", bottom }); } fn renderFilesTab(self: *const Model, ctx: *const zz.Context) ![]const u8 { @@ -780,12 +811,16 @@ const Model = struct { } fn renderVerticalBars(_: *const Model, ctx: *const zz.Context) ![]const u8 { + const compact = chartsCompact(ctx); + const ultra = chartsUltraCompact(ctx); var chart = zz.BarChart.init(ctx.allocator); defer chart.deinit(); - chart.setSize(24, 10); + chart.setSize(if (ultra) 16 else if (compact) 18 else 20, if (ultra) 5 else if (compact) 6 else 8); chart.setOrientation(.vertical); - chart.show_values = true; + chart.setBarWidth(1); + chart.setGap(0); + chart.show_values = !compact; chart.label_style = (zz.Style{}).fg(zz.Color.gray(18)).inline_style(true); chart.axis_style = (zz.Style{}).fg(zz.Color.gray(10)).inline_style(true); chart.positive_style = (zz.Style{}).fg(zz.Color.hex("#F97316")).inline_style(true); @@ -800,10 +835,12 @@ const Model = struct { fn renderChartCanvas(self: *const Model, ctx: *const zz.Context) ![]const u8 { _ = self; + const compact = chartsCompact(ctx); + const ultra = chartsUltraCompact(ctx); var canvas = zz.Canvas.init(ctx.allocator); defer canvas.deinit(); - canvas.setSize(24, 10); + canvas.setSize(if (ultra) 16 else if (compact) 18 else 20, if (ultra) 5 else if (compact) 6 else 8); canvas.setMarker(.braille); canvas.setRanges(.{ .min = -1.2, .max = 1.2 }, .{ .min = -1.2, .max = 1.2 }); @@ -820,14 +857,16 @@ const Model = struct { } fn renderStaticSnapshot(_: *const Model, ctx: *const zz.Context) ![]const u8 { + const compact = chartsCompact(ctx); + const ultra = chartsUltraCompact(ctx); var chart = zz.Chart.init(ctx.allocator); defer chart.deinit(); - chart.setSize(24, 10); + chart.setSize(if (ultra) 16 else if (compact) 18 else 20, if (ultra) 6 else if (compact) 7 else 8); chart.setMarker(.braille); - chart.setLegendPosition(.top); - chart.x_axis = .{ .title = "Quarter", .tick_count = 4, .show_grid = true }; - chart.y_axis = .{ .title = "Score", .tick_count = 4, .show_grid = true }; + chart.setLegendPosition(if (compact) .hidden else .top); + chart.x_axis = .{ .title = if (compact) "" else "Quarter", .tick_count = if (ultra) 3 else 4, .show_grid = !ultra }; + chart.y_axis = .{ .title = if (compact) "" else "Score", .tick_count = if (ultra) 3 else 4, .show_grid = !ultra }; var actual = try zz.ChartDataset.init(ctx.allocator, "A"); actual.setStyle((zz.Style{}).fg(zz.Color.hex("#22C55E")).bold(true)); @@ -862,7 +901,7 @@ const Model = struct { header_style = header_style.fg(zz.Color.white()); header_style = header_style.inline_style(true); const header = try header_style.render(ctx.allocator, title); - return try std.fmt.allocPrint(ctx.allocator, "{s}\n\n{s}", .{ header, body }); + return try std.fmt.allocPrint(ctx.allocator, "{s}\n{s}", .{ header, body }); } fn renderEditorTab(self: *const Model, ctx: *const zz.Context) ![]const u8 {