kmcom-nuxt-layers 1.3.1 → 1.5.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/layers/content/app/components/Blog/List.vue +5 -1
- package/layers/content/app/components/Gallery/AmbientImage.vue +5 -12
- package/layers/content/app/components/Gallery/Detail.vue +8 -6
- package/layers/content/app/components/Gallery/Grid.vue +11 -3
- package/layers/content/app/components/Portfolio/ColorPalette.vue +1 -4
- package/layers/content/app/components/Portfolio/Detail.vue +6 -1
- package/layers/content/app/components/Portfolio/List.vue +5 -1
- package/layers/content/app/components/content/Figure.vue +1 -7
- package/layers/content/nuxt.config.ts +16 -5
- package/layers/content/package.json +5 -5
- package/layers/core/app/assets/css/main.css +5 -0
- package/layers/core/app/composables/useCache.ts +8 -4
- package/layers/core/app/composables/useErrorLog.ts +9 -5
- package/layers/core/app/composables/useScrollGuard.ts +4 -2
- package/layers/core/app/plugins/feature-detection.client.ts +1 -1
- package/layers/core/app/plugins/init.ts +2 -1
- package/layers/core/app/plugins/scroll-guard.client.ts +4 -1
- package/layers/core/app.config.ts +0 -9
- package/layers/forms/app/components/Form/Contact.vue +16 -7
- package/layers/forms/nuxt.config.ts +18 -0
- package/layers/forms/package.json +2 -0
- package/layers/layout/app/components/Layout/Container.vue +1 -4
- package/layers/layout/app/components/Layout/Grid/Debug.vue +0 -1
- package/layers/layout/app/components/Layout/Grid/Item.vue +12 -6
- package/layers/layout/app/components/Layout/Main.vue +1 -4
- package/layers/layout/app/components/Layout/Page/Container.vue +3 -1
- package/layers/layout/app/components/Layout/Page/Header.vue +16 -7
- package/layers/layout/app/components/Layout/Section/Grid.vue +1 -4
- package/layers/layout/app/components/Layout/Section/Sidebar.vue +6 -1
- package/layers/layout/app/components/Layout/Section/Stack.vue +1 -1
- package/layers/layout/app/composables/useGridConfig.ts +6 -1
- package/layers/motion/app/components/Motion/HorizontalScroll.vue +61 -0
- package/layers/motion/app/components/Motion/PinnedSection.vue +77 -0
- package/layers/motion/app/components/Motion/ScrollProgress.vue +8 -56
- package/layers/motion/app/components/Motion/ScrollScene.vue +121 -0
- package/layers/motion/app/components/Motion/ScrollStep.vue +45 -0
- package/layers/motion/app/components/Motion/TextReveal.vue +28 -63
- package/layers/motion/app/composables/useScrollSteps.ts +41 -0
- package/layers/motion/app/composables/useSectionProgress.ts +58 -0
- package/layers/motion/app/composables/useSmoothScroll.ts +3 -2
- package/layers/motion/app/plugins/locomotive-scroll.client.ts +6 -6
- package/layers/motion/nuxt.config.ts +6 -0
- package/layers/motion/package.json +2 -1
- package/layers/routing/app/app.config.ts +20 -0
- package/layers/routing/app/composables/useFeatures.ts +12 -0
- package/layers/routing/app/composables/useMaintenance.ts +7 -0
- package/layers/routing/app/composables/useRoutingConfig.ts +20 -0
- package/layers/routing/app/middleware/01.maintenance.global.ts +6 -0
- package/layers/routing/app/middleware/02.governance.global.ts +25 -0
- package/layers/routing/app/plugins/feature-flags.client.ts +15 -0
- package/layers/routing/app/plugins/scroll-routing.client.ts +21 -0
- package/layers/routing/app/types/route-meta.d.ts +6 -0
- package/layers/routing/app/types/routing.ts +48 -0
- package/layers/routing/nuxt.config.ts +27 -0
- package/layers/routing/package.json +6 -0
- package/layers/shader/app/components/Preset/ThemeAurora.client.vue +86 -0
- package/layers/shader/app/components/Preset/ThemeBubble.client.vue +87 -0
- package/layers/shader/app/components/Preset/ThemeFlow.client.vue +86 -0
- package/layers/shader/app/components/Preset/ThemeGradient.client.vue +87 -0
- package/layers/shader/app/components/Preset/ThemeLavaLamp.client.vue +86 -0
- package/layers/shader/app/components/Preset/ThemePlasma.client.vue +86 -0
- package/layers/shader/app/components/Preset/ThemeWave.client.vue +86 -0
- package/layers/shader/app/components/Shader/Background.client.vue +15 -0
- package/layers/shader/app/composables/useAmbientMaterials.ts +306 -0
- package/layers/shader/app/composables/useThemeColors.ts +52 -0
- package/layers/shader/app/utils/tsl/oklch.ts +12 -6
- package/layers/theme/app/assets/css/theme.css +19 -14
- package/layers/theme/app/components/ThemePicker/AccentButton.vue +2 -2
- package/layers/theme/app/components/ThemePicker/Colors.vue +2 -4
- package/layers/theme/app/components/ThemePicker/Menu.vue +4 -13
- package/layers/theme/app/components/ThemePicker/MenuButton.vue +1 -7
- package/layers/theme/app/composables/useAccentColor.ts +38 -0
- package/layers/theme/app/composables/useTheme.ts +14 -0
- package/layers/theme/app/composables/useThemeContrast.ts +34 -0
- package/layers/theme/app/composables/useThemeMotion.ts +34 -0
- package/layers/theme/app/composables/useThemePreferences.ts +3 -156
- package/layers/theme/app/composables/useThemeTransparency.ts +41 -0
- package/layers/theme/app/plugins/theme.client.ts +3 -3
- package/layers/theme/app/types/theme.ts +4 -0
- package/layers/theme/nuxt.config.ts +7 -0
- package/layers/ui/app/app.config.ts +44 -0
- package/layers/ui/app/assets/css/main.css +14 -0
- package/layers/ui/app/components/Accent/Blob.vue +29 -0
- package/layers/ui/app/components/Accent/Scene.vue +38 -0
- package/layers/ui/app/components/Gradient/Background.vue +22 -0
- package/layers/ui/app/components/Gradient/Text.vue +22 -0
- package/layers/ui/app/components/Progress/Bar.vue +25 -0
- package/layers/ui/app/components/Progress/Circular.vue +69 -0
- package/layers/ui/app/components/Tint/Overlay.vue +25 -0
- package/layers/ui/app/components/Typography/CodeBlock.vue +2 -1
- package/layers/ui/app/components/Typography/Headline.vue +2 -1
- package/layers/ui/app/components/Typography/QuoteBlock.vue +2 -1
- package/layers/ui/app/components/Typography/TextStroke.vue +18 -16
- package/layers/ui/app/composables/accent.ts +51 -0
- package/layers/ui/app/composables/gradient.ts +79 -0
- package/layers/ui/app/composables/tint.ts +20 -0
- package/layers/ui/app/types/accent.ts +17 -0
- package/layers/ui/app/types/gradient.ts +27 -0
- package/layers/ui/app/types/tint.ts +25 -0
- package/package.json +37 -31
- package/layers/motion/app/utils/gsapAnimations.ts +0 -122
- package/layers/ui/app.config.ts +0 -12
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import type { gsap as GsapType } from 'gsap'
|
|
2
|
-
import type { ScrollTrigger as ScrollTriggerType } from 'gsap/ScrollTrigger'
|
|
3
|
-
|
|
4
|
-
type GsapInstance = typeof GsapType
|
|
5
|
-
type ScrollTriggerInstance = typeof ScrollTriggerType
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a fade-in animation with scroll trigger
|
|
9
|
-
*/
|
|
10
|
-
export function createFadeIn(
|
|
11
|
-
gsap: GsapInstance,
|
|
12
|
-
target: string | Element,
|
|
13
|
-
options?: {
|
|
14
|
-
duration?: number
|
|
15
|
-
delay?: number
|
|
16
|
-
y?: number
|
|
17
|
-
start?: string
|
|
18
|
-
toggleActions?: string
|
|
19
|
-
}
|
|
20
|
-
) {
|
|
21
|
-
const {
|
|
22
|
-
duration = 1,
|
|
23
|
-
delay = 0,
|
|
24
|
-
y = 30,
|
|
25
|
-
start = 'top 85%',
|
|
26
|
-
toggleActions = 'play none none none',
|
|
27
|
-
} = options ?? {}
|
|
28
|
-
|
|
29
|
-
gsap.set(target, { opacity: 0, y })
|
|
30
|
-
|
|
31
|
-
return gsap.to(target, {
|
|
32
|
-
opacity: 1,
|
|
33
|
-
y: 0,
|
|
34
|
-
duration,
|
|
35
|
-
delay,
|
|
36
|
-
ease: 'power2.out',
|
|
37
|
-
scrollTrigger: {
|
|
38
|
-
trigger: target,
|
|
39
|
-
start,
|
|
40
|
-
toggleActions,
|
|
41
|
-
},
|
|
42
|
-
})
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Create a parallax effect
|
|
47
|
-
*/
|
|
48
|
-
export function createParallax(
|
|
49
|
-
gsap: GsapInstance,
|
|
50
|
-
target: string | Element,
|
|
51
|
-
options?: {
|
|
52
|
-
speed?: number
|
|
53
|
-
trigger?: string | Element
|
|
54
|
-
}
|
|
55
|
-
) {
|
|
56
|
-
const { speed = 0.5, trigger } = options ?? {}
|
|
57
|
-
|
|
58
|
-
return gsap.to(target, {
|
|
59
|
-
y: () => window.innerHeight * speed,
|
|
60
|
-
ease: 'none',
|
|
61
|
-
scrollTrigger: {
|
|
62
|
-
trigger: trigger ?? target,
|
|
63
|
-
start: 'top bottom',
|
|
64
|
-
end: 'bottom top',
|
|
65
|
-
scrub: true,
|
|
66
|
-
},
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Create a pinned section
|
|
72
|
-
*/
|
|
73
|
-
export function createPin(
|
|
74
|
-
ScrollTrigger: ScrollTriggerInstance,
|
|
75
|
-
target: string | Element,
|
|
76
|
-
options?: {
|
|
77
|
-
start?: string
|
|
78
|
-
end?: string
|
|
79
|
-
pinSpacing?: boolean
|
|
80
|
-
}
|
|
81
|
-
) {
|
|
82
|
-
const { start = 'top top', end = '+=100%', pinSpacing = true } = options ?? {}
|
|
83
|
-
|
|
84
|
-
return ScrollTrigger.create({
|
|
85
|
-
trigger: target,
|
|
86
|
-
start,
|
|
87
|
-
end,
|
|
88
|
-
pin: true,
|
|
89
|
-
pinSpacing,
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Create staggered fade-in for multiple elements
|
|
95
|
-
*/
|
|
96
|
-
export function createStaggeredFadeIn(
|
|
97
|
-
gsap: GsapInstance,
|
|
98
|
-
targets: string | Element[],
|
|
99
|
-
options?: {
|
|
100
|
-
duration?: number
|
|
101
|
-
stagger?: number
|
|
102
|
-
y?: number
|
|
103
|
-
start?: string
|
|
104
|
-
}
|
|
105
|
-
) {
|
|
106
|
-
const { duration = 0.8, stagger = 0.1, y = 30, start = 'top 85%' } = options ?? {}
|
|
107
|
-
|
|
108
|
-
gsap.set(targets, { opacity: 0, y })
|
|
109
|
-
|
|
110
|
-
return gsap.to(targets, {
|
|
111
|
-
opacity: 1,
|
|
112
|
-
y: 0,
|
|
113
|
-
duration,
|
|
114
|
-
stagger,
|
|
115
|
-
ease: 'power2.out',
|
|
116
|
-
scrollTrigger: {
|
|
117
|
-
trigger: typeof targets === 'string' ? targets : targets[0],
|
|
118
|
-
start,
|
|
119
|
-
toggleActions: 'play none none none',
|
|
120
|
-
},
|
|
121
|
-
})
|
|
122
|
-
}
|