Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@financial-times/o-teaser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
o-teaser
This component is for displaying teasers which link through to articles.
Usage
Check out how to include Origami components in your project to get started with o-teaser.
Development
Install the Origami build tools to build and run demos
Markup
The basic markup structure for a teaser will look something like this:
<div class="o-teaser o-teaser--small">
<div class="o-teaser__content">
<a href="#" class="o-teaser__tag">World</a>
<h2 class="o-teaser__heading">
<a href="#">Japan sells negative yield 10-year bonds</a>
</h2>
<div class="o-teaser__timestamp">
<time
data-o-component="o-date"
class="o-teaser__timestamp-date"
datetime="2016-02-29T12:35:48Z"
>2016-02-29T12:35:48Z</time
>
</div>
</div>
</div>Optionally include the o-date component within your project to render a formatted date within the timestamp element o-teaser__timestamp. This is required to render relative timestamps e.g. "1hr ago".
Teasers support a wide array of elements and can be customised using several themes and should be used as required. For a full list of examples including example markup, see o-teaser in the Registry.
Images
To add an image to a teaser, you should use the following markup structure:
<div class="o-teaser__image-container">
<img src="{image-src}" class="o-teaser__image" alt="{alt text}" />
</div>To support lazy-loading of images you can use the o-teaser__image-placeholder element, as below:
<div class="o-teaser__image-container">
<div class="o-teaser__image-placeholder">
<img src="{image-src}" class="o-teaser__image" alt="{alt text}" />
</div>
</div>Supported elements
The following elements are supported by default:
.o-teaser__tag # Small coloured tag at the top of the teaser
.o-teaser__tag-suffix # Small coloured content to come after the tag, such as timestamp or duration
.o-teaser__tag-prefix # A container for content before the tag
.o-teaser__heading # Main heading of the teaser
.o-teaser__standfirst # A short piece of content
.o-teaser__image-container # Wrapper element for an image
.o-teaser__image # An image for the teaser
.o-teaser__headshot # Author's headshot image
.o-teaser__timestamp # A styled timestamp for the teaser
.o-teaser__related # A list of related content links
.o-teaser__related-item # A single item of a related content listSass
To include styles for all teasers call oTeaser:
@import '@financial-times/o-teaser/main';
@include oTeaser();Teasers are made up of various elements (e.g. heading, standfirst, timestamp) and a series of themes (e.g. small, large, video). Pass a list of elements and themes in an options $opts argument to include only the styles you need:
@include oTeaser(
$opts: (
'elements': (
'default',
'images',
),
'themes': (
'small',
'large',
'video',
),
)
);Elements are specified via groups, they include:
default- all basic text elements, including: heading, standfirst, meta, and tag.images- all image element stylespromoted- promoted by and paid post element stylesrelated-items- styling for the related items elementstimestamp- styles for the timestamp and live post styles
Themes include:
small- styling for small teaserslarge- styling for large teasersstandard- outputs the opinion and inverse themesvideo- outputs the video teaser stylesaudio- outputs the audio teaser stylestop-stories- outputs all top stories teaser styles and variationshero- outputs all hero teaser styles and variations
Themes
o-teaser has a selection of themes to help highlight content and provide a diverse layout. Themes are separated into 3 types of layout, each with their own modifiers to add different variations on the styles.
Small teasers
Uses the o-teaser--small modifier.
Additional modifiers:
stacked: moves the image to the top of the teaseropinion: changes the tag colour to bluelive: change background to red and position of elements to make the teaser stand outpost: set liveblog post styles
Large teasers
Uses the o-teaser--large modifier.
Additional modifiers:
opinion: adds a blue backgroundhighlight: adds a claret background
Hero teasers
Uses the o-teaser--hero modifier.
Additional modifiers:
centred: centres the image and textopinion: adds a blue backgroundhighlight: adds a claret backgroundstretched: makes the teaser take up the full height of the available space and anchors the standout and timestamp content to the bottom of the teaser.
Video teasers
Uses the o-teaser--video modifier.
Video teasers
Uses the o-teaser--audio modifier.
Migration guide
| State | Major Version | Last Minor Release | Migration guide |
|---|---|---|---|
| ⚠ maintained | 8 | N/A | migrate to v8 |
| ╳ deprecated | 7 | 7.2.1 | migrate to v7 |
| ╳ deprecated | 6 | 6.4 | migrate to v6 |
| ╳ deprecated | 5 | 5.2 | migrate to v5 |
| ╳ deprecated | 4 | 4.0 | migrate to v4 |
| ╳ deprecated | 3 | 3.5 | migrate to v3 |
| ╳ deprecated | 2 | 2.5 | migrate to v2 |
| ╳ deprecated | 1 | 1.9 | - |
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.