Skip to content

Instantly share code, notes, and snippets.

Responsive Scrolling Tabs

Magic tabs that resize themselves according to their container's width. Tab widths default to a percentage value, which is set automatically in CSS by counting child elements. If a tab's content overflows its available width, then the tabs adjust their widths to fit. If they can't fit on the screen then the tabs start to scroll horizontally.

A Pen by Ed Wright on CodePen.

License.

@edwinwright
edwinwright / 0_reuse_code.js
Created June 3, 2016 10:00
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@edwinwright
edwinwright / flexbox-sticky-footer-3.markdown
Created August 11, 2016 13:03
Flexbox Sticky Footer 3
@edwinwright
edwinwright / gh-pages-deploy.md
Created September 6, 2016 20:49 — forked from cobyism/gh-pages-deploy.md
Deploy to `gh-pages` from a `dist` folder on the master branch. Useful for use with [yeoman](http://yeoman.io).

Deploying a subfolder to GitHub Pages

Sometimes you want to have a subdirectory on the master branch be the root directory of a repository’s gh-pages branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master branch alongside the rest of your code.

For the sake of this example, let’s pretend the subfolder containing your site is named dist.

Step 1

Remove the dist directory from the project’s .gitignore file (it’s ignored by default by Yeoman).

@edwinwright
edwinwright / index.js
Last active October 10, 2016 13:54
RequireBin - Flattening Marvel API response with normalizr
const response = {
"code": 200,
"status": "Ok",
"copyright": "© 2016 MARVEL",
"attributionText": "Data provided by Marvel. © 2016 MARVEL",
"attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2016 MARVEL</a>",
"etag": "2f08937547f5cbb41e1f5845f9b3adf36417e332",
"data": {
"offset": 0,
"limit": 20,
@edwinwright
edwinwright / injectScript.js
Created June 13, 2017 14:30
Promise based script loader
const injectScript = (function() {
const scripts = {};
return (url) => {
if (scripts[url]) {
return scripts[url];
} else {
const promise = new Promise((resolve, reject) => {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.type = 'text/javascript';
@edwinwright
edwinwright / install-hooks.sh
Last active November 22, 2017 14:27
git hooks install script
#!/bin/bash
HOOK_NAMES="pre-commit"
HOOK_DIR=$(git rev-parse --show-toplevel)/.git/hooks
INSTALL_DIR=$(git rev-parse --show-toplevel)/hooks
COLOR_GREEN=`tput setaf 2`
COLOR_RESET=`tput sgr0`
for hook in $HOOK_NAMES; do
echo "Installing $hook hook..."
@edwinwright
edwinwright / mocha-test-promises.js
Created December 4, 2017 17:44
Testing functions that return Promises in Mocha
// Basic verification
// Returns the promise from somethingAsync()
// The test passes if resolved, fails if rejected
it('does something async with promises', function() {
return somethingAsync();
});
// Verify a fulfilled promise
// Returns the promise from somethingAsync() and runs assertions in the onFulfilled callback
@edwinwright
edwinwright / amend-git-commit-user.sh
Last active May 16, 2018 14:11
Change git commit history - amend user name and email
git filter-branch --env-filter '
OLD_EMAIL="old@email.com"
NEW_NAME="New Name"
NEW_EMAIL="new@email.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
@edwinwright
edwinwright / README.md
Last active May 29, 2018 08:22
Naming things in web development