Add multi-language logic exploration
This commit is contained in:
parent
9b4258c852
commit
9161889492
18 changed files with 1639 additions and 76 deletions
|
|
@ -39,10 +39,18 @@ header h1 { margin: 0; font-size: 17px; }
|
|||
.view-switch[data-mode="flow"]::before { transform: translateX(58px); }
|
||||
.view-switch[data-mode="web"]::before { transform: translateX(116px); }
|
||||
.view-switch[data-mode="logic"]::before { transform: translateX(174px); }
|
||||
.filter-presets { display: flex; flex-wrap: wrap; gap: 5px; }
|
||||
.filter-presets button {
|
||||
border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px;
|
||||
background: #0b1724; color: var(--muted); font-size: 10px; font-weight: 700;
|
||||
}
|
||||
.view-switch button {
|
||||
min-height: 30px; border: 0; border-radius: 6px; padding: 4px 8px;
|
||||
background: transparent; color: var(--muted); font-size: 12px; font-weight: 700;
|
||||
}
|
||||
.filter-presets button:hover, .filter-presets button:focus-visible {
|
||||
border-color: var(--accent); color: var(--text); outline: none;
|
||||
}
|
||||
.view-switch button[aria-pressed="true"] { color: var(--text); }
|
||||
.view-switch button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
||||
.stats { display: flex; flex: 0 0 auto; gap: 14px; color: var(--muted); }
|
||||
|
|
@ -71,6 +79,9 @@ aside { min-height: 0; overflow: hidden; padding: 16px; background: var(--panel)
|
|||
.panel-resizer.resizing::after { background: var(--accent); }
|
||||
.panel-resizer:focus-visible { outline: 1px solid var(--accent); outline-offset: -1px; }
|
||||
form { display: grid; flex: 0 0 auto; gap: 8px; }
|
||||
form > label, .filter-grid label {
|
||||
display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700;
|
||||
}
|
||||
input, select {
|
||||
width: 100%; border: 1px solid var(--line); border-radius: 8px;
|
||||
padding: 9px 10px; background: var(--panel-2); color: var(--text);
|
||||
|
|
@ -79,6 +90,9 @@ input:focus-visible, select:focus-visible {
|
|||
border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 1px;
|
||||
}
|
||||
.search-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
|
||||
.filter-grid {
|
||||
display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px;
|
||||
}
|
||||
.button {
|
||||
border: 1px solid #277fa0; border-radius: 8px; padding: 8px 12px;
|
||||
background: #12384a; color: var(--text);
|
||||
|
|
@ -162,8 +176,16 @@ input:focus-visible, select:focus-visible {
|
|||
padding: 9px; background: var(--panel-2); color: var(--text);
|
||||
}
|
||||
.result:hover, .result:focus-visible { border-color: var(--accent); outline: none; }
|
||||
.result strong, .result span { display: block; overflow: hidden; text-overflow: ellipsis; }
|
||||
.result span { color: var(--muted); font-size: 12px; white-space: nowrap; }
|
||||
.result strong, .result span { display: block; overflow-wrap: anywhere; }
|
||||
.result > span { color: var(--muted); font-size: 11px; }
|
||||
.result-badges {
|
||||
display: flex !important; flex-wrap: wrap; gap: 4px; margin: 5px 0;
|
||||
}
|
||||
.result-badges small {
|
||||
border: 1px solid #31526d; border-radius: 999px; padding: 1px 6px;
|
||||
background: #0a1724; color: #b7c9da; font-size: 9px; font-weight: 750;
|
||||
letter-spacing: .04em; text-transform: uppercase;
|
||||
}
|
||||
.canvas { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
|
||||
svg { width: 100%; height: 100%; background:
|
||||
radial-gradient(circle at 52% 46%, rgba(26, 65, 89, .58) 0, rgba(10, 28, 45, .46) 34%,
|
||||
|
|
@ -240,13 +262,24 @@ svg { width: 100%; height: 100%; background:
|
|||
.relationship-key-empty { margin: 2px 0; color: var(--muted); font-size: 11px; }
|
||||
.relationship-edge {
|
||||
fill: none; stroke-opacity: .74; stroke-width: 1.7;
|
||||
vector-effect: non-scaling-stroke;
|
||||
vector-effect: non-scaling-stroke; transition: opacity .16s, stroke-width .16s, filter .16s;
|
||||
}
|
||||
.edge-label {
|
||||
font-size: 9px; font-weight: 700; letter-spacing: .015em; pointer-events: none;
|
||||
paint-order: stroke; stroke: #07101a; stroke-width: 4px; stroke-linejoin: round;
|
||||
transition: opacity .16s;
|
||||
}
|
||||
.node { cursor: pointer; }
|
||||
.relationship-edge.trace-connected {
|
||||
stroke-opacity: 1; stroke-width: 3;
|
||||
filter: drop-shadow(0 0 7px currentcolor);
|
||||
}
|
||||
.relationship-edge.trace-muted, .edge-label.trace-muted { opacity: .13; }
|
||||
.edge-label.trace-connected { opacity: 1; font-size: 10px; }
|
||||
.node { cursor: pointer; transition: opacity .16s, filter .16s; }
|
||||
.node.trace-connected:not(.selected) {
|
||||
filter: drop-shadow(0 0 8px rgba(165, 243, 252, .28));
|
||||
}
|
||||
.node.trace-muted { opacity: .24; }
|
||||
.node:focus { outline: none; }
|
||||
.node .node-surface {
|
||||
stroke-width: 1.35; vector-effect: non-scaling-stroke;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue