Skip to content

Instantly share code, notes, and snippets.


Phil Pluckthun kitten

View GitHub Profile
kitten /
Last active Oct 28, 2020
How we generated a Tailwind language transformer!


Tailwind, the switch statement

Check out Luke Jackson's full tweet & blog post to see what this is about:

Recently, in Luke's blog post he wrote about how Tailwind styling can be generated from scratch and dynamically, by parsing "Tailwind class expressions" and transforming them into whole style objects.

This is possible because Tailwind is a sparse but expressive language essentially.

kitten /
Last active Mar 31, 2020
Arch Files
# /etc/systemd/system/
Description=On AC power
kitten /
Last active Sep 5, 2019
A short explainer on how Graphcache does what it does

How does it do the thing?!

There's two main caching modes that Graphcache does as part of the app's lifecycle:

  1. Querying results from the cache
  2. Writing results to the cache

We attempt query to query any query definition from the cache by default, unless it's been marked as network-only. In urql query operations are already marked as such and come from useQuery / client.executeQuery.

kitten /
Last active Apr 13, 2019
Add systemd targets and services to set SB2 perf_mode
echo "Creating systemd"
cat > /etc/systemd/system/ << 'EOF'
Description=On AC power
kitten / hyper.js
Last active May 30, 2018
hyper-nightowl colours/theme
View hyper.js
module.exports = {
config: {
/* ... */
// font family with optional fallbacks
fontFamily: '"Dank Mono", "Fira Code", monospace',
fontWeight: 'normal',
fontWeightBold: 'normal',
fontSize: 14,
View gist:9668f0b5df29cf045a5fe844498fa81b
const Header = styled.h1.attrs({
className: '...'
box-shadow: ${p => p.shadow ? '0 2px 2px 0 #aaa' : 'none'};
kitten /
Last active Nov 17, 2020
ReactiveConf 2017 Lightning Talk CFP: With styled-components into the future

styled-components Logo

With styled-components into the future

Preprocessing is dead, long live preprocessing!

This is a CFP for ReactiveConf 2017's open call for Lightning talks. If you'd like to see this talk become a reality, please star this gist. #ReactiveConf

kitten / before.js
Last active Apr 10, 2017
Spiking Static CSS Extraction for Styled Components (The Babel Plugin)
View before.js
const Nested = styled.div`
width: 100%;
&:hover {
color: papayawhip;
background: ${p =>};
transform: rotate(180deg);
kitten / result.js
Created Mar 15, 2017
babel-plugin-styled-components test with's App.js
View result.js
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');

Keybase proof

I hereby claim:

  • I am kitten on github.
  • I am philpl ( on keybase.
  • I have a public key whose fingerprint is F846 DACD 264C 2FC5 6588 813B B8BE F6B3 7786 2FDE

To claim this, I am signing this object:

You can’t perform that action at this time.