Real Values.
Quick Poll: Who are you ?
● Who is Backend Developer
● Who is Integrator
● Who is Frontend Developer
● Who is Project Management
● Who has not raised the hand yet
Slide 4
Slide 4 text
Real Values.
Responsive images and how to implement them
● Why is that relevant
● The relevant HTML standards
● CMS specific challenges & the
solution we ended up with
● Questions
Slide 5
Slide 5 text
Real Values.
Why is that relevant!
4 Reasons
Slide 6
Slide 6 text
Real Values.
1. Devices
600 > 6000 px
Slide 7
Slide 7 text
Real Values.
2. Bandwidth
https://op.europa.eu/webpub/eca/special-reports/broadband-12-2018/de/
Rural areas
General
Slide 8
Slide 8 text
Real Values.
3. Timing
● Images are requested during parsing
● At the same time as CSS and JS
● Browsers only know about the HTML at that
stage
⏰
Real Values.
You can mess up performance in many ways
but you cannot achieve great performance
without caring for responsive-images!
Slide 11
Slide 11 text
Real Values.
Responsive images in HTML
a simplified overview
Slide 12
Slide 12 text
Real Values.
1992 - HTML 1.0
Slide 13
Slide 13 text
Real Values.
HTML 2.0 - 4.0
Slide 14
Slide 14 text
Real Values.
The long sleep
● One highres image will be fine for
all once bandwidth becomes cheap
● Then Smartphones and Tablets
became popular
● And mobile use became common
Slide 15
Slide 15 text
Real Values.
JS - Experiments
🪄
Slide 16
Slide 16 text
Real Values.
1x
2x
Multiple Resolutions
Slide 17
Slide 17 text
Real Values.
1x
2x
Multiple Resolutions
Slide 18
Slide 18 text
Real Values.
Multiple Resolutions
Slide 19
Slide 19 text
Real Values.
Multiple Sizes
Slide 20
Slide 20 text
Real Values.
Multiple Sizes
Slide 21
Slide 21 text
Real Values.
600w
800w
1000w
1200w
Multiple Sizes
Slide 22
Slide 22 text
Real Values.
600w
800w
1000w
1200w
Slide 23
Slide 23 text
Real Values.
- Art direction
Case 1, same cat different crops
Slide 24
Slide 24 text
Real Values.
- Art direction
🌙 ☀
Case 2: Different cat depending on use case
Slide 25
Slide 25 text
Real Values.
- Art direction
Slide 26
Slide 26 text
Real Values.
- Multiple formats
Slide 27
Slide 27 text
Real Values.
- Multiple formats
/picture>
Slide 28
Slide 28 text
Real Values.
Cat loading behavior
Slide 29
Slide 29 text
Real Values.
Image loading behavior
Request when close to viewport
Or never
Request immediately during parsing
Slide 30
Slide 30 text
Real Values.
Cat appearance behavior
Slide 31
Slide 31 text
Real Values.
Image appearance behavior
CSS
Request immediately during parsing
Slide 32
Slide 32 text
Real Values.
Future ● Smarter Browsers?
○ Consider current bandwidth
○ Consider CSS for lazy images
● Successor for JPEG / PNG?
of cat images
Slide 33
Slide 33 text
Real Values.
Responsive images are not
that hard
Slide 34
Slide 34 text
Real Values.
Non trivial to
implement
● Editors can select images with
different aspects
● Content Elements may be used in
different contexts
● Separation of Integration and
Presentation requires error prone
communication of many urls
Slide 35
Slide 35 text
Real Values.
Hard to verify
● You can only spot low resolutions
● Offices have fast networks
● Browsers other than Firefox stick to
highres Versions
Slide 36
Slide 36 text
Real Values.
Sitegeist.Kaleidoscope
responsive images for Neos
Slide 37
Slide 37 text
Real Values.
Quick Poll: Who knows Kaleidoscope ?
● Who has heard about Kaleidoscope
● Who actually tested it
● Who uses it all the time
Slide 38
Slide 38 text
Real Values.
the idea
● Avoid creating dozens of urls
● Decide on dimensions in
presentation
● Make mistakes visible
● In other aspects stay close to
HTML
Slide 39
Slide 39 text
Real Values.
AssetImageSource
imageSource = Sitegeist.Kaleidoscope:AssetImageSource
{
asset = ${q(node).property("image")}
title = ${q(node).property("title")}
alt = ${q(node).property("alternateText")}
}