@@ -148,52 +148,43 @@ function Docs() {
148148/* ── PIPELINE ─────────────────────────────────────────────────── */
149149
150150const pipeline = [
151- { color : '#0a1628 ' , label : 'Network' , detail : 'TCP connect, mux framing, handshake v13/v14 ' , link : '/docs/architecture/network' } ,
152- { color : '#0c1f3d ' , label : 'ChainSync ' , detail : 'Header streaming, intersection, rollback handling ' , link : '/docs/spec/networking' } ,
153- { color : '#0e2854 ' , label : 'BlockFetch ' , detail : 'Range requests, batch retrieval, era-tagged blocks ' , link : '/docs/spec/networking' } ,
154- { color : '#10326b ' , label : 'Decode ' , detail : 'CBOR schema, byte-preserving walk, ConwayBlock ' , link : '/docs/architecture/codec' } ,
155- { color : '#133d82 ' , label : 'Consensus' , detail : 'VRF proof, KES sig, leader check, nonce evolution ' , link : '/docs/spec/consensus' } ,
156- { color : '#164899 ' , label : 'Validate' , detail : '19 UTxO rules, witness sigs, script data hash ' , link : '/docs/spec/transactions' } ,
157- { color : '#1953b0 ' , label : 'Plutus' , detail : 'V1/V2/V3 CEK eval, ScriptContext, cost models ' , link : '/docs/spec/scripts' } ,
158- { color : '#1c5ec7 ' , label : 'Apply ' , detail : 'Consume inputs, add outputs, collect fees, certs ' , link : '/docs/spec/ledger-state' } ,
159- { color : '#2069de ' , label : 'Epoch ' , detail : 'Rewards, pool retirement, snapshot rotation ' , link : '/docs/spec/epoch' } ,
160- { color : '#2575f5 ' , label : 'Storage ' , detail : 'VolatileDB, ImmutableDB, LedgerDB checkpoints ' , link : '/docs/spec/storage' } ,
151+ { color : '#081020 ' , accent : '#1a3060' , label : 'Network' , sub : 'TCP + Mux ' , link : '/docs/architecture/network' } ,
152+ { color : '#0a1630 ' , accent : '#1e3d70 ' , label : 'ChainSync' , sub : 'Headers ', link : '/docs/spec/networking' } ,
153+ { color : '#0d1d40 ' , accent : '#224a80 ' , label : 'BlockFetch' , sub : 'Bodies ', link : '/docs/spec/networking' } ,
154+ { color : '#102550 ' , accent : '#285890 ' , label : 'Decode' , sub : 'CBOR ', link : '/docs/architecture/codec' } ,
155+ { color : '#132d60 ' , accent : '#2e66a0' , label : 'Consensus' , sub : 'VRF + KES' , link : '/docs/spec/consensus' } ,
156+ { color : '#163670 ' , accent : '#3574b0' , label : 'Validate' , sub : '19 Rules ' , link : '/docs/spec/transactions' } ,
157+ { color : '#1a3f80 ' , accent : '#3c82c0' , label : 'Plutus' , sub : 'CEK Machine ' , link : '/docs/spec/scripts' } ,
158+ { color : '#1e4890 ' , accent : '#4490d0 ' , label : 'Apply' , sub : 'State Update ', link : '/docs/spec/ledger-state' } ,
159+ { color : '#2252a0 ' , accent : '#4c9ee0 ' , label : 'Epoch' , sub : 'Rewards ', link : '/docs/spec/epoch' } ,
160+ { color : '#265cb0 ' , accent : '#55acf0 ' , label : 'Storage' , sub : 'Persist ', link : '/docs/spec/storage' } ,
161161] ;
162162
163163function Pipeline ( ) {
164164 const [ active , setActive ] = React . useState < number | null > ( null ) ;
165165 return (
166166 < section className = { styles . pipeline } >
167- < div className = { styles . pipeInner } >
168- < p className = { styles . tag } > BLOCK PIPELINE</ p >
169- < h2 className = { styles . pipeTitle } > From TCP byte to ledger state.</ h2 >
170- < p className = { styles . pipeSub } > Every block flows through 10 stages. Hover to explore each module.</ p >
171- </ div >
172167 < div className = { styles . strip } >
173168 { pipeline . map ( ( p , i ) => (
174169 < Link
175170 key = { p . label }
176171 to = { useBaseUrl ( p . link ) }
177- className = { `${ styles . cell } ${ active === i ? styles . cellActive : '' } ` }
178- style = { { background : p . color } }
172+ className = { `${ styles . cell } ${ active === i ? styles . cellActive : '' } ${ active !== null && active !== i ? styles . cellDim : '' } ` }
173+ style = { {
174+ '--cell-bg' : p . color ,
175+ '--cell-accent' : p . accent ,
176+ } as React . CSSProperties }
179177 onMouseEnter = { ( ) => setActive ( i ) }
180178 onMouseLeave = { ( ) => setActive ( null ) }
181179 >
182- < span className = { styles . cellLabel } > { p . label } </ span >
180+ < div className = { styles . cellContent } >
181+ < span className = { styles . cellNum } > { String ( i + 1 ) . padStart ( 2 , '0' ) } </ span >
182+ < span className = { styles . cellName } > { p . label } </ span >
183+ < span className = { styles . cellSub } > { p . sub } </ span >
184+ </ div >
183185 </ Link >
184186 ) ) }
185187 </ div >
186- < div className = { styles . pipeDetail } >
187- { active !== null ? (
188- < >
189- < span className = { styles . pipeDetailNum } > 0{ active + 1 } </ span >
190- < h3 > { pipeline [ active ] . label } </ h3 >
191- < p > { pipeline [ active ] . detail } </ p >
192- </ >
193- ) : (
194- < p className = { styles . pipeHint } > Hover a stage above</ p >
195- ) }
196- </ div >
197188 </ section >
198189 ) ;
199190}
0 commit comments