@tripie-pyotato/design-system 0.0.0
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.
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-lint$colon$fix.log +22 -0
- package/.turbo/turbo-lint.log +18 -0
- package/.turbo/turbo-test.log +152 -0
- package/.turbo/turbo-typecheck.log +5 -0
- package/coverage/clover.xml +1651 -0
- package/coverage/coverage-final.json +57 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/dist/button.js.html +112 -0
- package/coverage/lcov-report/dist/common.js.html +127 -0
- package/coverage/lcov-report/dist/components/body/_body.js.html +157 -0
- package/coverage/lcov-report/dist/components/body/_body.stories.js.html +193 -0
- package/coverage/lcov-report/dist/components/body/index.html +146 -0
- package/coverage/lcov-report/dist/components/body/index.js.html +109 -0
- package/coverage/lcov-report/dist/components/index.html +116 -0
- package/coverage/lcov-report/dist/components/index.js.html +127 -0
- package/coverage/lcov-report/dist/components/myButton/index.html +161 -0
- package/coverage/lcov-report/dist/components/myButton/index.js.html +154 -0
- package/coverage/lcov-report/dist/components/myButton/my-button.js.html +109 -0
- package/coverage/lcov-report/dist/components/myButton/myButton.js.html +133 -0
- package/coverage/lcov-report/dist/components/myButton/myButton.stories.js.html +181 -0
- package/coverage/lcov-report/dist/components/typography/_typography.js.html +190 -0
- package/coverage/lcov-report/dist/components/typography/_typography.stories.js.html +352 -0
- package/coverage/lcov-report/dist/components/typography/index.html +146 -0
- package/coverage/lcov-report/dist/components/typography/index.js.html +154 -0
- package/coverage/lcov-report/dist/components/typography/text/_text.js.html +139 -0
- package/coverage/lcov-report/dist/components/typography/text/_text.stories.js.html +259 -0
- package/coverage/lcov-report/dist/components/typography/text/index.html +146 -0
- package/coverage/lcov-report/dist/components/typography/text/index.js.html +160 -0
- package/coverage/lcov-report/dist/fonts/index.html +116 -0
- package/coverage/lcov-report/dist/fonts/index.js.html +154 -0
- package/coverage/lcov-report/dist/hooks/index.html +131 -0
- package/coverage/lcov-report/dist/hooks/index.js.html +136 -0
- package/coverage/lcov-report/dist/hooks/useAppTheme.js.html +202 -0
- package/coverage/lcov-report/dist/index.html +161 -0
- package/coverage/lcov-report/dist/index.js.html +139 -0
- package/coverage/lcov-report/dist/my-button.js.html +109 -0
- package/coverage/lcov-report/dist/myButton/Button.stories.js.html +229 -0
- package/coverage/lcov-report/dist/myButton/index.html +161 -0
- package/coverage/lcov-report/dist/myButton/index.js.html +154 -0
- package/coverage/lcov-report/dist/myButton/myButton.js.html +133 -0
- package/coverage/lcov-report/dist/myButton/myButton.stories.js.html +181 -0
- package/coverage/lcov-report/dist/text/index.html +176 -0
- package/coverage/lcov-report/dist/text/index.js.html +139 -0
- package/coverage/lcov-report/dist/text/text.js.html +151 -0
- package/coverage/lcov-report/dist/text/text.stories.js.html +232 -0
- package/coverage/lcov-report/dist/text/typography.js.html +160 -0
- package/coverage/lcov-report/dist/text/typography.stories.js.html +166 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +431 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/components/body/_body.stories.tsx.html +196 -0
- package/coverage/lcov-report/src/components/body/_body.tsx.html +163 -0
- package/coverage/lcov-report/src/components/body/index.html +146 -0
- package/coverage/lcov-report/src/components/body/index.ts.html +88 -0
- package/coverage/lcov-report/src/components/index.html +116 -0
- package/coverage/lcov-report/src/components/index.ts.html +97 -0
- package/coverage/lcov-report/src/components/myButton/index.html +161 -0
- package/coverage/lcov-report/src/components/myButton/index.ts.html +91 -0
- package/coverage/lcov-report/src/components/myButton/my-button.tsx.html +109 -0
- package/coverage/lcov-report/src/components/myButton/myButton.stories.tsx.html +220 -0
- package/coverage/lcov-report/src/components/myButton/myButton.tsx.html +160 -0
- package/coverage/lcov-report/src/components/typography/font/_font.tsx.html +127 -0
- package/coverage/lcov-report/src/components/typography/font/index.html +131 -0
- package/coverage/lcov-report/src/components/typography/font/index.ts.html +91 -0
- package/coverage/lcov-report/src/components/typography/headings/_headings.stories.tsx.html +361 -0
- package/coverage/lcov-report/src/components/typography/headings/_headings.tsx.html +211 -0
- package/coverage/lcov-report/src/components/typography/headings/index.html +146 -0
- package/coverage/lcov-report/src/components/typography/headings/index.ts.html +91 -0
- package/coverage/lcov-report/src/components/typography/index.html +116 -0
- package/coverage/lcov-report/src/components/typography/index.ts.html +91 -0
- package/coverage/lcov-report/src/components/typography/link/_link.stories.tsx.html +268 -0
- package/coverage/lcov-report/src/components/typography/link/_link.tsx.html +199 -0
- package/coverage/lcov-report/src/components/typography/link/index.html +146 -0
- package/coverage/lcov-report/src/components/typography/link/index.ts.html +91 -0
- package/coverage/lcov-report/src/components/typography/paragraph/_paragraph.stories.tsx.html +229 -0
- package/coverage/lcov-report/src/components/typography/paragraph/_paragraph.tsx.html +124 -0
- package/coverage/lcov-report/src/components/typography/paragraph/index.html +131 -0
- package/coverage/lcov-report/src/components/typography/text/_text.stories.tsx.html +184 -0
- package/coverage/lcov-report/src/components/typography/text/_text.tsx.html +196 -0
- package/coverage/lcov-report/src/components/typography/text/index.html +146 -0
- package/coverage/lcov-report/src/components/typography/text/index.ts.html +91 -0
- package/coverage/lcov-report/src/hooks/index.html +131 -0
- package/coverage/lcov-report/src/hooks/index.ts.html +88 -0
- package/coverage/lcov-report/src/hooks/useAppTheme.ts.html +220 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/index.ts.html +91 -0
- package/coverage/lcov-report/turbo/generators/config.ts.html +175 -0
- package/coverage/lcov-report/turbo/generators/index.html +116 -0
- package/coverage/lcov.info +2087 -0
- package/dist/button.d.ts +7 -0
- package/dist/button.d.ts.map +1 -0
- package/dist/button.js +9 -0
- package/dist/common.d.ts +12 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +14 -0
- package/dist/components/body/_body.d.ts +8 -0
- package/dist/components/body/_body.d.ts.map +1 -0
- package/dist/components/body/_body.js +24 -0
- package/dist/components/body/_body.stories.d.ts +7 -0
- package/dist/components/body/_body.stories.d.ts.map +1 -0
- package/dist/components/body/_body.stories.js +36 -0
- package/dist/components/body/index.d.ts +2 -0
- package/dist/components/body/index.d.ts.map +1 -0
- package/dist/components/body/index.js +8 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +14 -0
- package/dist/components/myButton/index.d.ts +3 -0
- package/dist/components/myButton/index.d.ts.map +1 -0
- package/dist/components/myButton/index.js +23 -0
- package/dist/components/myButton/my-button.d.ts +4 -0
- package/dist/components/myButton/my-button.d.ts.map +1 -0
- package/dist/components/myButton/my-button.js +8 -0
- package/dist/components/myButton/myButton.d.ts +7 -0
- package/dist/components/myButton/myButton.d.ts.map +1 -0
- package/dist/components/myButton/myButton.js +16 -0
- package/dist/components/myButton/myButton.stories.d.ts +7 -0
- package/dist/components/myButton/myButton.stories.d.ts.map +1 -0
- package/dist/components/myButton/myButton.stories.js +32 -0
- package/dist/components/typography/_typography.d.ts +23 -0
- package/dist/components/typography/_typography.d.ts.map +1 -0
- package/dist/components/typography/_typography.js +35 -0
- package/dist/components/typography/_typography.stories.d.ts +13 -0
- package/dist/components/typography/_typography.stories.d.ts.map +1 -0
- package/dist/components/typography/_typography.stories.js +89 -0
- package/dist/components/typography/index.d.ts +3 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +23 -0
- package/dist/components/typography/text/_text.d.ts +19 -0
- package/dist/components/typography/text/_text.d.ts.map +1 -0
- package/dist/components/typography/text/_text.js +18 -0
- package/dist/components/typography/text/_text.stories.d.ts +10 -0
- package/dist/components/typography/text/_text.stories.d.ts.map +1 -0
- package/dist/components/typography/text/_text.stories.js +58 -0
- package/dist/components/typography/text/index.d.ts +3 -0
- package/dist/components/typography/text/index.d.ts.map +1 -0
- package/dist/components/typography/text/index.js +25 -0
- package/dist/fonts/index.d.ts +3 -0
- package/dist/fonts/index.d.ts.map +1 -0
- package/dist/fonts/index.js +23 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +17 -0
- package/dist/hooks/useAppTheme.d.ts +21 -0
- package/dist/hooks/useAppTheme.d.ts.map +1 -0
- package/dist/hooks/useAppTheme.js +39 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/my-button.d.ts +4 -0
- package/dist/my-button.d.ts.map +1 -0
- package/dist/my-button.js +8 -0
- package/dist/myButton/Button.stories.d.ts +8 -0
- package/dist/myButton/Button.stories.d.ts.map +1 -0
- package/dist/myButton/Button.stories.js +48 -0
- package/dist/myButton/index.d.ts +3 -0
- package/dist/myButton/index.d.ts.map +1 -0
- package/dist/myButton/index.js +23 -0
- package/dist/myButton/myButton.d.ts +7 -0
- package/dist/myButton/myButton.d.ts.map +1 -0
- package/dist/myButton/myButton.js +16 -0
- package/dist/myButton/myButton.stories.d.ts +7 -0
- package/dist/myButton/myButton.stories.d.ts.map +1 -0
- package/dist/myButton/myButton.stories.js +32 -0
- package/dist/src/components/Accordian/Accordian.jsx +61 -0
- package/dist/src/components/Accordian/accordian.stories.jsx +76 -0
- package/dist/src/components/Accordian/index.js +21 -0
- package/dist/src/components/Accordian/variants.js +46 -0
- package/dist/src/components/Carousel/Carousel.jsx +84 -0
- package/dist/src/components/Carousel/Carousel.spec.jsx +203 -0
- package/dist/src/components/Carousel/carousel.stories.jsx +56 -0
- package/dist/src/components/Carousel/images.js +40 -0
- package/dist/src/components/Carousel/index.js +20 -0
- package/dist/src/components/Chip/Chip.jsx +27 -0
- package/dist/src/components/Chip/Chip.spec.jsx +103 -0
- package/dist/src/components/Chip/chip.stories.jsx +61 -0
- package/dist/src/components/Chip/index.js +20 -0
- package/dist/src/components/ChipMarker/ChipMarker.jsx +17 -0
- package/dist/src/components/ChipMarker/chip.stories.jsx +42 -0
- package/dist/src/components/ChipMarker/index.js +20 -0
- package/dist/src/components/Divider/Divider.jsx +21 -0
- package/dist/src/components/Divider/constants.js +10 -0
- package/dist/src/components/Divider/divider.stories.jsx +72 -0
- package/dist/src/components/Divider/index.js +20 -0
- package/dist/src/components/Headings/Headings.jsx +37 -0
- package/dist/src/components/Headings/headings.stories.jsx +83 -0
- package/dist/src/components/Headings/index.js +20 -0
- package/dist/src/components/Link/Link.jsx +26 -0
- package/dist/src/components/Link/List.spec.jsx +22 -0
- package/dist/src/components/Link/index.js +20 -0
- package/dist/src/components/Link/link.stories.jsx +53 -0
- package/dist/src/components/List/List.jsx +29 -0
- package/dist/src/components/List/list-item.stories.jsx +81 -0
- package/dist/src/components/List/list.stories.jsx +45 -0
- package/dist/src/components/List/variants.js +24 -0
- package/dist/src/components/MotionSlideUp/MotionSlideUp.jsx +20 -0
- package/dist/src/components/MotionSlideUp/index.js +20 -0
- package/dist/src/components/Particle/Background/ParticleBackground.jsx +16 -0
- package/dist/src/components/Particle/Background/index.js +20 -0
- package/dist/src/components/Particle/Background/particle-background.stories.jsx +29 -0
- package/dist/src/components/Particle/Field/ParticleField.jsx +17 -0
- package/dist/src/components/Particle/Field/index.js +20 -0
- package/dist/src/components/Particle/Field/particle-field.stories.jsx +31 -0
- package/dist/src/components/Particle/Particles/Particles.jsx +15 -0
- package/dist/src/components/RotatingBlur/RotatingBlur.jsx +19 -0
- package/dist/src/components/RotatingBlur/index.js +20 -0
- package/dist/src/components/RotatingBlur/rotating-blur.stories.jsx +38 -0
- package/dist/src/components/SplashScreen/SplashScreen.jsx +22 -0
- package/dist/src/components/SplashScreen/index.js +20 -0
- package/dist/src/components/SplashScreen/splash-screen.stories.jsx +44 -0
- package/dist/src/components/Switch/Switch.jsx +18 -0
- package/dist/src/components/Switch/index.js +20 -0
- package/dist/src/components/Switch/switch.stories.jsx +31 -0
- package/dist/src/components/Switch/variants.js +35 -0
- package/dist/src/components/Text/Text.jsx +72 -0
- package/dist/src/components/Text/index.js +20 -0
- package/dist/src/components/Text/text.stories.jsx +44 -0
- package/dist/src/components/Text/variants.js +40 -0
- package/dist/src/components/TextFill/TextFillAnimation.jsx +51 -0
- package/dist/src/components/TextFill/index.js +20 -0
- package/dist/src/components/TextFill/text-fill-animation.stories.jsx +51 -0
- package/dist/src/components/TextUnderlineAnimation/TextUnderlineAnimation.jsx +16 -0
- package/dist/src/components/TextUnderlineAnimation/index.js +20 -0
- package/dist/src/components/TextUnderlineAnimation/text-underline-animation.stories.jsx +34 -0
- package/dist/src/components/TextUnderlineAnimation/variants.js +24 -0
- package/dist/src/components/TripieButton/Animated/AnimateButton.spec.jsx +106 -0
- package/dist/src/components/TripieButton/Animated/AnimatedButton.jsx +16 -0
- package/dist/src/components/TripieButton/Animated/animated-button.stories.jsx +58 -0
- package/dist/src/components/TripieButton/Animated/index.js +20 -0
- package/dist/src/components/TripieButton/Animated/variants.js +15 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuItem/index.jsx +15 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuItem/menu-item.stories.jsx +36 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuItem/variants.js +19 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuList/index.jsx +15 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuList/menu-list.stories.jsx +41 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuList/variants.js +15 -0
- package/dist/src/components/TripieButton/MenuToggle/MenuToggle.jsx +45 -0
- package/dist/src/components/TripieButton/MenuToggle/index.js +20 -0
- package/dist/src/components/TripieButton/MenuToggle/menu-toggle.stories.jsx +55 -0
- package/dist/src/components/TripieButton/NoStyle/NoStyleButton.jsx +12 -0
- package/dist/src/components/TripieButton/NoStyle/NoStyleButton.spec.jsx +87 -0
- package/dist/src/components/TripieButton/NoStyle/index.js +20 -0
- package/dist/src/components/TripieButton/NoStyle/no-style-button.stories.jsx +29 -0
- package/dist/src/components/TripieCard/Card.jsx +57 -0
- package/dist/src/components/TripieCard/card.stories.jsx +45 -0
- package/dist/src/components/TripieCard/index.js +20 -0
- package/dist/src/components/TripieContainer/TripieContainer.jsx +23 -0
- package/dist/src/components/TripieContainer/index.js +20 -0
- package/dist/src/components/TripieContainer/tripie-container.stories.jsx +70 -0
- package/dist/src/components/TripieIcon/Icon.jsx +84 -0
- package/dist/src/components/TripieIcon/icon-transport.stories.jsx +89 -0
- package/dist/src/components/TripieIcon/icon.stories.jsx +68 -0
- package/dist/src/components/TripieIcon/index.js +20 -0
- package/dist/src/components/TripieIcon/variants.js +172 -0
- package/dist/src/components/TripieImage/TripieImage.jsx +25 -0
- package/dist/src/components/TripieImage/index.js +20 -0
- package/dist/src/components/TripieImage/tripie-image.stories.jsx +86 -0
- package/dist/src/components/TripieSkeleton/Skeleton.jsx +30 -0
- package/dist/src/components/TripieSkeleton/index.js +20 -0
- package/dist/src/components/TripieSkeleton/skeleton.stories.jsx +28 -0
- package/dist/src/components/index.js +54 -0
- package/dist/src/font.js +12 -0
- package/dist/src/hooks/index.js +19 -0
- package/dist/src/hooks/useAppTheme.js +33 -0
- package/dist/src/hooks/useCycle.js +32 -0
- package/dist/src/hooks/useDrawer.js +21 -0
- package/dist/src/index.js +19 -0
- package/dist/src/shared/colors.js +20 -0
- package/dist/src/shared/index.js +19 -0
- package/dist/src/shared/resource.js +26 -0
- package/dist/src/shared/variants.js +66 -0
- package/dist/text/index.d.ts +3 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +18 -0
- package/dist/text/text.d.ts +47 -0
- package/dist/text/text.d.ts.map +1 -0
- package/dist/text/text.js +22 -0
- package/dist/text/text.stories.d.ts +10 -0
- package/dist/text/text.stories.d.ts.map +1 -0
- package/dist/text/text.stories.js +49 -0
- package/dist/text/typography.d.ts +18 -0
- package/dist/text/typography.d.ts.map +1 -0
- package/dist/text/typography.js +25 -0
- package/dist/text/typography.stories.d.ts +7 -0
- package/dist/text/typography.stories.d.ts.map +1 -0
- package/dist/text/typography.stories.js +27 -0
- package/dist/turbo/generators/config.js +30 -0
- package/jest.config.cjs +21 -0
- package/jest.setup.cjs +4 -0
- package/package.json +80 -0
- package/setupTests.mjs +39 -0
- package/src/base/_breakpoint.scss +15 -0
- package/src/base/_colors.scss +98 -0
- package/src/base/_config.scss +33 -0
- package/src/base/_font-size.scss +17 -0
- package/src/base/_font-stack.scss +27 -0
- package/src/base/_font-weight.scss +23 -0
- package/src/base/_letter-spacing.scss +12 -0
- package/src/base/_line-height.scss +12 -0
- package/src/base/_motion.scss +35 -0
- package/src/base/_shape.scss +19 -0
- package/src/base/_space.scss +58 -0
- package/src/base/_theme.scss +97 -0
- package/src/base/_z-index.scss +44 -0
- package/src/base/index.scss +13 -0
- package/src/components/Accordian/Accordian.tsx +72 -0
- package/src/components/Accordian/accordian.module.scss +18 -0
- package/src/components/Accordian/accordian.stories.tsx +86 -0
- package/src/components/Accordian/index.ts +3 -0
- package/src/components/Accordian/variants.ts +45 -0
- package/src/components/Carousel/Carousel.spec.tsx +239 -0
- package/src/components/Carousel/Carousel.tsx +131 -0
- package/src/components/Carousel/carousel.module.scss +61 -0
- package/src/components/Carousel/carousel.stories.tsx +117 -0
- package/src/components/Carousel/images.ts +44 -0
- package/src/components/Carousel/index.ts +2 -0
- package/src/components/Chip/Chip.spec.tsx +59 -0
- package/src/components/Chip/Chip.tsx +64 -0
- package/src/components/Chip/chip.module.scss +79 -0
- package/src/components/Chip/chip.stories.tsx +70 -0
- package/src/components/Chip/index.ts +2 -0
- package/src/components/ChipMarker/ChipMarker.tsx +20 -0
- package/src/components/ChipMarker/chip-marker.module.scss +75 -0
- package/src/components/ChipMarker/chip.stories.tsx +48 -0
- package/src/components/ChipMarker/index.ts +2 -0
- package/src/components/Divider/Divider.tsx +29 -0
- package/src/components/Divider/constants.ts +9 -0
- package/src/components/Divider/divider.module.scss +37 -0
- package/src/components/Divider/divider.stories.tsx +94 -0
- package/src/components/Divider/index.ts +2 -0
- package/src/components/Headings/Headings.tsx +36 -0
- package/src/components/Headings/headings.module.scss +46 -0
- package/src/components/Headings/headings.stories.tsx +92 -0
- package/src/components/Headings/index.ts +2 -0
- package/src/components/Link/Link.tsx +31 -0
- package/src/components/Link/List.spec.tsx +25 -0
- package/src/components/Link/index.ts +2 -0
- package/src/components/Link/link.module.scss +26 -0
- package/src/components/Link/link.stories.tsx +61 -0
- package/src/components/List/List.tsx +63 -0
- package/src/components/List/list-item.stories.tsx +89 -0
- package/src/components/List/list.module.scss +59 -0
- package/src/components/List/list.stories.tsx +65 -0
- package/src/components/List/variants.ts +23 -0
- package/src/components/MotionSlideUp/MotionSlideUp.tsx +37 -0
- package/src/components/MotionSlideUp/index.ts +2 -0
- package/src/components/Particle/Background/ParticleBackground.tsx +18 -0
- package/src/components/Particle/Background/index.ts +2 -0
- package/src/components/Particle/Background/particle-background.module.scss +25 -0
- package/src/components/Particle/Background/particle-background.stories.tsx +36 -0
- package/src/components/Particle/Field/ParticleField.tsx +28 -0
- package/src/components/Particle/Field/index.ts +2 -0
- package/src/components/Particle/Field/particle-field.module.scss +6 -0
- package/src/components/Particle/Field/particle-field.stories.tsx +38 -0
- package/src/components/Particle/Particles/Particles.tsx +22 -0
- package/src/components/Particle/Particles/particles.module.scss +19 -0
- package/src/components/RotatingBlur/RotatingBlur.tsx +26 -0
- package/src/components/RotatingBlur/index.ts +2 -0
- package/src/components/RotatingBlur/rotating-blur.module.scss +59 -0
- package/src/components/RotatingBlur/rotating-blur.stories.tsx +45 -0
- package/src/components/SplashScreen/SplashScreen.tsx +31 -0
- package/src/components/SplashScreen/index.ts +2 -0
- package/src/components/SplashScreen/splash-screen.module.scss +12 -0
- package/src/components/SplashScreen/splash-screen.stories.tsx +53 -0
- package/src/components/Switch/Switch.tsx +33 -0
- package/src/components/Switch/index.ts +2 -0
- package/src/components/Switch/switch.module.scss +43 -0
- package/src/components/Switch/switch.stories.tsx +36 -0
- package/src/components/Switch/variants.ts +34 -0
- package/src/components/Text/Text.tsx +158 -0
- package/src/components/Text/index.ts +2 -0
- package/src/components/Text/text.module.scss +84 -0
- package/src/components/Text/text.stories.tsx +52 -0
- package/src/components/Text/variants.ts +53 -0
- package/src/components/TextFill/TextFillAnimation.tsx +87 -0
- package/src/components/TextFill/index.ts +2 -0
- package/src/components/TextFill/text-fill-animation.module.scss +37 -0
- package/src/components/TextFill/text-fill-animation.stories.tsx +61 -0
- package/src/components/TextUnderlineAnimation/TextUnderlineAnimation.tsx +37 -0
- package/src/components/TextUnderlineAnimation/index.ts +2 -0
- package/src/components/TextUnderlineAnimation/text-underline-animation.stories.tsx +39 -0
- package/src/components/TextUnderlineAnimation/text-underline.module.scss +13 -0
- package/src/components/TextUnderlineAnimation/variants.ts +23 -0
- package/src/components/TripieButton/Animated/AnimateButton.spec.tsx +84 -0
- package/src/components/TripieButton/Animated/AnimatedButton.tsx +88 -0
- package/src/components/TripieButton/Animated/animated-button.module.scss +61 -0
- package/src/components/TripieButton/Animated/animated-button.stories.tsx +68 -0
- package/src/components/TripieButton/Animated/index.ts +2 -0
- package/src/components/TripieButton/MenuToggle/MenuItem/index.tsx +28 -0
- package/src/components/TripieButton/MenuToggle/MenuItem/menu-item.module.scss +14 -0
- package/src/components/TripieButton/MenuToggle/MenuItem/menu-item.stories.tsx +42 -0
- package/src/components/TripieButton/MenuToggle/MenuItem/variants.ts +18 -0
- package/src/components/TripieButton/MenuToggle/MenuList/index.tsx +20 -0
- package/src/components/TripieButton/MenuToggle/MenuList/menu-list.module.scss +21 -0
- package/src/components/TripieButton/MenuToggle/MenuList/menu-list.stories.tsx +51 -0
- package/src/components/TripieButton/MenuToggle/MenuList/variants.ts +14 -0
- package/src/components/TripieButton/MenuToggle/MenuToggle.tsx +67 -0
- package/src/components/TripieButton/MenuToggle/index.ts +2 -0
- package/src/components/TripieButton/MenuToggle/menu-toggle.module.scss +42 -0
- package/src/components/TripieButton/MenuToggle/menu-toggle.stories.tsx +73 -0
- package/src/components/TripieButton/NoStyle/NoStyleButton.spec.tsx +50 -0
- package/src/components/TripieButton/NoStyle/NoStyleButton.tsx +27 -0
- package/src/components/TripieButton/NoStyle/index.ts +2 -0
- package/src/components/TripieButton/NoStyle/no-style-button.module.scss +5 -0
- package/src/components/TripieButton/NoStyle/no-style-button.stories.tsx +34 -0
- package/src/components/TripieCard/Card.tsx +167 -0
- package/src/components/TripieCard/card.module.scss +122 -0
- package/src/components/TripieCard/card.stories.tsx +66 -0
- package/src/components/TripieCard/index.ts +2 -0
- package/src/components/TripieContainer/TripieContainer.tsx +54 -0
- package/src/components/TripieContainer/index.ts +2 -0
- package/src/components/TripieContainer/tripie-container.module.scss +93 -0
- package/src/components/TripieContainer/tripie-container.stories.tsx +81 -0
- package/src/components/TripieIcon/Icon.tsx +242 -0
- package/src/components/TripieIcon/icon-transport.stories.tsx +108 -0
- package/src/components/TripieIcon/icon.module.scss +35 -0
- package/src/components/TripieIcon/icon.stories.tsx +81 -0
- package/src/components/TripieIcon/index.ts +2 -0
- package/src/components/TripieIcon/variants.ts +177 -0
- package/src/components/TripieImage/TripieImage.tsx +90 -0
- package/src/components/TripieImage/index.ts +2 -0
- package/src/components/TripieImage/tripie-image.module.scss +73 -0
- package/src/components/TripieImage/tripie-image.stories.tsx +128 -0
- package/src/components/TripieSkeleton/Skeleton.tsx +27 -0
- package/src/components/TripieSkeleton/index.ts +2 -0
- package/src/components/TripieSkeleton/skeleton.module.scss +7 -0
- package/src/components/TripieSkeleton/skeleton.stories.tsx +32 -0
- package/src/components/index.ts +25 -0
- package/src/font.ts +12 -0
- package/src/functions/_breakpoint.scss +21 -0
- package/src/functions/_color.scss +63 -0
- package/src/functions/_config.scss +27 -0
- package/src/functions/_shape.scss +29 -0
- package/src/functions/_space.scss +28 -0
- package/src/functions/_typography.scss +101 -0
- package/src/functions/_units.scss +66 -0
- package/src/functions/_z-index.scss +21 -0
- package/src/functions/index.scss +8 -0
- package/src/generator/_generator.scss +21 -0
- package/src/generator/index.scss +1 -0
- package/src/global.scss +49 -0
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useAppTheme.ts +41 -0
- package/src/hooks/useCycle.ts +28 -0
- package/src/hooks/useDrawer.ts +29 -0
- package/src/index.ts +3 -0
- package/src/mixins/_border.scss +83 -0
- package/src/mixins/_clear.scss +21 -0
- package/src/mixins/_color.scss +19 -0
- package/src/mixins/_default.scss +40 -0
- package/src/mixins/_media.scss +26 -0
- package/src/mixins/_normalize.scss +353 -0
- package/src/mixins/_positioning.scss +34 -0
- package/src/mixins/_pseudo.scss +39 -0
- package/src/mixins/_reset.scss +70 -0
- package/src/mixins/_shape.scss +12 -0
- package/src/mixins/_skeleton.scss +89 -0
- package/src/mixins/_text.scss +52 -0
- package/src/mixins/_transition.scss +90 -0
- package/src/mixins/_z-index.scss +12 -0
- package/src/mixins/index.scss +14 -0
- package/src/mixins.scss +275 -0
- package/src/shared/colors.ts +18 -0
- package/src/shared/index.ts +3 -0
- package/src/shared/resource.ts +26 -0
- package/src/shared/variants.ts +68 -0
- package/src/shared/wrappers/classNames.ts +2 -0
- package/src/shared/wrappers/index.tsx +4 -0
- package/src/shared/wrappers/motion-wrapper.tsx +27 -0
- package/src/static/fonts/MaruBuri-Regular.eot +0 -0
- package/src/static/fonts/MaruBuri-Regular.otf +0 -0
- package/src/static/fonts/MaruBuri-Regular.ttf +0 -0
- package/src/static/fonts/MaruBuri-Regular.woff +0 -0
- package/src/static/fonts/MaruBuri-Regular.woff2 +0 -0
- package/src/styles/index.scss +2 -0
- package/src/typings.d.ts +5 -0
- package/src/variables.scss +31 -0
- package/tsconfig.json +21 -0
- package/turbo/generators/config.ts +30 -0
- package/turbo/generators/templates/component.hbs +8 -0
- package/vite.config.mjs +25 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "../base" as *;
|
|
3
|
+
|
|
4
|
+
/// $setting 맵으로부토 가능한 값 가져오기
|
|
5
|
+
/// @param {string} $key : 키 이름
|
|
6
|
+
/// @param {string} $group : 그룹 이름
|
|
7
|
+
/// @return {string} : 키에 해당하는 값.
|
|
8
|
+
/// @throws {error} : 키가 없을 경울 리턴
|
|
9
|
+
@function config($key, $group: null) {
|
|
10
|
+
@if $group {
|
|
11
|
+
@if not map.has-key($settings, $group) {
|
|
12
|
+
@error "The #{$group} key name doesn't exist at the $settings map. Available settings keys: #{map.keys($settings)}";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@if not map.has-key(map.get($settings, $group), $key) {
|
|
16
|
+
@error "The #{$key} key name doesn't exist at the #{$group} map. Available settings keys: #{map.keys(map.get($settings, $group))}";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@return map.get(map.get($settings, $group), $key);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@if not map.has-key($settings, $key) {
|
|
23
|
+
@error "The #{$key} key name doesn't exist at the $settings map. Available settings keys: #{map.keys($settings)}";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@return map.get($settings, $key);
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "sass:math";
|
|
4
|
+
@use "../base/" as *;
|
|
5
|
+
|
|
6
|
+
/// 도형 이름과 그룹에 해당 도형 값 리턴
|
|
7
|
+
/// @param {string} $size : 도형의 크기
|
|
8
|
+
/// @return {number} : 도형의 값
|
|
9
|
+
@function shape($size: default) {
|
|
10
|
+
$fetched-shape: map.get($config-shape, $size);
|
|
11
|
+
|
|
12
|
+
@if meta.type-of($size) == number {
|
|
13
|
+
@if $size == 0 {
|
|
14
|
+
@return 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@if math.is-unitless($size) {
|
|
18
|
+
@return $size * 1px;
|
|
19
|
+
} @else {
|
|
20
|
+
@return $size;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@if meta.type-of($fetched-shape) {
|
|
25
|
+
@return $fetched-shape;
|
|
26
|
+
} @else {
|
|
27
|
+
@error "Shape `#{$size}` not found. Available shapes: #{$config-shape}";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "sass:math";
|
|
4
|
+
@use "../base/" as *;
|
|
5
|
+
|
|
6
|
+
/// 주어진 space 값에 해당되는 간격을 픽셀로 리턴
|
|
7
|
+
/// @param {string} $space : 필요한 간격
|
|
8
|
+
/// @param {map} $map : 필요한 간격을 찾을 map
|
|
9
|
+
/// @return {number} : $map에서 필요한 간격을 px 단위로 리턴
|
|
10
|
+
@function space($space: default, $map: $config-space) {
|
|
11
|
+
@if map.has-key($map, $space) {
|
|
12
|
+
@return map.get($map, $space);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@if meta.type-of($space) == number {
|
|
16
|
+
@if $space == 0 {
|
|
17
|
+
@return 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@if math.is-unitless($space) {
|
|
21
|
+
@return $space * 1px;
|
|
22
|
+
} @else {
|
|
23
|
+
@return $space;
|
|
24
|
+
}
|
|
25
|
+
} @else {
|
|
26
|
+
@error "Spacing variant `#{$space}` not found. Available variants: #{$map}";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "sass:math";
|
|
4
|
+
@use "../base/" as *;
|
|
5
|
+
|
|
6
|
+
/// 정의했던 font family로부터 폰트 반환
|
|
7
|
+
/// @param {string} $family : font family
|
|
8
|
+
/// @return {string} : 정의했던 font family
|
|
9
|
+
@function font-family($family: default) {
|
|
10
|
+
$fetched-font-family: map.get($config-font-stack, $family);
|
|
11
|
+
|
|
12
|
+
@if meta.type-of($fetched-font-family) {
|
|
13
|
+
@return $fetched-font-family;
|
|
14
|
+
} @else {
|
|
15
|
+
@error "Font family `#{$family}` not found. Available font families: #{$config-font-stack}";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/// 주어진 범위의 폰트 크기 반환
|
|
20
|
+
/// @param {number} $range : 폰트 크기
|
|
21
|
+
/// @return {number} : 해당 폰트 스타일에 존재하는 폰트 크기
|
|
22
|
+
@function font-size($range) {
|
|
23
|
+
$fetched-font-size: map.get($config-font-size, $range);
|
|
24
|
+
|
|
25
|
+
@if meta.type-of($range) == number {
|
|
26
|
+
@if $range == 0 {
|
|
27
|
+
@return 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@if math.is-unitless($range) {
|
|
31
|
+
@return $range * 1px;
|
|
32
|
+
} @else {
|
|
33
|
+
@return $range;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@if meta.type-of($fetched-font-size) {
|
|
38
|
+
@return $fetched-font-size;
|
|
39
|
+
} @else {
|
|
40
|
+
@error "Font size range `#{$range}` not found. Available font sizes: #{$config-font-size}";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// 주어진 폰트 두께에 해당되는 font weight 반환
|
|
45
|
+
/// @param {string} $weight - Font weight.
|
|
46
|
+
/// @return {number} : 정의했던 font weight
|
|
47
|
+
@function font-weight($weight: regular) {
|
|
48
|
+
$fetched-font-weight: map.get($config-font-weight, $weight);
|
|
49
|
+
|
|
50
|
+
@if meta.type-of($weight) == number {
|
|
51
|
+
@return $weight;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@if meta.type-of($fetched-font-weight) {
|
|
55
|
+
@return $fetched-font-weight;
|
|
56
|
+
} @else {
|
|
57
|
+
@error "Font weight `#{$weight}` not found. Available font weights: #{$config-font-weight}";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/// 주어진 범위의 line height 반환
|
|
62
|
+
/// @param {number} $range : 폰트 스타일 범위
|
|
63
|
+
/// @return {number} : 정의했던 line-height
|
|
64
|
+
@function line-height($range: normal) {
|
|
65
|
+
$fetched-line-height: map.get($config-line-height, $range);
|
|
66
|
+
|
|
67
|
+
@if meta.type-of($range) == number {
|
|
68
|
+
@return $range;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@if meta.type-of($fetched-line-height) {
|
|
72
|
+
@return $fetched-line-height;
|
|
73
|
+
} @else {
|
|
74
|
+
@error "Line height `#{$range}` not found. Available line heights: #{$config-line-height}";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/// 정의했던 letter spacing에 해당 간격 반환
|
|
79
|
+
/// @param {string} $letter-spacing : 문자 간격
|
|
80
|
+
/// @return {number} : letter-spacing
|
|
81
|
+
@function letter-spacing($letter-spacing: 0) {
|
|
82
|
+
$fetched-letter-spacing: map.get($config-letter-spacing, $letter-spacing);
|
|
83
|
+
|
|
84
|
+
@if meta.type-of($letter-spacing) == number {
|
|
85
|
+
@if $letter-spacing == 0 {
|
|
86
|
+
@return 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@if math.is-unitless($letter-spacing) {
|
|
90
|
+
@return $letter-spacing * 1px;
|
|
91
|
+
} @else {
|
|
92
|
+
@return $letter-spacing;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@if meta.type-of($fetched-letter-spacing) {
|
|
97
|
+
@return $fetched-letter-spacing;
|
|
98
|
+
} @else {
|
|
99
|
+
@error "letter spacing `#{$letter-spacing}` not found. Available letter spacings: #{$config-letter-spacing}";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
@use "sass:math";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "typography" as *;
|
|
4
|
+
|
|
5
|
+
/// css 값의 단위 제거하여
|
|
6
|
+
/// @param {number} $value : 단위를 거할 값
|
|
7
|
+
/// @return {number} : 단위를 제거한 값
|
|
8
|
+
@function strip-unit($value) {
|
|
9
|
+
@if meta.type-of($value) != "number" {
|
|
10
|
+
@error "Invalid `#{meta.type-of($value)}` type. Choose a number type instead.";
|
|
11
|
+
} @else if meta.type-of($value) == "number" and not math.is-unitless($value) {
|
|
12
|
+
@return math.div($value, ($value * 0 + 1));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@return $value;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// 픽셀 값으로부터 rem값 반환
|
|
19
|
+
/// @param {number} $value : 픽셀 단위의 값
|
|
20
|
+
/// @return {number} : rem으로 변환한 값
|
|
21
|
+
@function remify($value) {
|
|
22
|
+
$unit: math.unit($value);
|
|
23
|
+
$default-font-size: font-size("default");
|
|
24
|
+
$stripped-default: strip-unit($default-font-size);
|
|
25
|
+
|
|
26
|
+
@if $value == 0 {
|
|
27
|
+
@return 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@if math.is-unitless($value) {
|
|
31
|
+
@return math.div($value, $stripped-default) * 1rem;
|
|
32
|
+
} @else if $unit == "rem" {
|
|
33
|
+
@return $value;
|
|
34
|
+
} @else if $unit == "px" {
|
|
35
|
+
@return math.div($value, $default-font-size) * 1rem;
|
|
36
|
+
} @else {
|
|
37
|
+
@error "Value must be in px, rem or just a number.";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// 픽셀값을 em으로 변환하여 반환. font-size 변경이 없는 요소만 적용가능
|
|
42
|
+
/// @param {number} $value : 변환할 픽셀 값
|
|
43
|
+
/// @return {number} : em으로 변환한 값
|
|
44
|
+
@function em($value) {
|
|
45
|
+
$unit: math.unit($value);
|
|
46
|
+
$default-font-size: font-size("default");
|
|
47
|
+
$stripped-default: strip-unit($default-font-size);
|
|
48
|
+
|
|
49
|
+
@if $value == 0 {
|
|
50
|
+
@return 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@if math.is-unitless($value) {
|
|
54
|
+
@return math.div($value, $stripped-default) * 1em;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@if $unit == "em" {
|
|
58
|
+
@return $value;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@if $unit == "px" {
|
|
62
|
+
@return math.div($value, $default-font-size) * 1em;
|
|
63
|
+
} @else {
|
|
64
|
+
@error "Value must be in px, em or just a number.";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "../base/" as *;
|
|
4
|
+
|
|
5
|
+
/// config 맵으로부터 z-index 값 반환
|
|
6
|
+
/// @param {string} $layer : `$z-indexes` 맵에서의 값
|
|
7
|
+
/// @return {number} : z-index 값
|
|
8
|
+
/// @throws {Error} : 없는 layer 옵션일 경우
|
|
9
|
+
@function z($layer: default) {
|
|
10
|
+
$fetched-z-index: map.get($config-z-index, $layer);
|
|
11
|
+
|
|
12
|
+
@if meta.type-of($layer) == number {
|
|
13
|
+
@return $layer;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@if meta.type-of($fetched-z-index) {
|
|
17
|
+
@return $fetched-z-index;
|
|
18
|
+
} @else {
|
|
19
|
+
@error "Z-index with such layer `#{$layer}` not found. Available z-indexes: #{$config-z-index}";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@use "../base/" as *;
|
|
2
|
+
@use "../functions/" as *;
|
|
3
|
+
@use "../mixins/" as *;
|
|
4
|
+
|
|
5
|
+
/// 모든 스타일 생성
|
|
6
|
+
@mixin generate-styles {
|
|
7
|
+
@include generate-reset;
|
|
8
|
+
@include generate-normalize;
|
|
9
|
+
|
|
10
|
+
@include generate-color-variables;
|
|
11
|
+
|
|
12
|
+
@each $key, $value in $config-theme {
|
|
13
|
+
@include generate-color-variables(
|
|
14
|
+
$colors: $value,
|
|
15
|
+
$selector: "[data-theme=#{$key}]:root"
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@include generate-default;
|
|
20
|
+
@include generate-media;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@forward "generator";
|
package/src/global.scss
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
@use './base/' as *;
|
|
2
|
+
@use './functions/' as *;
|
|
3
|
+
@use './generator/' as *;
|
|
4
|
+
@use './mixins/' as *;
|
|
5
|
+
@use './mixins' as *;
|
|
6
|
+
|
|
7
|
+
@use 'sass:map';
|
|
8
|
+
|
|
9
|
+
@include generate-styles;
|
|
10
|
+
|
|
11
|
+
@font-face {
|
|
12
|
+
font-family: 'MaruBuri';
|
|
13
|
+
src:
|
|
14
|
+
local('MaruBuri'),
|
|
15
|
+
url('./static/fonts/MaruBuri-Regular.woff2') format('woff2'),
|
|
16
|
+
url('./static/fonts/MaruBuri-Regular.woff') format('woff'),
|
|
17
|
+
url('./static/fonts/MaruBuri-Regular.otf') format('otf'),
|
|
18
|
+
url('./static/fonts/MaruBuri-Regular.eot') format('eot');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
html,
|
|
22
|
+
body,
|
|
23
|
+
#root {
|
|
24
|
+
height: 100%;
|
|
25
|
+
width: 100%;
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
font-family: 'MaruBuri', sans-serif;
|
|
30
|
+
scroll-behavior: smooth;
|
|
31
|
+
font-display: 'swap';
|
|
32
|
+
@include visible-scroll(true);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
button,
|
|
36
|
+
input {
|
|
37
|
+
font-family: inherit;
|
|
38
|
+
font-display: swap;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
html[data-theme='dark']:root {
|
|
42
|
+
color: color(default, 800);
|
|
43
|
+
background-color: color(themes, 500);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
a {
|
|
47
|
+
text-decoration: none;
|
|
48
|
+
color: inherit;
|
|
49
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { useLocalStorage, useMediaQuery } from 'usehooks-ts';
|
|
4
|
+
|
|
5
|
+
const COLOR_SCHEME_QUERY = '(prefers-color-scheme: dark)';
|
|
6
|
+
|
|
7
|
+
const THEME_MODE = {
|
|
8
|
+
DARK: 'dark',
|
|
9
|
+
LIGHT: 'light',
|
|
10
|
+
OS_DEFAULT: null,
|
|
11
|
+
} as const;
|
|
12
|
+
|
|
13
|
+
type ThemeMode = (typeof THEME_MODE)[keyof typeof THEME_MODE];
|
|
14
|
+
|
|
15
|
+
type UseAppThemeOutput = {
|
|
16
|
+
mode: ThemeMode;
|
|
17
|
+
toggle: () => void;
|
|
18
|
+
setMode: (mode: ThemeMode) => void;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const useAppTheme = (): UseAppThemeOutput => {
|
|
22
|
+
const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY);
|
|
23
|
+
const [themeMode, setThemeMode] = useLocalStorage<ThemeMode>('tripie-app-theme', THEME_MODE.DARK);
|
|
24
|
+
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const root = document?.documentElement;
|
|
27
|
+
if (themeMode == null) {
|
|
28
|
+
root.dataset.theme = isDarkOS ? THEME_MODE.DARK : THEME_MODE.LIGHT;
|
|
29
|
+
} else {
|
|
30
|
+
root.dataset.theme = themeMode;
|
|
31
|
+
}
|
|
32
|
+
}, [themeMode, isDarkOS]);
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
mode: themeMode,
|
|
36
|
+
toggle: () => {
|
|
37
|
+
setThemeMode(previous => (previous === THEME_MODE.DARK ? THEME_MODE.LIGHT : THEME_MODE.DARK));
|
|
38
|
+
},
|
|
39
|
+
setMode: mode => setThemeMode(mode),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* framer motion의 useCycle과 유사하게
|
|
7
|
+
* 가능한 스타일 states를 받아, 현재 스타일과 가능한 스타일들을 토글하는 기능을 합니다.
|
|
8
|
+
* 현재 스타일을 토글 시 인덱스로 가능한 스타일을 직접 접근해서 설정할 수 있습니다.
|
|
9
|
+
* ex.
|
|
10
|
+
* const [current, toggle] = useCycle(false,true,'custom');
|
|
11
|
+
* `current`은 false를 리턴하고, `toggle()`은 current를 true로, `toggle(2)`은'custom'로 설정합니다.
|
|
12
|
+
*/
|
|
13
|
+
export const useCycle = (...states: any[]) => {
|
|
14
|
+
const [possibleStates] = useState(states);
|
|
15
|
+
|
|
16
|
+
const [current, setCurrent] = useState(possibleStates[0]);
|
|
17
|
+
|
|
18
|
+
const toggleState = (index?: number) => {
|
|
19
|
+
if (index != null) {
|
|
20
|
+
setCurrent(current[index]);
|
|
21
|
+
} else {
|
|
22
|
+
const filtered = possibleStates.filter(state => state !== current);
|
|
23
|
+
setCurrent(filtered[0]);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return [current, toggleState];
|
|
28
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
|
|
4
|
+
const DRAWER_MODE = {
|
|
5
|
+
OPEN: true,
|
|
6
|
+
CLOSE: false,
|
|
7
|
+
} as const;
|
|
8
|
+
|
|
9
|
+
type DrawerMode = (typeof DRAWER_MODE)[keyof typeof DRAWER_MODE];
|
|
10
|
+
|
|
11
|
+
export type useDrawerOutput = {
|
|
12
|
+
isOpen: DrawerMode;
|
|
13
|
+
toggle: () => void;
|
|
14
|
+
close: () => void;
|
|
15
|
+
open: () => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const useDrawer = (): useDrawerOutput => {
|
|
19
|
+
const [isOpen, setIsOpen] = useState<DrawerMode>(DRAWER_MODE.CLOSE);
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
isOpen,
|
|
23
|
+
toggle: () => {
|
|
24
|
+
setIsOpen(previous => !previous);
|
|
25
|
+
},
|
|
26
|
+
open: () => setIsOpen(DRAWER_MODE.OPEN),
|
|
27
|
+
close: () => setIsOpen(DRAWER_MODE.CLOSE),
|
|
28
|
+
};
|
|
29
|
+
};
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/// 모든 방향의 border mixin
|
|
2
|
+
/// @param {string} $direction : border 옵션 : `all`, `no-top`, `no-bottom`, `no-left`, `no-right`, `top`, `vertical`, `top-left`, `top-right`, `bottom`, `bottom-left`, `bottom-right`, `left`, `horizontal`, `right`.
|
|
3
|
+
/// @param {string} $size : border 크기
|
|
4
|
+
/// @param {string} $style : border 스타일
|
|
5
|
+
/// @param {string} $color : border
|
|
6
|
+
/// @return {mixin} : border mixin
|
|
7
|
+
@mixin border(
|
|
8
|
+
$direction: all,
|
|
9
|
+
$size: 1px,
|
|
10
|
+
$style: solid,
|
|
11
|
+
$color: currentColor
|
|
12
|
+
) {
|
|
13
|
+
@if ($direction == "all") or
|
|
14
|
+
($direction == "no-top") or
|
|
15
|
+
($direction == "no-bottom") or
|
|
16
|
+
($direction == "no-left") or
|
|
17
|
+
($direction == "no-right")
|
|
18
|
+
{
|
|
19
|
+
border: $size $style $color;
|
|
20
|
+
|
|
21
|
+
@if $direction == "no-top" {
|
|
22
|
+
border-top: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@if $direction == "no-bottom" {
|
|
26
|
+
border-bottom: 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@if $direction == "no-left" {
|
|
30
|
+
border-left: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@if $direction == "no-right" {
|
|
34
|
+
border-right: 0;
|
|
35
|
+
}
|
|
36
|
+
} @else if
|
|
37
|
+
($direction == "top") or
|
|
38
|
+
($direction == "vertical") or
|
|
39
|
+
($direction == "top-left") or
|
|
40
|
+
($direction == "top-right")
|
|
41
|
+
{
|
|
42
|
+
@if $direction == "vertical" {
|
|
43
|
+
border-bottom: $size $style $color;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@if $direction == "top-left" {
|
|
47
|
+
border-left: $size $style $color;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@if $direction == "top-right" {
|
|
51
|
+
border-right: $size $style $color;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
border-top: $size $style $color;
|
|
55
|
+
} @else if
|
|
56
|
+
$direction ==
|
|
57
|
+
"bottom" or
|
|
58
|
+
$direction ==
|
|
59
|
+
"bottom-left" or
|
|
60
|
+
$direction ==
|
|
61
|
+
"bottom-right"
|
|
62
|
+
{
|
|
63
|
+
@if $direction == "bottom-left" {
|
|
64
|
+
border-left: $size $style $color;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@if $direction == "bottom-right" {
|
|
68
|
+
border-right: $size $style $color;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
border-bottom: $size $style $color;
|
|
72
|
+
} @else if $direction == "left" or $direction == "horizontal" {
|
|
73
|
+
@if $direction == "horizontal" {
|
|
74
|
+
border-right: $size $style $color;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
border-left: $size $style $color;
|
|
78
|
+
} @else if $direction == "right" {
|
|
79
|
+
border-right: $size $style $color;
|
|
80
|
+
} @else {
|
|
81
|
+
@warn "This property does not exist in this property map.";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// 버튼 기본 스타일 제거한 mixin
|
|
2
|
+
/// @return {mixin} : 버튼 스타일을 제거한 기본 베이스 버튼 mixin
|
|
3
|
+
@mixin clear-btn {
|
|
4
|
+
padding: 0;
|
|
5
|
+
font: inherit;
|
|
6
|
+
color: inherit;
|
|
7
|
+
background: none;
|
|
8
|
+
border: 0;
|
|
9
|
+
outline: inherit;
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
background-color: inherit;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/// list 기본 스타일 제거한 mixin
|
|
16
|
+
/// @return {mixin} - list 스타일 제거한 기본 베이스 mixin
|
|
17
|
+
@mixin clear-list {
|
|
18
|
+
padding: 0;
|
|
19
|
+
margin: 0;
|
|
20
|
+
list-style: none;
|
|
21
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "../functions/" as *;
|
|
3
|
+
@use "../base/" as *;
|
|
4
|
+
|
|
5
|
+
/// 컬러 variable 생성
|
|
6
|
+
/// @param {map} $colors : 컬러 맵
|
|
7
|
+
/// @param {string} $selector : selector
|
|
8
|
+
/// @return {string} : 생성된 컬러 variable
|
|
9
|
+
@mixin generate-color-variables($colors: $colors, $selector: ":root") {
|
|
10
|
+
@each $key, $value in $colors {
|
|
11
|
+
#{$selector} {
|
|
12
|
+
@each $name, $color in $value {
|
|
13
|
+
@if $color {
|
|
14
|
+
--#{$internal-prefix}#{$key}-color-#{$name}: #{$color};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
@use "../base/" as *;
|
|
2
|
+
@use "../functions/" as *;
|
|
3
|
+
|
|
4
|
+
/// 디폴트 믹스인
|
|
5
|
+
/// box-sizing은 border-box로, html 패딩 마진 기본 설정, ios 폰트 크기 변경 방지
|
|
6
|
+
@mixin generate-default {
|
|
7
|
+
*,
|
|
8
|
+
*::before,
|
|
9
|
+
*::after {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
html {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
height: 100%;
|
|
16
|
+
padding: 0;
|
|
17
|
+
margin: 0;
|
|
18
|
+
|
|
19
|
+
// prevent iOS font size change
|
|
20
|
+
-webkit-text-size-adjust: 100%;
|
|
21
|
+
-webkit-font-smoothing: antialiased;
|
|
22
|
+
-moz-osx-font-smoothing: grayscale;
|
|
23
|
+
text-rendering: optimizeLegibility;
|
|
24
|
+
font-family: font-family("default");
|
|
25
|
+
font-size: font-size("default");
|
|
26
|
+
font-weight: font-weight("default");
|
|
27
|
+
line-height: line-height("default");
|
|
28
|
+
letter-spacing: letter-spacing("default");
|
|
29
|
+
|
|
30
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
31
|
+
scroll-behavior: smooth;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body {
|
|
36
|
+
min-height: 100vh;
|
|
37
|
+
padding: 0;
|
|
38
|
+
margin: 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use "../base/" as *;
|
|
2
|
+
@use "../functions/" as *;
|
|
3
|
+
|
|
4
|
+
@mixin generate-media {
|
|
5
|
+
img {
|
|
6
|
+
block-size: auto;
|
|
7
|
+
display: block;
|
|
8
|
+
max-inline-size: 100%;
|
|
9
|
+
max-width: 100%;
|
|
10
|
+
user-select: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
iframe {
|
|
14
|
+
block-size: 100%;
|
|
15
|
+
display: block;
|
|
16
|
+
inline-size: 100%;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
figure {
|
|
20
|
+
margin-inline: 0;
|
|
21
|
+
|
|
22
|
+
figcaption {
|
|
23
|
+
text-align: center;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|