Tables Example# Use the striped
, bordered
and hover
props to customise the table.
import Table from 'react-bootstrap/Table' ;
function BasicExample ( ) {
return (
< Table striped bordered hover >
< thead >
< tr >
< th > # </ th >
< th > First Name </ th >
< th > Last Name </ th >
< th > Username </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Mark </ td >
< td > Otto </ td >
< td > @mdo </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Jacob </ td >
< td > Thornton </ td >
< td > @fat </ td >
</ tr >
< tr >
< td > 3 </ td >
< td colSpan = { 2 } > Larry the Bird </ td >
< td > @twitter </ td >
</ tr >
</ tbody >
</ Table >
) ;
}
export default BasicExample ;
Copy
Small Table# Use size="sm"
to make tables compact by cutting cell padding in half.
import Table from 'react-bootstrap/Table' ;
function SmallExample ( ) {
return (
< Table striped bordered hover size = " sm " >
< thead >
< tr >
< th > # </ th >
< th > First Name </ th >
< th > Last Name </ th >
< th > Username </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Mark </ td >
< td > Otto </ td >
< td > @mdo </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Jacob </ td >
< td > Thornton </ td >
< td > @fat </ td >
</ tr >
< tr >
< td > 3 </ td >
< td colSpan = { 2 } > Larry the Bird </ td >
< td > @twitter </ td >
</ tr >
</ tbody >
</ Table >
) ;
}
export default SmallExample ;
Copy
Dark Table# Use variant="dark"
to invert the colors of the table and get light text
on a dark background.
import Table from 'react-bootstrap/Table' ;
function DarkExample ( ) {
return (
< Table striped bordered hover variant = " dark " >
< thead >
< tr >
< th > # </ th >
< th > First Name </ th >
< th > Last Name </ th >
< th > Username </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Mark </ td >
< td > Otto </ td >
< td > @mdo </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Jacob </ td >
< td > Thornton </ td >
< td > @fat </ td >
</ tr >
< tr >
< td > 3 </ td >
< td colSpan = { 2 } > Larry the Bird </ td >
< td > @twitter </ td >
</ tr >
</ tbody >
</ Table >
) ;
}
export default DarkExample ;
Copy
Striped rows# Use striped
to add zebra-striping to any table row within the table.
import Table from 'react-bootstrap/Table' ;
function StripedRowExample ( ) {
return (
< Table striped >
< thead >
< tr >
< th > # </ th >
< th > First Name </ th >
< th > Last Name </ th >
< th > Username </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Mark </ td >
< td > Otto </ td >
< td > @mdo </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Jacob </ td >
< td > Thornton </ td >
< td > @fat </ td >
</ tr >
< tr >
< td > 3 </ td >
< td colSpan = { 2 } > Larry the Bird </ td >
< td > @twitter </ td >
</ tr >
</ tbody >
</ Table >
) ;
}
export default StripedRowExample ;
Copy
Striped columns# Use striped="columns"
to add zebra-striping to any table column.
import Table from 'react-bootstrap/Table' ;
function StripedColumnsExample ( ) {
return (
< Table striped = " columns " >
< thead >
< tr >
< th > # </ th >
< th > First Name </ th >
< th > Last Name </ th >
< th > Username </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Mark </ td >
< td > Otto </ td >
< td > @mdo </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Jacob </ td >
< td > Thornton </ td >
< td > @fat </ td >
</ tr >
< tr >
< td > 3 </ td >
< td colSpan = { 2 } > Larry the Bird </ td >
< td > @twitter </ td >
</ tr >
</ tbody >
</ Table >
) ;
}
export default StripedColumnsExample ;
Copy
Responsive# Responsive tables allow tables to be scrolled horizontally with ease.
Always Responsive# Across every breakpoint, use responsive
for horizontally scrolling tables.
Responsive tables are wrapped automatically in a div
. The following example
has 12 columns that are scrollable horizontally.
import Table from 'react-bootstrap/Table' ;
function ResponsiveExample ( ) {
return (
< Table responsive >
< thead >
< tr >
< th > # </ th >
{ Array . from ( { length : 12 } ) . map ( ( _ , index ) => (
< th key = { index } > Table heading </ th >
) ) }
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
{ Array . from ( { length : 12 } ) . map ( ( _ , index ) => (
< td key = { index } > Table cell { index } </ td >
) ) }
</ tr >
< tr >
< td > 2 </ td >
{ Array . from ( { length : 12 } ) . map ( ( _ , index ) => (
< td key = { index } > Table cell { index } </ td >
) ) }
</ tr >
< tr >
< td > 3 </ td >
{ Array . from ( { length : 12 } ) . map ( ( _ , index ) => (
< td key = { index } > Table cell { index } </ td >
) ) }
</ tr >
</ tbody >
</ Table >
) ;
}
export default ResponsiveExample ;
Copy
Breakpoint specific# Use responsive="sm"
, responsive="md"
, responsive="lg"
, or responsive="xl"
as needed to create responsive tables up to a particular breakpoint. From that
breakpoint and up, the table will behave normally and not scroll horizontally.
import Table from 'react-bootstrap/Table' ;
function ResponsiveBreakpointsExample ( ) {
return (
< div >
< Table responsive = " sm " >
< thead >
< tr >
< th > # </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 3 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
</ tbody >
</ Table >
< Table responsive = " md " >
< thead >
< tr >
< th > # </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 3 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
</ tbody >
</ Table >
< Table responsive = " lg " >
< thead >
< tr >
< th > # </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 3 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
</ tbody >
</ Table >
< Table responsive = " xl " >
< thead >
< tr >
< th > # </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
< th > Table heading </ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > 1 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 2 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
< tr >
< td > 3 </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
< td > Table cell </ td >
</ tr >
</ tbody >
</ Table >
</ div >
) ;
}
export default ResponsiveBreakpointsExample ;
Copy
API# import Table from 'react-bootstrap/Table'
Copy import code for the Table component Name Type Default Description bordered boolean
Adds borders on all sides of the table and cells.
borderless boolean
Removes all borders on the table and cells, including table header.
hover boolean
Enable a hover state on table rows within a <tbody>
.
responsive boolean | string
Responsive tables allow tables to be scrolled horizontally with ease.
Across every breakpoint, use responsive
for horizontally
scrolling tables. Responsive tables are wrapped automatically in a div
.
Use responsive="sm"
, responsive="md"
, responsive="lg"
, or
responsive="xl"
as needed to create responsive tables up to
a particular breakpoint. From that breakpoint and up, the table will
behave normally and not scroll horizontally.
size string
Make tables more compact by cutting cell padding in half by setting
size as sm
.
striped boolean | string
Adds zebra-striping to any table row within the <tbody>
.
Use columns
to add zebra-striping to any table column.
variant string
Invert the colors of the table — with light text on dark backgrounds
by setting variant as dark
.
bsPrefix string
'table'
Change the underlying component CSS base class name and modifier class names prefix. This is an escape hatch for working with heavily customized bootstrap css.