@@ -14,6 +14,61 @@ interface Props {
1414
1515const { surfaces } = Astro .props ;
1616const defaultId = surfaces [0 ]?.id ?? " " ;
17+
18+ /** CSS-only mockup visuals per surface */
19+ const surfaceVisuals: Record <string , string > = {
20+ threads: ` <div class="sv-mockup sv-threads">
21+ <div class="sv-chrome"><span></span><span></span><span></span></div>
22+ <div class="sv-thread sv-thread--active"><span class="sv-thread-dot"></span><span class="sv-thread-label"></span></div>
23+ <div class="sv-thread"><span class="sv-thread-dot"></span><span class="sv-thread-label sv-thread-label--short"></span></div>
24+ <div class="sv-thread"><span class="sv-thread-dot"></span><span class="sv-thread-label"></span></div>
25+ <div class="sv-thread"><span class="sv-thread-dot"></span><span class="sv-thread-label sv-thread-label--short"></span></div>
26+ </div> ` ,
27+ diffs: ` <div class="sv-mockup sv-diffs">
28+ <div class="sv-chrome"><span></span><span></span><span></span></div>
29+ <div class="sv-diff-line sv-diff-line--add"></div>
30+ <div class="sv-diff-line sv-diff-line--add sv-diff-line--short"></div>
31+ <div class="sv-diff-line sv-diff-line--ctx"></div>
32+ <div class="sv-diff-line sv-diff-line--remove"></div>
33+ <div class="sv-diff-line sv-diff-line--ctx sv-diff-line--short"></div>
34+ <div class="sv-diff-line sv-diff-line--add"></div>
35+ </div> ` ,
36+ preview: ` <div class="sv-mockup sv-preview">
37+ <div class="sv-chrome"><span></span><span></span><span></span></div>
38+ <div class="sv-browser-bar"></div>
39+ <div class="sv-browser-body">
40+ <div class="sv-block sv-block--hero"></div>
41+ <div class="sv-block-row">
42+ <div class="sv-block sv-block--card"></div>
43+ <div class="sv-block sv-block--card"></div>
44+ </div>
45+ </div>
46+ </div> ` ,
47+ review: ` <div class="sv-mockup sv-review">
48+ <div class="sv-chrome"><span></span><span></span><span></span></div>
49+ <div class="sv-comment">
50+ <div class="sv-comment-head"><span class="sv-avatar"></span><span class="sv-comment-name"></span><span class="sv-comment-badge">Approved</span></div>
51+ <div class="sv-comment-body"></div>
52+ <div class="sv-comment-body sv-comment-body--short"></div>
53+ </div>
54+ <div class="sv-comment">
55+ <div class="sv-comment-head"><span class="sv-avatar"></span><span class="sv-comment-name sv-comment-name--short"></span></div>
56+ <div class="sv-comment-body"></div>
57+ </div>
58+ </div> ` ,
59+ actions: ` <div class="sv-mockup sv-actions">
60+ <div class="sv-chrome"><span></span><span></span><span></span></div>
61+ <div class="sv-action-row">
62+ <div class="sv-action-btn"></div>
63+ <div class="sv-action-btn"></div>
64+ </div>
65+ <div class="sv-terminal">
66+ <div class="sv-terminal-line"></div>
67+ <div class="sv-terminal-line sv-terminal-line--short"></div>
68+ <div class="sv-terminal-line sv-terminal-line--accent"></div>
69+ </div>
70+ </div> `
71+ };
1772---
1873
1974<section id =" surfaces" class =" spotlight" data-tab-group data-tab-default ={ defaultId } data-reveal >
@@ -53,14 +108,19 @@ const defaultId = surfaces[0]?.id ?? "";
53108 aria-hidden = { item .id === defaultId ? " false" : " true" }
54109 data-active = { item .id === defaultId ? " true" : " false" }
55110 >
56- <p class = " section-kicker" >{ item .kicker } </p >
57- <h3 >{ item .title } </h3 >
58- <p >{ item .body } </p >
59- <ul class = " detail-bullets" >
60- { item .bullets .map ((bullet ) => (
61- <li >{ bullet } </li >
62- ))}
63- </ul >
111+ <div class = " spotlight-panel-content" >
112+ <div class = " spotlight-panel-copy" >
113+ <p class = " section-kicker" >{ item .kicker } </p >
114+ <h3 >{ item .title } </h3 >
115+ <p >{ item .body } </p >
116+ <ul class = " detail-bullets" >
117+ { item .bullets .map ((bullet ) => (
118+ <li >{ bullet } </li >
119+ ))}
120+ </ul >
121+ </div >
122+ <div class = " spotlight-panel-visual" aria-hidden = " true" set :html = { surfaceVisuals [item .id ] ?? " " } />
123+ </div >
64124 </article >
65125 ))}
66126 </div >
0 commit comments