Theme Customization
Customizing @brinkninja/widgets theme
To personalize the design of the widget, simply head over to the Brink Widget Studio for an interactive theme customization experience.
Theme customization example
The theme prop attribute enables customization of the widget theme's mode, colors, shape, and slot properties.
import { RecurringSwapWidget } from '@brinkninja/widgets'
<RecurringSwapWidget
apiKey="apiKey"
appName="appName"
theme={{
mode: 'dark',
shape: {
roundedBtn: '100px',
roundedBox: '20px',
roundedFormField: '12px'
},
slot: { tabsInContainer: false },
colors: {
primary: {
'100': 'rgb(233, 239, 244)',
'200': 'rgb(211, 224, 234)',
'300': 'rgb(189, 209, 223)',
'400': '#236896',
'500': 'rgb(31, 93, 135)',
'600': 'rgb(28, 83, 120)',
'700': 'rgb(24, 72, 105)',
main: '#236896'
},
secondary: {
'100': 'rgb(242, 248, 244)',
'200': 'rgb(230, 242, 233)',
'300': 'rgb(218, 236, 222)',
'400': '#85c294',
'500': 'rgb(119, 174, 133)',
'600': 'rgb(106, 155, 118)',
'700': 'rgb(93, 135, 103)',
main: '#85c294'
},
neutral: {
'100': 'rgb(246, 246, 246)',
'200': 'rgb(237, 237, 237)',
'300': 'rgb(228, 228, 228)',
'400': '#a5a5a5',
'500': 'rgb(148, 148, 148)',
'600': 'rgb(132, 132, 132)',
'700': 'rgb(115, 115, 115)',
main: '#a5a5a5'
},
informative: {
'100': 'rgb(231, 244, 245)',
'200': 'rgb(208, 234, 235)',
'300': 'rgb(185, 224, 226)',
'400': '#17989f',
'500': 'rgb(20, 136, 143)',
'600': 'rgb(18, 121, 127)',
'700': 'rgb(16, 106, 111)',
main: '#17989f'
},
error: {
'100': 'rgb(244, 231, 231)',
'200': 'rgb(233, 208, 208)',
'300': 'rgb(222, 185, 185)',
'400': '#921717',
'500': 'rgb(131, 20, 20)',
'600': 'rgb(116, 18, 18)',
'700': 'rgb(102, 16, 16)',
main: '#921717'
},
success: {
'100': 'rgb(236, 242, 232)',
'200': 'rgb(218, 229, 209)',
'300': 'rgb(200, 216, 187)',
'400': '#4a801d',
'500': 'rgb(66, 115, 26)',
'600': 'rgb(59, 102, 23)',
'700': 'rgb(51, 89, 20)',
main: '#4a801d'
},
warning: {
'100': 'rgb(247, 240, 231)',
'200': 'rgb(239, 225, 207)',
'300': 'rgb(231, 210, 183)',
'400': '#b16a11',
'500': 'rgb(159, 95, 15)',
'600': 'rgb(141, 84, 13)',
'700': 'rgb(123, 74, 11)',
main: '#b16a11'
},
text: {
primary: '#ffffff',
secondary: '#A5A5A5',
disabled: '#A5A5A5'
},
background: {
paper: '#222222',
base100: '#535353',
base200: '#393939',
base300: '#222222'
}
}
}}
/>
Styling via CSS
If theme customization is not enough, you can also style each Widget component via CSS.
Here is the list of available CSS selectors:
- {widget-type}=eg. recurring-swap or "other-widget-type-name"
Widget id selectors
-
Widget: brink-{widget-type}-widget
-
Widget container: brink-{widget-type}-widget-container
-
Widget swap container: brink-{widget-type}-form-container
-
Widget swap btn: brink-{widget-type}-swap-btn
-
Widget sell container: brink-{widget-type}-sell-container
-
Widget receive container: brink-{widget-type}-receive-container
-
Widget frequency container: brink-{widget-type}-frequency-container
-
Widget interval container: brink-{widget-type}-reoccurrence-container
-
Widget submit intent button: brink-{widget-type}-submit-intent-btn
-
Multistep container: brink-{widget-type}-multistep-container
-
Transactions container: brink-recurring-swap-transactions-container
-
Transactions pagination: brink-recurring-swap-transactions-pagination
-
Widget tabs: brink-recurring-swap-tabs
Widget class selectors
- Widget: .brink-widget
- Widget container: .brink-widget-container
- Widget swap container: .brink-swap-container
- Widget form container: .brink-widget-form-container
- Widget token-selector container: .brink-widget-token-selector-container
- Widget multistep container: .brink-widget-multistep-container
- Widget multifield container: .brink-multifield-container
- Widget submit btn: .brink-widget-submit-intent-btn
- Widget transactions container: .brink-transactions-container
- Widget tabs: .brink-widget-tabs, .brink-widget-tab, .brink-widget-tab--selected
Widget component class selectors
- .brink-header
- .brink-icon-button
- .brink-dropdown
- .brink-dropdown-button
- .brink-select
- .brink-interval
- .brink-swap-btn
- .brink-list
- .brink-list-item
- .brink-pagination
CSS customization example:
$white: #FFFFFF;
$black: #000000
$theme-bg: #FBD600;
#brink-recurring-swap-widget {
box-shadow: -8px 8px 0px $black;
background: $theme-bg;
padding: 12px;
width: 100%;
.brink-widget-form-container {
@media only screen and (min-width: 450px) {
min-width: 400px;
max-width: 400px;
}
}
.brink-multifield-container {
outline: 2px solid $black;
}
}
Updated 9 months ago