Updated readme
Some checks failed
CI / Test (Linux) (push) Has been cancelled
CI / Test (Windows MSVC) (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Format (push) Has been cancelled

This commit is contained in:
Eric Ratliff
2026-02-22 07:57:55 -06:00
parent 0d3987f76e
commit 54e1ba14d1
2 changed files with 355 additions and 174 deletions

90
docs/terminal-demo.svg Normal file
View File

@@ -0,0 +1,90 @@
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="440" viewBox="0 0 720 440">
<style>
@keyframes t1 { 0%, 4% { opacity: 0 } 5% { opacity: 1 } }
@keyframes t2 { 0%, 9% { opacity: 0 } 10% { opacity: 1 } }
@keyframes t3 { 0%, 11% { opacity: 0 } 12% { opacity: 1 } }
@keyframes t4 { 0%, 13% { opacity: 0 } 14% { opacity: 1 } }
@keyframes t5 { 0%, 15% { opacity: 0 } 16% { opacity: 1 } }
@keyframes t6 { 0%, 17% { opacity: 0 } 18% { opacity: 1 } }
@keyframes t7 { 0%, 19% { opacity: 0 } 20% { opacity: 1 } }
@keyframes t8 { 0%, 21% { opacity: 0 } 22% { opacity: 1 } }
@keyframes t9 { 0%, 23% { opacity: 0 } 24% { opacity: 1 } }
@keyframes t10 { 0%, 25% { opacity: 0 } 26% { opacity: 1 } }
@keyframes t11 { 0%, 27% { opacity: 0 } 28% { opacity: 1 } }
@keyframes t12 { 0%, 29% { opacity: 0 } 30% { opacity: 1 } }
@keyframes t13 { 0%, 34% { opacity: 0 } 35% { opacity: 1 } }
@keyframes t14 { 0%, 39% { opacity: 0 } 40% { opacity: 1 } }
@keyframes t15 { 0%, 44% { opacity: 0 } 45% { opacity: 1 } }
@keyframes t16 { 0%, 49% { opacity: 0 } 50% { opacity: 1 } }
@keyframes t17 { 0%, 51% { opacity: 0 } 52% { opacity: 1 } }
@keyframes t18 { 0%, 53% { opacity: 0 } 54% { opacity: 1 } }
@keyframes t19 { 0%, 58% { opacity: 0 } 59% { opacity: 1 } }
@keyframes t20 { 0%, 63% { opacity: 0 } 64% { opacity: 1 } }
@keyframes t21 { 0%, 65% { opacity: 0 } 66% { opacity: 1 } }
@keyframes t22 { 0%, 67% { opacity: 0 } 68% { opacity: 1 } }
@keyframes t23 { 0%, 72% { opacity: 0 } 73% { opacity: 1 } }
@keyframes t24 { 0%, 77% { opacity: 0 } 78% { opacity: 1 } }
@keyframes cursor { 0%, 49% { opacity: 1 } 50%, 100% { opacity: 0 } }
.l { font-family: 'Cascadia Code', 'Fira Code', 'SF Mono', 'Consolas', monospace; font-size: 13px; fill: #c0c0c0; }
.pr { fill: #6ec06e; }
.cm { fill: #58d0f0; }
.fl { fill: #c0c0c0; }
.ok { fill: #6ec06e; }
.nm { fill: #f0c060; }
.dm { fill: #888888; }
</style>
<!-- Background -->
<rect width="720" height="440" rx="8" fill="#1e1e2e"/>
<!-- Title bar -->
<rect width="720" height="32" rx="8" fill="#2a2a3c"/>
<rect y="24" width="720" height="8" fill="#2a2a3c"/>
<circle cx="18" cy="16" r="6" fill="#f65f57"/>
<circle cx="38" cy="16" r="6" fill="#f9bf2f"/>
<circle cx="58" cy="16" r="6" fill="#30c840"/>
<text x="360" y="20" text-anchor="middle" font-family="Arial" font-size="13" fill="#888">anvil -- terminal</text>
<!-- Line 1: prompt + command -->
<text y="60" class="l" opacity="0" style="animation: t1 24s infinite">
<tspan x="16" class="pr">$</tspan>
<tspan class="cm"> anvil new weather_station --template weather --board uno</tspan>
</text>
<!-- Lines 2-11: output -->
<text y="78" class="l" opacity="0" style="animation: t2 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/weather_station/weather_station.ino</tspan></text>
<text y="94" class="l" opacity="0" style="animation: t3 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/lib/app/weather_app.h</tspan></text>
<text y="110" class="l" opacity="0" style="animation: t4 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/lib/hal/hal.h</tspan></text>
<text y="126" class="l" opacity="0" style="animation: t5 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/lib/drivers/tmp36/tmp36.h</tspan></text>
<text y="142" class="l" opacity="0" style="animation: t6 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/test/test_weather.cpp</tspan></text>
<text y="158" class="l" opacity="0" style="animation: t7 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/test/test_unit.cpp</tspan></text>
<text y="174" class="l" opacity="0" style="animation: t8 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/build.sh, build.bat</tspan></text>
<text y="190" class="l" opacity="0" style="animation: t9 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/.anvil.toml</tspan></text>
<text y="206" class="l" opacity="0" style="animation: t10 24s infinite"><tspan x="16" class="ok"> create</tspan><tspan class="fl"> weather_station/.anvilignore</tspan></text>
<text y="222" class="l dm" opacity="0" style="animation: t11 24s infinite"><tspan x="16"> ... 28 more files</tspan></text>
<text y="240" class="l" opacity="0" style="animation: t12 24s infinite"><tspan x="16" class="ok"> done</tspan><tspan> Project ready. cd weather_station &amp;&amp; ./test.sh</tspan></text>
<!-- Line 13: second command -->
<text y="270" class="l" opacity="0" style="animation: t13 24s infinite">
<tspan x="16" class="pr">$</tspan>
<tspan class="cm"> cd weather_station &amp;&amp; ./test.sh</tspan>
</text>
<!-- Lines 14-18: test output -->
<text y="288" class="l dm" opacity="0" style="animation: t14 24s infinite"><tspan x="16">[==========] Running 14 tests from 4 test suites.</tspan></text>
<text y="304" class="l" opacity="0" style="animation: t15 24s infinite"><tspan x="16" class="ok">[ PASSED ]</tspan><tspan> WeatherMockTest.ReadsTemperature</tspan></text>
<text y="320" class="l" opacity="0" style="animation: t16 24s infinite"><tspan x="16" class="ok">[ PASSED ]</tspan><tspan> WeatherSimTest.NoisyReadingsInRange</tspan></text>
<text y="336" class="l dm" opacity="0" style="animation: t17 24s infinite"><tspan x="16"> ... 10 more tests</tspan></text>
<text y="354" class="l" opacity="0" style="animation: t18 24s infinite"><tspan x="16" class="ok">[ PASSED ]</tspan><tspan> Tmp36PolymorphismTest.AllImplsWorkThroughBasePointer</tspan></text>
<!-- Lines 19-20: summary -->
<text y="374" class="l" opacity="0" style="animation: t19 24s infinite"><tspan x="16" class="ok">[==========]</tspan><tspan> 14 tests ran. </tspan><tspan class="nm">(12 ms total)</tspan></text>
<text y="390" class="l" opacity="0" style="animation: t20 24s infinite"><tspan x="16" class="ok">[ PASSED ] 14 tests.</tspan></text>
<!-- Line 21: third command -->
<text y="414" class="l" opacity="0" style="animation: t23 24s infinite">
<tspan x="16" class="pr">$</tspan>
<tspan class="cm"> ./upload.sh --monitor</tspan>
</text>
<!-- Blinking cursor -->
<rect x="210" y="404" width="8" height="15" fill="#58d0f0" opacity="0" style="animation: t23 24s infinite, cursor 1s step-end infinite"/>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB