Skip to content

Instantly share code, notes, and snippets.

import App from 'next/app'
import React from 'react'
import { createCss, TCss } from '@stitches/css'
import { Provider, config } from './css'
export default class MyApp extends App<{ serverCss: TCss<typeof config> }> {
render() {
const { Component, pageProps, serverCss } = this.props
return (
<Provider css={serverCss || createCss(config)}>
class AppleSubscription {
String productId;
int purchaseDate;
int expiresDate;
bool isActive;
AppleSubscription.fromJSON(Map<String, dynamic> json) :
productId = json["productId"],
purchaseDate = json["purchaseDate"],
expiresDate = json["expiresDate"],

Updated packages

package from version to version
betsy 1.0.2 1.0.2-1583050194528
overmind 22.0.5 23.0.0-1583050194529
overmind-angular 22.0.5 23.0.0-1583050194529
overmind-devtools 23.1.3 24.0.0-1583050194529
overmind-devtools-client 5.1.3 6.0.0-1583050194529
overmind-devtools-vscode 4.1.3 5.0.0-1583050194529
const config = {
defaults: {
screens: {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
},
colors: {
transparent: 'transparent',

Taking inspiration from tailwindcss and this idea, here is a specification for how to achieve it.

What is it

With TailwindCSS you have an amazing default design system, but it is not ideal. It lacks:

  • Validation of classnames: It does not validate the classnames you insert
  • Composition: It does not allow you to effectively compose together classnames into new classnames and it can not dynamically do so at runtime effectively
  • Defining by variables: Even though it is nice to write TailwindCSS inline with your elements, you can not define classes as variables, because the TailwindCSS extension does not understand it

This solution solves all of this with an even better experience of setup and consumption!

// I have a couple of transition states, "authenticated", "authenticating", "unauthenticated"
const machine = new Machine({
initial: 'unauthenticated',
states: {
unauthenticated: 'authenticating',
authenticating: ['authenticated', 'unauthenticated'],
authenticated: 'unauthenticated'
}
})
OUT {
"seq": 0,
"type": "response",
"command": "configure",
"request_seq": 0,
"success": true
}
OUT {
"seq": 0,
"type": "response",
CONTAINER
REQUEST {"seq":0,"type":"request","command":"configure","arguments":{"hostInfo":"vscode","preferences":{"providePrefixAndSuffixTextForRename":true,"allowRenameOfImportPath":true}}}
REQUEST {"seq":1,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":[],"openFiles":[{"file":"/sandbox/src/main.js","fileContent":"import Vue from 'vue';\nimport App from './App.vue';\n\nVue.config.productionTip = false;\n\nnew Vue({\n render: h => h(App),\n}).$mount('#app');\n","scriptKindName":"JS","projectRootPath":"/sandbox"}]}}
REQUEST {"seq":0,"type":"request","command":"configure","arguments":{"hostInfo":"vscode","preferences":{"providePrefixAndSuffixTextForRename":true,"allowRenameOfImportPath":true}}}
REQUEST {"seq":1,"type":"request","command":"compilerOptionsForInferredProjects","arguments":{"options":{"module":"commonjs","target":"es2016","jsx":"preserve","allowJs":true,"allowSyntheticDefaultImports":true,"allowNonTsExtensions":true}}}
REQUEST {"seq":2,"type":"request","comma