feat(theme): curated inline-SVG icon set with select-constrained icon.name #100
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle!100
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/96"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Replaces the icon element's neutral placeholder with a real, dependency-free icon set and constrains
icon.nameto it.What changed
layouts/partials/icon.html(new): 24 original stroke-style glyphs (arrow-right … document, the full list proposed in the issue) on a 24×24 grid — stroke-width 2, round caps/joins, no external assets, fonts, or JS. The shortcode wraps{{ partial "icon.html" $name }}in the unchanged span shape.editor/elements/icon.yaml:nameis nowtype: selectwithoptionslisting exactly the shipped names, so the picker shows the list. Comment documents the fork-extension path (add to both the partial map and the options list) and the graceful-degradation rule..ce-iconplaceholder-square styles are replaced by SVG sizing — icons render at text size (1em), tinted bycurrentColor,aria-hidden="true"preserved.ce-icon--<name>/data-iconspan but empty — nothing visible, no broken square. The kitchen-sink fixture keeps its out-of-setsparkleschip as the living example.ce-icon--<name>anddata-iconoutput are unchanged in shape.Tests
TestIconSidecarPartialDrift(static, never skips): sidecar options set == partial glyph-name set,nameis a select with ≥16 options.TestIconSetInProduction(real Hugo build of the library site): every shipped name renders<svg … stroke="currentColor" viewBox="0 0 24 24">inside its span on the kitchen-sink page (which now shows all 24 icons inline in a text body),sparklesdegrades to an empty span, and every icon span is single-line so chips survive markdown splicing.go vet ./...,go test ./...(with hugo on PATH, so the real-build tests ran), and all 792 web tests. Glyph quality was reviewed visually from a rendered screenshot of the full set.scaffold/site/AGENTS.mdneeded no change: no schema vocabulary was added (selectis already documented) and the agentsdoc drift test passes.Closes #96
🤖 Generated with Claude Code
Landing review — verdict: PASS.
ci / build-and-testgreen (10m16s); relied on as the verification signal, not re-run.Closes #96present.selectalready documented; drift test green).main.partials/icon.htmlmatching the proposed name list;icon.nameis now aselectover exactly the shipped names; icons render at1em,stroke="currentColor",aria-hidden="true"; an unknown stored name degrades to an empty span viawith (index $icons .);ce-icon--<name>/data-iconoutput shape unchanged for fork compatibility.TestIconSidecarPartialDrift(static, never skips) pins sidecar↔partial agreement; the production render test ran under real Hugo in CI.No blockers found. Awaiting the maintainer's free-text go-ahead to merge.