├── .gitignore ├── media └── preview.jpg ├── registration.php ├── Magento_Theme ├── layout │ └── override │ │ └── base │ │ └── default.xml └── templates │ └── root.phtml ├── theme.xml ├── composer.json ├── README.md └── etc └── view.xml /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .DS_Store 3 | node_modules 4 | vendor 5 | -------------------------------------------------------------------------------- /media/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magento-research/theme-frontend-pwa/HEAD/media/preview.jpg -------------------------------------------------------------------------------- /registration.php: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Magento PWA Base 10 | 11 | media/preview.jpg 12 | 13 | 14 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "magento-research/theme-frontend-pwa", 3 | "description": "Required base theme for Magento PWAs", 4 | "keywords": ["magento", "pwa", "magento2", "magento2-theme", "progressive", "reactjs"], 5 | "require": { 6 | "php": "~5.5.0|~5.6.0|~7.0.0|~7.1" 7 | }, 8 | "type": "magento2-theme", 9 | "license": [ 10 | "OSL-3.0", 11 | "AFL-3.0" 12 | ], 13 | "autoload": { 14 | "files": [ 15 | "registration.php" 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Magento_Theme/templates/root.phtml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Magento PWA Base Theme 2 | 3 | Required base theme for Magento PWA Studio. 4 | 5 | ⚠️ **This theme contains no UI or presentational code.** Its role is to 6 | configure the Magento 2 layout system to render the Application Shell for a PWA, 7 | and to serve as a common base theme for Magento PWAs that helps Magento to 8 | identify PWA-enabled themes. 9 | 10 | ## Usage 11 | 12 | A Magento PWA Studio theme must use this theme, **Magento/pwa**, as its parent 13 | theme. This works just like current-state Magento themes do: declare the parent 14 | theme in `theme.xml`, and add a dependency `magento-research/theme-module-pwa` 15 | to your `composer.json` file. This theme is published on Packagist, so no 16 | license keys or additional Composer repository configurations are necessary. 17 | 18 | ## Features 19 | 20 | ### Layout Simplification 21 | 22 | This theme overrides the core page layouts implemented in the `Magento_Theme` 23 | module. Because Magento PWAs don't use traditional Magento layout resolution, 24 | it's most efficient to turn off as much of the layout system as you can. This 25 | theme contains XML config files which disable and remove as much of the layout- 26 | driven UI as possible. Almost all of it can be done in `default.xml`. 27 | 28 | ### Application Shell Template 29 | 30 | This theme overrides the base PHTML template for Magento storefronts: 31 | `root.phtml`. You can customize your application shell by further overriding 32 | this template file and inserting your own markup and server logic. 33 | 34 | ### Flags PWAs 35 | 36 | Magento 2 will provide more and more optimization around "PWA mode" in future 37 | releases. It follows that there ought to be a simple way for the backend to 38 | identify whether a theme is a "PWA theme" or not. In this version of PWA Studio, 39 | server logic will simply examine your theme to see if its `parent` is this theme. 40 | 41 | Beyond this, we discourage using theme inheritance for code reuse in the 42 | PWA world. -------------------------------------------------------------------------------- /etc/view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 140 13 | 140 14 | 15 | 16 | 17 | 152 18 | 188 19 | 20 | 21 | 110 22 | 160 23 | 24 | 25 | 240 26 | 300 27 | 28 | 29 | 240 30 | 300 31 | 32 | 33 | 100 34 | 100 35 | 36 | 37 | 285 38 | 285 39 | 40 | 41 | 113 42 | 113 43 | 44 | 45 | 75 46 | 75 47 | 48 | 49 | 100 50 | 100 51 | 52 | 53 | 78 54 | 78 55 | 56 | 57 | 240 58 | 300 59 | 60 | 61 | 270 62 | 270 63 | 64 | 65 | 78 66 | 78 67 | 68 | 69 | 265 70 | 265 71 | 72 | 73 | 140 74 | 140 75 | 76 | 77 | 78 | false 79 | 80 | 81 | 700 82 | 700 83 | 84 | 85 | 700 86 | 700 87 | false 88 | 89 | 90 | 90 91 | 90 92 | 93 | 94 | 700 95 | 700 96 | 97 | 98 | 700 99 | 700 100 | 101 | 102 | 90 103 | 90 104 | 105 | 106 | 76 107 | 76 108 | 109 | 110 | 135 111 | 135 112 | 113 | 114 | 75 115 | 75 116 | 117 | 118 | 240 119 | 300 120 | 121 | 122 | 75 123 | 90 124 | 125 | 126 | 76 127 | 76 128 | 129 | 130 | 270 131 | 207 132 | 133 | 134 | 240 135 | 300 136 | 137 | 138 | 75 139 | 90 140 | 141 | 142 | 76 143 | 76 144 | 145 | 146 | 270 147 | 270 148 | 149 | 150 | 140 151 | 140 152 | 153 | 154 | 285 155 | 285 156 | 157 | 158 | 75 159 | 75 160 | 161 | 162 | 75 163 | 75 164 | 165 | 166 | 135 167 | 135 168 | 169 | 170 | 75 171 | 90 172 | 173 | 174 | 140 175 | 140 176 | 177 | 178 | 75 179 | 90 180 | 181 | 182 | 113 183 | 113 184 | 185 | 186 | 240 187 | 300 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | thumbs 196 | true 197 | true 198 | true 199 | false 200 | true 201 | horizontal 202 | true 203 | slides 204 | 205 | slide 206 | 500 207 | 208 | 209 | thumbs 210 | true 211 | false 212 | false 213 | horizontal 214 | slides 215 | 216 | dissolve 217 | 500 218 | 219 | 220 | 221 | 222 | 223 | 20 224 | 225 | 226 | 227 | 228 | hover 229 | false 230 | 231 | 232 | 233 | 234 | 235 | 767px 236 | 237 | 238 | 239 | dots 240 | 241 | 242 | 243 | 244 | 245 | 246 | 100 247 | 275 248 | 48 249 | 250 | 166 251 | 370 252 | 253 | 0 254 | 255 | 256 | 58 257 | 258 | 259 | 1MB 260 | 261 | 262 | sw.js 263 | 264 | 265 | Lib::jquery/jquery.min.js 266 | Lib::jquery/jquery-ui-1.9.2.js 267 | Lib::jquery/jquery.ba-hashchange.min.js 268 | Lib::jquery/jquery.details.js 269 | Lib::jquery/jquery.details.min.js 270 | Lib::jquery/jquery.hoverIntent.js 271 | Lib::jquery/colorpicker/js/colorpicker.js 272 | Lib::requirejs/require.js 273 | Lib::requirejs/text.js 274 | Lib::date-format-normalizer.js 275 | Lib::legacy-build.min.js 276 | Lib::mage/captcha.js 277 | Lib::mage/dropdown_old.js 278 | Lib::mage/list.js 279 | Lib::mage/loader_old.js 280 | Lib::mage/webapi.js 281 | Lib::mage/zoom.js 282 | Lib::mage/translate-inline-vde.js 283 | Lib::mage/requirejs/mixins.js 284 | Lib::mage/requirejs/static.js 285 | Magento_Customer::js/zxcvbn.js 286 | Magento_Catalog::js/zoom.js 287 | Magento_Ui::js/lib/step-wizard.js 288 | Magento_Ui::js/form/element/ui-select.js 289 | Magento_Ui::js/form/element/file-uploader.js 290 | Magento_Ui::js/form/components/insert.js 291 | Magento_Ui::js/form/components/insert-listing.js 292 | Magento_Ui::js/timeline 293 | Magento_Ui::js/grid 294 | Magento_Ui::js/dynamic-rows 295 | Magento_Ui::templates/timeline 296 | Magento_Ui::templates/grid 297 | Magento_Ui::templates/dynamic-rows 298 | Magento_Swagger::swagger-ui 299 | Lib::modernizr 300 | Lib::tiny_mce 301 | Lib::varien 302 | Lib::jquery/editableMultiselect 303 | Lib::jquery/jstree 304 | Lib::jquery/fileUploader 305 | Lib::css 306 | Lib::lib 307 | Lib::extjs 308 | Lib::prototype 309 | Lib::scriptaculous 310 | Lib::less 311 | Lib::mage/adminhtml 312 | Lib::mage/backend 313 | 314 | 315 | --------------------------------------------------------------------------------