Skip to content

Feature Proposal: className can be an array of class names strings #20050

@kareemsalah227

Description

@kareemsalah227

Description

The current className prop on any JSX element takes only a string, that is supposed to be the class name to add to the corresponding element. This prop expects a string which makes it very easy to attach a single class name to the element.

For example:

<div className="my-css-class-name"></div>

Problem

The limitation I ran into while using className, is when I wanted to attach a couple classes to the same element, I naturally tried to do something like this:

<div className={"my-css-class-name", "my-other-css-class-name"}></div>

But unfortunately it didn't work, I then realized that it's not possible with the current JSX specification.

The proposed solution in the FAQ link I shared above suggests manually attaching the strings and add a space, or use another package called "Classnames".

Feature Proposal

I as a react user, expected naturally that I could provide multiple classes with JSX, so I think it can be useful for other developers, if the prop className can take an array of strings (classes) and does a simple Array.join(" ") in this case. So that developers won't have to join them manually or use the other package "Classnames". I believe this could be beneficial for the simple use case, and also for a more advanced use case like mine (using Material UI's makeStyles).

I would appreciate your thoughts on this suggestion. Furthermore, if discussion concludes that you agree to adopt such change, I would be more than happy to contribute it, as by chance I was looking at the beginner-friendly issues for contributors a couple days ago and couldn't find something (they're all assigned).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions