Bulma是一个流行的开源CSS框架, 轻量而易用; 基于Flexbox的现代CSS框架, 具有响应式、模块化、可定制等诸多亮点, 而且语法简单, 轻量易用。本文档介绍了基本概念与特性, 创建页面布局, 组件如何工作, 如何设计具体的UI元素, 如何嵌入JavaScript, 如何与流行的前端框架React、Angular和Vue集成, 等等。
作为广受赞誉的开源杰作, 拥有丰富的组件和文档, 对初学者十分友好, 即便不会编写CSS, 也能轻松创建出美观的网页, 帮助前端开发者用更少的CSS代码实现更多功能!
两者都是优秀的CSS框架, 各自在不同的方面有不同的侧重点; 以下是根据Bulma作者自己对于两者异同的比较:
以下内容摘录于原作者对于Bulma开发过程的体会:
在2007年的一堂无障碍设计课上, 我偶然接触到了CSS。当时老师强调了编写页面时将内容和样式分离的必要性, 并教授了如何通过CSS来实现。这次相遇对我来说意义重大, 让我意识到只需编写简单的CSS代码, 就可以实现想要的界面效果, 不再需要使用Dreamweaver和复杂的表格布局方式。这次经历也影响了我的职业生涯, 最终我成为了一名Web开发者。
随后的十年里, 我学习了PHP、JavaScript、Ruby、Node等各种Web开发技能, 但CSS一直是我掌握得最深的一门技术, 也是我的立身之本。在这段时间里, CSS的许多新特性也得到了众多浏览器的支持和良好的发展。我可以使用阴影、圆角、自定义字体和渐变色等功能来实现视觉效果, 而不用再通过PNG图片进行模拟。尤其值得一提的是, 2015年底, CSS推出了一种新的布局模型Flexbox, 并且该功能迅速流行开来。
Flexbox革新了传统Web开发中使用的布局方式, 列的布局不再依赖CSS浮动、清除浮动技巧和复杂的标记结构来实现, 而是通过定义容器实现列布局自适应, 得到自己的栅格系统。这可以极大地简化HTML标记。当然, Flexbox还可以实现一些新的、强大的、令人耳目一新的东西, 极具潜力。
在发现Flexbox的时候, 我使用一个小型的Sass框架已有数月, 这是我自己开发和维护的CSS框架。我利用它开发了许多个人的和专业的CSS项目。CSS框架的主要目标是简化页面的布局, 而Flexbox正提供了这样的功能。Flexbox可以通过清晰、灵活的标记结构解决页面布局问题, 这使得它成为了一种近乎完美的布局解决方案。Bulma最初是我开发的一个CSS生成器, 以胶囊式代码作为模块组件, 但最后我决定抛弃这个想法, 转而将我的Sass框架和最近掌握的Flexbox知识结合起来, 编写出一个新的现代CSS框架, Bulma由此诞生。
作为开源社区的拥护者, 我将自己的CSS框架代码上传到了GitHub上, 并在各种技术论坛和社交网站上进行分享。我认为如果这个小框架解决了自己的问题, 那么也能帮助别人解决问题。虽然刚发布的时候未掀起波澜, 没有获得太多关注, 但不久便风靡开来, 成为了GitHub上的热门项目, 并登上了Hacker News和Product Hunt的首页, 还在Twitter上被分享了数百次。这让我意识到该项目不仅有趣, 还很实用。但我依然谨慎:也许Bulma的流行只是昙花一现, 而事实是它得到了越来越多的关注。
经过两年的发展, Bulma在GitHub上已经得到了24 000多颗星, 下载和安装次数超过100万。150位开发者参与贡献并解决了860个问题, 合并了300多个代码请求。这段历程也展现了开源社区如何将一个小型CSS项目转变成Web开发的重要资源。考虑到Bulma催生出了众多华丽的网站, 推动了众多企业的蓬勃发展, 我相信Bulma一定会持续成长并得到广泛应用。
在此过程中我收获良多, 包括新的CSS功能特性知识和更优雅的编程技巧。很多用户表达了对Bulma的热爱, 称赞它简单易用, 但对 我来说, 最大的收获是能帮助成千上万的开发者更惬意地遨游Web世界。