From f61ac3d8d9fb4939bf5a01b43a2362239a231a61 Mon Sep 17 00:00:00 2001 From: dragonwocky Date: Sun, 29 Jan 2023 14:53:46 +1100 Subject: [PATCH] feat(menu): add sponsorship buttons & perks to banner --- src/api/interface.js | 8 ++ src/core/menu/components/Button.mjs | 9 ++- src/core/menu/components/Checkbox.mjs | 2 +- src/core/menu/islands/Banner.mjs | 104 ++++++++++++++++++-------- src/core/menu/islands/Profiles.mjs | 1 + src/core/menu/menu.mjs | 5 -- 6 files changed, 88 insertions(+), 41 deletions(-) diff --git a/src/api/interface.js b/src/api/interface.js index 98052fa..8748e95 100644 --- a/src/api/interface.js +++ b/src/api/interface.js @@ -86,6 +86,14 @@ twind.install({ ["\\[.+]", (match) => "&" + match.input], ["([a-z-]+):", ({ 1: $1 }) => "&::" + $1], ], + theme: { + extend: { + backgroundImage: { + "brand-gradient": + "linear-gradient(225deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 100%)", + }, + }, + }, }); // https://developer.mozilla.org/en-US/docs/Web/SVG/Element diff --git a/src/core/menu/components/Button.mjs b/src/core/menu/components/Button.mjs index 21dadaf..324c829 100644 --- a/src/core/menu/components/Button.mjs +++ b/src/core/menu/components/Button.mjs @@ -11,8 +11,8 @@ function Button({ icon, variant, tagName, ...props }, ...children) { extendProps(props, { class: `notion-enhancer--menu-button shrink-0 flex gap-[8px] items-center px-[12px] rounded-[4px] - h-[${variant === "sm" ? "28" : "32"}px] transition - duration-[20ms] ${ + h-[${variant === "sm" ? "28" : "32"}px] select-none + transition duration-[20ms] ${ variant === "primary" ? `text-[color:var(--theme--accent-primary\\_contrast)] font-medium bg-[color:var(--theme--accent-primary)] @@ -21,10 +21,15 @@ function Button({ icon, variant, tagName, ...props }, ...children) { ? `text-[color:var(--theme--accent-secondary)] border-(& [color:var(--theme--accent-secondary)]) hover:bg-[color:var(--theme--accent-secondary\\_hover)]` + : variant === "brand" + ? `text-white border-(& purple-400) + bg-purple-500 hover:(from-white/20 to-transparent + bg-[linear-gradient(225deg,var(--tw-gradient-stops))])` : `border-(& [color:var(--theme--fg-border)]) hover:bg-[color:var(--theme--bg-hover)]` }`, }); + if (props["href"]) tagName ??= "a"; return html`<${tagName ?? "button"} tabindex="0" ...${props}> ${icon ? html`