移动端定制UI组件库

personal-ui

ui components for personal projects

使用场景

  • UI组件(eg:bootstrap)在PC端还是非常高效的,特别是针对ie系开发。其次PC端网速较快,不太关心组件的文件大小和性能,更多的是开发效率和更好的兼容性。

  • 移动端很难出现统一的UI组件。首先移动端非常关注性能和速度。其次每个公司的UI设计风格差别较大,很难统一。甚至许多公司内不同项目间的UI都没法统一设计规范。
    然后是移动端风格一般比较简洁,所以更适合参考好的UI组件库自己定制一套公司内部的UI组件库。

  • 本项目的想法就是提供一种定制UI组件库的思路。具体的实现细节,应该根据自己公司或者项目的设计规范去实现。

具体demo实现

  • input.less

//换算 1rem==100px
@input-color: #999;
@input-bgColor: #fff;

//size
@input-height: 0.6rem;
@input-fSize: 0.32rem;
@input-radius: 0.06rem;

/**
* bgColor:
* color:
*
*/
.input(@color:@input-color;@bgColor:@input-bgColor;) {
  //basic style
  width: 100%;
  position: relative;
  input {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
  }
  .iconfont {
    display: inline-block;
    position: absolute;
    height: 100%;
    text-align: center;
    top: 0;
    &.right {
      right: 0;
    }
  }
  //dynamic style
  color: @color;
  background-color: @bgColor;
  //size
  .input-size();
}

/**
* size函数主要
* height:
* font-size:
* radius:
*
*/
@input-height-l: 0.8rem;
@input-fSize-l: 0.34rem;
@input-radius-l: 0.08rem;
//small
@input-height-s: 0.48rem;
@input-fSize-s: 0.3rem;
@input-radius-s: 0.06rem;
.input-size(@height:@input-height;@fSize:@input-fSize;@radius:@input-radius;) {
  height: @height;
  line-height: @height;
  border-radius: @radius;
  input {
    padding-left: @height;
  }
  .iconfont {
    width: @height;
  }
}
//exports your module
.personal-input(){
  .input();
  &.input-l{
    .input-size(@input-height-l;@input-fSize-l;@input-radius-l;)
  }
  &.input-s{
    .input-size(@input-height-s;@input-fSize-s;@input-radius-s;)
  }
}

项目引用

  • common.less(项目自有的公共样式)


@import "../../less/common";//公共common样式
@import "../../less/core/mixins/mixins";//UI组件库函数

body {
  background-color: #EAEAEA;
}

.personal-header {
  .personal-header();
}

.personal-list {
  .personal-list();
  margin-bottom: 0.2rem;
}

.personal-ellipsis {
  .personal-ellipsis();
}

.personal-ellipsis3 {
  .personal-ellipsis(3);
}

.personal-input {
  .personal-input();
}

.personal-button {
  .personal-button();
}

.personal-checkbox {
  .personal-checkbox();
}

.personal-textarea {
  .personal-textarea();
}

.personal-switch {
  .personal-switch();
}

更多详情

  • 可以参考 persona-ui 的实现。

  • 后续会更新更多的开发实践开源代码库。同时更新导读文章,也欢迎大家提问和建议。

  • 觉得有点启发的望多多转发。随手赞一个也不错....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值