feat(styleguide): the element card becomes the shared item row, plus the search field #355
No reviewers
Labels
No labels
bug
enhancement
needs-triage
ready-for-agent
ready-for-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle!355
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/346"
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?
Closes #346
What changes
docs/styleguide/components.cssgains two shared pieces:.item,__grip(optional; the grid uses:has(> .item__grip)so a module entry can drop it),__icon,__main,__head,__label,__mark(the eye-off),__id,__summary,__digest(with-count,-sep,-row,-more),__acts. Modifiers:--disabled,--inherited,--cut,--dragging,--dense. The geometry and order are the card's; every colour is a token..search): an.inputwith a leading icon.docs/styleguide/styleguide.html:check-contrast.pynames the disabled tile beside "Note bar warn"; it is the same pair, so no new token was needed.web/src:.ecard*→.item*, renamed rather than aliased (__uid→__id,__actions→__acts,__disabled→__mark). This coversElementCard.tsx, four other components, ten test files andstyles.css.grep -rn ecard web/srcfinds nothing.styles.cssdraws the shared rules value for value. Editor-only extras sit after them: lock marker, thumbnails,--opens,--outdated,__extra, and the drag-time hide.styles.csshas no styleguide tokens yet (brief E1 is still pending). So its:rootgains the five names fromtokens.cssthat the rules need, with the same values:--color-bg,--color-surface,--color-surface-sunken,--tone-warn-bg,--tone-warn-strong. E1 deletes them along with the rest of that block.web/src/test/itemRow.test.tsparses both stylesheets. It asserts:@media (hover: none)rule reveals.item__acts(jsdom can't evaluate media queries, so the CSS rule is what's tested);opacityonly for the actions' reveal or a disabled state;Changes made on the way in
--tone-warn-bg/--tone-warn-strong), the eye-off mark and the Disabled badge. The 72% opacity is gone..55) and dragging (.35) also dimmed with opacity, and the styleguide's rule allows opacity only for disabled controls. Both are now a dashed edge on the sunken ground. The cut card keeps its "Cut" badge, so the state is still in words.#uid) is muted, not faint, because faint is for icons only.@media (hover: none).Left as is
.item__digest-row--disabledstill uses opacity. Its selector names a disabled state, and brief E3 covers dimmed text..item__lockand.item--outdatedkeep their amber primitives until E1. The test lists them as known exceptions..ecard--densedid before.Docs and skills
README.md,scaffold/site/AGENTS.mdand the skills are untouched.Verification
npx vitest run: 133 files / 3382 tests pass.npx tsc --noEmit -p .: OK.npm run build: OK.python3 docs/styleguide/check-contrast.py: 47 pairs, 0 failing.go test ./docs/ ./internal/server/ ./cmd/harness/: OK.🤖 Generated with Claude Code
[autoland] verdict: pass
PASS. Signal: ci / build-and-test success (vite build, vitest, go vet, go test ./... incl. docs contrast + route/command drift tests); tsc --noEmit run locally (CI does not type-check): OK. Conventions: Conventional Commits title, Closes #346, scope matches the issue (the types.ts comment edit is needed for the 'grep -r ecard web/src finds nothing' acceptance, since 'sidecardir' contains 'ecard'). The 18px grip column now comes from :has(> .item__grip); ElementCard always renders the grip, so the geometry is the same. The five tokens added to styles.css were unused before and match tokens.css. Removing the cut and dragging dims goes beyond the issue's text, but the 'opacity only in disabled rules' acceptance requires it, and the PR says so.