import React from 'react'; import { Moon, Magic, Flash, Devices, Server, TagUser, RoundPointer, Maximize, CodeDocument, HtmlLogo } from '@components'; export default { topFeatures: [ { title: 'Themeable', description: 'Provides a simple way to customize default themes, you can change the colors, fonts, breakpoints and everything you need.', icon: }, { title: 'Fast', description: 'Avoids unnecessary styles props at runtime, making it more performant than other UI libraries.', icon: }, { title: 'Light & Dark UI', description: 'Automatic dark mode recognition, NextUI automatically changes the theme when detects HTML theme prop changes.', icon: }, { title: 'Unique DX', description: 'NextUI is fully-typed to minimize the learning curve, and provide the best possible developer experience.', icon: } ], fullFeatures: [ { title: 'Server side render (SSR)', description: 'All NextUI components support cross-browser server-side rendering and provides a simple way to implement it in your project.', icon: }, { title: 'Accesible components', description: 'NextUI components follow the WAI-ARIA guidelines, provide keyboard support and sensible focus management.', icon: }, { title: 'No annoying focus ring', description: 'Focus ring will appear only when user navigates with keyboard.', icon: }, { title: 'Built-in media queries', description: 'NextUI provides a set of common media queries that, along with Stitches breakpoints allow you create responsive layouts faster.', icon: }, { title: 'TypeScript based', description: 'Build type safe applications, NextUI has a fully-typed API to minimize the learning curve, and help you build applications.', icon: }, { title: 'Override components tags', description: 'A polymorphic `as` prop is included in all NextUI components.', icon: }, { title: 'Critical Path CSS', description: "Since NextUI is based on Stitches, it only injects the styles which are actually used, so your users don't download unnecessary CSS.", icon: }, { title: 'Beatifully designed', description: 'NextUI components are unique and are not tied to any visual trend or design rule, which makes us unique and of course your projects as well.', icon: } ], themingCode: `import { createTheme } from '@nextui-org/react'; const lightTheme = createTheme({ type: 'light', }); return ( ); const darkTheme = createTheme({ type: 'dark', }); return ( ); const lightModernTheme = createTheme({ type: 'light', className: 'light-modern', theme: { colors: { primary: '#7928CA', primaryLight: '#d9c2f0', success: '#FF1CF7' } } }); return ( ) const darkModernTheme = createTheme({ type: 'dark', className: 'dark-modern', theme: { colors: { primary: '#7928CA', primaryLight: '#582A87', success: '#FF1CF7' } } }); return ( ); const lightElegantTheme = createTheme({ type: 'light', className: 'light-elegant', theme: { colors: { primary: '#000000', primaryLight: '#AAAAAA', success: '#a2a2a2' }, radii: { md: '4px' } } }); return ( ); const darkElegantTheme = createTheme({ type: 'dark', className: 'dark-elegant', theme: { colors: { primary: '#ffffff', primaryLight: '#222222', success: '#a2a2a2' }, radii: { md: '4px' } } }); return ( ); const lightRetroTheme = createTheme({ type: 'light', className: 'light-retro', theme: { colors: { primary: '#FFD34E', primaryLight: 'transparent', error: '#EE457E' } } }); return ( ); const darkRetroTheme = createTheme({ type: 'dark', className: 'dark-retro', theme: { colors: { primary: '#FFD34E', primaryLight: 'transparent', error: '#EE457E' } } }); return ( ); `, comparativeCode: { nextui: `import * as React from 'react'; import { Input } from '@nextui-org/react'; const MyComponent = () => { return ( ); }; export default MyComponent `, others: `import * as React from 'react'; import ButtonIcon from '@other-library/ButtonIcon'; import InputOutlined from '@other-library/InputOutlined'; import LabelInput from '@other-library/LabelInput'; import AdornmentInput from '@other-library/AdornmentInput'; import ControlForm from '@other-library/ControlForm'; import EyeIcon from '@other-library/icons/EyeIcon'; import EyeIconOff from '@other-library/icons/EyeIconOff'; const MyComponent = () => { const [values, setValues] = React.useState({ password: '', showPassword: false }); const handleChange = (event) => { setValues({ ...values, password: event.target.value }); }; const handleClickShowPassword = () => { setValues({ ...values, showPassword: !values.showPassword }); }; const handleMouseDownPassword = (event) => { event.preventDefault(); }; return ( Password {values.showPassword ? : } } label="Password" /> ); }; export default MyComponent;` }, darkModeCode: `// 1. Import createTheme import { createTheme, NextUIProvider } from "@nextui-org/react" // 2. Call createTheme and pass your custom values const darkTheme = createTheme({ type: 'dark', theme: { colors: {...}, } }) // 3. Apply dark theme // Entry point of your app const App = () => { return ( ) } export default App; `, customizationCode: `import React from 'react'; import { Button } from '@nextui-org/react'; import confetti from 'canvas-confetti'; const CustomButton = () => { const handleConfetti = () => { confetti({ zIndex: 999, particleCount: 100, spread: 70, origin: { x: 0.75, y: 0.8 } }); }; return ( ); }; export default CustomButton; `, stitchesUtilitiesCode: `export const utils = { p: (value) => ({ padding: value }), m: (value) => ({ margin: value }), w: (value) => ({ width: value }), h: (value) => ({ height: value }), dflex: (value) => ({ display: 'flex', alignItems: value, justifyContent: value }), sizeMin: (value) => ({ minWidth: value, minHeight: value, width: value, height: value }), textGradient: (value) => ({ backgroundImage: 'linear-gradient(value)', WebkitBackgroundClip: 'text', WebkitTextFillColor: 'transparent' }), bg: (value) => ({ background: value }), bgBlur: (value) => ({ bf: 'saturate(180%) blur(10px)', bg: \`$\{value}66\`, }), bgColor: (value) => ({ backgroundColor: value }), backgroundClip: (value) => ({ WebkitBackgroundClip: value, backgroundClip: value }), bgClip: (value) => ({ WebkitBackgroundClip: value, backgroundClip: value }), }` };