summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/gui-goldens.txt2
-rw-r--r--test/gui_golden.py61
-rw-r--r--test/output.zig32
-rw-r--r--test/snapshots/theme.golden136
-rw-r--r--test/snapshots/theme.snap17
-rw-r--r--test/snapshots/themesel.golden464
-rw-r--r--test/snapshots/themesel.snap34
7 files changed, 392 insertions, 354 deletions
diff --git a/test/gui-goldens.txt b/test/gui-goldens.txt
index 93e77764..2b364b37 100644
--- a/test/gui-goldens.txt
+++ b/test/gui-goldens.txt
@@ -14,4 +14,4 @@
15-theme-acme-light ca5252f5117ac8d6c679cef917c9f316c9ca311fc7a8dcbac2796b4fc04d3b64
16-debug 591bb7c45b4b9c46cd2458330b4fa3962afc6dac827fa6f5e20e927a72c586e6
17-terminal 38299427891e31de0b5597159501c161474620eb26fd7708a6396f0fd685209e
-18-mid-transition 80cf350f8736fa4b348225a3872572a799ce57c763939796b68e8c839418f8ee
+18-mid-transition 5d3e37d874988b460297e18df9508a77b602d5f675e28983c2c793871d4301f6
diff --git a/test/gui_golden.py b/test/gui_golden.py
index 99e8c636..24fc5986 100644
--- a/test/gui_golden.py
+++ b/test/gui_golden.py
@@ -9,7 +9,8 @@ The window is hidden (PARDES_TEST renders into an offscreen capture texture),
and the capture carries PARDES_TEST_PAD leftover pixels so edge bugs show.
GPU rasterisation differs between machines and drivers: the goldens in
test/gui-goldens.txt are a LOCAL gate for one machine, never a CI one. Each
-scene waits until two captures 400 ms apart agree before it is hashed.
+scene waits until the window says it is idle (its status file) before it is
+hashed, so a loaded machine gives the same frames.
"""
import argparse
import hashlib
@@ -60,24 +61,34 @@ def panes(client):
return {serial: client.read(f'/pane/{serial}/tag').decode(errors='replace') for serial in serials}
+def status(root):
+ """The window's (step, frames captured, idle), or None before the first."""
+ try:
+ step, frames, idle = (root / 'status').read_text().split()[:3]
+ return int(step), int(frames), idle == '1'
+ except (FileNotFoundError, ValueError):
+ return None
+
+
def settled(root):
- """The capture once it stops changing: two reads 400 ms apart agree."""
- latest = root / 'latest.ppm'
- previous = None
- deadline = time.monotonic() + 20
+ """The capture once the window says it is idle: a loop step past the one
+ current when this was asked, with nothing owing a frame (the window's
+ status file, gui.zig writeTestStatus). Every command before this call has
+ been served by then (a 9P write returns once the core has it), so the
+ frame is the scene's however loaded the machine is; the digest of it."""
+ deadline = time.monotonic() + 60
+ start = None
while time.monotonic() < deadline:
- time.sleep(.4)
- try:
- data = latest.read_bytes()
- except FileNotFoundError:
- continue
- if not data.startswith(b'P6'):
- continue
- digest = hashlib.sha256(data).hexdigest()
- if digest == previous:
- return digest
- previous = digest
- raise RuntimeError('capture never settled')
+ now = status(root)
+ if now is not None:
+ if start is None:
+ start = now[0]
+ elif now[0] >= start + 2 and now[2] and now[1] > 0:
+ data = (root / 'latest.ppm').read_bytes()
+ if data.startswith(b'P6'):
+ return hashlib.sha256(data).hexdigest()
+ time.sleep(.02)
+ raise RuntimeError('the window never went idle')
def run(args):
@@ -86,6 +97,12 @@ def run(args):
root = Path(tempfile.gettempdir()) / 'pardes-gui-golden'
shutil.rmtree(root, ignore_errors=True)
root.mkdir(mode=0o700)
+ # Captures go outside the session's own directory: a file written there
+ # every frame is a change in the directory its panes look at, which
+ # would ask for another frame, and so on for ever.
+ captures = Path(tempfile.gettempdir()) / 'pardes-gui-golden-captures'
+ shutil.rmtree(captures, ignore_errors=True)
+ captures.mkdir(mode=0o700)
name = 'gui-golden'
config = root / 'config/pardes'
config.mkdir(parents=True)
@@ -109,7 +126,7 @@ def run(args):
# The virtual clock: a transition's frames are the same frames on any
# machine, so one partway through can be hashed too.
inherited = {'PARDES_TEST': '1', 'PARDES_TEST_CLOCK': '1', 'PARDES_TEST_COLS': '120', 'PARDES_TEST_ROWS': '40',
- 'PARDES_TEST_PAD': '7', 'PARDES_TEST_CAPTURE_DIR': str(root),
+ 'PARDES_TEST_PAD': '7', 'PARDES_TEST_CAPTURE_DIR': str(captures),
'SDL_VIDEODRIVER': 'wayland', 'WAYLAND_DISPLAY': str(display)}
launch = ['-c', 'stty cols 120 rows 40; exec "$@"', name, str(args.binary.resolve()),
'--9p=' + name, str(source)]
@@ -120,11 +137,11 @@ def run(args):
if 'shapes.zig' in tag), None)), 'source pane missing')
def scene(label, frame='latest.ppm'):
- settled(root)
- results.append((label, hashlib.sha256((root / frame).read_bytes()).hexdigest()))
+ settled(captures)
+ results.append((label, hashlib.sha256((captures / frame).read_bytes()).hexdigest()))
if args.keep:
args.keep.mkdir(parents=True, exist_ok=True)
- shutil.copyfile(root / frame, args.keep / (label + '.ppm'))
+ shutil.copyfile(captures / frame, args.keep / (label + '.ppm'))
print(label, results[-1][1][:16], flush=True)
def mouse(kind, button, x, y):
@@ -201,7 +218,7 @@ def run(args):
# chrome slides with each pane.
client.write('/ctl', b'PanelSlide\n')
client.write(f'/pane/{first}/exec', b'Newcol\n')
- require(wait_for(lambda: (root / 'transition-6.ppm').exists()), 'transition frame 6 never drawn')
+ require(wait_for(lambda: (captures / 'transition-6.ppm').exists()), 'transition frame 6 never drawn')
scene('18-mid-transition', 'transition-6.ppm')
lines = ''.join(f'{label} {digest}\n' for label, digest in results)
if args.update:
diff --git a/test/output.zig b/test/output.zig
index 21c02e0a..4332fd13 100644
--- a/test/output.zig
+++ b/test/output.zig
@@ -952,7 +952,7 @@ test "N exactly reverses n across output panes and the ring seam" {
try std.testing.expect(saw_first and saw_second);
}
-test "Themes groups native themes first and skips headings in both directions" {
+test "Themes lists the ring in sections and skips headings in both directions" {
const p = try Pardes.init(std.testing.allocator, .{ .tty_only = true, .cols = 100, .rows = 40 });
defer p.deinit();
const source = try p.setTestFile("notes\n");
@@ -966,17 +966,35 @@ test "Themes groups native themes first and skips headings in both directions" {
try std.testing.expectEqual(@as(i32, 0), list.body.cur_row);
try std.testing.expectEqual(@as(usize, 0), list.file.?.scroll);
try std.testing.expectEqualStrings("# Pardes themes", modal.lineSlice(content, 0));
- try std.testing.expectEqualStrings("# Legacy and imported themes", modal.lineSlice(content, pardes.native_theme_count + 2));
- try std.testing.expectEqual(@as(usize, pardes.themes.len + 3), std.mem.count(u8, content, "\n"));
+ // Every theme in ring order, each section's heading after a blank line
+ // where colors.groupAt says one starts.
+ var row: usize = 1;
+ var sections: usize = 1;
+ var first_break: ?usize = null;
for (pardes.themes, 0..) |theme, i| {
- const row = i + 1 + @as(usize, if (i >= pardes.native_theme_count) 2 else 0);
+ if (i > 0) if (pardes.colors.groupAt(i)) |title| {
+ try std.testing.expectEqualStrings("", modal.lineSlice(content, row));
+ try std.testing.expect(std.mem.startsWith(u8, modal.lineSlice(content, row + 1), "# "));
+ try std.testing.expectEqualStrings(title, modal.lineSlice(content, row + 1)["# ".len..]);
+ row += 2;
+ sections += 1;
+ if (first_break == null) first_break = i;
+ };
const line = modal.lineSlice(content, row);
try std.testing.expect(std.mem.startsWith(u8, line, "Theme "));
try std.testing.expectEqualStrings(theme.name, line["Theme ".len..]);
+ row += 1;
}
+ try std.testing.expectEqual(pardes.themes.len + 1 + 2 * (sections - 1), std.mem.count(u8, content, "\n"));
+ // acme is a current theme: it is listed before any break.
+ const acme = for (pardes.themes, 0..) |t, i| {
+ if (std.mem.eql(u8, t.name, "acme")) break i;
+ } else return error.MissingAcme;
+ const brk = first_break orelse return error.NoSections;
+ try std.testing.expect(acme < brk);
// Opening an imported theme's selector must still begin with the natives.
// Walk across the section break without selecting or executing a heading.
- for (pardes.themes[0 .. pardes.native_theme_count + 1]) |theme| {
+ for (pardes.themes[0 .. brk + 1]) |theme| {
p.update(.{ .key = .{ .cp = 'n' } });
try std.testing.expectEqual(tid, p.active);
const selected = selectedOutputText(list) orelse return error.MissingThemesection;
@@ -985,9 +1003,9 @@ test "Themes groups native themes first and skips headings in both directions" {
}
p.update(.{ .key = .{ .cp = 'N' } });
const previous = selectedOutputText(list) orelse return error.MissingThemesection;
- try std.testing.expectEqualStrings(pardes.themes[pardes.native_theme_count - 1].name, previous["Theme ".len..]);
+ try std.testing.expectEqualStrings(pardes.themes[brk - 1].name, previous["Theme ".len..]);
p.update(.{ .key = .{ .cp = Key.tab } });
- try std.testing.expectEqual(pardes.native_theme_count - 1, p.settings.theme);
+ try std.testing.expectEqual(brk - 1, p.settings.theme);
}
test "n/N selects command outputs by whole row" {
diff --git a/test/snapshots/theme.golden b/test/snapshots/theme.golden
index a6bd6e60..db3da7d8 100644
--- a/test/snapshots/theme.golden
+++ b/test/snapshots/theme.golden
@@ -544,72 +544,6 @@
|28: 0-0 d,#608269, 1-1 d,#000000, 2-49 #f2f8ef,#000000, 50-50 d,#608269, 51-51 d,#000000, 52-99 #f2f8ef,#000000,
|29: 0-0 d,#608269, 1-1 d,#000000, 2-49 #f2f8ef,#000000, 50-50 d,#608269, 51-51 d,#000000, 52-99 #f2f8ef,#000000,
|30: 0-0 d,#608269, 1-1 d,#000000, 2-49 #f2f8ef,#000000, 50-50 d,#608269, 51-51 d,#000000, 52-99 #f2f8ef,#000000,
-== snap helix grid=100x31 cursor=4,6
-== style helix grid=100x31
-|0: 0-50 #949494,#121212, 51-59 #080808,#80a0ff, 60-70 #949494,#121212, 71-99 d,#121212,
-|1: 0-1 #ffffff,#826f46, 2-2 d,#3a3a3a, 3-34 #bdbdbd,#3a3a3a, 35-49 d,#3a3a3a, 50-51 #ffffff,#826f46, 52-52 d,#121212, 53-84 #949494,#121212, 85-99 d,#121212,
-|2: 0-1 #ffffff,#626262, 2-2 d,#3a3a3a, 3-49 #bdbdbd,#3a3a3a, 50-51 #ffffff,#262626, 52-52 d,#121212, 53-99 #949494,#121212,
-|3: 0-2 d,#3a3a3a, 3-20 #bdbdbd,#3a3a3a, 21-49 d,#3a3a3a, 50-52 d,#121212, 53-70 #949494,#121212, 71-99 d,#121212,
-|4: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|5: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|6: 0-0 d,#444444, 1-49 d,#080808, 50-50 d,#444444, 51-99 d,#080808,
-|7: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|8: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|9: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|10: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|11: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|12: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|13: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|14: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|15: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|16: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|17: 0-1 #ffffff,#262626, 2-2 d,#121212, 3-49 #949494,#121212, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|18: 0-2 d,#121212, 3-20 #949494,#121212, 21-49 d,#121212, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|19: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|20: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|21: 0-0 d,#444444, 1-49 d,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|22: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|23: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|24: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|25: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|26: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|27: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|28: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|29: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-|30: 0-0 d,#444444, 1-1 d,#080808, 2-49 #bdbdbd,#080808, 50-50 d,#444444, 51-51 d,#080808, 52-99 #bdbdbd,#080808,
-== snap dark grid=100x31 cursor=4,6
-== style dark grid=100x31
-|0: 0-50 #969696,#2c2a3e, 51-59 #d8c8a8,#513c17, 60-70 #969696,#2c2a3e, 71-99 d,#2c2a3e,
-|1: 0-1 #ffffff,#867a4e, 2-2 d,#484566, 3-34 #c8c8c8,#484566, 35-49 d,#484566, 50-51 #ffffff,#867a4e, 52-52 d,#2c2a3e, 53-84 #969696,#2c2a3e, 85-99 d,#2c2a3e,
-|2: 0-1 #ffffff,#663fe0, 2-2 d,#484566, 3-49 #c8c8c8,#484566, 50-51 #ffffff,#353a58, 52-52 d,#2c2a3e, 53-99 #969696,#2c2a3e,
-|3: 0-2 d,#484566, 3-20 #c8c8c8,#484566, 21-49 d,#484566, 50-52 d,#2c2a3e, 53-70 #969696,#2c2a3e, 71-99 d,#2c2a3e,
-|4: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|5: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|6: 0-0 d,#525252, 1-49 d,d, 50-50 d,#525252, 51-99 d,d,
-|7: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|8: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|9: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|10: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|11: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|12: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|13: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|14: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|15: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|16: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|17: 0-1 #ffffff,#353a58, 2-2 d,#2c2a3e, 3-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|18: 0-2 d,#2c2a3e, 3-20 #969696,#2c2a3e, 21-49 d,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|19: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|20: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|21: 0-0 d,#525252, 1-49 d,d, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|22: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|23: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|24: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|25: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|26: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|27: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|28: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|29: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
-|30: 0-0 d,#525252, 1-1 d,d, 2-49 #969696,#2c2a3e, 50-50 d,#525252, 51-51 d,d, 52-99 #969696,#2c2a3e,
== snap acme grid=100x31 cursor=4,6
== style acme grid=100x31
|0: 0-50 #000000,#eaffff, 51-59 #000000,#9eeeee, 60-70 #000000,#eaffff, 71-99 d,#eaffff,
@@ -643,8 +577,8 @@
|28: 0-1 d,#ffffea, 2-49 #000000,#ffffea, 50-51 d,#ffffea, 52-99 #000000,#ffffea,
|29: 0-1 d,#ffffea, 2-49 #000000,#ffffea, 50-51 d,#ffffea, 52-99 #000000,#ffffea,
|30: 0-1 d,#ffffea, 2-49 #000000,#ffffea, 50-51 d,#ffffea, 52-99 #000000,#ffffea,
-== snap generated grid=100x31 cursor=4,6
-== style generated grid=100x31
+== snap lapis grid=100x31 cursor=4,6
+== style lapis grid=100x31
|0: 0-50 #9aa6d9,#0f1a4a, 51-59 #0f1a4a,#e8c46a, 60-70 #9aa6d9,#0f1a4a, 71-99 d,#0f1a4a,
|1: 0-1 #ffffff,#8a3a3a, 2-2 d,#25397d, 3-34 #eee6d2,#25397d, 35-49 d,#25397d, 50-51 #ffffff,#8a3a3a, 52-52 d,#0f1a4a, 53-84 #9aa6d9,#0f1a4a, 85-99 d,#0f1a4a,
|2: 0-1 #000000,#e8c46a, 2-2 d,#25397d, 3-29 #eee6d2,#25397d, 30-37 #f2d280,#25397d, 38-49 #eee6d2,#25397d, 50-51 #ffffff,#6a78b1, 52-52 d,#0f1a4a, 53-79 #9aa6d9,#0f1a4a, 80-87 #e8c46a,#0f1a4a, 88-99 #9aa6d9,#0f1a4a,
@@ -676,3 +610,69 @@
|28: 0-0 d,#e8c46a, 1-1 d,#0a1030, 2-49 #eee6d2,#0a1030, 50-50 d,#e8c46a, 51-51 d,#0a1030, 52-99 #eee6d2,#0a1030,
|29: 0-0 d,#e8c46a, 1-1 d,#0a1030, 2-49 #eee6d2,#0a1030, 50-50 d,#e8c46a, 51-51 d,#0a1030, 52-99 #eee6d2,#0a1030,
|30: 0-0 d,#e8c46a, 1-1 d,#0a1030, 2-49 #eee6d2,#0a1030, 50-50 d,#e8c46a, 51-51 d,#0a1030, 52-99 #eee6d2,#0a1030,
+== snap dark-plus grid=100x31 cursor=4,6
+== style dark-plus grid=100x31
+|0: 0-50 #a7a7a7,#3c3c3c, 51-59 #d4d4d4,#264f78, 60-70 #a7a7a7,#3c3c3c, 71-99 d,#3c3c3c,
+|1: 0-1 #ffffff,#458276, 2-2 d,#1e1e1e, 3-34 #ffffff,#1e1e1e, 35-49 d,#1e1e1e, 50-51 #ffffff,#458276, 52-52 d,#3c3c3c, 53-84 #a7a7a7,#3c3c3c, 85-99 d,#3c3c3c,
+|2: 0-1 #ffffff,#007fd4, 2-2 d,#1e1e1e, 3-49 #ffffff,#1e1e1e, 50-51 #ffffff,#1c608e, 52-52 d,#3c3c3c, 53-99 #a7a7a7,#3c3c3c,
+|3: 0-2 d,#1e1e1e, 3-20 #ffffff,#1e1e1e, 21-49 d,#1e1e1e, 50-52 d,#3c3c3c, 53-70 #a7a7a7,#3c3c3c, 71-99 d,#3c3c3c,
+|4: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|5: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|6: 0-0 d,#424242, 1-49 d,#1e1e1e, 50-50 d,#424242, 51-99 d,#1e1e1e,
+|7: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|8: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|9: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|10: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|11: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|12: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|13: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|14: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|15: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|16: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|17: 0-1 #ffffff,#1c608e, 2-2 d,#3c3c3c, 3-49 #a7a7a7,#3c3c3c, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|18: 0-2 d,#3c3c3c, 3-20 #a7a7a7,#3c3c3c, 21-49 d,#3c3c3c, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|19: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|20: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|21: 0-0 d,#424242, 1-49 d,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|22: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|23: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|24: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|25: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|26: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|27: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|28: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|29: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+|30: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-49 #d4d4d4,#1e1e1e, 50-50 d,#424242, 51-51 d,#1e1e1e, 52-99 #d4d4d4,#1e1e1e,
+== snap solarized-dark grid=100x31 cursor=4,6
+== style solarized-dark grid=100x31
+|0: 0-50 #01090b,#657b83, 51-59 #002b36,#586e75, 60-70 #01090b,#657b83, 71-99 d,#657b83,
+|1: 0-1 #ffffff,#758a41, 2-2 d,#93a1a1, 3-34 #073642,#93a1a1, 35-49 d,#93a1a1, 50-51 #ffffff,#758a41, 52-52 d,#657b83, 53-84 #01090b,#657b83, 85-99 d,#657b83,
+|2: 0-1 #ffffff,#2483c5, 2-2 d,#93a1a1, 3-49 #073642,#93a1a1, 50-51 #ffffff,#185986, 52-52 d,#657b83, 53-99 #01090b,#657b83,
+|3: 0-2 d,#93a1a1, 3-20 #073642,#93a1a1, 21-49 d,#93a1a1, 50-52 d,#657b83, 53-70 #01090b,#657b83, 71-99 d,#657b83,
+|4: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|5: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|6: 0-0 d,#839496, 1-49 d,#002b36, 50-50 d,#839496, 51-99 d,#002b36,
+|7: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|8: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|9: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|10: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|11: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|12: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|13: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|14: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|15: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|16: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|17: 0-1 #ffffff,#185986, 2-2 d,#657b83, 3-49 #01090b,#657b83, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|18: 0-2 d,#657b83, 3-20 #01090b,#657b83, 21-49 d,#657b83, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|19: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|20: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|21: 0-0 d,#839496, 1-49 d,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|22: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|23: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|24: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|25: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|26: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|27: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|28: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|29: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
+|30: 0-0 d,#839496, 1-1 d,#002b36, 2-49 #839496,#002b36, 50-50 d,#839496, 51-51 d,#002b36, 52-99 #839496,#002b36,
diff --git a/test/snapshots/theme.snap b/test/snapshots/theme.snap
index 2c7610b3..b770d7f3 100644
--- a/test/snapshots/theme.snap
+++ b/test/snapshots/theme.snap
@@ -91,20 +91,21 @@ snapstyle orchard-black
press middle @NextColor 1
release middle @NextColor 1
stable 700 10000
-snap helix
-snapstyle helix
+snap acme
+snapstyle acme
press middle @NextColor 1
release middle @NextColor 1
stable 700 10000
-snap dark
-snapstyle dark
+snap lapis
+snapstyle lapis
press middle @NextColor 1
release middle @NextColor 1
stable 700 10000
-snap acme
-snapstyle acme
+snap dark-plus
+snapstyle dark-plus
press middle @NextColor 1
release middle @NextColor 1
stable 700 10000
-snap generated
-snapstyle generated
+# After orchard_black: acme and lapis, then the first faithful ports.
+snap solarized-dark
+snapstyle solarized-dark
diff --git a/test/snapshots/themesel.golden b/test/snapshots/themesel.golden
index 92e641f5..f553fee9 100644
--- a/test/snapshots/themesel.golden
+++ b/test/snapshots/themesel.golden
@@ -388,7 +388,7 @@
|27: 14 Theme forge_black
|28: 15 Theme forge_soft
|29: 16 Theme orchard_black
-|30: 17
+|30: 17 Theme acme
== style step-forge-black grid=100x31
|0: 0-70 #c5c9d2,#22252b, 71-99 d,#22252b,
|1: 0-1 #ffffff,#6a7b67, 2-2 d,#374253, 3-34 #d1d5de,#374253, 35-99 d,#374253,
@@ -420,7 +420,7 @@
|27: 0-0 d,#14161a, 1-1 d,#000000, 2-6 #6a6d74,#000000,b 7-23 #f6f6f6,#000000, 24-99 d,#000000,
|28: 0-0 d,#14161a, 1-1 d,#000000, 2-6 #62656c,#000000, 7-22 #f6f6f6,#000000, 23-99 d,#000000,
|29: 0-0 d,#14161a, 1-1 d,#000000, 2-6 #62656c,#000000, 7-25 #f6f6f6,#000000, 26-99 d,#000000,
-|30: 0-0 d,#14161a, 1-1 d,#000000, 2-6 #62656c,#000000, 7-99 d,#000000,
+|30: 0-0 d,#14161a, 1-1 d,#000000, 2-6 #62656c,#000000, 7-16 #f6f6f6,#000000, 17-99 d,#000000,
== snap step-forge-soft grid=100x31 cursor=7,27
|17: 5 Theme paper Theme
|18: 6 Theme daybreak
@@ -434,8 +434,8 @@
|26: 14 Theme forge_black
|27: 15 Theme forge_soft
|28: 16 Theme orchard_black
-|29: 17
-|30: 18 # Legacy and imported themes
+|29: 17 Theme acme
+|30: 18 Theme lapis
== style step-forge-soft grid=100x31
|0: 0-70 #c5c9d2,#2a2d34, 71-99 d,#2a2d34,
|1: 0-1 #ffffff,#6d7f6c, 2-2 d,#404a58, 3-34 #d1d5de,#404a58, 35-99 d,#404a58,
@@ -466,8 +466,8 @@
|26: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-23 #bfc3cc,#35383e, 24-99 d,#35383e,
|27: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #8e9199,#35383e,b 7-22 #bfc3cc,#35383e, 23-99 d,#35383e,
|28: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-25 #bfc3cc,#35383e, 26-99 d,#35383e,
-|29: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-99 d,#35383e,
-|30: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-34 #bfc3cc,#35383e, 35-99 d,#35383e,
+|29: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-16 #bfc3cc,#35383e, 17-99 d,#35383e,
+|30: 0-0 d,#3d4047, 1-1 d,#35383e, 2-6 #868991,#35383e, 7-17 #bfc3cc,#35383e, 18-99 d,#35383e,
== snap step-orchard-black grid=100x31 cursor=7,27
|17: 6 Theme daybreak Theme
|18: 7 Theme atelier
@@ -480,9 +480,9 @@
|25: 14 Theme forge_black
|26: 15 Theme forge_soft
|27: 16 Theme orchard_black
-|28: 17
-|29: 18 # Legacy and imported themes
-|30: 19 Theme helix
+|28: 17 Theme acme
+|29: 18 Theme lapis
+|30: 19
== style step-orchard-black grid=100x31
|0: 0-70 #b2c3b8,#1d2824, 71-99 d,#1d2824,
|1: 0-1 #ffffff,#887455, 2-2 d,#314738, 3-34 #becfc4,#314738, 35-99 d,#314738,
@@ -512,118 +512,24 @@
|25: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-23 #f2f8ef,#000000, 24-99 d,#000000,
|26: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-22 #f2f8ef,#000000, 23-99 d,#000000,
|27: 0-0 d,#111813, 1-1 d,#000000, 2-6 #616f64,#000000,b 7-25 #f2f8ef,#000000, 26-99 d,#000000,
-|28: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-99 d,#000000,
-|29: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-34 #f2f8ef,#000000, 35-99 d,#000000,
-|30: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-17 #f2f8ef,#000000, 18-99 d,#000000,
-== snap step-helix grid=100x31 cursor=7,27
-|17: 9 Theme lagoon Theme
-|18: 10 Theme solarium
-|19: 11 Theme spectrum
-|20: 12 Theme harvest
-|21: 13 Theme clay
-|22: 14 Theme forge_black
-|23: 15 Theme forge_soft
-|24: 16 Theme orchard_black
-|25: 17
-|26: 18 # Legacy and imported themes
-|27: 19 Theme helix
-|28: 20 Theme dark
-|29: 21 Theme acme
-|30: 22 Theme lapis
-== style step-helix grid=100x31
-|0: 0-70 #949494,#121212, 71-99 d,#121212,
-|1: 0-1 #ffffff,#826f46, 2-2 d,#3a3a3a, 3-34 #bdbdbd,#3a3a3a, 35-99 d,#3a3a3a,
-|2: 0-1 #ffffff,#262626, 2-2 d,#121212, 3-59 #949494,#121212, 60-99 d,#121212,
-|3: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|4: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|5: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|6: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|7: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|8: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|9: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|10: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|11: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-99 d,#080808,
-|12: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-99 d,#080808,
-|13: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-99 d,#080808,
-|14: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-99 d,#080808,
-|15: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-99 d,#080808,
-|16: 0-1 #ffffff,#626262, 2-2 d,#3a3a3a, 3-61 #bdbdbd,#3a3a3a, 62-99 d,#3a3a3a,
-|17: 0-0 d,#444444, 1-1 d,#080808, 2-6 #626262,#080808, 7-18 #bdbdbd,#080808, 19-92 d,#080808, 93-93 d,#121212, 94-98 #949494,#121212, 99-99 d,#121212,
-|18: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-99 d,#080808,
-|19: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-20 #bdbdbd,#080808, 21-99 d,#080808,
-|20: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-19 #bdbdbd,#080808, 20-99 d,#080808,
-|21: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-99 d,#080808,
-|22: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-23 #bdbdbd,#080808, 24-99 d,#080808,
-|23: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-22 #bdbdbd,#080808, 23-99 d,#080808,
-|24: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-25 #bdbdbd,#080808, 26-99 d,#080808,
-|25: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-99 d,#080808,
-|26: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-34 #bdbdbd,#080808, 35-99 d,#080808,
-|27: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808,b 7-17 #bdbdbd,#080808, 18-99 d,#080808,
-|28: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-99 d,#080808,
-|29: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-16 #bdbdbd,#080808, 17-99 d,#080808,
-|30: 0-0 d,#121212, 1-1 d,#080808, 2-6 #626262,#080808, 7-17 #bdbdbd,#080808, 18-99 d,#080808,
-== snap step-dark grid=100x31 cursor=7,27
-|17: 10 Theme solarium Theme
-|18: 11 Theme spectrum
-|19: 12 Theme harvest
-|20: 13 Theme clay
-|21: 14 Theme forge_black
-|22: 15 Theme forge_soft
-|23: 16 Theme orchard_black
-|24: 17
-|25: 18 # Legacy and imported themes
-|26: 19 Theme helix
-|27: 20 Theme dark
-|28: 21 Theme acme
-|29: 22 Theme lapis
-|30: 23 Theme acid
-== style step-dark grid=100x31
-|0: 0-70 #969696,#2c2a3e, 71-99 d,#2c2a3e,
-|1: 0-1 #ffffff,#867a4e, 2-2 d,#484566, 3-34 #c8c8c8,#484566, 35-99 d,#484566,
-|2: 0-1 #ffffff,#353a58, 2-2 d,#2c2a3e, 3-59 #969696,#2c2a3e, 60-99 d,#2c2a3e,
-|3: 0-0 d,#525252, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|4: 0-0 d,#525252, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|5: 0-0 d,#525252, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|6: 0-0 d,#525252, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|7: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|8: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|9: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|10: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|11: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|12: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|13: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|14: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|15: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|16: 0-1 #ffffff,#663fe0, 2-2 d,#484566, 3-61 #c8c8c8,#484566, 62-99 d,#484566,
-|17: 0-0 d,#525252, 1-1 d,d, 2-6 #5a5a5a,d, 7-92 d,d, 93-93 d,#2c2a3e, 94-98 #969696,#2c2a3e, 99-99 d,#2c2a3e,
-|18: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|19: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|20: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|21: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|22: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|23: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|24: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|25: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|26: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|27: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d,b 7-99 d,d,
-|28: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|29: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
-|30: 0-0 d,#2a2a2a, 1-1 d,d, 2-6 #5a5a5a,d, 7-99 d,d,
+|28: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-16 #f2f8ef,#000000, 17-99 d,#000000,
+|29: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-17 #f2f8ef,#000000, 18-99 d,#000000,
+|30: 0-0 d,#111813, 1-1 d,#000000, 2-6 #59675c,#000000, 7-99 d,#000000,
== snap step-acme grid=100x31 cursor=7,27
-|17: 11 Theme spectrum Theme
-|18: 12 Theme harvest
-|19: 13 Theme clay
-|20: 14 Theme forge_black
-|21: 15 Theme forge_soft
-|22: 16 Theme orchard_black
-|23: 17
-|24: 18 # Legacy and imported themes
-|25: 19 Theme helix
-|26: 20 Theme dark
-|27: 21 Theme acme
-|28: 22 Theme lapis
-|29: 23 Theme acid
-|30: 24 Theme acme_helix
+|17: 7 Theme atelier Theme
+|18: 8 Theme forge
+|19: 9 Theme lagoon
+|20: 10 Theme solarium
+|21: 11 Theme spectrum
+|22: 12 Theme harvest
+|23: 13 Theme clay
+|24: 14 Theme forge_black
+|25: 15 Theme forge_soft
+|26: 16 Theme orchard_black
+|27: 17 Theme acme
+|28: 18 Theme lapis
+|29: 19
+|30: 20 # Visual Studio Code
== style step-acme grid=100x31
|0: 0-70 #000000,#eaffff, 71-99 d,#eaffff,
|1: 0-1 #000000,#8888cc, 2-2 d,#eaffff, 3-34 #000000,#eaffff, 35-99 d,#eaffff,
@@ -642,36 +548,36 @@
|14: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
|15: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
|16: 0-1 #000000,#8888cc, 2-2 d,#eaffff, 3-61 #000000,#eaffff, 62-99 d,#eaffff,
-|17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-20 #000000,#ffffea, 21-92 d,#ffffea, 93-93 d,#eaffff, 94-98 #000000,#eaffff, 99-99 d,#eaffff,
-|18: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-19 #000000,#ffffea, 20-99 d,#ffffea,
-|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|20: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-23 #000000,#ffffea, 24-99 d,#ffffea,
-|21: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-99 d,#ffffea,
-|22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-25 #000000,#ffffea, 26-99 d,#ffffea,
-|23: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-99 d,#ffffea,
-|24: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-34 #000000,#ffffea, 35-99 d,#ffffea,
-|25: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-99 d,#ffffea,
-|26: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
+|17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-19 #000000,#ffffea, 20-92 d,#ffffea, 93-93 d,#eaffff, 94-98 #000000,#eaffff, 99-99 d,#eaffff,
+|18: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-99 d,#ffffea,
+|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-18 #000000,#ffffea, 19-99 d,#ffffea,
+|20: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-20 #000000,#ffffea, 21-99 d,#ffffea,
+|21: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-20 #000000,#ffffea, 21-99 d,#ffffea,
+|22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-19 #000000,#ffffea, 20-99 d,#ffffea,
+|23: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
+|24: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-23 #000000,#ffffea, 24-99 d,#ffffea,
+|25: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-99 d,#ffffea,
+|26: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-25 #000000,#ffffea, 26-99 d,#ffffea,
|27: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea,b 7-16 #000000,#ffffea, 17-99 d,#ffffea,
|28: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-99 d,#ffffea,
-|29: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|30: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-99 d,#ffffea,
-== snap step-generated grid=100x31 cursor=7,27
-|17: 12 Theme harvest Theme
-|18: 13 Theme clay
-|19: 14 Theme forge_black
-|20: 15 Theme forge_soft
-|21: 16 Theme orchard_black
-|22: 17
-|23: 18 # Legacy and imported themes
-|24: 19 Theme helix
-|25: 20 Theme dark
-|26: 21 Theme acme
-|27: 22 Theme lapis
-|28: 23 Theme acid
-|29: 24 Theme acme_helix
-|30: 25 Theme adwaita_dark
-== style step-generated grid=100x31
+|29: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-99 d,#ffffea,
+|30: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-26 #000000,#ffffea, 27-99 d,#ffffea,
+== snap step-lapis grid=100x31 cursor=7,27
+|17: 8 Theme forge Theme
+|18: 9 Theme lagoon
+|19: 10 Theme solarium
+|20: 11 Theme spectrum
+|21: 12 Theme harvest
+|22: 13 Theme clay
+|23: 14 Theme forge_black
+|24: 15 Theme forge_soft
+|25: 16 Theme orchard_black
+|26: 17 Theme acme
+|27: 18 Theme lapis
+|28: 19
+|29: 20 # Visual Studio Code
+|30: 21 Theme dark_plus
+== style step-lapis grid=100x31
|0: 0-70 #9aa6d9,#0f1a4a, 71-99 d,#0f1a4a,
|1: 0-1 #ffffff,#8a3a3a, 2-2 d,#25397d, 3-34 #eee6d2,#25397d, 35-99 d,#25397d,
|2: 0-1 #ffffff,#6a78b1, 2-2 d,#0f1a4a, 3-32 #9aa6d9,#0f1a4a, 33-37 #e8c46a,#0f1a4a, 38-59 #9aa6d9,#0f1a4a, 60-99 d,#0f1a4a,
@@ -689,68 +595,162 @@
|14: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-13 #eee6d2,#0a1030, 14-99 d,#0a1030,
|15: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-13 #eee6d2,#0a1030, 14-99 d,#0a1030,
|16: 0-1 #000000,#e8c46a, 2-2 d,#25397d, 3-32 #eee6d2,#25397d, 33-39 #f2d280,#25397d, 40-61 #eee6d2,#25397d, 62-99 d,#25397d,
-|17: 0-0 d,#e8c46a, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-19 #eee6d2,#0a1030, 20-92 d,#0a1030, 93-93 d,#0f1a4a, 94-98 #9aa6d9,#0f1a4a, 99-99 d,#0f1a4a,
-|18: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-16 #eee6d2,#0a1030, 17-99 d,#0a1030,
-|19: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-23 #eee6d2,#0a1030, 24-99 d,#0a1030,
-|20: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-22 #eee6d2,#0a1030, 23-99 d,#0a1030,
-|21: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-25 #eee6d2,#0a1030, 26-99 d,#0a1030,
-|22: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-99 d,#0a1030,
-|23: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-34 #eee6d2,#0a1030, 35-99 d,#0a1030,
-|24: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-17 #eee6d2,#0a1030, 18-99 d,#0a1030,
-|25: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-16 #eee6d2,#0a1030, 17-99 d,#0a1030,
+|17: 0-0 d,#e8c46a, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-17 #eee6d2,#0a1030, 18-92 d,#0a1030, 93-93 d,#0f1a4a, 94-98 #9aa6d9,#0f1a4a, 99-99 d,#0f1a4a,
+|18: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-18 #eee6d2,#0a1030, 19-99 d,#0a1030,
+|19: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-20 #eee6d2,#0a1030, 21-99 d,#0a1030,
+|20: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-20 #eee6d2,#0a1030, 21-99 d,#0a1030,
+|21: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-19 #eee6d2,#0a1030, 20-99 d,#0a1030,
+|22: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-16 #eee6d2,#0a1030, 17-99 d,#0a1030,
+|23: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-23 #eee6d2,#0a1030, 24-99 d,#0a1030,
+|24: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-22 #eee6d2,#0a1030, 23-99 d,#0a1030,
+|25: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-25 #eee6d2,#0a1030, 26-99 d,#0a1030,
|26: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-16 #eee6d2,#0a1030, 17-99 d,#0a1030,
|27: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #6a7ab8,#0a1030,b 7-17 #eee6d2,#0a1030, 18-99 d,#0a1030,
-|28: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-16 #eee6d2,#0a1030, 17-99 d,#0a1030,
-|29: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-22 #eee6d2,#0a1030, 23-99 d,#0a1030,
-|30: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-24 #eee6d2,#0a1030, 25-99 d,#0a1030,
-== snap step-back grid=100x31 cursor=7,26
+|28: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-99 d,#0a1030,
+|29: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-26 #eee6d2,#0a1030, 27-99 d,#0a1030,
+|30: 0-0 d,#050a24, 1-1 d,#0a1030, 2-6 #5a6aa8,#0a1030, 7-21 #eee6d2,#0a1030, 22-99 d,#0a1030,
+== snap step-dark-plus grid=100x31 cursor=7,27
+|17: 11 Theme spectrum Theme
+|18: 12 Theme harvest
+|19: 13 Theme clay
+|20: 14 Theme forge_black
+|21: 15 Theme forge_soft
+|22: 16 Theme orchard_black
+|23: 17 Theme acme
+|24: 18 Theme lapis
+|25: 19
+|26: 20 # Visual Studio Code
+|27: 21 Theme dark_plus
+|28: 22
+|29: 23 # Solarized
+|30: 24 Theme solarized_dark
+== style step-dark-plus grid=100x31
+|0: 0-70 #a7a7a7,#3c3c3c, 71-99 d,#3c3c3c,
+|1: 0-1 #ffffff,#458276, 2-2 d,#1e1e1e, 3-34 #ffffff,#1e1e1e, 35-99 d,#1e1e1e,
+|2: 0-1 #ffffff,#1c608e, 2-2 d,#3c3c3c, 3-59 #a7a7a7,#3c3c3c, 60-99 d,#3c3c3c,
+|3: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|4: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|5: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|6: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|7: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|8: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|9: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|10: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|11: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|12: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|13: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|14: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|15: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|16: 0-1 #ffffff,#007fd4, 2-2 d,#1e1e1e, 3-61 #ffffff,#1e1e1e, 62-99 d,#1e1e1e,
+|17: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-20 #d4d4d4,#1e1e1e, 21-92 d,#1e1e1e, 93-93 d,#3c3c3c, 94-98 #a7a7a7,#3c3c3c, 99-99 d,#3c3c3c,
+|18: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-19 #d4d4d4,#1e1e1e, 20-99 d,#1e1e1e,
+|19: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-16 #d4d4d4,#1e1e1e, 17-99 d,#1e1e1e,
+|20: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-23 #d4d4d4,#1e1e1e, 24-99 d,#1e1e1e,
+|21: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-22 #d4d4d4,#1e1e1e, 23-99 d,#1e1e1e,
+|22: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-25 #d4d4d4,#1e1e1e, 26-99 d,#1e1e1e,
+|23: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-16 #d4d4d4,#1e1e1e, 17-99 d,#1e1e1e,
+|24: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-17 #d4d4d4,#1e1e1e, 18-99 d,#1e1e1e,
+|25: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-99 d,#1e1e1e,
+|26: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-26 #d4d4d4,#1e1e1e, 27-99 d,#1e1e1e,
+|27: 0-1 d,#1e1e1e, 2-6 #c6c6c6,#1e1e1e,b 7-21 #d4d4d4,#1e1e1e, 22-99 d,#1e1e1e,
+|28: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-99 d,#1e1e1e,
+|29: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-17 #d4d4d4,#1e1e1e, 18-99 d,#1e1e1e,
+|30: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-26 #d4d4d4,#1e1e1e, 27-99 d,#1e1e1e,
+== snap step-solarized-dark grid=100x31 cursor=7,27
+|17: 14 Theme forge_black Theme
+|18: 15 Theme forge_soft
+|19: 16 Theme orchard_black
+|20: 17 Theme acme
+|21: 18 Theme lapis
+|22: 19
+|23: 20 # Visual Studio Code
+|24: 21 Theme dark_plus
+|25: 22
+|26: 23 # Solarized
+|27: 24 Theme solarized_dark
+|28: 25 Theme solarized_light
+|29: 26
+|30: 27 # Dracula
+== style step-solarized-dark grid=100x31
+|0: 0-70 #01090b,#657b83, 71-99 d,#657b83,
+|1: 0-1 #ffffff,#758a41, 2-2 d,#93a1a1, 3-34 #073642,#93a1a1, 35-99 d,#93a1a1,
+|2: 0-1 #ffffff,#185986, 2-2 d,#657b83, 3-59 #01090b,#657b83, 60-99 d,#657b83,
+|3: 0-0 d,#839496, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|4: 0-0 d,#839496, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|5: 0-0 d,#839496, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|6: 0-0 d,#839496, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|7: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|8: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|9: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|10: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|11: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-12 #839496,#002b36, 13-99 d,#002b36,
+|12: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-13 #839496,#002b36, 14-99 d,#002b36,
+|13: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-13 #839496,#002b36, 14-99 d,#002b36,
+|14: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-13 #839496,#002b36, 14-99 d,#002b36,
+|15: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-13 #839496,#002b36, 14-99 d,#002b36,
+|16: 0-1 #ffffff,#2483c5, 2-2 d,#93a1a1, 3-61 #073642,#93a1a1, 62-99 d,#93a1a1,
+|17: 0-0 d,#839496, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-23 #839496,#002b36, 24-92 d,#002b36, 93-93 d,#657b83, 94-98 #01090b,#657b83, 99-99 d,#657b83,
+|18: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-22 #839496,#002b36, 23-99 d,#002b36,
+|19: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-25 #839496,#002b36, 26-99 d,#002b36,
+|20: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-16 #839496,#002b36, 17-99 d,#002b36,
+|21: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-17 #839496,#002b36, 18-99 d,#002b36,
+|22: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-99 d,#002b36,
+|23: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-26 #839496,#002b36, 27-99 d,#002b36,
+|24: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-21 #839496,#002b36, 22-99 d,#002b36,
+|25: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-99 d,#002b36,
+|26: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-17 #839496,#002b36, 18-99 d,#002b36,
+|27: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36,b 7-26 #839496,#002b36, 27-99 d,#002b36,
+|28: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-27 #839496,#002b36, 28-99 d,#002b36,
+|29: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-99 d,#002b36,
+|30: 0-0 d,#eee8d5, 1-1 d,#002b36, 2-6 #586e75,#002b36, 7-15 #839496,#002b36, 16-99 d,#002b36,
+== snap step-back grid=100x31 cursor=7,24
== style step-back grid=100x31
-|0: 0-70 #000000,#eaffff, 71-99 d,#eaffff,
-|1: 0-1 #000000,#8888cc, 2-2 d,#eaffff, 3-34 #000000,#eaffff, 35-99 d,#eaffff,
-|2: 0-1 #000000,#b9c3e5, 2-2 d,#eaffff, 3-59 #000000,#eaffff, 60-99 d,#eaffff,
-|3: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|4: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|5: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|6: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|7: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|8: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|9: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|10: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|11: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|12: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|13: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|14: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|15: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|16: 0-1 #000000,#8888cc, 2-2 d,#eaffff, 3-61 #000000,#eaffff, 62-99 d,#eaffff,
-|17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-19 #000000,#ffffea, 20-92 d,#ffffea, 93-93 d,#eaffff, 94-98 #000000,#eaffff, 99-99 d,#eaffff,
-|18: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|19: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-23 #000000,#ffffea, 24-99 d,#ffffea,
-|20: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-99 d,#ffffea,
-|21: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-25 #000000,#ffffea, 26-99 d,#ffffea,
-|22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-99 d,#ffffea,
-|23: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-34 #000000,#ffffea, 35-99 d,#ffffea,
-|24: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-99 d,#ffffea,
-|25: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|26: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea,b 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|27: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-17 #000000,#ffffea, 18-99 d,#ffffea,
-|28: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-16 #000000,#ffffea, 17-99 d,#ffffea,
-|29: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-22 #000000,#ffffea, 23-99 d,#ffffea,
-|30: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-24 #000000,#ffffea, 25-99 d,#ffffea,
+|0: 0-70 #a7a7a7,#3c3c3c, 71-99 d,#3c3c3c,
+|1: 0-1 #ffffff,#458276, 2-2 d,#1e1e1e, 3-34 #ffffff,#1e1e1e, 35-99 d,#1e1e1e,
+|2: 0-1 #ffffff,#1c608e, 2-2 d,#3c3c3c, 3-59 #a7a7a7,#3c3c3c, 60-99 d,#3c3c3c,
+|3: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|4: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|5: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|6: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|7: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|8: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|9: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|10: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|11: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|12: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|13: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|14: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|15: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|16: 0-1 #ffffff,#007fd4, 2-2 d,#1e1e1e, 3-61 #ffffff,#1e1e1e, 62-99 d,#1e1e1e,
+|17: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-23 #d4d4d4,#1e1e1e, 24-92 d,#1e1e1e, 93-93 d,#3c3c3c, 94-98 #a7a7a7,#3c3c3c, 99-99 d,#3c3c3c,
+|18: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-22 #d4d4d4,#1e1e1e, 23-99 d,#1e1e1e,
+|19: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-25 #d4d4d4,#1e1e1e, 26-99 d,#1e1e1e,
+|20: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-16 #d4d4d4,#1e1e1e, 17-99 d,#1e1e1e,
+|21: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-17 #d4d4d4,#1e1e1e, 18-99 d,#1e1e1e,
+|22: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-99 d,#1e1e1e,
+|23: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-26 #d4d4d4,#1e1e1e, 27-99 d,#1e1e1e,
+|24: 0-1 d,#1e1e1e, 2-6 #c6c6c6,#1e1e1e,b 7-21 #d4d4d4,#1e1e1e, 22-99 d,#1e1e1e,
+|25: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-99 d,#1e1e1e,
+|26: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-17 #d4d4d4,#1e1e1e, 18-99 d,#1e1e1e,
+|27: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-26 #d4d4d4,#1e1e1e, 27-99 d,#1e1e1e,
+|28: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-27 #d4d4d4,#1e1e1e, 28-99 d,#1e1e1e,
+|29: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-99 d,#1e1e1e,
+|30: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-15 #d4d4d4,#1e1e1e, 16-99 d,#1e1e1e,
== snap tail grid=100x31 cursor=7,29
-|17: 235 Theme wolf_alabaster_dark
-|18: 236 Theme wolf_alabaster_dark_bg
-|19: 237 Theme wolf_alabaster_dark_mono
-|20: 238 Theme wolf_alabaster_light
-|21: 239 Theme wolf_alabaster_light_bg
-|22: 240 Theme wolf_alabaster_light_mono
-|23: 241 Theme yellowed
-|24: 242 Theme yo
-|25: 243 Theme yo_berry
-|26: 244 Theme yo_light
-|27: 245 Theme zed_onedark
-|28: 246 Theme zed_onelight
-|29: 247 Theme zenburn
-|30: 248
+|17: 326 Theme wolf_alabaster_dark
+|18: 327 Theme wolf_alabaster_dark_bg
+|19: 328 Theme wolf_alabaster_dark_mono
+|20: 329 Theme wolf_alabaster_light
+|21: 330 Theme wolf_alabaster_light_bg
+|22: 331 Theme wolf_alabaster_light_mono
+|23: 332 Theme yellowed
+|24: 333 Theme yo
+|25: 334 Theme yo_berry
+|26: 335 Theme yo_light
+|27: 336 Theme zed_onedark
+|28: 337 Theme zed_onelight
+|29: 338 Theme zenburn
+|30: 339
== snap picked grid=100x31 cursor=7,3
|16: 14 line 14
|17: 15 line 15
@@ -768,29 +768,29 @@
|29: 27 line 27
|30: 28 line 28
== style picked grid=100x31
-|2: 0-1 #000000,#8888cc, 2-2 d,#eaffff, 3-59 #000000,#eaffff, 60-99 d,#eaffff,
-|3: 0-1 d,#ffffea, 2-6 #999980,#ffffea,b 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|7: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|8: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|9: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|10: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|11: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-12 #000000,#ffffea, 13-99 d,#ffffea,
-|12: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|13: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|14: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|15: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|16: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|17: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|18: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|19: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|20: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|21: 0-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|22: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|23: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|24: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|25: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|26: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|27: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|28: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|29: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
-|30: 0-0 d,#99994c, 1-1 d,#ffffea, 2-6 #999980,#ffffea, 7-13 #000000,#ffffea, 14-99 d,#ffffea,
+|2: 0-1 #ffffff,#007fd4, 2-2 d,#1e1e1e, 3-59 #ffffff,#1e1e1e, 60-99 d,#1e1e1e,
+|3: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #c6c6c6,#1e1e1e,b 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|7: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|8: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|9: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|10: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|11: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-12 #d4d4d4,#1e1e1e, 13-99 d,#1e1e1e,
+|12: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|13: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|14: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|15: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|16: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|17: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|18: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|19: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|20: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|21: 0-0 d,#424242, 1-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|22: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|23: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|24: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|25: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|26: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|27: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|28: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|29: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
+|30: 0-1 d,#1e1e1e, 2-6 #858585,#1e1e1e, 7-13 #d4d4d4,#1e1e1e, 14-99 d,#1e1e1e,
diff --git a/test/snapshots/themesel.snap b/test/snapshots/themesel.snap
index 2b7b03c4..01e4dc5e 100644
--- a/test/snapshots/themesel.snap
+++ b/test/snapshots/themesel.snap
@@ -10,9 +10,10 @@
# running it and stopping. There is still no preview state, nothing to confirm
# and nothing to cancel: the row you ran is the theme you have.
#
-# Both halves of the ring are in the buffer: the fifteen native themes come
-# first, then the retained helix, dark and acme, then everything exported from
-# the vendored helix .toml and zed .json files, sorted. The colors below are
+# The whole ring is in the buffer, in sections: the fifteen native themes,
+# acme and lapis, the faithful ports a family at a time, the legacy helix and
+# dark, then everything exported from the vendored helix .toml and zed .json
+# files, sorted. The colors below are
# read with snapstyle, so this proves the generated themes are real data and
# not just names in a list.
lines t.txt 40
@@ -81,7 +82,8 @@ key tab
stable 700 15000
snap step-clay
snapstyle step-clay
-# The three native contrast variants precede the legacy section. Its heading
+# The three native contrast variants precede acme and lapis, and then the first
+# ported family's section. Its heading
# and blank separator are not stops in the n/N command walk.
key n
key tab
@@ -101,27 +103,27 @@ snapstyle step-orchard-black
key n
key tab
stable 700 15000
-snap step-helix
-snapstyle step-helix
+snap step-acme
+snapstyle step-acme
key n
key tab
stable 700 15000
-snap step-dark
-snapstyle step-dark
+snap step-lapis
+snapstyle step-lapis
key n
key tab
stable 700 15000
-snap step-acme
-snapstyle step-acme
-# past the curated eighteen and into the generated half, which is sorted by name
-# — so the next command is whatever sorts first, not whatever was
-# vendored first. That is the point of sorting: the ring is the same everywhere
-# whatever order the directory read handed the files over in.
+snap step-dark-plus
+snapstyle step-dark-plus
+# across the Visual Studio Code section into Solarized: a section heading and
+# its blank line are skipped like the first. (The imported half, past the
+# legacy section, is sorted by name, so the ring is the same everywhere
+# whatever order the directory read handed the files over in.)
key n
key tab
stable 700 15000
-snap step-generated
-snapstyle step-generated
+snap step-solarized-dark
+snapstyle step-solarized-dark
# N walks back the same way — it is the exact inverse of n — and the Tab after
# it runs the row it lands on, so the theme rewinds too
key N