Styled Components

The OrganiCSS Styled Components package provides a collection of TypeScript-ready functions to
support writing progressively-enhanced logical CSS with
Styled Components. The mixins will generate logical CSS properties
first, with fallbacks to catch when not supported.
🤖 Installation
To use OrganiCSS Styled Components, first install the package into a Styled Components project.
npm i @organicss/styled-components
yarn add @organicss/styled-components
🚀 Getting Started
Get started using OrganiCSS Styled Components by importing a mixin and calling it from inside of a
Styled Components style block.
import { Margin, Padding } from '@organicss/styled-components';
const Container = styled.section`
${Margin({ inline: 'auto' })};
${Padding({ block: 'var(--custom-property-value)' })};
// ...any addition styles
`;
Using with CSS Custom Properties
import { Margin } from '@organicss/styled-components';
const Container = styled.section`
${Margin({ block: 'var(--space-lg)', inline: 'calc(var(--space-lg) * 2)' })};
`;
Using with Styled Components Props
import { Margin } from '@organicss/styled-components';
return <Container $margin="var(--space-lg)">...</Container>;
const Container = styled.section`
${({ $margin }) => Margin({ all: $margin })};
`;
📖 Documentation
Border
import { Border } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
border |
string | 0 |
border |
borderColor |
string |
border-color |
borderStyle |
See MDN Docs |
border-style |
borderWidth |
string | 0 |
border-width |
block |
string | 0 |
border-block-start/end (border-top/bottom) |
blockColor |
string |
border-block-start/end-color (border-top/bottom-color) |
blockStyle |
See MDN Docs |
border-block-start/end-style (border-top/bottom-style) |
blockWidth |
string | 0 |
border-block-start/end-width (border-top/bottom-width) |
blockEnd |
string | 0 |
border-block-end (border-bottom) |
blockEndColor |
string |
border-block-end-color (border-bottom-color) |
blockEndStyle |
See MDN Docs |
border-block-end-style (border-bottom-style) |
blockEndWidth |
string | 0 |
border-block-end-width (border-bottom-width) |
blockStart |
string | 0 |
border-block-start (border-top) |
blockStartColor |
string |
border-block-start-color (border-top-color) |
blockStartStyle |
See MDN Docs |
border-block-start-style (border-top-style) |
blockStartWidth |
string | 0 |
border-block-start-width (border-top-width) |
inline |
string | 0 |
border-inline-start/end (border-left/right) |
inlineColor |
string |
border-inline-start/end-color (border-left/right-color) |
inlineStyle |
See MDN Docs |
border-inline-start/end-style (border-left/right-style) |
inlineWidth |
string | 0 |
border-inline-start/end-width (border-left/right-width) |
inlineEnd |
string | 0 |
border-inline-end (border-right) |
inlineEndColor |
string |
border-inline-end-color (border-right-color) |
inlineEndStyle |
See MDN Docs |
border-inline-end-style (border-right-style) |
inlineEndWidth |
string | 0 |
border-inline-end-width (border-right-width) |
inlineStart |
string | 0 |
border-inline-start (border-left) |
inlineStartColor |
string |
border-inline-start-color (border-left-color) |
inlineStartStyle |
See MDN Docs |
border-inline-start-style (border-left-style) |
inlineStartWidth |
string | 0 |
border-inline-start-width (border-left-width) |
Border Radius
import { BorderRadius } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
bottomLeft |
string | 0 |
border-end-start-radius (border-bottom-left-radius) |
bottomRight |
string | 0 |
border-end-end-radius (border-bottom-right-radius) |
radius |
string | 0 |
border-radius |
topLeft |
string | 0 |
border-start-start-radius (border-top-left-radius) |
topRight |
string | 0 |
border-start-end-radius (border-top-right-radius) |
Layout
import { Layout } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
blockSize |
string | 0 |
block-size (height) |
captionSide |
See MDN Docs |
caption-side |
clear |
See MDN Docs |
clear |
maxBlockSize |
string | 0 |
max-block-size (max-height) |
minBlockSize |
string | 0 |
min-block-size (min-height) |
inlineSize |
string | 0 |
inline-size (width) |
maxInlineSize |
string | 0 |
max-inline-size (max-width) |
minInlineSize |
string | 0 |
min-inline-size (min-width) |
overflow |
See MDN Docs |
overflow |
overflowBlock |
See MDN Docs |
overflow-block (overflow-x) |
overflowInline |
See MDN Docs |
overflow-inline (overflow-y) |
overscrollBehavior |
See MDN Docs |
overscroll-behavior |
overscrollBehaviorBlock |
See MDN Docs |
overscroll-behavior-block (overscroll-behavior-x) |
overscrollBehaviorInline |
See MDN Docs |
overscroll-behavior-inline (overscroll-behavior-y) |
resize |
See MDN Docs |
resize |
textAlign |
See MDN Docs |
text-align |
textAlignLast |
See MDN Docs |
text-align-last |
Margin
import { Margin } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
block |
string | 0 |
margin-block-start/end (margin-bottom/top) |
blockEnd |
string | 0 |
margin-block-end (margin-bottom) |
blockStart |
string | 0 |
margin-block-start (margin-top) |
inline |
string | 0 |
margin-inline-start/end (margin-left/right) |
inlineEnd |
string | 0 |
margin-inline-end (margin-right) |
inlineStart |
string | 0 |
margin-inline-start (margin-left) |
margin |
string | 0 |
margin |
scroll |
See MDN Docs |
scroll-margin |
scrollBlock |
See MDN Docs |
scroll-margin-block-start/end (scroll-margin-top/bottom) |
scrollBlockEnd |
See MDN Docs |
scroll-margin-block-end (scroll-margin-bottom) |
scrollBlockStart |
See MDN Docs |
scroll-margin-block-start (scroll-margin-top) |
scrollInline |
See MDN Docs |
scroll-margin-inline-start/end (scroll-margin-left/right) |
scrollInlineEnd |
See MDN Docs |
scroll-margin-inline-end (scroll-margin-right) |
scrollInlineStart |
See MDN Docs |
scroll-margin-inline-start (scroll-margin-left) |
Padding
import { Padding } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
block |
string | 0 |
padding-block-start/end (padding-top/bottom) |
blockEnd |
string | 0 |
padding-block-end (padding-bottom) |
blockStart |
string | 0 |
padding-block-start (padding-top) |
inline |
string | 0 |
padding-inline-start/end (padding-left/right) |
inlineEnd |
string | 0 |
padding-inline-end (padding-right) |
inlineStart |
string | 0 |
padding-inline-start (padding-left) |
padding |
string | 0 |
padding |
scroll |
See MDN Docs |
scroll-padding |
scrollBlock |
See MDN Docs |
scroll-padding-block-start/end (scroll-padding-top/bottom) |
scrollBlockEnd |
See MDN Docs |
scroll-padding-block-end (scroll-padding-bottom) |
scrollBlockStart |
See MDN Docs |
scroll-padding-block-start (scroll-padding-top) |
scrollInline |
See MDN Docs |
scroll-padding-inline-start/end (scroll-padding-left/right) |
scrollInlineEnd |
See MDN Docs |
scroll-padding-inline-end (scroll-padding-right) |
scrollInlineStart |
See MDN Docs |
scroll-padding-inline-start (scroll-padding-left) |
Position
import { Position } from '@organicss/styled-components';
Prop |
Type |
CSS Property (Fallback) |
block |
See MDN Docs |
inset-block (top/bottom) |
blockEnd |
- |
inset-block-end (bottom) |
blockStart |
- |
inset-block-start (top) |
float |
See MDN Docs |
float |
inline |
See MDN Docs |
inset-inline (left/right) |
inlineEnd |
- |
inset-inline-end (right) |
inlineStart |
- |
inset-inline-start (left) |
inset |
See MDN Docs |
inset (top/right/bottom/left) |