@gemboss/ui 0.13.0 → 0.25.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 (61) hide show
  1. package/CHANGELOG.md +512 -1
  2. package/README.md +426 -14
  3. package/catalog/editor.html +1027 -0
  4. package/catalog/index.html +1215 -90
  5. package/gemboss-ui.css +3 -4698
  6. package/package.json +24 -5
  7. package/parts/components.css +5 -0
  8. package/parts/core.css +5 -0
  9. package/parts/shell.css +5 -0
  10. package/src/app-shell.css +1 -256
  11. package/src/assistant/engine.tsx +607 -0
  12. package/src/assistant/host.tsx +1 -0
  13. package/src/assistant/index.ts +1 -0
  14. package/src/assistant-engine.css +1 -0
  15. package/src/assistant.css +1 -558
  16. package/src/auth.css +1 -606
  17. package/src/auth.tsx +1 -0
  18. package/src/board-move.ts +194 -0
  19. package/src/chat-composer.css +1 -110
  20. package/src/chat.css +1 -432
  21. package/src/collections.css +1 -350
  22. package/src/collections.tsx +170 -40
  23. package/src/dialog.tsx +3 -135
  24. package/src/editor/controls.tsx +207 -0
  25. package/src/editor/css-url.ts +11 -0
  26. package/src/editor/frame.tsx +243 -0
  27. package/src/editor/index.ts +52 -0
  28. package/src/editor/layers.tsx +136 -0
  29. package/src/editor/panel.tsx +189 -0
  30. package/src/editor/panes.tsx +45 -0
  31. package/src/editor/sortable.tsx +79 -0
  32. package/src/editor/swatch.ts +45 -0
  33. package/src/editor/tree.tsx +61 -0
  34. package/src/editor-layers-plain.js +1 -0
  35. package/src/editor-plain.js +1 -0
  36. package/src/editor.css +1 -1099
  37. package/src/gemboss-field.css +1 -112
  38. package/src/gemboss-tokens.css +1 -164
  39. package/src/icons.tsx +2 -0
  40. package/src/index-table.tsx +20 -56
  41. package/src/index.ts +16 -6
  42. package/src/kit-plain.css +1 -499
  43. package/src/kit-plain.js +1 -575
  44. package/src/launcher.tsx +1 -0
  45. package/src/menu-layer.ts +94 -0
  46. package/src/menu.tsx +28 -2
  47. package/src/portal.css +1 -139
  48. package/src/portal.tsx +1 -0
  49. package/src/reactions-data.ts +59 -0
  50. package/src/reactions.css +1 -0
  51. package/src/reactions.tsx +140 -0
  52. package/src/resource-list-select.tsx +73 -0
  53. package/src/search-dialog.tsx +146 -0
  54. package/src/segmented-click.ts +20 -0
  55. package/src/segmented.tsx +98 -0
  56. package/src/selection.tsx +79 -0
  57. package/src/shell.css +1 -1079
  58. package/src/theme-dark.css +1 -66
  59. package/src/theme-script.ts +10 -0
  60. package/src/theme.tsx +5 -5
  61. package/src/ui.css +1 -610
@@ -0,0 +1,1027 @@
1
+ <!doctype html><html lang="vi"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
2
+ <title>@gemboss/ui editor</title><link rel="stylesheet" href="../gemboss-ui.css"><style>body{margin:0;background:var(--gemboss-app-bg,#f1f1f1);color:var(--gemboss-text);font-family:var(--gemboss-font-sans)}
3
+ .cat{max-width:1340px;margin:0 auto;padding:32px 24px}.cat h1{margin:0 0 4px;font-size:28px}.cat>p{margin:0 0 16px;color:var(--gemboss-text-muted);max-width:820px}
4
+ .cat h2{margin:32px 0 8px;font-size:20px;font-weight:650}
5
+ .cat-demo{margin:0 0 16px;background:var(--gemboss-surface);border:1px solid var(--gemboss-divider);border-radius:12px;overflow:hidden}
6
+ .cat-demo figcaption{padding:10px 16px;font-size:13px;font-weight:600;border-bottom:1px solid var(--gemboss-divider)}
7
+ .cat-wide{overflow-x:auto}.cat-wide iframe{display:block;border:0}
8
+ .cat-code summary{padding:10px 16px;font-size:13px;cursor:pointer;color:var(--gemboss-text-muted);border-top:1px solid var(--gemboss-divider);min-height:24px}
9
+ .cat-code pre,.cat-api{margin:0;padding:12px 16px;overflow:auto;background:#0f1012;color:#e8e8e6;font-size:12px;line-height:1.5;border-radius:0}
10
+ .cat-api{border-radius:12px;margin:0 0 16px}</style></head><body><div class="cat">
11
+ <h1>@gemboss/ui 0.25.0 · Editor</h1>
12
+ <p>Khung của mọi editor: <code>EditorFrame</code> (cột trái · khe kéo · preview · cột phải dock trên mép phải preview) và <code>EditorTopbar</code> (← · tiêu đề · cụm giữa · cụm phải · dòng trạng thái). Là đúng khung của theme / page / section editor trong admin. Gói chỉ vẽ KHUNG; chat, Configure, canvas, page picker, menu, Publish là của editor, đi vào bằng slot. Trang HTML thuần nạp <code>editor.css</code> + <code>editor-plain.js</code> rồi gọi <code>gembossUI.initEditorFrame()</code>: kéo khe (chuột, chạm, phím mũi tên / Home / End), đổi thiết bị, mở ⋯ và Publish ▾, ẩn cột trái, Chat | Preview trên điện thoại. <a href="index.html">← Catalog</a></p>
13
+ <h2>React</h2><pre class="cat-api"><code>import &quot;@gemboss/ui/editor.css&quot;;
14
+ import { EditorFrame, EditorTopbar, EditorBack, EditorChatToggle, EditorPaneTabs, EditorSaveState, DeviceToggle } from &quot;@gemboss/ui/editor&quot;;
15
+
16
+ &lt;EditorFrame
17
+ top={&lt;EditorTopbar variant=&quot;theme&quot; back={&lt;EditorBack as={Link} href=&quot;/&quot; /&gt;} title=&quot;Builder&quot;
18
+ chatToggle={&lt;EditorChatToggle collapsed={collapsed} onToggle={toggle} /&gt;} left={&lt;EditorSaveState state=&quot;saved&quot; /&gt;}
19
+ center={&lt;DeviceToggle device={device} onChange={setDevice} /&gt;} right={&lt;&gt;…⋯ · Publish&lt;/&gt;} /&gt;}
20
+ split={{ width, min: 300, max, collapsed, onPointerDown, onKeyDown }}
21
+ left={&lt;div className=&quot;gemboss-ec&quot;&gt;…&lt;/div&gt;} preview={&lt;Canvas /&gt;} right={presetsOpen ? &lt;Presets /&gt; : null}
22
+ mobilePane={pane}
23
+ &gt;
24
+ &lt;EditorPaneTabs value={pane} onChange={setPane} labels={{ chat: &quot;Layers&quot; }} /&gt;
25
+ {drawers}
26
+ &lt;/EditorFrame&gt;</code></pre>
27
+ <h2>HTML thuần</h2><pre class="cat-api"><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;…/@gemboss/ui/gemboss-ui.css&quot;&gt;
28
+ &lt;link rel=&quot;stylesheet&quot; href=&quot;…/@gemboss/ui/src/editor.css&quot;&gt;
29
+ …the markup below…
30
+ &lt;script src=&quot;…/@gemboss/ui/src/kit-plain.js&quot;&gt;&lt;/script&gt;
31
+ &lt;script src=&quot;…/@gemboss/ui/src/editor-plain.js&quot;&gt;&lt;/script&gt;
32
+ &lt;script src=&quot;…/@gemboss/ui/src/editor-layers-plain.js&quot;&gt;&lt;/script&gt; &lt;!-- 0.22.0, only where layers / drawers are --&gt;
33
+ &lt;script&gt;
34
+ gembossUI.initEditorFrame();
35
+ gembossUI.initEditorPanel(); // 0.17.0: tabs, groups, Seg, colour, range, edges, image
36
+ gembossUI.initEditorLayers(); // 0.22.0: layers (select, hide, drag / Alt+↑↓), the element outline, drawers
37
+ addEventListener(&quot;gemboss:editor-layer-move&quot;, (e) =&gt; save(e.detail.id, e.detail.to));
38
+ addEventListener(&quot;gemboss:editor-device&quot;, (e) =&gt; setCanvasWidth(e.detail.device));
39
+ addEventListener(&quot;gemboss:editor-split&quot;, (e) =&gt; save(e.detail.width));
40
+ addEventListener(&quot;gemboss:editor-edges&quot;, (e) =&gt; save(e.target.dataset.name, e.detail)); // {t, r, b, l}
41
+ &lt;/script&gt;</code></pre>
42
+ <h2>Builder: lớp trái, canvas, preset phải</h2>
43
+ <figure class="cat-demo"><figcaption>1280: kéo khe giữa, bấm ⋯ / ▾ / thiết bị / biểu tượng cột trái</figcaption><div class="cat-wide"><iframe title="1280: kéo khe giữa, bấm ⋯ / ▾ / thiết bị / biểu tượng cột trái" style="width:1280px;height:560px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;gemboss-editor&quot;&gt;&lt;header class=&quot;gemboss-editor-topbar gemboss-editor-topbar--theme&quot;&gt;&lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;&lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;&lt;button class=&quot;gemboss-editor-chat-toggle&quot; aria-pressed=&quot;false&quot; title=&quot;Hide chat — full-width preview&quot; aria-label=&quot;Hide chat panel&quot;&gt;&lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;12.5&quot; height=&quot;10.5&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;6.25&quot; y1=&quot;2.75&quot; x2=&quot;6.25&quot; y2=&quot;13.25&quot;&gt;&lt;/line&gt;&lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;4.5&quot; height=&quot;10.5&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Builder&lt;/span&gt;&lt;span class=&quot;gemboss-editor-savestate is-saved&quot; role=&quot;status&quot; aria-live=&quot;polite&quot; title=&quot;Every change is saved to the draft automatically&quot;&gt;✓ Draft saved · 10:42&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;&lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;true&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;&lt;div class=&quot;gemboss-editor-overflow&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device gemboss-editor-overflow-trigger&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;More actions&quot; title=&quot;More actions&quot;&gt;⋯&lt;/button&gt;&lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Duplicate&lt;/span&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Export HTML&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-editor-menu-sep&quot; role=&quot;separator&quot;&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Delete&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-publish&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-main&quot;&gt;Publish&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-caret&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Choose deploy target&quot;&gt;▾&lt;/button&gt;&lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;&lt;div class=&quot;gemboss-editor-menu-label&quot; aria-hidden=&quot;true&quot;&gt;Target&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Deploy preview&lt;/span&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Publish live&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;gemboss-editor-body&quot; data-mobile-pane=&quot;chat&quot; style=&quot;--gemboss-chat-w:320px&quot;&gt;&lt;div class=&quot;gemboss-ec&quot;&gt;&lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Layers&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Hero · Logos · Benefits · Reviews · FAQ&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize layers panel&quot; aria-valuenow=&quot;320&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;&lt;div class=&quot;gemboss-editor-dock&quot;&gt;&lt;div style=&quot;padding:16px&quot;&gt;&lt;b&gt;Presets&lt;/b&gt;&lt;p style=&quot;color:var(--gemboss-text-muted);margin:8px 0 0&quot;&gt;The right column: docked over the preview, 320px.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit desktop&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-mobile-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panes&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;true&quot; class=&quot;gemboss-editor-mobile-tab active&quot;&gt;Layers&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;false&quot; class=&quot;gemboss-editor-mobile-tab&quot;&gt;Preview&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div class=&quot;gemboss-editor&quot;&gt;
44
+ &lt;header class=&quot;gemboss-editor-topbar gemboss-editor-topbar--theme&quot;&gt;
45
+ &lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;
46
+ &lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;
47
+ &lt;button class=&quot;gemboss-editor-chat-toggle&quot; aria-pressed=&quot;false&quot; title=&quot;Hide chat — full-width preview&quot; aria-label=&quot;Hide chat panel&quot;&gt;
48
+ &lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
49
+ &lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;12.5&quot; height=&quot;10.5&quot; rx=&quot;2&quot;&gt;
50
+ &lt;/rect&gt;
51
+ &lt;line x1=&quot;6.25&quot; y1=&quot;2.75&quot; x2=&quot;6.25&quot; y2=&quot;13.25&quot;&gt;
52
+ &lt;/line&gt;
53
+ &lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;4.5&quot; height=&quot;10.5&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot;&gt;
54
+ &lt;/rect&gt;
55
+ &lt;/svg&gt;
56
+ &lt;/button&gt;
57
+ &lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Builder&lt;/span&gt;
58
+ &lt;span class=&quot;gemboss-editor-savestate is-saved&quot; role=&quot;status&quot; aria-live=&quot;polite&quot; title=&quot;Every change is saved to the draft automatically&quot;&gt;✓ Draft saved · 10:42&lt;/span&gt;
59
+ &lt;/div&gt;
60
+ &lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;
61
+ &lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;
62
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;true&quot;&gt;
63
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
64
+ &lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;
65
+ &lt;/rect&gt;
66
+ &lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;
67
+ &lt;/line&gt;
68
+ &lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;
69
+ &lt;/line&gt;
70
+ &lt;/svg&gt;
71
+ &lt;/button&gt;
72
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;
73
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
74
+ &lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;
75
+ &lt;/rect&gt;
76
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;
77
+ &lt;/line&gt;
78
+ &lt;/svg&gt;
79
+ &lt;/button&gt;
80
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;false&quot;&gt;
81
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
82
+ &lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;
83
+ &lt;/rect&gt;
84
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;
85
+ &lt;/line&gt;
86
+ &lt;/svg&gt;
87
+ &lt;/button&gt;
88
+ &lt;/div&gt;
89
+ &lt;/div&gt;
90
+ &lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;
91
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;
92
+ &lt;div class=&quot;gemboss-editor-overflow&quot;&gt;
93
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device gemboss-editor-overflow-trigger&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;More actions&quot; title=&quot;More actions&quot;&gt;⋯&lt;/button&gt;
94
+ &lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;
95
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
96
+ &lt;span&gt;Duplicate&lt;/span&gt;
97
+ &lt;/button&gt;
98
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
99
+ &lt;span&gt;Export HTML&lt;/span&gt;
100
+ &lt;/button&gt;
101
+ &lt;div class=&quot;gemboss-editor-menu-sep&quot; role=&quot;separator&quot;&gt;
102
+ &lt;/div&gt;
103
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
104
+ &lt;span&gt;Delete&lt;/span&gt;
105
+ &lt;/button&gt;
106
+ &lt;/div&gt;
107
+ &lt;/div&gt;
108
+ &lt;div class=&quot;gemboss-editor-publish&quot;&gt;
109
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-main&quot;&gt;Publish&lt;/button&gt;
110
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-caret&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Choose deploy target&quot;&gt;▾&lt;/button&gt;
111
+ &lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;
112
+ &lt;div class=&quot;gemboss-editor-menu-label&quot; aria-hidden=&quot;true&quot;&gt;Target&lt;/div&gt;
113
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
114
+ &lt;span&gt;Deploy preview&lt;/span&gt;
115
+ &lt;/button&gt;
116
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
117
+ &lt;span&gt;Publish live&lt;/span&gt;
118
+ &lt;/button&gt;
119
+ &lt;/div&gt;
120
+ &lt;/div&gt;
121
+ &lt;/div&gt;
122
+ &lt;/header&gt;
123
+ &lt;div class=&quot;gemboss-editor-body&quot; data-mobile-pane=&quot;chat&quot; style=&quot;--gemboss-chat-w:320px&quot;&gt;
124
+ &lt;div class=&quot;gemboss-ec&quot;&gt;
125
+ &lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;
126
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Layers&lt;/button&gt;
127
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;
128
+ &lt;/div&gt;
129
+ &lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Hero · Logos · Benefits · Reviews · FAQ&lt;/div&gt;
130
+ &lt;/div&gt;
131
+ &lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize layers panel&quot; aria-valuenow=&quot;320&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;
132
+ &lt;/div&gt;
133
+ &lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;
134
+ &lt;div class=&quot;gemboss-editor-dock&quot;&gt;
135
+ &lt;div style=&quot;padding:16px&quot;&gt;
136
+ &lt;b&gt;Presets&lt;/b&gt;
137
+ &lt;p style=&quot;color:var(--gemboss-text-muted);margin:8px 0 0&quot;&gt;The right column: docked over the preview, 320px.&lt;/p&gt;
138
+ &lt;/div&gt;
139
+ &lt;/div&gt;
140
+ &lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit desktop&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;
141
+ &lt;/div&gt;
142
+ &lt;/div&gt;
143
+ &lt;div class=&quot;gemboss-editor-mobile-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panes&quot;&gt;
144
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;true&quot; class=&quot;gemboss-editor-mobile-tab active&quot;&gt;Layers&lt;/button&gt;
145
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;false&quot; class=&quot;gemboss-editor-mobile-tab&quot;&gt;Preview&lt;/button&gt;
146
+ &lt;/div&gt;
147
+ &lt;/div&gt;</code></pre></details></figure>
148
+ <figure class="cat-demo"><figcaption>390: hai hàng trên topbar, Layers | Preview ở đáy</figcaption><div class="cat-wide"><iframe title="390: hai hàng trên topbar, Layers | Preview ở đáy" style="width:390px;height:700px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;gemboss-editor&quot;&gt;&lt;header class=&quot;gemboss-editor-topbar gemboss-editor-topbar--theme&quot;&gt;&lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;&lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;&lt;button class=&quot;gemboss-editor-chat-toggle&quot; aria-pressed=&quot;false&quot; title=&quot;Hide chat — full-width preview&quot; aria-label=&quot;Hide chat panel&quot;&gt;&lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;12.5&quot; height=&quot;10.5&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;6.25&quot; y1=&quot;2.75&quot; x2=&quot;6.25&quot; y2=&quot;13.25&quot;&gt;&lt;/line&gt;&lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;4.5&quot; height=&quot;10.5&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot;&gt;&lt;/rect&gt;&lt;/svg&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Builder&lt;/span&gt;&lt;span class=&quot;gemboss-editor-savestate is-saved&quot; role=&quot;status&quot; aria-live=&quot;polite&quot; title=&quot;Every change is saved to the draft automatically&quot;&gt;✓ Draft saved · 10:42&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;&lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;true&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;&lt;div class=&quot;gemboss-editor-overflow&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device gemboss-editor-overflow-trigger&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;More actions&quot; title=&quot;More actions&quot;&gt;⋯&lt;/button&gt;&lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Duplicate&lt;/span&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Export HTML&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-editor-menu-sep&quot; role=&quot;separator&quot;&gt;&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Delete&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-publish&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-main&quot;&gt;Publish&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-caret&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Choose deploy target&quot;&gt;▾&lt;/button&gt;&lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;&lt;div class=&quot;gemboss-editor-menu-label&quot; aria-hidden=&quot;true&quot;&gt;Target&lt;/div&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Deploy preview&lt;/span&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;&lt;span&gt;Publish live&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;gemboss-editor-body&quot; data-mobile-pane=&quot;chat&quot; style=&quot;--gemboss-chat-w:320px&quot;&gt;&lt;div class=&quot;gemboss-ec&quot;&gt;&lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Layers&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Hero · Logos · Benefits · Reviews · FAQ&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize layers panel&quot; aria-valuenow=&quot;320&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;&lt;div class=&quot;gemboss-editor-dock&quot;&gt;&lt;div style=&quot;padding:16px&quot;&gt;&lt;b&gt;Presets&lt;/b&gt;&lt;p style=&quot;color:var(--gemboss-text-muted);margin:8px 0 0&quot;&gt;The right column: docked over the preview, 320px.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit desktop&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-mobile-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panes&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;true&quot; class=&quot;gemboss-editor-mobile-tab active&quot;&gt;Layers&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;false&quot; class=&quot;gemboss-editor-mobile-tab&quot;&gt;Preview&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div class=&quot;gemboss-editor&quot;&gt;
149
+ &lt;header class=&quot;gemboss-editor-topbar gemboss-editor-topbar--theme&quot;&gt;
150
+ &lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;
151
+ &lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;
152
+ &lt;button class=&quot;gemboss-editor-chat-toggle&quot; aria-pressed=&quot;false&quot; title=&quot;Hide chat — full-width preview&quot; aria-label=&quot;Hide chat panel&quot;&gt;
153
+ &lt;svg viewBox=&quot;0 0 16 16&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
154
+ &lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;12.5&quot; height=&quot;10.5&quot; rx=&quot;2&quot;&gt;
155
+ &lt;/rect&gt;
156
+ &lt;line x1=&quot;6.25&quot; y1=&quot;2.75&quot; x2=&quot;6.25&quot; y2=&quot;13.25&quot;&gt;
157
+ &lt;/line&gt;
158
+ &lt;rect x=&quot;1.75&quot; y=&quot;2.75&quot; width=&quot;4.5&quot; height=&quot;10.5&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot;&gt;
159
+ &lt;/rect&gt;
160
+ &lt;/svg&gt;
161
+ &lt;/button&gt;
162
+ &lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Builder&lt;/span&gt;
163
+ &lt;span class=&quot;gemboss-editor-savestate is-saved&quot; role=&quot;status&quot; aria-live=&quot;polite&quot; title=&quot;Every change is saved to the draft automatically&quot;&gt;✓ Draft saved · 10:42&lt;/span&gt;
164
+ &lt;/div&gt;
165
+ &lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;
166
+ &lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;
167
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;true&quot;&gt;
168
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
169
+ &lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;
170
+ &lt;/rect&gt;
171
+ &lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;
172
+ &lt;/line&gt;
173
+ &lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;
174
+ &lt;/line&gt;
175
+ &lt;/svg&gt;
176
+ &lt;/button&gt;
177
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;
178
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
179
+ &lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;
180
+ &lt;/rect&gt;
181
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;
182
+ &lt;/line&gt;
183
+ &lt;/svg&gt;
184
+ &lt;/button&gt;
185
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;false&quot;&gt;
186
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
187
+ &lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;
188
+ &lt;/rect&gt;
189
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;
190
+ &lt;/line&gt;
191
+ &lt;/svg&gt;
192
+ &lt;/button&gt;
193
+ &lt;/div&gt;
194
+ &lt;/div&gt;
195
+ &lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;
196
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;
197
+ &lt;div class=&quot;gemboss-editor-overflow&quot;&gt;
198
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device gemboss-editor-overflow-trigger&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;More actions&quot; title=&quot;More actions&quot;&gt;⋯&lt;/button&gt;
199
+ &lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;
200
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
201
+ &lt;span&gt;Duplicate&lt;/span&gt;
202
+ &lt;/button&gt;
203
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
204
+ &lt;span&gt;Export HTML&lt;/span&gt;
205
+ &lt;/button&gt;
206
+ &lt;div class=&quot;gemboss-editor-menu-sep&quot; role=&quot;separator&quot;&gt;
207
+ &lt;/div&gt;
208
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
209
+ &lt;span&gt;Delete&lt;/span&gt;
210
+ &lt;/button&gt;
211
+ &lt;/div&gt;
212
+ &lt;/div&gt;
213
+ &lt;div class=&quot;gemboss-editor-publish&quot;&gt;
214
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-main&quot;&gt;Publish&lt;/button&gt;
215
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish gemboss-editor-publish-caret&quot; aria-haspopup=&quot;menu&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Choose deploy target&quot;&gt;▾&lt;/button&gt;
216
+ &lt;div class=&quot;gemboss-popover-surface gemboss-editor-menu&quot; role=&quot;menu&quot; hidden&gt;
217
+ &lt;div class=&quot;gemboss-editor-menu-label&quot; aria-hidden=&quot;true&quot;&gt;Target&lt;/div&gt;
218
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
219
+ &lt;span&gt;Deploy preview&lt;/span&gt;
220
+ &lt;/button&gt;
221
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-menu-item&quot; role=&quot;menuitem&quot;&gt;
222
+ &lt;span&gt;Publish live&lt;/span&gt;
223
+ &lt;/button&gt;
224
+ &lt;/div&gt;
225
+ &lt;/div&gt;
226
+ &lt;/div&gt;
227
+ &lt;/header&gt;
228
+ &lt;div class=&quot;gemboss-editor-body&quot; data-mobile-pane=&quot;chat&quot; style=&quot;--gemboss-chat-w:320px&quot;&gt;
229
+ &lt;div class=&quot;gemboss-ec&quot;&gt;
230
+ &lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;
231
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Layers&lt;/button&gt;
232
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;
233
+ &lt;/div&gt;
234
+ &lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Hero · Logos · Benefits · Reviews · FAQ&lt;/div&gt;
235
+ &lt;/div&gt;
236
+ &lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize layers panel&quot; aria-valuenow=&quot;320&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;
237
+ &lt;/div&gt;
238
+ &lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;
239
+ &lt;div class=&quot;gemboss-editor-dock&quot;&gt;
240
+ &lt;div style=&quot;padding:16px&quot;&gt;
241
+ &lt;b&gt;Presets&lt;/b&gt;
242
+ &lt;p style=&quot;color:var(--gemboss-text-muted);margin:8px 0 0&quot;&gt;The right column: docked over the preview, 320px.&lt;/p&gt;
243
+ &lt;/div&gt;
244
+ &lt;/div&gt;
245
+ &lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit desktop&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;
246
+ &lt;/div&gt;
247
+ &lt;/div&gt;
248
+ &lt;div class=&quot;gemboss-editor-mobile-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panes&quot;&gt;
249
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;true&quot; class=&quot;gemboss-editor-mobile-tab active&quot;&gt;Layers&lt;/button&gt;
250
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; aria-selected=&quot;false&quot; class=&quot;gemboss-editor-mobile-tab&quot;&gt;Preview&lt;/button&gt;
251
+ &lt;/div&gt;
252
+ &lt;/div&gt;</code></pre></details></figure>
253
+ <h2>Thanh của page / section editor</h2>
254
+ <figure class="cat-demo"><figcaption>variant=&quot;page&quot;, 1280</figcaption><div class="cat-wide"><iframe title="variant=&quot;page&quot;, 1280" style="width:1280px;height:420px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;gemboss-editor&quot;&gt;&lt;header class=&quot;gemboss-editor-topbar gemboss-pageedit-top&quot;&gt;&lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;&lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;&lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Page editor&lt;/span&gt;&lt;span class=&quot;gemboss-pageedit-title&quot;&gt;Spring sale&lt;/span&gt;&lt;span class=&quot;ui-badge&quot;&gt;Landing page&lt;/span&gt;&lt;span class=&quot;ui-badge&quot;&gt;Draft&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;&lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;true&quot;&gt;&lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;&lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;&lt;/rect&gt;&lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish&quot;&gt;Publish&lt;/button&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;gemboss-editor-body&quot; style=&quot;--gemboss-chat-w:384px&quot;&gt;&lt;div class=&quot;gemboss-ec&quot;&gt;&lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Chat&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize chat panel&quot; aria-valuenow=&quot;384&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;&lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit mobile&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div class=&quot;gemboss-editor&quot;&gt;
255
+ &lt;header class=&quot;gemboss-editor-topbar gemboss-pageedit-top&quot;&gt;
256
+ &lt;div class=&quot;gemboss-editor-tb-left&quot;&gt;
257
+ &lt;a href=&quot;#&quot; class=&quot;gemboss-editor-back&quot; aria-label=&quot;Back&quot;&gt;←&lt;/a&gt;
258
+ &lt;span class=&quot;gemboss-editor-tb-name&quot;&gt;Page editor&lt;/span&gt;
259
+ &lt;span class=&quot;gemboss-pageedit-title&quot;&gt;Spring sale&lt;/span&gt;
260
+ &lt;span class=&quot;ui-badge&quot;&gt;Landing page&lt;/span&gt;
261
+ &lt;span class=&quot;ui-badge&quot;&gt;Draft&lt;/span&gt;
262
+ &lt;/div&gt;
263
+ &lt;div class=&quot;gemboss-editor-tb-center&quot;&gt;
264
+ &lt;div class=&quot;ui-seg gemboss-pv-devices&quot; role=&quot;group&quot; aria-label=&quot;Device&quot;&gt;
265
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Desktop&quot; title=&quot;Desktop&quot; aria-pressed=&quot;false&quot;&gt;
266
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
267
+ &lt;rect x=&quot;2.5&quot; y=&quot;4&quot; width=&quot;19&quot; height=&quot;12&quot; rx=&quot;2&quot;&gt;
268
+ &lt;/rect&gt;
269
+ &lt;line x1=&quot;9&quot; y1=&quot;20.5&quot; x2=&quot;15&quot; y2=&quot;20.5&quot;&gt;
270
+ &lt;/line&gt;
271
+ &lt;line x1=&quot;12&quot; y1=&quot;16&quot; x2=&quot;12&quot; y2=&quot;20.5&quot;&gt;
272
+ &lt;/line&gt;
273
+ &lt;/svg&gt;
274
+ &lt;/button&gt;
275
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device&quot; aria-label=&quot;Tablet&quot; title=&quot;Tablet&quot; aria-pressed=&quot;false&quot;&gt;
276
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
277
+ &lt;rect x=&quot;4&quot; y=&quot;3&quot; width=&quot;16&quot; height=&quot;18&quot; rx=&quot;2&quot;&gt;
278
+ &lt;/rect&gt;
279
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18&quot; x2=&quot;13.5&quot; y2=&quot;18&quot;&gt;
280
+ &lt;/line&gt;
281
+ &lt;/svg&gt;
282
+ &lt;/button&gt;
283
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-pv-device active&quot; aria-label=&quot;Mobile&quot; title=&quot;Mobile&quot; aria-pressed=&quot;true&quot;&gt;
284
+ &lt;svg viewBox=&quot;0 0 24 24&quot; width=&quot;15&quot; height=&quot;15&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; aria-hidden=&quot;true&quot;&gt;
285
+ &lt;rect x=&quot;6.5&quot; y=&quot;2.5&quot; width=&quot;11&quot; height=&quot;19&quot; rx=&quot;2.5&quot;&gt;
286
+ &lt;/rect&gt;
287
+ &lt;line x1=&quot;10.5&quot; y1=&quot;18.5&quot; x2=&quot;13.5&quot; y2=&quot;18.5&quot;&gt;
288
+ &lt;/line&gt;
289
+ &lt;/svg&gt;
290
+ &lt;/button&gt;
291
+ &lt;/div&gt;
292
+ &lt;/div&gt;
293
+ &lt;div class=&quot;gemboss-editor-tb-right&quot;&gt;
294
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot;&gt;+ Add section&lt;/button&gt;
295
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-publish&quot;&gt;Publish&lt;/button&gt;
296
+ &lt;/div&gt;
297
+ &lt;/header&gt;
298
+ &lt;div class=&quot;gemboss-editor-body&quot; style=&quot;--gemboss-chat-w:384px&quot;&gt;
299
+ &lt;div class=&quot;gemboss-ec&quot;&gt;
300
+ &lt;div class=&quot;gemboss-ec-dock-body&quot;&gt;Chat&lt;/div&gt;
301
+ &lt;/div&gt;
302
+ &lt;div class=&quot;gemboss-editor-resizer ui-resizer&quot; role=&quot;separator&quot; aria-orientation=&quot;vertical&quot; aria-label=&quot;Resize chat panel&quot; aria-valuenow=&quot;384&quot; aria-valuemin=&quot;300&quot; aria-valuemax=&quot;680&quot; tabindex=&quot;0&quot;&gt;
303
+ &lt;/div&gt;
304
+ &lt;div class=&quot;gemboss-editor-preview-pane&quot;&gt;
305
+ &lt;div class=&quot;gemboss-pv-frame gemboss-pv-fit mobile&quot; style=&quot;display:grid;place-items:center;color:var(--gemboss-text-muted)&quot;&gt;Canvas&lt;/div&gt;
306
+ &lt;/div&gt;
307
+ &lt;/div&gt;
308
+ &lt;/div&gt;</code></pre></details></figure>
309
+ <h2>Bảng cài đặt (0.17.0): PanelTabs, PanelHeader, InspectorGroup, Field, Seg, ColorControl, RangeControl, EdgeBox, ImageControl</h2>
310
+ <p>Đúng bảng Configure của editor trong admin (inspector neo trong cột trái). Bấm tiêu đề nhóm để gập, ←/→ trên hàng tab Content · Design · Advanced, bấm Seg, sửa màu (ô màu ghi vào ô chữ; gradient tắt ô màu), kéo thanh trượt, gõ lề rồi Enter, dán URL ảnh rồi rời ô. Mỗi việc bắn một event <code>gemboss:editor-*</code>.</p>
311
+ <h3>React</h3><pre class="cat-api"><code>import { ColorControl, EdgeBox, Field, ImageControl, InspectorGroup, PanelAction, PanelHeader, PanelTabs, RangeControl, Seg } from &quot;@gemboss/ui/editor&quot;;
312
+
313
+ &lt;PanelHeader title=&quot;Hero&quot; subtitle=&quot;hero-banner&quot; actions={&lt;PanelAction label=&quot;Duplicate section&quot; onClick={dup}&gt;⧉&lt;/PanelAction&gt;} /&gt;
314
+ &lt;PanelTabs variant=&quot;inspector&quot; value={tab} onChange={setTab} tabs={[{ id: &quot;content&quot;, label: &quot;Content&quot; }, { id: &quot;design&quot;, label: &quot;Design&quot; }]} /&gt;
315
+ &lt;InspectorGroup title=&quot;Layout&quot; note=&quot;all screens&quot; open={open.layout} onOpenChange={(v) =&gt; setOpen({ ...open, layout: v })}&gt;
316
+ &lt;Field label=&quot;Width&quot;&gt;&lt;Seg label=&quot;Width&quot; value={width} onChange={setWidth} options={[{ value: &quot;full&quot;, label: &quot;Full&quot; }, …]} /&gt;&lt;/Field&gt;
317
+ &lt;Field label=&quot;Background&quot; htmlFor=&quot;bg&quot;&gt;&lt;ColorControl id=&quot;bg&quot; label=&quot;Background&quot; value={bg} onChange={setBg} /&gt;&lt;/Field&gt;
318
+ &lt;Field label=&quot;Opacity&quot; htmlFor=&quot;op&quot; labelValue={`${op}%`}&gt;&lt;RangeControl id=&quot;op&quot; min={0} max={100} value={op} onChange={setOp} /&gt;&lt;/Field&gt;
319
+ &lt;Field label=&quot;Padding&quot;&gt;&lt;EdgeBox label=&quot;Padding&quot; values={pad} onChange={(side, raw) =&gt; …} onCommit={save} /&gt;&lt;/Field&gt;
320
+ &lt;Field label=&quot;Image&quot; htmlFor=&quot;img&quot;&gt;&lt;ImageControl id=&quot;img&quot; value={url} onChange={setUrl} /&gt;&lt;/Field&gt;
321
+ &lt;/InspectorGroup&gt;</code></pre>
322
+ <figure class="cat-demo"><figcaption>1280 (chuột): cột Configure 360px, đủ control, nhóm Motion đang gập</figcaption><div class="cat-wide"><iframe title="1280 (chuột): cột Configure 360px, đủ control, nhóm Motion đang gập" style="width:1280px;height:1120px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;gemboss-ec&quot; style=&quot;width:360px;height:1040px&quot;&gt;&lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;configure&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Settings&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;chat&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ec-dock-body&quot; style=&quot;padding:0&quot;&gt;&lt;aside class=&quot;gemboss-ei gemboss-ei--docked&quot; role=&quot;region&quot; aria-label=&quot;Settings — Hero&quot;&gt;&lt;header class=&quot;gemboss-ei-head&quot;&gt;&lt;span class=&quot;gemboss-ei-title&quot;&gt;Hero&lt;small&gt;hero-banner.default.v1&lt;/small&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Duplicate section&quot; aria-label=&quot;Duplicate section&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Restore this section to its previous version&quot; aria-label=&quot;Restore this section&quot;&gt;↺&lt;/button&gt;&lt;/header&gt;&lt;div class=&quot;gemboss-ei-tabs&quot; role=&quot;tablist&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;content&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Content&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;design&quot; class=&quot;gemboss-ei-tab on&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;Design&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;advanced&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Advanced&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-body&quot;&gt;&lt;div class=&quot;gemboss-ei-pane&quot;&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Layout&lt;small class=&quot;gemboss-ei-gh-note&quot;&gt;· all screens&lt;/small&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Content width&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Content width&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;full&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Full&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;contained&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;Contained&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;narrow&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Narrow&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Columns&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Columns&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;2&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;2&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;3&quot; disabled=&quot;&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;3&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;4&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;4&lt;/button&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;Disabled while a change is applied.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Spacing&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Padding&lt;/label&gt;&lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding top&quot; value=&quot;24&quot;/&gt;&lt;span&gt;T&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding right&quot; value=&quot;&quot;/&gt;&lt;span&gt;R&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding bottom&quot; value=&quot;24&quot;/&gt;&lt;span&gt;B&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding left&quot; value=&quot;&quot;/&gt;&lt;span&gt;L&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Margin&lt;/label&gt;&lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin top&quot; value=&quot;&quot;/&gt;&lt;span&gt;T&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin right&quot; value=&quot;&quot;/&gt;&lt;span&gt;R&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin bottom&quot; value=&quot;&quot;/&gt;&lt;span&gt;B&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin left&quot; value=&quot;&quot;/&gt;&lt;span&gt;L&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;Empty edges follow desktop.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Color&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-bg&quot;&gt;Background&lt;/label&gt;&lt;div class=&quot;gemboss-ei-color&quot;&gt;&lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Background swatch&quot; value=&quot;#f4efe6&quot;/&gt;&lt;input id=&quot;cat-bg&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;#f4efe6&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-ov&quot;&gt;Overlay&lt;/label&gt;&lt;div class=&quot;gemboss-ei-color&quot;&gt;&lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Overlay swatch&quot; disabled=&quot;&quot; title=&quot;linear-gradient(90deg,#000,#0000) — not a plain 6-digit hex; edit it in the box below&quot; value=&quot;#000000&quot;/&gt;&lt;input id=&quot;cat-ov&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;linear-gradient(90deg,#000,#0000)&quot;/&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;A gradient: the swatch cannot show it, so it is off.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-op&quot;&gt;Opacity&lt;span class=&quot;gemboss-ei-rangeval&quot; data-suffix=&quot;%&quot;&gt;80%&lt;/span&gt;&lt;/label&gt;&lt;input id=&quot;cat-op&quot; type=&quot;range&quot; class=&quot;gemboss-ei-range&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;1&quot; value=&quot;80&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Media&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-img&quot;&gt;Image&lt;/label&gt;&lt;div class=&quot;gemboss-ei-img&quot;&gt;&lt;div class=&quot;gemboss-ei-img-thumb&quot; aria-hidden=&quot;true&quot;&gt;—&lt;/div&gt;&lt;div class=&quot;gemboss-ei-img-ctl&quot;&gt;&lt;input id=&quot;cat-img&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;Paste image URL…&quot; value=&quot;&quot;/&gt;&lt;div class=&quot;gemboss-ei-img-actions&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; aria-expanded=&quot;false&quot;&gt;Library&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; data-gb-image-clear&gt;Clear&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;closed&quot; aria-expanded=&quot;false&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▸&lt;/span&gt;Motion&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Reveal&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Reveal&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;none&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;None&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;fade&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Fade&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div class=&quot;gemboss-ec&quot; style=&quot;width:360px;height:1040px&quot;&gt;
323
+ &lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;
324
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;configure&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Settings&lt;/button&gt;
325
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;chat&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;
326
+ &lt;/div&gt;
327
+ &lt;div class=&quot;gemboss-ec-dock-body&quot; style=&quot;padding:0&quot;&gt;
328
+ &lt;aside class=&quot;gemboss-ei gemboss-ei--docked&quot; role=&quot;region&quot; aria-label=&quot;Settings — Hero&quot;&gt;
329
+ &lt;header class=&quot;gemboss-ei-head&quot;&gt;
330
+ &lt;span class=&quot;gemboss-ei-title&quot;&gt;Hero&lt;small&gt;hero-banner.default.v1&lt;/small&gt;
331
+ &lt;/span&gt;
332
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Duplicate section&quot; aria-label=&quot;Duplicate section&quot;&gt;⧉&lt;/button&gt;
333
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Restore this section to its previous version&quot; aria-label=&quot;Restore this section&quot;&gt;↺&lt;/button&gt;
334
+ &lt;/header&gt;
335
+ &lt;div class=&quot;gemboss-ei-tabs&quot; role=&quot;tablist&quot;&gt;
336
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;content&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Content&lt;/button&gt;
337
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;design&quot; class=&quot;gemboss-ei-tab on&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;Design&lt;/button&gt;
338
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;advanced&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Advanced&lt;/button&gt;
339
+ &lt;/div&gt;
340
+ &lt;div class=&quot;gemboss-ei-body&quot;&gt;
341
+ &lt;div class=&quot;gemboss-ei-pane&quot;&gt;
342
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
343
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
344
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Layout&lt;small class=&quot;gemboss-ei-gh-note&quot;&gt;· all screens&lt;/small&gt;
345
+ &lt;/button&gt;
346
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
347
+ &lt;label&gt;Content width&lt;/label&gt;
348
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Content width&quot;&gt;
349
+ &lt;button type=&quot;button&quot; data-value=&quot;full&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Full&lt;/button&gt;
350
+ &lt;button type=&quot;button&quot; data-value=&quot;contained&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;Contained&lt;/button&gt;
351
+ &lt;button type=&quot;button&quot; data-value=&quot;narrow&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Narrow&lt;/button&gt;
352
+ &lt;/div&gt;
353
+ &lt;/div&gt;
354
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
355
+ &lt;label&gt;Columns&lt;/label&gt;
356
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Columns&quot;&gt;
357
+ &lt;button type=&quot;button&quot; data-value=&quot;2&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;2&lt;/button&gt;
358
+ &lt;button type=&quot;button&quot; data-value=&quot;3&quot; disabled=&quot;&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;3&lt;/button&gt;
359
+ &lt;button type=&quot;button&quot; data-value=&quot;4&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;4&lt;/button&gt;
360
+ &lt;/div&gt;
361
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;Disabled while a change is applied.&lt;/p&gt;
362
+ &lt;/div&gt;
363
+ &lt;/div&gt;
364
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
365
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
366
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Spacing&lt;/button&gt;
367
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
368
+ &lt;label&gt;Padding&lt;/label&gt;
369
+ &lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;
370
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
371
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding top&quot; value=&quot;24&quot;/&gt;
372
+ &lt;span&gt;T&lt;/span&gt;
373
+ &lt;/div&gt;
374
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
375
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding right&quot; value=&quot;&quot;/&gt;
376
+ &lt;span&gt;R&lt;/span&gt;
377
+ &lt;/div&gt;
378
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
379
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding bottom&quot; value=&quot;24&quot;/&gt;
380
+ &lt;span&gt;B&lt;/span&gt;
381
+ &lt;/div&gt;
382
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
383
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding left&quot; value=&quot;&quot;/&gt;
384
+ &lt;span&gt;L&lt;/span&gt;
385
+ &lt;/div&gt;
386
+ &lt;/div&gt;
387
+ &lt;/div&gt;
388
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
389
+ &lt;label&gt;Margin&lt;/label&gt;
390
+ &lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;
391
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
392
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin top&quot; value=&quot;&quot;/&gt;
393
+ &lt;span&gt;T&lt;/span&gt;
394
+ &lt;/div&gt;
395
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
396
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin right&quot; value=&quot;&quot;/&gt;
397
+ &lt;span&gt;R&lt;/span&gt;
398
+ &lt;/div&gt;
399
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
400
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin bottom&quot; value=&quot;&quot;/&gt;
401
+ &lt;span&gt;B&lt;/span&gt;
402
+ &lt;/div&gt;
403
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
404
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin left&quot; value=&quot;&quot;/&gt;
405
+ &lt;span&gt;L&lt;/span&gt;
406
+ &lt;/div&gt;
407
+ &lt;/div&gt;
408
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;Empty edges follow desktop.&lt;/p&gt;
409
+ &lt;/div&gt;
410
+ &lt;/div&gt;
411
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
412
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
413
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Color&lt;/button&gt;
414
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
415
+ &lt;label for=&quot;cat-bg&quot;&gt;Background&lt;/label&gt;
416
+ &lt;div class=&quot;gemboss-ei-color&quot;&gt;
417
+ &lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Background swatch&quot; value=&quot;#f4efe6&quot;/&gt;
418
+ &lt;input id=&quot;cat-bg&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;#f4efe6&quot;/&gt;
419
+ &lt;/div&gt;
420
+ &lt;/div&gt;
421
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
422
+ &lt;label for=&quot;cat-ov&quot;&gt;Overlay&lt;/label&gt;
423
+ &lt;div class=&quot;gemboss-ei-color&quot;&gt;
424
+ &lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Overlay swatch&quot; disabled=&quot;&quot; title=&quot;linear-gradient(90deg,#000,#0000) — not a plain 6-digit hex; edit it in the box below&quot; value=&quot;#000000&quot;/&gt;
425
+ &lt;input id=&quot;cat-ov&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;linear-gradient(90deg,#000,#0000)&quot;/&gt;
426
+ &lt;/div&gt;
427
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;A gradient: the swatch cannot show it, so it is off.&lt;/p&gt;
428
+ &lt;/div&gt;
429
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
430
+ &lt;label for=&quot;cat-op&quot;&gt;Opacity&lt;span class=&quot;gemboss-ei-rangeval&quot; data-suffix=&quot;%&quot;&gt;80%&lt;/span&gt;
431
+ &lt;/label&gt;
432
+ &lt;input id=&quot;cat-op&quot; type=&quot;range&quot; class=&quot;gemboss-ei-range&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;1&quot; value=&quot;80&quot;/&gt;
433
+ &lt;/div&gt;
434
+ &lt;/div&gt;
435
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
436
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
437
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Media&lt;/button&gt;
438
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
439
+ &lt;label for=&quot;cat-img&quot;&gt;Image&lt;/label&gt;
440
+ &lt;div class=&quot;gemboss-ei-img&quot;&gt;
441
+ &lt;div class=&quot;gemboss-ei-img-thumb&quot; aria-hidden=&quot;true&quot;&gt;—&lt;/div&gt;
442
+ &lt;div class=&quot;gemboss-ei-img-ctl&quot;&gt;
443
+ &lt;input id=&quot;cat-img&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;Paste image URL…&quot; value=&quot;&quot;/&gt;
444
+ &lt;div class=&quot;gemboss-ei-img-actions&quot;&gt;
445
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; aria-expanded=&quot;false&quot;&gt;Library&lt;/button&gt;
446
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; data-gb-image-clear&gt;Clear&lt;/button&gt;
447
+ &lt;/div&gt;
448
+ &lt;/div&gt;
449
+ &lt;/div&gt;
450
+ &lt;/div&gt;
451
+ &lt;/div&gt;
452
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
453
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;closed&quot; aria-expanded=&quot;false&quot;&gt;
454
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▸&lt;/span&gt;Motion&lt;/button&gt;
455
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
456
+ &lt;label&gt;Reveal&lt;/label&gt;
457
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Reveal&quot;&gt;
458
+ &lt;button type=&quot;button&quot; data-value=&quot;none&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;None&lt;/button&gt;
459
+ &lt;button type=&quot;button&quot; data-value=&quot;fade&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Fade&lt;/button&gt;
460
+ &lt;/div&gt;
461
+ &lt;/div&gt;
462
+ &lt;/div&gt;
463
+ &lt;/div&gt;
464
+ &lt;/div&gt;
465
+ &lt;/aside&gt;
466
+ &lt;/div&gt;
467
+ &lt;/div&gt;</code></pre></details></figure>
468
+ <figure class="cat-demo"><figcaption>390 (điện thoại): ô nhập 16px, control 44px</figcaption><div class="cat-wide"><iframe title="390 (điện thoại): ô nhập 16px, control 44px" style="width:390px;height:1240px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;gemboss-ec&quot; style=&quot;width:360px;height:1040px&quot;&gt;&lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;configure&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Settings&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;chat&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ec-dock-body&quot; style=&quot;padding:0&quot;&gt;&lt;aside class=&quot;gemboss-ei gemboss-ei--docked&quot; role=&quot;region&quot; aria-label=&quot;Settings — Hero&quot;&gt;&lt;header class=&quot;gemboss-ei-head&quot;&gt;&lt;span class=&quot;gemboss-ei-title&quot;&gt;Hero&lt;small&gt;hero-banner.default.v1&lt;/small&gt;&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Duplicate section&quot; aria-label=&quot;Duplicate section&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Restore this section to its previous version&quot; aria-label=&quot;Restore this section&quot;&gt;↺&lt;/button&gt;&lt;/header&gt;&lt;div class=&quot;gemboss-ei-tabs&quot; role=&quot;tablist&quot;&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;content&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Content&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;design&quot; class=&quot;gemboss-ei-tab on&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;Design&lt;/button&gt;&lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;advanced&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Advanced&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-body&quot;&gt;&lt;div class=&quot;gemboss-ei-pane&quot;&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Layout&lt;small class=&quot;gemboss-ei-gh-note&quot;&gt;· all screens&lt;/small&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Content width&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Content width&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;full&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Full&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;contained&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;Contained&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;narrow&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Narrow&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Columns&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Columns&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;2&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;2&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;3&quot; disabled=&quot;&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;3&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;4&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;4&lt;/button&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;Disabled while a change is applied.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Spacing&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Padding&lt;/label&gt;&lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding top&quot; value=&quot;24&quot;/&gt;&lt;span&gt;T&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding right&quot; value=&quot;&quot;/&gt;&lt;span&gt;R&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding bottom&quot; value=&quot;24&quot;/&gt;&lt;span&gt;B&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding left&quot; value=&quot;&quot;/&gt;&lt;span&gt;L&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Margin&lt;/label&gt;&lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin top&quot; value=&quot;&quot;/&gt;&lt;span&gt;T&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin right&quot; value=&quot;&quot;/&gt;&lt;span&gt;R&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin bottom&quot; value=&quot;&quot;/&gt;&lt;span&gt;B&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-edge&quot;&gt;&lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin left&quot; value=&quot;&quot;/&gt;&lt;span&gt;L&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;Empty edges follow desktop.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Color&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-bg&quot;&gt;Background&lt;/label&gt;&lt;div class=&quot;gemboss-ei-color&quot;&gt;&lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Background swatch&quot; value=&quot;#f4efe6&quot;/&gt;&lt;input id=&quot;cat-bg&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;#f4efe6&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-ov&quot;&gt;Overlay&lt;/label&gt;&lt;div class=&quot;gemboss-ei-color&quot;&gt;&lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Overlay swatch&quot; disabled=&quot;&quot; title=&quot;linear-gradient(90deg,#000,#0000) — not a plain 6-digit hex; edit it in the box below&quot; value=&quot;#000000&quot;/&gt;&lt;input id=&quot;cat-ov&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;linear-gradient(90deg,#000,#0000)&quot;/&gt;&lt;/div&gt;&lt;p class=&quot;gemboss-ei-hint&quot;&gt;A gradient: the swatch cannot show it, so it is off.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-op&quot;&gt;Opacity&lt;span class=&quot;gemboss-ei-rangeval&quot; data-suffix=&quot;%&quot;&gt;80%&lt;/span&gt;&lt;/label&gt;&lt;input id=&quot;cat-op&quot; type=&quot;range&quot; class=&quot;gemboss-ei-range&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;1&quot; value=&quot;80&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Media&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label for=&quot;cat-img&quot;&gt;Image&lt;/label&gt;&lt;div class=&quot;gemboss-ei-img&quot;&gt;&lt;div class=&quot;gemboss-ei-img-thumb&quot; aria-hidden=&quot;true&quot;&gt;—&lt;/div&gt;&lt;div class=&quot;gemboss-ei-img-ctl&quot;&gt;&lt;input id=&quot;cat-img&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;Paste image URL…&quot; value=&quot;&quot;/&gt;&lt;div class=&quot;gemboss-ei-img-actions&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; aria-expanded=&quot;false&quot;&gt;Library&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; data-gb-image-clear&gt;Clear&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-ei-grp&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;closed&quot; aria-expanded=&quot;false&quot;&gt;&lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▸&lt;/span&gt;Motion&lt;/button&gt;&lt;div class=&quot;gemboss-ei-fld&quot;&gt;&lt;label&gt;Reveal&lt;/label&gt;&lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Reveal&quot;&gt;&lt;button type=&quot;button&quot; data-value=&quot;none&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;None&lt;/button&gt;&lt;button type=&quot;button&quot; data-value=&quot;fade&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Fade&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div class=&quot;gemboss-ec&quot; style=&quot;width:360px;height:1040px&quot;&gt;
469
+ &lt;div class=&quot;gemboss-ec-tabs&quot; role=&quot;tablist&quot; aria-label=&quot;Editor panels&quot;&gt;
470
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;configure&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;true&quot;&gt;Settings&lt;/button&gt;
471
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;chat&quot; class=&quot;gemboss-ec-tab&quot; aria-selected=&quot;false&quot;&gt;Chat&lt;/button&gt;
472
+ &lt;/div&gt;
473
+ &lt;div class=&quot;gemboss-ec-dock-body&quot; style=&quot;padding:0&quot;&gt;
474
+ &lt;aside class=&quot;gemboss-ei gemboss-ei--docked&quot; role=&quot;region&quot; aria-label=&quot;Settings — Hero&quot;&gt;
475
+ &lt;header class=&quot;gemboss-ei-head&quot;&gt;
476
+ &lt;span class=&quot;gemboss-ei-title&quot;&gt;Hero&lt;small&gt;hero-banner.default.v1&lt;/small&gt;
477
+ &lt;/span&gt;
478
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Duplicate section&quot; aria-label=&quot;Duplicate section&quot;&gt;⧉&lt;/button&gt;
479
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-act&quot; title=&quot;Restore this section to its previous version&quot; aria-label=&quot;Restore this section&quot;&gt;↺&lt;/button&gt;
480
+ &lt;/header&gt;
481
+ &lt;div class=&quot;gemboss-ei-tabs&quot; role=&quot;tablist&quot;&gt;
482
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;content&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Content&lt;/button&gt;
483
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;design&quot; class=&quot;gemboss-ei-tab on&quot; aria-selected=&quot;true&quot; tabindex=&quot;0&quot;&gt;Design&lt;/button&gt;
484
+ &lt;button type=&quot;button&quot; role=&quot;tab&quot; data-value=&quot;advanced&quot; class=&quot;gemboss-ei-tab&quot; aria-selected=&quot;false&quot; tabindex=&quot;-1&quot;&gt;Advanced&lt;/button&gt;
485
+ &lt;/div&gt;
486
+ &lt;div class=&quot;gemboss-ei-body&quot;&gt;
487
+ &lt;div class=&quot;gemboss-ei-pane&quot;&gt;
488
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
489
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
490
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Layout&lt;small class=&quot;gemboss-ei-gh-note&quot;&gt;· all screens&lt;/small&gt;
491
+ &lt;/button&gt;
492
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
493
+ &lt;label&gt;Content width&lt;/label&gt;
494
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Content width&quot;&gt;
495
+ &lt;button type=&quot;button&quot; data-value=&quot;full&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Full&lt;/button&gt;
496
+ &lt;button type=&quot;button&quot; data-value=&quot;contained&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;Contained&lt;/button&gt;
497
+ &lt;button type=&quot;button&quot; data-value=&quot;narrow&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Narrow&lt;/button&gt;
498
+ &lt;/div&gt;
499
+ &lt;/div&gt;
500
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
501
+ &lt;label&gt;Columns&lt;/label&gt;
502
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Columns&quot;&gt;
503
+ &lt;button type=&quot;button&quot; data-value=&quot;2&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;2&lt;/button&gt;
504
+ &lt;button type=&quot;button&quot; data-value=&quot;3&quot; disabled=&quot;&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;3&lt;/button&gt;
505
+ &lt;button type=&quot;button&quot; data-value=&quot;4&quot; disabled=&quot;&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;4&lt;/button&gt;
506
+ &lt;/div&gt;
507
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;Disabled while a change is applied.&lt;/p&gt;
508
+ &lt;/div&gt;
509
+ &lt;/div&gt;
510
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
511
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
512
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Spacing&lt;/button&gt;
513
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
514
+ &lt;label&gt;Padding&lt;/label&gt;
515
+ &lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;
516
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
517
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding top&quot; value=&quot;24&quot;/&gt;
518
+ &lt;span&gt;T&lt;/span&gt;
519
+ &lt;/div&gt;
520
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
521
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding right&quot; value=&quot;&quot;/&gt;
522
+ &lt;span&gt;R&lt;/span&gt;
523
+ &lt;/div&gt;
524
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
525
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding bottom&quot; value=&quot;24&quot;/&gt;
526
+ &lt;span&gt;B&lt;/span&gt;
527
+ &lt;/div&gt;
528
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
529
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Padding left&quot; value=&quot;&quot;/&gt;
530
+ &lt;span&gt;L&lt;/span&gt;
531
+ &lt;/div&gt;
532
+ &lt;/div&gt;
533
+ &lt;/div&gt;
534
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
535
+ &lt;label&gt;Margin&lt;/label&gt;
536
+ &lt;div class=&quot;gemboss-ei-edgebox&quot;&gt;
537
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
538
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin top&quot; value=&quot;&quot;/&gt;
539
+ &lt;span&gt;T&lt;/span&gt;
540
+ &lt;/div&gt;
541
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
542
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin right&quot; value=&quot;&quot;/&gt;
543
+ &lt;span&gt;R&lt;/span&gt;
544
+ &lt;/div&gt;
545
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
546
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;16&quot; aria-label=&quot;Margin bottom&quot; value=&quot;&quot;/&gt;
547
+ &lt;span&gt;B&lt;/span&gt;
548
+ &lt;/div&gt;
549
+ &lt;div class=&quot;gemboss-ei-edge&quot;&gt;
550
+ &lt;input class=&quot;gemboss-field gemboss-field--narrow gemboss-ei-inp&quot; inputMode=&quot;numeric&quot; placeholder=&quot;0&quot; aria-label=&quot;Margin left&quot; value=&quot;&quot;/&gt;
551
+ &lt;span&gt;L&lt;/span&gt;
552
+ &lt;/div&gt;
553
+ &lt;/div&gt;
554
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;Empty edges follow desktop.&lt;/p&gt;
555
+ &lt;/div&gt;
556
+ &lt;/div&gt;
557
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
558
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
559
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Color&lt;/button&gt;
560
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
561
+ &lt;label for=&quot;cat-bg&quot;&gt;Background&lt;/label&gt;
562
+ &lt;div class=&quot;gemboss-ei-color&quot;&gt;
563
+ &lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Background swatch&quot; value=&quot;#f4efe6&quot;/&gt;
564
+ &lt;input id=&quot;cat-bg&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;#f4efe6&quot;/&gt;
565
+ &lt;/div&gt;
566
+ &lt;/div&gt;
567
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
568
+ &lt;label for=&quot;cat-ov&quot;&gt;Overlay&lt;/label&gt;
569
+ &lt;div class=&quot;gemboss-ei-color&quot;&gt;
570
+ &lt;input type=&quot;color&quot; class=&quot;gemboss-ei-swatch&quot; aria-label=&quot;Overlay swatch&quot; disabled=&quot;&quot; title=&quot;linear-gradient(90deg,#000,#0000) — not a plain 6-digit hex; edit it in the box below&quot; value=&quot;#000000&quot;/&gt;
571
+ &lt;input id=&quot;cat-ov&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;#000000 / var(--…)&quot; value=&quot;linear-gradient(90deg,#000,#0000)&quot;/&gt;
572
+ &lt;/div&gt;
573
+ &lt;p class=&quot;gemboss-ei-hint&quot;&gt;A gradient: the swatch cannot show it, so it is off.&lt;/p&gt;
574
+ &lt;/div&gt;
575
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
576
+ &lt;label for=&quot;cat-op&quot;&gt;Opacity&lt;span class=&quot;gemboss-ei-rangeval&quot; data-suffix=&quot;%&quot;&gt;80%&lt;/span&gt;
577
+ &lt;/label&gt;
578
+ &lt;input id=&quot;cat-op&quot; type=&quot;range&quot; class=&quot;gemboss-ei-range&quot; min=&quot;0&quot; max=&quot;100&quot; step=&quot;1&quot; value=&quot;80&quot;/&gt;
579
+ &lt;/div&gt;
580
+ &lt;/div&gt;
581
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
582
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;open&quot; aria-expanded=&quot;true&quot;&gt;
583
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▾&lt;/span&gt;Media&lt;/button&gt;
584
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
585
+ &lt;label for=&quot;cat-img&quot;&gt;Image&lt;/label&gt;
586
+ &lt;div class=&quot;gemboss-ei-img&quot;&gt;
587
+ &lt;div class=&quot;gemboss-ei-img-thumb&quot; aria-hidden=&quot;true&quot;&gt;—&lt;/div&gt;
588
+ &lt;div class=&quot;gemboss-ei-img-ctl&quot;&gt;
589
+ &lt;input id=&quot;cat-img&quot; class=&quot;gemboss-field gemboss-ei-inp&quot; placeholder=&quot;Paste image URL…&quot; value=&quot;&quot;/&gt;
590
+ &lt;div class=&quot;gemboss-ei-img-actions&quot;&gt;
591
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; aria-expanded=&quot;false&quot;&gt;Library&lt;/button&gt;
592
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-addchip&quot; data-gb-image-clear&gt;Clear&lt;/button&gt;
593
+ &lt;/div&gt;
594
+ &lt;/div&gt;
595
+ &lt;/div&gt;
596
+ &lt;/div&gt;
597
+ &lt;/div&gt;
598
+ &lt;div class=&quot;gemboss-ei-grp&quot;&gt;
599
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-gh&quot; data-open=&quot;closed&quot; aria-expanded=&quot;false&quot;&gt;
600
+ &lt;span class=&quot;gemboss-ei-chev&quot; aria-hidden=&quot;true&quot;&gt;▸&lt;/span&gt;Motion&lt;/button&gt;
601
+ &lt;div class=&quot;gemboss-ei-fld&quot;&gt;
602
+ &lt;label&gt;Reveal&lt;/label&gt;
603
+ &lt;div class=&quot;ui-seg ui-seg--fill gemboss-ei-seg&quot; role=&quot;group&quot; aria-label=&quot;Reveal&quot;&gt;
604
+ &lt;button type=&quot;button&quot; data-value=&quot;none&quot; aria-pressed=&quot;true&quot; class=&quot;is-text active&quot;&gt;None&lt;/button&gt;
605
+ &lt;button type=&quot;button&quot; data-value=&quot;fade&quot; aria-pressed=&quot;false&quot; class=&quot;is-text&quot;&gt;Fade&lt;/button&gt;
606
+ &lt;/div&gt;
607
+ &lt;/div&gt;
608
+ &lt;/div&gt;
609
+ &lt;/div&gt;
610
+ &lt;/div&gt;
611
+ &lt;/aside&gt;
612
+ &lt;/div&gt;
613
+ &lt;/div&gt;</code></pre></details></figure>
614
+ <h2>Lớp và ngăn kéo (0.22.0): LayerList, LayerTree, EditorDrawer</h2>
615
+ <p>Đúng Layers, Page settings của page editor và cây Elements của inspector trong admin. Ở đây bật thêm phần admin chưa dùng: kéo hàng để đổi thứ tự (hoặc Alt+↑ / Alt+↓ trên hàng đang focus), con mắt ẩn / hiện, hàng con thụt vào. Bấm "Layers" hoặc "Page settings" để mở ngăn kéo; ✕ hoặc nền mờ để đóng. Mỗi việc bắn một event <code>gemboss:editor-*</code>.</p>
616
+ <h3>React</h3><pre class="cat-api"><code>import { EditorDrawer, LayerList, LayerTree, SortableLayerList } from &quot;@gemboss/ui/editor&quot;;
617
+
618
+ {layersOpen ? (
619
+ &lt;EditorDrawer side=&quot;left&quot; label=&quot;Page layers&quot; title=&quot;Layers&quot; onClose={() =&gt; setLayersOpen(false)}&gt;
620
+ &lt;SortableLayerList items={sections.map((s) =&gt; ({ id: s.id, title: s.type, subtitle: s.heading, hidden: s.hidden }))}
621
+ selectedId={picked} onSelect={(it) =&gt; setPicked(it.id)}
622
+ onMove={(it, to) =&gt; moveSection(it.id, to)} // drag, or Alt+↑ / Alt+↓; LayerList for a fixed list
623
+ onToggleHidden={(it, hidden) =&gt; setHidden(it.id, hidden)} // the eye; omit to draw none
624
+ actions={(it) =&gt; &lt;button aria-label=&quot;Delete&quot; onClick={() =&gt; remove(it.id)}&gt;✕&lt;/button&gt;} empty=&quot;No sections yet&quot; /&gt;
625
+ &lt;/EditorDrawer&gt;
626
+ ) : null}
627
+ &lt;EditorDrawer title=&quot;Page settings&quot; onClose={close} footer={&lt;button className=&quot;gemboss-settings-save&quot;&gt;Save&lt;/button&gt;}&gt;
628
+ &lt;div className=&quot;gemboss-settings-body&quot;&gt;…&lt;label className=&quot;gemboss-settings-field&quot;&gt;&lt;span&gt;Name&lt;/span&gt;&lt;input className=&quot;gemboss-field&quot; /&gt;&lt;/label&gt;&lt;/div&gt;
629
+ &lt;/EditorDrawer&gt;
630
+ &lt;LayerTree label=&quot;Section elements&quot; rows={flattened} selectedId={node} onSelect={(r) =&gt; setNode(r.id === node ? null : r.id)} actions={(r) =&gt; …} /&gt;</code></pre>
631
+ <figure class="cat-demo"><figcaption>1280: Layers (kéo, ẩn, chọn, thụt cấp), Page settings, cây Elements</figcaption><div class="cat-wide"><iframe title="1280: Layers (kéo, ẩn, chọn, thụt cấp), Page settings, cây Elements" style="width:1280px;height:640px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div style=&quot;padding:16px;display:flex;gap:8px&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-layers&quot;&gt;☰ Layers&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-settings&quot;&gt;Page settings&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;&lt;/div&gt;&lt;aside class=&quot;gemboss-layers&quot; id=&quot;cat-layers&quot; aria-label=&quot;Page layers&quot; hidden&gt;&lt;div class=&quot;gemboss-picker-head&quot;&gt;&lt;span&gt;Layers (6)&lt;/span&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layers-list&quot;&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;hero&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Hero banner&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Spring sale, up to 40% off&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Hero banner&quot; title=&quot;Hide Hero banner&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer is-sel&quot; data-id=&quot;logos&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-current=&quot;true&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Logo cloud&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Trusted by&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Logo cloud&quot; title=&quot;Hide Logo cloud&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefits&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefits&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefits&quot; title=&quot;Hide Benefits&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefit-card&quot; style=&quot;padding-left:20px&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefit card&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefit card&quot; title=&quot;Hide Benefit card&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer is-hidden&quot; data-id=&quot;reviews&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Reviews&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Hide Reviews&quot; title=&quot;Hide Reviews&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M2.5 13.5 13.5 2.5&quot; data-gb-slash=&quot;&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;faq&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Faq&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Questions shoppers ask&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Faq&quot; title=&quot;Hide Faq&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;&lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;&lt;/div&gt;&lt;aside class=&quot;gemboss-settings&quot; id=&quot;cat-settings&quot; aria-label=&quot;Page settings&quot; hidden&gt;&lt;div class=&quot;gemboss-picker-head&quot;&gt;&lt;span&gt;Page settings&lt;/span&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-settings-body&quot;&gt;&lt;label class=&quot;gemboss-settings-field&quot;&gt;&lt;span&gt;Page name&lt;/span&gt;&lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale&quot;/&gt;&lt;small&gt;What this page is called in your Pages list.&lt;/small&gt;&lt;/label&gt;&lt;label class=&quot;gemboss-settings-field&quot;&gt;&lt;span&gt;SEO title&lt;/span&gt;&lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale · up to 40% off&quot;/&gt;&lt;small&gt;27/70&lt;/small&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-settings-foot&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-settings-cancel&quot; data-gb-drawer-close=&quot;&quot;&gt;Cancel&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-settings-save&quot;&gt;Save&lt;/button&gt;&lt;/div&gt;&lt;/aside&gt;&lt;div class=&quot;gemboss-ei gemboss-ei--docked&quot; style=&quot;width:320px;padding:12px&quot;&gt;&lt;ul class=&quot;gemboss-ei-tree&quot; role=&quot;tree&quot; aria-label=&quot;Section elements&quot;&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;1&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;1&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:6px&quot; data-id=&quot;root&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Section&lt;small&gt;root&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Add inside&quot; title=&quot;Add inside&quot;&gt;+&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;product&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product&lt;small&gt;product&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;true&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode on&quot; style=&quot;padding-left:34px&quot; data-id=&quot;title&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot; aria-current=&quot;true&quot;&gt;Product title&lt;small&gt;title&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:34px&quot; data-id=&quot;price&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product price&lt;small&gt;price&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;cta&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Button&lt;small&gt;cta&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div style=&quot;padding:16px;display:flex;gap:8px&quot;&gt;
632
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-layers&quot;&gt;☰ Layers&lt;/button&gt;
633
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-settings&quot;&gt;Page settings&lt;/button&gt;
634
+ &lt;/div&gt;
635
+ &lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;
636
+ &lt;/div&gt;
637
+ &lt;aside class=&quot;gemboss-layers&quot; id=&quot;cat-layers&quot; aria-label=&quot;Page layers&quot; hidden&gt;
638
+ &lt;div class=&quot;gemboss-picker-head&quot;&gt;
639
+ &lt;span&gt;Layers (6)&lt;/span&gt;
640
+ &lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;
641
+ &lt;/div&gt;
642
+ &lt;div class=&quot;gemboss-layers-list&quot;&gt;
643
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;hero&quot; draggable=&quot;true&quot;&gt;
644
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
645
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
646
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Hero banner&lt;/span&gt;
647
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Spring sale, up to 40% off&lt;/span&gt;
648
+ &lt;/button&gt;
649
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
650
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Hero banner&quot; title=&quot;Hide Hero banner&quot;&gt;
651
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
652
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
653
+ &lt;/path&gt;
654
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
655
+ &lt;/circle&gt;
656
+ &lt;/svg&gt;
657
+ &lt;/button&gt;
658
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
659
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
660
+ &lt;/div&gt;
661
+ &lt;/div&gt;
662
+ &lt;div class=&quot;gemboss-layer is-sel&quot; data-id=&quot;logos&quot; draggable=&quot;true&quot;&gt;
663
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
664
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-current=&quot;true&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
665
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Logo cloud&lt;/span&gt;
666
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Trusted by&lt;/span&gt;
667
+ &lt;/button&gt;
668
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
669
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Logo cloud&quot; title=&quot;Hide Logo cloud&quot;&gt;
670
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
671
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
672
+ &lt;/path&gt;
673
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
674
+ &lt;/circle&gt;
675
+ &lt;/svg&gt;
676
+ &lt;/button&gt;
677
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
678
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
679
+ &lt;/div&gt;
680
+ &lt;/div&gt;
681
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefits&quot; draggable=&quot;true&quot;&gt;
682
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
683
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
684
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefits&lt;/span&gt;
685
+ &lt;/button&gt;
686
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
687
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefits&quot; title=&quot;Hide Benefits&quot;&gt;
688
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
689
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
690
+ &lt;/path&gt;
691
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
692
+ &lt;/circle&gt;
693
+ &lt;/svg&gt;
694
+ &lt;/button&gt;
695
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
696
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
697
+ &lt;/div&gt;
698
+ &lt;/div&gt;
699
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefit-card&quot; style=&quot;padding-left:20px&quot; draggable=&quot;true&quot;&gt;
700
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
701
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
702
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefit card&lt;/span&gt;
703
+ &lt;/button&gt;
704
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
705
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefit card&quot; title=&quot;Hide Benefit card&quot;&gt;
706
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
707
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
708
+ &lt;/path&gt;
709
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
710
+ &lt;/circle&gt;
711
+ &lt;/svg&gt;
712
+ &lt;/button&gt;
713
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
714
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
715
+ &lt;/div&gt;
716
+ &lt;/div&gt;
717
+ &lt;div class=&quot;gemboss-layer is-hidden&quot; data-id=&quot;reviews&quot; draggable=&quot;true&quot;&gt;
718
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
719
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
720
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Reviews&lt;/span&gt;
721
+ &lt;/button&gt;
722
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
723
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Hide Reviews&quot; title=&quot;Hide Reviews&quot;&gt;
724
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
725
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
726
+ &lt;/path&gt;
727
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
728
+ &lt;/circle&gt;
729
+ &lt;path d=&quot;M2.5 13.5 13.5 2.5&quot; data-gb-slash=&quot;&quot;&gt;
730
+ &lt;/path&gt;
731
+ &lt;/svg&gt;
732
+ &lt;/button&gt;
733
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
734
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
735
+ &lt;/div&gt;
736
+ &lt;/div&gt;
737
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;faq&quot; draggable=&quot;true&quot;&gt;
738
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
739
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
740
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Faq&lt;/span&gt;
741
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Questions shoppers ask&lt;/span&gt;
742
+ &lt;/button&gt;
743
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
744
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Faq&quot; title=&quot;Hide Faq&quot;&gt;
745
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
746
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
747
+ &lt;/path&gt;
748
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
749
+ &lt;/circle&gt;
750
+ &lt;/svg&gt;
751
+ &lt;/button&gt;
752
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
753
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
754
+ &lt;/div&gt;
755
+ &lt;/div&gt;
756
+ &lt;/div&gt;
757
+ &lt;/aside&gt;
758
+ &lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;
759
+ &lt;/div&gt;
760
+ &lt;aside class=&quot;gemboss-settings&quot; id=&quot;cat-settings&quot; aria-label=&quot;Page settings&quot; hidden&gt;
761
+ &lt;div class=&quot;gemboss-picker-head&quot;&gt;
762
+ &lt;span&gt;Page settings&lt;/span&gt;
763
+ &lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;
764
+ &lt;/div&gt;
765
+ &lt;div class=&quot;gemboss-settings-body&quot;&gt;
766
+ &lt;label class=&quot;gemboss-settings-field&quot;&gt;
767
+ &lt;span&gt;Page name&lt;/span&gt;
768
+ &lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale&quot;/&gt;
769
+ &lt;small&gt;What this page is called in your Pages list.&lt;/small&gt;
770
+ &lt;/label&gt;
771
+ &lt;label class=&quot;gemboss-settings-field&quot;&gt;
772
+ &lt;span&gt;SEO title&lt;/span&gt;
773
+ &lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale · up to 40% off&quot;/&gt;
774
+ &lt;small&gt;27/70&lt;/small&gt;
775
+ &lt;/label&gt;
776
+ &lt;/div&gt;
777
+ &lt;div class=&quot;gemboss-settings-foot&quot;&gt;
778
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-settings-cancel&quot; data-gb-drawer-close=&quot;&quot;&gt;Cancel&lt;/button&gt;
779
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-settings-save&quot;&gt;Save&lt;/button&gt;
780
+ &lt;/div&gt;
781
+ &lt;/aside&gt;
782
+ &lt;div class=&quot;gemboss-ei gemboss-ei--docked&quot; style=&quot;width:320px;padding:12px&quot;&gt;
783
+ &lt;ul class=&quot;gemboss-ei-tree&quot; role=&quot;tree&quot; aria-label=&quot;Section elements&quot;&gt;
784
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;1&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;1&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:6px&quot; data-id=&quot;root&quot;&gt;
785
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Section&lt;small&gt;root&lt;/small&gt;
786
+ &lt;/button&gt;
787
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
788
+ &lt;button type=&quot;button&quot; aria-label=&quot;Add inside&quot; title=&quot;Add inside&quot;&gt;+&lt;/button&gt;
789
+ &lt;/span&gt;
790
+ &lt;/li&gt;
791
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;product&quot;&gt;
792
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product&lt;small&gt;product&lt;/small&gt;
793
+ &lt;/button&gt;
794
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
795
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
796
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
797
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
798
+ &lt;/span&gt;
799
+ &lt;/li&gt;
800
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;true&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode on&quot; style=&quot;padding-left:34px&quot; data-id=&quot;title&quot;&gt;
801
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot; aria-current=&quot;true&quot;&gt;Product title&lt;small&gt;title&lt;/small&gt;
802
+ &lt;/button&gt;
803
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
804
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
805
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
806
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
807
+ &lt;/span&gt;
808
+ &lt;/li&gt;
809
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:34px&quot; data-id=&quot;price&quot;&gt;
810
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product price&lt;small&gt;price&lt;/small&gt;
811
+ &lt;/button&gt;
812
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
813
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
814
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
815
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
816
+ &lt;/span&gt;
817
+ &lt;/li&gt;
818
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;cta&quot;&gt;
819
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Button&lt;small&gt;cta&lt;/small&gt;
820
+ &lt;/button&gt;
821
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
822
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
823
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
824
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
825
+ &lt;/span&gt;
826
+ &lt;/li&gt;
827
+ &lt;/ul&gt;
828
+ &lt;/div&gt;</code></pre></details></figure>
829
+ <figure class="cat-demo"><figcaption>390 (điện thoại)</figcaption><div class="cat-wide"><iframe title="390 (điện thoại)" style="width:390px;height:900px" srcdoc="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../gemboss-ui.css&quot;&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;../src/editor.css&quot;&gt;&lt;/head&gt;&lt;body&gt;&lt;div style=&quot;padding:16px;display:flex;gap:8px&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-layers&quot;&gt;☰ Layers&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-settings&quot;&gt;Page settings&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;&lt;/div&gt;&lt;aside class=&quot;gemboss-layers&quot; id=&quot;cat-layers&quot; aria-label=&quot;Page layers&quot; hidden&gt;&lt;div class=&quot;gemboss-picker-head&quot;&gt;&lt;span&gt;Layers (6)&lt;/span&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layers-list&quot;&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;hero&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Hero banner&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Spring sale, up to 40% off&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Hero banner&quot; title=&quot;Hide Hero banner&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer is-sel&quot; data-id=&quot;logos&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-current=&quot;true&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Logo cloud&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Trusted by&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Logo cloud&quot; title=&quot;Hide Logo cloud&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefits&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefits&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefits&quot; title=&quot;Hide Benefits&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefit-card&quot; style=&quot;padding-left:20px&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefit card&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefit card&quot; title=&quot;Hide Benefit card&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer is-hidden&quot; data-id=&quot;reviews&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Reviews&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Hide Reviews&quot; title=&quot;Hide Reviews&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;path d=&quot;M2.5 13.5 13.5 2.5&quot; data-gb-slash=&quot;&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-layer&quot; data-id=&quot;faq&quot; draggable=&quot;true&quot;&gt;&lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;&lt;span class=&quot;gemboss-layer-type&quot;&gt;Faq&lt;/span&gt;&lt;span class=&quot;gemboss-layer-head&quot;&gt;Questions shoppers ask&lt;/span&gt;&lt;/button&gt;&lt;div class=&quot;gemboss-layer-acts&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Faq&quot; title=&quot;Hide Faq&quot;&gt;&lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;&lt;/path&gt;&lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;&lt;/circle&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;&lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;&lt;/div&gt;&lt;aside class=&quot;gemboss-settings&quot; id=&quot;cat-settings&quot; aria-label=&quot;Page settings&quot; hidden&gt;&lt;div class=&quot;gemboss-picker-head&quot;&gt;&lt;span&gt;Page settings&lt;/span&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-settings-body&quot;&gt;&lt;label class=&quot;gemboss-settings-field&quot;&gt;&lt;span&gt;Page name&lt;/span&gt;&lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale&quot;/&gt;&lt;small&gt;What this page is called in your Pages list.&lt;/small&gt;&lt;/label&gt;&lt;label class=&quot;gemboss-settings-field&quot;&gt;&lt;span&gt;SEO title&lt;/span&gt;&lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale · up to 40% off&quot;/&gt;&lt;small&gt;27/70&lt;/small&gt;&lt;/label&gt;&lt;/div&gt;&lt;div class=&quot;gemboss-settings-foot&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-settings-cancel&quot; data-gb-drawer-close=&quot;&quot;&gt;Cancel&lt;/button&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-settings-save&quot;&gt;Save&lt;/button&gt;&lt;/div&gt;&lt;/aside&gt;&lt;div class=&quot;gemboss-ei gemboss-ei--docked&quot; style=&quot;width:320px;padding:12px&quot;&gt;&lt;ul class=&quot;gemboss-ei-tree&quot; role=&quot;tree&quot; aria-label=&quot;Section elements&quot;&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;1&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;1&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:6px&quot; data-id=&quot;root&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Section&lt;small&gt;root&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Add inside&quot; title=&quot;Add inside&quot;&gt;+&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;product&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product&lt;small&gt;product&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;true&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode on&quot; style=&quot;padding-left:34px&quot; data-id=&quot;title&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot; aria-current=&quot;true&quot;&gt;Product title&lt;small&gt;title&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:34px&quot; data-id=&quot;price&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product price&lt;small&gt;price&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;cta&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Button&lt;small&gt;cta&lt;/small&gt;&lt;/button&gt;&lt;span class=&quot;gemboss-ei-tacts&quot;&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;&lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;script src=&quot;../src/kit-plain.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;../src/editor-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorFrame()&lt;/script&gt;&lt;script&gt;gembossUI.initEditorPanel()&lt;/script&gt;&lt;script src=&quot;../src/editor-layers-plain.js&quot;&gt;&lt;/script&gt;&lt;script&gt;gembossUI.initEditorLayers()&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;"></iframe></div><details class="cat-code"><summary>Markup</summary><pre><code>&lt;div style=&quot;padding:16px;display:flex;gap:8px&quot;&gt;
830
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-layers&quot;&gt;☰ Layers&lt;/button&gt;
831
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-editor-tb-ghost&quot; data-gb-drawer=&quot;cat-settings&quot;&gt;Page settings&lt;/button&gt;
832
+ &lt;/div&gt;
833
+ &lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;
834
+ &lt;/div&gt;
835
+ &lt;aside class=&quot;gemboss-layers&quot; id=&quot;cat-layers&quot; aria-label=&quot;Page layers&quot; hidden&gt;
836
+ &lt;div class=&quot;gemboss-picker-head&quot;&gt;
837
+ &lt;span&gt;Layers (6)&lt;/span&gt;
838
+ &lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;
839
+ &lt;/div&gt;
840
+ &lt;div class=&quot;gemboss-layers-list&quot;&gt;
841
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;hero&quot; draggable=&quot;true&quot;&gt;
842
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
843
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
844
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Hero banner&lt;/span&gt;
845
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Spring sale, up to 40% off&lt;/span&gt;
846
+ &lt;/button&gt;
847
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
848
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Hero banner&quot; title=&quot;Hide Hero banner&quot;&gt;
849
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
850
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
851
+ &lt;/path&gt;
852
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
853
+ &lt;/circle&gt;
854
+ &lt;/svg&gt;
855
+ &lt;/button&gt;
856
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
857
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
858
+ &lt;/div&gt;
859
+ &lt;/div&gt;
860
+ &lt;div class=&quot;gemboss-layer is-sel&quot; data-id=&quot;logos&quot; draggable=&quot;true&quot;&gt;
861
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
862
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-current=&quot;true&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
863
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Logo cloud&lt;/span&gt;
864
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Trusted by&lt;/span&gt;
865
+ &lt;/button&gt;
866
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
867
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Logo cloud&quot; title=&quot;Hide Logo cloud&quot;&gt;
868
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
869
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
870
+ &lt;/path&gt;
871
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
872
+ &lt;/circle&gt;
873
+ &lt;/svg&gt;
874
+ &lt;/button&gt;
875
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
876
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
877
+ &lt;/div&gt;
878
+ &lt;/div&gt;
879
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefits&quot; draggable=&quot;true&quot;&gt;
880
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
881
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
882
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefits&lt;/span&gt;
883
+ &lt;/button&gt;
884
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
885
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefits&quot; title=&quot;Hide Benefits&quot;&gt;
886
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
887
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
888
+ &lt;/path&gt;
889
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
890
+ &lt;/circle&gt;
891
+ &lt;/svg&gt;
892
+ &lt;/button&gt;
893
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
894
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
895
+ &lt;/div&gt;
896
+ &lt;/div&gt;
897
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;benefit-card&quot; style=&quot;padding-left:20px&quot; draggable=&quot;true&quot;&gt;
898
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
899
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
900
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Benefit card&lt;/span&gt;
901
+ &lt;/button&gt;
902
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
903
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Benefit card&quot; title=&quot;Hide Benefit card&quot;&gt;
904
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
905
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
906
+ &lt;/path&gt;
907
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
908
+ &lt;/circle&gt;
909
+ &lt;/svg&gt;
910
+ &lt;/button&gt;
911
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
912
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
913
+ &lt;/div&gt;
914
+ &lt;/div&gt;
915
+ &lt;div class=&quot;gemboss-layer is-hidden&quot; data-id=&quot;reviews&quot; draggable=&quot;true&quot;&gt;
916
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
917
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
918
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Reviews&lt;/span&gt;
919
+ &lt;/button&gt;
920
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
921
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;true&quot; aria-label=&quot;Hide Reviews&quot; title=&quot;Hide Reviews&quot;&gt;
922
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
923
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
924
+ &lt;/path&gt;
925
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
926
+ &lt;/circle&gt;
927
+ &lt;path d=&quot;M2.5 13.5 13.5 2.5&quot; data-gb-slash=&quot;&quot;&gt;
928
+ &lt;/path&gt;
929
+ &lt;/svg&gt;
930
+ &lt;/button&gt;
931
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
932
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
933
+ &lt;/div&gt;
934
+ &lt;/div&gt;
935
+ &lt;div class=&quot;gemboss-layer&quot; data-id=&quot;faq&quot; draggable=&quot;true&quot;&gt;
936
+ &lt;span class=&quot;gemboss-layer-grip&quot; aria-hidden=&quot;true&quot;&gt;⋮⋮&lt;/span&gt;
937
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-main&quot; aria-keyshortcuts=&quot;Alt+ArrowUp Alt+ArrowDown&quot;&gt;
938
+ &lt;span class=&quot;gemboss-layer-type&quot;&gt;Faq&lt;/span&gt;
939
+ &lt;span class=&quot;gemboss-layer-head&quot;&gt;Questions shoppers ask&lt;/span&gt;
940
+ &lt;/button&gt;
941
+ &lt;div class=&quot;gemboss-layer-acts&quot;&gt;
942
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-eye&quot; aria-pressed=&quot;false&quot; aria-label=&quot;Hide Faq&quot; title=&quot;Hide Faq&quot;&gt;
943
+ &lt;svg width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 16 16&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;1.4&quot; aria-hidden=&quot;true&quot;&gt;
944
+ &lt;path d=&quot;M1.5 8s2.4-4.5 6.5-4.5S14.5 8 14.5 8s-2.4 4.5-6.5 4.5S1.5 8 1.5 8Z&quot;&gt;
945
+ &lt;/path&gt;
946
+ &lt;circle cx=&quot;8&quot; cy=&quot;8&quot; r=&quot;2&quot;&gt;
947
+ &lt;/circle&gt;
948
+ &lt;/svg&gt;
949
+ &lt;/button&gt;
950
+ &lt;button type=&quot;button&quot; aria-label=&quot;Duplicate&quot; title=&quot;Duplicate&quot;&gt;⧉&lt;/button&gt;
951
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-layer-del&quot; aria-label=&quot;Delete&quot; title=&quot;Delete&quot;&gt;✕&lt;/button&gt;
952
+ &lt;/div&gt;
953
+ &lt;/div&gt;
954
+ &lt;/div&gt;
955
+ &lt;/aside&gt;
956
+ &lt;div class=&quot;gemboss-picker-backdrop&quot; hidden&gt;
957
+ &lt;/div&gt;
958
+ &lt;aside class=&quot;gemboss-settings&quot; id=&quot;cat-settings&quot; aria-label=&quot;Page settings&quot; hidden&gt;
959
+ &lt;div class=&quot;gemboss-picker-head&quot;&gt;
960
+ &lt;span&gt;Page settings&lt;/span&gt;
961
+ &lt;button type=&quot;button&quot; aria-label=&quot;Close&quot;&gt;✕&lt;/button&gt;
962
+ &lt;/div&gt;
963
+ &lt;div class=&quot;gemboss-settings-body&quot;&gt;
964
+ &lt;label class=&quot;gemboss-settings-field&quot;&gt;
965
+ &lt;span&gt;Page name&lt;/span&gt;
966
+ &lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale&quot;/&gt;
967
+ &lt;small&gt;What this page is called in your Pages list.&lt;/small&gt;
968
+ &lt;/label&gt;
969
+ &lt;label class=&quot;gemboss-settings-field&quot;&gt;
970
+ &lt;span&gt;SEO title&lt;/span&gt;
971
+ &lt;input class=&quot;gemboss-field&quot; value=&quot;Spring sale · up to 40% off&quot;/&gt;
972
+ &lt;small&gt;27/70&lt;/small&gt;
973
+ &lt;/label&gt;
974
+ &lt;/div&gt;
975
+ &lt;div class=&quot;gemboss-settings-foot&quot;&gt;
976
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-settings-cancel&quot; data-gb-drawer-close=&quot;&quot;&gt;Cancel&lt;/button&gt;
977
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-settings-save&quot;&gt;Save&lt;/button&gt;
978
+ &lt;/div&gt;
979
+ &lt;/aside&gt;
980
+ &lt;div class=&quot;gemboss-ei gemboss-ei--docked&quot; style=&quot;width:320px;padding:12px&quot;&gt;
981
+ &lt;ul class=&quot;gemboss-ei-tree&quot; role=&quot;tree&quot; aria-label=&quot;Section elements&quot;&gt;
982
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;1&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;1&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:6px&quot; data-id=&quot;root&quot;&gt;
983
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Section&lt;small&gt;root&lt;/small&gt;
984
+ &lt;/button&gt;
985
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
986
+ &lt;button type=&quot;button&quot; aria-label=&quot;Add inside&quot; title=&quot;Add inside&quot;&gt;+&lt;/button&gt;
987
+ &lt;/span&gt;
988
+ &lt;/li&gt;
989
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;product&quot;&gt;
990
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product&lt;small&gt;product&lt;/small&gt;
991
+ &lt;/button&gt;
992
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
993
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
994
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
995
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
996
+ &lt;/span&gt;
997
+ &lt;/li&gt;
998
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;true&quot; aria-posinset=&quot;1&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode on&quot; style=&quot;padding-left:34px&quot; data-id=&quot;title&quot;&gt;
999
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot; aria-current=&quot;true&quot;&gt;Product title&lt;small&gt;title&lt;/small&gt;
1000
+ &lt;/button&gt;
1001
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
1002
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
1003
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
1004
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
1005
+ &lt;/span&gt;
1006
+ &lt;/li&gt;
1007
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;3&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:34px&quot; data-id=&quot;price&quot;&gt;
1008
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Product price&lt;small&gt;price&lt;/small&gt;
1009
+ &lt;/button&gt;
1010
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
1011
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
1012
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
1013
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
1014
+ &lt;/span&gt;
1015
+ &lt;/li&gt;
1016
+ &lt;li role=&quot;treeitem&quot; aria-level=&quot;2&quot; aria-selected=&quot;false&quot; aria-posinset=&quot;2&quot; aria-setsize=&quot;2&quot; class=&quot;gemboss-ei-tnode&quot; style=&quot;padding-left:20px&quot; data-id=&quot;cta&quot;&gt;
1017
+ &lt;button type=&quot;button&quot; class=&quot;gemboss-ei-tname&quot;&gt;Button&lt;small&gt;cta&lt;/small&gt;
1018
+ &lt;/button&gt;
1019
+ &lt;span class=&quot;gemboss-ei-tacts&quot;&gt;
1020
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move up&quot; title=&quot;Move up&quot;&gt;↑&lt;/button&gt;
1021
+ &lt;button type=&quot;button&quot; aria-label=&quot;Move down&quot; title=&quot;Move down&quot;&gt;↓&lt;/button&gt;
1022
+ &lt;button type=&quot;button&quot; aria-label=&quot;Remove&quot; title=&quot;Remove&quot;&gt;✕&lt;/button&gt;
1023
+ &lt;/span&gt;
1024
+ &lt;/li&gt;
1025
+ &lt;/ul&gt;
1026
+ &lt;/div&gt;</code></pre></details></figure>
1027
+ </div></body></html>