From ac29448ce2ed2a8813db29dfe2ba64b6cc4cbcb4 Mon Sep 17 00:00:00 2001 From: neverland <chenjiahan@buaa.edu.cn> Date: Tue, 27 Nov 2018 17:06:09 +0800 Subject: [PATCH] [Doc] classify icons (#2161) --- build/build-iconfont.js | 7 ++--- packages/icon/config/index.js | 28 +++++++++-------- packages/icon/demo/index.vue | 58 ++++++++++++++++++++--------------- 3 files changed, 50 insertions(+), 43 deletions(-) diff --git a/build/build-iconfont.js b/build/build-iconfont.js index ae9182276..db3d91173 100644 --- a/build/build-iconfont.js +++ b/build/build-iconfont.js @@ -33,7 +33,7 @@ const prevTTFs = glob.sync(path.join(iconDir, '*.ttf')); prevTTFs.forEach(ttf => fs.removeSync(ttf)); // rename svg -const icons = [].concat(config.glyphs, config.basic); +const icons = [...config.basic, ...config.outline, ...config.filled]; icons.forEach((icon, index) => { const src = path.join(svgDir, icon.src); if (fs.existsSync(src)) { @@ -66,10 +66,7 @@ gulp.task('ttf', () => { gulp.task('default', ['ttf'], () => { // generate icon-local.css - fs.writeFileSync( - path.join(iconDir, 'local.less'), - local(config.name, ttf) - ); + fs.writeFileSync(path.join(iconDir, 'local.less'), local(config.name, ttf)); // remove svg fs.removeSync(svgDir); diff --git a/packages/icon/config/index.js b/packages/icon/config/index.js index de946e5c8..b69ce6a3f 100644 --- a/packages/icon/config/index.js +++ b/packages/icon/config/index.js @@ -26,7 +26,7 @@ module.exports = { css: 'arrow-down' } ], - glyphs: [ + outline: [ { src: 'close.svg', css: 'close' @@ -91,6 +91,10 @@ module.exports = { src: '喜欢.svg', css: 'like-o' }, + { + src: 'star-o.svg', + css: 'star-o' + }, { src: '物流.svg', css: 'logistics' @@ -231,6 +235,12 @@ module.exports = { src: '搜索.svg', css: 'search' }, + { + src: '购物车3.svg', + css: 'cart-o' + } + ], + filled: [ { src: '加购.svg', css: 'add' @@ -259,6 +269,10 @@ module.exports = { src: '喜欢2.svg', css: 'like' }, + { + src: 'star.svg', + css: 'star' + }, { src: '拍照.svg', css: 'photograph' @@ -387,21 +401,9 @@ module.exports = { src: '热卖.svg', css: 'hot-sale' }, - { - src: '购物车3.svg', - css: 'cart-o' - }, { src: 'question2.svg', css: 'question2' - }, - { - src: 'star.svg', - css: 'star' - }, - { - src: 'star-o.svg', - css: 'star-o' } ] }; diff --git a/packages/icon/demo/index.vue b/packages/icon/demo/index.vue index 4bac4fcbe..647ae8951 100644 --- a/packages/icon/demo/index.vue +++ b/packages/icon/demo/index.vue @@ -24,28 +24,23 @@ </van-col> </demo-block> - <demo-block :title="$t('basic')"> - <van-col - v-for="icon in basic" - :key="icon" - span="8" - class="demo-col-with-text" - > - <van-icon :name="icon" /> - <span>{{ icon }}</span> - </van-col> - </demo-block> - <demo-block :title="$t('title')"> - <van-col - v-for="icon in icons" - :key="icon" - span="8" - class="demo-col-with-text" - > - <van-icon :name="icon" /> - <span>{{ icon }}</span> - </van-col> + <van-tabs v-model="tab"> + <van-tab title="基础图标" /> + <van-tab title="线框风格" /> + <van-tab title="实底风格" /> + </van-tabs> + <div class="demo-icon-list"> + <van-col + v-for="icon in list" + :key="icon" + span="8" + class="demo-col-with-text" + > + <van-icon :name="icon" /> + <span>{{ icon }}</span> + </van-col> + </div> </demo-block> </demo-section> </template> @@ -68,9 +63,16 @@ export default { }, data() { - this.basic = icons.basic.map(icon => icon.css); - this.icons = icons.glyphs.map(icon => icon.css); - return {}; + return { + tab: 0 + }; + }, + + computed: { + list() { + const key = ['basic', 'outline', 'filled'][this.tab]; + return icons[key].map(icon => icon.css); + } } }; </script> @@ -79,6 +81,12 @@ export default { .demo-icon { font-size: 0; + &-list { + padding-top: 10px; + box-sizing: border-box; + min-height: calc(100vh - 65px); + } + .van-col { float: none; text-align: center; @@ -94,7 +102,7 @@ export default { .van-icon { font-size: 32px; margin: 15px 0; - color: rgba(69, 90, 100, .8); + color: rgba(69, 90, 100, 0.8); } span {