this repo has no description
at main 198 lines 5.2 kB view raw
1{0 Scrollycode Demos} 2 3{%html: 4<link rel="preconnect" href="https://fonts.googleapis.com"> 5<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 6<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&family=Source+Code+Pro:ital,wght@0,300..900;1,300..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,300..900;1,8..60,300..900&display=swap" rel="stylesheet"> 7<style> 8.odoc-nav, .odoc-tocs, .odoc-search { display: none !important; } 9.odoc-preamble > h1 { display: none !important; } 10.odoc-preamble, .odoc-content { max-width: none !important; padding: 0 !important; margin: 0 !important; } 11body.odoc, .odoc { padding: 0 !important; margin: 0 !important; max-width: none !important; } 12 13.demos-index { 14 font-family: 'Source Serif 4', Georgia, serif; 15 background: #f4f0e8; 16 min-height: 100vh; 17} 18 19.demos-header { 20 max-width: 680px; 21 margin: 0 auto; 22 padding: 6rem 2rem 3rem; 23 text-align: center; 24} 25 26.demos-header h1 { 27 font-family: 'Fraunces', serif; 28 font-size: clamp(2rem, 5vw, 3.2rem); 29 font-weight: 800; 30 line-height: 1.15; 31 letter-spacing: -0.02em; 32 margin-bottom: 1rem; 33 color: #2c2416; 34} 35 36.demos-header h1 em { 37 font-style: italic; 38 color: #c25832; 39} 40 41.demos-header p { 42 color: #6b5d4d; 43 max-width: 50ch; 44 margin: 0 auto; 45 font-size: 1.05rem; 46 line-height: 1.6; 47} 48 49.demos-list { 50 max-width: 720px; 51 margin: 0 auto; 52 padding: 1rem 2rem 6rem; 53 display: flex; 54 flex-direction: column; 55 gap: 1.25rem; 56} 57 58.demo-card { 59 display: block; 60 background: #fff; 61 border: 1px solid rgba(44,36,22,0.08); 62 border-radius: 10px; 63 padding: 1.5rem 1.75rem; 64 text-decoration: none; 65 color: inherit; 66 transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease; 67} 68 69.demo-card:hover { 70 border-color: #c25832; 71 box-shadow: 0 4px 20px rgba(194,88,50,0.1); 72 transform: translateY(-2px); 73} 74 75.demo-card-header { 76 display: flex; 77 align-items: baseline; 78 gap: 0.75rem; 79 margin-bottom: 0.5rem; 80} 81 82.demo-card-number { 83 font-family: 'Source Code Pro', monospace; 84 font-size: 0.68rem; 85 font-weight: 600; 86 letter-spacing: 0.08em; 87 color: #c25832; 88 flex-shrink: 0; 89} 90 91.demo-card h2 { 92 font-family: 'Fraunces', serif; 93 font-size: 1.2rem; 94 font-weight: 700; 95 letter-spacing: -0.01em; 96 margin: 0; 97} 98 99.demo-card p { 100 color: #6b5d4d; 101 font-size: 0.92rem; 102 line-height: 1.6; 103 margin: 0.5rem 0; 104} 105 106.demo-card .tags { 107 display: flex; 108 flex-wrap: wrap; 109 gap: 0.4rem; 110 margin-top: 0.75rem; 111} 112 113.tag { 114 font-family: 'Source Code Pro', monospace; 115 font-size: 0.65rem; 116 letter-spacing: 0.04em; 117 padding: 0.2em 0.6em; 118 border-radius: 4px; 119 background: rgba(194,88,50,0.07); 120 color: #c25832; 121} 122 123.tag.dark { 124 background: #1a1a2e; 125 color: rgba(255,255,255,0.5); 126} 127 128.demos-footer { 129 text-align: center; 130 padding: 0 2rem 4rem; 131 font-family: 'Source Code Pro', monospace; 132 font-size: 0.72rem; 133 color: #6b5d4d; 134 letter-spacing: 0.04em; 135} 136 137.demos-footer a { 138 color: #c25832; 139 text-decoration: none; 140} 141</style> 142 143<div class="demos-index"> 144 145<div class="demos-header"> 146 <h1>Scrollycoding in <em>OCaml</em></h1> 147 <p>Three odoc extension plugins, each rendering the same scrollycode pattern with a radically different visual theme. Authored as <code>.mld</code> files using <code>@scrolly.&lt;theme&gt;</code> custom tags.</p> 148</div> 149 150<div class="demos-list"> 151 152 <a class="demo-card" href="warm_parser.html"> 153 <div class="demo-card-header"> 154 <span class="demo-card-number">01</span> 155 <h2>The Warm Workshop</h2> 156 </div> 157 <p>Building a JSON parser step by step. Warm cream background with a dark navy code panel, Fraunces serif display type, and earthy burnt-sienna accents. Classic scrollycode split layout.</p> 158 <div class="tags"> 159 <span class="tag">@scrolly.warm</span> 160 <span class="tag">Fraunces + Source Serif</span> 161 <span class="tag">parser tutorial</span> 162 </div> 163 </a> 164 165 <a class="demo-card" href="dark_repl.html"> 166 <div class="demo-card-header"> 167 <span class="demo-card-number">02</span> 168 <h2>The Dark Terminal</h2> 169 </div> 170 <p>Building a REPL from scratch. Near-black cinematic theme with phosphor-green accents, JetBrains Mono code font, and the code panel as the visual hero. Prose in a narrow left column.</p> 171 <div class="tags"> 172 <span class="tag dark">@scrolly.dark</span> 173 <span class="tag">JetBrains Mono + Outfit</span> 174 <span class="tag">REPL tutorial</span> 175 </div> 176 </a> 177 178 <a class="demo-card" href="notebook_testing.html"> 179 <div class="demo-card-header"> 180 <span class="demo-card-number">03</span> 181 <h2>The Notebook</h2> 182 </div> 183 <p>Building a test framework incrementally. Clean editorial aesthetic with a soft white background, blue-violet accents, Newsreader serif headings, and generous whitespace.</p> 184 <div class="tags"> 185 <span class="tag">@scrolly.notebook</span> 186 <span class="tag">Newsreader + DM Sans</span> 187 <span class="tag">testing tutorial</span> 188 </div> 189 </a> 190 191</div> 192 193<div class="demos-footer"> 194 Powered by <a href="https://ocaml.github.io/odoc/">odoc</a> custom tag extensions &middot; Inspired by <a href="https://codehike.org">Code Hike</a> 195</div> 196 197</div> 198%}