├── .editorconfig ├── .eslintrc ├── .gitignore ├── 3d-card-flip ├── card-flip.js ├── images │ ├── penumbra.svg │ ├── supercharged.jpg │ └── umbra.svg ├── index.html ├── inert.js └── styles.css ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── accordion ├── index.html ├── sc-accordion.js ├── sc-pane.js └── styles.css ├── animated-blur ├── badblur.html ├── goodblur.html ├── images │ ├── android.png │ ├── chrome.png │ ├── gmail.png │ ├── maps.png │ ├── photos.png │ ├── search.png │ ├── translate.png │ └── youtube.png ├── index.html ├── reallybadblur.html └── scripts │ └── animated_blur.js ├── animated-clip ├── advanced │ ├── expando.css │ ├── expando.js │ └── index.html ├── index.html └── menu.js ├── code-splitting ├── .gitignore ├── README.md ├── app │ ├── about │ │ └── index.html │ ├── contact │ │ └── index.html │ ├── favicon.ico │ ├── footer.partial.html │ ├── header.partial.html │ ├── index.html │ ├── misc │ │ └── index.html │ ├── sitemap.xml │ └── static │ │ ├── about.js │ │ ├── app.js │ │ ├── contact.js │ │ ├── database.js │ │ ├── images │ │ └── spinner.png │ │ ├── index.js │ │ ├── misc.js │ │ ├── mp4.js │ │ ├── sc-router.js │ │ ├── sc-view.js │ │ ├── superstyles.css │ │ └── videoencoder.js ├── build.js ├── index.js └── package.json ├── custom-scrollbar ├── cat.gif ├── index.html ├── scrollbar.js ├── step-1.html ├── step-2.html ├── step-3.html ├── step-4.html ├── step-5.html └── step-6.html ├── expand-collapse ├── demo.js ├── flip.js ├── images │ └── img.jpg ├── index.html └── style.css ├── firebase-firestore-comments ├── .babelrc ├── .firebaserc ├── .gitignore ├── firebase.json ├── package.json ├── src │ ├── client │ │ └── index.js │ ├── components │ │ ├── sc-comment-form.js │ │ ├── sc-comment-list.js │ │ ├── sc-comment.js │ │ ├── sc-element.js │ │ └── sc-login.js │ └── server │ │ ├── index.html │ │ └── index.js └── yarn.lock ├── flip-switch ├── flip-switch.html ├── flip-switch.js ├── index.html └── inert.min.js ├── image-zoomer ├── gibraltar.jpg ├── image-zoomer.js ├── index.html └── styles.css ├── index.html ├── infinite-scroller ├── es6-promise.js ├── images │ ├── avatar0.jpg │ ├── avatar1.jpg │ ├── avatar2.jpg │ ├── avatar3.jpg │ ├── image0.jpg │ ├── image1.jpg │ ├── image10.jpg │ ├── image11.jpg │ ├── image12.jpg │ ├── image13.jpg │ ├── image14.jpg │ ├── image15.jpg │ ├── image16.jpg │ ├── image17.jpg │ ├── image18.jpg │ ├── image19.jpg │ ├── image2.jpg │ ├── image20.jpg │ ├── image21.jpg │ ├── image22.jpg │ ├── image23.jpg │ ├── image24.jpg │ ├── image25.jpg │ ├── image26.jpg │ ├── image27.jpg │ ├── image28.jpg │ ├── image29.jpg │ ├── image3.jpg │ ├── image30.jpg │ ├── image31.jpg │ ├── image32.jpg │ ├── image33.jpg │ ├── image34.jpg │ ├── image35.jpg │ ├── image36.jpg │ ├── image37.jpg │ ├── image38.jpg │ ├── image39.jpg │ ├── image4.jpg │ ├── image40.jpg │ ├── image41.jpg │ ├── image42.jpg │ ├── image43.jpg │ ├── image44.jpg │ ├── image45.jpg │ ├── image46.jpg │ ├── image47.jpg │ ├── image48.jpg │ ├── image49.jpg │ ├── image5.jpg │ ├── image50.jpg │ ├── image51.jpg │ ├── image52.jpg │ ├── image53.jpg │ ├── image54.jpg │ ├── image55.jpg │ ├── image56.jpg │ ├── image57.jpg │ ├── image58.jpg │ ├── image59.jpg │ ├── image6.jpg │ ├── image60.jpg │ ├── image61.jpg │ ├── image62.jpg │ ├── image63.jpg │ ├── image64.jpg │ ├── image65.jpg │ ├── image66.jpg │ ├── image67.jpg │ ├── image68.jpg │ ├── image69.jpg │ ├── image7.jpg │ ├── image70.jpg │ ├── image71.jpg │ ├── image72.jpg │ ├── image73.jpg │ ├── image74.jpg │ ├── image75.jpg │ ├── image76.jpg │ ├── image8.jpg │ ├── image9.jpg │ └── unknown.jpg ├── index.html ├── scripts │ ├── infinite-scroll.js │ └── messages.js ├── stats.min.js └── styles │ └── messages.css ├── lazy-image ├── index.js ├── package-lock.json ├── package.json └── static │ ├── images │ ├── a.jpg │ ├── b.jpg │ ├── c.jpg │ └── d.jpg │ ├── index.html │ ├── index_rendered.html │ ├── sc-img.js │ └── styles.css ├── parallax ├── header.html ├── images │ ├── screengrab.jpg │ ├── sea.jpg │ ├── stars.jpg │ └── sunset.jpg ├── index.html └── scripts │ └── parallax.js ├── router-advanced ├── README.md ├── about │ └── index.html ├── contact │ └── index.html ├── favicon.ico ├── index.html ├── misc │ └── index.html └── static │ ├── app.js │ ├── images │ └── spinner.png │ ├── sc-router.js │ ├── sc-view.js │ └── superstyles.css ├── router ├── README.md ├── app.yaml ├── favicon.ico ├── index.html ├── index.yaml ├── main.py └── static │ ├── sc-router.js │ ├── sc-view.js │ └── superstyles.css ├── server-side-rendering ├── README.md ├── app │ ├── about │ │ └── index.html │ ├── contact │ │ └── index.html │ ├── favicon.ico │ ├── footer.partial.html │ ├── header.partial.html │ ├── index.html │ ├── misc │ │ └── index.html │ └── static │ │ ├── app.js │ │ ├── images │ │ └── spinner.png │ │ ├── sc-router.js │ │ ├── sc-view.js │ │ └── superstyles.css ├── cert.pem ├── index.js ├── key.pem └── package.json ├── service-worker ├── README.md ├── app │ ├── about │ │ └── index.html │ ├── contact │ │ └── index.html │ ├── favicon.ico │ ├── footer.partial.html │ ├── header.partial.html │ ├── index.html │ ├── misc │ │ └── index.html │ ├── static │ │ ├── app.js │ │ ├── images │ │ │ └── spinner.png │ │ ├── sc-router.js │ │ ├── sc-view.js │ │ └── superstyles.css │ └── sw.js ├── cert.pem ├── index.js ├── key.pem └── package.json ├── side-nav ├── detabinator.js ├── index.html ├── side-nav.js └── styles.css ├── stream-progress ├── README.md ├── dial.js ├── index.html ├── stream.js ├── third_party │ └── transformstream.js └── tweets.json ├── streaming-service-worker ├── client │ └── sw.js ├── package-lock.json ├── package.json ├── posts │ ├── combining-fonts │ │ ├── content.md │ │ └── meta.json │ ├── es-modules-in-browsers │ │ ├── content.md │ │ └── meta.json │ └── h2-push-tougher-than-i-thought │ │ ├── content.md │ │ └── meta.json ├── server │ ├── error404.js │ ├── index.js │ ├── marked.js │ ├── rev.js │ └── routes.js ├── static │ ├── css │ │ ├── all.css │ │ └── imgs │ │ │ ├── check.png │ │ │ ├── graph-tile.png │ │ │ └── social-icons.png │ ├── favicon.ico │ └── imgs │ │ ├── browser-icons │ │ ├── chrome.png │ │ ├── edge.png │ │ ├── firefox.png │ │ └── safari.png │ │ ├── icon.png │ │ └── me.jpg └── templates │ ├── 404.njk │ ├── base-side.njk │ ├── base.njk │ ├── index.njk │ ├── offline-inc.njk │ ├── post-inc.njk │ ├── post.njk │ ├── shell.njk │ ├── who-inc.njk │ └── who.njk ├── swipeable-cards ├── cards.css ├── cards.js └── index.html ├── template ├── element.css ├── element.js └── index.html ├── web-workers ├── index.html ├── main.css └── worker.js └── webgl-image-processing ├── app.js ├── image.jpg └── index.html /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "google", 3 | "env": { 4 | "browser": true, 5 | "es6": true 6 | }, 7 | "rules": { 8 | "space-before-function-paren": [2, {"named": "always", "anonymous": "always"}], 9 | "max-len": [2, 100, { 10 | "ignoreComments": true, 11 | "ignoreUrls": true, 12 | "tabWidth": 2 13 | }], 14 | "no-implicit-coercion": [2, { 15 | "boolean": false, 16 | "number": true, 17 | "string": true 18 | }], 19 | "no-unused-expressions": [2, { 20 | "allowShortCircuit": true, 21 | "allowTernary": false 22 | }], 23 | "no-unused-vars": [2, { 24 | "vars": "all", 25 | "args": "after-used", 26 | "argsIgnorePattern": "(^reject$|^_$)", 27 | "varsIgnorePattern": "(^_$)" 28 | }], 29 | "quotes": [2, "single"], 30 | "require-jsdoc": 0, 31 | "valid-jsdoc": 0 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | *.pyc 4 | serve 5 | *.pem 6 | .vscode 7 | -------------------------------------------------------------------------------- /3d-card-flip/images/penumbra.svg: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /3d-card-flip/images/supercharged.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoogleChromeLabs/ui-element-samples/cb21b7cb6b4de707cdd1856becb018d9b28c455b/3d-card-flip/images/supercharged.jpg -------------------------------------------------------------------------------- /3d-card-flip/images/umbra.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /3d-card-flip/index.html: -------------------------------------------------------------------------------- 1 | 13 | 14 |
15 | 16 | 17 | 18 |