frankenstyle 0.0.11 → 0.1.0-aardvark.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.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 [Franken UI contributors](https://github.com/franken-ui/style/graphs/contributors)
3
+ Copyright (c) 2025 FRNKN
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,137 +1,16 @@
1
- > If you’re already happy with Tailwind CSS, there’s no reason for you to be here.
1
+ [![ Frankenstyle is the spiritual successor to Franken UI.](https://franken.style/images/frankenstyle-banner.png)](https://franken.style)
2
2
 
3
- # Frankenstyle
3
+ ## Documentation
4
4
 
5
- Frankenstyle is a no-build, value-driven, fully responsive, utility-first CSS framework. It’s designed to be lightweight, production-ready, and to strike a balance between developer ergonomics and build size.
5
+ For full documentation, visit [https://franken.style](https://franken.style).
6
6
 
7
- For full documentation, visit [franken.style](https://franken.style).
7
+ ## Support
8
8
 
9
- ## Installation
9
+ If you’d like to support the work, you can do so here:
10
10
 
11
- Frankenstyle can be used via CDN or downloaded and referenced locally.
12
-
13
- ### CDN
14
-
15
- ```html
16
- <link
17
- rel="stylesheet"
18
- href="https://unpkg.com/frankenstyle@latest/dist/css/frankenstyle.min.css"
19
- />
20
- ```
21
-
22
- ### NPM
23
-
24
- ```bash
25
- npm i frankenstyle@latest
26
- ```
27
-
28
- Then import it in your `main.css`:
29
-
30
- ```css
31
- @import "frankenstyle/css/frankenstyle.css";
32
- ```
33
-
34
- ### JavaScript
35
-
36
- JavaScript is optional, but important for interactive states:
37
-
38
- ```html
39
- <script src="https://unpkg.com/frankenstyle@latest/dist/js/frankenstyle.min.js"></script>
40
- ```
41
-
42
- ## Core Concepts & Usage
43
-
44
- Think of Frankenstyle as _Tailwind CSS, but de-valued_. Frankenstyle provides the class, you provide the value.
45
-
46
- ```html
47
- <div class="m sm:m md:m" style="--m: 4; --sm-m: 8; --md-m: 16"></div>
48
- ```
49
-
50
- Behind the scenes, values are multiplied by a base spacing variable (e.g., `var(--spacing)`).
51
-
52
- Need arbitrary values? Wrap in brackets:
53
-
54
- ```html
55
- <div class="[m]" style="--m: 4px;"></div>
56
- ```
57
-
58
- You don’t need to memorize odd variable names — just drop special characters from the class.
59
-
60
- - `sm:m` → `--sm-m`
61
- - `dark:sm:bg:hover` → `--dark-sm-bg-hover`
62
-
63
- ### States
64
-
65
- Interactive states (e.g., hover) are generated on demand. Mark an element with `data-fs-interactive`, and the runtime will generate the necessary pseudo-state CSS.
66
-
67
- ```html
68
- <button
69
- type="button"
70
- class="color bg dark:bg bg:hover dark:bg:hover font-medium rounded-lg text-sm px py"
71
- style="
72
- --color: var(--color-white);
73
- --bg: var(--color-blue-700);
74
- --dark-bg: var(--color-pink-600);
75
- --bg-hover: var(--color-blue-800);
76
- --dark-bg-hover: var(--color-pink-700);
77
- --px: 5;
78
- --py: 2.5;
79
- "
80
- data-fs-interactive
81
- >
82
- Default
83
- </button>
84
- ```
85
-
86
- This avoids shipping huge CSS files for states up front — everything is generated at runtime when needed.
87
-
88
- ### Dark Mode
89
-
90
- Prefix color utilities with `dark:`:
91
-
92
- - `bg` → `dark:bg`
93
- - `color` → `dark:color`
94
- - `border` → `dark:border`
95
- - `fill` → `dark:fill`
96
-
97
- ### Opacity
98
-
99
- Suffix color utilities with `/o`. These require two variables (base + opacity) to avoid inheritance issues:
100
-
101
- ```html
102
- <div
103
- class="bg/o dark:bg/o"
104
- style="
105
- --bg: var(--color-blue-800);
106
- --bg-o: 80%;
107
- --dark-bg: var(--color-green-800);
108
- --dark-bg-o: 80%;
109
- "
110
- ></div>
111
- ```
112
-
113
- ### Responsiveness
114
-
115
- Prefix classes with breakpoints:
116
-
117
- - `sm:`
118
- - `md:`
119
- - `lg:`
120
- - `xl:`
121
- - `2xl:`
122
-
123
- ```html
124
- <div class="p sm:p md:p" style="--p: 4; --sm-p: 8; --md-p: 16"></div>
125
- ```
126
-
127
- ## Key Differences from Tailwind
128
-
129
- - **No config, no file watchers** → everything is statically pre-built.
130
- - **Value-driven utilities** → use `m` + `--m: 8` or `[m]` for arbitrary values, not `m-8` or `m-[8px]`.
131
- - **State syntax is reversed** → `bg:hover` instead of `hover:bg-blue-600`.
132
- - **Runtime state generation** → hover/active CSS is created on the fly, keeping static builds small.
133
- - **Familiar patterns** → utilities, responsive prefixes, and naming feel similar to Tailwind.
11
+ * **GitHub Sponsors:** [https://github.com/sponsors/sveltecult](https://github.com/sponsors/sveltecult)
12
+ * **Ko-fi:** [https://ko-fi.com/sveltecult](https://ko-fi.com/sveltecult)
134
13
 
135
14
  ## License
136
15
 
137
- Licensed under the [MIT license](https://github.com/franken-ui/ui/blob/master/LICENSE.md).
16
+ Licensed under the [MIT License](https://codeberg.org/FRNKN/style/src/branch/master/LICENSE.md).
@@ -0,0 +1,325 @@
1
+ /* ============================================
2
+ Chart Component (ApexCharts)
3
+ ============================================ */
4
+
5
+ /* Chart Tooltip */
6
+ .uk-chart .apexcharts-tooltip {
7
+ /* Base Variables */
8
+ --uk-chart-tooltip-radius: var(--uk-global-radius);
9
+ --uk-chart-tooltip-shadow: var(--uk-global-shadow);
10
+ --uk-chart-tooltip-font-size: var(--uk-global-font-size-small);
11
+ --uk-chart-tooltip-leading: var(--uk-global-line-height-small);
12
+ --uk-chart-tooltip-color: var(--uk-bg-f);
13
+ --uk-chart-tooltip-color-o: 100%;
14
+
15
+ /* Computed value */
16
+ --uk-chart-tooltip-color-computed: color-mix(
17
+ in srgb,
18
+ var(--uk-chart-tooltip-color) var(--uk-chart-tooltip-color-o),
19
+ transparent
20
+ );
21
+
22
+ border-radius: var(--uk-chart-tooltip-radius);
23
+ box-shadow: var(--uk-chart-tooltip-shadow);
24
+ font-size: var(--uk-chart-tooltip-font-size);
25
+ line-height: var(--uk-chart-tooltip-leading);
26
+ color: var(--uk-chart-tooltip-color-computed);
27
+ }
28
+
29
+ .uk-chart .apexcharts-tooltip.apexcharts-theme-light,
30
+ .uk-chart .apexcharts-tooltip.apexcharts-theme-dark {
31
+ /* Base Variables */
32
+ --uk-chart-tooltip-border-width: 1px;
33
+ --uk-chart-tooltip-border-color: var(--uk-border);
34
+ --uk-chart-tooltip-border-color-o: 10%;
35
+ --uk-chart-tooltip-bg: var(--uk-bg);
36
+ --uk-chart-tooltip-bg-o: 100%;
37
+
38
+ /* Computed values */
39
+ --uk-chart-tooltip-border-color-computed: color-mix(
40
+ in srgb,
41
+ var(--uk-chart-tooltip-border-color) var(--uk-chart-tooltip-border-color-o),
42
+ transparent
43
+ );
44
+ --uk-chart-tooltip-bg-computed: color-mix(
45
+ in srgb,
46
+ var(--uk-chart-tooltip-bg) var(--uk-chart-tooltip-bg-o),
47
+ transparent
48
+ );
49
+
50
+ border-width: var(--uk-chart-tooltip-border-width);
51
+ border-style: solid;
52
+ border-color: var(--uk-chart-tooltip-border-color-computed);
53
+ background-color: var(--uk-chart-tooltip-bg-computed);
54
+ }
55
+
56
+ .uk-chart .apexcharts-tooltip-title {
57
+ /* Base Variables */
58
+ --uk-chart-tooltip-title-padding: 6px;
59
+ --uk-chart-tooltip-title-font-size: var(--uk-global-font-size-small);
60
+ --uk-chart-tooltip-title-leading: var(--uk-global-line-height-small);
61
+ --uk-chart-tooltip-title-font-weight: 600;
62
+
63
+ padding: var(--uk-chart-tooltip-title-padding);
64
+ font-size: var(--uk-chart-tooltip-title-font-size);
65
+ line-height: var(--uk-chart-tooltip-title-leading);
66
+ font-weight: var(--uk-chart-tooltip-title-font-weight);
67
+ }
68
+
69
+ .uk-chart .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
70
+ .uk-chart .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
71
+ /* Base Variables */
72
+ --uk-chart-tooltip-title-border-width: 1px;
73
+ --uk-chart-tooltip-title-bg: var(--uk-bg);
74
+ --uk-chart-tooltip-title-bg-o: 100%;
75
+ --uk-chart-tooltip-title-border-color: var(--uk-border);
76
+ --uk-chart-tooltip-title-border-color-o: 10%;
77
+
78
+ /* Computed values */
79
+ --uk-chart-tooltip-title-bg-computed: color-mix(
80
+ in srgb,
81
+ var(--uk-chart-tooltip-title-bg) var(--uk-chart-tooltip-title-bg-o),
82
+ transparent
83
+ );
84
+ --uk-chart-tooltip-title-border-color-computed: color-mix(
85
+ in srgb,
86
+ var(--uk-chart-tooltip-title-border-color)
87
+ var(--uk-chart-tooltip-title-border-color-o),
88
+ transparent
89
+ );
90
+
91
+ background-color: var(--uk-chart-tooltip-title-bg-computed);
92
+ border-bottom-width: var(--uk-chart-tooltip-title-border-width);
93
+ border-bottom-style: solid;
94
+ border-bottom-color: var(--uk-chart-tooltip-title-border-color-computed);
95
+ }
96
+
97
+ .uk-chart .apexcharts-tooltip-marker::before {
98
+ font-size: inherit;
99
+ }
100
+
101
+ /* Chart Container */
102
+ .uk-chart-container {
103
+ /* Base Variables */
104
+ --uk-chart-container-radius: var(--uk-global-radius);
105
+ --uk-chart-container-shadow: var(--uk-global-shadow);
106
+ --uk-chart-container-border-color: var(--uk-border);
107
+ --uk-chart-container-border-color-o: 10%;
108
+ --uk-chart-container-bg: var(--uk-bg);
109
+ --uk-chart-container-bg-o: 100%;
110
+ --uk-chart-container-color: var(--uk-bg-f);
111
+ --uk-chart-container-color-o: 100%;
112
+
113
+ /* Computed values */
114
+ --uk-chart-container-border-color-computed: color-mix(
115
+ in srgb,
116
+ var(--uk-chart-container-border-color)
117
+ var(--uk-chart-container-border-color-o),
118
+ transparent
119
+ );
120
+ --uk-chart-container-bg-computed: color-mix(
121
+ in srgb,
122
+ var(--uk-chart-container-bg) var(--uk-chart-container-bg-o),
123
+ transparent
124
+ );
125
+ --uk-chart-container-color-computed: color-mix(
126
+ in srgb,
127
+ var(--uk-chart-container-color) var(--uk-chart-container-color-o),
128
+ transparent
129
+ );
130
+
131
+ border-radius: var(--uk-chart-container-radius);
132
+ box-shadow: var(--uk-chart-container-shadow);
133
+ border: 1px solid var(--uk-chart-container-border-color-computed);
134
+ background-color: var(--uk-chart-container-bg-computed);
135
+ color: var(--uk-chart-container-color-computed);
136
+ }
137
+
138
+ .uk-chart-container .text-muted-foreground {
139
+ color: var(--uk-muted-f);
140
+ }
141
+
142
+ /* Chart Series Group */
143
+ .uk-chart .apexcharts-tooltip-series-group.apexcharts-active,
144
+ .uk-chart .apexcharts-tooltip-series-group:last-child {
145
+ padding-block-end: 0;
146
+ }
147
+
148
+ .uk-chart .apexcharts-tooltip-series-group {
149
+ /* Base Variables */
150
+ --uk-chart-series-group-padding: 0 8px;
151
+
152
+ padding: var(--uk-chart-series-group-padding);
153
+ }
154
+
155
+ /* Chart Legend */
156
+ .uk-chart .apexcharts-legend-text {
157
+ /* Base Variables */
158
+ --uk-chart-legend-font-size: var(--uk-global-font-size-small);
159
+ --uk-chart-legend-leading: var(--uk-global-line-height-small);
160
+ --uk-chart-legend-padding-inline-start: 18px;
161
+ --uk-chart-legend-margin-inline-start: -16px;
162
+ --uk-chart-legend-color: var(--uk-bg-f);
163
+ --uk-chart-legend-color-o: 100%;
164
+
165
+ /* Computed value */
166
+ --uk-chart-legend-color-computed: color-mix(
167
+ in srgb,
168
+ var(--uk-chart-legend-color) var(--uk-chart-legend-color-o),
169
+ transparent
170
+ );
171
+
172
+ color: var(--uk-chart-legend-color-computed) !important;
173
+ font-size: var(--uk-chart-legend-font-size);
174
+ line-height: var(--uk-chart-legend-leading);
175
+ padding-inline-start: var(--uk-chart-legend-padding-inline-start);
176
+ margin-inline-start: var(--uk-chart-legend-margin-inline-start);
177
+ }
178
+
179
+ /* ============================================
180
+ Chart Color Themes
181
+ ============================================ */
182
+
183
+ .uk-theme-red {
184
+ --uk-chart-1: hsl(0 93.5% 81.8%);
185
+ --uk-chart-2: hsl(0 84.2% 60.2%);
186
+ --uk-chart-3: hsl(0 72.2% 50.6%);
187
+ --uk-chart-4: hsl(0 73.7% 41.8%);
188
+ --uk-chart-5: hsl(0 70% 35.3%);
189
+ }
190
+
191
+ .uk-theme-rose {
192
+ --uk-chart-1: hsl(352.6 95.7% 81.8%);
193
+ --uk-chart-2: hsl(349.7 89.2% 60.2%);
194
+ --uk-chart-3: hsl(346.8 77.2% 49.8%);
195
+ --uk-chart-4: hsl(345.3 82.7% 40.8%);
196
+ --uk-chart-5: hsl(343.4 79.7% 34.7%);
197
+ }
198
+
199
+ .uk-theme-orange {
200
+ --uk-chart-1: hsl(30.7 97.2% 72.4%);
201
+ --uk-chart-2: hsl(24.6 95% 53.1%);
202
+ --uk-chart-3: hsl(20.5 90.2% 48.2%);
203
+ --uk-chart-4: hsl(17.5 88.3% 40.4%);
204
+ --uk-chart-5: hsl(15 79.1% 33.7%);
205
+ }
206
+
207
+ .uk-theme-green {
208
+ --uk-chart-1: hsl(141 78.9% 85.1%);
209
+ --uk-chart-2: hsl(142.1 70.6% 45.3%);
210
+ --uk-chart-3: hsl(142.1 76.2% 36.3%);
211
+ --uk-chart-4: hsl(142.4 71.8% 29.2%);
212
+ --uk-chart-5: hsl(142.8 64.2% 24.1%);
213
+ }
214
+
215
+ .uk-theme-yellow {
216
+ --uk-chart-1: hsl(50.4 97.8% 63.5%);
217
+ --uk-chart-2: hsl(45.4 93.4% 47.5%);
218
+ --uk-chart-3: hsl(40.6 96.1% 40.4%);
219
+ --uk-chart-4: hsl(35.5 91.7% 32.9%);
220
+ --uk-chart-5: hsl(31.8 81% 28.8%);
221
+ }
222
+
223
+ .uk-theme-violet {
224
+ --uk-chart-1: hsl(252.5 94.7% 85.1%);
225
+ --uk-chart-2: hsl(258.3 89.5% 66.3%);
226
+ --uk-chart-3: hsl(262.1 83.3% 57.8%);
227
+ --uk-chart-4: hsl(263.4 70% 50.4%);
228
+ --uk-chart-5: hsl(263.4 69.3% 42.2%);
229
+ }
230
+
231
+ .uk-theme-amber {
232
+ --uk-chart-1: hsl(45.9 96.7% 64.5%);
233
+ --uk-chart-2: hsl(37.7 92.1% 50.2%);
234
+ --uk-chart-3: hsl(32.1 94.6% 43.7%);
235
+ --uk-chart-4: hsl(26 90.5% 37.1%);
236
+ --uk-chart-5: hsl(22.7 82.5% 31.4%);
237
+ }
238
+
239
+ .uk-theme-purple {
240
+ --uk-chart-1: hsl(269.2 97.4% 85.1%);
241
+ --uk-chart-2: hsl(270.7 91% 65.1%);
242
+ --uk-chart-3: hsl(271.5 81.3% 55.9%);
243
+ --uk-chart-4: hsl(272.1 71.7% 47.1%);
244
+ --uk-chart-5: hsl(272.9 67.2% 39.4%);
245
+ }
246
+
247
+ .uk-theme-teal {
248
+ --uk-chart-1: hsl(170.6 76.9% 64.3%);
249
+ --uk-chart-2: hsl(173.4 80.4% 40%);
250
+ --uk-chart-3: hsl(174.7 83.9% 31.6%);
251
+ --uk-chart-4: hsl(175.3 77.4% 26.1%);
252
+ --uk-chart-5: hsl(176.1 69.4% 21.8%);
253
+ }
254
+
255
+ .uk-theme-stone {
256
+ --uk-chart-1: hsl(24 5.7% 82.9%);
257
+ --uk-chart-2: hsl(25 5.3% 44.7%);
258
+ --uk-chart-3: hsl(33.3 5.5% 32.4%);
259
+ --uk-chart-4: hsl(30 6.3% 25.1%);
260
+ --uk-chart-5: hsl(12 6.5% 15.1%);
261
+ }
262
+
263
+ .uk-chart-palette {
264
+ --uk-chart-1: hsl(173 58% 39%);
265
+ --uk-chart-2: hsl(12 76% 61%);
266
+ --uk-chart-3: hsl(197 37% 24%);
267
+ --uk-chart-4: hsl(43 74% 66%);
268
+ --uk-chart-5: hsl(27 87% 67%);
269
+ }
270
+
271
+ .dark.uk-chart-palette {
272
+ --uk-chart-1: hsl(220 70% 50%);
273
+ --uk-chart-2: hsl(340 75% 55%);
274
+ --uk-chart-3: hsl(30 80% 55%);
275
+ --uk-chart-4: hsl(280 65% 60%);
276
+ --uk-chart-5: hsl(160 60% 45%);
277
+ }
278
+
279
+ .uk-chart-sapphire {
280
+ --uk-chart-1: hsl(221.2 83.2% 53.3%);
281
+ --uk-chart-2: hsl(212 95% 68%);
282
+ --uk-chart-3: hsl(216 92% 60%);
283
+ --uk-chart-4: hsl(210 98% 78%);
284
+ --uk-chart-5: hsl(212 97% 87%);
285
+ }
286
+
287
+ .dark.uk-chart-sapphire {
288
+ --uk-chart-1: hsl(221.2 83.2% 53.3%);
289
+ --uk-chart-2: hsl(212 95% 68%);
290
+ --uk-chart-3: hsl(216 92% 60%);
291
+ --uk-chart-4: hsl(210 98% 78%);
292
+ --uk-chart-5: hsl(212 97% 87%);
293
+ }
294
+
295
+ .uk-chart-ruby {
296
+ --uk-chart-1: hsl(347 77% 50%);
297
+ --uk-chart-2: hsl(352 83% 91%);
298
+ --uk-chart-3: hsl(350 80% 72%);
299
+ --uk-chart-4: hsl(351 83% 82%);
300
+ --uk-chart-5: hsl(349 77% 62%);
301
+ }
302
+
303
+ .dark.uk-chart-ruby {
304
+ --uk-chart-1: hsl(347 77% 50%);
305
+ --uk-chart-2: hsl(349 77% 62%);
306
+ --uk-chart-3: hsl(350 80% 72%);
307
+ --uk-chart-4: hsl(351 83% 82%);
308
+ --uk-chart-5: hsl(352 83% 91%);
309
+ }
310
+
311
+ .uk-chart-emerald {
312
+ --uk-chart-1: hsl(139 65% 20%);
313
+ --uk-chart-2: hsl(140 74% 44%);
314
+ --uk-chart-3: hsl(142 88% 28%);
315
+ --uk-chart-4: hsl(137 55% 15%);
316
+ --uk-chart-5: hsl(141 40% 9%);
317
+ }
318
+
319
+ .dark.uk-chart-emerald {
320
+ --uk-chart-1: hsl(142 88% 28%);
321
+ --uk-chart-2: hsl(139 65% 20%);
322
+ --uk-chart-3: hsl(140 74% 24%);
323
+ --uk-chart-4: hsl(137 55% 15%);
324
+ --uk-chart-5: hsl(141 40% 9%);
325
+ }