@organicss/emotion
v1.1.0
Published
OrganiCSS - Emotion is a collection of mixins to write progressively-enhanced logical CSS.
Downloads
2
Maintainers
Readme
Emotion
The OrganiCSS Emotion package provides a collection of TypeScript-ready functions to support writing
progressively-enhanced logical CSS with Emotion. Built atop @emotion/css
,
the mixins will generate logical CSS properties first, with fallbacks to catch when not supported.
:robot: Installation
To use OrganiCSS Emotion, first install the package into a Emotion project.
npm i @organicss/emotion
yarn add @organicss/emotion
:rocket: Getting Started
Get started using OrganiCSS Emotion by importing a mixin and calling it from inside of a Emotion style block.
import { Margin, Padding } from '@organicss/emotion';
const styles = css`
${Margin({ inline: 'auto' })};
${Padding({ block: 'var(--custom-property-value)' })};
// ...any addition styles
`;
Using with CSS Custom Properties
import { Margin } from '@organicss/emotion';
const styles = css`
${Margin({ block: 'var(--space-lg)', inline: 'calc(var(--space-lg) * 2)' })};
`;
Using with Emotion Props
import { Margin } from '@organicss/emotion';
return <Container $margin="var(--space-lg)">...</Container>;
const styles = css`
${({ $margin }) => Margin({ all: $margin })};
`;
:book: Documentation
Border
import { Border } from '@organicss/emotion';
| 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/emotion';
| 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/emotion';
| 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/emotion';
| 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/emotion';
| 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/emotion';
| 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) |