Block
The Block
component is a helper component that lets you write these common less-reusable elements more succinctly inline.
One of the most common needs when building web apps is creating layout elements that have certain layout and typography styles.
For more traditional apps that use global stylesheets, many of the popular CSS frameworks have helper classes to quickly create styled elements (see Bootstrap, Tachyons).
The move to CSS-in-JS sort of eliminates these classes in favor of encapsulating styles within components. This is a generally a good thing because it promotes reusability, however the reality is that there are dozens or hundreds of different layout/spacing/typography combinations in any app, and there's not always a clear semantic meaning or potential for reuse. In practice you end up just defining and naming a bunch of things at the top of the file:
Responsive Layouts
Block component props accept either a single value or array of values. When an array is provided, it will create media queries for each item based on the theme breakpoint values.
By default, the breakpoint values are
breakpoints: {small: 320,medium: 600,large: 1280,}
Given a marginTop
value of ['10px', '20px', '30px', '40px']
Block
will create the css rules below:
@media screen and (min-width: 0px) {margin-top: 10px;}@media screen and (min-width: 320px) {margin-top: 20px;}@media screen and (min-width: 600px) {margin-top: 30px;}@media screen and (min-width: 1280px) {margin-top: 40px;}
Examples
API
Block API
children
import
react.Node
as
import
Modifies the base element used to render the block.
react.ElementType
overrides
object
Block { component: ?ComponentType<<T> & { children: Node }>, props: ?{} | ({}) => ?{}, style: ?{} | ({}) => ?{} }<<T>> | ComponentType<<T> & { children: Node }>*
color
<T> | Array<<T>><string>
Accepts all themeable color properties (primary200
, etc.).
<T> | Array<<T>>string
backgroundAttachment
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-attachment
<T> | Array<<T>>string
backgroundClip
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip
<T> | Array<<T>>string
backgroundColor
<T> | Array<<T>><string>
Accepts all themeable color properties (primary200
, etc.).
<T> | Array<<T>>string
backgroundImage
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-image
<T> | Array<<T>>string
backgroundOrigin
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-origin
<T> | Array<<T>>string
backgroundPosition
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-position
<T> | Array<<T>>string
backgroundRepeat
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat
<T> | Array<<T>>string
backgroundSize
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/background-size
<T> | Array<<T>>string
font
union
Accepts all themeable font properties (font200
, etc.).
One of string, Arraystring
alignContent
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
<T> | Array<<T>>One of "center", "start", "end", "flex-start", "flex-end", "normal", "baseline", "first baseline", "last baseline", "space-between", "space-around", "space-evenly", "stretch", "safe center", "unsafe center", "inherit", "initial", "unset"
alignItems
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
<T> | Array<<T>>One of "normal", "stretch", "center", "start", "end", "flex-start", "flex-end", "self-start", "self-end", "baseline", "first baseline", "last baseline", "safe center", "unsafe center", "inherit", "initial", "unset"
alignSelf
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/align-self
<T> | Array<<T>>One of "auto", "normal", "center", "start", "end", "self-start", "self-end", "flex-start", "flex-end", "baseline", "first baseline", "last baseline", "stretch", "safe center", "unsafe center", "inherit", "initial", "unset"
flexDirection
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction
<T> | Array<<T>>One of "row", "row-reverse", "column", "column-reverse", "inherit", "initial", "unset"
display
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/display
<T> | Array<<T>>One of "block", "inline", "run-in", "flow", "flow-root", "table", "flex", "grid", "ruby", "block flow", "inline table", "flex run-in", "list-item", "list-item block", "list-item inline", "list-item flow", "list-item flow-root", "list-item block flow", "list-item block flow-root", "flow list-item block", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-cell", "table-column-group", "table-column", "table-caption", "ruby-base", "ruby-text", "ruby-base-container", "ruby-text-container", "contents", "none", "inline-block", "inline-table", "inline-flex", "inline-grid", "inherit", "initial", "unset"
flex
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/flex
<T> | Array<<T>>One of number, string
grid
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid
<T> | Array<<T>>string
gridArea
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area
<T> | Array<<T>>string
gridAutoColumns
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns
<T> | Array<<T>>string
gridAutoFlow
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
<T> | Array<<T>>One of "row", "column", "dense", "row dense", "column dense", "inherit", "initial", "unset"
gridAutoRows
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows
<T> | Array<<T>>string
gridColumn
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
<T> | Array<<T>>string
gridColumnEnd
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end
<T> | Array<<T>>string
gridColumnGap
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-gap
<T> | Array<<T>>One of 0, string
gridColumnStart
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start
<T> | Array<<T>>string
gridGap
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap
<T> | Array<<T>>One of 0, string
gridRow
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row
<T> | Array<<T>>string
gridRowEnd
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end
<T> | Array<<T>>string
gridRowGap
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-gap
<T> | Array<<T>>One of 0, string
gridRowStart
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start
<T> | Array<<T>>string
gridTemplate
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template
<T> | Array<<T>>string
gridTemplateAreas
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas
<T> | Array<<T>>string
gridTemplateColumns
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
<T> | Array<<T>>string
gridTemplateRows
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
<T> | Array<<T>>string
justifyContent
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
<T> | Array<<T>>One of "center", "start", "end", "flex-start", "flex-end", "left", "right", "space-between", "space-around", "space-evenly", "stretch", "safe center", "unsafe center", "inherit", "initial", "unset"
justifyItems
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items
<T> | Array<<T>>One of "auto", "normal", "stretch", "center", "start", "end", "flex-start", "flex-end", "self-start", "self-end", "left", "right", "baseline", "first baseline", "last baseline", "safe center", "unsafe center", "legacy right", "legacy left", "legacy center", "inherit", "initial", "unset"
justifySelf
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self
<T> | Array<<T>>One of "auto", "normal", "stretch", "center", "start", "end", "flex-start", "flex-end", "self-start", "self-end", "left", "right", "baseline", "first baseline", "last baseline", "safe center", "unsafe center", "inherit", "initial", "unset"
position
<T> | Array<<T>><union>
<T> | Array<<T>>One of "static", "absolute", "relative", "fixed", "sticky"
width
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
minWidth
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
maxWidth
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
height
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
minHeight
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
maxHeight
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
overflow
<T> | Array<<T>><union>
<T> | Array<<T>>One of "visible", "hidden", "scroll", "scrollX", "scrollY", "auto", "inherit", "initial", "unset"
margin
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
marginTop
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
marginRight
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
marginBottom
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
marginLeft
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
padding
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
paddingTop
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
paddingRight
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
paddingBottom
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
paddingLeft
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
placeContent
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-content
<T> | Array<<T>>string
placeItems
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-items
<T> | Array<<T>>string
placeSelf
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/place-self
<T> | Array<<T>>string
flexWrap
<T> | Array<<T>><boolean>
<T> | Array<<T>>boolean
left
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
top
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
right
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
bottom
<T> | Array<<T>><union>
<T> | Array<<T>>One of 0, string
textOverflow
<T> | Array<<T>><string>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow
<T> | Array<<T>>string
whiteSpace
<T> | Array<<T>><union>
available values: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
<T> | Array<<T>>One of "normal", "nowrap", "pre", "pre-wrap", "pre-line", "break-spaces", "inherit", "initial", "unset"