Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to customise react-bootstrap components?

What is the best way to override css classes/customise react-bootstrap components? - (I have read the docs, and unless I am missing something, this isn't covered).

From what I have read, it seems like it's a choice between inline styles (radium) and css modules but which is better and why?

like image 378
AloeVeraForty Avatar asked Nov 22 '16 09:11

AloeVeraForty


People also ask

Can you style React Bootstrap components?

Styling is essential in every react project. We use both custom CSS and also use external libraries such as react bootstrap to style react components.

How do I customize Bootstrap in React?

To customize Bootstrap, create a file called src/custom. scss (or similar) and import the Bootstrap source stylesheet. Add any overrides before the imported file(s). You can reference Bootstrap's documentation for the names of the available variables.

Can you mix React and Bootstrap?

Bootstrap can be used directly on elements and components in your React app by applying the built-in classes as you would any other class.


2 Answers

I think the answer to this for most people (like me) is that one can add custom styles to react-bootstrap components using the style prop. E.g. for a default Button with blue text:

<Button bsStyle="default" style={style.blueButton}>Button Text</Button>

or

<Button bsStyle="default" style={{color:"blue"}}>Button Text</Button>
like image 26
Peter Evans Avatar answered Sep 21 '22 00:09

Peter Evans


I am not sure if this answers your question but Documentation clearly provide examples. For instance Button

Props

+--------+---------+--------+--------------------------------------------+
|  Name  |  Type   | Default| Description                                |
+--------+---------+--------+--------------------------------------------+
|bsClass |  string | 'btn'  | Base CSS class and prefix for the component|
+--------+---------+--------+--------------------------------------------+

This one could be modified to add custom CSS class to your Button component. Also component could be changed with setting componentClass.

<Button type="submit" onClick={this.submit}
 bsClass='custom-class'
>
</Button>

Where custom-class is CSS class that could

provide new, non-Bootstrap, CSS styles for a component.

Fiddle with example of how to use bsClass.

Inline styles:

According to bug filled, inline styles will not be supported officially.

you want to use the actual style prop. bsClass is for adjusting the way bootstrap css classes are applied to the components not inline styles

But issue states that:

You're free to use them if you want. We have no formal opinion.

NOTE Not all components provided by react-bootstrap allow class customization through bsClass, for example Breadcrumb

like image 175
wolendranh Avatar answered Sep 22 '22 00:09

wolendranh