// Artists index — three directions for the "all artists" page.
// Direction A · Directory grid + chip filters
// Direction B · Magazine spread (Members + Student cohorts)
// Direction C · County map + filtered list
const AI = {
paper: "#FBF7EE",
stone: "#E8E2D3",
navy: "#01234B",
ink: "#1F1B2E",
mute: "#6B6577",
council: "#45217A",
pine: "#2F7A2E",
pineDeep: "#1A461A",
meadow: "#78BE4D",
artists: "#01234B",
artistsDeep: "#000E22",
artistsLake: "#1F5A8C",
artistsSky: "#6E94BC",
artistsWhisper: "#DCE7F1",
amber: "#FF9B3D",
yellow: "#F3CF03",
};
// Shared chrome: nav + footer reused from homepage-final's intent.
function ArtistsNav({ activeStream = "artists" }) {
const items = [
{ label: "What's on", stream: "events", path: "#/events" },
{ label: "Artists", stream: "artists", path: "#/artists", active: activeStream === "artists" },
{ label: "Programs", stream: "council", path: "#/about" },
{ label: "News", stream: "news", path: "#/news" },
{ label: "Visit", stream: "council", path: "#/about" },
];
return (
);
}
function ArtistsFooter() {
return (
);
}
// ════════════════════════════════════════════════════════════════
// Direction A — Directory grid + chip filters
// ════════════════════════════════════════════════════════════════
function ArtistsIndexA() {
const all = ARTISTS;
const mediums = ["Painting", "Photography", "Quilting", "Printmaking", "Ceramics", "Woodworking", "Fiber", "Sculpture", "Music", "Drawing", "Glass"];
const towns = ["Stockton", "Plainville", "Palco", "Webster", "Damar", "Logan", "Zurich", "Woodston"];
return (
{/* Hero header (Artists stream eyebrow — black bg) */}
Artists · Directory
All thirty-six makers,
in one county.
Twenty-eight RoCo members and eight student artists from county high schools.
Filter, sort, or drop in during an Open Studios weekend.
{/* Filters */}
Search
⌕
Search by name, medium, town…
Sort:
A – Z ▾
36 artists
All
Members
Student artists
Honorary
{mediums.map((m) => {
const n = all.filter(a => a.medium.includes(m)).length;
return n > 0 ? {m} : null;
})}
{towns.map((t) => {
const n = all.filter(a => a.town === t).length;
return n > 0 ? {t} : null;
})}
Open Studios participant ({all.filter(a => a.visitable).length})
Commissions open ({all.filter(a => a.commissions === "open").length})
Quilt Wall artist ({all.filter(a => a.tags && a.tags.includes("Quilt Wall artist")).length})
New this year ({all.filter(a => a.joined >= 2025).length})
{/* Grid + pagination */}
{/* top pager strip */}
Showing 1 – 24
of
36
artists
Per page
{["24", "48", "All"].map((n, i) => (
{n}
))}
{all.slice(0, 24).map((a) =>
)}
{/* bottom pagination */}
Page 1 of 2
· Updated weekly
);
}
function PagerBtn({ active, disabled, children }) {
return (
{children}
);
}
function ChipRow({ label, children, pad = 14 }) {
return (
);
}
function Toggle({ on, color, children }) {
return (
{children}
);
}
window.ArtistsIndexA = ArtistsIndexA;