Skip to content

Instantly share code, notes, and snippets.

View kristoferjoseph's full-sized avatar
🐘
💨

kj kristoferjoseph

🐘
💨
View GitHub Profile
export default class ElementBase extends HTMLElement {
constructor() {
super()
const name = this.tagName.toLowerCase()
const template = document.getElementById(`${name}-template`)
if (template) {
this.replaceChildren(template.content.cloneNode(true))
}
}
}
@kristoferjoseph
kristoferjoseph / multiple-single-file-web-components.html
Last active November 12, 2021 23:03
Multiple single file Web Components
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<template id="a">
<style>
slot {
@kristoferjoseph
kristoferjoseph / single-file-web-component.html
Last active November 22, 2023 01:17
Single file Web Component
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Single File Web Component</title>
</head>
<body>
<template id=single-file>
<style>
h1 {
@kristoferjoseph
kristoferjoseph / main-page.js
Last active August 31, 2021 20:06
Enhance page api dream boat
// Function name would be the page name
export async function Main(html, data) {
return html`<my-custom-element todos="${data.todos}"></my-custom-element>`
}
<html>
<head></head>
<body>
<template id=my-paragraph-template>
<p>
<slot name="my-text">
My default text
</slot>
</p>
</template>
@kristoferjoseph
kristoferjoseph / wc-slots.html
Last active July 23, 2021 20:14
Test for slot overrides.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<template id=begin-page-template>
<h1>Begin Page</h1>
<begin-content>
import html from 'https://registry.begin.com/html'
export default function Login(state={}) {
return html`
<my-page>
<my-form>
<my-input></my-input>
<my-button>Submit</my-button>
</my-form>
</my-page>
@kristoferjoseph
kristoferjoseph / index.html
Created March 1, 2021 18:12
Color scale prototype
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<main>
<color-scale>
<form
@kristoferjoseph
kristoferjoseph / arc-grammar.js
Created December 4, 2020 23:44
Architect arc format grammar for Highlightjs
module.exports = function(hljs) {
const LITERALS = [
'true',
'false',
'null'
].join(' ')
const BUILTIN = {
className: 'built_in',
begin: '^@.*'
}
@kristoferjoseph
kristoferjoseph / gist:31643839117acf165273e3eac40ba5fa
Created November 26, 2020 21:38
Updated and sprankled Hemisu dark theme for Highlightjs
/* Hemisu Dark */
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #282a36;
}
.hljs-comment,
.hljs-meta {