Search code examples
reactjsfont-awesomereact-bootstrap

how to scale (large) font-awesome icons from the react-icons package


I am using the marvelouse react-icons package (http://gorangajic.github.io/react-icons/fa.html), specifically the font awesome package.

If this was not react, then I would just add an attribute to the tag, such as:

<i class="fa fa-camera-retro fa-5x"></i> 

However, if I add the fa-5x to the FaFolderOpen tag, it does not do anything. As you can see, I am using react-bootstrap, and placing the icon a button (should it be a block)?

I have to believe this has been asked before, but I did not find it via search.

Here is what it looks like, and I want it larger:

enter image description here

const React = require('react')
import { Form, FormControl, FormGroup, ControlLabel, Col, Button, Tooltip, OverlayTrigger } from 'react-bootstrap'
import FaFolderOpen from 'react-icons/lib/fa/folder-open'
import FaFileCodeO from 'react-icons/lib/fa/file-code-o'
import FaFolderOpen from 'react-icons/lib/fa/folder-open'
import FaFileCodeO from 'react-icons/lib/fa/file-code-o'

<Button type="button" bsStyle="success" block onClick={(e) => folderChooser(e)}>
     <FaFolderOpen />
</Button>

Solution

  • if you want a 5x icon size you need to pass it to the react class as size

    // Font awesome pixel sizes relative to the multiplier. 
    // 1x - 14px
    // 2x - 28px
    // 3x - 42px
    // 4x - 56px
    // 5x - 70px
    
    <FaFolderOpen size={70} />
    

    if you notice it jumps by 14 each time

    from the github readme it shows everything is overridden inline. its rendering a svg so you cant use 5x you have to use a pixel size

    Edit

    Coming back to this a few years later, with newer versions of FontAwesome/ReactIcons the recommended way to handle different sizings is with their icon provider that utilizes the React Context API. This requires React v16.3+

    import { IconContext } from "react-icons";
    
    <IconContext.Provider value={{ className: "shared-class", size: 70 }}>
      <>
        <FaFolder />
        <FaBeer />
      </>
    </IconContext.Provider>