{"id":13807651,"url":"https://github.com/san650/ember-web-app","last_synced_at":"2025-09-27T03:30:41.587Z","repository":{"id":70307698,"uuid":"72938516","full_name":"san650/ember-web-app","owner":"san650","description":"NOTICE: official repository moved to https://github.com/zonkyio/ember-web-app","archived":true,"fork":false,"pushed_at":"2018-12-11T21:44:59.000Z","size":1054,"stargazers_count":141,"open_issues_count":10,"forks_count":19,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-09-26T20:22:13.863Z","etag":null,"topics":["addon","ember","ember-cli","manifest","progressive","pwa"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/san650.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-11-05T16:27:54.000Z","updated_at":"2024-05-30T02:09:34.000Z","dependencies_parsed_at":"2023-02-25T03:00:20.040Z","dependency_job_id":null,"html_url":"https://github.com/san650/ember-web-app","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/san650%2Fember-web-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/san650%2Fember-web-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/san650%2Fember-web-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/san650%2Fember-web-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/san650","download_url":"https://codeload.github.com/san650/ember-web-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234376917,"owners_count":18822416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["addon","ember","ember-cli","manifest","progressive","pwa"],"created_at":"2024-08-04T01:01:28.218Z","updated_at":"2025-09-27T03:30:36.079Z","avatar_url":"https://github.com/san650.png","language":"JavaScript","readme":"\n# ember-web-app\n\n**NOTICE: official repository moved to https://github.com/zonkyio/ember-web-app**\n\nThis Ember addon helps you configure and manage the web app manifest and related meta tags needed to create a Progressive Web Application\n\nFrom [MDN](https://developer.mozilla.org/en-US/docs/Web/Manifest)\n\n\u003e The web app manifest provides information about an application (such as name,\n\u003e author, icon, and description) in a text file. The purpose of the manifest is\n\u003e to install web applications to the homescreen of a device, providing users\n\u003e with quicker access and a richer experience.\n\nAddon features:\n\n* Generates a manifest.ember-web-app.json file using a JavaScript template\n* Uses fingerprint for images\n* Generates equivalent meta tags for supporting other devices (e.g. iPhone)\n* Validates the configuration\n\nSee the [documentation](#documentation) section below for more information.\n\n## Table of content\n\n* [Installation](#installation)\n* [Example](#example)\n* [Configuration](#configuration)\n  * [Disable](#disable)\n  * [Fingerprint](#fingerprint)\n* [API documentation](#api-documentation)\n  * [`name`](#name)\n  * [`short_name`](#short_name)\n  * [`background_color`](#background_color)\n  * [`description`](#description)\n  * [`dir`](#dir)\n  * [`display`](#display)\n  * [`icons`](#icons)\n  * [`lang`](#lang)\n  * [`orientation`](#orientation)\n  * [`prefer_related_applications`](#prefer_related_applications)\n  * [`related_applications`](#related_applications)\n  * [`scope`](#scope)\n  * [`start_url`](#start_url)\n  * [`theme_color`](#theme_color)\n  * [`apple`](#apple)\n    * [`apple.statusBarStyle`](#applestatusbarstyle)\n    * [`apple.precomposed`](#appleprecomposed)\n    * [`apple.formatDetection`](#appleformatdetection)\n    * [`apple.webAppCapable`](#applewebappcapable)\n  * [`ms`](#ms)\n    * [`ms.tileColor`](#mstilecolor)\n* [Generating Icons](#generating-icons)\n* [Development](#development)\n* [Project's health](#projects-health)\n* [License](#license)\n\n## Installation\n\n```sh\n$ ember install ember-web-app\n```\n\nThis generates a config/manifest.js configuration file.\n\n## Example\n\nHaving the following configuration file `config/manifest.js`\n\n```js\nmodule.exports = function() {\n  return {\n    name: \"Let's Cook\",\n    short_name: \"Let's Cook\",\n    description: \"An app for organizing your weekly menu and groceries list.\",\n    start_url: \"/\",\n    display: \"standalone\",\n    background_color: \"#ffa105\",\n    theme_color: \"#ffa105\",\n\n    icons: [\n      {\n        src: \"/images/icons/android-chrome-192x192.png\",\n        sizes: \"192x192\",\n        type: \"image/png\"\n      },\n      {\n        src: \"/images/icons/android-chrome-512x512.png\",\n        sizes: \"512x512\",\n        type: \"image/png\"\n      },\n      {\n        src: \"/images/icons/apple-touch-icon.png\",\n        sizes: \"180x180\",\n        type: \"image/png\",\n        targets: ['apple']\n      },\n      {\n        src: \"/images/icons/mstile-150x150.png\",\n        element: \"square150x150logo\",\n        targets: ['ms']\n      }\n    ],\n\n    apple: {\n      statusBarStyle: 'black-translucent'\n    },\n\n    ms: {\n      tileColor: '#ffffff'\n    }\n  }\n}\n```\n\nIt will generate the following meta tags\n\n`index.html`\n\n```html\n\u003clink rel=\"manifest\" href=\"/manifest.webmanifest\"\u003e\n\n\u003clink rel=\"apple-touch-icon\" href=\"/images/icons/android-chrome-192x192-883114367f2d72fc9a509409454a1e73.png\" sizes=\"192x192\"\u003e\n\u003clink rel=\"apple-touch-icon\" href=\"/images/icons/android-chrome-512x512-af3d768ff652dc2be589a3c22c6dc827.png\" sizes=\"512x512\"\u003e\n\u003clink rel=\"apple-touch-icon\" href=\"/images/icons/apple-touch-icon-36cba25bc155e8ba414265f9d85861ca.png\" sizes=\"180x180\"\u003e\n\n\u003cmeta name=\"theme-color\" content=\"#ffa105\"\u003e\n\n\u003cmeta name=\"apple-mobile-web-app-capable\" content=\"yes\"\u003e\n\u003cmeta name=\"apple-mobile-web-app-title\" content=\"Let's Cook\"\u003e\n\u003cmeta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\"\u003e\n\n\u003cmeta name=\"msapplication-config\" content=\"/browserconfig.xml\"\u003e\n```\n\nand the following `manifest.webmanifest` file\n\n```json\n{\n  \"name\": \"Let's Cook\",\n  \"short_name\": \"Let's Cook\",\n  \"description\": \"An app for organizing your weekly menu and groceries list.\",\n  \"start_url\": \"/\",\n  \"display\": \"standalone\",\n  \"background_color\": \"#ffa105\",\n  \"theme_color\": \"#ffa105\",\n  \"icons\": [\n    {\n      \"src\": \"/images/icons/android-chrome-192x192-883114367f2d72fc9a509409454a1e73.png\",\n      \"sizes\": \"192x192\",\n      \"type\":\"image/png\"\n    },\n    {\n      \"src\": \"/images/icons/android-chrome-512x512-af3d768ff652dc2be589a3c22c6dc827.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\"\n    }\n  ]\n}\n```\n\nand the following `browserconfig.xml` file\n\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cbrowserconfig\u003e\n  \u003cmsapplication\u003e\n    \u003ctile\u003e\n      \u003csquare150x150logo src=\"/images/icons/mstile-150x150.png\"/\u003e\n      \u003cTileColor\u003e#ffffff\u003c/TileColor\u003e\n    \u003c/tile\u003e\n  \u003c/msapplication\u003e\n\u003c/browserconfig\u003e\n```\n\n## Configuration\n\n### Disable\n\nYou can disable the addon by adding a configuration option to `ember-cli-build.js` build file.\n\n```js\nvar EmberApp = require('ember-cli/lib/broccoli/ember-app');\n\nmodule.exports = function(defaults) {\n  var options = {\n    'ember-web-app': {\n      enabled: false\n    }\n  };\n\n  var app = new EmberApp(defaults, options);\n\n  return app.toTree();\n};\n```\n\n### Fingerprint\n\nYou can add fingerprint checksum to your manifest.webmanifest file by configuring [broccoli-asset-rev](https://github.com/rickharrison/broccoli-asset-rev).\n\nThe following example prepends with a custom domain and adds fingerprint checksum to the manifest.webmanifest file.\n\n`ember-cli-build.js`\n\n```js\nvar EmberApp = require('ember-cli/lib/broccoli/ember-app');\nvar broccoliAssetRevDefaults = require( 'broccoli-asset-rev/lib/default-options' );\n\nmodule.exports = function(defaults) {\n  var options = {\n    fingerprint: {\n      extensions: broccoliAssetRevDefaults.extensions.concat(['webmanifest']),\n      prepend: 'https://www.example.com/'\n    }\n  };\n\n  var app = new EmberApp(defaults, options);\n\n  return app.toTree();\n};\n```\n\nNote that the `replaceExtensions` configuration from `broccoli-asset-rev` is updated internally by `ember-web-app` so you don't have to configure yourself on your project.\n\n## API documentation\n\nThis Ember addon generates a [Web Application Manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) at build time using the `config/manifest.js` configuration file.\n\nIt also generates some compatibility meta tags for supporting vendor specific web application features like Apple's [Web Content For Safari](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/Introduction/Introduction.html) and Microsoft's [Browser configuration schema](https://msdn.microsoft.com/en-us/library/dn320426%28v=vs.85%29.aspx) that don't yet support the Web Application Manifest standard.\n\nInternally, this addon takes into account four different types of targets for generating the web app manifest taking care of including some backward compatibility meta tags in order to support as many devices and browsers as possible. These targets are:\n\n* manifest (default target)\n* apple (to target iOS devices)\n* ms (to target Win8/Win10 devices)\n* android (to target options specific for android devices)\n\nNot all targets are used for all properties (actually, most properties are not affected by the targets).\n\n### List of supported properties.\n\n* [`name`](#name)\n* [`short_name`](#short_name)\n* [`background_color`](#background_color)\n* [`description`](#description)\n* [`dir`](#dir)\n* [`display`](#display)\n* [`icons`](#icons)\n* [`lang`](#lang)\n* [`orientation`](#orientation)\n* [`prefer_related_applications`](#prefer_related_applications)\n* [`related_applications`](#related_applications)\n* [`scope`](#scope)\n* [`start_url`](#start_url)\n* [`theme_color`](#theme_color)\n* [`apple`](#apple)\n  * [`apple.statusBarStyle`](#applestatusbarstyle)\n  * [`apple.precomposed`](#appleprecomposed)\n  * [`apple.formatDetection`](#appleformatdetection)\n* [`ms`](#ms)\n  * [`ms.tileColor`](#mstilecolor)\n\n#### `name`\n\n\u003e Provides a human-readable name for the application as it is intended to be displayed to the user, for example among a list of other applications or as a label for an icon.\n\nExample\n\n```js\nmanifest.name = \"dummy\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"name\": \"dummy\" }`\n| `apple`    | `\u003cmeta name=\"apple-mobile-web-app-title\" content=\"dummy\"\u003e`\n| `ms`       | `\u003cmeta name=\"application-name\" content=\"dummy\"\u003e`\n| `android`  | does not apply\n\n#### `short_name`\n\n\u003e Provides a short human-readable name for the application. This is intended for use where there is insufficient space to display the full name of the web application.\n\nExample\n\n```js\nmanifest.short_name = \"dummy\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"short_name\": \"dummy\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `background_color`\n\n\u003e Defines the expected background color for the web application.\n\nExample\n\n```js\nmanifest.background_color = \"#fff\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"background_color\": \"#fff\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `description`\n\n\u003e Provides a general description of what the web application does.\n\nExample\n\n```js\nmanifest.description = \"Lorem ipsum dolor\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"description\": \"Lorem ipsum dolor\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `dir`\n\n\u003e Specifies the primary text direction for the `name`, `short_name`, and description members.\n\nPossible values:\n  * ltr (left-to-right)\n  * rtl (right-to-left)\n  * auto\n\nExample\n\n```js\nmanifest.dir = \"ltr\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"dir\": \"ltr\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `display`\n\n\u003e Defines the developer's preferred display mode for the web application.\n\nPossible values:\n  * fullscreen\n  * standalone\n  * minimal-ui\n  * browser\n\nThe default value for `display` is `browser` when is not defined.\n\nExample\n\n```js\nmanifest.display = \"fullscreen\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"display\": \"fullscreen\" }`\n| `apple`    | `\u003cmeta name=\"apple-mobile-web-app-capable\" content=\"yes\"\u003e`\n| `ms`       | does not apply\n| `android`  | does not apply\n\n__Note that for iOS the meta tag will be render with value `yes` only when display is `fullscreen` or `standalone`.__\n\n#### `icons`\n\n\u003e Specifies an array of image objects that can serve as application icons in various contexts. For example, they can be used to represent the web application amongst a list of other applications, or to integrate the web application with an OS's task switcher and/or system preferences.\n\nImage object members:\n  * `src` The path to the image file.\n  * `sizes` A string containing space-separated image dimensions.\n  * `type` A hint as to the media type of the image.\n  * `targets` **Non standard** Targets for the images. ['manifest', 'apple'] by default.\n  * `element` **Non standard** Only when the target is `ms`. Must be one of `square70x70logo`, `square150x150logo`, `wide310x150logo` or `square310x310logo`.\n  * `safariPinnedTabColor` **Non standard** Only when the target is `safari-pinned-tab`. Can specify a single color with a hexadecimal value (#990000), an RGB value (rgb(153, 0, 0)), or a recognized color-keyword, such as: red, lime, or navy..\n\nExample\n\n```js\nicons: [\n  {\n    src: '/foo/bar.png',\n    sizes: '180x180'\n  },\n  {\n    src: '/bar/baz.png',\n    sizes: '280x280',\n    targets: ['apple']  // non-standard property\n  },\n  {\n    src: '/bar/fav.png',\n    sizes: '32x32',\n    targets: ['favicon']\n  },\n  {\n    src: '/bar/ms.png',\n    element: 'square70x70logo', // non-standard property\n    targets: ['ms'] // non-standard-property\n  },\n  {\n    src: '/foo/monochrome.svg',\n    safariPinnedTabColor: '#cc6600', // non-standard property\n    targets: ['safari-pinned-tab'] // non-standard-property\n  }\n];\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"icons\": [ { \"src\": \"/foo/bar.png\", \"sizes\": \"180x180\" } ] }`\n| `apple`    | `\u003clink rel=\"apple-touch-icon\" href=\"/foo/bar.png\" sizes=\"180x180\"\u003e` `\u003clink rel=\"apple-touch-icon\" href=\"/foo/bar.png\" sizes=\"280x280\"\u003e`\n| `android`  | does not apply\n| `favicon`  | `\u003clink rel=\"icon\" href=\"/bar/fav.png\" sizes=\"32x32\"\u003e`\n| `ms`       | icon in `browserconfig.xml`\n| `safari-pinned-tab`    | `\u003clink rel=\"mask-icon\" href=\"/foo/monochrome.svg\" color=\"#cc6600\"\u003e`\n\n#### `lang`\n\n\u003e Specifies the primary language for the values in the name and short_name members.\n\nExample\n\n```js\nmanifest.lang = \"es-UY\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"lang\": \"es-UY\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `orientation`\n\n\u003e Defines the default orientation for all the web application's top level browsing contexts.\n\nPossible values:\n  * any\n  * natural\n  * landscape\n  * landscape-primary\n  * landscape-secondary\n  * portrait\n  * portrait-primary\n  * portrait-secondary\n\nExample\n\n```js\nmanifest.orientation = \"portrait\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"orientation\": \"portrait\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `prefer_related_applications`\n\n\u003e Specifies a boolean value that hints for the user agent to indicate to the user that the specified related applications are available, and recommended over the web application.\n\nPossible values:\n  * true\n  * false\n\nExample\n\n```js\nmanifest.prefer_related_applications = true;\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"prefer_related_applications\": true }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `related_applications`\n\n\u003e Specifies an array of \"application objects\" representing native applications that are installable by, or accessible to, the underlying platform.\n\nApplication object members:\n  * `platform` The platform on which the application can be found.\n  * `url` The URL at which the application can be found.\n  * `id` The ID used to represent the application on the specified platform.\n\nExample\n\n```js\nmanifest.prefer_related_applications = true;\nmanifest.related_applications = [\n  {\n    \"platform\": \"itunes\",\n    \"url\": \"https://itunes.apple.com/app/example-app1/id123456789\"\n  }\n];\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"prefer_related_applications\": true, \"related_applications\": [{\"platform\": \"itunes\", \"url\": \"https://itunes.apple.com/app/example-app1/id123456789\" }] }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `scope`\n\n\u003e Defines the navigation scope of this web application's application context. This basically restricts what web pages can be viewed while the manifest is applied.\n\nExample\n\n```js\nmanifest.scope = \"/myapp/\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"scope\": \"/myapp/\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `start_url`\n\n\u003e Specifies the URL that loads when a user launches the application from a device.\n\nExample\n\n```js\nmanifest.start_url = \"./?utm_source=web_app_manifest\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"start_url\": \"./?utm_source=web_app_manifest\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `theme_color`\n\n\u003e Defines the default theme color for an application. This sometimes affects how the application is displayed by the OS.\n\nExample\n\n```js\nmanifest.theme_color = \"aliceblue\";\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"theme_color\": \"aliceblue\" }`\n| `apple`    | does not apply\n| `ms`       | does not apply\n| `android`  | `\u003cmeta name=\"theme-color\" content=\"aliceblue\"\u003e`\n\n### Vendor specific properties (non-standard)\n\n#### `apple`\n\n\u003e Turns on/off the generation of Apple-specific meta and link tags.\n\nPossible values:\n  * `true` Turn on. This is the default value.\n  * `false` Turn off.\n  * An object with custom settings (see the settings below)\n\nExample\n\n```js\nmanifest.apple = false;\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | `{ \"apple\": false }`\n| `apple`    | __returns an empty string__\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `apple.webAppCapable`\n\n\u003e Overrides `manifest.display` for the generation of the `apple-mobile-web-app-capable` meta tag.\n\nPossible values:\n  * `true` Turn on.\n  * `false` Turn off.\n\nExample\n\n```js\nmanifest = {\n  display: 'standalone',\n  apple: {\n    webAppCapable: false\n  }\n};\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | does not apply\n| `apple`    | `\u003cmeta name=\"apple-mobile-web-app-capable\" content=\"yes\"\u003e`\n| `ms`       | does not apply\n| `android`  | does not apply\n\n\n#### `apple.statusBarStyle`\n\n\u003e Sets the style of the status bar for a web application in iOS\n\nSee [Changing the Status Bar Appearance](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html#//apple_ref/doc/uid/TP40002051-CH3-SW1)\n\nPossible values:\n  * `default` The status bar appears normal.\n  * `black` The status bar has a black background.\n  * `black-translucent` The status bar is black and translucent.\n\nNote that if set to default or black, the web content is displayed below the status bar. If set to black-translucent, the web content is displayed on the entire screen, partially obscured by the status bar.\n\nExample\n\n```js\nmanifest.apple = {\n  statusBarStyle: 'black-translucent'\n};\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | does not apply\n| `apple`    | `\u003cmeta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\"\u003e`\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `apple.precomposed`\n\n\u003e Adds `precomposed` suffix to Apple touch icons\n\nSee [Precomposed Keyword for Apple touch icons](https://mathiasbynens.be/notes/touch-icons#effects)\n\nPossible values:\n  * `true` Adds precomposed suffix.\n  * `false` (default) Does not add precomposed suffix.\n\nExample\n\n```js\nmanifest.apple = {\n  precomposed: 'true'\n};\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | does not apply\n| `apple`    | `\u003clink rel=\"apple-touch-icon-precomposed\" href=\"/images/icons/apple-touch-icon-192x192.png\" sizes=\"192x192\"\u003e`\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `apple.formatDetection`\n\n\u003e Adds `format-detection` meta tag if needed\n\nSee [Safari HTML Reference](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html#//apple_ref/doc/uid/TP40008193-SW5)\n\nPossible values:\n  * An object with following settings\n    * `telephone: false` Disables automatic phone number detection.\n\nExample\n\n```js\nmanifest.apple = {\n  formatDetection: {\n    telephone: false\n  }\n};\n```\n\n| Target     | Generates |\n| ---        | ---       |\n| `manifest` | does not apply\n| `apple`    | `\u003cmeta name=\"format-detection\" content=\"telephone=no\"\u003e`\n| `ms`       | does not apply\n| `android`  | does not apply\n\n#### `ms`\n\n\u003e Turns on/off the generation of Microsoft-specific meta and link tags.\n\nPossible values:\n  * `true` Turn on.\n  * `false` Turn off. This is the default value.\n  * An object with custom settings (see the settings below)\n\nExample\n\n```js\nmanifest.ms = false;\n```\n\n#### `ms.tileColor`\n\n\u003e Sets the `\u003cTileColor\u003e` property in `browserconfig.xml`.\n\nSee [Browser configuration schema reference](https://msdn.microsoft.com/en-us/library/dn320426(v=vs.85).aspx)\n\nPossible values:\n  * A color in hex format.\n\nExample\n\n```js\nmanifest.ms = {\n  tileColor: '#ffffff'\n};\n```\n\n## Generating Icons\n\n`ember-web-app` doesn't generate icons or images. If you want to automate the generation of icons starting from a master image, you can install `ember-cli-image-transformer`.\n\nManaging all the various icon sizes and types can be overwhelming. One solution is to start with a base image which can be use to generate the necessary icon permutations for your environment.  You can use [ember-cli-image-transformer](https://github.com/jrjohnson/ember-cli-image-transformer) to handle this task.\n\nIf your `manifest.js` looks like this and needs a 192px and a 512px icon:\n\n```javascript\n// config/manifest.js\nexport default function() {\n  return {\n    icons: [\n      {\n        src: '/assets/icons/appicon-32.png',\n        sizes: `32x32`,\n        targets: ['favicon']\n      },\n      ...[192, 280, 512].map((size) =\u003e ({\n        src: `/assets/icons/appicon-${size}.png`,\n        sizes: `${size}x${size}`\n      }))\n    ]\n  };\n}\n```\n\nYou can start with a base `brand-icon.svg` image and automatically build the 192x192 and 512x512 versions by installing `ember-cli-image-transformer` and adding the necessary configuration to your `ember-cli-build.js` file:\n\n```javascript\n// ember-cli-build.js\nmodule.exports = function(defaults) {\n  var app = new EmberApp(defaults, {\n    'ember-cli-image-transformer': {\n      images: [\n        {\n          inputFilename: 'lib/images/brand-icon.svg',\n          outputFileName: 'appicon-',\n          convertTo: 'png',\n          destination: 'assets/icons/',\n          sizes: [32, 192, 280, 512]\n        }\n      ]\n    }\n  });\n```\n\n## Development\n\n```sh\n$ git clone https://github.com/san650/ember-web-app.git\n$ cd $_\n$ yarn          # (or npm install)\n```\n\nRunning tests\n\n```sh\n$ npm test\n```\n\n## Project's health\n\n[![Build Status](https://travis-ci.org/san650/ember-web-app.svg?branch=master)](https://travis-ci.org/san650/ember-web-app)\n[![Ember Observer Score](https://emberobserver.com/badges/ember-web-app.svg)](https://emberobserver.com/addons/ember-web-app)\n[![Maintainability](https://api.codeclimate.com/v1/badges/c7249928bfed1caa9e98/maintainability)](https://codeclimate.com/github/san650/ember-web-app/maintainability)\n[![dependencies Status](https://david-dm.org/san650/ember-web-app/status.svg)](https://david-dm.org/san650/ember-web-app)\n[![devDependencies Status](https://david-dm.org/san650/ember-web-app/dev-status.svg)](https://david-dm.org/san650/ember-web-app?type=dev)\n\n## License\n\nember-web-app is licensed under the MIT license.\n\nSee [LICENSE](./LICENSE) for the full license text.\n","funding_links":[],"categories":["Packages"],"sub_categories":["PWA"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsan650%2Fember-web-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsan650%2Fember-web-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsan650%2Fember-web-app/lists"}