如何设计自己的UI套件

如何设计自己的UI套件

作为一名前端开发攻城师,你经常需要为了制作一个网站而去制定一套统一风格的UI组件,或者说需要制作一套比较通用的UI套件。在任何时候我们需要使用的时候能够轻松的拿来就能使用。因此,在设计UI套件之初,我们需要制定简单的命名规则,或者有一定的规律,便于记忆,也便于他人方便使用。

UI套件中应该包含我们常用的一些UI组件,比如导航条,按钮,下拉菜单,分页条等。导航、分页、按钮是每个网站都必然会用到的,因此这几个东西也成为UI套件中必不可少的几个组件。在开始完成我们的UI套件之前,我们可能需要有一个UI套件设计图,根据审美标准来形成我们的UI套件所希望形成的最终模样。我们就能根据那样一份设计稿来逐步完善我们的UI套件。当然这样一个UI设计稿并非必须,如果你喜欢边写代码边设计也不会有什么问题(如果条件允许的话)。

接下来我们需要一个html页面来显示我们开发过程中的实现组件,这个hmtl页面只需要简单实现即可,如果你关注github上对于前端的最新动态的话,你可以直接使用HTML5 boilerplate来作为html模板。

 1 <!DOCTYPE html>
 2 <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
 3 <!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
 4 <!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
 5 <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
 6     <head>
 7         <meta charset="utf-8">
 8         <meta http-equiv="X-UA-Compatible" content="IE=edge">
 9         <title></title>
10         <meta name="description" content="">
11         <meta name="viewport" content="width=device-width, initial-scale=1">
12
13         <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
14
15         <link rel="stylesheet" href="css/normalize.css">
16         <link rel="stylesheet" href="css/main.css">
17         <!-- 在这里添加您自定义的css样式文件, kit.css -->
18         <link rel="stylesheet" type="text/css" href="css/kit.css">
19         <script src="js/vendor/modernizr-2.6.2.min.js"></script>
20     </head>
21 ... ...

在body中添加少量标签,以盛放我们需要实现的UI组件。

<body>
        <!--[if lt IE 7]>
            <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
        <![endif]-->

        <!-- Add your site or application content here -->
        <div id="content">
            <ul class="ui-main-menu">
                <li><a href="" class="current">first</a></li>
                <li><a href="">second</a></li>
                <li><a href="">third</a></li>
                <li><a href="">forth</a></li>
                <li><a href="">fifth</a></li>
            </ul>
        </div>
... ...

当然你最好先把整个页面布局先写好,以便这个html页面看起来能比较美观...,现在我们在页面中添加了主导航的布局代码,类名称根据该组件的用途命名为ui-main-menu。

打开我们的kit.css文件,来实现其代码:

 1 .ui-main-menu {
 2     padding: 0;
 3     list-style-type: none;
 4     overflow: hidden;
 5     border: 1px solid transparent;
 6     background: #1e5799; /* Old browsers */ /* FF3.6+ */
 7     background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
 8     background: -webkit-linear-gradient(top,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */ /* Opera 11.10+ */ /* IE10+ */
 9     background: -webkit-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
10     background: linear-gradient(to bottom,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
11     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=‘#1e5799‘, endColorstr=‘#7db9e8‘,GradientType=0 ); /* IE6-9 */
12
13 }
14
15 .ui-main-menu li {
16     float: left;
17 }
18
19 .ui-main-menu a {
20     display: block;
21     padding: 12px 22px 10px;
22     font-size: 14px;
23     line-height: 14px;
24     font-weight: bold;
25     text-decoration: none;
26     text-transform: uppercase;
27     opacity: .75;
28     -webkit-transition:all .3s ease-out;
29             transition:all .3s ease-out;
30 }
31
32 .ui-main-menu a:hover {
33     opacity: 1;
34     color: #fff;
35     background: #228dad; /* Old browsers */
36     background: -moz-linear-gradient(top,  #228dad 0%, #2989d8 49%, #2467bf 50%, #2691ef 51%, #86cdf9 100%); /* FF3.6+ */
37     background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#228dad), color-stop(49%,#2989d8), color-stop(50%,#2467bf), color-stop(51%,#2691ef), color-stop(100%,#86cdf9)); /* Chrome,Safari4+ */
38     background: -webkit-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* Chrome10+,Safari5.1+ */
39     background: -o-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* Opera 11.10+ */
40     background: -ms-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* IE10+ */
41     background: linear-gradient(to bottom,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* W3C */
42     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=‘#228dad‘, endColorstr=‘#86cdf9‘,GradientType=0 ); /* IE6-9 */
43
44 }

当你做到这里的时候,你老板走过来了,他希望网站能有一个换肤的功能,这个时候你会发现若是按照现在的代码来看的话,要想实现换肤就不得不重新写一套css。这样必定是相当费时费力的。一个解决方案便是将与主题相关的一些属性拆分出来写,例如color, background等。

所以我们上面的代码需要修改为:

 1 .ui-main-menu {
 2     padding: 0;
 3     list-style-type: none;
 4     overflow: hidden;
 5     border: 1px solid transparent;
 6
 7 }
 8
 9 .ui-main-menu li {
10     float: left;
11 }
12
13 .ui-main-menu a {
14     display: block;
15     padding: 12px 22px 10px;
16     font-size: 14px;
17     line-height: 14px;
18     font-weight: bold;
19     text-decoration: none;
20     text-transform: uppercase;
21     opacity: .75;
22     -webkit-transition:all .3s ease-out;
23             transition:all .3s ease-out;
24 }
25
26 .ui-main-menu a:hover {
27     opacity: 1;
28     color: #fff;
29
30 }
31
32
33 /* sky theme*/
34 .ui-sky .ui-main-menu{
35     background: #1e5799; /* Old browsers */ /* FF3.6+ */
36     background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(50%,#2989d8), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); /* Chrome,Safari4+ */
37     background: -webkit-linear-gradient(top,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10+,Safari5.1+ */ /* Opera 11.10+ */ /* IE10+ */
38     background: -webkit-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
39     background: linear-gradient(to bottom,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
40     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=‘#1e5799‘, endColorstr=‘#7db9e8‘,GradientType=0 ); /* IE6-9 */
41
42 }
43 .ui-sky .ui-main-menu a:hover{
44     background: #228dad; /* Old browsers */
45     background: -moz-linear-gradient(top,  #228dad 0%, #2989d8 49%, #2467bf 50%, #2691ef 51%, #86cdf9 100%); /* FF3.6+ */
46     background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#228dad), color-stop(49%,#2989d8), color-stop(50%,#2467bf), color-stop(51%,#2691ef), color-stop(100%,#86cdf9)); /* Chrome,Safari4+ */
47     background: -webkit-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* Chrome10+,Safari5.1+ */
48     background: -o-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* Opera 11.10+ */
49     background: -ms-linear-gradient(top,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* IE10+ */
50     background: linear-gradient(to bottom,  #228dad 0%,#2989d8 49%,#2467bf 50%,#2691ef 51%,#86cdf9 100%); /* W3C */
51     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=‘#228dad‘, endColorstr=‘#86cdf9‘,GradientType=0 ); /* IE6-9 */
52 }

在使用ui-sky主题的时候,只需要在html布局的根节点上添加该类名即可,若更换为其他主题也是类似的。这是一个简单的主导航UI组件的实现,其他的组件实现也是类似的,在制作其他组件的时候需要注意一点,就是在有可重用的地方,应该尽可能的重用代码,例如:

.ui-main-menu, .ui-pagination {
    padding: 0;
    list-style-type: none;
    overflow: hidden;
    border: 1px solid transparent;

}

.ui-main-menu li, .ui-pagination li {
    float: left;
}

.ui-main-menu a {
... ...

另外再次推荐一款比较实用的插件,autoprefixer可以帮助我们更轻松的写css代码,而无需老是去记忆各个浏览器版本的css前缀怎么写。

如何设计自己的UI套件

时间: 2024-08-05 19:19:12

如何设计自己的UI套件的相关文章

看大家android界面设计是拿Android Design UI Kit设计的,不直接在eclipse里设计,但是UI KIT怎么用呢

============问题描述============ Android 4.4 Design UI Kit (Nexus 4 version)打开十psd格式的,看网上说吧psd里面自己需要用到的东西保存为png格式,然后是要把png格式的图片当做android控件的背景使用? 其他类似的工具呢? ============解决方案1============ 一切不问是不是就问为什么的都是耍流氓,不知道你是怎么得出"android界面设计是拿Android Design UI Kit设计的,不直

QtQuick桌面应用开发指导 1)关于教程 2)原型和设计 3)实现UI和功能_A

Release1.0 http://qt-project.org/wiki/developer-guides Qt Quick Application Developer Guide for Desktop 这个教程的目的是让你熟悉使用QtQuick构建QML程序的最佳编程实践方法; 先决条件: 对QML有相当的理解, 相关阅读: <qtquick/qtquick-applicationdevelopers.html>; 本教程会涉及QML开发最佳实践的各个方面, 以及在典型的桌面环境下部署应

转:用品牌基因法做图标设计,高级UI设计师才会的手法!(升级篇)

转自:http://www.uisdc.com/brand-gene-icon-design-pro 图标设计如何具有品牌性?这可能是设计师工作中经常会遇到的问题. 但很多新人也许并不了解什么是品牌性,更不知道如何将品牌性融入到图标当中,不过没关系,看了这篇文章你就不会那么困惑了! 前一阵子写了一篇<用品牌基因法做图标设计,这是高级UI设计师才会的手法>,但只讲了一种提取视觉基因的方法,不够全面.菜心担心大家因为方法的不全面而导致设计效果过于死板,所以近期将整个品牌基因法的体系重新梳理了一遍,

u3d 设计技巧 之UI 避免Find

我们都知道了,Find ** ()函数是很消耗性能的,所以不被推荐使用: 对于大型的游戏,UI复杂,加上设计上的不合理等问题(parent-child层级问题),很多时候就会被紧张的工期打乱自己的想法. 像下面的例子: 要避免Find,那就使用GetComponent 来获取脚本.  脚本中就引用这想要的GameObject, 所以在差不多的层级上就要有这个脚本专门做这件事(不是必须的) 我们要得到一个下面的对象,就先得到 引用他的脚本所在的对象,然后在GetComponent 来获取脚本,最后

第十二章 设计用户界面 之 设计自适应的UI布局

1. 概述 随着手机和平板设备的日益普及,使得开发者不得不考虑MVC网站在移动设备上的展示. 本章内容包括:运行在多种设备上的程序(屏幕分辨率,CSS,HTML).设计手机端Web程序. 2. 主要内容 2.1 运行在多种设备上的程序(屏幕分辨率,CSS,HTML) 默认的MVC项目模板支持运行在全景视图中的桌面浏览器. 可以使用 @media 查询来为不同的分辨率开发样式. CSS3允许基于最大屏幕宽度来考虑设计. /* Landscape phone to portrait tablet u

Android实例-手机安全卫士(三)-设计主页面UI

一.目标. 主界面UI如图所示: 方面是一个功能列表提示框(采用TextView),下面是功能列表(采用GridView). 二.代码实现. 1.在主界面布局文件(activity_home.xml)中增加组件.主界面布局文件(activity_home.xml)采用线性布局,上面一个TextView,根据UI设置相应属性:下面一个是GridView,通过android:numColumns属性设置该组件的列数,由于GridView还需要inflate单个布局文件,所以为其设置id. 主界面布局

UI产品设计流程中的14个要点

http://www.sj33.cn/digital/wyll/201404/38318.html 自从我在 Dribbble 上贴了一幅我的产品设计成果,受到了大家伙热烈的反馈,对此我深受鼓励,我决定写下这篇文章,用来记录我这两年里作为产品设计师,所学到的东西.说起来有点惭愧,这几年我一直都在使用同一套产品设计的流程,但是我觉得这套流程最适合我,对我来说是最理想的,所以就很少去更换.我的这套工作流程我觉得有 4 个地方可以和大家分享一下--前期工作.具体设计.后期工作以及一些提高效率的小细节

高通智能手环0.96寸TFT(160X80)UI显示套件

随着穿戴市场今年的快速发展,智能手环的产品类型.功能和品质等爆发式地提升和增强,而智能手环的UI界面作为产品体验最直观的部分,将带给消费者最直接的印象,故UI的品质对此类消费类产品相当重要.而今TFT彩屏方案逐渐成为行业趋势,色彩和性能的增加也为UI设计添增了更多的维度和发挥空间. 本UI套件(GTL-16080T096K16D)为高通科技最新开发的套件型产品,为一款专用型0.96寸TFT LCD,支持nrf52832系列蓝牙SOC芯片(蓝牙字库.彩屏字库),包含专业点阵字库.手环字库.手表字库

QT基础(一) ui类设计和使用

用designer设计的*.ui文件可以通过uic工具转换为*.h文件(在编译时也会自动生成这样一个ui_*.h文件),有了这个.h文件就可以直接按照纯C++的方式对其中的类进行调用.ui文件的使用就是利用默认工具uic自动产生一个类,然后用该类的setui函数加载界面到相应的对象上.       .ui文件的使用有三种形式:第一种是直接使用,第二种是定义一个新类,声明一个ui子对象,利用该对象来加载界面,第三种是将ui作为基类派生新的类. 借用一个例程分析如下: 工程及界面