The AMP Project Roadmap
The ongoing development of AMP is conducted in working groups, each with knowledge or interest in a specific area of AMP.
To make their work visible to the community all groups provide regular status updates with details of what they have accomplished and what's up next.
All of the updates listed here are available as issues on GitHub and we'd love you to join the conversation there!
Select working groups
Bento
Status Update Tue Jan 19 2021What was accomplished
- Ready for dev preview. Waiting for some amp.dev updates to go public.
- Dev-preview related minor fixes.
- Sidebar: RTL and styling fixes
- We now have ResizeObserver polyfill across all of AMP
- Initial resize-code refactoring.
Lessons learned
What's next
- Continuing: Video docking
- Start: lightbox gallery
- Social share: focus outline work
- Continuing: amp-truncated-text
- Upgrading storybook
- Start: npm packages for (P)react components
Bento
Status Update Tue Jan 05 2021What was accomplished
- Most folks OOO
- Bug fixes from year end bug bash
- Imperative API
- Work started on amp-sidebar
Lessons learned
- box-styles propagation through
display: contents
1-pager
What's next
- Preparing amp.dev with high level Bento information and usage guides
- Developer preview of our first 16 components
amp-truncate-text
Bento
Status Update Mon Dec 07 2020What was accomplished
- Most of carousel baseline features completed
- Accordion: display locking completed.
- Imperative APIs: design completed.
- Troubleshooting IntersectionObserver spec problems.
Lessons learned
Bento
Status Update Mon Nov 23 2020What was accomplished
amp-accordion
:- external API restructure
- accessibility attributes
amp-base-carousel
snap-align
feature to view slides either atstart
orcenter
of carousel viewportamp-lightbox
initial implementationamp-selector
:keyboard-select-mode
feature for Arrow key navigation and selection configuration- Preact unit tests
- Ongoing fixes for resource loaders and intersection observers
- Imperative API design and discussion
- Documentation written for
amp-instagram
,amp-youtube
,amp-lightbox
- Removed
viewportCallback
fromBaseElement
- PR deploy bot integration with Storybook
Lessons learned
- You can run Preact Devtools in Storybook by adding
import 'preact/debug';
to the start of the story. - We make sure
hidden
isdisplay:none
in AMP but it is much more fragile (overridable) to use it in Bento mode.
What's next
- Finalizing dev preview feature set and planning for beta
- Continued progress on imperative API
amp-accordion
:- display locking
- final touches
amp-base-carousel
:- e2e tests
orientation
feature to configure the carousel as horizontal or vertical scrollingdir="rtl"
supportamp-selector
integration with forms
Bento
Status Update Mon Nov 09 2020What was accomplished
- Video iframe code merged for Preact
- Progress on docking
- Static Storybook deployment
- Implemented CE disconnect/connect as Preact mount/unmount
- Built support for media attributes, including boolean media attributes
- amp-bind is supported in the Storybook
- Imperative API for accordion completed
- Bind protocol for accordion completed
- Continued progress on viewportCallback removal
- Started lightbox implementation
Lessons learned
What's next
- amp-video-iframe binding for video iframe
- auto-advance in carousel
- carousel thumbnails
- carousel snapping features
- DOM event support for accordion
- Restructure accordion for better Preact semantics and support display locking
- Preact and AMP bindings implementation of lightbox
Bento
Status Update Tue Oct 27 2020What was accomplished
- Prototypes created for mixed-length and streaming carousel types
- Accordion: a11y support and styling.
- Accordion: work started on imperative APIs.
- Video iframes and YouTube components are code complete.
- Started lightbox components. Presented in design review.
- Replacing
viewportCallback
withIntersectionObserver
throughout the runtime.
Lessons learned
What's next
- Continue work on video docking
- Continue work on stream and mixed-length carousel types.
- Continue work on lightbox components.
- Continue work on accordion imperative APIs, a11y, and structure.
- Support media-query attributes.
Bento
Status Update Mon Oct 12 2020What was accomplished
- Design work has started on the AMP/JSX templates.
- YouTube component is in progress.
- More carousel features added such as controls and snapping.
- DateCountdown component - code-complete.
- Accordion: animations done.
- amp-img SSR is launching and collecting metrics.
- Instagram component completed.
- Aspect ratio supported for
layout=responsive
. Unfortunately, it doesn't work forlayout=intrinsic
. - Did some evaluations and filed bugs on Goober - a potential alternative for JSS.
Lessons learned
- Animations could potentially be easier solved with Web Animations API. The big benefit is that some CSS properties can be easier managed for setup and cleanup as the keyframes definition.
What's next
- Video docking.
- StreamGallery component.
- Complete accordion features.
- Make decision on auto-envelope for dev preview.
- LIghtbox components.
- Start reducing AMP Runtime reliance on the measuring code.
Bento
Status Update Mon Sep 28 2020What was accomplished
amp-video
complete.- MediaSession support for videos: close to be done.
- VideoIframe component has been started.
- Loading model is redone via
loading
prop. layout=responsive
implementation viaaspect-ratio
CSS completed- social-share: fixed error handling
- social-share: refresh of all styles and icons completed
- date-countdown: AMP mapping in progress
- JSS support has been completed on the infra side.
- finished analysis for JSS competitors: Emption, Goober, and Aphrodite.
- Instagram: code complete, tests WIP.
- Improved AMP mode in the storybook to make parameter selections sticky.
- Shadow DOM support: automatically discover slot distribution changes.
- Multi-attribute parsing supported where different input formats can map to a single Preact prop.
- Fixed Closure bugs on destructured property typing.
- Auto-envelope experimentation in progress to execute extensions w/o v0.js.
Lessons learned
What's next
- Working on dev preview launch plans.
- Start templates-via-JSX design.
- Start YouTube component.
- Start Accordion component.
- Complete date-countdown and instagram support.
Bento
Status Update Mon Sep 14 2020What was accomplished
- Initial amp-inline-gallery and amp-inline-gallery-pagination completed.
- Improved style propagation from Web components to Preact components.
- Started experimentation with auto-envelope for Bento: a smaller custom-element wrapper that could allow us to run Bento components w/o runtime.
- amp-date-countdown design and initial work on Preact component completed.
- JSS support completed and ready for use.
- Completed design review for ad-frame components (amp-facebook-comments and amp-twitter).
- Prototyping completed for
::part
CSS.
Lessons learned
- Using fake timer when testing Preact has to be done very carefully to avoid "stuck" global queues. Always call
clock.runAll()
inafterEach
. A more stable solution is in research. - The
::part
CSS could be very natural for Bento. However, our typical markup is incompatible with it and would need to be changed. However, that often limits some of the CSS/markup that we've been using.
What's next
- Review light-DOM components, especially template-based ones.
- amp-instagram support.
- amp-date-countdown AMP/Bento bindings.
- Working on "developer preview" plans.
Bento
Status Update Mon Aug 31 2020What was accomplished
- Video Manager Preact implementation in review
- New Bento Storybook mode deployed to @ampproject/storybook-addon
- Mutation Observer system imlpemented
- Supported declarative shadow DOM spec (proof of concept)
- Started work on auto-eveloped extensions prototype
- JSS supported for Bento components and recompiled for AMP mode.
- Imperative API support
Lessons learned
What's next
- JSS design review on Sep 2nd
- Inline gallery Bento implementation
- amp-date-countdown Bento implementation
- Continue video manager work
Bento
Status Update Mon Aug 03 2020What was accomplished
- Started Video Player implementation
- Started work on advanced carousel components: inline-gallery and streaming-gallery
- Context API: subscriber and component APIs in review
- CSS design ready based on JSS framework
- Model for container wrappers based on the
contain
CSS as an alternative to AMP's layouts. - amp-img SSR work in progress.
- Main social-share redesign complete with more advanced customization.
- New embedding mode with non-empty passthrough when a shadow DOM is given a slot only when children are available. This allows us to support text nodes as well as elements as children.
- Renewed focus on unit and integration testing of both: Preact and AMP elements.
Lessons learned
- Our carousel ecosystem is very advanced.
- How useful
display:none
in React world?
What's next
- Start using Context API
- Storybook: Bento mode that does not reload the whole AMP page.
- Continued progress on advanced carousels
- Continued progress on video players
- Prototype auto-enveloped extensions that can run without v0.js
- CSS implementation for components and shadow DOM.
Bento
Status Update Mon Jul 20 2020What was accomplished
- Context API introduced to AMP for discovery phase, value propagation in progress
- Using externs to define types for props, allowing direct prop access and destructuring in components
amp-social-share
:- update experiment name
- design documentation
- configurable
color
andbackgroundColor
for preconfigured providers
- Video players design
amp-base-carousel
:- Initial Preact implementation with looping and smooth scrolling
- AMP layer and default arrow UI in progress
What's next
- Continued progress on Context API
- Add
passthrough-non-empty
foramp-social-share
- Continued progress on Carousel
- Prototype video players
- Prototype extension "auto-envelope" for Bento and AMP modes
Bento
Status Update Mon Jun 22 2020What was accomplished
- Teams were off on FixIt. So limited progress.
- Intersection observer polyfill fully launched. But some research regarding possibly duplicate firings.
What's next
- Start video work
- More progress on carousels
- More progress on context propagation
- More progress on social share
Bento
Status Update Tue May 26 2020What was accomplished
- IntersectionObserver polyfill goes live this week. But it can't be yet relied on 100% until inabox launch happens.
- amp-selector and amp-fit-text are in.
- fixed long-standing layout bugs for text content and unupgraded elements.
- layout=responsive support in Bento
- amp-social-share: working on a better boundary between the component and AMP.
- Work started on the context propagation design
- Aspect-ratio CSS: functional in the Chrome Dev. Looking for cross-browser solutions.
Lessons learned
- At least in case of amp-fit-text, there are significant improvements to the Web Component with the new model both in terms of functionality and UX. So there are many improvement opportunities over the current state.
What's next
- amp-carousel
- Additional code-style improvements are on the way, such as unquoted props support.
- Storybook addon for AMP is being released as a separate package.