地铁4号线为期6年。 Metro UI CSS的简要历史

这个故事可以追溯到2012年,当时Windows 8迈出了广阔的一步,此操作系统起始页的平铺界面给我留下了深刻的印象,我决定在HTML,CSS和JavaScript中进行同样的操作。



然后就没有想到要创建一个组件库,只是一个样式集和它们的应用程序,并在浏览器中创建一个漂亮而有效的库。 走开了。 最初只有瓷砖(瓷砖),然后它们获得了各种效果,然后这还不够。 在Internet上(开个玩笑,在Microsoft网站上),找到了Windows 8 UI的Microsoft开发人员指南。 在了解了一些有关Microsoft工程师的创造之后,决定开始缓慢制作满足个人需要的组件库,而无需做广告和兴奋。


好,正如他们所说,据说-完成了。 该项目的代号为Metro UI CSS


顺便说一句, 第一个版本没有获得数字1,但仍以0.95保留在故事中,它具有基本样式和十几个组件。



来自俄罗斯的Sergey Volkov和来自瑞士的Valerio Battaglia参与了该项目。 立即,我要非常感谢他们在该项目中所做的工作。


尽管没有在任何地方做广告该项目,但社区仍然注意到它。 该项目页面的访问者数量迅速达到每天2,000位主机的数量,并且星星开始在该项目的GitHub页面上慢慢积累。


一段时间后,该项目被Microsoft Bizspark计划的管理者注意到,并很快以BizSpark计划的参与者的身份获得了相应的地位,我们所有从事该项目的人都以软件许可证的形式从Microsoft获得了包子。


不久之后,该项目还获得了JetBrain的支持(该公司积极支持开源),其出色的IDE PhpStorm获得了许可。


2013年6月,决定停止使用0.95版并开始开发2.0版。 到那时,已经积累了一些经验,逐渐意识到所做的事情是错误的,需要改进的地方,以及已完全删除的地方。 整个TODO如此庞大,以至于没有必要对0.95版进行更正和添加,但是从头开始开发更为方便。


这样就开始其生命的2.0版


开发2.0版时,考虑了0.95版中的错误和不正确的决策。 优化了基本样式,并将组件集扩展了3倍,达到30件,并增加了通过data-role元素的HTML属性使用声明性方法初始化组件的功能。



社区的积极反馈表明,这是正确的步骤-放弃继续开发0.95的工作,而使用全新的Metro UI CSS 2.0。


不幸的是,在2.0版本的开发之初,由于某种原因,与Sergey和Valerio的交流丢失了,并且该项目由一个人进一步编写。 这是一项困难但非常有趣的工作。 总的来说,我注意到,如果您的作品使某人受益,它就会为作者带来如此丰厚的利润,您无法以金钱来购买,并且从中获得的感觉具有他们自己无法比拟的心理色彩。


2.0版历时2年。 随着一切的发展,该项目在思想和代码方面都得以发展。 在2015年8月,我们了解到该项目需要进行一些更改并进行彻底更改,以使使用该库执行任务的人员受益。


版本3.0的主要决定之一是决定进一步远离组件的功能初始化,并使其尽可能声明性,并使没有JavaScript编程经验的人(例如SEO专家)能够制作页面并保持这些页面的交互性。


2.0版中声明式方法的主要缺点是它仅适用于预构建的组件。 如果组件是通过Ajax加载到页面上或由JavaScript代码创建的,则初始化它的唯一方法是调用相应的函数。



在2015年8月,我开始研究Metro UI CSS的第三版


就像我在上面说的,主要任务是以声明式的方式完成所有工作。 并且如果是更早的版本,为了初始化使用Ajax加载或使用JavaScript创建并附加到DOM的组件,则有必要通过调用必要的组件初始化函数来编写适当的JavaScript代码,然后在第3版中决定对此进行修复,此外,浏览器已经开始支持为此所需的技术(观察者)。


在第三个版本中,极大地优化了基本样式的代码,编写了一种机制来初始化组件并跟踪组件在页面上的外观,并随后进行自动初始化。 扩展了组件集及其功能,重写了组件代码以支持初始化和跟踪功能。 随着图书馆用户的大量积极反馈,创新已经到位。



在2018年4月,再次审查Metro UI CSS的源代码以及在Metro 3上编写的网站,我得出的结论是,有太多HTML代码要写给程序员,因此您需要做一些事情。


因此,即使所有额外的HTML包装代码以及当时的许多组件都在它们上面都包装了HTML元素,以确保其可操作性(不是程序员编写的,但库可以处理),所以做出了这样的决定。 另一个问题是,Metro 3没有跟踪组件关键属性值的变化,而更改这些变化必然导致组件行为发生变化。 这两个因素促使我撰写《地铁4》。



筹备工作花了三个月的时间,在此期间,公司制定了重组Metro 3的计划,确定需要什么以及如何做。 8月,我开始研究第4版,到那时,即使名称已经从Metro UI CSS更改为Metro4。更改名称也不只是完成。 该库尽管保留了前三个版本中的外观基础,但不再仅仅是Windows 8元素的样式化。它已经变得更多。 一切都从头开始重写。 组件的数量已经增加了2倍,达到70多个,并且还在继续增加,现在它已成为一种自给自足的产品,不再需要许多第三方组件和库(jQuery Core除外,这是主要且唯一的依赖项)。


那么Metro 4有什么特别之处,而其他库(例如Bootstrap)则没有? 实际上,我什至无法比较! 这是我的个人愿景,这是我已经建立多年的世界。 如果您对Bootstrap或其他一些库完全满意,则可以继续使用它们,但是如果您想在这一生中尝试更多新的东西(谦虚地走!),欢迎来到Metro 4的世界。


该项目的主要特点:


  • 一组基本样式-Metro 4包含用于更改html元素外观的各种样式。
  • 具有声明式使用样式的70多个组件可用于解决几乎所有任务。
  • 工具-各种内置功能和类将提高您的生产率。
  • 带有500多个图标的图标字体。
  • Builder( https://builder.metroui.org.ua )-使用收集器,您可以组装自己的Metro 4组件集,源代码可在Github上获得。
  • 沙盒( https://sandbox.org.ua )-它自己的沙盒,不仅用于测试Metro 4的功能。 顺便说一下,沙箱是由Metro 4编写的,由Metro 4编写,其源代码可在GitHub上获得。
  • 快速响应检测到的错误并消除错误。 每周的星期日都会发布一个新版本,而在一周之内,GitHub上将提供Developer Branch,其中已经实现了当前的修复程序和扩展。
  • Metro 4库的所有元素的详细说明( https://metroui.org.ua )。
  • 论坛-在Metro 4论坛上从社区获得更多帮助。
  • Metro 4是用于使用HTML,CSS和JS开发的开源工具包。 使用Metro 4,您甚至可以在不了解JavaScript的情况下,快速而又无额外成本地创建页面和功能齐全的网站的原型。
  • Metro 4目前拥有MIT许可证,对于非营利性开源项目将始终免费。

特别感谢,我想说:


  • 感谢我的朋友Alexander Zadorozhny,在项目的第一阶段获得了财政支持
  • 感谢我的朋友和老板亚历山大·奥尔山斯基(Alexander Olshansky)的支持以及对该项目的大量原创想法

资源资源


Source: https://habr.com/ru/post/zh-CN431152/


All Articles