flomotion 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -2
- package/LICENSE +1 -1
- package/README.md +29 -20
- package/dist/bin.mjs +6279 -2582
- package/dist/chunks/{chunk-QG2MOGKO.mjs → chunk-IGG2VZB6.mjs} +178 -14
- package/dist/chunks/{chunk-AVP5XX4G.mjs → chunk-PEC2UVQY.mjs} +138 -108
- package/dist/chunks/{chunk-IUSYVGP6.mjs → chunk-TTHAZGRG.mjs} +7 -7
- package/dist/chunks/{chunk-JCLRAREG.mjs → chunk-XWY6CUY6.mjs} +16 -16
- package/dist/chunks/{lock-MLQUU7X3.mjs → lock-WGPR7CJ2.mjs} +3 -3
- package/dist/components.mjs +19 -13
- package/dist/core.mjs +12 -12
- package/dist/hooks.mjs +8 -12
- package/dist/jsx-dev-runtime.mjs +1 -1
- package/dist/jsx-runtime.mjs +1 -1
- package/docs/components/Adjustment.md +2 -2
- package/docs/components/Audio.md +2 -2
- package/docs/components/B.md +3 -3
- package/docs/components/Captions.md +2 -2
- package/docs/components/Card.md +2 -2
- package/docs/components/Center.md +2 -2
- package/docs/components/Chart.md +2 -2
- package/docs/components/Chip.md +2 -2
- package/docs/components/Circle.md +2 -2
- package/docs/components/Clip.md +2 -2
- package/docs/components/CodeBlock.md +2 -2
- package/docs/components/Composition.md +2 -2
- package/docs/components/Counter.md +2 -2
- package/docs/components/Cursor.md +2 -2
- package/docs/components/Fonts.md +2 -2
- package/docs/components/GlassCard.md +2 -2
- package/docs/components/Grid.md +2 -2
- package/docs/components/Group.md +2 -2
- package/docs/components/Highlight.md +3 -3
- package/docs/components/I.md +3 -3
- package/docs/components/Image.md +2 -2
- package/docs/components/Line.md +2 -2
- package/docs/components/Marker.md +2 -2
- package/docs/components/Path.md +2 -2
- package/docs/components/Polygon.md +2 -2
- package/docs/components/Precomp.md +2 -2
- package/docs/components/ProgressRing.md +2 -2
- package/docs/components/Rect.md +2 -2
- package/docs/components/RoundRect.md +2 -2
- package/docs/components/SafeArea.md +2 -2
- package/docs/components/Scene.md +2 -2
- package/docs/components/Sequence.md +2 -2
- package/docs/components/Span.md +3 -3
- package/docs/components/SplitText.md +2 -2
- package/docs/components/Stack.md +2 -2
- package/docs/components/Stagger.md +2 -2
- package/docs/components/Strike.md +3 -3
- package/docs/components/Svg.md +2 -2
- package/docs/components/Text.md +2 -2
- package/docs/components/Title.md +2 -2
- package/docs/components/Track.md +2 -2
- package/docs/components/UIMock.md +2 -2
- package/docs/components/Underline.md +3 -3
- package/docs/components/Video.md +2 -2
- package/docs/gate2-manual-checklist.md +10 -9
- package/docs/hyperframes-notes.md +20 -20
- package/docs/later.md +23 -16
- package/docs/spec.md +83 -22
- package/package.json +1 -2
- package/skills/flomotion-studio/CHANGELOG.md +39 -0
- package/skills/flomotion-studio/README.md +81 -0
- package/skills/flomotion-studio/SKILL.md +90 -0
- package/skills/flomotion-studio/config/thresholds.md +191 -0
- package/skills/flomotion-studio/dataset/annotations/ansarada.md +53 -0
- package/skills/flomotion-studio/dataset/annotations/canva.md +49 -0
- package/skills/flomotion-studio/dataset/annotations/clickup.md +60 -0
- package/skills/flomotion-studio/dataset/annotations/gemini-stub.md +39 -0
- package/skills/flomotion-studio/dataset/annotations/monday.md +51 -0
- package/skills/flomotion-studio/dataset/annotations/phantom.md +53 -0
- package/skills/flomotion-studio/dataset/annotations/slack.md +54 -0
- package/skills/flomotion-studio/dataset/annotations/unknown-7.md +39 -0
- package/skills/flomotion-studio/dataset/annotations/vaylens.md +53 -0
- package/skills/flomotion-studio/dataset/brief-template.md +110 -0
- package/skills/flomotion-studio/dataset/rating-sheet.md +28 -0
- package/skills/flomotion-studio/dataset/schema.md +44 -0
- package/skills/flomotion-studio/evals/README.md +33 -0
- package/skills/flomotion-studio/evals/briefs/briefs.md +25 -0
- package/skills/{motion-studio/looks → flomotion-studio/examples/engine-looks}/kinetic.scene.tsx +1 -1
- package/skills/{motion-studio/looks → flomotion-studio/examples/engine-looks}/minimal.scene.tsx +1 -1
- package/skills/{motion-studio/looks → flomotion-studio/examples/engine-looks}/sketch.scene.tsx +1 -1
- package/skills/flomotion-studio/examples/flomotion-ad/LOG.md +39 -0
- package/skills/flomotion-studio/examples/flomotion-ad/brief.md +41 -0
- package/skills/flomotion-studio/examples/flomotion-ad/ideas.md +12 -0
- package/skills/flomotion-studio/examples/flomotion-ad/project.tsx +1694 -0
- package/skills/flomotion-studio/examples/flomotion-ad/script.md +28 -0
- package/skills/flomotion-studio/examples/flomotion-ad/storyboard.md +93 -0
- package/skills/{motion-studio → flomotion-studio}/examples/saas-promo/README.md +1 -1
- package/skills/{motion-studio → flomotion-studio}/examples/saas-promo/make-assets.sh +1 -1
- package/skills/{motion-studio → flomotion-studio}/examples/saas-promo/project.tsx +3 -3
- package/skills/flomotion-studio/looks/bold-kinetic.md +122 -0
- package/skills/flomotion-studio/looks/clean-light.md +122 -0
- package/skills/flomotion-studio/looks/dark-product.md +120 -0
- package/skills/flomotion-studio/references/anti-patterns.md +36 -0
- package/skills/flomotion-studio/references/assets.md +42 -0
- package/skills/flomotion-studio/references/block-recipes.md +249 -0
- package/skills/flomotion-studio/references/blocks.md +114 -0
- package/skills/flomotion-studio/references/catalogue.md +53 -0
- package/skills/flomotion-studio/references/checks.md +87 -0
- package/skills/flomotion-studio/references/clean-styles.md +56 -0
- package/skills/{motion-studio → flomotion-studio}/references/components.md +94 -94
- package/skills/flomotion-studio/references/copywriting.md +64 -0
- package/skills/flomotion-studio/references/decision-tables.md +80 -0
- package/skills/flomotion-studio/references/interview.md +145 -0
- package/skills/flomotion-studio/references/looks.md +45 -0
- package/skills/flomotion-studio/references/mcp-tools.md +70 -0
- package/skills/flomotion-studio/references/motion.md +68 -0
- package/skills/flomotion-studio/references/patterns.md +45 -0
- package/skills/flomotion-studio/references/review.md +56 -0
- package/skills/flomotion-studio/references/script-craft.md +59 -0
- package/skills/flomotion-studio/references/sound.md +57 -0
- package/skills/flomotion-studio/references/story-templates.md +52 -0
- package/skills/flomotion-studio/references/storyboard.md +62 -0
- package/skills/flomotion-studio/references/styles.md +70 -0
- package/skills/flomotion-studio/references/transitions.md +62 -0
- package/skills/flomotion-studio/references/typography.md +46 -0
- package/skills/flomotion-studio/references/workflow.md +96 -0
- package/skills/motion-studio/SKILL.md +0 -87
- package/skills/motion-studio/looks/kinetic.json +0 -89
- package/skills/motion-studio/looks/minimal.json +0 -91
- package/skills/motion-studio/looks/sketch.json +0 -83
- package/skills/motion-studio/references/motion.md +0 -73
- package/skills/motion-studio/references/review.md +0 -32
- package/skills/motion-studio/references/saas-promo.md +0 -29
- package/skills/motion-studio/references/sound.md +0 -47
- package/skills/motion-studio/references/typography.md +0 -50
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
time,
|
|
42
42
|
toCss,
|
|
43
43
|
vec2
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-PEC2UVQY.mjs";
|
|
45
45
|
|
|
46
46
|
// packages/components/src/util.ts
|
|
47
47
|
var round = (n, d = 3) => {
|
|
@@ -745,7 +745,7 @@ var Vignette = defineEffect("Vignette", {
|
|
|
745
745
|
const amount = sig(rc, "amount");
|
|
746
746
|
return {
|
|
747
747
|
overlay: {
|
|
748
|
-
html: `<div id="${id}" class="
|
|
748
|
+
html: `<div id="${id}" class="fm-vignette" style="position:absolute;inset:0;pointer-events:none;opacity:${round(evalSignal(amount, a))};background:radial-gradient(${p.roundness > 0.5 ? "circle" : "ellipse"} at 50% 50%, rgba(0,0,0,0) ${Math.max(0, inner)}%, ${p.color} ${outer}%)"></div>`,
|
|
749
749
|
channels: [
|
|
750
750
|
{
|
|
751
751
|
target: `#${id}`,
|
|
@@ -1002,7 +1002,7 @@ var Grain = defineEffect("Grain", {
|
|
|
1002
1002
|
const fps = rc.fps;
|
|
1003
1003
|
const seedAt = (t) => Math.floor(mulberry32(p.seed * 7919 + Math.floor((t - a) * fps / p.hold))() * 1e5);
|
|
1004
1004
|
const freq = round(0.9 / p.size, 3);
|
|
1005
|
-
const html = `<svg id="${id}" class="
|
|
1005
|
+
const html = `<svg id="${id}" class="fm-grain" width="100%" height="100%" style="position:absolute;inset:0;pointer-events:none;mix-blend-mode:${p.blend};opacity:${round(evalSignal(amount, a))}"><filter id="${id}-f" x="0" y="0" width="100%" height="100%" color-interpolation-filters="sRGB"><feTurbulence id="${id}-t" type="fractalNoise" baseFrequency="${freq}" numOctaves="2" seed="${seedAt(a)}" stitchTiles="stitch"/>${p.mono ? '<feColorMatrix type="saturate" values="0"/>' : ""}</filter><rect width="100%" height="100%" filter="url(#${id}-f)"/></svg>`;
|
|
1006
1006
|
return {
|
|
1007
1007
|
overlay: {
|
|
1008
1008
|
html,
|
|
@@ -2173,7 +2173,7 @@ function parseMarkup(src) {
|
|
|
2173
2173
|
[/(?<![\w])_([^_]+)_(?![\w])/, "<i>", "</i>"],
|
|
2174
2174
|
[
|
|
2175
2175
|
/==([^=]+)==/,
|
|
2176
|
-
'<span class="
|
|
2176
|
+
'<span class="fm-mark" style="background:linear-gradient(#ffe14d,#ffe14d) no-repeat 0 85%/100% 45%">',
|
|
2177
2177
|
"</span>"
|
|
2178
2178
|
],
|
|
2179
2179
|
[/~~([^~]+)~~/, "<s>", "</s>"]
|
|
@@ -2451,17 +2451,17 @@ function renderText(p, rc, split) {
|
|
|
2451
2451
|
table.target.char.push(cid);
|
|
2452
2452
|
table.charText.push(c.g);
|
|
2453
2453
|
const col = charColor ? `;color:${charColor(srcIndex.get(c))}` : "";
|
|
2454
|
-
return `${c.open}<span id="${cid}" class="
|
|
2454
|
+
return `${c.open}<span id="${cid}" class="fm-c" style="display:inline-block;white-space:pre${col}">${esc(c.g)}</span>${c.close}`;
|
|
2455
2455
|
}).join("");
|
|
2456
2456
|
const sep = k < words.length - 1 || false ? " " : "";
|
|
2457
|
-
return `<span id="${wid}" class="
|
|
2457
|
+
return `<span id="${wid}" class="fm-w" style="display:inline-block;white-space:nowrap">${chars}</span>${sep}`;
|
|
2458
2458
|
});
|
|
2459
2459
|
if (needLine) {
|
|
2460
2460
|
const lid = `${id}-l${li}`;
|
|
2461
2461
|
table.line.push(lid);
|
|
2462
2462
|
table.target.line.push(`${lid}-in`);
|
|
2463
2463
|
htmlLines.push(
|
|
2464
|
-
`<span id="${lid}" class="
|
|
2464
|
+
`<span id="${lid}" class="fm-l" style="display:block;${mask ? "overflow:hidden;" : ""}white-space:nowrap"><span id="${lid}-in" style="display:block">${wordHtml.join("")}</span></span>`
|
|
2465
2465
|
);
|
|
2466
2466
|
} else htmlLines.push(wordHtml.join(""));
|
|
2467
2467
|
});
|
|
@@ -2649,7 +2649,7 @@ function renderText(p, rc, split) {
|
|
|
2649
2649
|
const sid = `${id}-${kind}`;
|
|
2650
2650
|
const pos = kind === "underline" ? "0 100%" : "0 52%";
|
|
2651
2651
|
decoOpen.push(
|
|
2652
|
-
`<span id="${sid}" class="
|
|
2652
|
+
`<span id="${sid}" class="fm-deco" style="background:linear-gradient(${c},${c}) no-repeat ${pos}/${round((d.progress ?? 1) * 100, 2)}% ${th}px;padding-bottom:${kind === "underline" ? d.offset ?? 6 : 0}px">`
|
|
2653
2653
|
);
|
|
2654
2654
|
decoClose.unshift("</span>");
|
|
2655
2655
|
if (animatedP)
|
|
@@ -2674,7 +2674,7 @@ function renderText(p, rc, split) {
|
|
|
2674
2674
|
const raw = rc.node.props.highlight?.progress;
|
|
2675
2675
|
const col = withAlphaColor(hl.color ?? "#ffe14d", hl.opacity ?? 1);
|
|
2676
2676
|
decoOpen.push(
|
|
2677
|
-
`<span id="${sid}" class="
|
|
2677
|
+
`<span id="${sid}" class="fm-hl" style="background:linear-gradient(${col},${col}) no-repeat 0 0/${round((hl.progress ?? 1) * 100, 2)}% 100%;padding:${hl.padding ?? 8}px;margin:-${hl.padding ?? 8}px;border-radius:${hl.radius ?? 6}px;-webkit-box-decoration-break:clone;box-decoration-break:clone">`
|
|
2678
2678
|
);
|
|
2679
2679
|
decoClose.unshift("</span>");
|
|
2680
2680
|
if (dyn(raw))
|
|
@@ -2725,7 +2725,7 @@ function renderText(p, rc, split) {
|
|
|
2725
2725
|
box.width = "max-content";
|
|
2726
2726
|
box["max-width"] = `${round(maxW)}px`;
|
|
2727
2727
|
}
|
|
2728
|
-
let html = `<div id="${tid}" class="
|
|
2728
|
+
let html = `<div id="${tid}" class="fm-text" ${s.lang ? `lang="${esc(s.lang)}" ` : ""}${s.direction === "rtl" ? 'dir="rtl" ' : ""}style="${css(style)}">${content}</div>`;
|
|
2729
2729
|
if (s.box?.height !== void 0 && s.valign !== "top") {
|
|
2730
2730
|
html = `<div style="display:flex;width:100%;height:100%;align-items:${s.valign === "middle" ? "center" : "flex-end"}">${html}</div>`;
|
|
2731
2731
|
}
|
|
@@ -2828,7 +2828,7 @@ var inline = (name, description, controls, open, channels) => defineComponent(na
|
|
|
2828
2828
|
description,
|
|
2829
2829
|
traits: ["inline"],
|
|
2830
2830
|
children: "any",
|
|
2831
|
-
controls,
|
|
2831
|
+
controls: { id: text({ label: "Id", description: "Stable unique id." }), ...controls },
|
|
2832
2832
|
render: (p, rc) => ({
|
|
2833
2833
|
html: `${open(p, rc)}{{children}}</span>`,
|
|
2834
2834
|
visual: false,
|
|
@@ -2880,7 +2880,7 @@ var Highlight = inline(
|
|
|
2880
2880
|
},
|
|
2881
2881
|
(p, rc) => {
|
|
2882
2882
|
const prog = rc.at("progress", rc.node.start);
|
|
2883
|
-
return `<span id="${rc.id}" class="
|
|
2883
|
+
return `<span id="${rc.id}" class="fm-hl" style="background:linear-gradient(${p.color},${p.color}) no-repeat 0 0/${round(prog * 100, 2)}% 100%;padding:0 ${p.padding}px;margin:0 -${p.padding}px;border-radius:${p.radius}px;-webkit-box-decoration-break:clone;box-decoration-break:clone">`;
|
|
2884
2884
|
},
|
|
2885
2885
|
(p, rc) => {
|
|
2886
2886
|
const sg = rc.node.props.progress;
|
|
@@ -2909,7 +2909,7 @@ var decoInline = (name, pos, label) => inline(
|
|
|
2909
2909
|
},
|
|
2910
2910
|
(p, rc) => {
|
|
2911
2911
|
const prog = rc.at("progress", rc.node.start);
|
|
2912
|
-
return `<span id="${rc.id}" class="
|
|
2912
|
+
return `<span id="${rc.id}" class="fm-deco" style="background:linear-gradient(${p.color},${p.color}) no-repeat ${pos}/${round(prog * 100, 2)}% ${p.thickness}px;padding-bottom:${name === "Underline" ? p.offset : 0}px">`;
|
|
2913
2913
|
},
|
|
2914
2914
|
(p, rc) => {
|
|
2915
2915
|
const sg = rc.node.props.progress;
|
|
@@ -3909,6 +3909,167 @@ var mediaComponents = [
|
|
|
3909
3909
|
];
|
|
3910
3910
|
|
|
3911
3911
|
// packages/components/src/looks.ts
|
|
3912
|
+
var CleanLight = defineLook({
|
|
3913
|
+
id: "clean-light",
|
|
3914
|
+
name: "Clean light",
|
|
3915
|
+
description: "Calm and credible. Pale background, white cards, one blue accent, soft shadows, card-slide transition. Inter Tight over Inter.",
|
|
3916
|
+
palette: {
|
|
3917
|
+
bg: "#F6F7FB",
|
|
3918
|
+
surface: "#FFFFFF",
|
|
3919
|
+
text: "#0F1222",
|
|
3920
|
+
textMuted: "#5B6075",
|
|
3921
|
+
accent: "#4B5CFF",
|
|
3922
|
+
signal: "#FF7A45",
|
|
3923
|
+
positive: "#2FBF71",
|
|
3924
|
+
negative: "#E5484D",
|
|
3925
|
+
block1: "#4B5CFF",
|
|
3926
|
+
block2: "#FF7A45",
|
|
3927
|
+
block3: "#2FBF71",
|
|
3928
|
+
block4: "#FFC933",
|
|
3929
|
+
// engine-wide aliases so components that ask for fg / muted / primary work in every look
|
|
3930
|
+
fg: "#0F1222",
|
|
3931
|
+
muted: "#5B6075",
|
|
3932
|
+
primary: "#4B5CFF"
|
|
3933
|
+
},
|
|
3934
|
+
background: "#F6F7FB",
|
|
3935
|
+
fonts: [
|
|
3936
|
+
{
|
|
3937
|
+
id: "display",
|
|
3938
|
+
family: "Inter Tight",
|
|
3939
|
+
source: "google",
|
|
3940
|
+
weights: [700, 800],
|
|
3941
|
+
subsets: ["latin"]
|
|
3942
|
+
},
|
|
3943
|
+
{ id: "body", family: "Inter", source: "google", weights: [400, 500, 600], subsets: ["latin"] },
|
|
3944
|
+
{ id: "mono", family: "JetBrains Mono", source: "google", weights: [500], subsets: ["latin"] }
|
|
3945
|
+
],
|
|
3946
|
+
type: {
|
|
3947
|
+
display: { font: "display", size: 120, weight: 800, tracking: -20, leading: 1.02 },
|
|
3948
|
+
title: { font: "display", size: 74, weight: 700, tracking: -20, leading: 1.05 },
|
|
3949
|
+
body: { font: "body", size: 44, weight: 500, tracking: 0, leading: 1.3 },
|
|
3950
|
+
caption: { font: "body", size: 40, weight: 500, tracking: 0, leading: 1.3 },
|
|
3951
|
+
mono: { font: "mono", size: 34, weight: 500, tracking: 0, leading: 1.5 },
|
|
3952
|
+
numerals: { font: "display", size: 170, weight: 800, tracking: -25, leading: 1 }
|
|
3953
|
+
},
|
|
3954
|
+
easing: {
|
|
3955
|
+
in: "expo.out",
|
|
3956
|
+
out: "power3.in",
|
|
3957
|
+
move: "power3.inOut",
|
|
3958
|
+
pop: "back.out(1.2)",
|
|
3959
|
+
settle: "power3.out",
|
|
3960
|
+
spring: "spring(220,24)"
|
|
3961
|
+
},
|
|
3962
|
+
transition: { type: "slide", duration: 0.5 },
|
|
3963
|
+
grain: 0.03,
|
|
3964
|
+
sound: {}
|
|
3965
|
+
});
|
|
3966
|
+
var DarkProduct = defineLook({
|
|
3967
|
+
id: "dark-product",
|
|
3968
|
+
name: "Dark product",
|
|
3969
|
+
description: "Focused and premium. Near-black background, violet accent, mint signal, glow edges, glow-wipe transition. Sora over Inter.",
|
|
3970
|
+
palette: {
|
|
3971
|
+
bg: "#0B0D14",
|
|
3972
|
+
surface: "#151826",
|
|
3973
|
+
text: "#F4F5F9",
|
|
3974
|
+
textMuted: "#9AA0B8",
|
|
3975
|
+
accent: "#7C5CFF",
|
|
3976
|
+
signal: "#3DDC97",
|
|
3977
|
+
positive: "#3DDC97",
|
|
3978
|
+
negative: "#FF6B6B",
|
|
3979
|
+
block1: "#0B0D14",
|
|
3980
|
+
block2: "#7C5CFF",
|
|
3981
|
+
block3: "#151826",
|
|
3982
|
+
block4: "#3DDC97",
|
|
3983
|
+
fg: "#F4F5F9",
|
|
3984
|
+
muted: "#9AA0B8",
|
|
3985
|
+
primary: "#7C5CFF"
|
|
3986
|
+
},
|
|
3987
|
+
background: "#0B0D14",
|
|
3988
|
+
fonts: [
|
|
3989
|
+
{ id: "display", family: "Sora", source: "google", weights: [600, 700], subsets: ["latin"] },
|
|
3990
|
+
{ id: "body", family: "Inter", source: "google", weights: [400, 500], subsets: ["latin"] },
|
|
3991
|
+
{ id: "mono", family: "JetBrains Mono", source: "google", weights: [500], subsets: ["latin"] }
|
|
3992
|
+
],
|
|
3993
|
+
type: {
|
|
3994
|
+
display: { font: "display", size: 116, weight: 700, tracking: -20, leading: 1.05 },
|
|
3995
|
+
title: { font: "display", size: 72, weight: 600, tracking: -20, leading: 1.08 },
|
|
3996
|
+
body: { font: "body", size: 44, weight: 500, tracking: 0, leading: 1.35 },
|
|
3997
|
+
caption: { font: "body", size: 40, weight: 500, tracking: 0, leading: 1.35 },
|
|
3998
|
+
mono: { font: "mono", size: 34, weight: 500, tracking: 0, leading: 1.5 },
|
|
3999
|
+
numerals: { font: "display", size: 170, weight: 700, tracking: -25, leading: 1 }
|
|
4000
|
+
},
|
|
4001
|
+
easing: {
|
|
4002
|
+
in: "expo.out",
|
|
4003
|
+
out: "power2.in",
|
|
4004
|
+
move: "power3.inOut",
|
|
4005
|
+
pop: "back.out(1.2)",
|
|
4006
|
+
settle: "power3.out",
|
|
4007
|
+
spring: "spring(200,22)"
|
|
4008
|
+
},
|
|
4009
|
+
transition: { type: "wipe", duration: 0.5 },
|
|
4010
|
+
grain: 0.06,
|
|
4011
|
+
sound: {}
|
|
4012
|
+
});
|
|
4013
|
+
var BoldKinetic = defineLook({
|
|
4014
|
+
id: "bold-kinetic",
|
|
4015
|
+
name: "Bold kinetic",
|
|
4016
|
+
description: "Energetic and confident. White or flat saturated colour blocks, heavy display type, key word in the contrast colour, colour-block wipes. Plus Jakarta Sans.",
|
|
4017
|
+
palette: {
|
|
4018
|
+
bg: "#FFFFFF",
|
|
4019
|
+
surface: "#FFFFFF",
|
|
4020
|
+
text: "#1A1020",
|
|
4021
|
+
textMuted: "#5A4A66",
|
|
4022
|
+
accent: "#FF3D81",
|
|
4023
|
+
signal: "#FFC933",
|
|
4024
|
+
positive: "#22B573",
|
|
4025
|
+
negative: "#E5484D",
|
|
4026
|
+
block1: "#FF8FB1",
|
|
4027
|
+
block2: "#7BD389",
|
|
4028
|
+
block3: "#6CB8FF",
|
|
4029
|
+
block4: "#FFD35C",
|
|
4030
|
+
block5: "#9B6BFF",
|
|
4031
|
+
fg: "#1A1020",
|
|
4032
|
+
muted: "#5A4A66",
|
|
4033
|
+
primary: "#FF3D81"
|
|
4034
|
+
},
|
|
4035
|
+
background: "#FFFFFF",
|
|
4036
|
+
fonts: [
|
|
4037
|
+
{
|
|
4038
|
+
id: "display",
|
|
4039
|
+
family: "Plus Jakarta Sans",
|
|
4040
|
+
source: "google",
|
|
4041
|
+
weights: [800],
|
|
4042
|
+
subsets: ["latin"]
|
|
4043
|
+
},
|
|
4044
|
+
{
|
|
4045
|
+
id: "body",
|
|
4046
|
+
family: "Plus Jakarta Sans",
|
|
4047
|
+
source: "google",
|
|
4048
|
+
weights: [500, 600],
|
|
4049
|
+
subsets: ["latin"]
|
|
4050
|
+
},
|
|
4051
|
+
{ id: "mono", family: "JetBrains Mono", source: "google", weights: [500], subsets: ["latin"] }
|
|
4052
|
+
],
|
|
4053
|
+
type: {
|
|
4054
|
+
display: { font: "display", size: 144, weight: 800, tracking: -30, leading: 0.98 },
|
|
4055
|
+
title: { font: "display", size: 84, weight: 800, tracking: -30, leading: 1 },
|
|
4056
|
+
body: { font: "body", size: 46, weight: 600, tracking: 0, leading: 1.25 },
|
|
4057
|
+
caption: { font: "body", size: 40, weight: 600, tracking: 0, leading: 1.25 },
|
|
4058
|
+
mono: { font: "mono", size: 34, weight: 500, tracking: 0, leading: 1.5 },
|
|
4059
|
+
numerals: { font: "display", size: 200, weight: 800, tracking: -35, leading: 1 }
|
|
4060
|
+
},
|
|
4061
|
+
easing: {
|
|
4062
|
+
in: "back.out(1.4)",
|
|
4063
|
+
out: "power4.in",
|
|
4064
|
+
move: "expo.inOut",
|
|
4065
|
+
pop: "back.out(1.4)",
|
|
4066
|
+
settle: "power3.out",
|
|
4067
|
+
spring: "spring(260,18)"
|
|
4068
|
+
},
|
|
4069
|
+
transition: { type: "wipe", duration: 0.4 },
|
|
4070
|
+
grain: 0,
|
|
4071
|
+
sound: {}
|
|
4072
|
+
});
|
|
3912
4073
|
var Kinetic = defineLook({
|
|
3913
4074
|
id: "kinetic",
|
|
3914
4075
|
name: "Kinetic",
|
|
@@ -4045,7 +4206,7 @@ var Sketch = defineLook({
|
|
|
4045
4206
|
grain: 0.18,
|
|
4046
4207
|
sound: { "ui/pop": "freesound:pop", "move/whip": "freesound:whoosh" }
|
|
4047
4208
|
});
|
|
4048
|
-
var looks = [Kinetic, Minimal, Sketch];
|
|
4209
|
+
var looks = [CleanLight, DarkProduct, BoldKinetic, Kinetic, Minimal, Sketch];
|
|
4049
4210
|
var themeControls = () => ({
|
|
4050
4211
|
id: text({ required: true }),
|
|
4051
4212
|
palette: json({}, external_exports.record(external_exports.string(), external_exports.string())),
|
|
@@ -4184,6 +4345,9 @@ export {
|
|
|
4184
4345
|
toVtt,
|
|
4185
4346
|
Captions,
|
|
4186
4347
|
mediaComponents,
|
|
4348
|
+
CleanLight,
|
|
4349
|
+
DarkProduct,
|
|
4350
|
+
BoldKinetic,
|
|
4187
4351
|
Kinetic,
|
|
4188
4352
|
Minimal,
|
|
4189
4353
|
Sketch,
|