Skip to content

Build UI components once, render to any platform: web, React Native and Sketch.

Notifications You must be signed in to change notification settings

elemental-design/elemental-react

Repository files navigation

Elemental React

Build UI components once, render to any platform using react-primitives. This library abstracts away common UI patterns for you.

npm npm

Abstraction for app presentation to speed up cross-platform UI design and development with code using React/Sketch as a design function. This is an underlying cross-platform abstraction wrapper that allows you to build your own design language

Based off styled-system and styled-components. API is similar to rebass, but using React Native style components.

This is an alpha/preview release. Please test comprehensively before using in production.

Supported React Renderers:

  • react - React web
  • react-native - React Native (WIP)
  • react-sketchapp - React Sketch.app
  • more - Post an issue to suggest more! Ideally an API should exist that lets you override the primitives

Getting Started

npm install elemental-react
import React from 'react';
import {
  Box, Text, Button,
} from 'elemental-react';

// ...
return (
  <Box mt={3} bg="dark-blue">
    <Text color="white">
      Hello World
    </Text>
  </Box>
);

Example UI

Quick example of a design created by a coder (me 🙂), developed with live rendering to react-sketchapp: Example Blog UI

Related Reading

Design Properties

Line

Themed colour (primary)

  • Weight
  • Color
  • Texture
  • Style

Shape

Foundational element.

  • Depth
    • Light, shadow and depth (illusion)

Texture

Physical quality of a surface.

Balance

Equal distribution of visual weight – spacing.

  • Symmetry (each side is the same)
  • Asymmetry – evenly distribute weight
  • Rule of thirds – grid divided into thirds

Color

Properties

  • Hue
  • Saturation
    • Monochromatic
  • Value

Analagous Colour Scheme