Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Authoring lane: targeting disclosure renders bare after Disclosure variant="plain"

Open
#1,013 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start with src/components/features/ResumeTargeting.tsx, then compare its mounts in src/Result.tsx and the authoring branch of src/App.tsx. Trace the variant through TargetingSection.tsx and add coverage for each mount site's choice; done means the score-card row remains plain while the authoring-lane disclosure has visible chrome and inset.

Written by the indexing model from the issue text.

Description

bug ux:edit-export

Problem

The targeting disclosure ("Targeting & improvements") is TargetingSection in src/components/features/TargetingSection.tsx. It now always renders the shared Disclosure with variant="plain". That variant was added in #1010 (#680 item 8). It drops the disclosure's own border, background, rounding and horizontal inset, and relies on the surrounding surface to draw them. The inline justification says this section "lives inside the score card's own bordered details region now".

That is true on /. There, Result.tsx mounts ResumeTargeting → TargetingSection inside ParsedCard's bordered, padded Card.

It is not true in the from-scratch authoring lane. src/App.tsx, in the state.phase === "authoring" branch, mounts <ScoreDetails> → <ResumeTargeting> directly in a bare flex flex-col gap-4 div. The block comment there says so explicitly: "And no score Card around it: this lane never had one." ResumeTargeting.tsx is the single call site of TargetingSection, so both lanes get the same variant.

Result in the authoring lane
  • Before #1010: a bordered, card-backed disclosure row with a px-5 inset.
  • After #1010: bare summary text sits on the page background, flush with the container's left edge, with no border. It is the region's only child, so last:border-b-0 also removes the divider. The expanded body has no inset either.

It sits directly above the résumé Card, which still has its full chrome, so the two surfaces no longer match.

Proposed fix

Choose the variant at the mount site instead of hard-coding it in the leaf:

  • Add variant?: "card" | "plain" to ResumeTargeting, and forward it to TargetingSection → Disclosure. Default it to "card", matching Disclosure's own default.
  • In Result.tsx, pass variant="plain". That is the one mount that sits inside a bordered card.
  • Leave the authoring-lane mount in App.tsx on the default.

Or give the authoring lane a Card around its ScoreDetails to match /. That is a larger visual change, so it needs a product decision.

Acceptance criteria

  • On /, "Targeting & improvements" still renders as a plain row inside the score card (no regression to #680 item 8).
  • In the authoring lane, the targeting disclosure has visible chrome again (bordered card or equivalent) and is not bare text on the page background.
  • A test pins which variant each mount site uses.

Provenance: found reviewing #1010.

Dominant language
TypeScript
Stars
11
Forks
4
Avg merge
2d 17h
Merged PRs (30d)
40

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from offlinecv/OfflineCV

All issues in offlinecv/OfflineCV

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.