Fix: shields.io badges, light/dark theme support, remove status column
Browse files- index.html +43 -38
index.html
CHANGED
|
@@ -6,63 +6,73 @@
|
|
| 6 |
<title>EdgeFirst AI — Spatial Perception at the Edge</title>
|
| 7 |
<style>
|
| 8 |
:root {
|
| 9 |
-
--
|
| 10 |
-
--
|
| 11 |
-
--
|
| 12 |
-
--
|
| 13 |
-
--
|
| 14 |
-
--card-bg: #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
}
|
| 16 |
* { margin: 0; padding: 0; box-sizing: border-box; }
|
| 17 |
body {
|
| 18 |
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
| 19 |
-
background: var(--
|
| 20 |
color: var(--text);
|
| 21 |
line-height: 1.6;
|
| 22 |
}
|
| 23 |
.container { max-width: 900px; margin: 0 auto; padding: 2rem; }
|
| 24 |
h1 { font-size: 2rem; margin-bottom: 0.25rem; }
|
| 25 |
-
h2 { font-size: 1.3rem; margin-top: 2rem; margin-bottom: 0.75rem; color: var(--
|
| 26 |
.tagline { color: var(--muted); font-size: 1.1rem; margin-bottom: 1.5rem; }
|
| 27 |
.description { margin-bottom: 1.5rem; }
|
| 28 |
-
.badges { display: flex; flex-wrap: wrap; gap: 0.
|
| 29 |
-
.
|
| 30 |
-
background: var(--accent);
|
| 31 |
-
padding: 0.3rem 0.75rem;
|
| 32 |
-
border-radius: 4px;
|
| 33 |
-
font-size: 0.85rem;
|
| 34 |
-
white-space: nowrap;
|
| 35 |
-
}
|
| 36 |
.links { display: flex; gap: 1rem; margin: 1.5rem 0; flex-wrap: wrap; }
|
| 37 |
.links a {
|
| 38 |
-
color: var(--
|
| 39 |
text-decoration: none;
|
| 40 |
padding: 0.5rem 1rem;
|
| 41 |
-
border: 1px solid var(--
|
| 42 |
border-radius: 4px;
|
| 43 |
transition: all 0.2s;
|
| 44 |
}
|
| 45 |
-
.links a:hover { background: var(--
|
| 46 |
.arch-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
|
| 47 |
.arch-table th, .arch-table td {
|
| 48 |
text-align: left;
|
| 49 |
padding: 0.5rem 0.75rem;
|
| 50 |
-
border-bottom: 1px solid
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
}
|
| 52 |
-
.arch-table th { color: var(--highlight); font-size: 0.85rem; text-transform: uppercase; }
|
| 53 |
-
.status { font-size: 0.8rem; padding: 0.15rem 0.5rem; border-radius: 3px; }
|
| 54 |
-
.stable { background: #1b5e20; }
|
| 55 |
-
.roadmap { background: #4a148c; }
|
| 56 |
.model-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; margin: 1rem 0; }
|
| 57 |
.model-card {
|
| 58 |
background: var(--card-bg);
|
| 59 |
padding: 1rem;
|
| 60 |
border-radius: 6px;
|
| 61 |
-
border-left: 3px solid var(--
|
| 62 |
}
|
| 63 |
.model-card h3 { font-size: 1rem; margin-bottom: 0.25rem; }
|
| 64 |
.model-card .meta { color: var(--muted); font-size: 0.85rem; }
|
| 65 |
-
.model-card a { color: var(--
|
| 66 |
.footer { margin-top: 3rem; text-align: center; color: var(--muted); font-size: 0.85rem; }
|
| 67 |
.footer a { color: var(--muted); }
|
| 68 |
</style>
|
|
@@ -85,12 +95,12 @@
|
|
| 85 |
|
| 86 |
<h2>Supported Hardware</h2>
|
| 87 |
<div class="badges">
|
| 88 |
-
<
|
| 89 |
-
<
|
| 90 |
-
<
|
| 91 |
-
<
|
| 92 |
-
<
|
| 93 |
-
<
|
| 94 |
</div>
|
| 95 |
|
| 96 |
<h2>Architecture</h2>
|
|
@@ -98,27 +108,22 @@
|
|
| 98 |
<tr>
|
| 99 |
<th>Layer</th>
|
| 100 |
<th>Description</th>
|
| 101 |
-
<th>Status</th>
|
| 102 |
</tr>
|
| 103 |
<tr>
|
| 104 |
<td><strong>Foundation</strong></td>
|
| 105 |
<td>Hardware abstraction, video I/O, accelerated inference delegates</td>
|
| 106 |
-
<td><span class="status stable">Stable</span></td>
|
| 107 |
</tr>
|
| 108 |
<tr>
|
| 109 |
<td><strong>Zenoh</strong></td>
|
| 110 |
<td>Modular perception pipeline over Zenoh pub/sub</td>
|
| 111 |
-
<td><span class="status stable">Stable</span></td>
|
| 112 |
</tr>
|
| 113 |
<tr>
|
| 114 |
<td><strong>GStreamer</strong></td>
|
| 115 |
<td>Spatial perception elements for GStreamer / NNStreamer</td>
|
| 116 |
-
<td><span class="status stable">Stable</span></td>
|
| 117 |
</tr>
|
| 118 |
<tr>
|
| 119 |
<td><strong>ROS 2</strong></td>
|
| 120 |
-
<td>Native ROS 2 nodes extending Zenoh microservices</td>
|
| 121 |
-
<td><span class="status roadmap">Roadmap</span></td>
|
| 122 |
</tr>
|
| 123 |
</table>
|
| 124 |
|
|
|
|
| 6 |
<title>EdgeFirst AI — Spatial Perception at the Edge</title>
|
| 7 |
<style>
|
| 8 |
:root {
|
| 9 |
+
--bg: #fff;
|
| 10 |
+
--text: #1a1a2e;
|
| 11 |
+
--muted: #555;
|
| 12 |
+
--accent: #e94560;
|
| 13 |
+
--border: #e0e0e0;
|
| 14 |
+
--card-bg: #f8f9fa;
|
| 15 |
+
--card-border: #e94560;
|
| 16 |
+
}
|
| 17 |
+
@media (prefers-color-scheme: dark) {
|
| 18 |
+
:root {
|
| 19 |
+
--bg: #1a1a2e;
|
| 20 |
+
--text: #eee;
|
| 21 |
+
--muted: #aaa;
|
| 22 |
+
--border: rgba(255,255,255,0.1);
|
| 23 |
+
--card-bg: #16213e;
|
| 24 |
+
}
|
| 25 |
}
|
| 26 |
* { margin: 0; padding: 0; box-sizing: border-box; }
|
| 27 |
body {
|
| 28 |
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
| 29 |
+
background: var(--bg);
|
| 30 |
color: var(--text);
|
| 31 |
line-height: 1.6;
|
| 32 |
}
|
| 33 |
.container { max-width: 900px; margin: 0 auto; padding: 2rem; }
|
| 34 |
h1 { font-size: 2rem; margin-bottom: 0.25rem; }
|
| 35 |
+
h2 { font-size: 1.3rem; margin-top: 2rem; margin-bottom: 0.75rem; color: var(--accent); }
|
| 36 |
.tagline { color: var(--muted); font-size: 1.1rem; margin-bottom: 1.5rem; }
|
| 37 |
.description { margin-bottom: 1.5rem; }
|
| 38 |
+
.badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0; }
|
| 39 |
+
.badges img { height: 22px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
.links { display: flex; gap: 1rem; margin: 1.5rem 0; flex-wrap: wrap; }
|
| 41 |
.links a {
|
| 42 |
+
color: var(--accent);
|
| 43 |
text-decoration: none;
|
| 44 |
padding: 0.5rem 1rem;
|
| 45 |
+
border: 1px solid var(--accent);
|
| 46 |
border-radius: 4px;
|
| 47 |
transition: all 0.2s;
|
| 48 |
}
|
| 49 |
+
.links a:hover { background: var(--accent); color: #fff; }
|
| 50 |
.arch-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
|
| 51 |
.arch-table th, .arch-table td {
|
| 52 |
text-align: left;
|
| 53 |
padding: 0.5rem 0.75rem;
|
| 54 |
+
border-bottom: 1px solid var(--border);
|
| 55 |
+
}
|
| 56 |
+
.arch-table th { color: var(--accent); font-size: 0.85rem; text-transform: uppercase; }
|
| 57 |
+
.roadmap-tag {
|
| 58 |
+
font-size: 0.75rem;
|
| 59 |
+
padding: 0.1rem 0.4rem;
|
| 60 |
+
border-radius: 3px;
|
| 61 |
+
background: #7c3aed;
|
| 62 |
+
color: #fff;
|
| 63 |
+
vertical-align: middle;
|
| 64 |
+
margin-left: 0.3rem;
|
| 65 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
.model-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; margin: 1rem 0; }
|
| 67 |
.model-card {
|
| 68 |
background: var(--card-bg);
|
| 69 |
padding: 1rem;
|
| 70 |
border-radius: 6px;
|
| 71 |
+
border-left: 3px solid var(--card-border);
|
| 72 |
}
|
| 73 |
.model-card h3 { font-size: 1rem; margin-bottom: 0.25rem; }
|
| 74 |
.model-card .meta { color: var(--muted); font-size: 0.85rem; }
|
| 75 |
+
.model-card a { color: var(--accent); text-decoration: none; }
|
| 76 |
.footer { margin-top: 3rem; text-align: center; color: var(--muted); font-size: 0.85rem; }
|
| 77 |
.footer a { color: var(--muted); }
|
| 78 |
</style>
|
|
|
|
| 95 |
|
| 96 |
<h2>Supported Hardware</h2>
|
| 97 |
<div class="badges">
|
| 98 |
+
<img src="https://img.shields.io/badge/NXP-i.MX_8M_Plus-0072CE?style=flat-square" alt="NXP i.MX 8M Plus">
|
| 99 |
+
<img src="https://img.shields.io/badge/NXP-i.MX_93-0072CE?style=flat-square" alt="NXP i.MX 93">
|
| 100 |
+
<img src="https://img.shields.io/badge/NXP-i.MX_95-0072CE?style=flat-square" alt="NXP i.MX 95">
|
| 101 |
+
<img src="https://img.shields.io/badge/NXP-Ara240-0072CE?style=flat-square" alt="NXP Ara240">
|
| 102 |
+
<img src="https://img.shields.io/badge/RPi5-Hailo--8%2F8L-C51A4A?style=flat-square" alt="RPi5 + Hailo-8/8L">
|
| 103 |
+
<img src="https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square" alt="NVIDIA Jetson">
|
| 104 |
</div>
|
| 105 |
|
| 106 |
<h2>Architecture</h2>
|
|
|
|
| 108 |
<tr>
|
| 109 |
<th>Layer</th>
|
| 110 |
<th>Description</th>
|
|
|
|
| 111 |
</tr>
|
| 112 |
<tr>
|
| 113 |
<td><strong>Foundation</strong></td>
|
| 114 |
<td>Hardware abstraction, video I/O, accelerated inference delegates</td>
|
|
|
|
| 115 |
</tr>
|
| 116 |
<tr>
|
| 117 |
<td><strong>Zenoh</strong></td>
|
| 118 |
<td>Modular perception pipeline over Zenoh pub/sub</td>
|
|
|
|
| 119 |
</tr>
|
| 120 |
<tr>
|
| 121 |
<td><strong>GStreamer</strong></td>
|
| 122 |
<td>Spatial perception elements for GStreamer / NNStreamer</td>
|
|
|
|
| 123 |
</tr>
|
| 124 |
<tr>
|
| 125 |
<td><strong>ROS 2</strong></td>
|
| 126 |
+
<td>Native ROS 2 nodes extending Zenoh microservices <span class="roadmap-tag">Roadmap</span></td>
|
|
|
|
| 127 |
</tr>
|
| 128 |
</table>
|
| 129 |
|