matefluency 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 +78 -0
- package/README.md +219 -0
- package/dist/base.css +132 -0
- package/dist/components.css +184 -0
- package/dist/matefluency.css +562 -0
- package/dist/tailwind.css +18 -0
- package/dist/utilities.css +264 -0
- package/index.js +43 -0
- package/package.json +38 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* MateFluency Design System v1.0.0
|
|
3
|
+
* EcoWestern Naturalism Design Language
|
|
4
|
+
* Copyright (c) 2026 EcoWestern. All rights reserved.
|
|
5
|
+
* https://ecowestern.net
|
|
6
|
+
*
|
|
7
|
+
* Proprietary license — free to use, no derivatives or redistribution.
|
|
8
|
+
* See LICENSE or https://ecowestern.net/matefluency/license for full terms.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* MateFluency Design System — Utilities & Motion Layer
|
|
13
|
+
*
|
|
14
|
+
* Animation keyframes, utility classes, and the full animation
|
|
15
|
+
* vocabulary used across the MateFluency design language.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/* ─── Keyframes ──────────────────────────────── */
|
|
19
|
+
|
|
20
|
+
@keyframes mf-fade-in-up {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 0;
|
|
23
|
+
transform: translateY(20px);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
to {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
transform: translateY(0);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@keyframes mf-scroll {
|
|
33
|
+
0% {
|
|
34
|
+
transform: translateX(0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
100% {
|
|
38
|
+
transform: translateX(-50%);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@keyframes mf-scroll-reverse {
|
|
43
|
+
0% {
|
|
44
|
+
transform: translateX(-50%);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
100% {
|
|
48
|
+
transform: translateX(0);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@keyframes mf-blob {
|
|
53
|
+
0% {
|
|
54
|
+
transform: translate(0px, 0px) scale(1);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
33% {
|
|
58
|
+
transform: translate(30px, -50px) scale(1.1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
66% {
|
|
62
|
+
transform: translate(-20px, 20px) scale(0.9);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
100% {
|
|
66
|
+
transform: translate(0px, 0px) scale(1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@keyframes mf-float {
|
|
71
|
+
0% {
|
|
72
|
+
transform: translateY(0px);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
50% {
|
|
76
|
+
transform: translateY(-20px);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
100% {
|
|
80
|
+
transform: translateY(0px);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@keyframes mf-breathe {
|
|
85
|
+
|
|
86
|
+
0%,
|
|
87
|
+
100% {
|
|
88
|
+
transform: scale(1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
50% {
|
|
92
|
+
transform: scale(1.05);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ─── Animation Utility Classes ──────────────── */
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* .mf-animate-in
|
|
100
|
+
* Page-entry animation — fades content up from 20px.
|
|
101
|
+
* Apply to the first visible section on each page.
|
|
102
|
+
*/
|
|
103
|
+
.mf-animate-in {
|
|
104
|
+
animation: mf-fade-in-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* .mf-scroll / .mf-scroll-reverse
|
|
109
|
+
* Infinite marquee strip. Apply to TWO duplicate containers
|
|
110
|
+
* inside a parent with overflow: hidden; display: flex.
|
|
111
|
+
* Both children must have the same class to avoid a reset flash.
|
|
112
|
+
*/
|
|
113
|
+
.mf-scroll {
|
|
114
|
+
animation: mf-scroll 20s linear infinite;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.mf-scroll-reverse {
|
|
118
|
+
animation: mf-scroll-reverse 20s linear infinite;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* .mf-blob
|
|
123
|
+
* Ambient background blob drift. Use on large blurred circles
|
|
124
|
+
* behind hero sections.
|
|
125
|
+
*/
|
|
126
|
+
.mf-blob {
|
|
127
|
+
animation: mf-blob 7s infinite;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* .mf-float
|
|
132
|
+
* Slow vertical float. Great for illustration SVGs or product
|
|
133
|
+
* images in hero sections.
|
|
134
|
+
*/
|
|
135
|
+
.mf-float {
|
|
136
|
+
animation: mf-float 6s ease-in-out infinite;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* .mf-breathe
|
|
141
|
+
* Subtle scale pulse. Use on ambient background shapes to make
|
|
142
|
+
* them feel alive.
|
|
143
|
+
*/
|
|
144
|
+
.mf-breathe {
|
|
145
|
+
animation: mf-breathe 4s ease-in-out infinite;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ─── Text Utilities ─────────────────────────── */
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* .mf-text-balance
|
|
152
|
+
* Prevents awkward single-word last lines in headings.
|
|
153
|
+
* Especially useful on H1/H2 copy.
|
|
154
|
+
*/
|
|
155
|
+
.mf-text-balance {
|
|
156
|
+
text-wrap: balance;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* ─── Layout Utilities ───────────────────────── */
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* .mf-container
|
|
163
|
+
* The standard MateFluency page container.
|
|
164
|
+
* max-width: 72rem (1152px), centered, with responsive horizontal padding.
|
|
165
|
+
*/
|
|
166
|
+
.mf-container {
|
|
167
|
+
max-width: 72rem;
|
|
168
|
+
margin-left: auto;
|
|
169
|
+
margin-right: auto;
|
|
170
|
+
padding-left: 1.5rem;
|
|
171
|
+
/* px-6 */
|
|
172
|
+
padding-right: 1.5rem;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@media (min-width: 768px) {
|
|
176
|
+
.mf-container {
|
|
177
|
+
padding-left: 2.5rem;
|
|
178
|
+
/* md:px-10 */
|
|
179
|
+
padding-right: 2.5rem;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* ─── Typography Presets ─────────────────────── */
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* These classes mirror the canonical MateFluency type scale.
|
|
187
|
+
* You don't have to use them — they're provided as a convenience
|
|
188
|
+
* for non-Tailwind projects.
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
.mf-eyebrow {
|
|
192
|
+
font-size: 0.65rem;
|
|
193
|
+
font-weight: 700;
|
|
194
|
+
text-transform: uppercase;
|
|
195
|
+
letter-spacing: 0.3em;
|
|
196
|
+
color: var(--mf-green, #086d00);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@media (min-width: 768px) {
|
|
200
|
+
.mf-eyebrow {
|
|
201
|
+
font-size: 0.75rem;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.mf-h1 {
|
|
206
|
+
font-size: 2.25rem;
|
|
207
|
+
/* text-4xl */
|
|
208
|
+
font-weight: 800;
|
|
209
|
+
letter-spacing: -0.025em;
|
|
210
|
+
line-height: 1.05;
|
|
211
|
+
color: var(--mf-ink, #1d1d1f);
|
|
212
|
+
text-wrap: balance;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
@media (min-width: 640px) {
|
|
216
|
+
.mf-h1 {
|
|
217
|
+
font-size: 3rem;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* sm:text-5xl */
|
|
222
|
+
@media (min-width: 768px) {
|
|
223
|
+
.mf-h1 {
|
|
224
|
+
font-size: 4.5rem;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* md:text-7xl */
|
|
229
|
+
|
|
230
|
+
.mf-h2 {
|
|
231
|
+
font-size: 1.875rem;
|
|
232
|
+
/* text-3xl */
|
|
233
|
+
font-weight: 700;
|
|
234
|
+
letter-spacing: -0.025em;
|
|
235
|
+
color: var(--mf-ink, #1d1d1f);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.mf-h3 {
|
|
239
|
+
font-size: 1.5rem;
|
|
240
|
+
/* text-2xl */
|
|
241
|
+
font-weight: 700;
|
|
242
|
+
color: var(--mf-ink, #1d1d1f);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.mf-body {
|
|
246
|
+
font-size: 1rem;
|
|
247
|
+
font-weight: 500;
|
|
248
|
+
line-height: 1.75;
|
|
249
|
+
color: var(--mf-text-2, #515154);
|
|
250
|
+
text-wrap: balance;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
@media (min-width: 768px) {
|
|
254
|
+
.mf-body {
|
|
255
|
+
font-size: 1.25rem;
|
|
256
|
+
/* md:text-xl */
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.mf-meta {
|
|
261
|
+
font-size: 0.75rem;
|
|
262
|
+
font-weight: 600;
|
|
263
|
+
color: var(--mf-text-3, #6e6e73);
|
|
264
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MateFluency Design System — JS Entry Point
|
|
3
|
+
*
|
|
4
|
+
* This file is the `main` entry for the npm package.
|
|
5
|
+
* It exports helper metadata and documents the available CSS imports.
|
|
6
|
+
*
|
|
7
|
+
* CSS Usage:
|
|
8
|
+
* import "matefluency/css"; // Full bundle (vanilla CSS)
|
|
9
|
+
* import "matefluency/css/tailwind"; // Tailwind v4 bundle
|
|
10
|
+
*
|
|
11
|
+
* Or in a .css file:
|
|
12
|
+
* @import "matefluency"; // Resolves to dist/matefluency.css
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
module.exports = {
|
|
16
|
+
name: "MateFluency",
|
|
17
|
+
version: "1.0.0",
|
|
18
|
+
description: "EcoWestern Naturalism Design System",
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Design tokens — exposed as JS for use in design tools,
|
|
22
|
+
* or for generating Tailwind config in v3 projects.
|
|
23
|
+
*/
|
|
24
|
+
tokens: {
|
|
25
|
+
colors: {
|
|
26
|
+
green: "#086d00",
|
|
27
|
+
greenFocus: "#1db100",
|
|
28
|
+
greenHover: "#065a00",
|
|
29
|
+
ink: "#1d1d1f",
|
|
30
|
+
text2: "#515154",
|
|
31
|
+
text3: "#6e6e73",
|
|
32
|
+
separator: "#e8e8ed",
|
|
33
|
+
canvas: "#f7f7f2",
|
|
34
|
+
},
|
|
35
|
+
radius: {
|
|
36
|
+
organic: "2rem",
|
|
37
|
+
},
|
|
38
|
+
easing: {
|
|
39
|
+
release: "cubic-bezier(0.25, 1, 0.5, 1)",
|
|
40
|
+
enter: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "matefluency",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MateFluency — The EcoWestern Naturalism design system. Organic surfaces, soft textures, and weighted motion for the modern web.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"design-system",
|
|
7
|
+
"css",
|
|
8
|
+
"naturalism",
|
|
9
|
+
"matefluency",
|
|
10
|
+
"ecowestern",
|
|
11
|
+
"ui"
|
|
12
|
+
],
|
|
13
|
+
"author": "EcoWestern <hello@ecowestern.net>",
|
|
14
|
+
"license": "UNLICENSED",
|
|
15
|
+
"homepage": "https://ecowestern.net",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/ecowestern/matefluency"
|
|
19
|
+
},
|
|
20
|
+
"main": "index.js",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./index.js",
|
|
23
|
+
"./css": "./dist/matefluency.css"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist/",
|
|
27
|
+
"index.js",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "node scripts/build.js",
|
|
33
|
+
"prepublishOnly": "npm run build"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"fs-extra": "^11.2.0"
|
|
37
|
+
}
|
|
38
|
+
}
|