linebender / linebender/druid

Standardize control widget padding

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

Nobody has claimed this yet.

enhancement layout
Dominant language
Rust
Stars
9.7k
Forks
565
PR merge metrics
No merged PRs in 30d

Description

This is coming up as I look to implement baseline alignment for widgets; several widgets have internal padding that complicates getting them to line up as expected with other widgets. The `RadioGroup`, for instance, adds 5 units of padding around each item in the group; putting a `RadioGroup` in a column with another widget requires and getting it to look right involves going and reading the source to figure out the correct padding value.

I'd like to try and simplify this as much as possible; this will mean removing any magic internal padding values, and trying to rationalize the rest of the padding values we use into a few items in the `Env`. In particular I would like to have a single standard 'inter-widget-padding' value.

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.

Research direction

Start by locating the RadioGroup implementation and the Env definitions, then inspect how internal widget padding is currently assigned across the controls mentioned by the issue. The work is done when magic internal padding is removed or rationalized into shared Env values, including a single standard inter-widget-padding value, while preserving the intended baseline alignment.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.