草庐IT

开源设计系统 PatternFly 的五个优秀实践

Abigael Donahue 2023-09-09 原文

你是否曾欣赏过宝石的切面?这些角度和倾斜是一件美丽的事情。你可以看到多面宝石比平面宝石更亮。在分析一个多面体设计系统时,你也可能会看到这种美。设计系统是用于创建一致且统一的用户界面(UI)的准则、标准和资源的集合。就像钻石的各个切面一样,一个富含不同贡献和社区参与的开源设计系统最终会带来更好的产品体验。

​PatternFly​​ 项目是一个用于红帽产品的开源设计系统。但开源并没有以 PatternFly 的代码为终点。PatternFly 的背后是一群完全公开创作设计的人。从设计师和开发人员到研究人员和作家,我们作为一个开源社区共同努力。

我们的秘密?我们没有秘密 —— 我们在开放中工作,记得吗?然而,我们使用了这五个最佳实践。我将在这里分享它们,这样你也可以使用开源来支持你自己的设计系统。

1、集体贡献

我们有一个核心的 PatternFly 设计团队来设计、维护和发展设计系统。但我们鼓励并欢迎所有人的贡献。如果你对协作充满热情并且擅长用户体验(UX),​​PatternFly 希望收到你的反馈​​。

2、建立社区

在孤岛中创建的任何内容都无法进入 PatternFly。我们相信开放的设计更好。这就是我们将社区纳入所有更新、更改和添加的原因。我们收集来自设计和开发人员对贡献的反馈,以便每个人都对实施的内容有发言权。我们还寻求多个 ​​设计学科​​ 的人们的意见和协作。这样做是为了摆脱任何偏见或假设。这种开放的设计让我们的设计体系更加强大。它还加强了我们蓬勃发展的社区,该社区由参与 PatternFly 或为之做出贡献的人们组成(我们亲切地称他们为 “飞人”)。

3、在每个人中循环

如果你发现与他人集思广益的想法产生的解决方案比任何一个人梦寐以求的都要好,那么你已经像“飞人”一样思考了。我们定期举行设计会议,供贡献者在小组环境中展示他们的想法并讨论设计方法。这使我们能够保持我们的想法协作,并从各个角度考虑设计。此外,我们每月举办社区会议,以便我们可以与来自全球各地的“飞人”们联系并分享最新动态。你可以在我们的 ​​PatternFly YouTube 频道​​ 上观看我们过去的所有会议记录。

4、倾听用户

作为一个社区,我们的目标是让 PatternFly 的所有贡献都能在不同的环境中带来功能性和美观的产品体验。为了实现这一目标,我们要求自己打破自己的泡沫并与用户互动。我们与 UX 研究人员合作,与用户一起测试更新、更改和添加(例如视觉主题和交互),以确保我们创建的设计、资源和体验能够为每个人解决问题,而不仅仅是像我们这样的人。

5、创建连接

PatternFly 是贯穿红帽公司产品的一致性的主线。每个人都有创造的自由,来构建最适合他们用户的东西。但我们作为一个团队,通过设计系统连接产品组,以获得更统一的用户体验。PatternFly 的资源很容易获得,并向所有人开放。这有助于我们建立联系,压制孤岛。

与我们一起开放设计

无论你是一个由 1 人还是 100 人组成的团队,或者你的设计系统是否是开源的,在我们所做的每一件事中,总有一点协作和社区的空间。联系 ​​PatternFly 社区​​,告诉我们你的结果如何。我们迫不及待地想收到你的来信。

(题图:MJ:open source design community:: blueprint drawing::1 moonlight::1 ultra wide angle lens::1 green::1)

有关开源设计系统 PatternFly 的五个优秀实践的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  4. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  7. ruby-on-rails - Rails 中同一个类的多个关联的最佳实践? - 2

    我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来

  8. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  9. ruby-on-rails - 向 Rails 3 添加 Ruby 扩展方法的最佳实践? - 2

    我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion

  10. ruby-on-rails - 设计通过 reset_password_token 获取用户 - 2

    我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow

随机推荐