diff --git a/packages/theme-nonepress/package.json b/packages/theme-nonepress/package.json index e5d256e..172589d 100644 --- a/packages/theme-nonepress/package.json +++ b/packages/theme-nonepress/package.json @@ -56,23 +56,24 @@ "@mdx-js/react": "^3.0.0", "@nullbot/docusaurus-plugin-docsmenu": "^3.4.2", "@nullbot/docusaurus-plugin-getsidebar": "^3.4.2", + "@tailwindcss/postcss": "^4.1.4", "@tailwindcss/typography": "^0.5.0", "algoliasearch": "^5.17.1", "algoliasearch-helper": "^3.22.6", - "autoprefixer": "^10.3.1", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", - "daisyui": "^4.0.0", + "daisyui": "^5.0.0", "infima": "0.2.0-alpha.43", "lodash": "^4.17.21", "nprogress": "^0.2.0", "postcss": "^8.4.26", "postcss-import": "^15.1.0", + "postcss-nested": "^7.0.2", "prism-react-renderer": "^2.3.0", "prismjs": "^1.29.0", "react-router-dom": "^5.3.4", "rtlcss": "^4.1.0", - "tailwindcss": "^3.0.0", + "tailwindcss": "^4.0.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, diff --git a/packages/theme-nonepress/src/index.ts b/packages/theme-nonepress/src/index.ts index 45bc064..6226e94 100644 --- a/packages/theme-nonepress/src/index.ts +++ b/packages/theme-nonepress/src/index.ts @@ -1,12 +1,9 @@ import path from "path"; import { readDefaultCodeTranslationMessages } from "@docusaurus/theme-translations"; -import autoprefixer from "autoprefixer"; -import postcssImport from "postcss-import"; -import tailwindcss from "tailwindcss"; -import tailwindNesting from "tailwindcss/nesting"; +import tailwindcss from "@tailwindcss/postcss"; +import postcssNested from "postcss-nested"; -import defaultTailwindConfig from "./tailwind.config"; import { getTranslationFiles, translateThemeConfig } from "./translations"; import type { LoadContext, Plugin, PostCssOptions } from "@docusaurus/types"; @@ -14,7 +11,6 @@ import type { PluginOptions, ThemeConfig, } from "@nullbot/docusaurus-theme-nonepress"; -import type { Config as tailwindConfigType } from "tailwindcss"; const ThemeStorageKey = "theme"; const ThemeQueryStringKey = "docusaurus-theme"; @@ -84,14 +80,6 @@ const AnnouncementBarInlineJavaScript = ` document.documentElement.setAttribute('${AnnouncementBarDismissDataAttribute}', isDismissed()); })();`; -function getPurgeCSSPath(siteDir?: string): string[] { - const purge = [`${__dirname}/theme/**/*.{js,jsx,ts,tsx}`]; - if (siteDir) { - purge.push(`${siteDir}/**/*.{js,jsx,ts,tsx,mdx}`); - } - return purge; -} - export default async function themeNonepress( context: LoadContext, options: PluginOptions, @@ -165,25 +153,7 @@ export default async function themeNonepress( }, configurePostCss(postCssOptions: PostCssOptions): PostCssOptions { - const purgeFiles = getPurgeCSSPath(siteDir); - const content = tailwindConfig?.content; - if (Array.isArray(content)) { - content.unshift(...purgeFiles); - } else { - content?.files.unshift(...purgeFiles); - } - const finalTailwindConfig: tailwindConfigType = { - presets: [defaultTailwindConfig, tailwindConfig].filter( - (config): config is tailwindConfigType => !!config, - ), - content: content ?? purgeFiles, - }; - postCssOptions.plugins.unshift( - postcssImport(), - tailwindNesting(), - tailwindcss(finalTailwindConfig), - autoprefixer(), - ); + postCssOptions.plugins.unshift(postcssNested(), tailwindcss()); return postCssOptions; }, diff --git a/packages/theme-nonepress/src/styles.css b/packages/theme-nonepress/src/styles.css index aff304f..87e26e9 100644 --- a/packages/theme-nonepress/src/styles.css +++ b/packages/theme-nonepress/src/styles.css @@ -1,4 +1,9 @@ -@import url("tailwindcss/tailwind"); +@import "tailwindcss"; +@source '**/theme/**/*.{js,jsx,ts,tsx}'; +@plugin "@tailwindcss/typography"; +@plugin "daisyui" { + themes: light --default, dark --prefersdark; +} [data-theme] { @apply transition-[color,background-color] duration-500; diff --git a/packages/theme-nonepress/src/tailwind.config.ts b/packages/theme-nonepress/src/tailwind.config.ts deleted file mode 100644 index 505b234..0000000 --- a/packages/theme-nonepress/src/tailwind.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import typography from "@tailwindcss/typography"; -import daisyui from "daisyui"; - -import type { Config } from "tailwindcss"; - -export default { - content: [`${__dirname}/theme/**/*.{js,jsx,ts,tsx}`], - plugins: [typography, daisyui], - daisyui: { - base: false, - themes: ["light", "dark"], - darkTheme: false, - }, -} satisfies Config; diff --git a/packages/theme-nonepress/src/theme/Admonition/styles.css b/packages/theme-nonepress/src/theme/Admonition/styles.css index df75fa7..92bb43e 100644 --- a/packages/theme-nonepress/src/theme/Admonition/styles.css +++ b/packages/theme-nonepress/src/theme/Admonition/styles.css @@ -1,3 +1,4 @@ +@reference "../../styles.css"; .admonition { @apply block w-full mb-4 p-4 text-left; @apply rounded-box bg-base-200 text-base-content; diff --git a/packages/theme-nonepress/src/theme/AnnouncementBar/styles.css b/packages/theme-nonepress/src/theme/AnnouncementBar/styles.css index 53aaebd..62a2b07 100644 --- a/packages/theme-nonepress/src/theme/AnnouncementBar/styles.css +++ b/packages/theme-nonepress/src/theme/AnnouncementBar/styles.css @@ -1,3 +1,4 @@ +@reference "../../styles.css"; .announcement { @apply relative z-40 flex items-center gap-x-6 sm:before:flex-1; @apply px-6 py-2.5 sm:px-3.5 overflow-hidden; diff --git a/packages/theme-nonepress/src/theme/BackToTopButton/styles.css b/packages/theme-nonepress/src/theme/BackToTopButton/styles.css index 70139e1..0e8778b 100644 --- a/packages/theme-nonepress/src/theme/BackToTopButton/styles.css +++ b/packages/theme-nonepress/src/theme/BackToTopButton/styles.css @@ -1,5 +1,7 @@ +@reference "../../styles.css"; + .back-to-top { - @apply btn btn-circle btn-primary no-animation; + @apply btn btn-circle btn-primary; @apply fixed z-10 right-5 bottom-5 shadow-md; @apply transition transform opacity-0 scale-0; diff --git a/packages/theme-nonepress/src/theme/CodeBlock/CopyButton/index.tsx b/packages/theme-nonepress/src/theme/CodeBlock/CopyButton/index.tsx index 5ebf4b9..884a0af 100644 --- a/packages/theme-nonepress/src/theme/CodeBlock/CopyButton/index.tsx +++ b/packages/theme-nonepress/src/theme/CodeBlock/CopyButton/index.tsx @@ -50,7 +50,7 @@ export default function CopyButton({ code, className }: Props): ReactNode { description: "The copy button label on code blocks", })} className={clsx( - "btn btn-square btn-sm no-animation swap swap-rotate code-block-btn", + "btn btn-square btn-sm swap swap-rotate code-block-btn", className, isCopied && "swap-active", )} diff --git a/packages/theme-nonepress/src/theme/CodeBlock/WordWrapButton/index.tsx b/packages/theme-nonepress/src/theme/CodeBlock/WordWrapButton/index.tsx index e743c89..83c066d 100644 --- a/packages/theme-nonepress/src/theme/CodeBlock/WordWrapButton/index.tsx +++ b/packages/theme-nonepress/src/theme/CodeBlock/WordWrapButton/index.tsx @@ -25,7 +25,7 @@ export default function WordWrapButton({ aria-label={title} title={title} className={clsx( - "btn btn-square btn-sm no-animation code-block-btn", + "btn btn-square btn-sm code-block-btn", className, isEnabled && "code-block-btn-active", )} diff --git a/packages/theme-nonepress/src/theme/CodeBlock/styles.css b/packages/theme-nonepress/src/theme/CodeBlock/styles.css index f957ae2..c929b2b 100644 --- a/packages/theme-nonepress/src/theme/CodeBlock/styles.css +++ b/packages/theme-nonepress/src/theme/CodeBlock/styles.css @@ -1,3 +1,4 @@ +@reference "../../styles.css"; .code-block { &-container { color: var(--prism-color); diff --git a/packages/theme-nonepress/src/theme/ColorModeToggle/styles.css b/packages/theme-nonepress/src/theme/ColorModeToggle/styles.css index cfc4003..ea52bbe 100644 --- a/packages/theme-nonepress/src/theme/ColorModeToggle/styles.css +++ b/packages/theme-nonepress/src/theme/ColorModeToggle/styles.css @@ -1,3 +1,5 @@ +@reference "../../styles.css"; + .appearance-toggle { @apply inline-flex items-center shrink-0 h-6 w-11 rounded-full; @apply bg-base-200 cursor-pointer; diff --git a/packages/theme-nonepress/src/theme/Details/styles.css b/packages/theme-nonepress/src/theme/Details/styles.css index 14be14c..15e5ebf 100644 --- a/packages/theme-nonepress/src/theme/Details/styles.css +++ b/packages/theme-nonepress/src/theme/Details/styles.css @@ -1,3 +1,4 @@ +@reference "../../styles.css"; .details { @apply w-full p-4 bg-base-200 rounded-box; } diff --git a/packages/theme-nonepress/src/theme/DocBreadcrumbs/Items/Home/index.tsx b/packages/theme-nonepress/src/theme/DocBreadcrumbs/Items/Home/index.tsx index 084d6b4..0c67b6a 100644 --- a/packages/theme-nonepress/src/theme/DocBreadcrumbs/Items/Home/index.tsx +++ b/packages/theme-nonepress/src/theme/DocBreadcrumbs/Items/Home/index.tsx @@ -17,7 +17,7 @@ export default function HomeBreadcrumbItem(): ReactNode { message: "Home page", description: "The ARIA label for the home page in the breadcrumbs", })} - className="btn btn-ghost btn-xs no-animation breadcrumbs-btn" + className="btn btn-ghost btn-xs breadcrumbs-btn" href={homeHref} > diff --git a/packages/theme-nonepress/src/theme/DocBreadcrumbs/index.tsx b/packages/theme-nonepress/src/theme/DocBreadcrumbs/index.tsx index 336c820..db820ff 100644 --- a/packages/theme-nonepress/src/theme/DocBreadcrumbs/index.tsx +++ b/packages/theme-nonepress/src/theme/DocBreadcrumbs/index.tsx @@ -21,7 +21,7 @@ function BreadcrumbsItemLink({ href: string | undefined; isLast: boolean; }): ReactNode { - const className = "btn btn-ghost btn-xs no-animation breadcrumbs-btn"; + const className = "btn btn-ghost btn-xs breadcrumbs-btn"; if (isLast) { return (