frutjam 2.0.4 → 2.0.6
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/dist/base/reboot/object.js +1 -1
- package/dist/base.css +2 -2
- package/dist/components/accordion.css +1 -1
- package/dist/components/alert/object.js +1 -1
- package/dist/components/alert.css +2 -2
- package/dist/components/avatar.css +1 -1
- package/dist/components/badge/object.js +1 -1
- package/dist/components/badge.css +2 -2
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/button/object.js +1 -1
- package/dist/components/button.css +2 -2
- package/dist/components/card/object.js +1 -1
- package/dist/components/card.css +2 -2
- package/dist/components/carousel.css +1 -1
- package/dist/components/chat/object.js +1 -1
- package/dist/components/chat.css +2 -2
- package/dist/components/checkbox.css +1 -1
- package/dist/components/collapsible.css +1 -1
- package/dist/components/combobox.css +1 -1
- package/dist/components/countdown.css +1 -1
- package/dist/components/diff.css +1 -1
- package/dist/components/divider.css +1 -1
- package/dist/components/drawer.css +1 -1
- package/dist/components/footer.css +1 -1
- package/dist/components/header.css +1 -1
- package/dist/components/hero.css +1 -1
- package/dist/components/indicator.css +1 -1
- package/dist/components/input.css +1 -1
- package/dist/components/join.css +1 -1
- package/dist/components/kbd.css +1 -1
- package/dist/components/link.css +1 -1
- package/dist/components/loading.css +1 -1
- package/dist/components/mask.css +1 -1
- package/dist/components/menu/object.js +1 -1
- package/dist/components/menu.css +2 -2
- package/dist/components/modal.css +1 -1
- package/dist/components/navbar.css +1 -1
- package/dist/components/popover.css +1 -1
- package/dist/components/progress.css +1 -1
- package/dist/components/radial-progress.css +1 -1
- package/dist/components/radio.css +1 -1
- package/dist/components/range.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/select.css +1 -1
- package/dist/components/sidebar.css +1 -1
- package/dist/components/skeleton/object.js +1 -1
- package/dist/components/skeleton.css +2 -2
- package/dist/components/stat/object.js +1 -1
- package/dist/components/stat.css +2 -2
- package/dist/components/status.css +1 -1
- package/dist/components/steps.css +1 -1
- package/dist/components/surface.css +1 -1
- package/dist/components/swap.css +1 -1
- package/dist/components/table.css +1 -1
- package/dist/components/tabs/object.js +1 -1
- package/dist/components/tabs.css +2 -2
- package/dist/components/tag/object.js +1 -1
- package/dist/components/tag.css +2 -2
- package/dist/components/textarea.css +1 -1
- package/dist/components/timeline.css +1 -1
- package/dist/components/toast.css +1 -1
- package/dist/components/toggle.css +1 -1
- package/dist/components/tooltip.css +1 -1
- package/dist/frutjam.min.css +3 -3
- package/dist/plugin.js +19 -5
- package/dist/themes/darkberry.css +1 -1
- package/dist/themes/snowberry.css +1 -1
- package/dist/utilities/headings.css +1 -1
- package/dist/utilities/para.css +1 -1
- package/dist/utilities/typography.css +1 -1
- package/dist/utilities/wrapper.css +1 -1
- package/index.js +22 -5
- package/package.json +3 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
@layer theme{:is([data-theme=darkberry],[data-theme=dark]){--scheme-color:dark;--border-radius:0.25rem;--color-base:oklch(10.889% 0.00301 17.398);--color-on-base:oklch(98% 0.01 270);--color-neutral:oklch(85% 0 0);--color-on-neutral:oklch(20% 0 0);--color-primary:oklch(66.385% 0.18368 285.592);--color-on-primary:oklch(10% 0.01 270);--color-secondary:oklch(65% 0.18 220);--color-on-secondary:oklch(10% 0.01 220);--color-accent:oklch(75% 0.18 50);--color-on-accent:oklch(10% 0.01 50);--color-info:oklch(91.67% .077 205.04);--color-on-info:oklch(10% 0.01 250);--color-success:oklch(65% 0.18 140);--color-on-success:oklch(10% 0.01 140);--color-warning:oklch(75% 0.20 85);--color-on-warning:oklch(10% 0.01 85);--color-error:oklch(60% 0.22 30);--color-on-error:oklch(10% 0.01 30)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
@layer theme{:is([data-theme=snowberry],[data-theme=light]),:root:not([data-theme]){--scheme-color:light;--border-radius:0.25rem;--color-base:oklch(1 0 0);--color-on-base:oklch(0.22 0 0);--color-neutral:oklch(0.15 0 0);--color-on-neutral:oklch(1 0 0);--color-primary:oklch(51.1% 0.262 276.966);--color-on-primary:oklch(96.2% 0.018 272.314);--color-secondary:oklch(0.591 0.293 322.896);--color-on-secondary:oklch(1 0 0);--color-accent:oklch(0.541 0.281 293.009);--color-on-accent:oklch(1 0 0);--color-info:oklch(0.685 0.169 237.323);--color-on-info:oklch(0.15 0 0);--color-success:oklch(0.792 0.209 151.711);--color-on-success:oklch(0.15 0 0);--color-warning:oklch(0.852 0.199 91.936);--color-on-warning:oklch(0.15 0 0);--color-error:oklch(0.577 0.245 27.325);--color-on-error:oklch(1 0 0)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.heading-2xl{--heading-size:1rem;--heading-size:1.5rem}.heading-2xl,.heading-3xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-3xl{--heading-size:1rem;--heading-size:1.875rem}.heading-4xl{--heading-size:1rem;--heading-size:2.25rem}.heading-4xl,.heading-5xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-5xl{--heading-size:1rem;--heading-size:3rem}.heading-6xl{--heading-size:1rem;--heading-size:3.75rem}.heading-6xl,.heading-7xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-7xl{--heading-size:1rem;--heading-size:4.5rem}.heading-8xl{--heading-size:1rem;--heading-size:6rem}.heading-8xl,.heading-9xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-9xl{--heading-size:1rem;--heading-size:8rem}.heading-lg{--heading-size:1rem;--heading-size:1.125rem}.heading-lg,.heading-md{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-md{--heading-size:1rem}.heading-sm{--heading-size:1rem;--heading-size:0.875rem}.heading-sm,.heading-xl{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading-xl{--heading-size:1rem;--heading-size:1.25rem}.heading-xs{--heading-size:1rem;--heading-size:0.75rem}.heading,.heading-xs{color:var(--color-on-base);font-weight:700;text-wrap-style:balance;font-size:var(--heading-size);line-height:1.15}.heading{--heading-size:1rem}
|
package/dist/utilities/para.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.para-2xl{font-size:var(--text-base);font-size:var(--text-2xl)}.para-2xl,.para-3xl{text-wrap-style:pretty;line-height:1.6}.para-3xl{font-size:var(--text-base);font-size:var(--text-3xl)}.para-4xl{font-size:var(--text-base);font-size:var(--text-4xl)}.para-4xl,.para-5xl{text-wrap-style:pretty;line-height:1.6}.para-5xl{font-size:var(--text-base);font-size:var(--text-5xl)}.para-6xl{font-size:var(--text-base);font-size:var(--text-6xl)}.para-6xl,.para-7xl{text-wrap-style:pretty;line-height:1.6}.para-7xl{font-size:var(--text-base);font-size:var(--text-7xl)}.para-8xl{font-size:var(--text-base);font-size:var(--text-8xl)}.para-8xl,.para-9xl{text-wrap-style:pretty;line-height:1.6}.para-9xl{font-size:var(--text-base);font-size:var(--text-9xl)}.para-lg{font-size:var(--text-base);font-size:var(--text-lg)}.para-lg,.para-md{text-wrap-style:pretty;line-height:1.6}.para-md{font-size:var(--text-base)}.para-sm{font-size:var(--text-base);font-size:var(--text-sm)}.para-sm,.para-xl{text-wrap-style:pretty;line-height:1.6}.para-xl{font-size:var(--text-base);font-size:var(--text-xl)}.para-xs{font-size:var(--text-base);font-size:var(--text-xs)}.para,.para-xs{text-wrap-style:pretty;line-height:1.6}.para{font-size:var(--text-base)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
.prose-frutjam{--tw-prose-body:var(--color-body);--tw-prose-headings:var(--color-on-base);--tw-prose-lead:var(--color-on-neutral);--tw-prose-bold:var(--color-on-base);--tw-prose-links:var(--color-primary);--tw-prose-counters:var(--color-neutral);--tw-prose-bullets:var(--color-neutral);--tw-prose-hr:var(--color-base-soft);--tw-prose-quotes:var(--color-on-base);--tw-prose-quote-borders:var(--color-primary);--tw-prose-code:var(--color-on-base);--tw-prose-pre-code:var(--color-on-base);--tw-prose-pre-bg:var(--color-base-soft);--tw-prose-th-borders:var(--color-base-soft);--tw-prose-td-borders:var(--color-base-soft);--tw-prose-captions:var(--color-on-neutral);--tw-prose-kbd:var(--color-body);--tw-prose-invert-body:var(--color-on-neutral);--tw-prose-invert-headings:var(--color-on-base);--tw-prose-invert-links:var(--color-primary)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! frutjam v2.0.
|
|
1
|
+
/*! frutjam v2.0.6 (c) 2026 Nezanuha | Released under the MIT License | https://frutjam.com */
|
|
2
2
|
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */.wrapper-full{width:100%;max-width:100%;box-sizing:border-box;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-2xl{box-sizing:border-box;max-width:1536px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-lg{box-sizing:border-box;max-width:1024px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-md{box-sizing:border-box;max-width:768px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-sm{box-sizing:border-box;max-width:640px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-xl{box-sizing:border-box;max-width:1280px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper-xs{box-sizing:border-box;max-width:320px;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}.wrapper{box-sizing:border-box;margin-inline:auto;padding-inline:1rem;@media (width >= 40rem){padding-inline:2rem}@media (width >= 64rem){padding-inline:4rem}}
|
package/index.js
CHANGED
|
@@ -193,13 +193,19 @@ function buildCSS(prefix, themes, reset, rootSelector, include, exclude) {
|
|
|
193
193
|
|
|
194
194
|
const combined = baseCss + "\n" + modulesCss
|
|
195
195
|
const utilMap = buildUtilityMap(combined)
|
|
196
|
-
|
|
196
|
+
|
|
197
|
+
// Base CSS (theme variables, token definitions, text-color overrides) must NOT be prefixed —
|
|
198
|
+
// the @utility text-* declarations target the same class names as Tailwind's theme-generated
|
|
199
|
+
// utilities and must stay unprefixed (e.g. text-primary, not fj-text-primary).
|
|
200
|
+
let resolvedBase = resolveCopy(baseCss, utilMap)
|
|
201
|
+
let resolvedModules = resolveCopy(modulesCss, utilMap)
|
|
197
202
|
|
|
198
203
|
if (rootSelector !== ":root") {
|
|
199
|
-
|
|
204
|
+
resolvedBase = resolvedBase.replace(/:root\b/g, rootSelector)
|
|
205
|
+
resolvedModules = resolvedModules.replace(/:root\b/g, rootSelector)
|
|
200
206
|
}
|
|
201
207
|
|
|
202
|
-
css = applyPrefix(
|
|
208
|
+
let css = resolvedBase + "\n" + applyPrefix(resolvedModules, prefix)
|
|
203
209
|
|
|
204
210
|
const customThemes = buildCustomThemes(themes)
|
|
205
211
|
if (customThemes) css += "\n\n" + customThemes
|
|
@@ -212,7 +218,17 @@ function buildCSS(prefix, themes, reset, rootSelector, include, exclude) {
|
|
|
212
218
|
css = ast.toString()
|
|
213
219
|
}
|
|
214
220
|
|
|
215
|
-
|
|
221
|
+
// Extract @utility text-* rules from base CSS and convert to plain CSS for late injection.
|
|
222
|
+
// In the PostCSS path, Tailwind's theme-generated text-{color} utilities take precedence over
|
|
223
|
+
// same-named @utility definitions. Injecting them as plain CSS at the end of @layer utilities
|
|
224
|
+
// via OnceExit ensures they appear after the theme-generated rules and therefore win.
|
|
225
|
+
const baseUtilMap = buildUtilityMap(resolvedBase)
|
|
226
|
+
const textColorOverrides = [...baseUtilMap.entries()]
|
|
227
|
+
.filter(([name]) => name.startsWith('text-'))
|
|
228
|
+
.map(([name, body]) => `.${name} {${body}}`)
|
|
229
|
+
.join('\n')
|
|
230
|
+
|
|
231
|
+
return { css, utilMap, textColorOverrides }
|
|
216
232
|
}
|
|
217
233
|
|
|
218
234
|
function buildLateCSS(prefix, include, exclude, utilMap = new Map()) {
|
|
@@ -284,9 +300,10 @@ export default function frutjam(options = {}) {
|
|
|
284
300
|
const include = parseList(merged.include)
|
|
285
301
|
const exclude = parseList(merged.exclude)
|
|
286
302
|
|
|
287
|
-
const { css, utilMap } = buildCSS(prefix, themes, reset, rootSelector, include, exclude)
|
|
303
|
+
const { css, utilMap, textColorOverrides } = buildCSS(prefix, themes, reset, rootSelector, include, exclude)
|
|
288
304
|
root.append(postcss.parse(css).nodes)
|
|
289
305
|
_lateCss = buildLateCSS(prefix, include, exclude, utilMap)
|
|
306
|
+
if (textColorOverrides) _lateCss += '\n' + textColorOverrides
|
|
290
307
|
if (logs) {
|
|
291
308
|
const d = "\x1b[2m", r = "\x1b[0m"
|
|
292
309
|
const badge = "\x1b[46m\x1b[30m frutjam \x1b[0m"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frutjam",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
4
4
|
"description": "A utility-first CSS UI Library for Tailwind CSS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
"packages/"
|
|
24
24
|
],
|
|
25
25
|
"style": "./dist/frutjam.min.css",
|
|
26
|
+
"unpkg": "./dist/frutjam.min.css",
|
|
27
|
+
"jsdelivr": "./dist/frutjam.min.css",
|
|
26
28
|
"scripts": {
|
|
27
29
|
"clean": "rimraf ./dist",
|
|
28
30
|
"build:cdn": "node scripts/build-cdn.mjs",
|