Skip to content

Commit e240673

Browse files
committed
Fixing panels
1 parent b4ad2ec commit e240673

5 files changed

Lines changed: 218 additions & 39 deletions

File tree

docs/website/css/components/workflow.css

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,150 @@
117117
font-weight: 500;
118118
}
119119

120+
.workflow-mini {
121+
margin: 18px 0 28px;
122+
padding: 18px;
123+
border: 1px solid var(--border);
124+
border-radius: 16px;
125+
background:
126+
radial-gradient(circle at top right, rgba(255, 26, 26, 0.10), transparent 40%),
127+
linear-gradient(180deg, rgba(255, 26, 26, 0.06), rgba(255, 26, 26, 0.02));
128+
box-shadow: 0 14px 34px rgba(0, 0, 0, 0.2);
129+
}
130+
131+
.workflow-mini-head {
132+
display: grid;
133+
gap: 6px;
134+
margin-bottom: 16px;
135+
}
136+
137+
.workflow-mini-title {
138+
font-family: var(--display);
139+
font-size: 0.78rem;
140+
letter-spacing: 0.12em;
141+
text-transform: uppercase;
142+
color: var(--r0);
143+
}
144+
145+
.workflow-mini-copy {
146+
color: var(--txt2);
147+
font-size: 13.5px;
148+
line-height: 1.6;
149+
font-weight: 500;
150+
max-width: 700px;
151+
}
152+
153+
.workflow-mini-rail {
154+
display: grid;
155+
grid-template-columns: repeat(5, minmax(0, 1fr));
156+
gap: 10px;
157+
align-items: stretch;
158+
margin-bottom: 14px;
159+
}
160+
161+
.workflow-mini-stage {
162+
position: relative;
163+
border: 1px solid var(--border2);
164+
border-radius: 14px;
165+
background: rgba(10, 15, 20, 0.78);
166+
padding: 12px 12px 14px;
167+
cursor: pointer;
168+
transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
169+
}
170+
171+
.workflow-mini-stage:hover,
172+
.workflow-mini-stage.is-active {
173+
border-color: var(--r0);
174+
background: rgba(255, 26, 26, 0.08);
175+
transform: translateY(-2px);
176+
box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
177+
}
178+
179+
.workflow-mini-stage::after {
180+
content: ">";
181+
position: absolute;
182+
top: 50%;
183+
right: -10px;
184+
transform: translateY(-50%);
185+
font-family: var(--mono);
186+
font-size: 0.92rem;
187+
color: var(--r0);
188+
opacity: 0.72;
189+
pointer-events: none;
190+
}
191+
192+
.workflow-mini-stage:last-child::after {
193+
display: none;
194+
}
195+
196+
.workflow-mini-stage-order {
197+
display: inline-flex;
198+
align-items: center;
199+
justify-content: center;
200+
width: 28px;
201+
height: 28px;
202+
border-radius: 999px;
203+
border: 1px solid var(--border);
204+
background: rgba(255, 26, 26, 0.10);
205+
color: var(--r0);
206+
font-family: var(--mono);
207+
font-size: 0.62rem;
208+
font-weight: 700;
209+
margin-bottom: 8px;
210+
}
211+
212+
.workflow-mini-stage-name {
213+
font-family: var(--display);
214+
font-size: 0.62rem;
215+
letter-spacing: 0.08em;
216+
text-transform: uppercase;
217+
color: var(--txt);
218+
margin-bottom: 6px;
219+
}
220+
221+
.workflow-mini-stage-copy {
222+
color: var(--txt3);
223+
font-size: 12px;
224+
line-height: 1.5;
225+
font-weight: 500;
226+
}
227+
228+
.workflow-mini-detail {
229+
border: 1px solid var(--border2);
230+
border-left: 3px solid var(--r2);
231+
border-radius: 12px;
232+
background: rgba(9, 12, 18, 0.84);
233+
padding: 14px 16px;
234+
min-height: 96px;
235+
}
236+
237+
.workflow-mini-detail-title {
238+
font-family: var(--display);
239+
font-size: 0.68rem;
240+
letter-spacing: 0.1em;
241+
text-transform: uppercase;
242+
color: var(--r0);
243+
margin-bottom: 8px;
244+
}
245+
246+
.workflow-mini-detail-copy {
247+
color: var(--txt2);
248+
font-size: 13px;
249+
line-height: 1.65;
250+
font-weight: 500;
251+
}
252+
253+
@media (max-width: 860px) {
254+
.workflow-mini-rail {
255+
grid-template-columns: 1fr;
256+
}
257+
258+
.workflow-mini-stage::after {
259+
content: "v";
260+
top: auto;
261+
right: 14px;
262+
bottom: -14px;
263+
transform: none;
264+
}
265+
}
266+

docs/website/css/layout/content.css

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -419,11 +419,8 @@
419419
.code-body .pn,
420420
.example-code .pn {
421421
color: var(--terminal-prompt);
422-
display: inline-block;
423-
width: 8ch;
424-
min-width: 8ch;
425-
text-align: right;
426-
margin-right: 1ch;
422+
display: inline;
423+
margin-right: 0.55ch;
427424
font-weight: 600;
428425
} /* prompt */
429426
.code-body .sc { color: var(--terminal-text); } /* section */

docs/website/index.html

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,13 @@
143143
</div>
144144

145145
<div id="how-it-works" class="sec-head">How It Works</div>
146-
<div class="code-wrap">
147-
<div class="code-header"><div class="code-dot"></div><div class="code-dot"></div><div class="code-dot"></div><span class="code-lang">pipeline</span></div>
148-
<div class="code-body">
149-
<span class="pn">1></span> <span class="kw">Passive Discovery</span>
150-
<span class="pn">2></span> <span class="kw">Active Validation</span>
151-
<span class="pn">3></span> <span class="kw">Service + Web Mapping</span>
152-
<span class="pn">4></span> <span class="kw">Correlation Engine</span>
153-
<span class="pn">5></span> <span class="kw">Tracking Engine</span>
146+
<div class="workflow-mini">
147+
<div class="workflow-mini-head">
148+
<div class="workflow-mini-title">Interactive Flow Graph</div>
149+
<div class="workflow-mini-copy">Tap or hover each stage to see how the framework moves from discovery to long-term tracking.</div>
154150
</div>
151+
<div id="home-workflow-rail" class="workflow-mini-rail" aria-label="Homepage workflow graph"></div>
152+
<div id="home-workflow-detail" class="workflow-mini-detail" aria-live="polite"></div>
155153
</div>
156154

157155
<div id="quickstart-30" class="sec-head">Quick Start (30 Seconds)</div>
@@ -198,7 +196,7 @@
198196
<a class="ov-card" href="cli-reference.html#commands"><div class="ov-icon">⌨️</div><div class="ov-name">CLI Reference</div><div class="ov-desc">See the main commands, global flags, syntax rules, and practical command layout.</div></a>
199197
<a class="ov-card" href="modes.html#web"><div class="ov-icon">🖥️</div><div class="ov-name">Modes</div><div class="ov-desc">Compare console mode, web session mode, wizard mode, lab mode, and example workflows.</div></a>
200198
<a class="ov-card" href="reporting.html#outputs"><div class="ov-icon">📊</div><div class="ov-name">Reporting</div><div class="ov-desc">Review output formats, storage layout, config overrides, and verification habits.</div></a>
201-
<a class="ov-card" href="development.html#development-home"><div class="ov-icon">DEV</div><div class="ov-name">Development</div><div class="ov-desc">See live repository activity, maintainer profile data, and release markers pulled from GitHub.</div></a>
199+
<a class="ov-card" href="development.html#development-home"><div class="ov-icon">DEV</div><div class="ov-name">Development</div><div class="ov-desc">See live repository activity, commit trends, and release markers pulled from GitHub.</div></a>
202200
<a class="ov-card" href="download.html#download-home"><div class="ov-icon">⬇️</div><div class="ov-name">Download Center</div><div class="ov-desc">Download Linux, macOS, and Windows installers and run lifecycle modes from one page.</div></a>
203201
<a class="ov-card" href="project.html#author"><div class="ov-icon">📦</div><div class="ov-name">Project</div><div class="ov-desc">Check the repository links, licensing context, and maintainer details.</div></a>
204202
</div>
@@ -268,5 +266,3 @@
268266
<script src="js/bootstrap/app.js?v=1.0.0"></script>
269267
</body>
270268
</html>
271-
272-

docs/website/js/core/site-data.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const DocsData = (() => {
4242
{ id: "config", title: "Configuration", page: "reporting.html", hint: "Defaults, overrides, and operator config behavior.", group: "Reports" },
4343
{ id: "storage", title: "Files & Storage", page: "reporting.html", hint: "Where reports, memory, sessions, and lab data live.", group: "Reports" },
4444
{ id: "testing", title: "Testing", page: "reporting.html", hint: "Rake verification, smoke tests, and release checks.", group: "Reports" },
45-
{ id: "development-home", title: "Development", page: "development.html", hint: "Live GitHub-powered project pulse, maintainer profile, and repository snapshot.", group: "Project" },
45+
{ id: "development-home", title: "Development", page: "development.html", hint: "Live GitHub-powered project pulse, repository snapshot, and commit trends.", group: "Project" },
4646
{ id: "repo-activity", title: "Repository Activity", page: "development.html", hint: "Recent commits, contributors, and branch-level movement from GitHub.", group: "Project" },
4747
{ id: "release-radar", title: "Release Radar", page: "development.html", hint: "Tags, release signals, workflow links, and inline raw file previews.", group: "Project" },
4848
{ id: "author", title: "Project & License", page: "project.html", hint: "Author, repository, license, and publishing context.", group: "Project" },
@@ -85,6 +85,8 @@ const DocsElements = {
8585
searchResults: document.getElementById("docs-search-results"),
8686
workflowRail: document.getElementById("workflow-visual-rail"),
8787
workflowDetail: document.getElementById("workflow-visual-detail"),
88+
homeWorkflowRail: document.getElementById("home-workflow-rail"),
89+
homeWorkflowDetail: document.getElementById("home-workflow-detail"),
8890
homeHeroLogo: document.getElementById("home-hero-logo"),
8991
homeHeroEgg: document.getElementById("home-hero-egg"),
9092
siteFooter: document.getElementById("site-footer"),

docs/website/js/features/workflow-visual.js

Lines changed: 59 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,40 +43,77 @@ const WorkflowVisual = (() => {
4343
`;
4444
}
4545

46-
function activate(stageName) {
47-
if (!DocsElements.workflowRail) {
46+
function renderHomeDetail(stage) {
47+
if (!DocsElements.homeWorkflowDetail || !stage) {
4848
return;
4949
}
5050

51+
DocsElements.homeWorkflowDetail.innerHTML = `
52+
<div class="workflow-mini-detail-title">${stage.order} &middot; ${stage.name}</div>
53+
<div class="workflow-mini-detail-copy">${stage.detail}</div>
54+
`;
55+
}
56+
57+
function activate(stageName) {
5158
const stage = stages.find((entry) => entry.name === stageName) || stages[0];
52-
DocsElements.workflowRail.querySelectorAll(".workflow-stage").forEach((node) => {
53-
node.classList.toggle("is-active", node.dataset.stageName === stage.name);
54-
});
55-
renderDetail(stage);
59+
if (DocsElements.workflowRail) {
60+
DocsElements.workflowRail.querySelectorAll(".workflow-stage").forEach((node) => {
61+
node.classList.toggle("is-active", node.dataset.stageName === stage.name);
62+
});
63+
renderDetail(stage);
64+
}
65+
66+
if (DocsElements.homeWorkflowRail) {
67+
DocsElements.homeWorkflowRail.querySelectorAll(".workflow-mini-stage").forEach((node) => {
68+
node.classList.toggle("is-active", node.dataset.stageName === stage.name);
69+
});
70+
renderHomeDetail(stage);
71+
}
5672
}
5773

5874
function bind() {
59-
if (!DocsElements.workflowRail) {
75+
if (!DocsElements.workflowRail && !DocsElements.homeWorkflowRail) {
6076
return;
6177
}
6278

63-
DocsElements.workflowRail.innerHTML = stages.map((stage) => `
64-
<button type="button" class="workflow-stage" data-stage-name="${stage.name}">
65-
<span class="workflow-stage-order">${stage.order}</span>
66-
<div class="workflow-stage-name">${stage.name}</div>
67-
<div class="workflow-stage-copy">${stage.short}</div>
68-
<span class="workflow-stage-arrow">></span>
69-
</button>
70-
`).join("");
79+
if (DocsElements.workflowRail) {
80+
DocsElements.workflowRail.innerHTML = stages.map((stage) => `
81+
<button type="button" class="workflow-stage" data-stage-name="${stage.name}">
82+
<span class="workflow-stage-order">${stage.order}</span>
83+
<div class="workflow-stage-name">${stage.name}</div>
84+
<div class="workflow-stage-copy">${stage.short}</div>
85+
<span class="workflow-stage-arrow">></span>
86+
</button>
87+
`).join("");
7188

72-
DocsElements.workflowRail.querySelectorAll(".workflow-stage").forEach((node) => {
73-
node.addEventListener("click", () => activate(node.dataset.stageName));
74-
node.addEventListener("mouseenter", () => {
75-
if (window.matchMedia("(hover: hover)").matches) {
76-
activate(node.dataset.stageName);
77-
}
89+
DocsElements.workflowRail.querySelectorAll(".workflow-stage").forEach((node) => {
90+
node.addEventListener("click", () => activate(node.dataset.stageName));
91+
node.addEventListener("mouseenter", () => {
92+
if (window.matchMedia("(hover: hover)").matches) {
93+
activate(node.dataset.stageName);
94+
}
95+
});
7896
});
79-
});
97+
}
98+
99+
if (DocsElements.homeWorkflowRail) {
100+
DocsElements.homeWorkflowRail.innerHTML = stages.map((stage) => `
101+
<button type="button" class="workflow-mini-stage" data-stage-name="${stage.name}">
102+
<span class="workflow-mini-stage-order">${stage.order}</span>
103+
<div class="workflow-mini-stage-name">${stage.name}</div>
104+
<div class="workflow-mini-stage-copy">${stage.short}</div>
105+
</button>
106+
`).join("");
107+
108+
DocsElements.homeWorkflowRail.querySelectorAll(".workflow-mini-stage").forEach((node) => {
109+
node.addEventListener("click", () => activate(node.dataset.stageName));
110+
node.addEventListener("mouseenter", () => {
111+
if (window.matchMedia("(hover: hover)").matches) {
112+
activate(node.dataset.stageName);
113+
}
114+
});
115+
});
116+
}
80117

81118
activate(stages[0].name);
82119
}

0 commit comments

Comments
 (0)