@fluidattacks/design 1.2.19 → 1.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">
2
2
  <defs>
3
- <linearGradient id="gradient-01" gradientTransform="rotate(-45deg)">
3
+ <linearGradient id="gradient-01" gradientTransform="rotate(-45)">
4
4
  <stop stop-color="#F32637"/>
5
5
  <stop offset="1" stop-color="#B8075D"/>
6
6
  </linearGradient>
7
7
 
8
- <linearGradient id="gradient-02" gradientTransform="rotate(-45deg)">
8
+ <linearGradient id="gradient-02" gradientTransform="rotate(-45)">
9
9
  <stop stop-color="#FCFCFD"/>
10
10
  <stop offset="1" stop-color="#667085"/>
11
11
  </linearGradient>
@@ -85,7 +85,6 @@ type TSpacing = keyof DefaultTheme["spacing"];
85
85
  type TShadows = keyof DefaultTheme["shadows"];
86
86
  type TIconSize = "xl" | "lg" | "md" | "sm" | "xs" | "xxs";
87
87
  type TMode = "dark" | "light";
88
- type TResolution = "desktop" | "mobile";
89
88
  interface IPaddingModifiable {
90
89
  padding?: [TSpacing, TSpacing, TSpacing, TSpacing];
91
90
  px?: TSpacing;
@@ -175,4 +174,4 @@ interface IInteractionModifiable {
175
174
  shadowHover?: TShadows;
176
175
  }
177
176
  type TModifiable = IBorderModifiable & IDisplayModifiable & IInteractionModifiable & IMarginModifiable & IPaddingModifiable & IPositionModifiable & ITextModifiable;
178
- export type { DefaultTheme as ThemeType, TSpacing, IPaddingModifiable, IMarginModifiable, IDisplayModifiable, IIconModifiable, ITextModifiable, IInteractionModifiable, IPositionModifiable, IBorderModifiable, ISizeModifiable, TIconSize, TModifiable, TMode, TResolution, TSize, };
177
+ export type { DefaultTheme as ThemeType, TSpacing, IPaddingModifiable, IMarginModifiable, IDisplayModifiable, IIconModifiable, ITextModifiable, IInteractionModifiable, IPositionModifiable, IBorderModifiable, ISizeModifiable, TIconSize, TModifiable, TMode, TSize, };
@@ -1,14 +1,9 @@
1
- import { TType, TVariant } from './types';
1
+ import { TVariant } from './types';
2
2
  interface IStyledButtonProps {
3
- $bold: boolean;
4
- $resolution?: TType;
5
3
  $variant?: TVariant;
6
4
  }
7
- declare const StyledWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
- ref?: ((instance: HTMLDivElement | null) => void) | import('react').RefObject<HTMLDivElement> | null | undefined;
9
- }>, never>, Partial<IStyledButtonProps>>> & string;
10
5
  declare const StyledButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<Omit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import('../@core').IPaddingModifiable | keyof import('../@core').IMarginModifiable | keyof import('../@core').IPositionModifiable | keyof import('../@core').IBorderModifiable | keyof import('../@core').IDisplayModifiable | keyof import('../@core').ITextModifiable | keyof import('../@core').IInteractionModifiable> & import('../@core').IBorderModifiable & import('../@core').IDisplayModifiable & import('../@core').IInteractionModifiable & import('../@core').IMarginModifiable & import('../@core').IPaddingModifiable & import('../@core').IPositionModifiable & import('../@core').ITextModifiable, "ref"> & {
11
6
  ref?: ((instance: HTMLButtonElement | null) => void) | import('react').RefObject<HTMLButtonElement> | null | undefined;
12
7
  }, IStyledButtonProps>> & string;
13
8
  export type { IStyledButtonProps, TVariant };
14
- export { StyledButton, StyledWrapper };
9
+ export { StyledButton };
@@ -1,7 +1,6 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
- import { IBorderModifiable, IDisplayModifiable, IIconModifiable, IMarginModifiable, IPaddingModifiable, TMode, TResolution } from '../@core';
2
+ import { IBorderModifiable, IDisplayModifiable, IIconModifiable, IMarginModifiable, IPaddingModifiable, TMode } from '../@core';
3
3
  import { TPlace } from '../tooltip/types';
4
- type TType = TResolution | "platform";
5
4
  type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "tertiary" | "ghost" | "ghostWeb" | "link";
6
5
  /**
7
6
  * Button component props.
@@ -13,7 +12,6 @@ type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "terti
13
12
  * @extends ButtonHTMLAttributes<HTMLButtonElement>
14
13
  * @property {boolean} [bold] Text bold for link variant.
15
14
  * @property {TMode} [mode] The background theme: dark or light.
16
- * @property {TType} [resolution] The page resolution: desktop, platform or mobile.
17
15
  * @property {string} [tooltip] Tooltip message.
18
16
  * @property {TPlace} [tooltipPlace] Tooltip message relative place.
19
17
  * @property {boolean} [underline] Text underlined for link variant.
@@ -22,11 +20,10 @@ type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "terti
22
20
  interface IButtonProps extends IBorderModifiable, IDisplayModifiable, IMarginModifiable, IPaddingModifiable, Partial<IIconModifiable>, ButtonHTMLAttributes<HTMLButtonElement> {
23
21
  bold?: boolean;
24
22
  mode?: TMode;
25
- resolution?: TType;
26
23
  showArrow?: boolean;
27
24
  tooltip?: string;
28
25
  tooltipPlace?: TPlace;
29
26
  underline?: boolean;
30
27
  variant?: TVariant;
31
28
  }
32
- export type { IButtonProps, TMode, TType, TVariant };
29
+ export type { IButtonProps, TMode, TVariant };
@@ -0,0 +1,3 @@
1
+ import { IMessageBannerProps } from './types';
2
+ declare const MessageBanner: import('react').ForwardRefExoticComponent<Readonly<IMessageBannerProps> & import('react').RefAttributes<unknown>>;
3
+ export { MessageBanner };
@@ -0,0 +1,6 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IMessageBannerProps } from './types';
3
+ declare const config: Meta;
4
+ declare const Default: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, IMessageBannerProps>;
5
+ export default config;
6
+ export { Default };
@@ -0,0 +1,2 @@
1
+ declare const Button: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
2
+ export { Button };
@@ -0,0 +1,24 @@
1
+ import { IconName } from '@fortawesome/free-solid-svg-icons';
2
+ import { Property } from 'csstype';
3
+ import { MouseEventHandler } from 'react';
4
+ type TVariant = "web" | "platform";
5
+ /**
6
+ * Message banner props.
7
+ * @extends IMessageBannerProps
8
+ * @property {JSX.Element | string} [message] Banner text.
9
+ * @property {string} [buttonText] Text for action button.
10
+ * @property {FontWeight} [buttonFontWeight] Weight for button text.
11
+ * @property {IconName} [icon] Icon for action button.
12
+ * @property {Function} [onClickButton] Action for action button.
13
+ * @property {Function} [onClose] Extra action when banner close.
14
+ */
15
+ interface IMessageBannerProps {
16
+ message: JSX.Element | string;
17
+ buttonText?: string;
18
+ buttonFontWeight?: Property.FontWeight;
19
+ icon?: IconName;
20
+ onClickButton?: MouseEventHandler<HTMLButtonElement>;
21
+ onClose?: () => void;
22
+ variant?: TVariant;
23
+ }
24
+ export type { IMessageBannerProps, TVariant };
@@ -0,0 +1,7 @@
1
+ import { TVariant } from './types';
2
+ import { TSize } from '../@core';
3
+ declare const getFontSize: (variant: TVariant) => {
4
+ normal: TSize;
5
+ small: TSize | undefined;
6
+ };
7
+ export { getFontSize };
@@ -1,3 +1,3 @@
1
1
  import { ISearchBarProps } from './types';
2
- declare const SearchBar: ({ clear, items, placeholder, refine, showHits, query, }: Readonly<ISearchBarProps>) => JSX.Element;
2
+ declare const SearchBar: ({ items, placeholder, refine, query, }: Readonly<ISearchBarProps>) => JSX.Element;
3
3
  export { SearchBar };
@@ -0,0 +1,7 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ISearchBarProps } from './types';
3
+ declare const config: Meta;
4
+ declare const Default: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, ISearchBarProps>;
5
+ declare const EmptyState: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, ISearchBarProps>;
6
+ export { Default, EmptyState };
7
+ export default config;
@@ -6,5 +6,10 @@ declare const StyledSearchBox: import('styled-components/dist/types').IStyledCom
6
6
  declare const StyledSearchBar: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, never>> & string;
7
7
  declare const StyledSearchInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
8
8
  declare const StyledSearchReset: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
9
- declare const StyledDropdownItems: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
9
+ declare const StyledDropdownItems: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
10
+ ref?: ((instance: HTMLDivElement | null) => void) | import('react').RefObject<HTMLDivElement> | null | undefined;
11
+ }>, never>, {
12
+ $empty?: boolean;
13
+ $showHits?: boolean;
14
+ }>> & string;
10
15
  export { IconWrapper, StyledDropdownItems, StyledItemSearching, StyledSearchBar, StyledSearchBox, StyledSearchInput, StyledSearchReset, };
@@ -13,20 +13,15 @@ interface IItemSearchingProps {
13
13
  }
14
14
  /**
15
15
  * Search bar component props.
16
- * @property {Function} clear A function to clear the search query.
17
16
  * @property {THit[]} items The matched items returned from Algolia.
18
17
  * @property {string} [placeholder] The search bar placeholder.
19
18
  * @property {Function} refine A function to set a new query and searches.
20
- * @property {Function} sendEvent A function to send click or conversion events.
21
- * @property {boolean} [showHits] Whether or not to show the hit options.
22
19
  * @property {string} query The query from the last search.
23
20
  */
24
21
  interface ISearchBarProps {
25
- clear: () => void;
26
22
  items: THit[];
27
23
  placeholder?: string;
28
24
  refine: (value: string) => void;
29
- showHits?: boolean;
30
25
  query: string;
31
26
  }
32
27
  export type { IItemSearchingProps, ISearchBarProps };
@@ -0,0 +1,4 @@
1
+ import { IItemSearchingProps } from './types';
2
+ declare const itemsSuggested: IItemSearchingProps[];
3
+ declare const itemContact: IItemSearchingProps;
4
+ export { itemContact, itemsSuggested };
@@ -0,0 +1,3 @@
1
+ declare const StyledTab: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, never>> & string;
2
+ declare const StyledTabs: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
+ export { StyledTab, StyledTabs };
@@ -7,6 +7,7 @@ export * from './components/container';
7
7
  export * from './components/icon';
8
8
  export * from './components/language-selector';
9
9
  export * from './components/logo';
10
+ export * from './components/search-bar';
10
11
  export * from './components/toggle-buttons';
11
12
  export * from './components/tooltip';
12
13
  export * from './components/typography';
package/package.json CHANGED
@@ -47,10 +47,11 @@
47
47
  "stylelint": "16.10.0",
48
48
  "stylelint-config-standard": "36.0.1",
49
49
  "tailwindcss": "3.4.13",
50
- "typescript": "5.6.2",
51
- "typescript-eslint": "8.10.0",
52
- "vite": "5.4.9",
53
- "vite-plugin-dts": "4.2.4"
50
+ "typescript": "5.6.3",
51
+ "typescript-eslint": "8.11.0",
52
+ "vite": "5.4.10",
53
+ "vite-plugin-css-injected-by-js": "3.5.2",
54
+ "vite-plugin-dts": "4.3.0"
54
55
  },
55
56
  "files": [
56
57
  "README.md",
@@ -81,7 +82,7 @@
81
82
  "preview": "vite preview",
82
83
  "storybook": "storybook dev"
83
84
  },
84
- "version": "1.2.19",
85
+ "version": "1.2.21",
85
86
  "eslintConfig": {
86
87
  "extends": [
87
88
  "plugin:storybook/recommended"
@@ -1,3 +0,0 @@
1
- import { TVariant } from './types';
2
- declare const isPlatform: (variant?: TVariant) => boolean;
3
- export { isPlatform };
package/dist/style.css DELETED
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\[500px\]{height:500px}.max-h-min{max-height:-moz-min-content;max-height:min-content}.w-full{width:100%}.max-w-72{max-width:18rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-4{padding:1rem}.px-12{padding-left:3rem;padding-right:3rem}.px-8{padding-left:2rem;padding-right:2rem}.py-4{padding-top:1rem;padding-bottom:1rem}.align-middle{vertical-align:middle}.text-sm{font-size:.875rem;line-height:1.25rem}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@property --animate-position{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --color-1{syntax: "<color>"; initial-value: #f32637; inherits: false;}@property --color-2{syntax: "<color>"; initial-value: #b8075d; inherits: false;}@property --btn-padding-x{syntax: "<length>"; initial-value: 16px; inherits: false;}@property --btn-padding-y{syntax: "<length>"; initial-value: 10px; inherits: false;}@property --btn-spacing{syntax: "<length>"; initial-value: 8px; inherits: false;}@property --grid-columns{syntax: "<number>"; initial-value: 12; inherits: false;}@property --grid-width{syntax: "<length>"; initial-value: 1440px; inherits: false;}@property --angle-grad{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --opacity-grad{syntax: "<number>"; initial-value: 0; inherits: false;}@keyframes spinAnimation{to{--border-angle: 360deg}}@keyframes gradientAnimation{0%{--animate-position: 45deg}33%{--animate-position: -50deg}66%{--animate-position: -100deg}to{--animate-position: 45deg}}