@magmonium/one 0.0.4 → 0.0.5

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.
Files changed (70) hide show
  1. package/package.json +2 -1
  2. package/sass/_date-picker.sass +147 -0
  3. package/sass/_index.sass +34 -0
  4. package/sass/_input-date.sass +25 -0
  5. package/sass/_m-components.sass +110 -0
  6. package/sass/_menu.sass +132 -0
  7. package/sass/_reset.sass +186 -0
  8. package/sass/animations/_index.sass +13 -0
  9. package/sass/animations/_registry.sass +51 -0
  10. package/sass/animations/background/_energy.sass +91 -0
  11. package/sass/animations/background/_gradient.sass +104 -0
  12. package/sass/animations/background/_index.sass +9 -0
  13. package/sass/animations/background/_nature.sass +110 -0
  14. package/sass/animations/background/_new-effects.sass +292 -0
  15. package/sass/animations/background/_particle.sass +122 -0
  16. package/sass/animations/background/_tech.sass +124 -0
  17. package/sass/functions/_functions.sass +107 -0
  18. package/sass/mixins/_backdrops.sass +230 -0
  19. package/sass/mixins/_backgrounds.sass +214 -0
  20. package/sass/mixins/_borders.sass +93 -0
  21. package/sass/mixins/_breakpoints.sass +68 -0
  22. package/sass/mixins/_button.sass +46 -0
  23. package/sass/mixins/_checkbox.sass +128 -0
  24. package/sass/mixins/_colors.sass +121 -0
  25. package/sass/mixins/_control.sass +13 -0
  26. package/sass/mixins/_device.sass +22 -0
  27. package/sass/mixins/_display.sass +210 -0
  28. package/sass/mixins/_flex.sass +104 -0
  29. package/sass/mixins/_form.sass +68 -0
  30. package/sass/mixins/_grid.sass +273 -0
  31. package/sass/mixins/_header.sass +71 -0
  32. package/sass/mixins/_index.sass +29 -0
  33. package/sass/mixins/_input.sass +132 -0
  34. package/sass/mixins/_interactive.sass +19 -0
  35. package/sass/mixins/_label.sass +25 -0
  36. package/sass/mixins/_layout.sass +251 -0
  37. package/sass/mixins/_links.sass +85 -0
  38. package/sass/mixins/_lists.sass +377 -0
  39. package/sass/mixins/_overflow.sass +121 -0
  40. package/sass/mixins/_position.sass +181 -0
  41. package/sass/mixins/_radio.sass +205 -0
  42. package/sass/mixins/_sizing.sass +181 -0
  43. package/sass/mixins/_spacing.sass +59 -0
  44. package/sass/mixins/_text.sass +159 -0
  45. package/sass/mixins/_toggle.sass +240 -0
  46. package/sass/mixins/_typography.sass +6 -0
  47. package/sass/mixins/_utilities.sass +70 -0
  48. package/sass/utilities/_backdrops.sass +228 -0
  49. package/sass/utilities/_backgrounds.sass +285 -0
  50. package/sass/utilities/_borders.sass +138 -0
  51. package/sass/utilities/_colors.sass +166 -0
  52. package/sass/utilities/_display.sass +308 -0
  53. package/sass/utilities/_flex.sass +91 -0
  54. package/sass/utilities/_grid.sass +502 -0
  55. package/sass/utilities/_index.sass +17 -0
  56. package/sass/utilities/_input.sass +14 -0
  57. package/sass/utilities/_links.sass +136 -0
  58. package/sass/utilities/_lists.sass +4 -0
  59. package/sass/utilities/_popup.sass +73 -0
  60. package/sass/utilities/_position.sass +88 -0
  61. package/sass/utilities/_sizing.sass +277 -0
  62. package/sass/utilities/_spacing.sass +121 -0
  63. package/sass/utilities/_text.sass +207 -0
  64. package/sass/variables/_animations.sass +5 -0
  65. package/sass/variables/_borders.sass +25 -0
  66. package/sass/variables/_colors.sass +93 -0
  67. package/sass/variables/_index.sass +6 -0
  68. package/sass/variables/_number.sass +1 -0
  69. package/sass/variables/_spacing.sass +28 -0
  70. package/sass/variables/_typography.sass +40 -0
@@ -0,0 +1,377 @@
1
+ // List Mixins - Reusable list styling
2
+ @use 'sass:map'
3
+ @use '../variables/spacing' as *
4
+ @use '../variables/colors' as *
5
+ @use '../variables/typography' as *
6
+
7
+ // Base list reset mixin
8
+ @mixin list-reset
9
+ margin: 0
10
+ padding: 0
11
+ list-style: none
12
+
13
+ // List item reset
14
+ @mixin list-item-reset
15
+ margin: 0
16
+ padding: 0
17
+
18
+ // List styling mixin with configurable type and position
19
+ @mixin list-style($type: disc, $position: outside)
20
+ list-style-type: $type
21
+ list-style-position: $position
22
+
23
+ // List spacing management
24
+ @mixin list-spacing($item-spacing: 0.25rem, $nested-indent: 1rem)
25
+ li
26
+ padding: $item-spacing 0
27
+
28
+ ul, ol
29
+ margin-left: $nested-indent
30
+ margin-top: $item-spacing
31
+
32
+ // Horizontal/inline list conversion
33
+ @mixin list-horizontal($gap: 0.75rem, $separator: null)
34
+ display: flex
35
+ flex-wrap: wrap
36
+ list-style: none
37
+
38
+ li
39
+ margin-right: $gap
40
+
41
+ &:last-child
42
+ margin-right: 0
43
+
44
+ @if $separator
45
+ &:not(:last-child)::after
46
+ content: $separator
47
+ margin-left: $gap * 0.5
48
+ color: $text-tertiary
49
+
50
+ // Bordered list styling
51
+ @mixin list-bordered($border-color: $border, $radius: 4px)
52
+ border: 1px solid $border-color
53
+ border-radius: $radius
54
+ overflow: hidden
55
+
56
+ li
57
+ padding: map.get($spacers, 2) map.get($spacers, 3)
58
+ border-bottom: 1px solid $border-color
59
+
60
+ &:last-child
61
+ border-bottom: none
62
+
63
+ // Striped list styling
64
+ @mixin list-striped($even-bg: $frame, $odd-bg: transparent)
65
+ li
66
+ &:nth-child(even)
67
+ background-color: $even-bg
68
+
69
+ &:nth-child(odd)
70
+ background-color: $odd-bg
71
+
72
+ // List with custom markers
73
+ @mixin list-custom-marker($marker: '→', $color: $text-secondary, $margin: 0.5rem)
74
+ list-style: none
75
+
76
+ li
77
+ position: relative
78
+ padding-left: calc(#{$margin} + 1em)
79
+
80
+ &::before
81
+ content: $marker
82
+ position: absolute
83
+ left: 0
84
+ color: $color
85
+ font-weight: bold
86
+
87
+ // Nested list with different markers per level
88
+ @mixin list-nested-markers
89
+ // First level
90
+ > li
91
+ list-style-type: disc
92
+
93
+ // Second level
94
+ ul, ol
95
+ li
96
+ list-style-type: circle
97
+
98
+ // Third level
99
+ ul, ol
100
+ li
101
+ list-style-type: square
102
+
103
+ // For ordered lists
104
+ &ol
105
+ > li
106
+ list-style-type: decimal
107
+
108
+ ol
109
+ li
110
+ list-style-type: lower-alpha
111
+
112
+ ol
113
+ li
114
+ list-style-type: lower-roman
115
+
116
+ // Interactive list items
117
+ @mixin list-interactive($hover-bg: $bg-focus, $active-bg: $highlight)
118
+ li
119
+ cursor: pointer
120
+ transition: background-color 0.2s ease-in-out
121
+ border-radius: 4px
122
+
123
+ &:hover
124
+ background-color: $hover-bg
125
+
126
+ &:active
127
+ background-color: $active-bg
128
+
129
+ // List with icons
130
+ @mixin list-with-icons($icon-size: 1rem, $gap: 0.5rem)
131
+ li
132
+ display: flex
133
+ align-items: center
134
+ gap: $gap
135
+
136
+ .list-icon
137
+ width: $icon-size
138
+ height: $icon-size
139
+ flex-shrink: 0
140
+
141
+ // Navigation list styling
142
+ @mixin list-nav($padding: 0.5rem 1rem)
143
+ @include list-reset
144
+
145
+ li
146
+ a
147
+ display: block
148
+ padding: $padding
149
+ text-decoration: none
150
+ border-radius: 4px
151
+ transition: all 0.2s ease-in-out
152
+
153
+ &:hover
154
+ background-color: $bg-focus
155
+ color: $text
156
+
157
+ &:focus
158
+ outline: 2px solid $focus
159
+ outline-offset: 2px
160
+
161
+ // Breadcrumb list styling
162
+ @mixin list-breadcrumb($separator: '/', $separator-color: $text-tertiary)
163
+ @include list-horizontal(0.5rem)
164
+
165
+ li
166
+ display: flex
167
+ align-items: center
168
+
169
+ &:not(:last-child)::after
170
+ content: $separator
171
+ margin-left: 0.5rem
172
+ color: $separator-color
173
+ pointer-events: none
174
+
175
+ // Definition list styling
176
+ @mixin list-definition($term-weight: $font-weight-semibold, $description-indent: 1.5rem)
177
+ dt
178
+ font-weight: $term-weight
179
+ color: $text
180
+ margin-bottom: 0.25rem
181
+
182
+ dd
183
+ margin-left: $description-indent
184
+ margin-bottom: 1rem
185
+ color: $text-secondary
186
+
187
+ &:last-child
188
+ margin-bottom: 0
189
+
190
+ // List with checkboxes/status indicators
191
+ @mixin list-checklist($check-size: 1rem, $check-color: $success)
192
+ @include list-reset
193
+
194
+ li
195
+ display: flex
196
+ align-items: flex-start
197
+ gap: 0.75rem
198
+ padding: 0.25rem 0
199
+
200
+ &::before
201
+ content: '□'
202
+ width: $check-size
203
+ height: $check-size
204
+ flex-shrink: 0
205
+ font-size: $check-size
206
+ line-height: 1
207
+ color: $text-tertiary
208
+
209
+ &.checked::before
210
+ content: '✓'
211
+ color: $check-color
212
+
213
+ // App-style vertical navigation list (matches image: icons + labels + rounded backgrounds)
214
+ @mixin list-app-nav($icon-size: 1.25rem, $padding: 0.75rem 1rem, $gap: 0.5rem, $selected-bg: $highlight, $hover-bg: $bg-focus)
215
+ @include list-reset
216
+
217
+ display: flex
218
+ flex-direction: column
219
+ gap: $gap
220
+
221
+ li
222
+ display: flex
223
+ align-items: center
224
+ gap: $gap
225
+ padding: $padding
226
+ border-radius: 8px
227
+ transition: all 0.2s ease-in-out
228
+ cursor: pointer
229
+
230
+ .list-icon
231
+ width: $icon-size
232
+ height: $icon-size
233
+ flex-shrink: 0
234
+ display: flex
235
+ align-items: center
236
+ justify-content: center
237
+
238
+ .list-label
239
+ flex: 1
240
+ font-size: $font-size-base
241
+ color: $text
242
+
243
+ &:hover
244
+ background-color: $hover-bg
245
+ color: $text
246
+
247
+ .list-icon
248
+ color: $mm
249
+
250
+ &.selected,
251
+ &:active
252
+ background-color: $selected-bg
253
+ color: $background
254
+
255
+ .list-icon
256
+ color: $background
257
+
258
+ &:focus
259
+ outline: 2px solid $focus
260
+ outline-offset: 2px
261
+
262
+ li.profile-item
263
+ border-top: 1px solid $border
264
+ margin-top: auto
265
+ padding-top: 1rem
266
+
267
+ .list-avatar
268
+ width: 2rem
269
+ height: 2rem
270
+ border-radius: 50%
271
+
272
+ .list-label
273
+ font-weight: $font-weight-medium
274
+
275
+ // Icon sidebar list (for vertical menus like mail/contacts in image)
276
+ @mixin list-icon-sidebar($width: 3rem, $icon-size: 1.5rem, $bg: $bg, $active-indicator: true)
277
+ @include list-reset
278
+
279
+ display: flex
280
+ flex-direction: column
281
+ width: $width
282
+ background-color: $bg
283
+ padding: 0.5rem 0
284
+
285
+ li
286
+ position: relative
287
+ padding: 0.75rem
288
+ border-radius: 6px
289
+ cursor: pointer
290
+ transition: background-color 0.2s ease
291
+
292
+ .list-icon
293
+ width: $icon-size
294
+ height: $icon-size
295
+ display: flex
296
+ align-items: center
297
+ justify-content: center
298
+ margin: 0 auto
299
+ color: $text-secondary
300
+
301
+ &:hover
302
+ background-color: rgba($mm, 0.1)
303
+
304
+ .list-icon
305
+ color: $mm
306
+
307
+ @if $active-indicator
308
+ &.active::before
309
+ content: ''
310
+ position: absolute
311
+ left: 0
312
+ top: 50%
313
+ transform: translateY(-50%)
314
+ width: 3px
315
+ height: 24px
316
+ background-color: $mm
317
+ border-radius: 0 2px 2px 0
318
+
319
+ .list-badge
320
+ position: absolute
321
+ top: 0.5rem
322
+ right: 0.5rem
323
+ width: 0.75rem
324
+ height: 0.75rem
325
+ border-radius: 50%
326
+ background-color: $warning
327
+ font-size: 0.5rem
328
+ color: $background
329
+ display: flex
330
+ align-items: center
331
+ justify-content: center
332
+
333
+
334
+ // Compact list for mobile (like the image's tight spacing)
335
+ @mixin list-compact($spacing: 0.5rem)
336
+ @include list-reset
337
+
338
+ li
339
+ padding: $spacing 0.75rem
340
+ margin-bottom: $spacing
341
+
342
+ &:last-child
343
+ margin-bottom: 0
344
+
345
+ // List with notification badges
346
+ @mixin list-with-badge($badge-bg: $warning, $badge-size: 1.25rem)
347
+ li
348
+ position: relative
349
+
350
+ .list-badge
351
+ position: absolute
352
+ top: 0.25rem
353
+ right: 0.25rem
354
+ min-width: $badge-size
355
+ height: $badge-size
356
+ padding: 0 0.35rem
357
+ border-radius: $badge-size * 0.5
358
+ background-color: $badge-bg
359
+ color: $background
360
+ font-size: 0.75rem
361
+ font-weight: $font-weight-semibold
362
+ display: flex
363
+ align-items: center
364
+ justify-content: center
365
+ line-height: 1
366
+
367
+ // Section headers for grouped lists (like ACCOUNT in image)
368
+ @mixin list-section-header($font-size: 0.75rem, $spacing: 1rem, $color: $text-tertiary)
369
+ display: block
370
+ margin-top: $spacing
371
+ margin-bottom: 0.5rem
372
+ padding: 0 1rem
373
+ font-size: $font-size
374
+ font-weight: $font-weight-semibold
375
+ color: $color
376
+ text-transform: uppercase
377
+ letter-spacing: 0.05em
@@ -0,0 +1,121 @@
1
+ @use "sass:math"
2
+
3
+ // Overflow mixins for handling content overflow behaviors
4
+
5
+ // Basic overflow utilities
6
+ @mixin overflow($value)
7
+ overflow: $value
8
+
9
+ @mixin overflow-x($value)
10
+ overflow-x: $value
11
+
12
+ @mixin overflow-y($value)
13
+ overflow-y: $value
14
+
15
+ // Common overflow patterns
16
+ @mixin overflow-hidden
17
+ overflow: hidden
18
+
19
+ @mixin overflow-visible
20
+ overflow: visible
21
+
22
+ @mixin overflow-scroll
23
+ overflow: scroll
24
+
25
+ @mixin overflow-auto
26
+ overflow: auto
27
+
28
+ // Directional overflow patterns
29
+ @mixin overflow-x-hidden
30
+ overflow-x: hidden
31
+
32
+ @mixin overflow-x-visible
33
+ overflow-x: visible
34
+
35
+ @mixin overflow-x-scroll
36
+ overflow-x: scroll
37
+
38
+ @mixin overflow-x-auto
39
+ overflow-x: auto
40
+
41
+ @mixin overflow-y-hidden
42
+ overflow-y: hidden
43
+
44
+ @mixin overflow-y-visible
45
+ overflow-y: visible
46
+
47
+ @mixin overflow-y-scroll
48
+ overflow-y: scroll
49
+
50
+ @mixin overflow-y-auto
51
+ overflow-y: auto
52
+
53
+ // Text overflow utilities
54
+ @mixin text-overflow-ellipsis
55
+ overflow: hidden
56
+ white-space: nowrap
57
+ text-overflow: ellipsis
58
+
59
+ @mixin text-overflow-clip
60
+ overflow: hidden
61
+ white-space: nowrap
62
+ text-overflow: clip
63
+
64
+ // Multi-line text truncation (webkit only)
65
+ @mixin text-overflow-lines($lines: 3)
66
+ display: -webkit-box
67
+ -webkit-line-clamp: $lines
68
+ -webkit-box-orient: vertical
69
+ overflow: hidden
70
+
71
+ // Scrollbar styling utilities
72
+ @mixin custom-scrollbar($width: 8px, $track-color: #f1f1f1, $thumb-color: #888, $thumb-hover-color: #555)
73
+ &::-webkit-scrollbar
74
+ width: $width
75
+ height: $width
76
+
77
+ &::-webkit-scrollbar-track
78
+ background: $track-color
79
+ border-radius: math.div($width, 2)
80
+
81
+ &::-webkit-scrollbar-thumb
82
+ background: $thumb-color
83
+ border-radius: math.div($width, 2)
84
+
85
+ &:hover
86
+ background: $thumb-hover-color
87
+
88
+ // Hide scrollbar while keeping functionality
89
+ @mixin hide-scrollbar
90
+ scrollbar-width: none // Firefox
91
+ -ms-overflow-style: none // IE/Edge
92
+
93
+ &::-webkit-scrollbar
94
+ display: none // Chrome, Safari, Opera
95
+
96
+ // Overlay scrolling (macOS style)
97
+ @mixin overlay-scrolling
98
+ overflow: overlay
99
+
100
+ // Scrolling behavior utilities
101
+ @mixin smooth-scrolling
102
+ scroll-behavior: smooth
103
+
104
+ @mixin instant-scrolling
105
+ scroll-behavior: auto
106
+
107
+ // Container with custom scrollbar
108
+ @mixin scrollable-container($max-height: 300px, $scrollbar-width: 6px)
109
+ max-height: $max-height
110
+ overflow-y: auto
111
+ @include custom-scrollbar($scrollbar-width)
112
+
113
+ // Horizontal scrolling container
114
+ @mixin horizontal-scroll
115
+ overflow-x: auto
116
+ overflow-y: hidden
117
+ white-space: nowrap
118
+
119
+ // Optional: hide scrollbar on mobile
120
+ @media (max-width: 768px)
121
+ @include hide-scrollbar
@@ -0,0 +1,181 @@
1
+ // Position utilities and mixins
2
+ @use '../variables/colors' as colors
3
+
4
+ // Position types
5
+ @mixin position-static
6
+ position: static
7
+
8
+ @mixin position-relative
9
+ position: relative
10
+
11
+ @mixin position-absolute
12
+ position: absolute
13
+
14
+ @mixin position-fixed
15
+ position: fixed
16
+
17
+ @mixin position-sticky
18
+ position: sticky
19
+
20
+ // Position with coordinates
21
+ @mixin absolute($top: null, $right: null, $bottom: null, $left: null)
22
+ position: absolute
23
+ @if $top != null
24
+ top: $top
25
+ @if $right != null
26
+ right: $right
27
+ @if $bottom != null
28
+ bottom: $bottom
29
+ @if $left != null
30
+ left: $left
31
+
32
+ @mixin fixed($top: null, $right: null, $bottom: null, $left: null)
33
+ position: fixed
34
+ @if $top != null
35
+ top: $top
36
+ @if $right != null
37
+ right: $right
38
+ @if $bottom != null
39
+ bottom: $bottom
40
+ @if $left != null
41
+ left: $left
42
+
43
+ @mixin relative($top: null, $right: null, $bottom: null, $left: null)
44
+ position: relative
45
+ @if $top != null
46
+ top: $top
47
+ @if $right != null
48
+ right: $right
49
+ @if $bottom != null
50
+ bottom: $bottom
51
+ @if $left != null
52
+ left: $left
53
+
54
+ @mixin sticky($top: null, $right: null, $bottom: null, $left: null)
55
+ position: sticky
56
+ @if $top != null
57
+ top: $top
58
+ @if $right != null
59
+ right: $right
60
+ @if $bottom != null
61
+ bottom: $bottom
62
+ @if $left != null
63
+ left: $left
64
+
65
+ // Common positioning patterns
66
+ @mixin absolute-center
67
+ position: absolute
68
+ top: 50%
69
+ left: 50%
70
+ transform: translate(-50%, -50%)
71
+
72
+ @mixin absolute-center-x
73
+ position: absolute
74
+ left: 50%
75
+ transform: translateX(-50%)
76
+
77
+ @mixin absolute-center-y
78
+ position: absolute
79
+ top: 50%
80
+ transform: translateY(-50%)
81
+
82
+ @mixin absolute-fill
83
+ position: absolute
84
+ top: 0
85
+ right: 0
86
+ bottom: 0
87
+ left: 0
88
+
89
+ @mixin fixed-fill
90
+ position: fixed
91
+ top: 0
92
+ right: 0
93
+ bottom: 0
94
+ left: 0
95
+
96
+ // Corner positioning
97
+ @mixin absolute-top-left($offset: 0)
98
+ position: absolute
99
+ top: $offset
100
+ left: $offset
101
+
102
+ @mixin absolute-top-right($offset: 0)
103
+ position: absolute
104
+ top: $offset
105
+ right: $offset
106
+
107
+ @mixin absolute-bottom-left($offset: 0)
108
+ position: absolute
109
+ bottom: $offset
110
+ left: $offset
111
+
112
+ @mixin absolute-bottom-right($offset: 0)
113
+ position: absolute
114
+ bottom: $offset
115
+ right: $offset
116
+
117
+ // Z-index utilities
118
+ @mixin z-index($value)
119
+ z-index: $value
120
+
121
+ // Common z-index layers
122
+ @mixin z-behind
123
+ z-index: -1
124
+
125
+ @mixin z-normal
126
+ z-index: 0
127
+
128
+ @mixin z-menu-backdrop
129
+ z-index: 80
130
+
131
+ @mixin z-frame
132
+ z-index: 50
133
+
134
+ @mixin z-menu-details
135
+ z-index: 90
136
+
137
+ @mixin z-menu
138
+ z-index: 100
139
+
140
+ @mixin z-dropdown
141
+ z-index: 1000
142
+
143
+ @mixin z-sticky
144
+ z-index: 1020
145
+
146
+ @mixin z-fixed
147
+ z-index: 1030
148
+
149
+ @mixin z-modal
150
+ z-index: 1040
151
+
152
+ @mixin z-popover
153
+ z-index: 1060
154
+
155
+ @mixin z-tooltip
156
+ z-index: 1070
157
+
158
+ @mixin z-top
159
+ z-index: 9999
160
+
161
+ =generate-float-classes
162
+
163
+ .float-left
164
+ float: left
165
+
166
+ .float-right
167
+ float: right
168
+
169
+ .float-none
170
+ float: none
171
+
172
+ // Reusable premium sticky header with glassmorphism, shadows, and smooth transitions
173
+ @mixin premium-sticky-header($top: -1px, $z-index: 100)
174
+ position: sticky
175
+ top: $top
176
+ z-index: $z-index
177
+ background: rgba(255, 255, 255, 0.9)
178
+ backdrop-filter: blur(12px)
179
+ border-bottom: 1px solid colors.$backdrop-border
180
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04)
181
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1)