-
Notifications
You must be signed in to change notification settings - Fork 18
Update icon guidelines #301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
ed35e10
340199b
00e11f3
b69d8be
093a9cf
3c8712f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -17,132 +17,137 @@ Before you start designing your specific icon set for your application, consider | |||||
|
|
||||||
| - Make sure the icons you need are not already in the library | ||||||
|
|
||||||
| - Maybe the icon already exists under a slightly different name or it might be planned for a future release so please double check or ask us when in doubt | ||||||
| - The icon may already exist under a slightly different name, or it may be planned for a future release. Please double-check or ask us when in doubt. | ||||||
|
|
||||||
| - Consider using more generic icons than creating multiple very specific new ones (e.g.: Use the generic "add" icon instead of creating an "add-wireless-device" icon) | ||||||
| - We recommend using generic icons instead of creating multiple, specific new ones, e.g. use the generic "add" icon instead of creating an "add-wireless-device" icon. | ||||||
|
|
||||||
| - Do not create alternatives to existing icons just for the sake of your own look | ||||||
| - Do not create alternatives to existing icons just for the sake of your own taste | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, we had already some iterations on that phrase. And we used this one now, because some designers could say: "Hey, I have a reason to create an alternative, because the existing icon looks ugly." We want to avoid designers use this explanation as excuse to create their own alternative icon set just to look different. |
||||||
|
|
||||||
| - Ask other designers within your company about the existence of an icon, to prevent creation of duplicates | ||||||
| - Ask other designers within your company about the existence of an icon to prevent the creation of duplicates | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
|
|
||||||
| - Finally: Entrust a professional designer with the task of designing an icon | ||||||
| - Finally, we strongly recommend entrusting a professional designer with the task of designing an icon | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
|
|
||||||
| ### Technical requirements | ||||||
| ### Icon colors | ||||||
|
|
||||||
| Icons in our design system are monochromatic. They will be colored during runtime, depending on the context they are being used in. For more technical requirements see the "Code" tab above. | ||||||
| Icons in our design system are monochromatic. They will be colored during runtime, depending on the context they are being used in. In some components we combine differently colored icons to achieve multi-color appearance. | ||||||
|
silviowolf marked this conversation as resolved.
silviowolf marked this conversation as resolved.
|
||||||
|
|
||||||
| ### Formal requirements | ||||||
|
|
||||||
| New icons should follow the app icon guidelines below for a consistent look & feel across applications. For Siemens applications it is mandatory to follow these guidelines. | ||||||
| New icons should follow the app icon guidelines below for a consistent look and feel across applications. Siemens applications must follow these guidelines. | ||||||
|
|
||||||
| ## Icon design guidelines | ||||||
|
|
||||||
| These guidelines extend the basic guidelines on [Siemens brandville](https://brandville.siemens.com/en/design-elements/icons/ui-icons). | ||||||
|
|
||||||
| ### 1. Icon grid size | ||||||
| ### 1. Design grid | ||||||
|
|
||||||
| - The basic icon grid size is 24β24 | ||||||
| #### Design grid and key shapes | ||||||
|
|
||||||
|  | ||||||
| - The base grid is 24Γ24 | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
| - When designing icons, use the "Icon Design Grid" component from the Figma "iX UI Icons" library as your working background | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
| - The grid defines key shapes and a clearance zone (red area), which icons should not touch | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
|
|
||||||
| ### 2. In-app icon design grid | ||||||
|  | ||||||
|
|
||||||
| - Use the design grid component βIcon Design Gridβ from the βAssetsβ library as background for creating new icons | ||||||
| - The design grid helps to limit the icon boundaries to achieve an evenly optical weight of different icon shapes | ||||||
| - The clearance zone (red area) should not be touched by the icon (for exceptions see below) | ||||||
| - The lines represent the boundaries of key shapes or just mark the center | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| - Use the portrait key shape for vertically oriented shapes | ||||||
| - Choose the key shape based on icon orientation | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
| - Portrait key shape for vertically oriented icons | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| - Use the landscape key shape for horizontally oriented shapes | ||||||
| - Landscape key shape for horizontally oriented icons | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| - Use the square key shape for square icons | ||||||
| - Square key shape for square-proportioned icons | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| - Use the circle key shape for round icons | ||||||
| - Circle key shape for round icons | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| #### Exceptions to the clearance zone | ||||||
| #### Clearance zone exceptions | ||||||
|
|
||||||
| - Icons with attributes: Icons can be enhanced with attributes. These attributes are allowed to touch the clearance zone but should keep at least 1px space to the outer boundary | ||||||
| - Attribute icons may extend into the clearance zone but must keep at least 1px from the outer boundary | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| - Optical fixes: Shapes are allowed to touch the clearance zone to equalize visual effects with pointed shapes or single strokes | ||||||
| - For optical correction, pointed shapes or single strokes may touch the clearance zone to equalize visual weight | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| ### 3. Light weight icons | ||||||
| ### 2. Icon style | ||||||
|
|
||||||
| - Prefer strokes and outlines over filled shapes | ||||||
| - Please provide a filled variant of the icon as well, where possible and potentially useful. It can be used in situations when more visual weight is required. The filled variant gets the name suffix β-filledβ. | ||||||
| #### Simple and geometric | ||||||
|
|
||||||
|  | ||||||
| - Keep icons simple | ||||||
| - Build from geometric shapes with sharp corners and straight lines | ||||||
| - Use rounded corners only when the character of the depicted object requires it | ||||||
|
|
||||||
| ### 4. Simple and geometric | ||||||
|  | ||||||
|
|
||||||
| - Keep icons as simple as possible | ||||||
| - Avoid complex symbols or symbol combinations whenever possible | ||||||
| - Create icons from geometric shapes | ||||||
| - Prefer sharp corners and straight lines | ||||||
| - Use rounded corners and endings only to support the characteristics of the represented object | ||||||
| #### Stroke and fill style | ||||||
|
|
||||||
|  | ||||||
| - The default style is stroked/outlined | ||||||
| - Optionally provide a filled variant (suffix "_filled") for use in active/toggled states or where higher visual weight is needed | ||||||
|
|
||||||
| ### 5. Stroke widths | ||||||
|  | ||||||
|
|
||||||
| #### Stroke width | ||||||
|
|
||||||
| - Default stroke width is 2px | ||||||
| - In case icon readability can't be guaranteed otherwise, stroke widths of 1.5px or even 1x are also allowed. Before doing that please make sure all rules from section 4 are followed. | ||||||
| - 1.5px or 1px is allowed when object character or icon complexity requires it | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| ### 6. Gaps | ||||||
| #### Gaps | ||||||
|
|
||||||
| - Anti-aliasing effects can lead to blurry borders and edges | ||||||
| - Use 2px gaps to visually separate two shapes from each other | ||||||
| - Avoid unsafe patterns of alternating between set pixel and no pixel. In the worst case such shapes cannot be visually distinguished anymore. | ||||||
| - Use 2px gaps between shapes to ensure clear separation | ||||||
| - Avoid unsafe patterns of alternating between set pixel and no pixel, as they may become indistinguishable at certain scales or on low-resolution displays | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
|
|
||||||
|  | ||||||
|
|
||||||
| ### 7. Strikethrough, cuts and cutouts | ||||||
| #### Strike-through, cuts and cutouts | ||||||
|
|
||||||
| - Diagonal strike-through symbolizes the opposite of an icon or an unavailability (e.g. show & hide, mute microphone, mute alarm) | ||||||
|
silviowolf marked this conversation as resolved.
|
||||||
| - A diagonal strike-through goes from top left to bottom right (like the diagonal stroke of letter "N" for "No"), followed by a 2px gap up-right | ||||||
| - Cuts/cutouts: use at least 1px spacing, beware of unsafe patterns (see Gaps) | ||||||
|
|
||||||
| - A diagonal strikethrough is used to symbolize the opposite of an icon or an unavailability (e.g. show & hide, switch off alarm) | ||||||
| - A diagonal strikethrough starts from top left and ends at the bottom right (refers to the crossbar of letter βNβ for βNoβ), followed by a 2px space above right | ||||||
| - Use at least 1px space for cuts or cutouts (be aware of βunsafe patternsβ, see 6.) | ||||||
|  | ||||||
|
|
||||||
|  | ||||||
| ### 3. Export and technical requirements | ||||||
|
|
||||||
| ### 8. The technical finish | ||||||
| #### General icon specs | ||||||
|
|
||||||
| #### Prepare your icon for integration | ||||||
| Make sure your icon meets the following specifications: | ||||||
| - Icon name is short, descriptive and unique | ||||||
| - Designed at 24Γ24 | ||||||
| - All strokes converted to outlines | ||||||
| - In Figma, all parts are combined into a single shape named "Vector" | ||||||
| - In Figma, all layout constraints are set to "Scale" and resizing behavior is tested | ||||||
| - Before you export, set the icon color to #000 to ensure proper visibility in typical SVG preview tools | ||||||
| - The exported SVG must contain viewBox, width and height (24Γ24) | ||||||
| - The exported SVG must not contain a `<title>` element. It can cause unintended browser tooltips. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @tokyojen, I explicitly used "must not" in terms of "darf nicht enthalten sein". Because some SVG export tools automatically integrate the |
||||||
|
|
||||||
| - The icon size (including clearance zone) must be 24x24 | ||||||
| - The icon must not contain strokes (convert all strokes to outlines) | ||||||
| - Combine all icon parts to one single shape by using boolean operations | ||||||
| - Name the remaining shape βVectorβ, otherwise color overrides will not work properly in Figma | ||||||
| - Make sure the shape is set to βScaleβ in the βConstraintsβ settings in Figma, otherwise the resizing will not work properly | ||||||
| #### iX internal release process | ||||||
|
|
||||||
| #### Integrate in Figma | ||||||
| On GitHub ([github.com/siemens/ix-icons](https://github.com/siemens/ix-icons)): | ||||||
| - Create branch | ||||||
| - Add SVG icon files to folder `incoming-svg/` | ||||||
| - Create pull request (PR) | ||||||
| - Contact a maintainer to test, merge and release | ||||||
|
|
||||||
| - Create a component from your icon | ||||||
| - Use a short, descriptive and unique name - also consider adding a project or application suffix to the icon name to prevent naming collisions with other external icons | ||||||
| - "Publish" the document with your icon(s) and it will be available as library in your document assets | ||||||
| - Activate your library in the design document | ||||||
| In Figma: | ||||||
| - Set icon to iX default text color | ||||||
| - Convert your icon to a component | ||||||
| - Resize to 20Γ20 (iX default since v6.0) | ||||||
| - Prefix icon names with πΆ as long as the release is pending to indicate the icon is not available in code yet | ||||||
| - Publish in Figma | ||||||
|
|
||||||
| #### Export for development | ||||||
| #### Release process for custom or project-specific icons: | ||||||
|
|
||||||
| - Create an instance of your icon (this can be done in the same document the icon is stored in) | ||||||
| - Resize this instance to 512Γ512 (target size for development integration) | ||||||
| - Check if the scaling works properly (check scaling settings, if not) | ||||||
| - Export the instance as SVG | ||||||
| - Check the SVG code and remove any title attributes (`<title> ... </title>`) to make sure no unintentional tooltips appear on the icon | ||||||
| - Make sure the name of the SVG file matches the icon name to avoid confusion | ||||||
| - Hand the SVG over to your development | ||||||
| - Hand over SVG files to your developer | ||||||
| - Create a Figma component and resize it to 20Γ20 (iX default size since v6.0) | ||||||
| - Set the color to the iX default text color | ||||||
| - Publish the Figma component in your team assets | ||||||
|
silviowolf marked this conversation as resolved.
|
Uh oh!
There was an error while loading. Please reload this page.