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

[DX][Components] Twig components case sensitivity / HTML syntax #2118

Open
smnandre opened this issue Sep 1, 2024 · 2 comments
Open

[DX][Components] Twig components case sensitivity / HTML syntax #2118

smnandre opened this issue Sep 1, 2024 · 2 comments
Labels

Comments

@smnandre
Copy link
Collaborator

smnandre commented Sep 1, 2024

TL;DR; ⏲️

  • Should we adopt a naming convention for component names in UX packages and documentation? If so, which one?
  • Should all component names be case-sensitive?

Context 🔠

While working on UX Map, @Kocal raised a question during the discussion:

Should it be <twig:ux:map /> or <twig:UX:Map />? (I noticed you used UX:Map in the twig.component tag). Or is it case-insensitive?

During the development and early stages of UX Icons, @kbond and I decided to switch from <twig:Ux:Icon /> to <twig:ux:icon /> both in the code and in the documentation.

This change felt more natural for typing and reading in the documentation. Additionally, since "<twig" is lowercase, "<twig:ux" seemed more consistent to me. As a result, we made it case-insensitive.

However, this is the only place where it works this way, as user-land component names are still case-sensitive.

Suggestions 🗳️

I’d like to gather feedback from the team and community on the following points:

Symfony UX Components

  • A0: Symfony UX component names (e.g., Map, Icon, and future ones) should be case-insensitive (in HTML syntax).
  • A1: Symfony UX components should adopt a consistent casing style in documentation, code blocks, and social media.
  • A2: Symfony UX components should use lowercase casing style in documentation, code blocks, and social media.

App/User-Land/Bundle Components

  • B0: Twig/Live Component names should be case-sensitive (as these names may be used in events, logs, etc.).
  • B1: [NEW] Twig/Live Component names should be unique in a case-insensitive form (preventing Acme:Foo and acMe:foo from being registered simultaneously).
  • B2: [NEW] We could (later) suggest the correct name when a user misspells it, or even automatically map it to the correct one.

.

I’m inclined to answer "yes" to all these points.

Let’s discuss them and hear from you if there are any concerns. :)

@smnandre
Copy link
Collaborator Author

smnandre commented Sep 2, 2024

cc @Kocal @kbond @WebMamba :)

@Kocal
Copy link
Collaborator

Kocal commented Sep 6, 2024

Hey Simon, thanks for opening the discussion! 🙏🏻

Symfony UX Components

Personally I prefer the form <twig:UX:Map> over <twig:ux:map>, I find it more visually distinctive between native HTML tags. I may be biased by Vue.js style guide for components naming, but I've always preferred to use PascalCase over kebab-case for components usage. For React, I didn't find anything but the AirBnb's styleguide for React, and they use PascalCase aswell.

For me:

  • A0: yes
  • A1: yes
  • A2: small no, as I prefer PascaleCase, but if everyone here prefer kebab case, let's go for kebab-case!

App/User-Land/Bundle Components

  • B0: yeah, why not
  • B1: yes!
  • B2: yes aswell

Thanks!

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

No branches or pull requests

3 participants