Implement `VerticalList` widget
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 5.5k
- Forks
- 240
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 4
Description
Currently, people who want to create a new container widget look at the Flex widget for inspiration. That implementation is fairly complex, and not a great introduction for newcomers.
We should implement a container widget with a little code as possible. This widget would display its children vertically with a fixed amount of free space between them. It would have no customization parameters aside from that spacing constant. Its implementation would serve as a guide for people implementing custom widgets.
There should be non-doc comments in other widget files pointing newcomers to the VerticalList implementation.
To make sure the implementation doesn't bit-rot, we should:
- Include unit tests and screenshot tests.
- Use VerticalList in at least one example (probably to_do_list).
- Have a vertical list element is Xilem as well.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing Flex widget and nearby widget implementations to understand the minimal container structure. Then inspect existing unit tests, screenshot tests, and the to_do_list example for patterns to follow. Done means VerticalList renders children vertically with fixed spacing, has Xilem support, is used in an example, includes both test types, and has newcomer pointers in other widget files.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop-dev, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100