SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Adobe Experience ManagerAdobe Experience Manager
Adobe Experience Manager 6.1:
Responsive Websites &
Grid-Based Layouts
Damien Antipa, Senior UX Engineer
Twitter: @visiongeist
Gabriel Walt, Product Manager
Twitter: @gabrielwalt
https://www.slideshare.net/GabrielWalt/aem-responsive
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Agenda
Responsive Websites & Grid-Based Layouts:
1. Overview
2. Edit Responsive Layouts
3. Setup Responsive Editing
4. Develop for the Grid
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Overview
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Adaptive vs Responsive
Adaptive
The server response will change to adapt to a defined set of screen size.
➔ Server-side device detection through a database of user-agents
➔ Consequence: Different URLs for different devices
Responsive
The design will fluidly change and respond to fit any screen size.
➔ Client-side feature detection through media queries
➔ Consequence: Same content delivered to all visitors
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Making Content Responsive
Traditional workflow
• A designer mocks the different breakpoints
• A developer implements the mocks

for a specific template
• The author picks that template

and fills the content
Responsive layout editing
• The author fills the content
• The author can adapt the layout
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Edit Responsive Layouts
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Layouting
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Floating
1 2 3 4
5 6 7 8
1 2
3 4
3 4
1
2
2
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Floating
1 2 3 4
5
6 7 8
1
2
3
1 2
3
4 5
6
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Breaking
1
2
3
1 2 3 4
5 6 7 8
1 2
3 4
5 6
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Nesting
1
2
3
4
5
6
1 2 3
5
4
1
2
3
4
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Hiding
1
2
3
4
5
6
1 3
5
4
4
5
6
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Setup Responsive Editing
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
0. Enable the Responsive Emulator
Register page components for simulation
➔ List the sling:resourceType of your pages in an OSGi config for
com.day.cq.wcm.mobile.core.impl.MobileEmulatorProvider
Specify the device groups
➔ On jcr:content node of the site root, add the following property:

jcr:content[nt:unstructured]

@cq:deviceGroups=["/etc/mobile/groups/responsive"]
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
1. Enable the Layouting Mode
Specify the breakpoints
➔ On jcr:content node of the site root, add following node structure:

jcr:content[nt:unstructured]

cq:responsive[nt:unstructured]

breakpoints[nt:unstructured]

phone[nt:unstructured]

@title="Smaller Screen"

@width=650

tablet[nt:unstructured]

@title="Tablet"

@width=1200
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
2. Enable the Responsive Grid
Use the responsive paragraph system
➔ Replace the parsys with the responsive one:

@resourceType="wcm/foundation/components/responsivegrid"
Include the responsive stylesheet
➔ Copy the following file into your client library:

/etc/designs/geometrixx-media/clientlibs/css/grid.less
➔ Adapt the breakpoints and the number of columns to your needs
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
3. Configure the Parsys Design Mode
Enable Layout Nesting
➔ In the General group of allowed components:

Authorize the Layout Container component
Define the number of columns
➔ If your parsys doesn’t exactly take 12 columns:

Set a value for the Columns input field

Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Develop for the Grid
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
A Project’s Grid Configuration
@import (once) "/etc/clientlibs/wcm/foundation/grid/grid_base.less";
/* maximum amount of grid cells to be provided */
@max_col: 12;
.aem-Grid {
.generate-grid(default, @max_col);
}
/* smaller screen (phone) breakpoint */
@media (max-width: 650px) {
.aem-Grid {
.generate-grid(phone, @max_col);
}
}
/* tablet breakpoint */
@media (min-width: 651px) and (max-width: 1200px) {
.aem-Grid {
.generate-grid(tablet, @max_col);
}
}
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Persistence in JCR Content
The component size is saved on the resource node

jcr:content[nt:unstructured]

parsys[nt:unstructured]

image[cq:Component]

@sling:resourceType="wcm/foundation/components/image"

...

cq:responsive[nt:unstructured]

default[nt:unstructured]

@width=4

phone[nt:unstructured]

@width=12
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
The Grid Markup
<div class="aem-Grid aem-Grid--12">
<div class="aem-GridColumn aem-GridColumn—default--2">
Col 1
</div>
<div class="aem-GridColumn aem-GridColumn—default--8">
Col 2
</div>
<div class="aem-GridColumn aem-GridColumn—default--2">
Col 3
</div>
</div>
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
The Grid Markup
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Floating Rendering
<div class="aem-Grid aem-Grid--12">
<div class="aem-GridColumn aem-GridColumn—default--2">
Col 1
</div>
<div class="aem-GridColumn aem-GridColumn—default--8">
Col 2
</div>
<div class="aem-GridColumn aem-GridColumn—default--2">
Col 3
</div>
<div class="aem-GridColumn aem-GridColumn—default--6">
Col 4
</div>
</div>
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Floating Rendering
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Leverage Breakpoints
<div class="aem-Grid aem-Grid--12">
<div class="aem-GridColumn
aem-GridColumn—default--2
aem-GridColumn—phone--12">
Col 1
</div>
<div class="aem-GridColumn
aem-GridColumn—default--8
aem-GridColumn—phone--6">
Col 2
</div>
<div class="aem-GridColumn
aem-GridColumn—default--2
aem-GridColumn—phone--6">
Col 3
</div>
</div>
/*
grid.less
smaller screen breakpoint
*/
@media (max-width: 650px) {
.aem-Grid {
.generate-grid(phone, 

@max_col);
}
}
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Leverage Breakpoints
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
<div class="aem-Grid aem-Grid--12">
<div class="aem-GridColumn
aem-GridColumn—default--4
aem-GridColumn—phone--hide">
Col 1
</div>
<div class="aem-GridColumn
aem-GridColumn—default--4">
Col 2
</div>
<div class="aem-GridColumn
aem-GridColumn—default--4
aem-GridColumn—phone--newline">
Col 3
</div>
</div>
➔ hide item
➔ force new line
Custom Behaviour
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
Custom Behaviour
Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive
<div class="aem-Grid aem-Grid--12">
<div class="aem-GridColumn
aem-GridColumn--default--4">
Parent Col 2
</div>
</div>
<div class="aem-GridColumn
aem-GridColumn--default--8">
<div class="aem-Grid aem-Grid--8">
<div class="aem-GridColumn
aem-GridColumn--default--4">
Child Col 1
</div>
<div class="aem-GridColumn
aem-GridColumn--default--4">
Child Col 1
</div>
</div>
</div>
Nested Grid
➔ The grid system is global
➔ AEM will take care of
inheriting the width
Adobe Experience Manager
Thanks!
Damien Antipa, Senior UX Engineer
Twitter: @visiongeist
Gabriel Walt, Product Manager
Twitter: @gabrielwalt
Markup example for front-end developers:
http://adobe-marketing-cloud.github.io/aem-responsivegrid/
Documentation Links
http://docs.adobe.com/docs/en/aem/6-1/administer/operations/page-authoring/configuring-responsive-layouting.html
http://docs.adobe.com/docs/en/aem/6-1/author/page-authoring/responsive-layout.html
https://www.slideshare.net/GabrielWalt/aem-responsive
AEM Responsive Grid

Mais conteúdo relacionado

Mais de Gabriel Walt

Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsGabriel Walt
 
AEM Sightly Deep Dive
AEM Sightly Deep DiveAEM Sightly Deep Dive
AEM Sightly Deep DiveGabriel Walt
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template LanguageGabriel Walt
 
CQ Provisionning & Authoring
CQ Provisionning & AuthoringCQ Provisionning & Authoring
CQ Provisionning & AuthoringGabriel Walt
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!Gabriel Walt
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMGabriel Walt
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev TricksGabriel Walt
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content RepositoryGabriel Walt
 

Mais de Gabriel Walt (11)

Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
 
AEM Sightly Deep Dive
AEM Sightly Deep DiveAEM Sightly Deep Dive
AEM Sightly Deep Dive
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template Language
 
CQ Provisionning & Authoring
CQ Provisionning & AuthoringCQ Provisionning & Authoring
CQ Provisionning & Authoring
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
Drive dam
Drive damDrive dam
Drive dam
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEM
 
CQ 5.4 Deep-Dive
CQ 5.4 Deep-DiveCQ 5.4 Deep-Dive
CQ 5.4 Deep-Dive
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 

Último

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Último (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

AEM Responsive Grid

  • 1. Adobe Experience ManagerAdobe Experience Manager Adobe Experience Manager 6.1: Responsive Websites & Grid-Based Layouts Damien Antipa, Senior UX Engineer Twitter: @visiongeist Gabriel Walt, Product Manager Twitter: @gabrielwalt https://www.slideshare.net/GabrielWalt/aem-responsive
  • 2. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Agenda Responsive Websites & Grid-Based Layouts: 1. Overview 2. Edit Responsive Layouts 3. Setup Responsive Editing 4. Develop for the Grid
  • 3. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Overview
  • 4. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Adaptive vs Responsive Adaptive The server response will change to adapt to a defined set of screen size. ➔ Server-side device detection through a database of user-agents ➔ Consequence: Different URLs for different devices Responsive The design will fluidly change and respond to fit any screen size. ➔ Client-side feature detection through media queries ➔ Consequence: Same content delivered to all visitors
  • 5. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Making Content Responsive Traditional workflow • A designer mocks the different breakpoints • A developer implements the mocks
 for a specific template • The author picks that template
 and fills the content Responsive layout editing • The author fills the content • The author can adapt the layout
  • 6. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Edit Responsive Layouts
  • 7. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Layouting
  • 8. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Floating 1 2 3 4 5 6 7 8 1 2 3 4 3 4 1 2 2
  • 9. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Floating 1 2 3 4 5 6 7 8 1 2 3 1 2 3 4 5 6
  • 10. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Breaking 1 2 3 1 2 3 4 5 6 7 8 1 2 3 4 5 6
  • 11. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Nesting 1 2 3 4 5 6 1 2 3 5 4 1 2 3 4
  • 12. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Hiding 1 2 3 4 5 6 1 3 5 4 4 5 6
  • 13. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Setup Responsive Editing
  • 14. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive 0. Enable the Responsive Emulator Register page components for simulation ➔ List the sling:resourceType of your pages in an OSGi config for com.day.cq.wcm.mobile.core.impl.MobileEmulatorProvider Specify the device groups ➔ On jcr:content node of the site root, add the following property:
 jcr:content[nt:unstructured]
 @cq:deviceGroups=["/etc/mobile/groups/responsive"]
  • 15. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive 1. Enable the Layouting Mode Specify the breakpoints ➔ On jcr:content node of the site root, add following node structure:
 jcr:content[nt:unstructured]
 cq:responsive[nt:unstructured]
 breakpoints[nt:unstructured]
 phone[nt:unstructured]
 @title="Smaller Screen"
 @width=650
 tablet[nt:unstructured]
 @title="Tablet"
 @width=1200
  • 16. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive 2. Enable the Responsive Grid Use the responsive paragraph system ➔ Replace the parsys with the responsive one:
 @resourceType="wcm/foundation/components/responsivegrid" Include the responsive stylesheet ➔ Copy the following file into your client library:
 /etc/designs/geometrixx-media/clientlibs/css/grid.less ➔ Adapt the breakpoints and the number of columns to your needs
  • 17. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive 3. Configure the Parsys Design Mode Enable Layout Nesting ➔ In the General group of allowed components:
 Authorize the Layout Container component Define the number of columns ➔ If your parsys doesn’t exactly take 12 columns:
 Set a value for the Columns input field

  • 18. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Develop for the Grid
  • 19. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive A Project’s Grid Configuration @import (once) "/etc/clientlibs/wcm/foundation/grid/grid_base.less"; /* maximum amount of grid cells to be provided */ @max_col: 12; .aem-Grid { .generate-grid(default, @max_col); } /* smaller screen (phone) breakpoint */ @media (max-width: 650px) { .aem-Grid { .generate-grid(phone, @max_col); } } /* tablet breakpoint */ @media (min-width: 651px) and (max-width: 1200px) { .aem-Grid { .generate-grid(tablet, @max_col); } }
  • 20. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Persistence in JCR Content The component size is saved on the resource node
 jcr:content[nt:unstructured]
 parsys[nt:unstructured]
 image[cq:Component]
 @sling:resourceType="wcm/foundation/components/image"
 ...
 cq:responsive[nt:unstructured]
 default[nt:unstructured]
 @width=4
 phone[nt:unstructured]
 @width=12
  • 21. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive The Grid Markup <div class="aem-Grid aem-Grid--12"> <div class="aem-GridColumn aem-GridColumn—default--2"> Col 1 </div> <div class="aem-GridColumn aem-GridColumn—default--8"> Col 2 </div> <div class="aem-GridColumn aem-GridColumn—default--2"> Col 3 </div> </div>
  • 22. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive The Grid Markup
  • 23. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Floating Rendering <div class="aem-Grid aem-Grid--12"> <div class="aem-GridColumn aem-GridColumn—default--2"> Col 1 </div> <div class="aem-GridColumn aem-GridColumn—default--8"> Col 2 </div> <div class="aem-GridColumn aem-GridColumn—default--2"> Col 3 </div> <div class="aem-GridColumn aem-GridColumn—default--6"> Col 4 </div> </div>
  • 24. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Floating Rendering
  • 25. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Leverage Breakpoints <div class="aem-Grid aem-Grid--12"> <div class="aem-GridColumn aem-GridColumn—default--2 aem-GridColumn—phone--12"> Col 1 </div> <div class="aem-GridColumn aem-GridColumn—default--8 aem-GridColumn—phone--6"> Col 2 </div> <div class="aem-GridColumn aem-GridColumn—default--2 aem-GridColumn—phone--6"> Col 3 </div> </div> /* grid.less smaller screen breakpoint */ @media (max-width: 650px) { .aem-Grid { .generate-grid(phone, 
 @max_col); } }
  • 26. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Leverage Breakpoints
  • 27. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive <div class="aem-Grid aem-Grid--12"> <div class="aem-GridColumn aem-GridColumn—default--4 aem-GridColumn—phone--hide"> Col 1 </div> <div class="aem-GridColumn aem-GridColumn—default--4"> Col 2 </div> <div class="aem-GridColumn aem-GridColumn—default--4 aem-GridColumn—phone--newline"> Col 3 </div> </div> ➔ hide item ➔ force new line Custom Behaviour
  • 28. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive Custom Behaviour
  • 29. Adobe Experience Manager https://www.slideshare.net/GabrielWalt/aem-responsive <div class="aem-Grid aem-Grid--12"> <div class="aem-GridColumn aem-GridColumn--default--4"> Parent Col 2 </div> </div> <div class="aem-GridColumn aem-GridColumn--default--8"> <div class="aem-Grid aem-Grid--8"> <div class="aem-GridColumn aem-GridColumn--default--4"> Child Col 1 </div> <div class="aem-GridColumn aem-GridColumn--default--4"> Child Col 1 </div> </div> </div> Nested Grid ➔ The grid system is global ➔ AEM will take care of inheriting the width
  • 30. Adobe Experience Manager Thanks! Damien Antipa, Senior UX Engineer Twitter: @visiongeist Gabriel Walt, Product Manager Twitter: @gabrielwalt Markup example for front-end developers: http://adobe-marketing-cloud.github.io/aem-responsivegrid/ Documentation Links http://docs.adobe.com/docs/en/aem/6-1/administer/operations/page-authoring/configuring-responsive-layouting.html http://docs.adobe.com/docs/en/aem/6-1/author/page-authoring/responsive-layout.html https://www.slideshare.net/GabrielWalt/aem-responsive