Something went wrong. Try again.
atproto Thingiverse but good
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107use dioxus::prelude::*;
#[component]pub(crate) fn Foundation() -> Element { rsx! { main { class: "browse-page product-shell", header { class: "foundation-intro", h1 { "Foundation" } p { class: "product-lede", "Self-hosted typography, blueprint tokens, and reusable front-end states for upcoming product slices." } }
section { id: "browse-foundation", class: "foundation-hero blueprint-panel", div { class: "foundation-hero-copy", p { class: "eyebrow", "Token and asset check" } h2 { "Blueprint styling foundation" } p { "This route keeps the front-end primitives visible without making implementation scaffolding the product home." } div { class: "button-row", button { class: "button button-primary", "Primary action" } button { class: "button button-ghost", "Ghost action" } } } div { class: "blueprint-preview", aria_label: "Blueprint placeholder preview", div { class: "blueprint-preview-grid" } span { class: "blueprint-axis blueprint-axis-x", "X" } span { class: "blueprint-axis blueprint-axis-y", "Y" } span { class: "blueprint-dimension", "120 × 86 × 42 mm" } } }
section { class: "foundation-grid", aria_label: "Foundation primitives", for item in foundation_items() { FoundationCard { item } } }
section { id: "ui-states", class: "state-grid", aria_label: "Reusable states", div { class: "state-card loading-state", span { class: "status-pill", "Loading" } div { class: "skeleton-line skeleton-wide" } div { class: "skeleton-line" } div { class: "skeleton-box" } } div { class: "state-card empty-state", span { class: "status-pill status-muted", "Empty" } h2 { "No projects yet" } p { "Empty browse states can use this panel before live feeds are connected." } } div { class: "state-card error-state", span { class: "status-pill status-error", "Error" } h2 { "Feed unavailable" } p { "Error states keep the browse surface useful without inventing data plumbing in this slice." } } } } }}
#[derive(Clone, Copy, PartialEq)]struct FoundationItem { label: &'static str, title: &'static str, body: &'static str, meta: &'static str,}
fn foundation_items() -> [FoundationItem; 3] { [ FoundationItem { label: "Panel", title: "Project card surface", body: "A crisp bordered card for future model summaries, previews, and maker metadata.", meta: "primitive/card", }, FoundationItem { label: "Input", title: "Search and filter shell", body: "Reusable input styling for browse, profile, and publish flows without binding to a data source yet.", meta: "primitive/input", }, FoundationItem { label: "Status", title: "Metadata and chips", body: "Compact mono labels for license, dimensions, file state, and feed status.", meta: "primitive/status", }, ]}
#[component]fn FoundationCard(item: FoundationItem) -> Element { rsx! { article { class: "foundation-card card-surface", div { class: "card-media blueprint-media", span { class: "status-pill", "{item.label}" } } div { class: "card-body", h2 { class: "card-title", "{item.title}" } p { "{item.body}" } span { class: "card-meta", "{item.meta}" } } } }}
#[cfg(test)]mod tests { use super::*;
#[test] fn foundation_items_cover_base_primitives() { let items = foundation_items(); assert!(items.iter().any(|item| item.label == "Panel")); assert!(items.iter().any(|item| item.label == "Input")); assert!(items.iter().any(|item| item.label == "Status")); }
#[test] fn foundation_copy_avoids_workflow_marketing() { let combined = foundation_items() .iter() .map(|item| item.body) .collect::<Vec<_>>() .join(" "); assert!(!combined.contains("Jira")); assert!(!combined.contains("Polytoken")); }}