@fest-lib/veela 0.1.20 → 1.0.2

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 (141) hide show
  1. package/dist/veela.js +4 -33
  2. package/package.json +9 -2
  3. package/src/scss/_layers.scss +6 -34
  4. package/src/scss/basic/{misc/_core-layout.scss → _core-layout.scss} +1 -1
  5. package/src/scss/basic/_layers.scss +1 -0
  6. package/src/scss/basic/{misc/_layout.scss → _layout.scss} +15 -15
  7. package/src/scss/basic/{misc/_normalize.scss → _normalize.scss} +5 -103
  8. package/src/scss/basic/{misc/_states.scss → _states.scss} +2 -2
  9. package/src/scss/{core/misc → basic}/_utilities.scss +4 -4
  10. package/src/scss/basic/design/_keyframes.scss +1 -1
  11. package/src/scss/basic/design/_shapes.scss +1 -1
  12. package/src/scss/basic/index.scss +14 -16
  13. package/src/scss/chrome.scss +2 -0
  14. package/src/scss/core/_color-mod.scss +24 -0
  15. package/src/scss/core/{misc/_color-properties.scss → _color-properties.scss} +1 -1
  16. package/src/scss/core/{misc/_tokens.scss → _tokens.scss} +10 -93
  17. package/src/scss/core/index.scss +13 -1
  18. package/src/scss/index.scss +7 -2
  19. package/src/scss/index.ts +1 -1
  20. package/src/scss/{core/interact → interact}/_viewport.scss +1 -1
  21. package/src/scss/interact/index.scss +18 -0
  22. package/src/scss/theme/_effects.scss +60 -0
  23. package/src/scss/theme/index.scss +8 -0
  24. package/src/scss/{advanced/index.ts → theme/loader.ts} +3 -4
  25. package/src/scss/ui/_bar.scss +268 -0
  26. package/src/scss/ui/_buttons.scss +215 -0
  27. package/src/scss/ui/_chrome-mixins.scss +104 -0
  28. package/src/scss/ui/_color.scss +3 -0
  29. package/src/scss/ui/_colorize.scss +5 -0
  30. package/src/scss/{advanced/layout → ui}/_content.scss +0 -1
  31. package/src/scss/ui/_core-layout.scss +4 -0
  32. package/src/scss/ui/_essentials-options.scss +2 -0
  33. package/src/scss/ui/_essentials.scss +707 -0
  34. package/src/scss/ui/_explorer-content.scss +417 -0
  35. package/src/scss/ui/_explorer.scss +274 -0
  36. package/src/scss/ui/_forms-bare-host-elements.scss +25 -0
  37. package/src/scss/ui/_forms-options.scss +2 -0
  38. package/src/scss/ui/_forms.scss +279 -0
  39. package/src/scss/ui/_forms_misc.scss +201 -0
  40. package/src/scss/ui/_gridbox.scss +298 -0
  41. package/src/scss/ui/_home-host.scss +192 -0
  42. package/src/scss/ui/_index.scss +23 -0
  43. package/src/scss/ui/_launcher-typography.scss +31 -0
  44. package/src/scss/ui/_layers.scss +48 -0
  45. package/src/scss/ui/_layout.scss +3 -0
  46. package/src/scss/ui/_markdown.scss +1634 -0
  47. package/src/scss/ui/_modal.scss +309 -0
  48. package/src/scss/ui/_motion.scss +3 -0
  49. package/src/scss/ui/_native-host-button-chrome.scss +31 -0
  50. package/src/scss/ui/_normalize.scss +5 -0
  51. package/src/scss/ui/_orientation-functions.scss +273 -0
  52. package/src/scss/ui/_orientbox.scss +97 -0
  53. package/src/scss/ui/_scrollbar.scss +257 -0
  54. package/src/scss/ui/_shared-overlays.scss +16 -0
  55. package/src/scss/ui/_shared.scss +4 -0
  56. package/src/scss/ui/_sidebar.scss +478 -0
  57. package/src/scss/ui/_speed-dial.scss +47 -0
  58. package/src/scss/ui/_states.scss +4 -0
  59. package/src/scss/ui/_tables.scss +28 -0
  60. package/src/scss/ui/_tabs.scss +405 -0
  61. package/src/scss/ui/_taskbar.scss +215 -0
  62. package/src/scss/ui/_toolbars.scss +167 -0
  63. package/src/scss/ui/_typography.scss +11 -0
  64. package/src/scss/ui/_utils.scss +8 -0
  65. package/src/scss/ui/_viewport.scss +470 -0
  66. package/src/scss/ui/_window-frame.scss +658 -0
  67. package/src/scss/ui/components/app-menu.scss +817 -0
  68. package/src/scss/ui/components/appearance-desktop.scss +14 -0
  69. package/src/scss/ui/components/appearance-mobile.scss +14 -0
  70. package/src/scss/ui/components/calendar/flyout.scss +194 -0
  71. package/src/scss/ui/components/calendar/index.scss +627 -0
  72. package/src/scss/ui/components/explorer-settings.scss +232 -0
  73. package/src/scss/ui/components/file-manager-content.scss +2 -0
  74. package/src/scss/ui/components/file-manager.scss +2 -0
  75. package/src/scss/ui/components/launcher-icon-mask.scss +34 -0
  76. package/src/scss/ui/components/navbar.scss +133 -0
  77. package/src/scss/ui/components/quick-settings.scss +321 -0
  78. package/src/scss/ui/components/scrollframe.scss +58 -0
  79. package/src/scss/ui/components/slider.scss +188 -0
  80. package/src/scss/ui/components/speed-dial.scss +2288 -0
  81. package/src/scss/ui/components/statusbar.scss +255 -0
  82. package/src/scss/ui/components/task.scss +118 -0
  83. package/src/scss/ui/components/taskbar.scss +514 -0
  84. package/src/scss/ui/components/text.scss +241 -0
  85. package/src/scss/ui/components/window.scss +601 -0
  86. package/src/scss/ui/home-host-apply.scss +10 -0
  87. package/src/scss/ui/index.scss +7 -0
  88. package/src/scss/ui/native-controls.scss +17 -0
  89. package/src/scss/advanced/_index.scss +0 -0
  90. package/src/scss/advanced/animation/_motion.scss +0 -323
  91. package/src/scss/advanced/color/_color.scss +0 -328
  92. package/src/scss/advanced/color/_colorize.scss +0 -325
  93. package/src/scss/advanced/design/_design-tokens.scss +0 -118
  94. package/src/scss/advanced/design/_effects.scss +0 -275
  95. package/src/scss/advanced/design/_shadow.scss +0 -359
  96. package/src/scss/advanced/design/_surfaces.scss +0 -76
  97. package/src/scss/advanced/effects/_animations.scss +0 -124
  98. package/src/scss/advanced/effects/_shadows.scss +0 -50
  99. package/src/scss/advanced/font/_typography.scss +0 -601
  100. package/src/scss/advanced/index.scss +0 -11
  101. package/src/scss/advanced/layout/_index.scss +0 -5
  102. package/src/scss/advanced/layout/_normalize.scss +0 -543
  103. package/src/scss/advanced/layout/_shared-overlays.scss +0 -162
  104. package/src/scss/advanced/md3/_md3.scss +0 -506
  105. package/src/scss/advanced/md3/_utils.scss +0 -114
  106. package/src/scss/advanced/misc/_config.scss +0 -119
  107. package/src/scss/advanced/misc/_initials.scss +0 -298
  108. package/src/scss/advanced/misc/_mixins.scss +0 -179
  109. package/src/scss/advanced/misc/_rendering.scss +0 -82
  110. package/src/scss/advanced/misc/_tokens.scss +0 -74
  111. package/src/scss/advanced/theme/_shared.scss +0 -232
  112. package/src/scss/advanced/theme/_states.scss +0 -332
  113. package/src/scss/advanced/theme/_variants.scss +0 -354
  114. package/src/scss/advanced/tokens/_material-color.scss +0 -120
  115. package/src/scss/advanced/tokens/_variables.scss +0 -171
  116. package/src/scss/basic/misc/_index.scss +0 -18
  117. package/src/scss/basic/misc/_mixins.scss +0 -179
  118. package/src/scss/basic/misc/_queries.scss +0 -34
  119. package/src/scss/basic/misc/_tokens.scss +0 -78
  120. package/src/scss/basic/misc/_veela.scss +0 -12
  121. package/src/scss/core/misc/_index.scss +0 -6
  122. /package/src/scss/basic/{misc/_motion.scss → _motion.scss} +0 -0
  123. /package/src/scss/{advanced/misc → basic}/_queries.scss +0 -0
  124. /package/src/scss/basic/{misc/_shared.scss → _shared.scss} +0 -0
  125. /package/src/scss/core/{misc/_config.scss → _config.scss} +0 -0
  126. /package/src/scss/core/{misc/_functions.scss → _functions.scss} +0 -0
  127. /package/src/scss/core/{misc/_icons.scss → _icons.scss} +0 -0
  128. /package/src/scss/core/{misc/_layout.scss → _layout.scss} +0 -0
  129. /package/src/scss/core/{misc/_mixins.scss → _mixins.scss} +0 -0
  130. /package/src/scss/core/{misc/_properties.scss → _properties.scss} +0 -0
  131. /package/src/scss/core/{misc/_utils.scss → _utils.scss} +0 -0
  132. /package/src/scss/{core/interact → interact}/_draggable.scss +0 -0
  133. /package/src/scss/{core/interact → interact}/_position.scss +0 -0
  134. /package/src/scss/{core/interact → interact}/_ps-anchor.scss +0 -0
  135. /package/src/scss/{core/interact → interact}/_ps-centered.scss +0 -0
  136. /package/src/scss/{core/interact → interact}/_ps-cursor.scss +0 -0
  137. /package/src/scss/{core/interact → interact}/_ps-draggable.scss +0 -0
  138. /package/src/scss/{core/interact → interact}/_ps-mechanic.scss +0 -0
  139. /package/src/scss/{core/interact → interact}/_ps-properties.scss +0 -0
  140. /package/src/scss/{core/interact → interact}/_ps-resizable.scss +0 -0
  141. /package/src/scss/{core/interact → interact}/_resizable.scss +0 -0
@@ -0,0 +1,309 @@
1
+ @use "../basic/layout" as layout;
2
+ @use "./chrome-mixins" as ui;
3
+
4
+ //
5
+ @mixin modal {
6
+
7
+ //
8
+ .rs-modal-backdrop {
9
+ position: fixed;
10
+ inset: 0;
11
+ display: grid;
12
+ place-content: center;
13
+ place-items: center;
14
+ padding: var(--space-xl);
15
+ z-index: var(--z-modal-backdrop, 400);
16
+ line-height: normal;
17
+ box-sizing: border-box;
18
+ max-inline-size: min(100cqi, 100dvi);
19
+ max-block-size: min(100cqb, 100dvb);
20
+ overflow: hidden;
21
+ perspective: 1000;
22
+
23
+ @include ui.glass-backdrop();
24
+ }
25
+
26
+ //
27
+ ui-modal, .modal-form {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: var(--gap-xs);
31
+ box-sizing: border-box;
32
+ overflow: hidden;
33
+
34
+ // Responsive sizing
35
+ inline-size: fit-content;
36
+ min-inline-size: min(calc(100cqi - 1rem), 40rem);
37
+ max-inline-size: stretch;
38
+
39
+ block-size: max-content;
40
+ min-block-size: max(calc(90dvb - 1rem), 20rem);
41
+ max-block-size: max(95dvb, 50rem);
42
+
43
+ line-height: normal;
44
+ background-color: var(--color-surface, var(--surface-color));
45
+ color: var(--color-on-surface, var(--on-surface-color));
46
+ padding: var(--padding-lg);
47
+ padding-block-end: var(--space-md);
48
+ border-radius: var(--radius-lg);
49
+
50
+ backface-visibility: hidden;
51
+ transform: translateZ(0px);
52
+ perspective: 1000;
53
+ content-visibility: auto;
54
+ contain: strict;
55
+
56
+ // Mobile overrides
57
+ @media (max-width: 600px) {
58
+ inline-size: fit-content;
59
+ min-inline-size: min(calc(100cqi - 1rem), 40rem);
60
+ max-inline-size: stretch;
61
+
62
+ //
63
+ min-block-size: max(calc(90dvb - 1rem), 20rem);
64
+ max-block-size: max(95dvb, 50rem);
65
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0; // If bottom sheet
66
+ // But generic modal:
67
+ border-radius: var(--radius-lg);
68
+ padding: var(--padding-md);
69
+ margin: 0;
70
+ }
71
+
72
+ //
73
+ @include ui.tonal-surface(surface-container-low, var(--surface-opacity-subtle), var(--radius-md));
74
+ @include ui.vstack(var(--space-lg));
75
+ @include ui.container-inline;
76
+ @include layout.scrollable("y");
77
+
78
+ //
79
+ &, & :where(button, input, textarea, select) {
80
+ touch-action: pan-y;
81
+ }
82
+
83
+ //
84
+ &, & :where(*) { box-sizing: border-box; touch-action: pan-y; }
85
+ &, &:focus-visible, &:focus { overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; pointer-events: auto; touch-action: pan-y; }
86
+
87
+ & {
88
+ contain: strict;
89
+ content-visibility: auto;
90
+ }
91
+
92
+ //
93
+ .modal-title {
94
+ margin: 0;
95
+ line-height: 1.2;
96
+ place-content: center;
97
+ place-items: center;
98
+ text-align: center;
99
+
100
+ //
101
+ justify-content: safe center;
102
+ justify-items: safe center;
103
+
104
+ //
105
+ inline-size: stretch;
106
+ min-inline-size: 0px;
107
+
108
+ //
109
+ @include ui.text-heading("headline-small", center);
110
+ }
111
+
112
+ //
113
+ .modal-description {
114
+ margin: 0;
115
+ background: transparent;
116
+ place-content: center;
117
+ place-items: center;
118
+ text-align: center;
119
+
120
+ //
121
+ justify-content: safe center;
122
+ justify-items: safe center;
123
+
124
+ //
125
+ inline-size: stretch;
126
+ min-inline-size: 0px;
127
+
128
+ //
129
+ @include ui.text-body("body-medium");
130
+ }
131
+
132
+ //
133
+ .modal-section {
134
+ @include ui.section-stack(var(--space-sm));
135
+
136
+ //
137
+ padding-block: var(--space-sm);
138
+ background: transparent;
139
+ overflow: visible;
140
+ block-size: max-content;
141
+
142
+ //
143
+ inline-size: stretch;
144
+ min-inline-size: 0px;
145
+
146
+ //
147
+ grid-template-columns: minmax(0px, 1fr);
148
+ place-content: center;
149
+ place-items: center;
150
+
151
+ //
152
+ &:last-of-type {
153
+ border-block-end: none;
154
+ }
155
+
156
+ //
157
+ .modal-section-title {
158
+ margin: 0;
159
+ place-content: center;
160
+ place-items: center;
161
+ text-align: center;
162
+
163
+ //
164
+ inline-size: stretch;
165
+ min-inline-size: 0px;
166
+
167
+ //
168
+ justify-content: safe center;
169
+ justify-items: safe center;
170
+
171
+ //
172
+ @include ui.text-label("title-small", true);
173
+ }
174
+
175
+ //
176
+ .modal-section-fields {
177
+ @include ui.field-stack(var(--space-sm));
178
+ }
179
+ }
180
+
181
+ //
182
+ .modal-actions {
183
+ @include ui.inline-toolbar(var(--space-md));
184
+ justify-content: space-between;
185
+ inline-size: stretch;
186
+ min-inline-size: 0px;
187
+ overflow: visible;
188
+ background: transparent;
189
+ border: none 0px transparent;
190
+ outline: none 0px transparent;
191
+ flex-wrap: nowrap;
192
+
193
+ //
194
+ .modal-actions-right {
195
+ @include ui.inline-toolbar(var(--space-sm));
196
+ }
197
+ }
198
+
199
+ //
200
+ .modal-fields {
201
+ inline-size: stretch;
202
+ min-inline-size: fit-content;
203
+ max-inline-size: stretch;
204
+ padding-inline: var(--space-sm);
205
+ max-block-size: stretch;
206
+ block-size: fit-content;
207
+ overflow-y: auto;
208
+ overflow-x: hidden;
209
+ display: grid;
210
+ pointer-events: auto;
211
+
212
+ //
213
+ grid-template-columns: minmax(0px, 1fr);
214
+ grid-auto-rows: minmax(0px, max-content);
215
+
216
+ //
217
+ @include ui.field-stack(var(--space-md));
218
+ @include ui.container-inline;
219
+ @include ui.scrollbars(6px, var(--surface-opacity-emphasis));
220
+
221
+ //
222
+ text-align: start;
223
+ justify-content: start;
224
+ justify-items: start;
225
+ pointer-events: auto;
226
+
227
+ //
228
+ .contacts-group, .modal-field {
229
+ display: flex;
230
+ flex-direction: column;
231
+ gap: var(--space-sm);
232
+
233
+ //
234
+ place-content: center;
235
+ place-items: center;
236
+
237
+ //
238
+ align-content: safe center;
239
+ align-items: safe center;
240
+
241
+ //
242
+ inline-size: stretch;
243
+ min-inline-size: fit-content;
244
+ max-inline-size: stretch;
245
+
246
+ //
247
+ pointer-events: auto;
248
+
249
+ //
250
+ label {
251
+ text-align: start;
252
+ align-content: start;
253
+ align-items: start;
254
+ align-self: start;
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+ /**
262
+ * Native-first helper styles. Kept separate from `modal()` because legacy
263
+ * `ui-modal` rules use containment that is unsafe for focusable dialog content.
264
+ */
265
+ @mixin transient-modal {
266
+ dialog.ui-modal-dialog {
267
+ inline-size: min(100% - 2rem, 36rem);
268
+ max-inline-size: calc(100dvi - 2rem);
269
+ max-block-size: calc(100dvb - 2rem);
270
+ margin: auto;
271
+ padding: 0;
272
+ border: 1px solid color-mix(in oklab, CanvasText 18%, transparent);
273
+ border-radius: var(--radius-lg, 1rem);
274
+ background: var(--modal-bg, Canvas);
275
+ color: var(--modal-fg, CanvasText);
276
+ box-shadow: var(--modal-shadow, 0 20px 60px rgb(0 0 0 / 0.42));
277
+ overflow: visible;
278
+
279
+ &::backdrop {
280
+ background: var(--modal-backdrop-bg, rgb(0 0 0 / 0.58));
281
+ backdrop-filter: blur(4px);
282
+ }
283
+ }
284
+
285
+ .ui-modal-backdrop {
286
+ position: fixed;
287
+ inset: 0;
288
+ z-index: var(--ui-modal-fallback-z, 2147483646);
289
+ display: grid;
290
+ place-items: center;
291
+ padding: 1rem;
292
+ background: var(--modal-backdrop-bg, rgb(0 0 0 / 0.58));
293
+ backdrop-filter: blur(4px);
294
+ pointer-events: auto;
295
+ }
296
+
297
+ .ui-modal-panel {
298
+ inline-size: min(100%, 36rem);
299
+ max-block-size: calc(100dvb - 2rem);
300
+ overflow: auto;
301
+ box-sizing: border-box;
302
+ padding: var(--modal-padding, 1.25rem);
303
+ border-radius: var(--modal-radius, var(--radius-lg, 1rem));
304
+ background: var(--modal-bg, Canvas);
305
+ color: var(--modal-fg, CanvasText);
306
+ box-shadow: var(--modal-shadow, 0 20px 60px rgb(0 0 0 / 0.42));
307
+ pointer-events: auto;
308
+ }
309
+ }
@@ -0,0 +1,3 @@
1
+ @mixin transition($property: all, $transition: var(--transition-base, 160ms ease)) {
2
+ transition: #{$property} #{$transition};
3
+ }
@@ -0,0 +1,31 @@
1
+ // Shared native `<button>` chrome (host opt-in patch uses this without affecting `.btn` twice).
2
+ @mixin essentials-native-host-button-chrome-base() {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ gap: var(--space-sm);
7
+ padding-block: 0px;
8
+ padding-inline: 0px;
9
+ font-size: var(--font-size-sm);
10
+ font-weight: 500;
11
+ border-radius: var(--radius-md);
12
+ background: var(--color-bg-alt);
13
+ color: var(--color-fg);
14
+ border: 1px solid var(--color-border);
15
+ cursor: pointer;
16
+ transition: all var(--transition-fast);
17
+
18
+ &:hover:not(:disabled) {
19
+ background: var(--color-border);
20
+ }
21
+
22
+ &:focus-visible {
23
+ outline: 2px solid var(--color-primary);
24
+ outline-offset: 2px;
25
+ }
26
+
27
+ &:disabled {
28
+ opacity: 0.5;
29
+ cursor: not-allowed;
30
+ }
31
+ }
@@ -0,0 +1,5 @@
1
+ /*
2
+ * MAP:modules/projects/veela.css/src/scss/basic/_normalize.scss
3
+ * WHY: canonical UI source resolves the flattened base entry directly.
4
+ */
5
+ @forward "../basic/normalize";
@@ -0,0 +1,273 @@
1
+ @use "sass:string";
2
+ @use "../core/functions" as func;
3
+
4
+ //
5
+ @function css-rem($value, $mod) {
6
+ @return string.unquote("rem(#{$value}, #{$mod})");
7
+ }
8
+
9
+ //
10
+ @function css-mod($value, $mod) {
11
+ @return string.unquote("mod(#{$value}, #{$mod})");
12
+ }
13
+
14
+
15
+
16
+ //
17
+ @include func.make-func("@function --get-oriented-size-num(\
18
+ --orient <number>: 0, \
19
+ --osx <number>: 0, \
20
+ --osy <number>: 0, \
21
+ --axis-to-return <number>: 0 \
22
+ ) returns <number>") {
23
+ --go-orient: round(nearest, var(--orient, 0), 1);
24
+ --go-axis: clamp(0, round(nearest, var(--axis-to-return, 0), 1), 1);
25
+ --go-axis-inline: calc(1 - var(--go-axis, 0));
26
+ --go-axis-block: var(--go-axis, 0);
27
+
28
+ --go-swap-raw: #{css-mod(var(--go-orient), 2)};
29
+ --go-swap: clamp(0, round(nearest, var(--go-swap-raw), 1), 1);
30
+ --go-swap-inline: calc(1 - var(--go-swap, 0));
31
+
32
+ --go-primary: var(--osx, 0);
33
+ --go-secondary: var(--osy, 0);
34
+
35
+ --go-inline: calc(
36
+ var(--go-primary) * var(--go-swap-inline) +
37
+ var(--go-secondary) * var(--go-swap)
38
+ );
39
+ --go-block: calc(
40
+ var(--go-secondary) * var(--go-swap-inline) +
41
+ var(--go-primary) * var(--go-swap)
42
+ );
43
+
44
+ result: calc(
45
+ var(--go-inline) * var(--go-axis-inline) +
46
+ var(--go-block) * var(--go-axis-block)
47
+ );
48
+ }
49
+
50
+
51
+
52
+ //
53
+ @include func.make-func("@function --get-oriented-size(\
54
+ --orient <number>: 0, \
55
+ --osx <length-percentage>: 0px, \
56
+ --osy <length-percentage>: 0px, \
57
+ --axis-to-return <number>: 0 \
58
+ ) returns <length-percentage>") {
59
+ --go-orient: mod(round(nearest, var(--orient, 0), 1), 4);
60
+ --go-axis: clamp(0, round(nearest, var(--axis-to-return, 0), 1), 1);
61
+ --go-axis-inline: calc(1 - var(--go-axis, 0));
62
+ --go-axis-block: var(--go-axis, 0);
63
+
64
+ --go-swap-raw: #{css-mod(var(--go-orient, 0), 2)};
65
+ --go-swap: clamp(0, round(nearest, var(--go-swap-raw, 0), 1), 1);
66
+ --go-swap-inline: calc(1 - var(--go-swap, 0));
67
+
68
+ --go-primary: var(--osx, 0px);
69
+ --go-secondary: var(--osy, 0px);
70
+
71
+ --go-inline: calc(var(--go-primary) * var(--go-swap-inline) + var(--go-secondary) * var(--go-swap));
72
+ --go-block: calc(var(--go-secondary) * var(--go-swap-inline) + var(--go-primary) * var(--go-swap));
73
+
74
+ result: calc(
75
+ var(--go-inline) * var(--go-axis-inline) +
76
+ var(--go-block) * var(--go-axis-block)
77
+ );
78
+ }
79
+
80
+
81
+
82
+ //
83
+ @include func.make-func("@function --get-oriented-vector(\
84
+ --orient <number>: 0, \
85
+ --ocx <length-percentage>: 0px, \
86
+ --ocy <length-percentage>: 0px, \
87
+ --axis-to-return <number>: 0 \
88
+ ) returns <length-percentage>") {
89
+ --go-orient: mod(round(nearest, var(--orient, 0), 1), 4);
90
+ --go-axis: clamp(0, round(nearest, var(--axis-to-return, 0), 1), 1);
91
+ --go-axis-inline: calc(1 - var(--go-axis, 0));
92
+ --go-axis-block: var(--go-axis, 0);
93
+
94
+ --go-swap-raw: #{css-mod(var(--go-orient, 0), 2)};
95
+ --go-swap: clamp(0, round(nearest, var(--go-swap-raw, 0), 1), 1);
96
+ --go-swap-inline: calc(1 - var(--go-swap, 0));
97
+
98
+ --go-primary-direct: var(--ocx, 0px);
99
+ --go-secondary-direct: var(--ocy, 0px);
100
+
101
+ --go-inline-direct: calc(
102
+ var(--go-primary-direct) * var(--go-swap-inline) +
103
+ var(--go-secondary-direct) * var(--go-swap)
104
+ );
105
+ --go-block-direct: calc(
106
+ var(--go-secondary-direct) * var(--go-swap-inline) +
107
+ var(--go-primary-direct) * var(--go-swap)
108
+ );
109
+
110
+ //
111
+ --go-inline-inverted: calc(0px - var(--go-inline-direct));
112
+ --go-block-inverted: calc(0px - var(--go-block-direct));
113
+ --go-rev-inline: clamp(0, calc(var(--go-orient) - 1), 1);
114
+
115
+ //
116
+ --go-rev-block: clamp(0, calc((1 - abs(calc(var(--go-orient) - 1.5))) * 2), 1);
117
+ --go-inline: calc(var(--go-inline-direct) * (1 - var(--go-rev-inline)) + var(--go-inline-inverted) * var(--go-rev-inline));
118
+ --go-block: calc(var(--go-block-direct) * (1 - var(--go-rev-block)) + var(--go-block-inverted) * var(--go-rev-block));
119
+
120
+ //
121
+ result: calc(
122
+ var(--go-inline) * var(--go-axis-inline) +
123
+ var(--go-block) * var(--go-axis-block)
124
+ );
125
+ }
126
+
127
+
128
+
129
+ //
130
+ @include func.make-func("@function --get-oriented-coord-num(\
131
+ --orient <number>: 0, \
132
+ --ocx <number>: 0, \
133
+ --ocy <number>: 0, \
134
+ --osx <number>: 0, \
135
+ --osy <number>: 0, \
136
+ --axis-to-return <number>: 0 \
137
+ ) returns <number>") {
138
+ --go-orient: mod(round(nearest, var(--orient, 0), 1), 4);
139
+ --go-axis: clamp(0, round(nearest, var(--axis-to-return, 0), 1), 1);
140
+ --go-axis-inline: calc(1 - var(--go-axis, 0));
141
+ --go-axis-block: var(--go-axis, 0);
142
+
143
+ --go-swap-raw: #{css-mod(var(--go-orient, 0), 2)};
144
+ --go-swap: clamp(0, round(nearest, var(--go-swap-raw, 0), 1), 1);
145
+ --go-swap-inline: calc(1 - var(--go-swap, 0));
146
+
147
+ --go-primary-direct: var(--ocx, 0);
148
+ --go-secondary-direct: var(--ocy, 0);
149
+ --go-primary-size: var(--osx, 0);
150
+ --go-secondary-size: var(--osy, 0);
151
+
152
+ --go-inline-direct: calc(
153
+ var(--go-primary-direct) * var(--go-swap-inline) +
154
+ var(--go-secondary-direct) * var(--go-swap)
155
+ );
156
+ --go-block-direct: calc(
157
+ var(--go-secondary-direct) * var(--go-swap-inline) +
158
+ var(--go-primary-direct) * var(--go-swap)
159
+ );
160
+
161
+ --go-inline-size: calc(
162
+ var(--go-primary-size) * var(--go-swap-inline) +
163
+ var(--go-secondary-size) * var(--go-swap)
164
+ );
165
+ --go-block-size: calc(
166
+ var(--go-secondary-size) * var(--go-swap-inline) +
167
+ var(--go-primary-size) * var(--go-swap)
168
+ );
169
+
170
+ --go-inline-inverted: calc(
171
+ var(--go-inline-size, calc(var(--go-inline-direct) + var(--go-inline-direct))) -
172
+ var(--go-inline-direct)
173
+ );
174
+ --go-block-inverted: calc(
175
+ var(--go-block-size, calc(var(--go-block-direct) + var(--go-block-direct))) -
176
+ var(--go-block-direct)
177
+ );
178
+
179
+ --go-rev-inline: clamp(0, calc(var(--go-orient) - 1), 1);
180
+ --go-rev-block: clamp(
181
+ 0,
182
+ calc((1 - abs(calc(var(--go-orient) - 1.5))) * 2),
183
+ 1
184
+ );
185
+
186
+ --go-inline: calc(
187
+ var(--go-inline-direct) * (1 - var(--go-rev-inline)) +
188
+ var(--go-inline-inverted) * var(--go-rev-inline)
189
+ );
190
+ --go-block: calc(
191
+ var(--go-block-direct) * (1 - var(--go-rev-block)) +
192
+ var(--go-block-inverted) * var(--go-rev-block)
193
+ );
194
+
195
+ result: calc(
196
+ var(--go-inline) * var(--go-axis-inline) +
197
+ var(--go-block) * var(--go-axis-block)
198
+ );
199
+ }
200
+
201
+
202
+
203
+ //
204
+ @include func.make-func("@function --get-oriented-coordinate(\
205
+ --orient <number>: 0, \
206
+ --ocx <length-percentage>: 0px, \
207
+ --ocy <length-percentage>: 0px, \
208
+ --osx <length-percentage>: 0px, \
209
+ --osy <length-percentage>: 0px, \
210
+ --axis-to-return <number>: 0 \
211
+ ) returns <length-percentage>") {
212
+ --go-orient: mod(round(nearest, var(--orient, 0), 1), 4);
213
+ --go-axis: clamp(0, round(nearest, var(--axis-to-return, 0), 1), 1);
214
+ --go-axis-inline: calc(1 - var(--go-axis, 0));
215
+ --go-axis-block: var(--go-axis, 0);
216
+
217
+ --go-swap-raw: #{css-mod(var(--go-orient, 0), 2)};
218
+ --go-swap: clamp(0, round(nearest, var(--go-swap-raw, 0), 1), 1);
219
+ --go-swap-inline: calc(1 - var(--go-swap, 0));
220
+
221
+ --go-primary-direct: var(--ocx, 0px);
222
+ --go-secondary-direct: var(--ocy, 0px);
223
+ --go-primary-size: var(--osx, 0px);
224
+ --go-secondary-size: var(--osy, 0px);
225
+
226
+ --go-inline-direct: calc(
227
+ var(--go-primary-direct) * var(--go-swap-inline) +
228
+ var(--go-secondary-direct) * var(--go-swap)
229
+ );
230
+ --go-block-direct: calc(
231
+ var(--go-secondary-direct) * var(--go-swap-inline) +
232
+ var(--go-primary-direct) * var(--go-swap)
233
+ );
234
+
235
+ --go-inline-size: calc(
236
+ var(--go-primary-size) * var(--go-swap-inline) +
237
+ var(--go-secondary-size) * var(--go-swap)
238
+ );
239
+ --go-block-size: calc(
240
+ var(--go-secondary-size) * var(--go-swap-inline) +
241
+ var(--go-primary-size) * var(--go-swap)
242
+ );
243
+
244
+ --go-inline-inverted: calc(
245
+ var(--go-inline-size, calc(var(--go-inline-direct) + var(--go-inline-direct))) -
246
+ var(--go-inline-direct)
247
+ );
248
+ --go-block-inverted: calc(
249
+ var(--go-block-size, calc(var(--go-block-direct) + var(--go-block-direct))) -
250
+ var(--go-block-direct)
251
+ );
252
+
253
+ --go-rev-inline: clamp(0, calc(var(--go-orient) - 1), 1);
254
+ --go-rev-block: clamp(
255
+ 0,
256
+ calc((1 - abs(calc(var(--go-orient) - 1.5))) * 2),
257
+ 1
258
+ );
259
+
260
+ --go-inline: calc(
261
+ var(--go-inline-direct) * (1 - var(--go-rev-inline)) +
262
+ var(--go-inline-inverted) * var(--go-rev-inline)
263
+ );
264
+ --go-block: calc(
265
+ var(--go-block-direct) * (1 - var(--go-rev-block)) +
266
+ var(--go-block-inverted) * var(--go-rev-block)
267
+ );
268
+
269
+ result: calc(
270
+ var(--go-inline) * var(--go-axis-inline) +
271
+ var(--go-block) * var(--go-axis-block)
272
+ );
273
+ }