浅析Web表单美化CSS框架Topcoat

Topcoat同样是一款简洁的Web表单构建应用,和Semantic UI、BootMetro等CSS框架不同的是,Topcoat主要用于构建美化的Web表单,包括提交按钮、输入框、单选框/复选框、滑动杆、搜索框等表单元素。



以蓝色按钮为例,相关代码如下:

HTML

    <button class="topcoat-button--large--cta" >Button</button>
    <button class="topcoat-button--large--cta" disabled>Button</button>
     
    CSS
     
    .topcoat-button--large--cta {
      font-size: 0.875rem;
      font-weight: 600;
      line-height: 1.688rem;
      padding: 0 0.875rem;
    }
     
    input[type="checkbox"] {
      position: absolute;
      overflow: hidden;
      padding: 0;
      border: 0;
      opacity: 0.001;
      z-index: 1;
      vertical-align: top;
      outline: none;
    }
     
    .checkbox {
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;
      position: relative;
      display: inline-block;
      vertical-align: top;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
     
    .checkbox__label {
      position: relative;
      display: inline-block;
      vertical-align: top;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
     
    .checkbox--disabled {
      opacity: 0.3;
      cursor: default;
      pointer-events: none;
    }
     
    .checkbox:before,
    .checkbox:after {
      content: '';
      position: absolute;
    }
     
    .checkbox:before {
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;
    }
     
    input[type="checkbox"] {
      position: absolute;
      overflow: hidden;
      padding: 0;
      border: 0;
      opacity: 0.001;
      z-index: 1;
      vertical-align: top;
      outline: none;
    }
     
    .checkbox,
    .topcoat-checkbox__checkmark {
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;
      position: relative;
      display: inline-block;
      vertical-align: top;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
     
    .checkbox__label,
    .topcoat-checkbox {
      position: relative;
      display: inline-block;
      vertical-align: top;
      cursor: default;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
     
    .checkbox--disabled,
    input[type="checkbox"]:disabled + .topcoat-checkbox__checkmark {
      opacity: 0.3;
      cursor: default;
      pointer-events: none;
    }
     
    .checkbox:before,
    .checkbox:after,
    .topcoat-checkbox__checkmark:before,
    .topcoat-checkbox__checkmark:after {
      content: '';
      position: absolute;
    }
     
    .checkbox:before,
    .topcoat-checkbox__checkmark:before {
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;

    }

Topcoat的特点

    小巧、简单、易用

    专注表单元素设计,每一个表单元素都非常精美

    支持移动化,网站建设让这些表单元素在移动端同样有着不错的效果

Topcoat相关组件实例

按钮


单选框/复选框

以单选框为例,相关代码如下:

    HTML
     
    <!-- NO LABEL -->
    <label class="topcoat-radio-button">
      <input type="radio" name="topcoat">
      <div class="topcoat-radio-button__checkmark"></div>
    </label>
    <br>
    <br>
    <!-- LEFT LABEL -->
    <label class="topcoat-radio-button">
      Left label
      <input type="radio" name="topcoat">
      <div class="topcoat-radio-button__checkmark"></div>
    </label>
    <br>
    <br>
    <!-- RIGHT LABEL -->
    <label class="topcoat-radio-button">
      <input type="radio" name="topcoat">
      <div class="topcoat-radio-button__checkmark"></div>
      Right label
    </label>
    <br>
    <br>
    <!-- DISABLED -->
    <label class="topcoat-radio-button">
      <input type="radio" name="topcoat" Disabled>
      <div class="topcoat-radio-button__checkmark"></div>
      Disabled
    </label>
     
    CSS:
     
    input[type="radio"] {
      height: 1.063rem;
      width: 1.063rem;
      margin-top: 0;
      margin-right: -1.063rem;
      margin-bottom: -1.063rem;
      margin-left: 0;
    }
     
    input[type="radio"]:checked + .topcoat-radio-button__checkmark:after {
      opacity: 1;
    }
     
    .topcoat-radio-button {
      color: #c6c8c8;
      line-height: 1.063rem;
    }
     
    .topcoat-radio-button__checkmark:before {
      width: 1.063rem;
      height: 1.063rem;
      background: #595b5b;
      border: 1px solid #333434;
      box-shadow: inset 0 1px #737373;
    }
     
    .topcoat-radio-button__checkmark {
      position: relative;
      width: 1.063rem;
      height: 1.063rem;
    }
     
    .topcoat-radio-button__checkmark:after {
      opacity: 0;
      width: 0.313rem;
      height: 0.313rem;
      background: #c6c8c8;
      border: 1px solid rgba(0,0,0,0.05);
      box-shadow: 0 1px rgba(255,255,255,0.1);
      -webkit-transform: none;
      -ms-transform: none;
      transform: none;
      top: 0.313rem;
      left: 0.313rem;
    }
     
    input[type="radio"]:focus + .topcoat-radio-button__checkmark:before {
      border: 1px solid #0036ff;
      box-shadow: inset 0 1px rgba(255,255,255,0.36), 0 0 0 2px #6fb5f1;
    }
     
    input[type="radio"]:active + .topcoat-radio-button__checkmark:before {
      border: 1px solid #333434;
      background-color: #3f4041;
      box-shadow: inset 0 1px rgba(0,0,0,0.05);
    }
     
    input[type="radio"]:disabled:active + .topcoat-radio-button__checkmark:before {
      border: 1px solid #333434;
      background: #595b5b;
      box-shadow: inset 0 1px #737373;
    }
     
    .range {
      padding: 0;
      margin: 0;
      font: inherit;
      color: inherit;
      background: transparent;
      border: none;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;
      vertical-align: top;
      outline: none;
      -webkit-appearance: none;
    }
     
    .range__thumb {
      cursor: pointer;
    }
     
    .range__thumb--webkit {
      cursor: pointer;
      -webkit-appearance: none;
    }
     
    .range:disabled {
      opacity: 0.3;
      cursor: default;
      pointer-events: none;
    }
     
    .range,
    .topcoat-range {
      padding: 0;
      margin: 0;
      font: inherit;
      color: inherit;
      background: transparent;
      border: none;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      background-clip: padding-box;
      vertical-align: top;
      outline: none;
      -webkit-appearance: none;
    }
     
    .range__thumb,
    .topcoat-range::-moz-range-thumb {
      cursor: pointer;
    }
     
    .range__thumb--webkit,
    .topcoat-range::-webkit-slider-thumb {
      cursor: pointer;
      -webkit-appearance: none;
    }
     
    .range:disabled,
    .topcoat-range:disabled {
      opacity: 0.3;
      cursor: default;
      pointer-events: none;
    }

更多关于Topcoat的组件,大家可以前往其官方网站进行学习。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值