StealThis .dev
Pages Medium

DIY — Community Project Hub

A community hardware project gallery for the fictional CIRCUITO Project Hub, built as one static page in vanilla JS. A sticky sidebar filters live by board family, difficulty and a searchable component multi-select whose picks become removable chips, mirrored in an active-filter row with clear-all. Eighteen cards carry CSS-drawn circuit thumbnails, respect toggles, difficulty badges and mono part previews, alongside sorting, featured collections, an empty state and a staggered load-more.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Community Project Hub

CIRCUITO Project Hub is a fictional open-hardware community gallery. The page opens with a header band — headline, blurb, three counters and a “Share your project” call to action — next to a CSS-drawn development board with blinking status LEDs and pin headers, all vector and gradient work, no images.

The body is a two-column layout. A sticky filter panel holds board-family checkboxes with live per-family counts, a difficulty radio group and a component multi-select with its own search field: every part you pick becomes a removable chip, and the grid narrows to projects that contain all selected parts. A second chip row above the results mirrors the whole filter state — boards, difficulty and components together — so any single constraint can be dropped with one click, and two clear-all buttons reset everything.

Cards show a board-coloured corner tag, a procedurally generated circuit illustration, an author avatar built from initials and a hashed hue, a difficulty badge, a time estimate, a monospace list of the first three components with a “+N more” tail, and a respect counter that toggles as a pressed button. Sorting switches between trending, newest and most respected; a load-more button appends the next batch with a per-card stagger; and when a filter combination returns nothing, a friendly empty state offers a reset. Three featured collection cards close the page.

How this look is built

The information architecture nods to Arduino Project Hub as a stylistic reference only — everything here is invented. The heavy lifting is modern CSS: grid-template-columns: repeat(auto-fill, minmax(258px,1fr)) gives a card grid that reflows without breakpoints, position: sticky keeps the filter panel pinned without a scroll listener, layered repeating-linear-gradients draw the airy blueprint grid and the hatched card thumbs, and aspect-ratio locks illustration proportions so nothing jumps while fonts load. Filter chips animate in with a keyframe plus a computed animation-delay per card instead of JS timers, and :focus-visible with aria-pressed on the respect toggles keeps keyboard and screen-reader state honest. That beats the older float/absolute-positioned approach because there is no fixed column math to maintain, no JS measuring heights, and one @media (max-width:520px) block is enough to collapse the whole thing to a single column.

Illustrative UI only — always follow real safety guidance when working with tools, electronics, or repairs.