nuke-icon
Version:
图标
97 lines (87 loc) • 2.36 kB
Markdown
# Icon Demos
- order: 1
通过注入主题尺寸,修改 Icon 的尺寸
---
```js
<NukePlayGround>
<StyleProvider style={smallerIcons}>
<MultiRow dataSource={ICONS['v2']} rows={3} renderRow={this.renderGridCellV2} />
</StyleProvider>
<NukePlayGround>
```
---
````js
/** @jsx createElement */
import {createElement, Component,render } from 'rax';
import View from 'nuke-view';
import Text from 'nuke-text';
import Icon from 'nuke-icon';
import { MultiRow } from 'nuke-layout';
import Page from 'nuke-page';
import { StyleProvider } from 'nuke-theme-provider';
const ICONS = {
v2:["like","live","lock","mail","manage","message"]
}
let smallerIcons = {
Core:{
[`icon-m`]: 20,
},
};
let largerIcons = {
Core:{
[`icon-m`]: 70,
},
};
let App = class NukeDemoIndex extends Component {
constructor() {
super();
}
renderGridCellV2 = (item,index) => {
return <View style={styles.iconCell}>
<Icon version="v2" style={[styles.icon]} name={item} />
<Text style={styles.iconShowCode}>{item}</Text>
</View>
}
render() {
return (
<Page title="Icon">
<Page.Intro main="变小"></Page.Intro>
<View style={styles.lineWithMargin}>
<StyleProvider style={smallerIcons}>
<MultiRow dataSource={ICONS['v2']} rows={3} renderRow={this.renderGridCellV2} />
</StyleProvider>
</View>
<Page.Intro main="变大"></Page.Intro>
<View style={styles.lineWithMargin}>
<StyleProvider style={largerIcons}>
<MultiRow dataSource={ICONS['v2']} rows={3} renderRow={this.renderGridCellV2} />
</StyleProvider>
</View>
</Page>
);
}
}
const styles={
icon:{
marginBottom:20,
},
iconCell:{
justifyContent:'center',
height:'180rem',
alignItems:'center',
borderWidth:'1rem',
borderColor:'#eeeeee',
borderStyle:'solid',
},
lineWithMargin:{
marginLeft:'40rem',
marginRight:'40rem',
backgroundColor:'#ffffff'
},
iconShowCode:{
fontSize: 24,
color:'#999999',
}
}
render(<App/>);
````