1.0.0-beta.62 • Published 5 years ago

@rax-ui/styles v1.0.0-beta.62

Weekly downloads
59
License
-
Repository
-
Last release
5 years ago

display: Styles

family: util

Styles

UI 样式规范, 用于定义样式,提供样式覆盖和主题功能;

安装

npm install @rax-ui/styles --save

快速上手

定义组件样式, 采用 CSS BEM 规范.

// style.js
export default (theme) => {
  return {
    'hello': {
      fontSize: 50,
      color: theme.Hello.color,
    },
    'hello--primary': {
      color:  theme.Hello.primaryColor,
    }
  }
}

组件中使用

// hello.js
import { createElement } from 'rax';
import Text from 'rax-text';
import { useStyles } from '@rax-ui/styles';
import StyleProvider from './style';

const Hello = ({ primary = false, style, ...others }) => {

  const styles = useStyles(StyleProvider, others, (classNames) => {
    return {
      hello: classNames({
        'hello': true,
        'hello--primary': primary,
      })
    }
  });
  return <Text style={{
    ...styles.hello,
    style
  }}>Hello world</Text>;
}

覆盖组件样式

import Hello from './hello';

const customStyles = {
  'hello': {
    fontSize: 18,
    color: 'yellow'
  },
  'hello--primary': {
    color: 'blue'
  }
};

<Hello styles={customStyles} />

使用主题

import Hello from 'hello';
import ThemeProvider from '@rax-ui/styles';

const theme = {
  Hello: {
    color: '#333',
    primaryColor: 'red'
  }
};

const App = () => {
  return (
    <ThemeProvider theme={theme}>
      <Hello />
    </ThemeProvider>
  );
}

API

ThemeProvider

全局注入主题,<ThemeProvider theme={} />

useStyles(styleProvider, props, flatStyle)

  • styleProvider 为之前提供的样式函数。
  • props 组件接收的属性, { styles }, styles 为组件上接收的样式
  • flatStyle 拼接组件样式函数,会传入一个 classNames

useTheme()

返回 ThemeProvider 配置的主题对象

1.0.0-beta.62

5 years ago

1.0.0-beta.60

5 years ago

1.0.0-beta.59

5 years ago

1.0.0-beta.57

5 years ago

1.0.0-beta.56

5 years ago

1.0.0-beta.55

5 years ago

1.0.0-beta.54

5 years ago

1.0.0-beta.53

5 years ago

1.0.0-beta.52

5 years ago

1.0.0-beta.51

5 years ago

1.0.0-beta.50

5 years ago

1.0.0-beta.48

5 years ago

1.0.0-beta.49

5 years ago

1.0.0-beta.47

5 years ago

1.0.0-beta.46

5 years ago

1.0.0-beta.45

5 years ago

1.0.0-beta.43

5 years ago

1.0.0-beta.42

5 years ago

1.0.0-beta.41

5 years ago

1.0.0-beta.40

5 years ago

1.0.0-beta.39

5 years ago

1.0.0-beta.38

5 years ago

1.0.0-beta.37

5 years ago

1.0.0-beta.36

5 years ago

1.0.0-beta.35

5 years ago

1.0.0-beta.32

5 years ago

1.0.0-beta.30

5 years ago

1.0.0-beta.29

5 years ago

1.0.0-beta.28

5 years ago

1.0.0-beta.27

5 years ago

1.0.0-beta.26

5 years ago

1.0.0-beta.23

5 years ago

1.0.0-beta.22

6 years ago

1.0.0-beta.20

6 years ago

1.0.0-beta.21

6 years ago

1.0.0-beta.18

6 years ago

1.0.0-beta.17

6 years ago

1.0.0-beta.16

6 years ago

1.0.0-beta.15

6 years ago

1.0.0-beta.14

6 years ago

1.0.0-beta.13

6 years ago

1.0.0-beta.11

6 years ago

1.0.0-beta.10

6 years ago

1.0.0-beta.9

6 years ago

1.0.0-beta.6

6 years ago

1.0.0-beta.5

6 years ago

1.0.0-beta.4

6 years ago

1.0.0-beta.3

6 years ago

1.0.0-beta.2

6 years ago

1.0.0-beta.1

6 years ago

1.0.0-beta.0

6 years ago