Skip to content

Instantly share code, notes, and snippets.

@chrismademe
chrismademe / appearance-access.php
Created March 4, 2020 13:17
WordPress: Give Editor role access to the Appearance menu
<?php
add_action( 'init', function() {
$role = get_role('editor');
$role->add_cap('edit_theme_options');
} );
@chrismademe
chrismademe / image-gallery.css
Created March 27, 2020 09:39
Image Gallery Web Component with FS Lightbox & CSS Grid
@chrismademe
chrismademe / alpine-toggle.js
Last active May 15, 2020 13:31
AlpineJS Progressively Enhanced Checkbox
<div x-data="{ checked: false, ready: false }" x-init="ready = true" @click="checked = !checked" class="flex items-center space-x-2">
<button type="button" class="hidden" :class="{ 'flex bg-gray-300 rounded-full w-12 cursor-pointer border': ready, 'hidden': !ready }">
<div :class="{ 'bg-green-600 translate-x-6': checked, 'bg-gray-500': !checked }" class="pointer-events-none rounded-full w-6 h-6 transition duration-150 ease-in-out transform"></div>
</button>
<label class="flex items-center" for="remember_me">
<input :class="{ 'hidden': ready }" class="mr-2" type="checkbox" name="remember_me" x-bind:checked="checked">
<span>Remember Me</span>
</label>
</div>
@chrismademe
chrismademe / vs-code.json
Last active May 25, 2020 12:25
VS Code Settings
{
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'JetBrains Mono', Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 14,
"editor.lineHeight": 34,
"editor.formatOnSave": true,
"editor.fontLigatures": true,
"editor.minimap.enabled": false,
"editor.codeLens": false,
"workbench.startupEditor": "none",
@chrismademe
chrismademe / temporary-variables.js
Created July 4, 2020 20:30
Sometimes it can be tidier not to use temporary variables
// Sometimes it can be tidier not to use temporary variables :)
// Before
async render() {
let inputPath = path.join(__dirname, '/assets/css/style.scss');
let { sassOptions } = siteConfig || {};
const { css } = sass.renderSync({
file: inputPath,
...sassOptions,
:root {
--color-gray-90: #373946;
--color-gray-70: #565869;
--color-gray-50: #77798a;
--color-gray-30: #b3b4bd;
--color-gray-10: #eeeef0;
--color-neutral-90: #002c59;
--color-neutral-50: #0779e4;
--color-neutral-10: #e1eefa;
@chrismademe
chrismademe / data.php
Created July 25, 2019 15:25
get-post-with-fields.php
/**
* Get Post with Fields
*
* Returns a post with it's ACF fields
* attached to it
*
* @NOTE We don't use $post as a variable
* inside here so we don't mess with the
* WordPress global variable
*
{
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'JetBrains Mono', Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 14, //14
"editor.lineHeight": 42,
"editor.fontLigatures": true,
"editor.minimap.enabled": false,
"editor.codeLens": false,
"editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?_",
"editor.snippetSuggestions": "top",
@chrismademe
chrismademe / date-diff-in-days.php
Created May 19, 2021 09:51
PHP: Difference between 2 dates in days
<?php
/**
* Date diff in days
* The difference in days between 2 dates
*
* @param $from string Y-m-d date string
* @param $to string Y-m-d date string
*/
function date_diff_in_days($from, $to) {
@chrismademe
chrismademe / style.11ty.js
Created December 21, 2021 14:00
Compile SCSS in 11ty
const sass = require('sass');
const cleanCSS = require('clean-css');
module.exports = class {
data() {
return {
layout: false,
permalink: '/style.css',
eleventyExcludeFromCollections: true,
};