0.1.1-beta.24 • Published 1 year ago

@animus-ui/core v0.1.1-beta.24

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Animus

This is an experimental package for creating dynamic and typesafe style props.

Usage

Configure your props with a simple configuration object. The keys of your object become your prop names and their values describe their responsibilities and valid types.

import styled from '@emotion/styled';
import { create } from '@animus-ui/core';

const Container = styled.div(
  create({
    w: { property: 'width' },
    p: { property: 'padding', scale: 'spacing' },
  })
);

<Container w="100%" p={[16, 24]}>
  Contained!
</Container>;

Composition

You can compose props that you've created seperately to create new prop functions.

import { create } from '@animus-ui/core';

const spacing = create({
  m: { property: 'padding', scale: 'margin' },
  p: { property: 'padding', scale: 'spacing' },
});

const dimensions = create({
  w: { property: 'width' },
  h: { property: 'height' },
});

const combinedProps = compose(spacing, dimensions);

const Box = styled.div(combinedProps);

Static CSS

import styled from '@emotion/styled';
import { create } from '@animus-ui/core';

const css = createCss({
  m: { property: 'padding', scale: 'margin' },
  p: { property: 'padding', scale: 'spacing' },
});

const MyCoolThing = styled.div(
  css({
    width: '100%',
    height: '500px',
    p: [32, , 64],
  })
);

const variant = createVariant({
  m: { property: 'padding', scale: 'margin' },
  p: { property: 'padding', scale: 'spacing' },
});

const MyCoolThing = styled.div(
  variant({
    base: { width: '100%' },
    variants: {
      big: {
        height: '500px',
        p: [32, , 64],
      },
      small: {
        height: '250px',
        p: [16, , 32],
      },
    },
  })
);
0.1.1-beta.22

1 year ago

0.1.1-beta.23

1 year ago

0.1.1-beta.24

1 year ago

0.1.1-beta.21

2 years ago

0.1.1-f89c5446.4

2 years ago

0.1.1-beta.20

2 years ago

0.1.1-beta.19

2 years ago

0.1.1-0e28d25e.2

2 years ago

0.1.1-beta.18

2 years ago

0.1.1-284c9841.4

2 years ago

0.1.1-b4e7b64a.4

2 years ago

0.1.1-beta.17

2 years ago

0.1.1-a4ffa298.0

2 years ago

0.1.1-beta.16

2 years ago

0.1.1-104f7aa3.0

2 years ago

0.1.1-8d5bfb39.0

2 years ago

0.1.1-beta.15

2 years ago

0.1.1-134b3be1.0

2 years ago

0.1.1-6ebda0a2.5

2 years ago

0.1.1-beta.14

2 years ago

0.1.1-e4cdacd2.0

2 years ago

0.1.1-beta.13

2 years ago

0.1.1-4779abbd.0

2 years ago

0.1.1-beta.12

2 years ago

0.1.1-beta.11

2 years ago

0.1.1-5d228c62.0

2 years ago

0.1.1-beta.10

2 years ago

0.1.1-46f87090.0

2 years ago

0.1.1-beta.9

2 years ago

0.1.1-beta.8

2 years ago

0.1.1-b33b5064.0

2 years ago

0.1.1-beta.7

2 years ago

0.1.1-1fc0588a.0

2 years ago

0.1.1-fffe37d2.0

2 years ago

0.1.1-234e460d.0

2 years ago

0.1.1-361f65f4.0

2 years ago

0.1.1-530e1479.0

2 years ago

0.1.1-beta.6

2 years ago

0.1.1-cc2a9def.0

2 years ago

0.1.1-beta.5

2 years ago

0.1.1-beta.4

2 years ago

0.1.1-8e1553a3.2

2 years ago

0.1.1-beta.3

2 years ago

0.1.1-9a8f431f.0

2 years ago

0.1.1-beta.2

2 years ago

0.0.1-1c0271c5.0

2 years ago

0.0.1-49c5c19d.0

2 years ago

0.0.1-a191f114.0

2 years ago

0.0.1-69aaa5cd.0

2 years ago

0.0.1-fb698e5b.0

2 years ago

0.0.1-4da3a7b2.0

2 years ago

0.0.1-alpha.0

2 years ago