cards/grammar/plugins/grammar.plugin.ts
cards/grammar/plugins/grammar.plugin.ts is a file in Bane's Lab Social Share. 45 lines of code and 0 definitions.
import {
GRAMMAR_EMBLEM_FLOAT,
GRAMMAR_EMBLEM_SCALE,
GRAMMAR_GLOW,
GRAMMAR_GLOW_SWING,
} from "#configuration/data/grammar.data";
import { placeAt, swing } from "#core/evaluators/card.fragment.evaluator";
import { GRAMMAR_CARD } from "#core/ids/card.ids";
import { GRAMMAR_EMBLEM } from "@banes-lab/web/core/assets/image.assets.ts";
import { GRAMMAR_PAGE } from "@banes-lab/web/core/ids/page.ids.ts";
import { GRAMMAR_SHARE } from "@banes-lab/web/configuration/strings/page.strings.ts";
import { PAGE_LAYOUT } from "#configuration/data/page.data";
import { createPageCard } from "#core/factories/page.factory";
import { registerCard } from "#core/registries/card.registry";
import shader from "../shaders/grammar.shader.wgsl?raw";
import stylesheet from "../styles/grammar.style.css?raw";
registerCard(
createPageCard({
field: [
{
id: "field",
kind: "shader",
placement: { height: 1, width: 1, x: 0, y: 0 },
shader,
uniforms: { glow: (frame) => GRAMMAR_GLOW + GRAMMAR_GLOW_SWING * swing(frame.progress) },
},
],
id: GRAMMAR_CARD,
mark: {
alt: GRAMMAR_SHARE.headline,
className: "grammar-emblem",
id: "mark",
kind: "image",
placement: placeAt(PAGE_LAYOUT, "mark", {
grow: () => GRAMMAR_EMBLEM_SCALE,
lift: (frame) => GRAMMAR_EMBLEM_FLOAT * swing(frame.progress),
square: true,
}),
source: GRAMMAR_EMBLEM,
},
page: GRAMMAR_PAGE,
stylesheet,
}),
import.meta.url,
);