mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
* refactor(input): input ref test (#2613) * refactor(input): remove duplicate test * refactor(input): remove unncessary waitFor * fix(radio): isRequired & missing warning message in Form (#2597) * fix(radio): avoid overriding required props * fix(radio): merge with domRef * feat(changeset): fixed missing required props and validationMessage * fix(radio): unnecessary mergeRefs * Calendar component 📅 (#2456) * feat(calendar): initial structure * feat(calendar): calendar structure completed, styles in progress * chore(calendar): dark colors adjusted * feat(calendar): styles improved, variants added, animations added with framer motion * chore(calendar): animation changed, shadow improved * chore(calendar): disableAnimation support added as well as weekDays format * feat(calendar): more stories added * chore(calendar): refactor calendar cell styling * feat(calendar): create calendar function added to the root provider * feat(calendar): invalid state and error message added * feat(calendar): calendar picker added, provider modified * feat(root): object.values deps replaced by new func, intersection hoook added, types version unified * feat(calendar): calendar pickers in progress * feat(calendar): calendar pickers added * fix(calendar): year label formatting * chore(calendar): add layout parameter to Calendar stories * feat(calendar): pickers completed, context added * feat(calendar): visibleMonths supported, warnings fixed, tests added * chore(root): changeset * chore(calendar): add topContent and bottomContent props to calendar * feat(calendar): add @nextui-org/radio package and update calendar component * refactor: assigned type(DateValue) to focusedDate(ControlledFocusedVaue) (#2637) Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de> * Range Calendar 📆 (#2634) * feat(calendar): range calendar added, calendar and context adapted * feat(calendar): range calendar stories added * chore(calendar): range calendar tests added * fix(calendar): update calendar styles to adjust to dynamic width * Date Input 🗓️ (#2641) * feat(date-picker): date field component initialized * chore(date-picker): date field renamed to date-input * feat(date-picker): date input completed * chore(date-input): commented code removed * feat(avatar): support slots in AvatarGroup (#2669) * feat: rename newPost to new (#2665) * fix(avatar): spread getAvatarGroupCountProps in avatar count * feat(avatar): support slots in avatarGroup * feat(avatar): support classNames and add getAvatarGroupCountProps * feat(docs): add classNames to avatar group * feat(avatar): add CustomSlots in avatar group * feat(changeset): support slots in avatar group --------- Co-authored-by: winches <96854855+winchesHe@users.noreply.github.com> * Date Picker Component 🗓️ (#2652) * feat(date-picker): first iteration * chore(date-picker): update date-picker README.md with improved description * feat(date-picker): code organized, integration done * fix(date-picker): min and max value + styles * fix(date-picker): popover offset adn calendar styles * feat(date-picker): stories added * fix(date-picker): calendar width properly handled * feat(date-picker): styles simplified * chore(date-picker): almost all test passing * fix(date-picker): test and styles * chore(date-picker): calendar popover tests added * fix(date-picker): props to be passed to the date-input * TimeInput Component 🕒 (#2672) * feat(time-input): time input added with some stories, tests and date-picker integration missing * feat(time-input): tests added, date-picker integration added, missing stories added * chore(react): missing packages added * chore(time-input): fix stories names * fix(time-input): time value type * fix: date-picker visibleMonth width does not get widen enough (#2703) * DateRangePicker Component 🗓️ (#2682) * chore(date-range-picker): in progress * chore(date-range-picker): in progress * feat(date-input): components separated into multiple pieces to be able to implement the date range picker * feat(date-range-picker): first version of it working * chore(date-picker): hyphen symbol changed * feat(date-range-picker): stories done * fix(range-calendar): styles * docs: Calendar & RangeCalendar (#2686) * feat(docs): add calendar in routes.json * feat(docs): refresh search-meta.json * feat(docs): add calendar examples * feat(docs): calendar content * feat(deps): add @internationalized/date * refactor(docs): remove div wrapper * feat(docs): add calendar doc * fix(docs): calendar presets * fix(docs): preset styles * chore(docs): remove calendar iframe examples * refactor(docs): discard iframe in calendar doc * fix(docs): incorrect DateValue import * feat(docs): include @internationalized/date in live demo scope * feat(docs): add presets description * chore(docs): update search-meta.json * fix(docs): remove DateValue * feat(docs): include reactAriaI18n in react live demo scope * fix(docs): presets import issue * chore(docs): update search-meta.json * feat(docs): add api reference for nextui provider * fix(calendar): ixExpanded typo * feat(docs): add missing props & event * chore(docs): update search-meta.json * chore(docs): update route keywords * chore(docs): revise value style add defaultFocusedValue * chore(docs): remove padding and revise gap * feat(docs): range calendar * chore(docs): update search-meta.json * feat(docs): add reactAriaHook * fix(docs): incorrect component and add storybook and reactAriaHook * fix(docs): incorrect import path * chore(docs): reorder range calendar position in sidebar * chore(Docs): remove custom styles & implementation * chore(docs): remove last item from accessibility * chore(docs): onValueChange -> onChange * feat(docs): add ts example for range calendar * chore(docs): remove unwanted content in range calendar * feat(docs): add ts examples for calendar * chore(docs): update import path * chore(docs): update import path * chore(docs): styles adjusted, routes updated --------- Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * docs: TimeInput (#2698) * feat(docs): add time input to routes.json * feat(deps): add @internationalized/date * feat(docs): add @internationalized/date and @react-aria/i18n to code demo scopes * feat(docs): time input contetnt * chore(docs): revise time input examples * feat(docs): time input content * chore(time-input): update description * feat(docs): add ts examples in time-input * chore(docs): revise TimeValue import --------- Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * chore(date-picker): exports updated * docs: DatePicker (#2700) * docs: created the doc for datepicker and its examples * docs: regenerate search-meta.json * fix: reverted the unncessary change to Input component * fix: fixed the component-link for date-picker * fix: fixed the component-link for date-picker * fix: added variants section to the doc * fix: made adjustment to the explanations for the props of DatePicker comp --------- Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * doc: DateInput (#2711) * docs: created base examples and the document * chore: created search-meta and follow-up fix for each date-input example cases * fix: fixed some example components styles * fix(docs): updated routes.json * fix(docs): fixed typo in the docs * fix: fixed the component-link for date-input * fix: fixed the component-link for date-input * fix: label-placements example flex style adjustment * fix: added variants section to the doc --------- Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com> Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * refactor(theme): units removed, tailwind-variants upgraded (#2713) * fix(theme): units replaced by spacing * fix(select): positioning the label if a description is used (#2553) Co-authored-by: Poli Sour <polisour.work@gmail.com> * Upgrade to new react aria version (#2561) * chore(root): pkg upgraded * fix: type error * fix: build error * chore: update packages from a~d * chore: update packages from i~r * chore: update packages from s~u * chore: update core, hooks, and utilities packages * feat: add support radio group validationBehavior props * fix: validationBehavior default to native * chore: add validationBehavior props in RadioGroup Stories * fix: handling of errorMessage * chore: add support validationBehavior autocomplete * chore: partial support for validation of select * chore: add support validationBehavior checkbox * chore: change validationBehavior default to native * Merge branch 'v.2.3.0' into feat/upgrade-react-aria * fix: validation logic * fix: add default value for autocomplete * chore: add example using error message function * chore: fixed error displayed in storybook * chore: omit validationBehavior from component props * chore: update docs and storybook on validate * fix: pnpm-lock version --------- Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * fix(core): build and date input / time input apis * chore(date-picker): omit validation behavior * chore(docs): add missing props to calendar and range calendar * docs: add nextui-cli page (#2714) * docs: add nextui-cli page * docs: update search meta * docs: typo * docs: typo * docs: typo * feat(docs): cli docs done --------- Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * chore(docs): add cli commands to installation docs * fix(checkbox): prettier * fix(docs): incorrect cli api references link * doc: DateRangePicker (#2712) * chore: created base for date-range-picker doc * fix: added follow-up story examples to the doc * fix: fixed bugs happening on the doc * fix: fixed bugs happening on the doc * fix(docs): incorrect file path and revise title * fix: component examples style fixes * fix: component presets typo fix * refactor(core): date range picker docs completed, standaline date picker field fixed --------- Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com> Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com> Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * fix: only two keyframes currently supported with spring and inertia animations (#2596) * chore(deps): bump framer-motion * feat(changeset): fixed framer motion issue * chore(changeset): revise changeset message * chore(deps): update pnpm-lock.yaml * fix: react hook form issue (#2603) * fix(input): pass domRef?.current?.value to controlled state * fix(input): pass domRef?.current?.value to useTextField instead * fix(checkbox): handle RHF case * fix(checkbox): add missing isSelected case * chore(checkbox): update ref type * chore(deps): add @nextui-org/use-safe-layout-effect * chore(deps): update pnpm-lock.yaml * chore(deps): update pnpm-lock.yaml * fix(select): handle RHF case * chore(deps): add @nextui-org/use-safe-layout-effect to select * fix(autocomplete): handle RHF case * chore(deps): add @nextui-org/use-safe-layout-effect to autocomplete * refactor(components): revise comments * feat(changeset): react-hook-form uncontrolled components * chore(deps): pnpm-lock.yaml * fix(input): domRef.current.value has higher precedence * fix(checkbox): set isChecked based on input ref checked * feat(components): tabs component add tabPosition prop (#2398) * feat(components): tabs component add tabPosition prop * fix: review problem change * test: add tabs position vertical test * docs: update changeset * fix(tabs): optimize return of tabs * fix(tabs): rename orientation to placement * fix(tabs): optimize description * chore(docs): routes * fix: isReadOnly in Autocomplete MDX (#2444) * feat(autocomplete): add isReadOnly example * fix(autocomplete): isReadOnly logic in Autocomplete * feat(root): add changeset - fixed isReadOnly logic in Autocomplete * chore(autocomplete component) isReadOnly property demo isReadOnly property demo in website MDX for autocomplete component. * Update apps/docs/content/docs/components/autocomplete.mdx Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> --------- Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com> Co-authored-by: Alpha <116849110+alpha-xek@users.noreply.github.com> Co-authored-by: Junior Garcia <jrgarciadev@gmail.com> * fix(select): only trigger setSelectedKeys when domRef.current.value is true (#2722) * chore(docs): blog changes (#2724) * chore(docs): blog changes * feat(docs): blog improved * chore(blog): draft param added * chore: version changeset added * feat(blog): v2.3.0 almost done * chore(docs): tailwind colors updated, calendar overflow fixed * chore(blog): add presets demo * fix(calendar): overflow on windows * chore(docs): improve popover placements demo * fix(autocomplete): set shouldUseVirtualFocus to false in getListboxProps (#2731) * chore(blog): add cotributors * chore(blog): draft --------- Co-authored-by: աӄա <wingkwong.code@gmail.com> Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com> Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de> Co-authored-by: winches <96854855+winchesHe@users.noreply.github.com> Co-authored-by: HaRuki <soccer_haruki15@me.com> Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com> Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com> Co-authored-by: Poli Sour <polisour.work@gmail.com> Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com> Co-authored-by: winches <329487092@qq.com> Co-authored-by: Alpha Xek <116849110+alphaxek@users.noreply.github.com> Co-authored-by: Alpha <116849110+alpha-xek@users.noreply.github.com>
387 lines
14 KiB
JavaScript
387 lines
14 KiB
JavaScript
const {nextui} = require("@nextui-org/theme/plugin");
|
|
const {commonColors} = require("@nextui-org/theme/colors");
|
|
const svgToDataUri = require("mini-svg-data-uri");
|
|
const plugin = require("tailwindcss/plugin");
|
|
const {default: flattenColorPalette} = require("tailwindcss/lib/util/flattenColorPalette");
|
|
|
|
// get tailwindcss default config
|
|
const defaultTheme = require("tailwindcss/defaultTheme");
|
|
const twColors = require("tailwindcss/colors.js");
|
|
|
|
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
"./app/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./components/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./layouts/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./libs/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./content/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}",
|
|
],
|
|
darkMode: "class",
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
"code-foreground": "rgb(var(--code-foreground) / <alpha-value>)",
|
|
"code-syntax1": "rgb(var(--code-syntax1) / <alpha-value>)",
|
|
"code-syntax2": "rgb(var(--code-syntax2) / <alpha-value>)",
|
|
"code-syntax3": "rgb(var(--code-syntax3) / <alpha-value>)",
|
|
"code-syntax4": "rgb(var(--code-syntax4) / <alpha-value>)",
|
|
"code-syntax5": "rgb(var(--code-syntax5) / <alpha-value>)",
|
|
"code-syntax6": "rgb(var(--code-syntax6) / <alpha-value>)",
|
|
"code-removed": "rgb(var(--code-removed) / <alpha-value>)",
|
|
"code-string": "rgb(var(--code-string) / <alpha-value>)",
|
|
"code-class": "rgb(var(--code-class) / <alpha-value>)",
|
|
"code-punctuation": "rgb(var(--code-punctuation) / <alpha-value>)",
|
|
"code-number": "rgb(var(--code-number) / <alpha-value>)",
|
|
"code-added": "rgb(var(--code-added) / <alpha-value>)",
|
|
"code-line-number": "rgb(var(--code-line-number) / <alpha-value>)",
|
|
"code-faded-line": "rgb(var(--code-faded-line) / <alpha-value>)",
|
|
"code-comment": "rgb(var(--code-comment) / <alpha-value>)",
|
|
"code-keyword": "rgb(var(--code-keyword) / <alpha-value>)",
|
|
"code-function": "rgb(var(--code-function) / <alpha-value>)",
|
|
"code-tag": "rgb(var(--code-tag) / <alpha-value>)",
|
|
"code-attr-name": "rgb(var(--code-attr-name) / <alpha-value>)",
|
|
"code-language-javascript": "rgb(var(--code-language-javascript) / <alpha-value>)",
|
|
"code-highlighted-word1-bg": "rgb(var(--code-highlighted-word1-bg) / <alpha-value>)",
|
|
"code-highlighted-word1-bg-active":
|
|
"rgb(var(--code-highlighted-word1-bg-active) / <alpha-value>)",
|
|
"code-highlighted-word1-text": "rgb(var(--code-highlighted-word1-text) / <alpha-value>)",
|
|
"code-highlighted-word2-bg": "rgb(var(--code-highlighted-word2-bg) / <alpha-value>)",
|
|
"code-highlighted-word2-bg-active":
|
|
"rgb(var(--code-highlighted-word2-bg-active) / <alpha-value>)",
|
|
"code-highlighted-word2-text": "rgb(var(--code-highlighted-word2-text) / <alpha-value>)",
|
|
"code-highlighted-word3-bg": "rgb(var(--code-highlighted-word3-bg) / <alpha-value>)",
|
|
"code-highlighted-word3-bg-active":
|
|
"rgb(var(--code-highlighted-word3-bg-active) / <alpha-value>)",
|
|
"code-highlighted-word3-text": "rgb(var(--code-highlighted-word3-text) / <alpha-value>)",
|
|
},
|
|
boxShadow: {
|
|
highlighted: `${commonColors.purple[500]} 1px 0 0, ${commonColors.purple[500]} -1px 0 0`,
|
|
},
|
|
fontFamily: {
|
|
sans: ["var(--font-sans)", ...defaultTheme.fontFamily.sans],
|
|
serif: defaultTheme.fontFamily.serif,
|
|
mono: defaultTheme.fontFamily.mono,
|
|
},
|
|
backgroundImage: {
|
|
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
|
|
"gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
|
|
},
|
|
typography: (theme) => ({
|
|
DEFAULT: {
|
|
css: {
|
|
color: "hsl(var(--nextui-foreground))",
|
|
maxWidth: "none",
|
|
hr: {
|
|
marginTop: "2em",
|
|
marginBottom: "2em",
|
|
},
|
|
"h1, h2, h3": {
|
|
letterSpacing: "-0.025em",
|
|
},
|
|
h2: {
|
|
marginTop: "1.5em",
|
|
marginBottom: `${16 / 24}em`,
|
|
},
|
|
h3: {
|
|
marginTop: "1.8em",
|
|
lineHeight: "1.4",
|
|
},
|
|
h4: {
|
|
marginTop: "2em",
|
|
fontSize: "1.125em",
|
|
},
|
|
"h2 a": {
|
|
fontSize: `${theme("fontSize.2xl")[0]} !important`,
|
|
fontWeight: theme("fontWeight.semibold"),
|
|
...theme("fontSize.2xl")[1],
|
|
},
|
|
"h3 a": {
|
|
fontSize: "1.25rem !important",
|
|
fontWeight: theme("fontWeight.medium"),
|
|
},
|
|
"h2 small, h3 small, h4 small": {
|
|
fontFamily: theme("fontFamily.mono").join(", "),
|
|
color: theme("colors.slate.500"),
|
|
fontWeight: 500,
|
|
},
|
|
"h2 small": {
|
|
fontSize: theme("fontSize.lg")[0],
|
|
...theme("fontSize.lg")[1],
|
|
},
|
|
"h3 small": {
|
|
fontSize: theme("fontSize.base")[0],
|
|
...theme("fontSize.base")[1],
|
|
},
|
|
"h4 small": {
|
|
fontSize: theme("fontSize.sm")[0],
|
|
...theme("fontSize.sm")[1],
|
|
},
|
|
"h2, h3, h4": {
|
|
"scroll-margin-top": "var(--scroll-mt)",
|
|
},
|
|
ul: {
|
|
listStyleType: "none",
|
|
paddingLeft: 0,
|
|
},
|
|
"ul > li": {
|
|
marginTop: "0.1em",
|
|
marginBottom: "0.1em",
|
|
fontWeight: theme("fontWeight.normal"),
|
|
},
|
|
"ul > li > *:last-child": {
|
|
marginTop: 0,
|
|
marginBottom: 0,
|
|
},
|
|
"ul > li > a": {
|
|
marginTop: "0",
|
|
marginBottom: "0",
|
|
},
|
|
a: {
|
|
fontWeight: theme("fontWeight.normal"),
|
|
},
|
|
"a code": {
|
|
color: "inherit",
|
|
fontWeight: "inherit",
|
|
},
|
|
strong: {
|
|
color: "hsl(var(--nextui-strong))",
|
|
fontWeight: theme("fontWeight.semibold"),
|
|
},
|
|
"a strong": {
|
|
color: "inherit",
|
|
fontWeight: "inherit",
|
|
},
|
|
kbd: {
|
|
fontSize: "0.875em",
|
|
fontVariantLigatures: "none",
|
|
borderRadius: "4px",
|
|
margin: "0 1px",
|
|
},
|
|
code: {
|
|
fontWeight: theme("fontWeight.medium"),
|
|
fontVariantLigatures: "none",
|
|
},
|
|
pre: {
|
|
display: "flex",
|
|
fontSize: theme("fontSize.sm")[0],
|
|
backgroundColor: "transparent",
|
|
fontWeight: theme("fontWeight.light"),
|
|
padding: 0,
|
|
margin: 0,
|
|
},
|
|
p: {
|
|
marginTop: `${12 / 14}em`,
|
|
marginBottom: `${12 / 14}em`,
|
|
fontWeight: theme("fontWeight.normal"),
|
|
},
|
|
"pre code": {
|
|
flex: "none",
|
|
minWidth: "100%",
|
|
},
|
|
table: {
|
|
marginTop: "0px",
|
|
fontSize: theme("fontSize.sm")[0],
|
|
lineHeight: theme("fontSize.sm")[1].lineHeight,
|
|
},
|
|
thead: {
|
|
border: "none",
|
|
},
|
|
"thead th": {
|
|
paddingTop: 0,
|
|
fontWeight: theme("fontWeight.semibold"),
|
|
},
|
|
"tbody tr": {
|
|
border: "none",
|
|
},
|
|
"tbody tr:last-child": {
|
|
border: "none",
|
|
},
|
|
"figure figcaption": {
|
|
textAlign: "center",
|
|
fontStyle: "italic",
|
|
},
|
|
"figure > figcaption": {
|
|
marginTop: `${12 / 14}em`,
|
|
},
|
|
blockquote: {
|
|
fontWeight: theme("fontWeight.normal"),
|
|
fontStyle: "font-normal",
|
|
},
|
|
"code::before": {
|
|
content: "",
|
|
},
|
|
"code::after": {
|
|
content: "",
|
|
},
|
|
"blockquote p:first-of-type::before": {
|
|
content: "",
|
|
},
|
|
"blockquote p:last-of-type::after": {
|
|
content: "",
|
|
},
|
|
},
|
|
},
|
|
dark: {
|
|
css: {
|
|
color: "hsl(var(--nextui-default-700))",
|
|
strong: {
|
|
color: "hsl(var(--nextui-cyan-500))",
|
|
},
|
|
},
|
|
},
|
|
neutral: {
|
|
css: {
|
|
"--tw-prose-body": "hsl(var(--nextui-default-700))",
|
|
"--tw-prose-headings": "hsl(var(--nextui-foreground))",
|
|
"--tw-prose-lead": "hsl(var(--nextui-default-600))",
|
|
"--tw-prose-links": "hsl(var(--nextui-default-900))",
|
|
"--tw-prose-bold": "hsl(var(--nextui-default-900))",
|
|
"--tw-prose-counters": "hsl(var(--nextui-default-500))",
|
|
"--tw-prose-bullets": "hsl(var(--nextui-default-300))",
|
|
"--tw-prose-hr": "hsl(var(--nextui-default-200))",
|
|
"--tw-prose-quotes": "hsl(var(--nextui-default-900))",
|
|
"--tw-prose-quote-borders": "hsl(var(--nextui-default-200))",
|
|
"--tw-prose-captions": "hsl(var(--nextui-default-500))",
|
|
"--tw-prose-code": "hsl(var(--nextui-default-900))",
|
|
"--tw-prose-pre-code": "hsl(var(--nextui-default-200))",
|
|
"--tw-prose-pre-bg": "hsl(var(--nextui-default-800))",
|
|
"--tw-prose-th-borders": "hsl(var(--nextui-default-300))",
|
|
"--tw-prose-td-borders": "hsl(var(--nextui-default-200))",
|
|
"--tw-prose-invert-body": "hsl(var(--nextui-default-300))",
|
|
"--tw-prose-invert-headings": commonColors.white,
|
|
"--tw-prose-invert-lead": theme("twColors.neutral[400]"),
|
|
"--tw-prose-invert-links": commonColors.white,
|
|
"--tw-prose-invert-bold": commonColors.white,
|
|
"--tw-prose-invert-counters": theme("twColors.neutral[400]"),
|
|
"--tw-prose-invert-bullets": theme("twColors.neutral[600]"),
|
|
"--tw-prose-invert-hr": theme("twColors.neutral[700]"),
|
|
"--tw-prose-invert-quotes": theme("twColors.neutral[100]"),
|
|
"--tw-prose-invert-quote-borders": theme("twColors.neutral[700]"),
|
|
"--tw-prose-invert-captions": theme("twColors.neutral[400]"),
|
|
"--tw-prose-invert-code": commonColors.white,
|
|
"--tw-prose-invert-pre-code": "hsl(var(--nextui-default-300))",
|
|
"--tw-prose-invert-pre-bg": "rgb(0 0 0 / 50%)",
|
|
"--tw-prose-invert-th-borders": theme("twColors.neutral[600]"),
|
|
"--tw-prose-invert-td-borders": theme("twColors.neutral[700]"),
|
|
},
|
|
},
|
|
}),
|
|
keyframes: {
|
|
heartbeat: {
|
|
"0%": {transform: "scale(1)"},
|
|
"50%": {transform: "scale(1.2)"},
|
|
"100%": {transform: "scale(1)"},
|
|
},
|
|
levitate: {
|
|
"0%": {
|
|
transform: "translateY(0)",
|
|
},
|
|
"30%": {
|
|
transform: "translateY(-10px)",
|
|
},
|
|
"50%": {
|
|
transform: "translateY(4px)",
|
|
},
|
|
"70%": {
|
|
transform: "translateY(-15px)",
|
|
},
|
|
"100%": {
|
|
transform: "translateY(0)",
|
|
},
|
|
},
|
|
expand: {
|
|
"0%": {transform: "scale(1)"},
|
|
"50%": {transform: "scale(1.2)"},
|
|
"100%": {transform: "scale(1)"},
|
|
},
|
|
"expand-opacity": {
|
|
"0%": {
|
|
opacity: 0,
|
|
transform: "scale(1)",
|
|
},
|
|
"50%": {
|
|
opacity: 1,
|
|
transform: "scale(1.3)",
|
|
},
|
|
"100%": {
|
|
opacity: 0,
|
|
transform: "scale(1.295)",
|
|
},
|
|
},
|
|
"text-gradient": {
|
|
to: {
|
|
backgroundPosition: "-200% center",
|
|
},
|
|
},
|
|
},
|
|
animation: {
|
|
heartbeat: "heartbeat 1s ease-in-out infinite",
|
|
levitate: "levitate 5s ease infinite",
|
|
expand: "expand 6s ease-out infinite both",
|
|
"expand-opacity": "expand-opacity 6s linear infinite both",
|
|
"text-gradient": "text-gradient 4s linear 0s infinite normal forwards running",
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
nextui({
|
|
addCommonColors: true,
|
|
themes: {
|
|
light: {
|
|
colors: {
|
|
"code-background": "#363449",
|
|
strong: "#ff4ecd",
|
|
"code-mdx": "#ff4ecd",
|
|
},
|
|
},
|
|
dark: {
|
|
colors: {
|
|
strong: "#06B7DB",
|
|
"code-background": "#0D0B0B",
|
|
"code-mdx": "#06B7DB",
|
|
},
|
|
},
|
|
// only for testing purpose
|
|
olive: {
|
|
extend: "dark",
|
|
layout: {
|
|
radius: {
|
|
small: "2px",
|
|
medium: "4px",
|
|
large: "6px",
|
|
},
|
|
borderWidth: {
|
|
small: "1px",
|
|
medium: "1px",
|
|
large: "2px",
|
|
},
|
|
},
|
|
colors: {
|
|
primary: {
|
|
DEFAULT: "#BEF264",
|
|
foreground: "#000000",
|
|
},
|
|
focus: "#BEF264",
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
require("@tailwindcss/typography"),
|
|
plugin(function ({matchUtilities, theme}) {
|
|
matchUtilities(
|
|
{
|
|
"bg-grid": (value) => ({
|
|
backgroundImage: `url("${svgToDataUri(
|
|
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" fill="none" stroke="${value}"><path d="M0 .5H31.5V32"/></svg>`,
|
|
)}")`,
|
|
}),
|
|
},
|
|
{values: flattenColorPalette(theme("backgroundColor")), type: "color"},
|
|
);
|
|
}),
|
|
],
|
|
};
|