22. 6. Ease of Style
Customization
● No hard-coded values for height
and colors
● Easy to change font-size
● BEM like flat selectors for style
overriding
● Exposing CSS variables for
common elements
● No pre-specified margins
23. 7. Minimum and Viable Styling for state
● Default
● Error
● Focus and blur state
● Disabled state
● Read-only state
If nothing else, do this.
25. 8. Focus and Blur event
● Most fundamental need that it
can get.
● If nothing else, do this.
● Trick: Use for
non-focusable elements.
26. 9. Emit what you accept
Rule is Simple. If a component accepts a string, then it should
emit a string on change. If component accepts a date object,
then it should emit a date object. However, if component
accepts a date as as string, then do not emit value of date as a
Date object on change.
29. 11. Use @input and @change events
Input event is fired repeatedly while Change event is fired less often than
input event. Input event matters to auto-complete whereas Change event
may matter more for multi-select.
30. 12. Do not emit @input event from the value watcher
Read this as: Do never fire @input event on
changing the value programmatically.