7.8.0 • Published 1 month ago

@financial-times/o-icons v7.8.0

Weekly downloads
1,046
License
MIT
Repository
-
Last release
1 month ago

o-icons

Helper Sass for the fticons image set.

Usage

Check out how to include Origami components in your project to get started with o-icons.

Summary

There are a few ways to get icons from fticons:

  1. Use o-icons CSS classes
  2. Use o-icons Sass mixins with your own CSS.
  3. Request the icon directly from the Image Service (without using o-icons at all).

Markup

To add an icon apply the o-icons-icon class to a span, along with the modifier class for your specific icon e.g. o-icons-icon--arrow-down. See the registry demos for a full list of icons.

<span class="o-icons-icon o-icons-icon--arrow-down"></span>
<span class="o-icons-icon o-icons-icon--audio"></span>
<span class="o-icons-icon o-icons-icon--book"></span>

This will include icons with a 128px width/height by default.

If you would like to use an icon at a different dimension or colour, use o-icon Sass mixins or request the icon from the Image Service directly (without using o-icons at all).

Sass

Includes icons of different sizes and colors

Use oIconsContent to output the styles for an icon of a given size and colour.

The $color argument should be set using an o-colors Sass function such as oColorsByName, but may be set to any hex value.

// Use o-colors so you can use colors from the Origami palette.
@import "@financial-times/o-icons/main";
@import "@financial-times/o-colors/main";

// Output a 32px, claret coloured plus icon.
.my-icon-plus {
	@include oIconsContent(
		$icon-name: 'plus',
		$color: oColorsByName('claret'),
		$size: 32
	);
}
<span class="my-icon-plus"></span>

The oIconsContent mixins outputs styles used by each icon. This is inefficient if your project outputs multiple icons. In this case we recommend outputting the base styles separately with oIconsContentBaseStyles.

// Output a 32px, claret coloured plus icon.
.my-icon {
	@include oIconsContentBaseStyles();
}

.my-icon--plus {
	@include oIconsContent(
		$icon-name: 'plus',
		$color: oColorsByName('claret'),
		$size: 32,
		$include-base-styles: false // do not duplicate the base styles
	);
}
<span class="my-icon my-icon--plus"></span>

o-icons includes a media query to restore either a black or white icon in Microsoft's high-contrast mode. If no icon is acceptable for users of Microsoft's high-contrast mode this may be disabled to reduce bundle size:

.no-high-contrast-window {
	@include oIconsContent(
		$icon-name: 'plus',
		$color: oColorsByName('claret'),
		$high-contrast-fallback: false
	);
}

Using the default CSS helper classes

To output all icon helper classes include the oIcons mixin.

@import "@financial-times/o-icons/main";
@include oIcons(); // include helper classes for all icons

To avoid including all icon helper classes, oIcons mixin also accepts a list of icons to include:

@include oIcons($opts: (
	'icons': ('arrow-down', 'audio') // include helper classes for the arrow-down and audio icons
));

Contributing

o-icons is some Sass mixins and helpers for using the fticons image set. To add a new icon you need to add it to the fticons set. There are instructions in the origami-image-service README. When the icon is in fticons, run node ./scripts/build-icon-list.js NAME_OF_THE_NEW_ICON to update o-icons Sass with the new icon automatically.

If you need to remove an icon from o-icons you run node ./scripts/build-icon-list.js NAME_OF_THE_NEW_ICON remove.

Migration

StateMajor VersionLast Minor ReleaseMigration guide
✨ active7N/Amigrate to v6
╳ deprecated66.3migrate to v6
╳ deprecated55.9migrate to v5
╳ deprecated44.5migrate to v4
╳ deprecated33.3-
╳ deprecated22.4-
╳ deprecated11.2-

Contact

If you have any questions or comments about this component, or need help using it, please either raise an issue, visit #origami-support or email Origami Support.


Licence

This software is published by the Financial Times under the MIT licence.

7.8.0

1 month ago

7.7.2

1 month ago

7.7.1

7 months ago

7.7.0

9 months ago

7.6.1

9 months ago

7.6.0

1 year ago

7.5.0

2 years ago

7.4.0

2 years ago

7.3.0

2 years ago

7.2.1

2 years ago

7.2.0

2 years ago

7.1.0

3 years ago

7.0.2

3 years ago

7.0.1

3 years ago

7.0.0

3 years ago

7.0.0-0

3 years ago

7.0.0-beta.0

3 years ago

6.3.0

3 years ago

6.2.1

3 years ago

6.1.0

3 years ago

6.0.7

4 years ago

6.0.6

4 years ago

6.0.5

4 years ago

6.0.4

4 years ago

6.0.3

4 years ago

6.0.2

4 years ago

6.0.1

4 years ago

6.0.0

5 years ago

6.0.0-beta.3

5 years ago

6.0.0-beta.2

5 years ago

6.0.0-beta.1

5 years ago

4.5.2

5 years ago

4.5.1

5 years ago

4.5.0

5 years ago

5.11.2

5 years ago

5.11.1

5 years ago

5.11.0

5 years ago

5.10.0

5 years ago