Useful for when a blocking user experience is needed (in my case, didn't want people unwittingly loosing their place by scrolling while a modal required their attention): $.scrollLock()
locks the body in place, preventing scroll until it is unlocked.
// Locks the page if it's currently unlocked
$.scrollLock();
// ...or vice versa
// UPDATE: In 2023, you should probably stop using this! The narrow version of Safari that | |
// does not support `nomodule` is probably not being used anywhere. The code below is left | |
// for posterity. | |
/** | |
* Safari 10.1 supports modules, but does not support the `nomodule` attribute - it will | |
* load <script nomodule> anyway. This snippet solve this problem, but only for script | |
* tags that load external code, e.g.: <script nomodule src="nomodule.js"></script> | |
* | |
* Again: this will **not** prevent inline script, e.g.: |
/// map-sort | |
/// Sort map by keys | |
/// @param $map - A SASS map | |
/// @returns A SASS map sorted by keys | |
/// @requires function list-sort | |
/// @author Jake Wilson <[email protected]> | |
@function map-sort($map) { | |
$keys: list-sort(map-keys($map)); | |
$sortedMap: (); | |
@each $key in $keys { |
1. Highlight a recommended option, | |
2. Allow users to switch currency (€/$/£) | |
3. Allow users to switch pricing monthly/yearly | |
4. Keep the entire pricing plan area clickable | |
5. Use slider to calculate how much a user would save | |
6. Provide free first month for good engagement | |
7. Prominently highlight testimonials prominently | |
8. Repeating call to action on top and bottom | |
9. Sell benefits instead of features | |
10. Indicate that users can cancel any time |
You probably arrived here because of a curt message in response to an issue you filed on a repo that I contribute to. Sorry about that (particularly if you filed the issue long ago and have been waiting patiently for a response). Let me explain:
I work on a lot of different open source projects. I really do like building software that makes other people's lives easier, but it's crazy time-consuming. One of the most time-consuming parts is responding to issues. A lot of OSS maintainers will bend over backwards to try and understand your specific problem and diagnose it, to the point of setting up new test projects, fussing around with different Node versions, reading the documentation for build tools that we don't use, debugging problems in third party dependencies that appear to be involved in the problem... and so on. I've personally spent hundreds of hours of my free time doing these sorts of things to try and help people out, because I want to be a responsible maintainer and I
var gulp = require('gulp'), | |
sass = require('gulp-sass'), | |
rename = require('gulp-rename'), | |
cssmin = require('gulp-cssnano'), | |
prefix = require('gulp-autoprefixer'), | |
plumber = require('gulp-plumber'), | |
notify = require('gulp-notify'), | |
sassLint = require('gulp-sass-lint'), | |
sourcemaps = require('gulp-sourcemaps'); | |
// Temporary solution until gulp 4 |
The following will guide you through the process of enabling SSL on a Apache webserver
- The instructions have been verified with OSX El Capitan (10.11.2) running Apache 2.4.16
- The instructions assume you already have a basic Apache configuration enabled on OSX, if this is not the case feel free to consult Gist: "Enable Apache HTTP server (OSX)"
Create a directory within /etc/apache2/
using Terminal.app: sudo mkdir /etc/apache2/ssl
Next, generate two host keys:
This is now part of craft-scripts: | |
https://github.com/nystudio107/craft-scripts |
/** | |
* Returns the scroll target position for scrolling to the top of an element. | |
* | |
* Pass the result to a scrollTo method: | |
* | |
* - $scrollContainer.scrollTop( result ) for instant scrolling | |
* - $scrollContainer.scrollTo( result ) for animated scrolling with jQuery.scrollable | |
* | |
* @param {jQuery} $target the target element | |
* @param {jQuery} $scrollContainer either $(window), or a scrollable HTML element |