nextui/apps/docs/tailwind.config.js
Junior Garcia dc0bcf13a5
v2.3.0 [WIP] (#2618)
* 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>
2024-04-16 09:25:51 -03:00

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"},
);
}),
],
};