[Infra] Consistency in directive/component selectors
See original GitHub issueBug, feature request, or proposal:
I’m not sure what it’s. Maybe a proposal?
What is the expected behavior?
Maybe explain why some selectors are camelCase and others not?
What is the current behavior?
Currently there are kebab-case selectors, such as: md-button
, md-icon-button
and selectors in camelCase: mdInput
, mdPrefix
, mdSuffix
.
I’m just wondering about the standard here. Why not make everything kebab-case or camelCase? Is there any reason behind the scenes?
Still about consistency, currently we use the native input (for inputs type text, number, etc.), native textarea and native button with their respective directives, but… for inputs type radio, checkbox, “slide-toggle” and also for select, option, etc, we have to use a, let’s call it, non-native way. Have you ever considered allowing us to use the native elements for them also?
As an example, for radio, we could have something like:
<div md-radio-group>
<label><input type="radio" name="rad" value="0" md-ratio-button>0</label>
<label><input type="radio" name="rad" value="1" md-ratio-button>1</label>
</div>
Issue Analytics
- State:
- Created 6 years ago
- Reactions:1
- Comments:6 (4 by maintainers)
Top GitHub Comments
In my humble opinion, I think everything should be consistent regardless if it’s a component or a directive. Otherwise, it would be very confusing.
For consistency as a developer using the angular material framework, why does it matter if it is a component or a directive? That’s an implementation detail most user’s won’t care about. Isn’t what matters when you are writing html code is weather or not it is an element or an attribute?
<button md-button [mdMenuTriggerFor]="optionMenu">Menu</button> <md-menu #optionMenu="mdMenu"> <button md-menu-item (click)="option1()">Option 1</button> <button md-menu-item (click)="option2()">Option 2</button> </md-menu>
It feels like md-button should be mdButton, and md-menu-item should be mdMenuItem.
Also, md-list-item is a component with selector
'md-list-item, mat-list-item, a[md-list-item], a[mat-list-item]'
. Wouldn’t this fit into the developer mindset better as:'md-list-item, mat-list-item, a[mdListItem], a[matListItem]'
?