Skip to content

Commit d6feb8c

Browse files
committed
portal: the usbif page and its card
1 parent ef96b21 commit d6feb8c

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

index.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ <h3>audiocomponents</h3>
101101
<span class="go">Visit site <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span>
102102
</a>
103103

104+
<a class="card card-tier-1" href="/usbif/">
105+
<div class="card-top">
106+
<span class="icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5z"/></svg></span>
107+
<span class="tag tag-tier-1">usbif</span>
108+
</div>
109+
<h3>usbif</h3>
110+
<p>A board a computer sees as a sound card, a MIDI instrument, a keyboard, a drive or a webcam — and, on the same board, a USB host that a keyboard, thumb drive, MIDI controller or camera plugs into. The third PyDevices *if module after displayif and audioif: a native C module with a thin, stable Python surface that runs unchanged on a workstation.</p>
111+
<span class="go">Visit site <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span>
112+
</a>
113+
104114
<a class="card card-tier-1" href="/pydevices-examples/">
105115
<div class="card-top">
106116
<span class="icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M9 9h6M9 12h6M9 15h4"/><circle cx="17" cy="15" r="1.5"/></svg></span>

usbif/index.html

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<!-- PYDEVICES-HEAD-TAGS: START -->
7+
<title>PyDevices - usbif</title>
8+
<meta name="description" content="A board a computer sees as a sound card, a MIDI instrument, a keyboard, a drive or a webcam — and, on the same board, a USB host that a keyboard, thumb drive, MIDI controller or camera plugs into. The third PyDevices *if module after displayif and audioif: a native C module with a thin, stable Python surface that runs unchanged on a workstation.">
9+
<link rel="icon" type="image/svg+xml" href="/assets/img/logo.svg">
10+
<!-- PYDEVICES-HEAD-TAGS: END -->
11+
<link rel="stylesheet" href="/assets/chrome/site.css">
12+
</head>
13+
<body>
14+
<!-- PYDEVICES-ABOVE-THE-FOLD: START -->
15+
<div id="pydevices-site-header"></div>
16+
17+
<!-- Hero Banner -->
18+
<section class="hero wrap has-hero-canvas">
19+
<div class="hero-main">
20+
<div class="hero-lead">
21+
<div class="logo-badge product-mark" style="background: linear-gradient(135deg, var(--tier-1-amber), var(--tier-1-deep)); color: var(--on-accent);"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5z"/></svg></div>
22+
<span class="eyebrow" style="color: var(--tier-1-amber);">usbif</span>
23+
</div>
24+
<h1>usbif — native USB for MicroPython: device, host, and both at once.</h1>
25+
<p><code>usbif</code> A board a computer sees as a sound card, a MIDI instrument, a keyboard, a drive or a webcam — and, on the same board, a USB host that a keyboard, thumb drive, MIDI controller or camera plugs into. The third PyDevices *if module after displayif and audioif: a native C module with a thin, stable Python surface that runs unchanged on a workstation.</p>
26+
<div class="cta">
27+
<a class="btn primary" style="background: var(--github-ink); color: var(--on-accent); border-color: var(--github-ink);" href="https://github.com/PyDevices/usbif">
28+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.9a3.4 3.4 0 0 0-1-2.6c3-.3 6-1.5 6-6.5a5 5 0 0 0-1.4-3.5 4.6 4.6 0 0 0-.1-3.5s-1.1-.3-3.5 1.3a12 12 0 0 0-6 0C6.6 1.7 5.5 2 5.5 2a4.6 4.6 0 0 0-.1 3.5A5 5 0 0 0 4 9c0 5 3 6.2 6 6.5a3.4 3.4 0 0 0-1 2.6V22"/></svg>
29+
GitHub Repo
30+
</a>
31+
<a class="btn" style="border-color: var(--tier-1-amber); color: var(--tier-1-amber);" href="https://github.com/PyDevices/usbif/blob/main/lib/usbif/README.md">Portable API</a>
32+
<a class="btn" style="border-color: var(--tier-1-amber); color: var(--tier-1-amber);" href="https://github.com/PyDevices/usbif/tree/main/examples">Examples</a>
33+
<a class="btn" style="border-color: var(--tier-1-amber); color: var(--tier-1-amber);" href="https://pydevices.github.io/audioif/">audioif</a>
34+
<a class="btn" style="border-color: var(--tier-1-amber); color: var(--tier-1-amber);" href="https://pydevices.github.io/displayif/">displayif</a>
35+
</div>
36+
</div>
37+
<div class="hero-canvas-wrap" data-hero-canvas="hero_canvas" data-hero-app="encoder" data-hero-deps="pydevices,pydevices-lvgl" data-hero-app-url="https://PyDevices.github.io/assets/apps/encoder.py">
38+
<div class="hero-canvas-square">
39+
<div class="hero-canvas-loader">
40+
<div class="hero-spinner"></div>
41+
<span class="hero-canvas-status">Live Pure-Python Device</span>
42+
</div>
43+
<canvas id="hero_canvas" width="480" height="480" tabindex="0"></canvas>
44+
</div>
45+
</div>
46+
</section>
47+
<!-- PYDEVICES-ABOVE-THE-FOLD: END -->
48+
<div id="pydevices-site-footer"></div>
49+
<script src="/assets/chrome/site-chrome.js"></script>
50+
</body>
51+
</html>

0 commit comments

Comments
 (0)