// Single ProfileArtist template — every artist gets the same generous // treatment. Data drives which optional sections appear: // • student? → adds the student featurette (school+mentor / awards // / what's next) as a celebration, not a replacement // • commissions → renders the commissions block // • events → renders the upcoming-appearances list // • press → renders the press & exhibitions list // • studio → renders the studio block // // Pop CTA: one per page, always Amber (Artists stream). Defined in // `primaryCta` on the artist data so it can be the most relevant action // for THAT artist (commission, exhibit RSVP, buy a zine, etc.). // // Two example artboards in app.jsx call the SAME component with different // data — one member (Maribel), one student (Jacob, who still gets every // feature plus the celebration band). const AP = { paper: "#FBF7EE", warmPaper: "#F5F0E2", stone: "#E8E2D3", navy: "#01234B", ink: "#1F1B2E", mute: "#6B6577", council: "#45217A", pine: "#2F7A2E", meadow: "#78BE4D", artists: "#01234B", artistsDeep: "#000E22", artistsLake: "#1F5A8C", artistsLifted: "#0E3E78", artistsSky: "#6E94BC", artistsWhisper: "#DCE7F1", amber: "#FF9B3D", yellow: "#F3CF03", }; // ─── Shared chrome ──────────────────────────────────────────────── function ProfileNav() { const items = [ { label: "What's on", stream: "events", path: "#/events" }, { label: "Artists", stream: "artists", path: "#/artists", active: true }, { label: "Programs", stream: "council", path: "#/about" }, { label: "News", stream: "news", path: "#/news" }, { label: "Visit", stream: "council", path: "#/about" }, ]; return (
← All artists See what's on
); } function ProfileFooter() { return ( ); } // ─── Portrait placeholder ───────────────────────────────────────── function PortraitBig({ initials, gradient, size = 460, badges }) { return (
{initials}
{badges && (
{badges.map((b, i) => ( {b.label} ))}
)}
); } // ─── Work tile — adapts visual style per medium ────────────────── function WorkTile({ big, work }) { const { style = "quilt", title, meta, colors, highlight, label } = work; return (
{highlight && (
{label || "Featured"}
)}
{style === "quilt" && } {style === "sketch" && } {style === "photo" && } {style === "ceramic" && }
{title}
{meta}
); } function QuiltArt({ colors = ["#C81344", "#F3CF03", "#45217A", "#FBF7EE"] }) { return ( ); } function SketchArt() { return ( {Array.from({ length: 40 }).map((_, i) => ( ))} ); } function PhotoArt({ colors = ["#1F5A8C", "#FBF7EE"] }) { return ( ); } function CeramicArt({ colors = ["#0E3E78", "#DCE7F1"] }) { return ( ); } // ════════════════════════════════════════════════════════════════ // ProfileArtist — unified template // ════════════════════════════════════════════════════════════════ function ProfileArtist({ artist: a }) { const isStudent = !!a.student; return (
{/* Breadcrumb */}
Artists {a.medium[0]} {a.name}
{/* ── Hero ── */}
{a.eyebrow || "Artist · Profile"}

{a.name}

{a.meta}
{a.tags.map((t) => ( {t} ))}

"{a.quote}"

{/* THE one Amber pop per page */} {a.primaryCta} {a.secondaryCta && ( {a.secondaryCta} )} Share Print profile
{/* ── Quick-info strip ── */}
{a.quickInfo.map((it, i) => (
{it.l}
{it.v}
{it.s}
))}
{/* ── About + Works gallery ── */}
About

{a.statement.heading}

{a.statement.paras.map((p, i) => (

))}

{a.worksLabel || "Selected works"} See all {a.totalWorks || a.works.length}
{a.works.map((w, i) => )}
{/* ── Student featurette (only if student) — celebrated, not limited ── */} {isStudent && (
Student artist · Class of {a.student.classYear}

Coming up next.

{a.name.split(" ")[0]} joined the RoCo student cohort in fall {a.student.joined}. We add three students per county high school each year.

{/* School + Mentor */}
School + mentor

{a.student.school}

Educators — nomination guidelines.

{/* Awards & shows */}
Recognition

Awards & shows

    {a.student.awards.map((aw, i) => (
  • {aw.year}
  • ))}
{/* What's next */}
After graduation

What's next.

{a.student.support && (

Support this artist

{a.student.support.cta}

)}
)} {/* ── Visit + Studio + Commissions + Events ── */} {(a.events || a.studio || a.commissions) && (
Visit · Events

{a.eventsHeading || `Where to find ${a.name.split(" ")[0]} this season.`}

{a.events && a.events.length > 0 ? (
{a.events.map((e, i) => (
{e.day}
{e.mo}
{e.name}
{e.time}
Details
))}
) : (

Nothing scheduled. Check back, or follow this artist for updates.

)}
Studio + commissions

{a.studioHeading || "Visit, or commission a piece."}

{a.studio && (
Studio
{a.studio.tag && ( {a.studio.tag} )}

{a.studio.body}

)} {a.commissions && (
Commissions
{a.commissions.tag && ( {a.commissions.tag} )}

{a.commissions.body}

{a.commissions.cta}
)} {a.press && a.press.length > 0 && (
Press & exhibitions
    {a.press.map((p, i) => (
  • ))}
)}
)}
); } // ════════════════════════════════════════════════════════════════ // Sample data — Maribel (member) // ════════════════════════════════════════════════════════════════ const ARTIST_MARIBEL = { initials: "MC", name: "Maribel Cortez", meta: "she/her · Stockton, Kansas · est. 1994", medium: ["Quilting"], tags: ["Quilting", "Hand-pieced", "Hand-quilted", "Traditional + improv"], badges: [ { label: "Member · since 1994", bg: AP.paper, fg: AP.artistsDeep }, { label: "Quilt Wall artist", bg: AP.amber, fg: AP.artistsDeep }, ], quote: "I'm not trying to make a quilt for a museum. I'm trying to make one my granddaughter will fight her cousin for.", primaryCta: "Inquire about a commission", secondaryCta: "Add to my route", quickInfo: [ { l: "Studio", v: "Stockton (home)", s: "By appointment" }, { l: "Open Studios", v: "Yes · Sat May 16", s: "Site no. 4 on the route" }, { l: "Commissions", v: "Limited", s: "1–2 a year" }, { l: "In the directory", v: "since 1994", s: "32 years" }, { l: "Find me at", v: "Quilt Wall Block Party", s: "Jun 7 · with chili" }, ], statement: { heading: "Hand-pieced.\nBuilt to be used.", paras: [ "Maribel has been piecing in her front room since the year her husband bought her a Pfaff for her thirtieth birthday. Three of her panels hang on the County Quilt Wall. Two more are in storage, waiting for the next rotation.", "Her work mixes the classic block geometries she grew up with — Carpenter's Wheel, Bear's Paw, Drunkard's Path — with looser, improv-style colorwork drawn from prairie sunsets and Marvin Gaye album covers.", "She doesn't sell often, but she does take a handful of commissions a year for milestone gifts — graduations, weddings, anniversaries, the occasional retirement.", ], }, worksLabel: "Selected works · 2018 – 2026", totalWorks: 24, works: [ { style: "quilt", title: "Sundown over US-24", meta: "2024 · 84 × 96 in · for sale", colors: ["#C81344", "#F3CF03", "#45217A", "#FBF7EE"], big: true, highlight: true, label: "For sale" }, { style: "quilt", title: "Carpenter's wheel, gone wrong", meta: "2022 · 72 × 72 in", colors: ["#4195D3", "#FBF7EE", "#01234B", "#F3CF03"] }, { style: "quilt", title: "Marvin's anniversary", meta: "2023 · 60 × 80 in", colors: ["#78BE4D", "#01234B", "#FBF7EE", "#C81344"] }, { style: "quilt", title: "County panel no. 8", meta: "2021 · Quilt Wall", colors: ["#45217A", "#F3CF03", "#78BE4D", "#C81344"] }, { style: "quilt", title: "Bear's paw, modernized", meta: "2026 · in progress", colors: ["#FBF7EE", "#C81344", "#01234B", "#4195D3"] }, { style: "quilt", title: "Graduation gift, Aug", meta: "2025 · commission", colors: ["#F3CF03", "#01234B", "#FBF7EE", "#78BE4D"] }, { style: "quilt", title: "Drunkard's path", meta: "2023 · 60 × 60 in", colors: ["#01234B", "#FBF7EE", "#F3CF03", "#45217A"] }, { style: "quilt", title: "Star of Stockton", meta: "2022 · Quilt Wall preliminary", colors: ["#C81344", "#01234B", "#FBF7EE", "#78BE4D"] }, { style: "quilt", title: "Improv #4", meta: "2020 · 48 × 60 in", colors: ["#4195D3", "#45217A", "#F3CF03", "#FBF7EE"] }, ], events: [ { day: "16", mo: "May", name: "Spring Open Studios · site no. 4", time: "10 am – 5 pm · Stockton" }, { day: "07", mo: "Jun", name: "Quilt Wall Block Party · paint-along", time: "1 – 4 pm · The Annex" }, { day: "12", mo: "Sep", name: "Plains Quilt Show (guest juror)", time: "Hays, KS" }, { day: "11", mo: "Oct", name: "Fall Open Studios · site no. 4", time: "10 am – 5 pm · Stockton" }, ], studio: { tag: "Open during Open Studios", tagColor: AP.meadow, body: "Front room, Stockton. By appointment outside of Open Studios weekends — use the form below or text the Annex.", }, commissions: { tag: "Limited · 1–2 a year", tagColor: AP.amber, body: "Milestone gifts only — graduations, weddings, anniversaries, retirement. 6–10 month turnaround. Starting around $1,400.", cta: "Start an inquiry", }, press: [ `2024 · High Plains Reader — "The quilters of Rooks"`, `2023 · KS Creative Arts grant recipient`, `2021 · Quilt Wall panel no. 8 (Sunset)`, `2019 · Plains Quilt Show, Hays, juror's choice`, `2015 · Kansas! Magazine, feature`, ], }; // ════════════════════════════════════════════════════════════════ // Sample data — Jacob (student, but with EVERY feature) // ════════════════════════════════════════════════════════════════ const ARTIST_JACOB = { initials: "JS", name: "Jacob Steinmiller", meta: "he/him · Stockton, Kansas · Class of 2026", medium: ["Drawing", "Comics"], tags: ["Pen & ink", "Comics", "Zines", "Linocut"], gradient: `linear-gradient(135deg, ${AP.artistsSky} 0%, ${AP.artistsLake} 100%)`, badges: [ { label: "Student artist", bg: AP.artistsSky, fg: AP.artistsDeep }, { label: "Class of 2026", bg: "rgba(251,247,238,0.18)", fg: AP.paper, border: "rgba(251,247,238,0.4)" }, ], quote: "I'm trying to draw a county that doesn't get drawn very much. I want my little brother to see Rooks in a comic and recognize it.", primaryCta: "RSVP to the Senior Exhibit", secondaryCta: "Buy the Northbound zine", quickInfo: [ { l: "School", v: "Stockton HS", s: "Grade 12 · Class of 2026" }, { l: "Faculty advisor", v: "Mr. Halverson", s: "Art dept." }, { l: "Joined RoCo", v: "Sep 2025", s: "Senior cohort" }, { l: "Senior project", v: "Comic zine", s: "Spring exhibit" }, { l: "Commissions", v: "Open · zines $8", s: "Print on demand" }, ], statement: { heading: "About my work.", paras: [ "I started drawing comics in seventh grade because I couldn't keep up with the kids in my class who could already paint. Drawing was something I could do at the back of my notebooks.", "Most of my stories are about Stockton — kids walking home from football practice, my grandfather's gas station before it closed, the deer that come into the park at dusk.", `For my senior project I'm building a 48-page risograph zine called Northbound, about a kid who drives all eight towns in one Saturday. It comes out at the Spring Senior Exhibit.`, ], }, worksLabel: "Portfolio · 2024 – 2026", totalWorks: 12, works: [ { style: "sketch", title: "Northbound · cover", meta: "2026 · Riso · 48 pp · senior project", big: true, highlight: true, label: "Senior project" }, { style: "sketch", title: "The gas station, before", meta: "2025 · Ink on paper · 18 × 24 in" }, { style: "sketch", title: "Walking home, IV", meta: "2025 · Ink + watercolor" }, { style: "sketch", title: "Park deer, dusk", meta: "2024 · Linocut · ed. 12" }, { style: "sketch", title: "Math class daydream", meta: "2024 · Marker on notebook" }, { style: "sketch", title: "Self-portrait, II", meta: "2025 · Pen + brush" }, { style: "sketch", title: "Highway 24, panel 3", meta: "2025 · Ink · zine spread" }, { style: "sketch", title: "Halverson, in class", meta: "2024 · Pencil study" }, { style: "sketch", title: "Stockton at 2 am", meta: "2026 · Brush + ink" }, ], events: [ { day: "22", mo: "May", name: "Spring Senior Exhibit — opening night", time: "6 pm · The Annex" }, { day: "31", mo: "May", name: "Zine release · Northbound launch reading", time: "2 pm · The Annex" }, { day: "07", mo: "Jun", name: "Quilt Wall Block Party · zine table", time: "1 – 4 pm · The Annex" }, ], studio: { tag: "Online portfolio", tagColor: AP.artistsLake, body: "Jacob doesn't have a public studio yet — his work table is his bedroom desk. Senior project preview at the Annex, May 22 – Jun 28.", }, commissions: { tag: "Open · sliding scale", tagColor: AP.amber, body: "Commissioning a portrait, a custom zine, or a small print? Sliding scale $25 – $150. All proceeds go to the college fund.", cta: "Request a piece", }, press: [ `2025 · Kansas Scholastic Art — Silver Key, drawing`, `2024 · SHS Art Department, Best in Class · drawing`, `2024 · Plainville Library group show`, ], student: { classYear: 2026, joined: 2025, school: "Stockton High School", mentorNote: `Faculty advisor Tom Halverson nominated Jacob for the 2025–26 student cohort. Jacob takes drawing, painting, and AP Studio Art at SHS.`, awards: [ { year: "2026", text: "Spring Senior Exhibit, the Annex (forthcoming)" }, { year: "2025", text: `Kansas Scholastic Art — Silver Key, drawing` }, { year: "2025", text: "RoCo student cohort selection" }, { year: "2024", text: "SHS Art Department, Best in Class · drawing" }, { year: "2024", text: "Plainville Library group show" }, ], next: `Jacob is applying to BFA programs at KU, MICA, and KCAI. He'd like to make comics, teach in a small town, or both.`, support: { body: `Print copies of Northbound will be sold at the Spring Senior Exhibit. Proceeds go to the student's college fund.`, cta: "RSVP to the exhibit", }, }, }; function ProfileMember() { return ; } function ProfileStudent() { return ; } window.ProfileArtist = ProfileArtist; window.ProfileMember = ProfileMember; window.ProfileStudent = ProfileStudent;