为Australis创建附加组件,赢取Firefox OS手机

Firefox 29(“Australis”)包含了重大的设计和自定义改进,并且我们挑战你创建在其中看起来和感觉都很棒的附加组件。

在**2014年3月11日至4月15日**期间,创建充分利用新设计的附加组件,这为浏览器打开了新的自定义机会,并简化了附加组件体验。一个评审团将从每个奖项类别中选出一名获胜者和两名亚军。

所有获奖者将获得Firefox OS手机,每个类别的第一名获奖者还将获得一系列Mozilla装备。

类别

  • **最佳整体附加组件** - 最好地利用Australis新功能(如新的工具栏小部件和标签外观)的附加组件。
  • **最佳完整主题** - 最具创意地改变Australis外观和感觉的完整主题
  • **最佳书签附加组件** - 与Australis主题配合良好的创新型书签附加组件

Australis中的附加组件

为了为本次比赛创建出色的参赛作品,你需要了解Australis中的新内容。以下是我们在附加组件博客中发布内容的快速摘要。

更改

工具栏在Australis中发生了重大变化。底部的附加组件栏已移除,取而代之的是一个新的菜单面板,该面板通过按钮和小部件扩展了工具栏。可以通过点击主工具栏右侧的按钮来激活它。此新菜单中的所有项目都是可自定义的,并且可以向其中添加附加组件按钮和小部件。

主工具栏中的图标为18×18像素。但是,需要1像素的填充,因此你应该在现代版本的Firefox中用于主工具栏的16×16像素图标无需任何更改即可使用。图标在菜单面板以及自定义期间为32×32像素。因此,如果你有一个附加组件,它使用覆盖按钮到调色板,然后在首次运行时使用JS将其添加到工具栏的常用指南将工具栏按钮添加到主工具栏,那么所有内容都应该按预期工作,并且你只需要将CSS更改为类似以下内容

/* Original CSS */
#my-button {
  list-style-image: url(“chrome://my-extension/skin/icon16.png”);
}

/* Added for Australis support */
#my-button[cui-areatype="menu-panel"],
  toolbarpaletteitem[place="palette"] > #my-button {
  list-style-image: url(“chrome://my-extension/skin/icon32.png”);
}

请注意,当按钮放置在UI中时,Australis主题中的按钮会设置cui-areatype属性。可能的值为menu-panel和toolbar。你可以使用toolbar值在Australis和非Australis主题中为按钮设置不同的样式。

适用于附加组件开发人员的Australis:第1部分包含更多详细信息。

新的自定义API

Australis的另一个激动人心的新增功能是能够使用CustomizableUI模块创建工具栏小部件。无论对于无需重启的附加组件还是更传统的附加组件,你都可以使用很少的代码轻松创建简单的按钮和更有趣的小部件。这是一个示例

CustomizableUI.createWidget({
    id : "aus-hello-button",
    defaultArea : CustomizableUI.AREA_NAVBAR,
    label : "Hello Button",
    tooltiptext : "Hello!",
    onCommand : function(aEvent) {
      let win = aEvent.target.ownerDocument.defaultView;

      win.alert("Hello!");
    }
});

适用于附加组件开发人员的Australis:第2部分演示了如何使用两个演示和大量代码来利用此API。

开始吧!

关于 Jorge Villalobos

Jorge是Mozilla的附加组件开发者关系负责人。

更多由Jorge Villalobos撰写的文章…


6条评论

  1. 是的

    是否可以使用附加组件SDK将面板附加到新按钮,或者很快就会实现?

    2014年3月11日 12:29

    1. Jorge Villalobos

      是的,SDK支持应该很快就会上线,在下周迁移到beta之前。

      2014年3月11日 12:33

    2. Jeff Griffiths

      实际上,SDK支持已经在Nightly中针对两种类型的按钮(“操作”和“切换”)上线了;你可以在此处查看文档

      https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action

      https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle

      此外,我们还引入了工具栏api

      https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_toolbar

      我们将在未来几天内将这些更改“提升”到Firefox 29,以便它们及时进入Beta版。这些api是稳定的,请随时在你的附加组件中使用它们。

      2014年3月12日 19:40

  2. Hugo

    开发附加组件时使用了哪些技术?我们可以使用纯CSS+HTML+JS制作附加组件,还是必须使用Firefox特定的UI语言(XUL)和特定的语言?

    2014年3月12日 04:43

  3. Jeff Griffiths

    实际上,SDK支持已经在Nightly中针对两种类型的按钮(“操作”和“切换”)上线了;你可以在此处查看文档

    https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action

    https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle

    此外,我们还引入了工具栏api

    https://mdn.org.cn/en-US/Add-ons/SDK/Low-Level_APIs/ui_toolbar

    我们将在未来几天内将这些更改“提升”到Firefox 29,以便它们及时进入Beta版。这些api是稳定的,请随时在你的附加组件中使用它们。

    2014年3月12日 19:43

  4. SgtBrutalisk

    由于快速发布计划,Firefox的附加组件生态系统已经悄然消亡,而这场比赛并不能让它起死回生。

    2014年3月26日 11:43

本文的评论已关闭。