Theme Customization: Button Example
This section demonstrates the customization options available for buttons within our darkTheme
.
Our aim is to provide a flexible design that can be easily integrated across different parts of your application,
ensuring consistency while offering room for customization.
Theme Properties Explaination
base
: Sets the foundational style for all buttons, including text color, padding, and border radius.disabled
: Defines styles for disabled buttons, including cursor changes and color adjustments.fullWidth
: Adjusts the button to span the full width of its container.group
: Customizes the appearance of buttons when they are grouped together.adornment
: Configures styles for icons used within buttons, with size adjustments for small, medium, and large buttons.sizes
: Offers predefined size options for buttons, affecting padding, font size, and line height.variants
: Allows for different button styles, such as filled, outlined, or text-only.colors
: Provides color schemes for buttons based on their intended use (e.g., primary, secondary, success, or any custom color).
import { PartialReablocksTheme, ButtonTheme } from 'reablocks';
const buttonTheme: ButtonTheme = {
base: 'bg-lime-600 text-gray-300',
sizes: {
small: 'p-2',
medium: 'p-3',
large: 'p-4'
},
colors: {
default: {
filled: 'bg-lime-600 hover:bg-lime-700',
outline: 'border-lime-600',
text: 'text-gray-300'
}
}
};
const customTheme: PartialReablocksTheme = {
components: {
button: buttonTheme,
// other components themes
}
};
Best Practices
- Use the
filled
variant for primary actions to draw attention. - Reserve the
outline
andtext
variants for secondary actions or less prominent interfaces. - Consider the context and background when choosing button colors to ensure sufficient contrast and accessibility.