UNPKG

@nuxt/devtools-ui-kit

Version:

<a href="https://www.npmjs.com/package/@nuxt/devtools-ui-kit-edge"><img src="https://flat.badgen.net/npm/v/@nuxt/devtools-ui-kit-edge"></a>

169 lines (166 loc) 6.99 kB
import { parseColor } from '@unocss/preset-mini/utils'; import { theme } from '@unocss/preset-mini'; import { fonts } from '@unocss/preset-mini/rules'; import { mergeDeep, presetUno, presetAttributify, presetTypography, presetIcons, presetWebFonts, transformerDirectives, transformerVariantGroup } from 'unocss'; function unocssPreset() { return { name: "@nuxt/devtools-ui-kit", theme: mergeDeep(theme, { colors: { brand: "#00DC82", primary: "#099e61", context: "rgba(var(--nui-c-context),%alpha)" } }), rules: [ [/^n-(.*)$/, ([, body], { theme }) => { const color = parseColor(body, theme); if (color?.cssColor?.type === "rgb" && color.cssColor.components) { return { "--nui-c-context": `${color.cssColor.components.join(",")}` }; } }], [/^n-(.*)$/, fonts[1][1]], ["n-dashed", { "border-style": "dashed" }], ["n-solid", { "background-color": "rgba(var(--nui-c-context), 1) !important", "border-color": "rgba(var(--nui-c-context), 1)", "color": "white !important" }], ["n-disabled", { "opacity": 0.6, "pointer-events": "none", "filter": "saturate(0)" }], /** * Credit to Nanda Syahrasyad (https://github.com/narendrasss) * * - https://github.com/narendrasss/NotANumber * - https://www.nan.fyi/grid.svg * - https://www.nan.fyi/grid-dark.svg */ ["n-panel-grids-light", { "background-image": `url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' transform='scale(3)'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cpath d='M 10,-2.55e-7 V 20 Z M -1.1677362e-8,10 H 20 Z' stroke-width='0.2' stroke='hsla(0, 0%25, 98%25, 1)' fill='none'/%3E%3C/svg%3E")`, "background-size": "40px 40px" }], ["n-panel-grids-dark", { "background-image": `url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' transform='scale(3)'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='hsl(0, 0%25, 8.5%25)'/%3E%3Cpath d='M 10,-2.55e-7 V 20 Z M -1.1677362e-8,10 H 20 Z' stroke-width='0.2' stroke='hsl(0, 0%25, 11.0%25)' fill='none'/%3E%3C/svg%3E");`, "background-size": "40px 40px" }] ], variants: [ (input) => { const prefix = "n-disabled:"; if (input.startsWith(prefix)) { return { matcher: input.slice(prefix.length), selector: (input2) => `[disabled] ${input2}, ${input2}[disabled]` }; } }, (input) => { const prefix = "n-checked:"; if (input.startsWith(prefix)) { return { matcher: input.slice(prefix.length), selector: (input2) => `[checked] ${input2}, ${input2}[checked]` }; } } ], shortcuts: { // general "n-bg-base": "bg-white dark:bg-[#151515]", "n-bg-active": "bg-gray:5", "n-bg-hover": "bg-gray:3", "n-border-base": "border-gray/20", "n-transition": "transition-all duration-200", "n-focus-base": "ring-2 ring-context/50", "n-active-base": "ring-3 ring-context/10", "n-borderless": "!border-transparent !shadow-none", // link "n-link-base": "underline underline-offset-2 underline-black/20 dark:underline-white/40", "n-link-hover": "decoration-dotted text-context underline-context! op100!", // card "n-card-base": "border n-border-base rounded n-bg-base shadow-sm", // header "n-header-upper": "text-sm uppercase mb-2 leading-1.2em tracking-wide op50", // button "n-button-base": "border n-border-base rounded shadow-sm px-1em py-0.25em inline-flex items-center gap-1 op80 !outline-none touch-manipulation", "n-button-hover": "op100 !border-context text-context", "n-button-active": "n-active-base bg-context/5", "n-button-icon": "-ml-0.2em mr-0.2em text-1.1em", // checkbox "n-checkbox": "inline-flex gap-1 items-center rounded", "n-checkbox-hover": "op100 n-bg-hover cursor-pointer", "n-checkbox-box": "border n-border-base w-1.1em h-1.1em mr-1 text-white flex flex-none items-center rounded-sm overflow-visible", "n-checkbox-box-checked": "bg-context border-context", "n-checkbox-icon": "carbon-checkmark w-1em h-1em m-auto", // radio "n-radio-box": "border rounded n-border-base w-1.2em h-1.2em mr-1 text-white flex flex-none rounded-full overflow-visible", "n-radio-hover": "op100 n-bg-hover cursor-pointer", "n-radio-box-checked": "border-context", "n-radio-inner": "bg-context rounded-1/2 w-0 h-0 m-auto", "n-radio-inner-checked": "w-0.8em h-0.8em", // switch "n-switch-base": "inline-flex items-center select-none rounded-full pe-2", "n-switch-hover": "op100 n-bg-hover cursor-pointer", "n-switch-slider": "mr-1 rounded-full border n-border-base relative p-2px", "n-switch-slider-checked": "border-context/20 bg-context/10", "n-switch-thumb": "h-1em w-1em rounded-1/2 border n-border-base ml-0 mr-0.8em", "n-switch-thumb-checked": "bg-context border-context ml-0.8em mr-0", // tip "n-tip-base": "bg-context/4 text-context px-1em py-0.4em rounded flex gap-2 items-center dark:bg-context/12", // icon "n-icon": "flex-none", // code "n-code-block": "dark:bg-[#121212] bg-white", // icon-button "n-icon-button": "aspect-1/1 w-1.6em h-1.6em flex items-center justify-center rounded op50 hover:op100 hover:n-bg-active", // badge "n-badge-base": "bg-context/10 text-context rounded whitespace-nowrap select-none", "n-badge": "n-badge-base mx-0.5 px-1.5 py-0.5 text-xs", // loading "n-loading": "flex h-full w-full justify-center items-center", "n-panel-grids": "n-panel-grids-light dark:n-panel-grids-dark", "n-panel-grids-center": "n-panel-grids flex flex-col h-full gap-2 items-center justify-center", // glass "n-glass-effect": "backdrop-blur-6 bg-white/80 dark:bg-[#151515]/90", "n-navbar-glass": "sticky z-10 top-0 n-glass-effect" } }; } function extendUnocssOptions(user = {}) { return { ...user, preflight: true, presets: [ presetUno(), presetAttributify(), presetTypography(), presetIcons({ prefix: ["i-", ""], scale: 1.2, extraProperties: { "display": "inline-block", "vertical-align": "middle" } // ...(user?.icons || {}) }), presetWebFonts({ fonts: { sans: "DM Sans", mono: "DM Mono" } }), unocssPreset(), ...user.presets || [] ], transformers: [ transformerDirectives(), transformerVariantGroup() ] }; } export { extendUnocssOptions, unocssPreset };