-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
UXImprove usability of an existing featureImprove usability of an existing featurequestionFurther information is requestedFurther information is requested
Description
The reasons I originally chose this design were:
- anything can be a
Modifier
(such as aString
,HtmlElement[IO]
, orSignal
) without requiring implicit conversions, that are discouraged in Scala 3 - typeclasses are more the Typelevel way
But there are some trade-offs:
- they require the shapeless magic to work, so when you get it wrong the compiler errors can be quite intimidating and confusing
- typeclasses are harder to understand, and take more boilerplate to implement your own instances. see also:
Make it easier to implement custom modifiers #203 - furthermore, they are harder to pass around. for example this is impossible
It is slightly mitigated by changes in:
def MyComponent(mods: Mod[HtmlElement]*) = div( cls := "decoration", mods )
Add modifier instance for tuple of modifiers #199
But still not so convenient.
Metadata
Metadata
Assignees
Labels
UXImprove usability of an existing featureImprove usability of an existing featurequestionFurther information is requestedFurther information is requested