Feat: Add Support for Styling Customization via part
Attribute
#100
+94
−31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces the ability to customize the appearance of key elements within the install dialogs (
install-dialog
) and buttons (button
) using thepart
attribute. This allows developers to style specific parts of the dialogs and buttons without altering the underlying template code.Note, I have intentionally limited styling to only specific elements. Based on the issues linked, most people only really want to customise some basic colours/shadows etc. More extensive styling ultimately defeats the point of this library, which is intended to feel native.
Key Features:
Customizable Dialogs and Buttons:
install-dialog
andbutton
components now support thepart
attribute, enabling custom styling through CSS.Modifiers:
apple
,chrome
,mobile
, anddesktop
can be applied to bothinstall-dialog
andbutton
.primary
,secondary
, andicon
, allowing further customization based on button type.Example Usage:
Developers can now easily target and style elements using the
::part()
CSS selector:Impact:
This feature gives developers greater flexibility in adapting the look and feel of install dialogs across different platforms (Apple, Chrome) and device types (mobile, desktop) while maintaining component integrity.
Resolves: