阿里前端框架Alice是个不错的选择

BootStrap虽然用户群体广大,其整体风格尽管有不少skin可选,但以国情来看还是不好看。

阿里开源的前端框架,个人觉得还是很不错,Alice处处透着支付宝中界面风格的气息,电商感挺强。

以下内容摘自:http://aliceui.org/docs/rule.html

Alice 的样式模块组织方式追求扁平化的方式,分为三个层级:

  1. 基础框架(reset + iconfont + 栅格)
  2. 通用模块(符合 Alice 规范的样式模块)
  3. 页面样式(继承通用模块)

什么是模块化的样式

Alice 对于模块化样式的理解是任何模块在页面上都应该像一个盒模型,不和页面的其他元素互相影响。 完美的 Alice 模块应该是一个“口”字型结构。比如 box 模块:

ui-box 模块能够嵌到页面上任何一个位置,box 内部也能够嵌入别的模块(如图中的 ui-list 模块),它们之间不会互相影响。

怎样才能写出模块化的样式

一种简单的方式是使用 Alice 的类命名规范,当团队中都能采用这种方式书写样式,就能很好地避免样式冲突。 在模块化和命名上,以一个 Tab 模块为例,分解如下:

值得注意的是:

  • 模块名是必选的。

    名字要求是表意的,一眼就基本能看出模块是做什么的。

  • 模块内部的类名继承于上层的名称。

    比如:

    <div class="ui-box">
       <h3 class="ui-box-title"></h3>
       <p class="ui-box-conent"></p>
    </div>

    不要这样写,很容易造成命名上的冲突。

    <div class="ui-box">
       <h3 class="title"></h3>
       <p class="conent"></p>
    </div>
  • 在模块 DOM 结构的最外一层添加状态,而非给每一个内容添加状态。除非内容有独立的状态。

    比如,我们可以这样写:

    <div class="ui-box ui-box-hover">
       <h3 class="ui-box-title"></h3>
       <p class="ui-box-content"></p>
    </div>

    但不要这样写:

    <div class="ui-new">
       <h3 class="ui-box-title ui-box-title-hover"></h3>
       <p class="ui-box-content ui-box-content-hover"></p>
    </div>

充分考虑标签的语义化

语义化是什么?什么样的写法才是正确的。这里给一个建议,把你将要构建的页面当成一本书。 是段落的,你就用 P(aragraph);是标题的,就用 H(eader);是引用的,就用 Blockquote。 而不是简单的,块状的东西由块状元素包含,行内的元素用行内的标签包含。 这里有点要求就是, 去深入了解每个 HTML 标签的用法。

Alice 类命名规范

  • 模块名

    尽量让人看到名字就能知道是什么模块,比如 ui-tab, ui-nav 这样的命名。(反例:ui-shit) 用 HTML ENTRY 来引用,不要写空标签,应使用 HTML ENTRY 来替代,以达到语义化的要求。 HTML ENTRY 请参考这个文档:https://docs.google.com/Doc?docid=0AWiI12yCmwaoZGNiemJqOGpfMTVmaHZtOWNkeg

  • 模块整体状态 = 模块名 + 状态

    常用状态有:hover, current, selected, disabled, focus, blur, checked, success, error 等。通常你的命名应该看起来像 .ui-name-hover, .ui-name-error 这样。

  • 子模块 = 模块名 + 子模块名

    常用模块名有:cnt(content),hd(header),text(txt),img(images/pic),title,item,cell 等, 只要词义表达了组件要实现的功能或者要表现出来的的外观就可以了。

  • 子模块状态 = 模块名 + 子模块名 + 状态

    参照常用状态。

命名注意:

  • 模块嵌套:大模块可有子模块命名。

    拿支付宝某项目中的的 .ui-nav 为例,如果有多级,可以这样命名:

    ui-nav > ui-subnav(ui-nav的子类) > ui-list(嵌套进去的其他模块)

    <ul class="ui-nav">
        <li class="ui-nav-item">
            <a href="#">nav Triggle Link</a>
            <ul class="ui-subnav">
                <li class="ui-subnav-item">
                    <a href="#">subNav Triggle Link</a>
                        <ul class="ui-list">
  • 统一命名风格:

    比如你比较喜欢 ui-tip-container ,另外的一个相同作用的地方,就不要写 ui-message-cnt 了, 用 ui-tip-container ui-message-container 会是更好的选择。

命名规范的最后

说了这么多,其实简单就是一句话,用 - 来做命名空间上的区隔,最小化两个模块之间的命名冲突。

这种模块化的命名方式会很好地避免样式之间的冲突,特别推荐在团队中使用, 可以参考 boxnav 这些按照 Alice 命名规范实现的通用模块。

在 Alice 中,第一个 ui- 是作为通用模块的标识,你可以选取其他前缀来分类你的模块。

我们一共占用了两个前缀 ui-fn-,各业务线可以选取自己的前缀。

时间: 2024-10-05 05:21:23

阿里前端框架Alice是个不错的选择的相关文章

阿里前端推出的新的React框架Mirror

前几天看到寸志的知乎文章,关于阿里前端推出的Mirror框架,在这里记录一下. Mirror是基于React,React-router,Redux的一套前端框架,总的来说是对它们的封装和强化. 其中,Redux对状态管理的流程很清晰,但是就代码来说,存在不少重复劳动,而Mirror对其进行了简化. 以下是一个Todo的例子 import mirror, { actions } from 'mirrorx' let nextId = 0 mirror.model({ name: 'todos',

非常不错的前端框架Kendo-ui

近期公司在做重构,准备换前端框架由Extjs换kendo-ui,问什么要换框架呢?主要有以下几个原因: Extjs太重,偏向后端语言,前端写起来费劲 Extjs执行太慢(这是主要原因),因为Extjs的页面也是用js来生成,这必然会降低性能,影响页面的渲染速度 kendo-ui是一款非常不错的前端框架,你可以在这里看一些Demo. 这篇文章主要是说一下我对kendo-ui了解,希望通过此文能使你对kendo-ui有所认识,也是我开始重构项目前的学习. kendo-ui介绍: kendo-ui是一

一些不错的前端框架

Bootstrap.妹子UI.MUI http://www.25xt.com 第五款前端框架:拼图前端框架 FrozenUI – 专注于移动web的UI框架 第二款前端框架:UiKit   第三款移动APP H5前端框架:AUI 2.0  -靠谱的移动前端框架 第四款前端框架:ZUI – 开源HTML5跨屏框架  最新版本 1.5.0  http://www.cnblogs.com/linsanshu/p/5784321.html

阿里前端两年随想

阿里前端两年随想 其实按照我的情怀和尿性,文章的标题应该是 前端登堂入室宝典.前端成长就这三招 之类,奈何这是篇软文 ~ 看官先别急Command + W,尤其是和我经历类似 做着其它岗位的工作,却多少会接触一些前端 发现有些兴趣,但又不肯定这应该是自己未来 也会有些成就感,但似乎挫折和沮丧来的更多一些 我可以负责任的说,这是一篇有态度的软文 欲语泪先流 我希望做些有用的事情,甚至可以做个有用的人 才毕业工作的第一年我是满足的,学到了很多新知识,写的代码不但能work,还能真的跑在生产环境中 我

几种Css前端框架资料

目录:[ -] 1 Twitter Bootstrap 2 Foundation 3 960 Grid System 4 Skeleton 5 99lime HTML KickStart 6 Kube 7 Less Framework 8 Flaminwork 9 G5 Framework 10 Easy Framework 11 Blueprint 12 YAML 13 BlueTrip 14 YUI CSS 15 Elements 17 elastiCSS 18 Boilerplate 19

Web前端,HTML5开发,前端资源,前端网址,前端博客,前端框架整理 - 转

Web前端/H5开发,前端资源,前端网址,前端博客,前端框架整理 - 转 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS

2017年前端框架、类库、工具大比拼

相比于JavaScript开发人员的数量,目前JavaScript框架.类库和工具的数量似乎更多一些.截至2017年5月,GitHub上的快速搜索显示,有超过110万个JavaScript项目.npmjs.org有50万个可用的软件包,每月下载量近100亿次. 本文将会讨论目前最为流行的客户端JavaScript框架.类库和工具以及它们之间的基本差异.也许本文无法告诉你哪个是最好的,但是最适合自己项目的,就是最好的. 类库 类库是一个有组织的功能集合.典型的类库包括字符串处理.日期.HTML D

90网论坛推荐10大H5前端框架,建议好好学习一下

作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端框架,本来想拿15-20个框架来分享一 下,但在跟几个前辈讨教写文章的技巧时果断被无情的打击了,所以这里我还是低调的只拿出10个框架来个大锅乱炖来简单介绍,凑够字数也就全剧终了. 原本写这篇文章想围绕着 CSS 框架来的,但因为目前界内比较流行并遍地开花的主要还是 JS+CSS 模式的框架,并且自己靠着一点 JS 功 底,就想专门针对 CSS,所以最后来个大锅乱炖都大致聊聊.下面的框架也没有什么先

web前端框架

1. Bootstrap Boostrap绝对是目前最流行用得最广泛的一款框架.它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面.它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件. Bootstrap是用动态语言LESS写的,主要包括四部分的内容: 脚手架——全局样式,响应式的12列栅格布局系统.记住Bootstrap在默认情况下并不包括响应式布局的功能.因此,如果你的设计需要实现响应式布局,那么你需要手动开启这项功能.