Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(blog): focus indicators #55

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

docs(blog): focus indicators #55

wants to merge 3 commits into from

Conversation

cooper-joe
Copy link
Member

This PR adds a blog post discussing the design of effective focus indicators. This post relates to dhis2/ui#908.

Feedback is very welcome.

docs(blog): formatting

chore: formatting
@Topener
Copy link
Contributor

Topener commented Feb 16, 2023

@cooper-joe hey! This one has been stuck for ages, is it still relevant enough?

@cooper-joe
Copy link
Member Author

Hi @Topener. Yeah, I think it's still an interesting look behind the curtain into a design decision for our library. We're still using the approach discussed in the conclusion here, so still relevant in that sense.
This was first draft, so I probably need to do a quick revision to get ready for publish. Any feedback you have is very welcome.

@Topener Topener self-requested a review February 23, 2023 14:28
Copy link
Contributor

@Topener Topener left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've requested some changes, overall the article seems fine, although most descriptive texts seem a bit on the short side, but I don't think that is too big of a problem. I've also restructured the conclusion a bit. Let me know what you think.

tags: [design, libraries, ui]
---

How can we design effective and flexible focus indicators for a component library?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're probably gonna need a longer intro here, so it also displays correct information in the blog post list/homepage. Maybe merge it with the section "What are focus indicators?"


## Focus indicators in DHIS2-ui

The DHIS2 component library, ui, offers prebuilt components for all kinds of DHIS2 applications. This helps internal and external teams build consistent user experiences.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe rewrite this as

Suggested change
The DHIS2 component library, ui, offers prebuilt components for all kinds of DHIS2 applications. This helps internal and external teams build consistent user experiences.
The [DHIS2 UI component library](https://ui.dhis2.nu) provides a collection of pre-built components that can be used in various types of DHIS2 applications. By utilizing these pre-built components, both internal and external teams can ensure a consistent user experience across different DHIS2 applications.```


The DHIS2 component library, ui, offers prebuilt components for all kinds of DHIS2 applications. This helps internal and external teams build consistent user experiences.

One of DHIS2-ui's guiding principles is to be flexible enough to handle all kinds of use cases. As much as possible, we don't want to limit the usefulness of the components. If a component utility is too narrow then it'll lead to more custom components and less consistency across the platform.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
One of DHIS2-ui's guiding principles is to be flexible enough to handle all kinds of use cases. As much as possible, we don't want to limit the usefulness of the components. If a component utility is too narrow then it'll lead to more custom components and less consistency across the platform.
One of the core guiding principles of the DHIS2 UI library is to maintain a high level of flexibility that can accommodate a wide range of use cases. Our goal is to avoid imposing unnecessary limits on the usefulness of the components. If a component's functionality is too narrowly defined, it could result in the need for more custom components, which can lead to a less consistent user experience across the platform.

- are effective, they do the job well, in a huge number of unknown use cases?
- are flexible enough to work across all kinds of components?

In this blog post, we'll review the advantages and disadvantages of some available approaches.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In this blog post, we'll review the advantages and disadvantages of some available approaches.
In this article, we'll look at the advantages and disadvantages of some available approaches.


**Self-containment**: The outline doesn't interact with anything outside of the component bounds. This reduces the chances of subpar experiences from unexpected visual clashes. This makes the focus indicator more reliable, an important trait.

Being self-contained, a component's focus indicator can tested too. We don't need to imagine all the interactions with other elements that would be impossible to test for.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Being self-contained, a component's focus indicator can tested too. We don't need to imagine all the interactions with other elements that would be impossible to test for.
Being self-contained, a component's focus indicator can be tested too. We don't need to imagine all the interactions with other elements that would be impossible to test for.


### Conclusion

As of writing, we've landed on the conclusion that **outlines inside the component** is the right approach for DHIS2-ui.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
As of writing, we've landed on the conclusion that **outlines inside the component** is the right approach for DHIS2-ui.
After careful consideration, we have decided that incorporating **outlines inside each component** is the best approach for DHIS2-ui. Although this approach has some issues, they are limited to the boundary of the component, making it easier to address at the scale of our library and its uses.


As of writing, we've landed on the conclusion that **outlines inside the component** is the right approach for DHIS2-ui.

The issues with this approach noted above are a concern, but the fact that an issue exists only within the boundary of a component makes it easier to deal with on the scale of our library and its usages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The issues with this approach noted above are a concern, but the fact that an issue exists only within the boundary of a component makes it easier to deal with on the scale of our library and its usages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants