diff --git a/assets/themes/sonic/components/diamond/diamond.editor.html b/assets/themes/sonic/components/diamond/diamond.editor.html
index ccd0efc..beab263 100644
--- a/assets/themes/sonic/components/diamond/diamond.editor.html
+++ b/assets/themes/sonic/components/diamond/diamond.editor.html
@@ -12,6 +12,7 @@
--muted: #8e8e93;
--accent: #0a84ff;
--invalid: #fafafa;
+ --checker: #c8c8c8;
}
* { box-sizing: border-box; }
body { margin: 0; font: 13px/1.4 -apple-system, system-ui, sans-serif;
@@ -25,7 +26,12 @@
background: var(--accent); color: white;
border: none; border-radius: 6px; cursor: pointer; }
header button:hover { opacity: 0.9; }
+ header button.ghost { background: transparent; color: var(--text);
+ border: 1px solid var(--line); }
main { padding: 20px; }
+
+ /* ---- Matrix view ---- */
+
section { margin-bottom: 32px; }
section > h2 { margin: 0 0 12px; font-size: 13px; font-weight: 600;
color: var(--muted); text-transform: uppercase;
@@ -35,19 +41,71 @@
.cell { display: flex; flex-direction: column; align-items: center;
gap: 6px; padding: 12px; border: 1px solid var(--line);
border-radius: 8px; background: white; min-height: 110px;
- justify-content: center; }
- .cell.invalid { background: var(--invalid); opacity: 0.4; }
+ justify-content: center; cursor: pointer; transition: transform 0.1s, border-color 0.1s; }
+ .cell:hover { border-color: var(--accent); transform: translateY(-1px); }
.cell .preview { position: relative; width: 24mm; height: 24mm;
display: flex; align-items: center; justify-content: center; }
- /* Stage component absolutely inside preview, centered. The component
- uses absolute positioning, so we offset to center it visually. */
- .cell .preview sonic-diamond { position: absolute !important;
- left: 50% !important; top: 50% !important;
- transform: translate(-50%, -50%) !important; }
.cell .label { font-size: 10px; color: var(--muted);
text-align: center; line-height: 1.3; }
.cell .key { font-family: ui-monospace, Menlo, monospace;
font-size: 9px; color: var(--text); }
+
+ /* ---- Single view ---- */
+
+ .single-toolbar { display: flex; align-items: center; gap: 16px;
+ padding: 12px 16px; background: var(--panel);
+ border: 1px solid var(--line); border-radius: 10px;
+ margin-bottom: 16px; }
+ .single-toolbar code { background: var(--bg); padding: 2px 6px;
+ border-radius: 4px; font-size: 12px; }
+ .single-body { display: grid; grid-template-columns: 280px 1fr; gap: 16px; }
+ .single-controls { background: var(--panel); border: 1px solid var(--line);
+ border-radius: 10px; padding: 16px;
+ display: flex; flex-direction: column; gap: 14px;
+ align-self: start; }
+ .ctrl-row { display: flex; flex-direction: column; gap: 4px; }
+ .ctrl-row > label { font-size: 11px; color: var(--muted);
+ text-transform: uppercase; letter-spacing: 0.5px; }
+ .ctrl-row select { font: inherit; padding: 6px 8px;
+ border: 1px solid var(--line); border-radius: 6px;
+ background: white; }
+ .ctrl-row.checkbox { flex-direction: row; align-items: center;
+ gap: 8px; padding-top: 4px; }
+ .ctrl-row.checkbox label { font-size: 13px; color: var(--text);
+ text-transform: none; letter-spacing: 0; }
+ .ctrl-row.checkbox input[disabled] + label { color: var(--muted); }
+ .ctrl-info { margin-top: 12px; padding-top: 12px;
+ border-top: 1px solid var(--line);
+ display: flex; flex-direction: column; gap: 8px;
+ font-size: 11px; color: var(--muted); }
+ .ctrl-info code { font-family: ui-monospace, Menlo, monospace;
+ font-size: 10px; color: var(--text);
+ word-break: break-all; }
+ .single-stage { background: var(--panel); border: 1px solid var(--line);
+ border-radius: 10px; padding: 24px;
+ display: flex; align-items: center; justify-content: center; }
+ .single-frame { position: relative;
+ width: 60mm; height: 60mm;
+ background-color: white;
+ background-image:
+ linear-gradient(45deg, var(--checker) 25%, transparent 25%),
+ linear-gradient(-45deg, var(--checker) 25%, transparent 25%),
+ linear-gradient(45deg, transparent 75%, var(--checker) 75%),
+ linear-gradient(-45deg, transparent 75%, var(--checker) 75%);
+ background-size: 4mm 4mm;
+ background-position: 0 0, 0 2mm, 2mm -2mm, -2mm 0;
+ border: 1px solid var(--line); border-radius: 4px; }
+
+ /* ---- Component centering inside any preview frame ---- */
+
+ .cell .preview sonic-diamond,
+ .single-frame sonic-diamond {
+ position: absolute !important;
+ left: 50% !important;
+ top: 50% !important;
+ transform: translate(-50%, -50%) !important;
+ }
+
#toast { position: fixed; bottom: 20px; left: 50%;
transform: translateX(-50%); padding: 10px 20px;
background: var(--text); color: white; border-radius: 8px;
@@ -64,7 +122,42 @@
-
+
+