@nobak/design-system 1.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/LICENSE +73 -0
- package/README.md +142 -0
- package/lib/assets/icons.js +67 -0
- package/lib/components/AccountOverview/AccountOverview.js +122 -0
- package/lib/components/AdminPanel.js +58 -0
- package/lib/components/AssetExchange/AssetExchange.js +189 -0
- package/lib/components/AuthenticationFlow.js +216 -0
- package/lib/components/ConversationInterface/ConversationInterface.js +232 -0
- package/lib/components/DevFooter.js +38 -0
- package/lib/components/DevMenu.js +35 -0
- package/lib/components/DevSidebar.js +28 -0
- package/lib/components/DigitalDisplay.js +83 -0
- package/lib/components/Footer.js +45 -0
- package/lib/components/HeroContainer.js +10 -0
- package/lib/components/IntentRecognition/IntentRecognition.js +174 -0
- package/lib/components/Logo.js +259 -0
- package/lib/components/MenuBar.js +56 -0
- package/lib/components/NetworkSettings.js +223 -0
- package/lib/components/RecoverySetup/RecoverySetup.js +354 -0
- package/lib/components/RisingSun.js +122 -0
- package/lib/components/Symbol.js +226 -0
- package/lib/components/TransactionComposer/TransactionComposer.js +258 -0
- package/lib/components/TransactionConfirmation.js +184 -0
- package/lib/components/WalletMenu.js +33 -0
- package/lib/components/console/code/CodeBlock.js +150 -0
- package/lib/components/console/code/index.js +9 -0
- package/lib/components/console/data/DataTable.js +245 -0
- package/lib/components/console/data/MetricCard.js +79 -0
- package/lib/components/console/data/index.js +11 -0
- package/lib/components/console/documentation/index.js +10 -0
- package/lib/components/console/forms/APIKeyGenerator.js +261 -0
- package/lib/components/console/forms/SearchBar.js +210 -0
- package/lib/components/console/forms/index.js +10 -0
- package/lib/components/console/index.js +29 -0
- package/lib/components/console/layout/ConsoleCard.js +82 -0
- package/lib/components/console/layout/ConsoleLayout.js +86 -0
- package/lib/components/console/layout/index.js +10 -0
- package/lib/components/console/monitoring/StatusIndicator.js +128 -0
- package/lib/components/console/monitoring/index.js +9 -0
- package/lib/components/console/navigation/DevFooter.js +38 -0
- package/lib/components/console/navigation/DevMenu.js +35 -0
- package/lib/components/console/navigation/DevSidebar.js +28 -0
- package/lib/components/console/navigation/index.js +11 -0
- package/lib/components/console/settings/index.js +10 -0
- package/lib/components/index.js +12 -0
- package/lib/design/ColorPicker.stories.js +9 -0
- package/lib/design/HSLTool-V1.js +345 -0
- package/lib/design/HSLTool-V2.js +475 -0
- package/lib/design/HSLTool-V3.js +543 -0
- package/lib/design/HSLTool-V4.js +1139 -0
- package/lib/design/HSLTool.js +374 -0
- package/lib/design/OKLCHColorPicker.stories.js +24 -0
- package/lib/design/OKLCHTool.js +1014 -0
- package/lib/index.js +4 -0
- package/lib/shared/components/Avatar/Avatar.js +18 -0
- package/lib/shared/components/Avatar/index.js +1 -0
- package/lib/shared/components/Badge/Badge.js +34 -0
- package/lib/shared/components/Badge/index.js +1 -0
- package/lib/shared/components/Breadcrumb/Breadcrumb.js +13 -0
- package/lib/shared/components/Breadcrumb/index.js +1 -0
- package/lib/shared/components/Button/Button.js +184 -0
- package/lib/shared/components/Button/index.js +1 -0
- package/lib/shared/components/Calendar/Calendar.js +155 -0
- package/lib/shared/components/Calendar/CalendarDay.js +251 -0
- package/lib/shared/components/Calendar/CalendarHeader.js +88 -0
- package/lib/shared/components/Calendar/CalendarMonth.js +106 -0
- package/lib/shared/components/Calendar/CalendarWeek.js +267 -0
- package/lib/shared/components/Calendar/constants.js +73 -0
- package/lib/shared/components/Calendar/index.js +3 -0
- package/lib/shared/components/Calendar/types.d.js +0 -0
- package/lib/shared/components/Cartel/Cartel.js +44 -0
- package/lib/shared/components/Cartel/index.js +1 -0
- package/lib/shared/components/Cell/Cell.js +105 -0
- package/lib/shared/components/Cell/index.js +1 -0
- package/lib/shared/components/Checkbox/Checkbox.js +27 -0
- package/lib/shared/components/Checkbox/index.js +1 -0
- package/lib/shared/components/Clock/Clock.js +6 -0
- package/lib/shared/components/Clock/index.js +1 -0
- package/lib/shared/components/ColorChecker/ColorChecker.js +89 -0
- package/lib/shared/components/ColorChecker/index.js +2 -0
- package/lib/shared/components/ColorChecker/utils.js +159 -0
- package/lib/shared/components/Command/Command.js +95 -0
- package/lib/shared/components/Command/index.js +1 -0
- package/lib/shared/components/Container/Container.js +18 -0
- package/lib/shared/components/Container/index.js +1 -0
- package/lib/shared/components/Cover/Cover.js +17 -0
- package/lib/shared/components/Cover/index.js +1 -0
- package/lib/shared/components/DatePicker/DatePicker.js +52 -0
- package/lib/shared/components/DatePicker/components/Calendar.js +125 -0
- package/lib/shared/components/DatePicker/components/CalendarDay.js +23 -0
- package/lib/shared/components/DatePicker/components/DateWrapper.js +15 -0
- package/lib/shared/components/DatePicker/components/index.js +2 -0
- package/lib/shared/components/DatePicker/index.js +1 -0
- package/lib/shared/components/DateTime/DateTime.js +51 -0
- package/lib/shared/components/DateTime/index.js +1 -0
- package/lib/shared/components/Debug/Debug.js +12 -0
- package/lib/shared/components/Debug/index.js +1 -0
- package/lib/shared/components/Disclosure/Disclosure.js +31 -0
- package/lib/shared/components/Disclosure/index.js +1 -0
- package/lib/shared/components/Dropdown/Dropdown.js +91 -0
- package/lib/shared/components/Dropdown/index.js +1 -0
- package/lib/shared/components/EmptyState/EmptyState.js +40 -0
- package/lib/shared/components/EmptyState/index.js +1 -0
- package/lib/shared/components/Form/Form.js +41 -0
- package/lib/shared/components/Form/components/DynamicForm.js +66 -0
- package/lib/shared/components/Form/components/StepperForm.js +266 -0
- package/lib/shared/components/Form/components/index.js +2 -0
- package/lib/shared/components/Form/context/Form.js +164 -0
- package/lib/shared/components/Form/context/index.js +1 -0
- package/lib/shared/components/Form/index.js +1 -0
- package/lib/shared/components/Form/types.d.js +1 -0
- package/lib/shared/components/Form/utils/index.js +31 -0
- package/lib/shared/components/GroupItems/GroupItems.js +17 -0
- package/lib/shared/components/GroupItems/index.js +1 -0
- package/lib/shared/components/Header/Header.js +26 -0
- package/lib/shared/components/Header/index.js +1 -0
- package/lib/shared/components/Heading/Heading.js +5 -0
- package/lib/shared/components/Heading/index.js +1 -0
- package/lib/shared/components/Icon/Icon.js +28 -0
- package/lib/shared/components/Icon/index.js +1 -0
- package/lib/shared/components/Identicons/Identicons.js +6 -0
- package/lib/shared/components/Identicons/index.d.js +0 -0
- package/lib/shared/components/Identicons/index.js +1 -0
- package/lib/shared/components/Image/Image.js +22 -0
- package/lib/shared/components/Image/index.js +1 -0
- package/lib/shared/components/Input/Input.js +201 -0
- package/lib/shared/components/Input/components/CheckBoxInput.js +81 -0
- package/lib/shared/components/Input/components/DateInput.js +89 -0
- package/lib/shared/components/Input/components/DefaultInput.js +102 -0
- package/lib/shared/components/Input/components/FileReaderInput.js +88 -0
- package/lib/shared/components/Input/components/NumberInput.js +141 -0
- package/lib/shared/components/Input/components/PickerInput.js +122 -0
- package/lib/shared/components/Input/components/RCInput.js +112 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxBasic.js +56 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxCard.js +27 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxFull.js +44 -0
- package/lib/shared/components/Input/components/Radiobox/index.js +3 -0
- package/lib/shared/components/Input/components/RadioboxInput.js +102 -0
- package/lib/shared/components/Input/components/SelectInput.js +70 -0
- package/lib/shared/components/Input/components/TextAreaInput.js +67 -0
- package/lib/shared/components/Input/components/TextInput.js +139 -0
- package/lib/shared/components/Input/components/TimeInput.js +37 -0
- package/lib/shared/components/Input/components/UploadFileInput.js +123 -0
- package/lib/shared/components/Input/components/index.js +13 -0
- package/lib/shared/components/Input/components/types.d.js +0 -0
- package/lib/shared/components/Input/index.js +1 -0
- package/lib/shared/components/Input/types.d.js +0 -0
- package/lib/shared/components/Layout/Layout.js +13 -0
- package/lib/shared/components/Layout/index.js +1 -0
- package/lib/shared/components/List/List.js +30 -0
- package/lib/shared/components/List/index.js +1 -0
- package/lib/shared/components/Loader/Loader.js +27 -0
- package/lib/shared/components/Loader/index.js +1 -0
- package/lib/shared/components/Modal/Modal.js +102 -0
- package/lib/shared/components/Modal/index.js +1 -0
- package/lib/shared/components/Notification/Notification.js +39 -0
- package/lib/shared/components/Notification/index.js +1 -0
- package/lib/shared/components/Person/Person.js +81 -0
- package/lib/shared/components/Person/index.js +1 -0
- package/lib/shared/components/Popover/Popover.js +39 -0
- package/lib/shared/components/Popover/index.js +1 -0
- package/lib/shared/components/QRCode/QRCode.js +329 -0
- package/lib/shared/components/QRCode/index.js +1 -0
- package/lib/shared/components/RadioGroup/RadioGroup.js +35 -0
- package/lib/shared/components/RadioGroup/components/DefaultGroup.js +71 -0
- package/lib/shared/components/RadioGroup/components/VerticalGroup.js +83 -0
- package/lib/shared/components/RadioGroup/components/index.js +2 -0
- package/lib/shared/components/RadioGroup/index.js +1 -0
- package/lib/shared/components/Search/Search.js +12 -0
- package/lib/shared/components/Search/index.js +1 -0
- package/lib/shared/components/Select/Select.js +90 -0
- package/lib/shared/components/Select/index.js +1 -0
- package/lib/shared/components/Sidebar/Sidebar.js +42 -0
- package/lib/shared/components/Sidebar/index.js +1 -0
- package/lib/shared/components/SlideOver/SlideOver.js +81 -0
- package/lib/shared/components/SlideOver/index.js +1 -0
- package/lib/shared/components/Slider/Slider.js +80 -0
- package/lib/shared/components/Slider/index.js +1 -0
- package/lib/shared/components/Stepper/Stepper.js +32 -0
- package/lib/shared/components/Stepper/index.js +1 -0
- package/lib/shared/components/Steps/Steps.js +53 -0
- package/lib/shared/components/Steps/index.js +1 -0
- package/lib/shared/components/Switch/Switch.js +26 -0
- package/lib/shared/components/Switch/index.js +1 -0
- package/lib/shared/components/Tab/Tab.js +59 -0
- package/lib/shared/components/Tab/index.js +1 -0
- package/lib/shared/components/Table/Table.js +47 -0
- package/lib/shared/components/Table/index.js +1 -0
- package/lib/shared/components/Text/Text.js +11 -0
- package/lib/shared/components/Text/index.js +1 -0
- package/lib/shared/components/TextList/TextList.js +15 -0
- package/lib/shared/components/TextList/index.js +1 -0
- package/lib/shared/components/TimePicker/TimePicker.js +161 -0
- package/lib/shared/components/TimePicker/index.js +1 -0
- package/lib/shared/components/Tooltip/Tooltip.js +13 -0
- package/lib/shared/components/Tooltip/index.js +1 -0
- package/lib/shared/components/Uploader/Uploader.js +63 -0
- package/lib/shared/components/Uploader/index.js +1 -0
- package/lib/shared/components/Video/Video.js +20 -0
- package/lib/shared/components/Video/index.js +1 -0
- package/lib/shared/components/index.d.js +0 -0
- package/lib/shared/components/index.js +50 -0
- package/lib/shared/elements/Color/ColorPallet.js +20 -0
- package/lib/shared/elements/Color/index.js +1 -0
- package/lib/shared/elements/Text.js +37 -0
- package/lib/shared/elements/index.js +1 -0
- package/lib/shared/helpers/FakeLink.js +8 -0
- package/lib/shared/helpers/constants.js +359 -0
- package/lib/shared/helpers/index.js +2 -0
- package/lib/shared/helpers/isEqual.js +56 -0
- package/lib/shared/index.d.js +0 -0
- package/lib/shared/index.js +1 -0
- package/lib/shared/stories/components/Avatar.stories.js +17 -0
- package/lib/shared/stories/components/Badge.stories.dev.js +37 -0
- package/lib/shared/stories/components/Button.stories.js +553 -0
- package/lib/shared/stories/components/Calendar.stories.js +62 -0
- package/lib/shared/stories/components/Cartel.stories.js +32 -0
- package/lib/shared/stories/components/Checkbox.stories.js +15 -0
- package/lib/shared/stories/components/ColorChecker.stories.dev.js +16 -0
- package/lib/shared/stories/components/DateTime.stories.js +27 -0
- package/lib/shared/stories/components/Disclosure.stories.js +30 -0
- package/lib/shared/stories/components/Dropdown.stories.js +39 -0
- package/lib/shared/stories/components/Form/Default.stories.js +201 -0
- package/lib/shared/stories/components/Form/DummyForm.stories.js +48 -0
- package/lib/shared/stories/components/Form/DynamicForm.stories.js +155 -0
- package/lib/shared/stories/components/Form/StepperForm.stories.js +138 -0
- package/lib/shared/stories/components/Form/ValidateForm.stories.js +70 -0
- package/lib/shared/stories/components/Form/Validation.stories.js +184 -0
- package/lib/shared/stories/components/GroupItems.stories.js +23 -0
- package/lib/shared/stories/components/Header.stories.js +29 -0
- package/lib/shared/stories/components/Heading.stories.js +27 -0
- package/lib/shared/stories/components/Icon.stories.js +22 -0
- package/lib/shared/stories/components/Image.stories.js +23 -0
- package/lib/shared/stories/components/Input/Checkbox.stories.js +45 -0
- package/lib/shared/stories/components/Input/DatePicker.stories.js +23 -0
- package/lib/shared/stories/components/Input/Defaut.stories.js +24 -0
- package/lib/shared/stories/components/Input/Number.stories.js +24 -0
- package/lib/shared/stories/components/Input/RCI.stories.js +59 -0
- package/lib/shared/stories/components/Input/Radiobox.stories.dev.js +28 -0
- package/lib/shared/stories/components/Input/Select.stories.dev.js +27 -0
- package/lib/shared/stories/components/Input/SelectMultiple.stories.dev.js +510 -0
- package/lib/shared/stories/components/Input/Textarea.stories.js +24 -0
- package/lib/shared/stories/components/List.stories.js +34 -0
- package/lib/shared/stories/components/Loader.stories.js +15 -0
- package/lib/shared/stories/components/Modal.stories.js +50 -0
- package/lib/shared/stories/components/Notification.stories.js +22 -0
- package/lib/shared/stories/components/Person.stories.js +41 -0
- package/lib/shared/stories/components/Picker.stories.js +15 -0
- package/lib/shared/stories/components/Popover.stories.js +36 -0
- package/lib/shared/stories/components/QRCode.stories.js +20 -0
- package/lib/shared/stories/components/RadioGroup.stories.js +56 -0
- package/lib/shared/stories/components/Select.stories.js +50 -0
- package/lib/shared/stories/components/Sidebar.stories.js +35 -0
- package/lib/shared/stories/components/Slider.stories.dev.js +48 -0
- package/lib/shared/stories/components/Stepper/Stepper.stories.js +38 -0
- package/lib/shared/stories/components/Steps.stories.js +15 -0
- package/lib/shared/stories/components/Switch.stories.js +15 -0
- package/lib/shared/stories/components/Tab.stories.js +15 -0
- package/lib/shared/stories/components/Table.stories.js +95 -0
- package/lib/shared/stories/components/TextList.stories.js +23 -0
- package/lib/shared/stories/components/Tooltip.stories.dev.js +40 -0
- package/lib/shared/stories/elements/Color.stories.js +269 -0
- package/lib/shared/stories/elements/Text.stories.js +45 -0
- package/lib/shared/types/index.js +1 -0
- package/lib/stories/Foundation/BrandIdentity.prod.stories.js +510 -0
- package/lib/stories/Foundation/Logo.stories.js +19 -0
- package/lib/stories/Foundation/RisingSun.stories.js +16 -0
- package/lib/stories/Foundation/Shadows.stories.js +601 -0
- package/lib/stories/Foundation/Symbol.stories.js +18 -0
- package/lib/stories/HeroContainer.stories.js +18 -0
- package/lib/styles/accessibilityTokens.js +72 -0
- package/lib/styles/borderWidth.js +10 -0
- package/lib/styles/colors.js +303 -0
- package/lib/styles/elevation.js +240 -0
- package/lib/styles/icons.js +218 -0
- package/lib/styles/index.js +29 -0
- package/lib/styles/motion.js +668 -0
- package/lib/styles/opacity.js +10 -0
- package/lib/styles/radius.js +11 -0
- package/lib/styles/sizing.js +35 -0
- package/lib/styles/space.js +24 -0
- package/lib/styles/theme/darkTheme.js +471 -0
- package/lib/styles/theme/index.js +44 -0
- package/lib/styles/theme/lightTheme.js +480 -0
- package/lib/styles/theme/themeTypes.js +1 -0
- package/lib/styles/theme/themeUtils.js +63 -0
- package/lib/styles/typography-advanced.js +510 -0
- package/lib/styles/typography.js +1419 -0
- package/lib/styles/zIndex.js +19 -0
- package/lib/tokens/borders.js +161 -0
- package/lib/tokens/colors.js +426 -0
- package/lib/tokens/components.js +499 -0
- package/lib/tokens/index.js +84 -0
- package/lib/tokens/lighting.js +384 -0
- package/lib/tokens/motion.js +284 -0
- package/lib/tokens/semantic.js +367 -0
- package/lib/tokens/shadows.js +114 -0
- package/lib/tokens/spacing.js +189 -0
- package/lib/tokens/typography.js +268 -0
- package/package.json +176 -0
- package/styles/generated-tokens.css +677 -0
- package/styles/index.css +2 -0
- package/styles/main.css +610 -0
- package/tailwind.config.js +64 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
|
+
/**
|
|
9
|
+
* Nobak Design System - Surface Lighting & Depth
|
|
10
|
+
*
|
|
11
|
+
* Creates professional depth through varied surface treatments and shadow layers.
|
|
12
|
+
* Each surface level combines multiple shadows for ambient depth and visual hierarchy.
|
|
13
|
+
*
|
|
14
|
+
* Philosophy:
|
|
15
|
+
* - Surfaces receive light differently based on position and purpose
|
|
16
|
+
* - Multiple layered shadows create realistic depth
|
|
17
|
+
* - Short shadows + long ambient shadows = professional look
|
|
18
|
+
* - Lighting adapts to context and function
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { colors } from "./colors";
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Surface Treatments
|
|
25
|
+
* Different surface levels with varying shadow depth
|
|
26
|
+
*/
|
|
27
|
+
export var lighting = {
|
|
28
|
+
/**
|
|
29
|
+
* TOP LIT - Bright surface, maximum contrast
|
|
30
|
+
* Use: Hero sections, primary cards, headers
|
|
31
|
+
*/
|
|
32
|
+
topLit: {
|
|
33
|
+
surface: colors.gray[50],
|
|
34
|
+
// Bright surface
|
|
35
|
+
border: colors.gray[200],
|
|
36
|
+
// Soft edge
|
|
37
|
+
text: colors.gray[900],
|
|
38
|
+
// Maximum contrast
|
|
39
|
+
accent: colors.primary[500],
|
|
40
|
+
// Bold accent
|
|
41
|
+
shadow: 'rgba(0, 0, 0, 0.05)' // Minimal shadow
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* FRONT LIT - Primary surface treatment
|
|
45
|
+
* Use: Buttons, inputs, main controls
|
|
46
|
+
*/
|
|
47
|
+
frontLit: {
|
|
48
|
+
surface: '#FFFFFF',
|
|
49
|
+
// Clean white surface
|
|
50
|
+
border: colors.gray[300],
|
|
51
|
+
// Defined edge
|
|
52
|
+
text: colors.gray[900],
|
|
53
|
+
// Strong contrast
|
|
54
|
+
accent: colors.primary[500],
|
|
55
|
+
// Primary accent
|
|
56
|
+
shadow: 'rgba(0, 0, 0, 0.08)' // Light shadow
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* SIDE LIT - Subtle surface
|
|
60
|
+
* Use: Secondary controls, metadata, labels
|
|
61
|
+
*/
|
|
62
|
+
sideLit: {
|
|
63
|
+
surface: colors.gray[100],
|
|
64
|
+
// Subtle surface
|
|
65
|
+
border: colors.gray[300],
|
|
66
|
+
// Soft edge
|
|
67
|
+
text: colors.gray[700],
|
|
68
|
+
// Reduced contrast
|
|
69
|
+
accent: colors.gray[600],
|
|
70
|
+
// Muted accent
|
|
71
|
+
shadow: 'rgba(0, 0, 0, 0.04)' // Very light shadow
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* RECESSED - Inset surface, inverted colors
|
|
75
|
+
* Use: Display panels, data tables, dark mode sections
|
|
76
|
+
*/
|
|
77
|
+
recessed: {
|
|
78
|
+
surface: colors.gray[900],
|
|
79
|
+
// Dark background
|
|
80
|
+
border: colors.gray[700],
|
|
81
|
+
// Dark edge
|
|
82
|
+
text: colors.gray[50],
|
|
83
|
+
// Light text (inverted)
|
|
84
|
+
accent: colors.blue[400],
|
|
85
|
+
// Cool accent
|
|
86
|
+
shadow: 'inset 0 2px 4px rgba(0, 0, 0, 0.3)',
|
|
87
|
+
// Inset shadow
|
|
88
|
+
glow: 'rgba(59, 130, 246, 0.3)' // Optional glow
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* ELEVATED - Raised surface with layered shadows
|
|
92
|
+
* Use: Prominent buttons, cards, important controls
|
|
93
|
+
*/
|
|
94
|
+
elevated: {
|
|
95
|
+
surface: colors.gray[50],
|
|
96
|
+
// Light surface
|
|
97
|
+
border: colors.gray[400],
|
|
98
|
+
// Defined edge
|
|
99
|
+
text: colors.gray[900],
|
|
100
|
+
// High contrast
|
|
101
|
+
accent: colors.primary[600],
|
|
102
|
+
// Rich accent
|
|
103
|
+
shadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
|
|
104
|
+
// Layered shadow
|
|
105
|
+
rimLight: colors.gray[100] // Subtle highlight
|
|
106
|
+
},
|
|
107
|
+
/**
|
|
108
|
+
* BACKLIT - Glowing surface
|
|
109
|
+
* Use: Active states, indicators, notifications, primary actions
|
|
110
|
+
*/
|
|
111
|
+
backlit: {
|
|
112
|
+
surface: colors.primary[500],
|
|
113
|
+
// Bold surface
|
|
114
|
+
border: colors.primary[600],
|
|
115
|
+
// Defined edge
|
|
116
|
+
text: '#FFFFFF',
|
|
117
|
+
// High contrast
|
|
118
|
+
accent: '#FFFFFF',
|
|
119
|
+
// White accent
|
|
120
|
+
glow: 'rgba(255, 59, 45, 0.4)',
|
|
121
|
+
// Glow effect
|
|
122
|
+
shadow: '0 0 12px rgba(255, 59, 45, 0.3)' // Glow shadow
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* SHADOWED - De-emphasized surface
|
|
126
|
+
* Use: Footer, disabled states, background content
|
|
127
|
+
*/
|
|
128
|
+
shadowed: {
|
|
129
|
+
surface: colors.gray[200],
|
|
130
|
+
// Muted surface
|
|
131
|
+
border: colors.gray[300],
|
|
132
|
+
// Subtle edge
|
|
133
|
+
text: colors.gray[600],
|
|
134
|
+
// Lower contrast
|
|
135
|
+
accent: colors.gray[500],
|
|
136
|
+
// Muted accent
|
|
137
|
+
shadow: 'none' // No shadow
|
|
138
|
+
},
|
|
139
|
+
/**
|
|
140
|
+
* GLOSSY - Translucent, glass-like surface
|
|
141
|
+
* Use: Premium features, overlays, modal backgrounds
|
|
142
|
+
*/
|
|
143
|
+
glossy: {
|
|
144
|
+
surface: 'linear-gradient(135deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.7) 100%)',
|
|
145
|
+
border: 'rgba(255, 255, 255, 0.3)',
|
|
146
|
+
text: colors.gray[900],
|
|
147
|
+
accent: colors.primary[500],
|
|
148
|
+
shadow: '0 8px 32px rgba(0, 0, 0, 0.12)',
|
|
149
|
+
reflection: 'linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 50%)',
|
|
150
|
+
backdrop: 'blur(12px)'
|
|
151
|
+
},
|
|
152
|
+
/**
|
|
153
|
+
* MATTE - Non-reflective, textured surface
|
|
154
|
+
* Use: Professional tools, technical interfaces, subtle backgrounds
|
|
155
|
+
*/
|
|
156
|
+
matte: {
|
|
157
|
+
surface: colors.gray[100],
|
|
158
|
+
border: colors.gray[400],
|
|
159
|
+
text: colors.gray[800],
|
|
160
|
+
accent: colors.gray[700],
|
|
161
|
+
shadow: '0 1px 2px rgba(0, 0, 0, 0.06)',
|
|
162
|
+
texture: 'repeating-linear-gradient(90deg, transparent 0px, rgba(0,0,0,0.02) 1px, transparent 2px)'
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Component Contexts
|
|
168
|
+
* Pre-configured surface treatments for specific components
|
|
169
|
+
*/
|
|
170
|
+
export var lightingContexts = {
|
|
171
|
+
/**
|
|
172
|
+
* HERO SECTION
|
|
173
|
+
* Bright, prominent surface
|
|
174
|
+
*/
|
|
175
|
+
hero: {
|
|
176
|
+
background: lighting.topLit.surface,
|
|
177
|
+
text: lighting.topLit.text,
|
|
178
|
+
border: lighting.topLit.border,
|
|
179
|
+
shadow: lighting.topLit.shadow
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* PRIMARY BUTTON
|
|
183
|
+
* Elevated with strong shadow
|
|
184
|
+
*/
|
|
185
|
+
buttonPrimary: {
|
|
186
|
+
"default": {
|
|
187
|
+
background: lighting.backlit.surface,
|
|
188
|
+
text: lighting.backlit.text,
|
|
189
|
+
border: lighting.backlit.border,
|
|
190
|
+
shadow: lighting.elevated.shadow
|
|
191
|
+
},
|
|
192
|
+
hover: {
|
|
193
|
+
background: colors.primary[600],
|
|
194
|
+
glow: lighting.backlit.glow,
|
|
195
|
+
shadow: lighting.backlit.shadow
|
|
196
|
+
},
|
|
197
|
+
active: {
|
|
198
|
+
background: colors.primary[700],
|
|
199
|
+
shadow: '0 1px 2px rgba(0, 0, 0, 0.2)' // Pressed in
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
/**
|
|
203
|
+
* SECONDARY BUTTON
|
|
204
|
+
* Front-lit, less prominent
|
|
205
|
+
*/
|
|
206
|
+
buttonSecondary: {
|
|
207
|
+
"default": {
|
|
208
|
+
background: lighting.frontLit.surface,
|
|
209
|
+
text: lighting.frontLit.text,
|
|
210
|
+
border: lighting.frontLit.border,
|
|
211
|
+
shadow: lighting.frontLit.shadow
|
|
212
|
+
},
|
|
213
|
+
hover: {
|
|
214
|
+
background: colors.gray[50],
|
|
215
|
+
border: colors.gray[400]
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
/**
|
|
219
|
+
* INPUT FIELD
|
|
220
|
+
* Recessed - text entry area
|
|
221
|
+
*/
|
|
222
|
+
input: {
|
|
223
|
+
"default": {
|
|
224
|
+
background: lighting.frontLit.surface,
|
|
225
|
+
text: lighting.frontLit.text,
|
|
226
|
+
border: lighting.sideLit.border,
|
|
227
|
+
shadow: 'inset 0 1px 2px rgba(0, 0, 0, 0.05)' // Slight recess
|
|
228
|
+
},
|
|
229
|
+
focus: {
|
|
230
|
+
border: lighting.backlit.surface,
|
|
231
|
+
shadow: "0 0 0 3px ".concat(lighting.backlit.glow) // Glow on focus
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
/**
|
|
235
|
+
* DATA TABLE
|
|
236
|
+
* Recessed display - like an LCD panel
|
|
237
|
+
*/
|
|
238
|
+
table: {
|
|
239
|
+
background: lighting.recessed.surface,
|
|
240
|
+
text: lighting.recessed.text,
|
|
241
|
+
border: lighting.recessed.border,
|
|
242
|
+
shadow: lighting.recessed.shadow,
|
|
243
|
+
header: {
|
|
244
|
+
background: 'rgba(255, 255, 255, 0.05)',
|
|
245
|
+
// Subtle separation
|
|
246
|
+
text: lighting.recessed.accent
|
|
247
|
+
},
|
|
248
|
+
row: {
|
|
249
|
+
hover: 'rgba(255, 255, 255, 0.03)' // Subtle highlight
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
/**
|
|
253
|
+
* CARD
|
|
254
|
+
* Elevated surface - component in the stack
|
|
255
|
+
*/
|
|
256
|
+
card: {
|
|
257
|
+
"default": {
|
|
258
|
+
background: lighting.frontLit.surface,
|
|
259
|
+
text: lighting.frontLit.text,
|
|
260
|
+
border: lighting.frontLit.border,
|
|
261
|
+
shadow: lighting.elevated.shadow
|
|
262
|
+
},
|
|
263
|
+
hover: {
|
|
264
|
+
shadow: '0 6px 12px rgba(0, 0, 0, 0.15)',
|
|
265
|
+
// Lift on hover
|
|
266
|
+
rimLight: lighting.elevated.rimLight
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
/**
|
|
270
|
+
* MODAL / DIALOG
|
|
271
|
+
* Floating, highly elevated
|
|
272
|
+
*/
|
|
273
|
+
modal: {
|
|
274
|
+
background: lighting.frontLit.surface,
|
|
275
|
+
text: lighting.frontLit.text,
|
|
276
|
+
border: lighting.frontLit.border,
|
|
277
|
+
shadow: '0 20px 40px rgba(0, 0, 0, 0.25)',
|
|
278
|
+
// Strong elevation
|
|
279
|
+
backdrop: 'rgba(0, 0, 0, 0.5)' // Darkened background
|
|
280
|
+
},
|
|
281
|
+
/**
|
|
282
|
+
* NOTIFICATION / TOAST
|
|
283
|
+
* Backlit indicator - demands attention
|
|
284
|
+
*/
|
|
285
|
+
notification: {
|
|
286
|
+
success: {
|
|
287
|
+
background: colors.green[500],
|
|
288
|
+
text: '#FFFFFF',
|
|
289
|
+
shadow: '0 4px 12px rgba(16, 185, 129, 0.3)',
|
|
290
|
+
glow: 'rgba(16, 185, 129, 0.2)'
|
|
291
|
+
},
|
|
292
|
+
error: {
|
|
293
|
+
background: colors.red[500],
|
|
294
|
+
text: '#FFFFFF',
|
|
295
|
+
shadow: '0 4px 12px rgba(239, 68, 68, 0.3)',
|
|
296
|
+
glow: 'rgba(239, 68, 68, 0.2)'
|
|
297
|
+
},
|
|
298
|
+
warning: {
|
|
299
|
+
background: colors.orange[500],
|
|
300
|
+
text: colors.gray[900],
|
|
301
|
+
shadow: '0 4px 12px rgba(255, 166, 117, 0.3)',
|
|
302
|
+
glow: 'rgba(255, 166, 117, 0.2)'
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
/**
|
|
306
|
+
* VU METER / PROGRESS
|
|
307
|
+
* Backlit indicator with glow
|
|
308
|
+
*/
|
|
309
|
+
indicator: {
|
|
310
|
+
background: lighting.recessed.surface,
|
|
311
|
+
fill: lighting.backlit.surface,
|
|
312
|
+
glow: lighting.backlit.glow,
|
|
313
|
+
border: lighting.recessed.border
|
|
314
|
+
},
|
|
315
|
+
/**
|
|
316
|
+
* LABEL / METADATA
|
|
317
|
+
* Side-lit, de-emphasized
|
|
318
|
+
*/
|
|
319
|
+
label: {
|
|
320
|
+
background: 'transparent',
|
|
321
|
+
text: lighting.sideLit.text,
|
|
322
|
+
accent: lighting.sideLit.accent
|
|
323
|
+
},
|
|
324
|
+
/**
|
|
325
|
+
* FOOTER
|
|
326
|
+
* Shadowed, bottom of stack
|
|
327
|
+
*/
|
|
328
|
+
footer: {
|
|
329
|
+
background: lighting.shadowed.surface,
|
|
330
|
+
text: lighting.shadowed.text,
|
|
331
|
+
border: lighting.shadowed.border
|
|
332
|
+
},
|
|
333
|
+
/**
|
|
334
|
+
* GLASS PANEL
|
|
335
|
+
* Glossy, translucent overlay
|
|
336
|
+
*/
|
|
337
|
+
glass: {
|
|
338
|
+
background: lighting.glossy.surface,
|
|
339
|
+
border: lighting.glossy.border,
|
|
340
|
+
text: lighting.glossy.text,
|
|
341
|
+
shadow: lighting.glossy.shadow,
|
|
342
|
+
backdrop: lighting.glossy.backdrop,
|
|
343
|
+
reflection: lighting.glossy.reflection
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Helper: Apply lighting to component
|
|
349
|
+
*
|
|
350
|
+
* Usage:
|
|
351
|
+
* const buttonStyles = applyLighting('buttonPrimary', 'default');
|
|
352
|
+
*/
|
|
353
|
+
export function applyLighting(context) {
|
|
354
|
+
var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
|
|
355
|
+
var contextStyles = lightingContexts[context];
|
|
356
|
+
|
|
357
|
+
// @ts-ignore - Dynamic key access
|
|
358
|
+
return _typeof(contextStyles) === 'object' && state in contextStyles ? contextStyles[state] : contextStyles;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* CSS Custom Properties Generator
|
|
363
|
+
*/
|
|
364
|
+
export var generateLightingCSSVariables = function generateLightingCSSVariables() {
|
|
365
|
+
var vars = {};
|
|
366
|
+
|
|
367
|
+
// Generate lighting level variables
|
|
368
|
+
Object.entries(lighting).forEach(function (_ref) {
|
|
369
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
370
|
+
level = _ref2[0],
|
|
371
|
+
properties = _ref2[1];
|
|
372
|
+
Object.entries(properties).forEach(function (_ref3) {
|
|
373
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
374
|
+
property = _ref4[0],
|
|
375
|
+
value = _ref4[1];
|
|
376
|
+
vars["--lighting-".concat(level, "-").concat(property)] = value;
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
return vars;
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* Type Exports
|
|
384
|
+
*/
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
/**
|
|
8
|
+
* Nobak Design System - Motion Tokens
|
|
9
|
+
*
|
|
10
|
+
* Snappy, purposeful animations
|
|
11
|
+
* Punk rock energy with Japanese restraint
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export var motion = {
|
|
15
|
+
// Duration (in milliseconds)
|
|
16
|
+
duration: {
|
|
17
|
+
instant: '0ms',
|
|
18
|
+
fast: '150ms',
|
|
19
|
+
// Micro-interactions
|
|
20
|
+
normal: '250ms',
|
|
21
|
+
// Standard transitions
|
|
22
|
+
slow: '350ms',
|
|
23
|
+
// Complex animations
|
|
24
|
+
slower: '500ms',
|
|
25
|
+
// Page transitions
|
|
26
|
+
slowest: '750ms' // Dramatic reveals
|
|
27
|
+
},
|
|
28
|
+
// Easing Functions
|
|
29
|
+
easing: {
|
|
30
|
+
// Standard easing
|
|
31
|
+
linear: 'linear',
|
|
32
|
+
// Ease out (UI entering)
|
|
33
|
+
easeOut: 'cubic-bezier(0, 0, 0.2, 1)',
|
|
34
|
+
easeOutQuad: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',
|
|
35
|
+
easeOutCubic: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
|
|
36
|
+
// Ease in (UI exiting)
|
|
37
|
+
easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
|
|
38
|
+
easeInQuad: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',
|
|
39
|
+
easeInCubic: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
|
|
40
|
+
// Ease in-out (State changes)
|
|
41
|
+
easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
42
|
+
easeInOutQuad: 'cubic-bezier(0.455, 0.03, 0.515, 0.955)',
|
|
43
|
+
easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1)',
|
|
44
|
+
// Bounce (Playful interactions)
|
|
45
|
+
bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
|
|
46
|
+
// Sharp (Punk rock snappy)
|
|
47
|
+
sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'
|
|
48
|
+
},
|
|
49
|
+
// Transition Presets
|
|
50
|
+
transition: {
|
|
51
|
+
// Default
|
|
52
|
+
"default": 'all 250ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
53
|
+
// Fast interactions
|
|
54
|
+
fast: 'all 150ms cubic-bezier(0, 0, 0.2, 1)',
|
|
55
|
+
// Slow animations
|
|
56
|
+
slow: 'all 350ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
57
|
+
// Color transitions
|
|
58
|
+
colors: 'color 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 250ms cubic-bezier(0.4, 0, 0.2, 1), border-color 250ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
59
|
+
// Opacity transitions
|
|
60
|
+
opacity: 'opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
61
|
+
// Transform transitions
|
|
62
|
+
transform: 'transform 250ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
63
|
+
// Shadow transitions
|
|
64
|
+
shadow: 'box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
65
|
+
// All properties
|
|
66
|
+
all: 'all 250ms cubic-bezier(0.4, 0, 0.2, 1)'
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// Semantic Motion
|
|
71
|
+
export var semanticMotion = {
|
|
72
|
+
// Component animations
|
|
73
|
+
button: {
|
|
74
|
+
duration: motion.duration.fast,
|
|
75
|
+
easing: motion.easing.easeOut,
|
|
76
|
+
transition: "all ".concat(motion.duration.fast, " ").concat(motion.easing.easeOut)
|
|
77
|
+
},
|
|
78
|
+
input: {
|
|
79
|
+
duration: motion.duration.fast,
|
|
80
|
+
easing: motion.easing.easeOut,
|
|
81
|
+
transition: "border-color ".concat(motion.duration.fast, " ").concat(motion.easing.easeOut, ", box-shadow ").concat(motion.duration.fast, " ").concat(motion.easing.easeOut)
|
|
82
|
+
},
|
|
83
|
+
modal: {
|
|
84
|
+
duration: motion.duration.normal,
|
|
85
|
+
easing: motion.easing.easeInOut,
|
|
86
|
+
transition: "opacity ".concat(motion.duration.normal, " ").concat(motion.easing.easeInOut, ", transform ").concat(motion.duration.normal, " ").concat(motion.easing.easeInOut)
|
|
87
|
+
},
|
|
88
|
+
dropdown: {
|
|
89
|
+
duration: motion.duration.fast,
|
|
90
|
+
easing: motion.easing.easeOut,
|
|
91
|
+
transition: "opacity ".concat(motion.duration.fast, " ").concat(motion.easing.easeOut, ", transform ").concat(motion.duration.fast, " ").concat(motion.easing.easeOut)
|
|
92
|
+
},
|
|
93
|
+
tooltip: {
|
|
94
|
+
duration: motion.duration.fast,
|
|
95
|
+
easing: motion.easing.easeOut,
|
|
96
|
+
transition: "opacity ".concat(motion.duration.fast, " ").concat(motion.easing.easeOut)
|
|
97
|
+
},
|
|
98
|
+
// Page transitions
|
|
99
|
+
pageEnter: {
|
|
100
|
+
duration: motion.duration.slow,
|
|
101
|
+
easing: motion.easing.easeOut,
|
|
102
|
+
transition: "opacity ".concat(motion.duration.slow, " ").concat(motion.easing.easeOut, ", transform ").concat(motion.duration.slow, " ").concat(motion.easing.easeOut)
|
|
103
|
+
},
|
|
104
|
+
pageExit: {
|
|
105
|
+
duration: motion.duration.fast,
|
|
106
|
+
easing: motion.easing.easeIn,
|
|
107
|
+
transition: "opacity ".concat(motion.duration.fast, " ").concat(motion.easing.easeIn)
|
|
108
|
+
},
|
|
109
|
+
// Hover states
|
|
110
|
+
hover: {
|
|
111
|
+
duration: motion.duration.fast,
|
|
112
|
+
easing: motion.easing.easeOut,
|
|
113
|
+
transition: "all ".concat(motion.duration.fast, " ").concat(motion.easing.easeOut)
|
|
114
|
+
},
|
|
115
|
+
// Focus states
|
|
116
|
+
focus: {
|
|
117
|
+
duration: motion.duration.fast,
|
|
118
|
+
easing: motion.easing.sharp,
|
|
119
|
+
transition: "box-shadow ".concat(motion.duration.fast, " ").concat(motion.easing.sharp)
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// Animation Keyframes
|
|
124
|
+
export var keyframes = {
|
|
125
|
+
// Fade animations
|
|
126
|
+
fadeIn: {
|
|
127
|
+
from: {
|
|
128
|
+
opacity: 0
|
|
129
|
+
},
|
|
130
|
+
to: {
|
|
131
|
+
opacity: 1
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
fadeOut: {
|
|
135
|
+
from: {
|
|
136
|
+
opacity: 1
|
|
137
|
+
},
|
|
138
|
+
to: {
|
|
139
|
+
opacity: 0
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
// Slide animations
|
|
143
|
+
slideInUp: {
|
|
144
|
+
from: {
|
|
145
|
+
transform: 'translateY(100%)',
|
|
146
|
+
opacity: 0
|
|
147
|
+
},
|
|
148
|
+
to: {
|
|
149
|
+
transform: 'translateY(0)',
|
|
150
|
+
opacity: 1
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
slideInDown: {
|
|
154
|
+
from: {
|
|
155
|
+
transform: 'translateY(-100%)',
|
|
156
|
+
opacity: 0
|
|
157
|
+
},
|
|
158
|
+
to: {
|
|
159
|
+
transform: 'translateY(0)',
|
|
160
|
+
opacity: 1
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
slideInLeft: {
|
|
164
|
+
from: {
|
|
165
|
+
transform: 'translateX(-100%)',
|
|
166
|
+
opacity: 0
|
|
167
|
+
},
|
|
168
|
+
to: {
|
|
169
|
+
transform: 'translateX(0)',
|
|
170
|
+
opacity: 1
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
slideInRight: {
|
|
174
|
+
from: {
|
|
175
|
+
transform: 'translateX(100%)',
|
|
176
|
+
opacity: 0
|
|
177
|
+
},
|
|
178
|
+
to: {
|
|
179
|
+
transform: 'translateX(0)',
|
|
180
|
+
opacity: 1
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
// Scale animations
|
|
184
|
+
scaleIn: {
|
|
185
|
+
from: {
|
|
186
|
+
transform: 'scale(0.95)',
|
|
187
|
+
opacity: 0
|
|
188
|
+
},
|
|
189
|
+
to: {
|
|
190
|
+
transform: 'scale(1)',
|
|
191
|
+
opacity: 1
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
scaleOut: {
|
|
195
|
+
from: {
|
|
196
|
+
transform: 'scale(1)',
|
|
197
|
+
opacity: 1
|
|
198
|
+
},
|
|
199
|
+
to: {
|
|
200
|
+
transform: 'scale(0.95)',
|
|
201
|
+
opacity: 0
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
// Spin animation
|
|
205
|
+
spin: {
|
|
206
|
+
from: {
|
|
207
|
+
transform: 'rotate(0deg)'
|
|
208
|
+
},
|
|
209
|
+
to: {
|
|
210
|
+
transform: 'rotate(360deg)'
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
// Pulse animation
|
|
214
|
+
pulse: {
|
|
215
|
+
'0%, 100%': {
|
|
216
|
+
opacity: 1
|
|
217
|
+
},
|
|
218
|
+
'50%': {
|
|
219
|
+
opacity: 0.5
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
// Bounce animation
|
|
223
|
+
bounce: {
|
|
224
|
+
'0%, 100%': {
|
|
225
|
+
transform: 'translateY(0)'
|
|
226
|
+
},
|
|
227
|
+
'50%': {
|
|
228
|
+
transform: 'translateY(-25%)'
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
// Type exports
|
|
234
|
+
|
|
235
|
+
// CSS Custom Properties Generator
|
|
236
|
+
export var generateMotionVariables = function generateMotionVariables() {
|
|
237
|
+
var vars = {};
|
|
238
|
+
|
|
239
|
+
// Durations
|
|
240
|
+
Object.entries(motion.duration).forEach(function (_ref) {
|
|
241
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
242
|
+
key = _ref2[0],
|
|
243
|
+
value = _ref2[1];
|
|
244
|
+
vars["--duration-".concat(key)] = value;
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
// Easing
|
|
248
|
+
Object.entries(motion.easing).forEach(function (_ref3) {
|
|
249
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
250
|
+
key = _ref4[0],
|
|
251
|
+
value = _ref4[1];
|
|
252
|
+
vars["--easing-".concat(key)] = value;
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
// Transitions
|
|
256
|
+
Object.entries(motion.transition).forEach(function (_ref5) {
|
|
257
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
258
|
+
key = _ref6[0],
|
|
259
|
+
value = _ref6[1];
|
|
260
|
+
vars["--transition-".concat(key)] = value;
|
|
261
|
+
});
|
|
262
|
+
return vars;
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
// Tailwind Config Export
|
|
266
|
+
export var tailwindMotion = {
|
|
267
|
+
transitionDuration: {
|
|
268
|
+
instant: '0ms',
|
|
269
|
+
fast: '150ms',
|
|
270
|
+
DEFAULT: '250ms',
|
|
271
|
+
slow: '350ms',
|
|
272
|
+
slower: '500ms',
|
|
273
|
+
slowest: '750ms'
|
|
274
|
+
},
|
|
275
|
+
transitionTimingFunction: {
|
|
276
|
+
linear: 'linear',
|
|
277
|
+
"in": 'cubic-bezier(0.4, 0, 1, 1)',
|
|
278
|
+
out: 'cubic-bezier(0, 0, 0.2, 1)',
|
|
279
|
+
'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
280
|
+
bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
|
|
281
|
+
sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'
|
|
282
|
+
},
|
|
283
|
+
keyframes: keyframes
|
|
284
|
+
};
|