@yugnex/nexui 2.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 +59 -0
- package/css/nexui-base.css +157 -0
- package/css/nexui-icons.css +86 -0
- package/css/nexui-tokens.css +113 -0
- package/css/nexui.css +16 -0
- package/dist/assets/geometry.d.ts +98 -0
- package/dist/assets/geometry.d.ts.map +1 -0
- package/dist/assets/geometry.js +114 -0
- package/dist/assets/geometry.js.map +1 -0
- package/dist/assets/typography.d.ts +3 -0
- package/dist/assets/typography.d.ts.map +1 -0
- package/dist/assets/typography.js +178 -0
- package/dist/assets/typography.js.map +1 -0
- package/dist/core/compiler.d.ts +30 -0
- package/dist/core/compiler.d.ts.map +1 -0
- package/dist/core/compiler.js +124 -0
- package/dist/core/compiler.js.map +1 -0
- package/dist/core/cx.d.ts +7 -0
- package/dist/core/cx.d.ts.map +1 -0
- package/dist/core/cx.js +34 -0
- package/dist/core/cx.js.map +1 -0
- package/dist/core/matrix.d.ts +118 -0
- package/dist/core/matrix.d.ts.map +1 -0
- package/dist/core/matrix.js +180 -0
- package/dist/core/matrix.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/avatar.d.ts +8 -0
- package/dist/primitives/avatar.d.ts.map +1 -0
- package/dist/primitives/avatar.js +146 -0
- package/dist/primitives/avatar.js.map +1 -0
- package/dist/primitives/badge.d.ts +8 -0
- package/dist/primitives/badge.d.ts.map +1 -0
- package/dist/primitives/badge.js +88 -0
- package/dist/primitives/badge.js.map +1 -0
- package/dist/primitives/button.d.ts +10 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/button.js +137 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/checkbox.d.ts +13 -0
- package/dist/primitives/checkbox.d.ts.map +1 -0
- package/dist/primitives/checkbox.js +107 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/input.d.ts +14 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +177 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/panel.d.ts +9 -0
- package/dist/primitives/panel.d.ts.map +1 -0
- package/dist/primitives/panel.js +101 -0
- package/dist/primitives/panel.js.map +1 -0
- package/dist/primitives/progress.d.ts +8 -0
- package/dist/primitives/progress.d.ts.map +1 -0
- package/dist/primitives/progress.js +105 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/separator.d.ts +8 -0
- package/dist/primitives/separator.d.ts.map +1 -0
- package/dist/primitives/separator.js +69 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/skeleton.d.ts +8 -0
- package/dist/primitives/skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton.js +61 -0
- package/dist/primitives/skeleton.js.map +1 -0
- package/dist/primitives/spinner.d.ts +8 -0
- package/dist/primitives/spinner.d.ts.map +1 -0
- package/dist/primitives/spinner.js +64 -0
- package/dist/primitives/spinner.js.map +1 -0
- package/dist/primitives/status-ring.d.ts +8 -0
- package/dist/primitives/status-ring.d.ts.map +1 -0
- package/dist/primitives/status-ring.js +101 -0
- package/dist/primitives/status-ring.js.map +1 -0
- package/dist/primitives/switch.d.ts +12 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/switch.js +124 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/text-stream.d.ts +23 -0
- package/dist/primitives/text-stream.d.ts.map +1 -0
- package/dist/primitives/text-stream.js +167 -0
- package/dist/primitives/text-stream.js.map +1 -0
- package/dist/tokens/colors.d.ts +127 -0
- package/dist/tokens/colors.d.ts.map +1 -0
- package/dist/tokens/colors.js +135 -0
- package/dist/tokens/colors.js.map +1 -0
- package/dist/tokens/motion.d.ts +37 -0
- package/dist/tokens/motion.d.ts.map +1 -0
- package/dist/tokens/motion.js +93 -0
- package/dist/tokens/motion.js.map +1 -0
- package/dist/tokens/shadows.d.ts +34 -0
- package/dist/tokens/shadows.d.ts.map +1 -0
- package/dist/tokens/shadows.js +45 -0
- package/dist/tokens/shadows.js.map +1 -0
- package/dist/tokens/spacing.d.ts +69 -0
- package/dist/tokens/spacing.d.ts.map +1 -0
- package/dist/tokens/spacing.js +71 -0
- package/dist/tokens/spacing.js.map +1 -0
- package/dist/tokens/type.d.ts +166 -0
- package/dist/tokens/type.d.ts.map +1 -0
- package/dist/tokens/type.js +215 -0
- package/dist/tokens/type.js.map +1 -0
- package/fonts/NexuiIcons.woff2 +0 -0
- package/fonts/NexuiMono-Regular.otf +0 -0
- package/fonts/NexuiMono-Regular.woff2 +0 -0
- package/fonts/NexuiSans-Bold.otf +0 -0
- package/fonts/NexuiSans-Bold.woff2 +0 -0
- package/fonts/NexuiSans-Medium.otf +0 -0
- package/fonts/NexuiSans-Medium.woff2 +0 -0
- package/fonts/NexuiSans-Regular.otf +0 -0
- package/fonts/NexuiSans-Regular.woff2 +0 -0
- package/native/Cargo.toml +16 -0
- package/native/src/lib.rs +127 -0
- package/nexui-utils.css +485 -0
- package/package.json +58 -0
- package/src/assets/geometry.ts +144 -0
- package/src/assets/typography.ts +184 -0
- package/src/core/compiler.ts +139 -0
- package/src/core/cx.ts +50 -0
- package/src/core/matrix.ts +195 -0
- package/src/index.ts +78 -0
- package/src/primitives/avatar.ts +159 -0
- package/src/primitives/badge.ts +98 -0
- package/src/primitives/button.ts +149 -0
- package/src/primitives/checkbox.ts +113 -0
- package/src/primitives/input.ts +187 -0
- package/src/primitives/panel.ts +111 -0
- package/src/primitives/progress.ts +112 -0
- package/src/primitives/separator.ts +73 -0
- package/src/primitives/skeleton.ts +68 -0
- package/src/primitives/spinner.ts +71 -0
- package/src/primitives/status-ring.ts +109 -0
- package/src/primitives/switch.ts +134 -0
- package/src/primitives/text-stream.ts +187 -0
- package/src/tokens/colors.ts +149 -0
- package/src/tokens/motion.ts +97 -0
- package/src/tokens/shadows.ts +58 -0
- package/src/tokens/spacing.ts +79 -0
- package/src/tokens/type.ts +224 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// @yugnex/nexui — Native Layout Compiler (Rust/WASM)
|
|
2
|
+
// Compiles LayoutMatrix bitmasks to CSS rule strings.
|
|
3
|
+
// This module is optional — the TypeScript compiler in src/core/compiler.ts
|
|
4
|
+
// provides identical output. The Rust path exists for environments that
|
|
5
|
+
// pre-compile CSS at build time rather than at runtime in the browser.
|
|
6
|
+
|
|
7
|
+
use wasm_bindgen::prelude::*;
|
|
8
|
+
use std::collections::HashMap;
|
|
9
|
+
|
|
10
|
+
#[wasm_bindgen]
|
|
11
|
+
pub struct NexuiLayoutCompiler {
|
|
12
|
+
cache: HashMap<u32, String>,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#[wasm_bindgen]
|
|
16
|
+
impl NexuiLayoutCompiler {
|
|
17
|
+
#[wasm_bindgen(constructor)]
|
|
18
|
+
pub fn new() -> NexuiLayoutCompiler {
|
|
19
|
+
NexuiLayoutCompiler {
|
|
20
|
+
cache: HashMap::new(),
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/// Compiles a 32-bit LayoutMatrix bitmask to a complete CSS rule string.
|
|
25
|
+
/// The selector follows the pattern `.nx-m-{HEX}`.
|
|
26
|
+
/// Returns an empty string if the bitmask encodes no layout properties.
|
|
27
|
+
#[wasm_bindgen]
|
|
28
|
+
pub fn compile(&mut self, bitmask: u32) -> String {
|
|
29
|
+
if let Some(cached) = self.cache.get(&bitmask) {
|
|
30
|
+
return cached.clone();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let mut css = String::new();
|
|
34
|
+
|
|
35
|
+
// Padding (bits 0-3)
|
|
36
|
+
match bitmask & 0x0F {
|
|
37
|
+
0x1 => css.push_str("padding:0.25rem;"),
|
|
38
|
+
0x2 => css.push_str("padding:0.5rem;"),
|
|
39
|
+
0x3 => css.push_str("padding:0.75rem;"),
|
|
40
|
+
0x4 => css.push_str("padding:1rem;"),
|
|
41
|
+
0x5 => css.push_str("padding:1.5rem;"),
|
|
42
|
+
0x6 => css.push_str("padding:2rem;"),
|
|
43
|
+
_ => {}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Display / Flex / Grid (bits 4-7)
|
|
47
|
+
match bitmask & 0xF0 {
|
|
48
|
+
0x10 => css.push_str("display:flex;flex-direction:row;"),
|
|
49
|
+
0x20 => css.push_str("display:flex;flex-direction:column;"),
|
|
50
|
+
0x30 => css.push_str("display:grid;grid-template-columns:repeat(2,1fr);"),
|
|
51
|
+
0x40 => css.push_str("display:grid;grid-template-columns:repeat(3,1fr);"),
|
|
52
|
+
0x50 => css.push_str("display:grid;grid-template-columns:repeat(4,1fr);"),
|
|
53
|
+
0x60 => css.push_str("align-items:flex-start;"),
|
|
54
|
+
0x70 => css.push_str("align-items:center;"),
|
|
55
|
+
0x80 => css.push_str("align-items:flex-end;"),
|
|
56
|
+
0x90 => css.push_str("align-items:stretch;"),
|
|
57
|
+
0xA0 => css.push_str("justify-content:flex-start;"),
|
|
58
|
+
0xB0 => css.push_str("justify-content:center;"),
|
|
59
|
+
0xC0 => css.push_str("justify-content:flex-end;"),
|
|
60
|
+
0xD0 => css.push_str("justify-content:space-between;"),
|
|
61
|
+
0xE0 => css.push_str("justify-content:space-around;"),
|
|
62
|
+
0xF0 => css.push_str("justify-content:space-evenly;"),
|
|
63
|
+
_ => {}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Border radius (bits 8-11)
|
|
67
|
+
match bitmask & 0xF00 {
|
|
68
|
+
0x100 => css.push_str("border-radius:2px;"),
|
|
69
|
+
0x200 => css.push_str("border-radius:4px;"),
|
|
70
|
+
0x300 => css.push_str("border-radius:6px;"),
|
|
71
|
+
0x400 => css.push_str("border-radius:8px;"),
|
|
72
|
+
0x500 => css.push_str("border-radius:12px;"),
|
|
73
|
+
0x600 => css.push_str("border-radius:16px;"),
|
|
74
|
+
0x700 => css.push_str("border-radius:9999px;"),
|
|
75
|
+
_ => {}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Gap (bits 12-15)
|
|
79
|
+
match bitmask & 0xF000 {
|
|
80
|
+
0x1000 => css.push_str("gap:0.25rem;"),
|
|
81
|
+
0x2000 => css.push_str("gap:0.5rem;"),
|
|
82
|
+
0x3000 => css.push_str("gap:1rem;"),
|
|
83
|
+
0x4000 => css.push_str("gap:1.5rem;"),
|
|
84
|
+
0x5000 => css.push_str("gap:2rem;"),
|
|
85
|
+
_ => {}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Width (bits 16-19)
|
|
89
|
+
match bitmask & 0xF0000 {
|
|
90
|
+
0x10000 => css.push_str("width:100%;"),
|
|
91
|
+
0x20000 => css.push_str("width:100vw;"),
|
|
92
|
+
0x30000 => css.push_str("width:fit-content;"),
|
|
93
|
+
0x40000 => css.push_str("width:min-content;"),
|
|
94
|
+
0x50000 => css.push_str("width:max-content;"),
|
|
95
|
+
_ => {}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Overflow (bits 20-23)
|
|
99
|
+
match bitmask & 0xF00000 {
|
|
100
|
+
0x100000 => css.push_str("overflow:hidden;"),
|
|
101
|
+
0x200000 => css.push_str("overflow:auto;"),
|
|
102
|
+
0x300000 => css.push_str("overflow:scroll;"),
|
|
103
|
+
_ => {}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
let result = if css.is_empty() {
|
|
107
|
+
String::new()
|
|
108
|
+
} else {
|
|
109
|
+
format!(".nx-m-{:X}{{{}}}", bitmask, css)
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
self.cache.insert(bitmask, result.clone());
|
|
113
|
+
result
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/// Returns the CSS class name for a bitmask (without generating the rule).
|
|
117
|
+
#[wasm_bindgen]
|
|
118
|
+
pub fn class_name(bitmask: u32) -> String {
|
|
119
|
+
format!("nx-m-{:X}", bitmask)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/// Clears the internal compilation cache.
|
|
123
|
+
#[wasm_bindgen]
|
|
124
|
+
pub fn clear_cache(&mut self) {
|
|
125
|
+
self.cache.clear();
|
|
126
|
+
}
|
|
127
|
+
}
|
package/nexui-utils.css
ADDED
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @yugnex/nexui — Utility Class System
|
|
3
|
+
* Import once at app root. Replaces Tailwind CSS utility classes.
|
|
4
|
+
* All color/border/text values reference CSS custom properties injected
|
|
5
|
+
* by initializeNexuiEngine() — theme-aware by default.
|
|
6
|
+
*
|
|
7
|
+
* Usage: className="nx-flex nx-gap-md nx-p-lg nx-text-primary"
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* ─── Display ────────────────────────────────────────────────────────────── */
|
|
11
|
+
.nx-block { display: block; }
|
|
12
|
+
.nx-inline { display: inline; }
|
|
13
|
+
.nx-inline-block { display: inline-block; }
|
|
14
|
+
.nx-inline-flex { display: inline-flex; }
|
|
15
|
+
.nx-flex { display: flex; }
|
|
16
|
+
.nx-grid { display: grid; }
|
|
17
|
+
.nx-hidden { display: none; }
|
|
18
|
+
.nx-contents { display: contents; }
|
|
19
|
+
|
|
20
|
+
/* ─── Flex Direction ─────────────────────────────────────────────────────── */
|
|
21
|
+
.nx-flex-row { flex-direction: row; }
|
|
22
|
+
.nx-flex-col { flex-direction: column; }
|
|
23
|
+
.nx-flex-row-rev { flex-direction: row-reverse; }
|
|
24
|
+
.nx-flex-col-rev { flex-direction: column-reverse; }
|
|
25
|
+
.nx-flex-wrap { flex-wrap: wrap; }
|
|
26
|
+
.nx-flex-nowrap { flex-wrap: nowrap; }
|
|
27
|
+
|
|
28
|
+
/* ─── Flex Sizing ────────────────────────────────────────────────────────── */
|
|
29
|
+
.nx-flex-1 { flex: 1 1 0%; }
|
|
30
|
+
.nx-flex-auto { flex: 1 1 auto; }
|
|
31
|
+
.nx-flex-none { flex: none; }
|
|
32
|
+
.nx-flex-shrink-0 { flex-shrink: 0; }
|
|
33
|
+
.nx-flex-grow { flex-grow: 1; }
|
|
34
|
+
|
|
35
|
+
/* ─── Align Items ────────────────────────────────────────────────────────── */
|
|
36
|
+
.nx-items-start { align-items: flex-start; }
|
|
37
|
+
.nx-items-center { align-items: center; }
|
|
38
|
+
.nx-items-end { align-items: flex-end; }
|
|
39
|
+
.nx-items-stretch { align-items: stretch; }
|
|
40
|
+
.nx-items-baseline{ align-items: baseline; }
|
|
41
|
+
|
|
42
|
+
/* ─── Justify Content ────────────────────────────────────────────────────── */
|
|
43
|
+
.nx-justify-start { justify-content: flex-start; }
|
|
44
|
+
.nx-justify-center { justify-content: center; }
|
|
45
|
+
.nx-justify-end { justify-content: flex-end; }
|
|
46
|
+
.nx-justify-between { justify-content: space-between; }
|
|
47
|
+
.nx-justify-around { justify-content: space-around; }
|
|
48
|
+
.nx-justify-evenly { justify-content: space-evenly; }
|
|
49
|
+
|
|
50
|
+
/* ─── Align Self ─────────────────────────────────────────────────────────── */
|
|
51
|
+
.nx-self-start { align-self: flex-start; }
|
|
52
|
+
.nx-self-center { align-self: center; }
|
|
53
|
+
.nx-self-end { align-self: flex-end; }
|
|
54
|
+
.nx-self-stretch { align-self: stretch; }
|
|
55
|
+
|
|
56
|
+
/* ─── Grid ───────────────────────────────────────────────────────────────── */
|
|
57
|
+
.nx-grid-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
|
|
58
|
+
.nx-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
59
|
+
.nx-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
60
|
+
.nx-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
61
|
+
.nx-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
|
|
62
|
+
.nx-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
63
|
+
.nx-col-span-1 { grid-column: span 1; }
|
|
64
|
+
.nx-col-span-2 { grid-column: span 2; }
|
|
65
|
+
.nx-col-span-3 { grid-column: span 3; }
|
|
66
|
+
.nx-col-span-full { grid-column: 1 / -1; }
|
|
67
|
+
|
|
68
|
+
/* ─── Gap ────────────────────────────────────────────────────────────────── */
|
|
69
|
+
.nx-gap-0 { gap: 0; }
|
|
70
|
+
.nx-gap-px { gap: 1px; }
|
|
71
|
+
.nx-gap-1 { gap: 4px; }
|
|
72
|
+
.nx-gap-2 { gap: 8px; }
|
|
73
|
+
.nx-gap-3 { gap: 12px; }
|
|
74
|
+
.nx-gap-4 { gap: 16px; }
|
|
75
|
+
.nx-gap-5 { gap: 20px; }
|
|
76
|
+
.nx-gap-6 { gap: 24px; }
|
|
77
|
+
.nx-gap-8 { gap: 32px; }
|
|
78
|
+
.nx-gap-10 { gap: 40px; }
|
|
79
|
+
.nx-gap-12 { gap: 48px; }
|
|
80
|
+
/* Semantic aliases */
|
|
81
|
+
.nx-gap-xs { gap: 4px; }
|
|
82
|
+
.nx-gap-sm { gap: 8px; }
|
|
83
|
+
.nx-gap-md { gap: 16px; }
|
|
84
|
+
.nx-gap-lg { gap: 24px; }
|
|
85
|
+
.nx-gap-xl { gap: 32px; }
|
|
86
|
+
/* Row / Col gap */
|
|
87
|
+
.nx-gap-x-sm { column-gap: 8px; }
|
|
88
|
+
.nx-gap-x-md { column-gap: 16px; }
|
|
89
|
+
.nx-gap-x-lg { column-gap: 24px; }
|
|
90
|
+
.nx-gap-y-sm { row-gap: 8px; }
|
|
91
|
+
.nx-gap-y-md { row-gap: 16px; }
|
|
92
|
+
.nx-gap-y-lg { row-gap: 24px; }
|
|
93
|
+
|
|
94
|
+
/* ─── Padding ────────────────────────────────────────────────────────────── */
|
|
95
|
+
.nx-p-0 { padding: 0; }
|
|
96
|
+
.nx-p-px { padding: 1px; }
|
|
97
|
+
.nx-p-1 { padding: 4px; }
|
|
98
|
+
.nx-p-2 { padding: 8px; }
|
|
99
|
+
.nx-p-3 { padding: 12px; }
|
|
100
|
+
.nx-p-4 { padding: 16px; }
|
|
101
|
+
.nx-p-5 { padding: 20px; }
|
|
102
|
+
.nx-p-6 { padding: 24px; }
|
|
103
|
+
.nx-p-8 { padding: 32px; }
|
|
104
|
+
.nx-p-10 { padding: 40px; }
|
|
105
|
+
.nx-p-12 { padding: 48px; }
|
|
106
|
+
.nx-p-xs { padding: 4px; }
|
|
107
|
+
.nx-p-sm { padding: 8px; }
|
|
108
|
+
.nx-p-md { padding: 16px; }
|
|
109
|
+
.nx-p-lg { padding: 24px; }
|
|
110
|
+
.nx-p-xl { padding: 32px; }
|
|
111
|
+
/* Axes */
|
|
112
|
+
.nx-px-1 { padding-left: 4px; padding-right: 4px; }
|
|
113
|
+
.nx-px-2 { padding-left: 8px; padding-right: 8px; }
|
|
114
|
+
.nx-px-3 { padding-left: 12px; padding-right: 12px; }
|
|
115
|
+
.nx-px-4 { padding-left: 16px; padding-right: 16px; }
|
|
116
|
+
.nx-px-5 { padding-left: 20px; padding-right: 20px; }
|
|
117
|
+
.nx-px-6 { padding-left: 24px; padding-right: 24px; }
|
|
118
|
+
.nx-py-1 { padding-top: 4px; padding-bottom: 4px; }
|
|
119
|
+
.nx-py-2 { padding-top: 8px; padding-bottom: 8px; }
|
|
120
|
+
.nx-py-3 { padding-top: 12px; padding-bottom: 12px; }
|
|
121
|
+
.nx-py-4 { padding-top: 16px; padding-bottom: 16px; }
|
|
122
|
+
.nx-py-5 { padding-top: 20px; padding-bottom: 20px; }
|
|
123
|
+
.nx-py-6 { padding-top: 24px; padding-bottom: 24px; }
|
|
124
|
+
/* Singles */
|
|
125
|
+
.nx-pt-2 { padding-top: 8px; }
|
|
126
|
+
.nx-pt-4 { padding-top: 16px; }
|
|
127
|
+
.nx-pt-6 { padding-top: 24px; }
|
|
128
|
+
.nx-pb-2 { padding-bottom: 8px; }
|
|
129
|
+
.nx-pb-4 { padding-bottom: 16px; }
|
|
130
|
+
.nx-pb-6 { padding-bottom: 24px; }
|
|
131
|
+
.nx-pl-2 { padding-left: 8px; }
|
|
132
|
+
.nx-pl-4 { padding-left: 16px; }
|
|
133
|
+
.nx-pr-2 { padding-right: 8px; }
|
|
134
|
+
.nx-pr-4 { padding-right: 16px; }
|
|
135
|
+
|
|
136
|
+
/* ─── Margin ─────────────────────────────────────────────────────────────── */
|
|
137
|
+
.nx-m-0 { margin: 0; }
|
|
138
|
+
.nx-m-auto { margin: auto; }
|
|
139
|
+
.nx-mx-auto { margin-left: auto; margin-right: auto; }
|
|
140
|
+
.nx-my-auto { margin-top: auto; margin-bottom: auto; }
|
|
141
|
+
.nx-mt-1 { margin-top: 4px; }
|
|
142
|
+
.nx-mt-2 { margin-top: 8px; }
|
|
143
|
+
.nx-mt-3 { margin-top: 12px; }
|
|
144
|
+
.nx-mt-4 { margin-top: 16px; }
|
|
145
|
+
.nx-mt-6 { margin-top: 24px; }
|
|
146
|
+
.nx-mt-8 { margin-top: 32px; }
|
|
147
|
+
.nx-mb-1 { margin-bottom: 4px; }
|
|
148
|
+
.nx-mb-2 { margin-bottom: 8px; }
|
|
149
|
+
.nx-mb-3 { margin-bottom: 12px; }
|
|
150
|
+
.nx-mb-4 { margin-bottom: 16px; }
|
|
151
|
+
.nx-mb-6 { margin-bottom: 24px; }
|
|
152
|
+
.nx-mb-8 { margin-bottom: 32px; }
|
|
153
|
+
.nx-ml-auto { margin-left: auto; }
|
|
154
|
+
.nx-mr-auto { margin-right: auto; }
|
|
155
|
+
.nx-ml-2 { margin-left: 8px; }
|
|
156
|
+
.nx-ml-4 { margin-left: 16px; }
|
|
157
|
+
.nx-mr-2 { margin-right: 8px; }
|
|
158
|
+
.nx-mr-4 { margin-right: 16px; }
|
|
159
|
+
|
|
160
|
+
/* ─── Width / Height ─────────────────────────────────────────────────────── */
|
|
161
|
+
.nx-w-full { width: 100%; }
|
|
162
|
+
.nx-w-screen { width: 100vw; }
|
|
163
|
+
.nx-w-auto { width: auto; }
|
|
164
|
+
.nx-w-fit { width: fit-content; }
|
|
165
|
+
.nx-w-min { width: min-content; }
|
|
166
|
+
.nx-w-max { width: max-content; }
|
|
167
|
+
.nx-w-0 { width: 0; }
|
|
168
|
+
.nx-w-px { width: 1px; }
|
|
169
|
+
.nx-w-4 { width: 16px; }
|
|
170
|
+
.nx-w-5 { width: 20px; }
|
|
171
|
+
.nx-w-6 { width: 24px; }
|
|
172
|
+
.nx-w-8 { width: 32px; }
|
|
173
|
+
.nx-w-10 { width: 40px; }
|
|
174
|
+
.nx-w-12 { width: 48px; }
|
|
175
|
+
.nx-w-16 { width: 64px; }
|
|
176
|
+
.nx-w-20 { width: 80px; }
|
|
177
|
+
.nx-w-24 { width: 96px; }
|
|
178
|
+
.nx-w-32 { width: 128px; }
|
|
179
|
+
.nx-w-48 { width: 192px; }
|
|
180
|
+
.nx-w-64 { width: 256px; }
|
|
181
|
+
.nx-w-80 { width: 320px; }
|
|
182
|
+
.nx-min-w-0 { min-width: 0; }
|
|
183
|
+
.nx-max-w-sm { max-width: 480px; }
|
|
184
|
+
.nx-max-w-md { max-width: 640px; }
|
|
185
|
+
.nx-max-w-lg { max-width: 768px; }
|
|
186
|
+
.nx-max-w-xl { max-width: 1024px; }
|
|
187
|
+
.nx-max-w-2xl { max-width: 1280px; }
|
|
188
|
+
.nx-max-w-full { max-width: 100%; }
|
|
189
|
+
|
|
190
|
+
.nx-h-full { height: 100%; }
|
|
191
|
+
.nx-h-screen { height: 100vh; }
|
|
192
|
+
.nx-h-auto { height: auto; }
|
|
193
|
+
.nx-h-fit { height: fit-content; }
|
|
194
|
+
.nx-h-0 { height: 0; }
|
|
195
|
+
.nx-h-px { height: 1px; }
|
|
196
|
+
.nx-h-4 { height: 16px; }
|
|
197
|
+
.nx-h-5 { height: 20px; }
|
|
198
|
+
.nx-h-6 { height: 24px; }
|
|
199
|
+
.nx-h-8 { height: 32px; }
|
|
200
|
+
.nx-h-10 { height: 40px; }
|
|
201
|
+
.nx-h-12 { height: 48px; }
|
|
202
|
+
.nx-h-16 { height: 64px; }
|
|
203
|
+
.nx-h-20 { height: 80px; }
|
|
204
|
+
.nx-h-screen-half { height: 50vh; }
|
|
205
|
+
.nx-min-h-0 { min-height: 0; }
|
|
206
|
+
.nx-min-h-screen { min-height: 100vh; }
|
|
207
|
+
|
|
208
|
+
/* ─── Position ───────────────────────────────────────────────────────────── */
|
|
209
|
+
.nx-relative { position: relative; }
|
|
210
|
+
.nx-absolute { position: absolute; }
|
|
211
|
+
.nx-fixed { position: fixed; }
|
|
212
|
+
.nx-sticky { position: sticky; }
|
|
213
|
+
.nx-inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
|
|
214
|
+
.nx-inset-x-0 { left: 0; right: 0; }
|
|
215
|
+
.nx-inset-y-0 { top: 0; bottom: 0; }
|
|
216
|
+
.nx-top-0 { top: 0; }
|
|
217
|
+
.nx-right-0 { right: 0; }
|
|
218
|
+
.nx-bottom-0 { bottom: 0; }
|
|
219
|
+
.nx-left-0 { left: 0; }
|
|
220
|
+
.nx-top-auto { top: auto; }
|
|
221
|
+
|
|
222
|
+
/* ─── Z-Index ────────────────────────────────────────────────────────────── */
|
|
223
|
+
.nx-z-0 { z-index: 0; }
|
|
224
|
+
.nx-z-10 { z-index: 10; }
|
|
225
|
+
.nx-z-20 { z-index: 20; }
|
|
226
|
+
.nx-z-30 { z-index: 30; }
|
|
227
|
+
.nx-z-40 { z-index: 40; }
|
|
228
|
+
.nx-z-50 { z-index: 50; }
|
|
229
|
+
.nx-z-modal { z-index: 200; }
|
|
230
|
+
.nx-z-toast { z-index: 300; }
|
|
231
|
+
.nx-z-tooltip { z-index: 400; }
|
|
232
|
+
|
|
233
|
+
/* ─── Overflow ───────────────────────────────────────────────────────────── */
|
|
234
|
+
.nx-overflow-hidden { overflow: hidden; }
|
|
235
|
+
.nx-overflow-auto { overflow: auto; }
|
|
236
|
+
.nx-overflow-scroll { overflow: scroll; }
|
|
237
|
+
.nx-overflow-visible { overflow: visible; }
|
|
238
|
+
.nx-overflow-x-auto { overflow-x: auto; }
|
|
239
|
+
.nx-overflow-y-auto { overflow-y: auto; }
|
|
240
|
+
.nx-overflow-x-hidden { overflow-x: hidden; }
|
|
241
|
+
.nx-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
242
|
+
.nx-break-all { word-break: break-all; }
|
|
243
|
+
.nx-whitespace-nowrap { white-space: nowrap; }
|
|
244
|
+
.nx-whitespace-pre { white-space: pre; }
|
|
245
|
+
.nx-whitespace-pre-wrap { white-space: pre-wrap; }
|
|
246
|
+
|
|
247
|
+
/* ─── Background Colors ──────────────────────────────────────────────────── */
|
|
248
|
+
.nx-bg-void { background-color: var(--nx-bg-void); }
|
|
249
|
+
.nx-bg-base { background-color: var(--nx-bg-base); }
|
|
250
|
+
.nx-bg-surface { background-color: var(--nx-bg-surface); }
|
|
251
|
+
.nx-bg-elevated { background-color: var(--nx-bg-elevated); }
|
|
252
|
+
.nx-bg-overlay { background-color: var(--nx-bg-overlay); }
|
|
253
|
+
.nx-bg-accent { background-color: var(--nx-accent-dim); }
|
|
254
|
+
.nx-bg-live { background-color: var(--nx-live-dim); }
|
|
255
|
+
.nx-bg-success { background-color: var(--nx-success-dim); }
|
|
256
|
+
.nx-bg-error { background-color: var(--nx-error-dim); }
|
|
257
|
+
.nx-bg-warning { background-color: var(--nx-warning-dim); }
|
|
258
|
+
.nx-bg-transparent{ background-color: transparent; }
|
|
259
|
+
|
|
260
|
+
/* ─── Text Colors ────────────────────────────────────────────────────────── */
|
|
261
|
+
.nx-text-primary { color: var(--nx-text); }
|
|
262
|
+
.nx-text-secondary { color: var(--nx-text-2); }
|
|
263
|
+
.nx-text-dim { color: var(--nx-text-3); }
|
|
264
|
+
.nx-text-ghost { color: var(--nx-text-4); }
|
|
265
|
+
.nx-text-inverse { color: var(--nx-text-inv); }
|
|
266
|
+
.nx-text-accent { color: var(--nx-accent-text, var(--nx-accent)); }
|
|
267
|
+
.nx-text-live { color: var(--nx-live); }
|
|
268
|
+
.nx-text-success { color: var(--nx-success); }
|
|
269
|
+
.nx-text-error { color: var(--nx-error); }
|
|
270
|
+
.nx-text-warning { color: var(--nx-warning); }
|
|
271
|
+
.nx-text-inherit { color: inherit; }
|
|
272
|
+
|
|
273
|
+
/* ─── Border ─────────────────────────────────────────────────────────────── */
|
|
274
|
+
.nx-border { border: 1px solid var(--nx-border); }
|
|
275
|
+
.nx-border-strong { border: 1px solid var(--nx-border-strong); }
|
|
276
|
+
.nx-border-accent { border: 1px solid var(--nx-accent-border); }
|
|
277
|
+
.nx-border-live { border: 1px solid var(--nx-live-border); }
|
|
278
|
+
.nx-border-error { border: 1px solid rgba(239,68,68,0.35); }
|
|
279
|
+
.nx-border-success{ border: 1px solid rgba(34,197,94,0.30); }
|
|
280
|
+
.nx-border-none { border: none; }
|
|
281
|
+
.nx-border-t { border-top: 1px solid var(--nx-border); }
|
|
282
|
+
.nx-border-b { border-bottom: 1px solid var(--nx-border); }
|
|
283
|
+
.nx-border-l { border-left: 1px solid var(--nx-border); }
|
|
284
|
+
.nx-border-r { border-right: 1px solid var(--nx-border); }
|
|
285
|
+
|
|
286
|
+
/* ─── Border Radius ──────────────────────────────────────────────────────── */
|
|
287
|
+
.nx-rounded-none { border-radius: 0; }
|
|
288
|
+
.nx-rounded-xs { border-radius: 2px; }
|
|
289
|
+
.nx-rounded-sm { border-radius: 4px; }
|
|
290
|
+
.nx-rounded { border-radius: 6px; }
|
|
291
|
+
.nx-rounded-md { border-radius: 8px; }
|
|
292
|
+
.nx-rounded-lg { border-radius: 12px; }
|
|
293
|
+
.nx-rounded-xl { border-radius: 16px; }
|
|
294
|
+
.nx-rounded-2xl { border-radius: 20px; }
|
|
295
|
+
.nx-rounded-full { border-radius: 9999px; }
|
|
296
|
+
.nx-rounded-t-lg { border-top-left-radius: 12px; border-top-right-radius: 12px; }
|
|
297
|
+
.nx-rounded-b-lg { border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; }
|
|
298
|
+
|
|
299
|
+
/* ─── Typography ─────────────────────────────────────────────────────────── */
|
|
300
|
+
.nx-font-sans { font-family: var(--nx-font-sans, system-ui, sans-serif); }
|
|
301
|
+
.nx-font-mono { font-family: var(--nx-font-mono, ui-monospace, monospace); }
|
|
302
|
+
.nx-font-display { font-family: var(--nx-ff-display, system-ui, sans-serif); }
|
|
303
|
+
|
|
304
|
+
.nx-text-2xs { font-size: var(--nx-fs-2xs); }
|
|
305
|
+
.nx-text-xs { font-size: var(--nx-fs-xs); }
|
|
306
|
+
.nx-text-sm { font-size: var(--nx-fs-sm); }
|
|
307
|
+
.nx-text-base { font-size: var(--nx-fs-base); }
|
|
308
|
+
.nx-text-md { font-size: var(--nx-fs-md); }
|
|
309
|
+
.nx-text-lg { font-size: var(--nx-fs-lg); }
|
|
310
|
+
.nx-text-xl { font-size: var(--nx-fs-xl); }
|
|
311
|
+
.nx-text-2xl { font-size: var(--nx-fs-2xl); }
|
|
312
|
+
.nx-text-3xl { font-size: var(--nx-fs-3xl); }
|
|
313
|
+
.nx-text-4xl { font-size: var(--nx-fs-4xl); }
|
|
314
|
+
.nx-text-5xl { font-size: var(--nx-fs-5xl); }
|
|
315
|
+
|
|
316
|
+
.nx-font-thin { font-weight: 100; }
|
|
317
|
+
.nx-font-light { font-weight: 300; }
|
|
318
|
+
.nx-font-normal { font-weight: 400; }
|
|
319
|
+
.nx-font-medium { font-weight: 500; }
|
|
320
|
+
.nx-font-semibold { font-weight: 600; }
|
|
321
|
+
.nx-font-bold { font-weight: 700; }
|
|
322
|
+
.nx-font-extrabold { font-weight: 800; }
|
|
323
|
+
.nx-font-black { font-weight: 900; }
|
|
324
|
+
|
|
325
|
+
.nx-leading-none { line-height: 1; }
|
|
326
|
+
.nx-leading-tight { line-height: 1.15; }
|
|
327
|
+
.nx-leading-snug { line-height: 1.3; }
|
|
328
|
+
.nx-leading-normal { line-height: 1.5; }
|
|
329
|
+
.nx-leading-relaxed { line-height: 1.65; }
|
|
330
|
+
.nx-leading-loose { line-height: 1.8; }
|
|
331
|
+
|
|
332
|
+
.nx-tracking-tighter { letter-spacing: -0.04em; }
|
|
333
|
+
.nx-tracking-tight { letter-spacing: -0.02em; }
|
|
334
|
+
.nx-tracking-normal { letter-spacing: 0; }
|
|
335
|
+
.nx-tracking-wide { letter-spacing: 0.04em; }
|
|
336
|
+
.nx-tracking-wider { letter-spacing: 0.08em; }
|
|
337
|
+
.nx-tracking-widest { letter-spacing: 0.16em; }
|
|
338
|
+
.nx-tracking-caps { letter-spacing: 0.06em; }
|
|
339
|
+
|
|
340
|
+
.nx-text-left { text-align: left; }
|
|
341
|
+
.nx-text-center { text-align: center; }
|
|
342
|
+
.nx-text-right { text-align: right; }
|
|
343
|
+
.nx-text-justify { text-align: justify; }
|
|
344
|
+
|
|
345
|
+
.nx-uppercase { text-transform: uppercase; }
|
|
346
|
+
.nx-lowercase { text-transform: lowercase; }
|
|
347
|
+
.nx-capitalize { text-transform: capitalize; }
|
|
348
|
+
.nx-normal-case { text-transform: none; }
|
|
349
|
+
|
|
350
|
+
.nx-underline { text-decoration: underline; }
|
|
351
|
+
.nx-no-underline { text-decoration: none; }
|
|
352
|
+
.nx-line-through { text-decoration: line-through; }
|
|
353
|
+
|
|
354
|
+
.nx-select-none { user-select: none; }
|
|
355
|
+
.nx-select-text { user-select: text; }
|
|
356
|
+
.nx-select-all { user-select: all; }
|
|
357
|
+
|
|
358
|
+
.nx-antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
|
359
|
+
|
|
360
|
+
/* ─── Opacity ────────────────────────────────────────────────────────────── */
|
|
361
|
+
.nx-opacity-0 { opacity: 0; }
|
|
362
|
+
.nx-opacity-25 { opacity: 0.25; }
|
|
363
|
+
.nx-opacity-50 { opacity: 0.50; }
|
|
364
|
+
.nx-opacity-75 { opacity: 0.75; }
|
|
365
|
+
.nx-opacity-100 { opacity: 1; }
|
|
366
|
+
|
|
367
|
+
/* ─── Shadow / Elevation ─────────────────────────────────────────────────── */
|
|
368
|
+
.nx-shadow-none { box-shadow: none; }
|
|
369
|
+
.nx-shadow-xs { box-shadow: 0 1px 2px rgba(0,0,0,0.40); }
|
|
370
|
+
.nx-shadow-sm { box-shadow: 0 1px 3px rgba(0,0,0,0.50), 0 1px 2px rgba(0,0,0,0.30); }
|
|
371
|
+
.nx-shadow { box-shadow: 0 4px 6px rgba(0,0,0,0.40), 0 2px 4px rgba(0,0,0,0.30); }
|
|
372
|
+
.nx-shadow-lg { box-shadow: 0 10px 15px rgba(0,0,0,0.50), 0 4px 6px rgba(0,0,0,0.30); }
|
|
373
|
+
.nx-shadow-xl { box-shadow: 0 20px 25px rgba(0,0,0,0.55), 0 8px 10px rgba(0,0,0,0.30); }
|
|
374
|
+
.nx-shadow-inner { box-shadow: inset 0 2px 4px rgba(0,0,0,0.40); }
|
|
375
|
+
.nx-ring-accent { box-shadow: 0 0 0 3px rgba(232,144,16,0.30); }
|
|
376
|
+
.nx-ring-live { box-shadow: 0 0 0 3px rgba(15,212,198,0.25); }
|
|
377
|
+
.nx-ring-error { box-shadow: 0 0 0 3px rgba(239,68,68,0.30); }
|
|
378
|
+
.nx-ring-focus { box-shadow: 0 0 0 2px var(--nx-bg-base, #0D1117), 0 0 0 4px var(--nx-accent, #E89010); }
|
|
379
|
+
|
|
380
|
+
/* ─── Cursor ─────────────────────────────────────────────────────────────── */
|
|
381
|
+
.nx-cursor-pointer { cursor: pointer; }
|
|
382
|
+
.nx-cursor-default { cursor: default; }
|
|
383
|
+
.nx-cursor-not-allowed { cursor: not-allowed; }
|
|
384
|
+
.nx-cursor-text { cursor: text; }
|
|
385
|
+
.nx-cursor-move { cursor: move; }
|
|
386
|
+
.nx-pointer-none { pointer-events: none; }
|
|
387
|
+
.nx-pointer-auto { pointer-events: auto; }
|
|
388
|
+
|
|
389
|
+
/* ─── Transitions ────────────────────────────────────────────────────────── */
|
|
390
|
+
.nx-transition { transition: all 200ms ease; }
|
|
391
|
+
.nx-transition-fast { transition: all 150ms ease; }
|
|
392
|
+
.nx-transition-slow { transition: all 300ms ease; }
|
|
393
|
+
.nx-transition-colors{ transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease; }
|
|
394
|
+
.nx-transition-none { transition: none; }
|
|
395
|
+
|
|
396
|
+
/* ─── Animation ──────────────────────────────────────────────────────────── */
|
|
397
|
+
.nx-animate-spin { animation: nx-spin 700ms linear infinite; }
|
|
398
|
+
.nx-animate-pulse { animation: nx-pulse-ring 2s ease-in-out infinite; }
|
|
399
|
+
.nx-animate-fade-in { animation: nx-fade-in 200ms ease forwards; }
|
|
400
|
+
.nx-animate-slide-up { animation: nx-slide-up 200ms ease forwards; }
|
|
401
|
+
.nx-animate-none { animation: none; }
|
|
402
|
+
|
|
403
|
+
/* ─── Misc Utilities ─────────────────────────────────────────────────────── */
|
|
404
|
+
.nx-sr-only {
|
|
405
|
+
position: absolute;
|
|
406
|
+
width: 1px;
|
|
407
|
+
height: 1px;
|
|
408
|
+
padding: 0;
|
|
409
|
+
margin: -1px;
|
|
410
|
+
overflow: hidden;
|
|
411
|
+
clip: rect(0, 0, 0, 0);
|
|
412
|
+
white-space: nowrap;
|
|
413
|
+
border-width: 0;
|
|
414
|
+
}
|
|
415
|
+
.nx-not-sr-only {
|
|
416
|
+
position: static;
|
|
417
|
+
width: auto;
|
|
418
|
+
height: auto;
|
|
419
|
+
padding: 0;
|
|
420
|
+
margin: 0;
|
|
421
|
+
overflow: visible;
|
|
422
|
+
clip: auto;
|
|
423
|
+
white-space: normal;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.nx-outline-none { outline: none; }
|
|
427
|
+
.nx-outline-accent { outline: 2px solid var(--nx-accent, #E89010); outline-offset: 2px; }
|
|
428
|
+
|
|
429
|
+
.nx-resize-none { resize: none; }
|
|
430
|
+
.nx-resize { resize: both; }
|
|
431
|
+
.nx-resize-y { resize: vertical; }
|
|
432
|
+
.nx-resize-x { resize: horizontal; }
|
|
433
|
+
|
|
434
|
+
.nx-list-none { list-style: none; padding: 0; margin: 0; }
|
|
435
|
+
|
|
436
|
+
.nx-aspect-square { aspect-ratio: 1 / 1; }
|
|
437
|
+
.nx-aspect-video { aspect-ratio: 16 / 9; }
|
|
438
|
+
|
|
439
|
+
/* ─── Responsive Breakpoints ─────────────────────────────────────────────── */
|
|
440
|
+
/* sm: 640px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px */
|
|
441
|
+
@media (min-width: 640px) {
|
|
442
|
+
.sm\:nx-hidden { display: none; }
|
|
443
|
+
.sm\:nx-block { display: block; }
|
|
444
|
+
.sm\:nx-flex { display: flex; }
|
|
445
|
+
.sm\:nx-grid { display: grid; }
|
|
446
|
+
.sm\:nx-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
447
|
+
.sm\:nx-flex-row { flex-direction: row; }
|
|
448
|
+
.sm\:nx-flex-col { flex-direction: column; }
|
|
449
|
+
.sm\:nx-gap-md { gap: 16px; }
|
|
450
|
+
.sm\:nx-p-md { padding: 16px; }
|
|
451
|
+
.sm\:nx-text-lg { font-size: var(--nx-fs-lg); }
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
@media (min-width: 768px) {
|
|
455
|
+
.md\:nx-hidden { display: none; }
|
|
456
|
+
.md\:nx-block { display: block; }
|
|
457
|
+
.md\:nx-flex { display: flex; }
|
|
458
|
+
.md\:nx-grid { display: grid; }
|
|
459
|
+
.md\:nx-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
460
|
+
.md\:nx-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
461
|
+
.md\:nx-flex-row { flex-direction: row; }
|
|
462
|
+
.md\:nx-flex-col { flex-direction: column; }
|
|
463
|
+
.md\:nx-gap-lg { gap: 24px; }
|
|
464
|
+
.md\:nx-p-lg { padding: 24px; }
|
|
465
|
+
.md\:nx-text-xl { font-size: var(--nx-fs-xl); }
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
@media (min-width: 1024px) {
|
|
469
|
+
.lg\:nx-hidden { display: none; }
|
|
470
|
+
.lg\:nx-block { display: block; }
|
|
471
|
+
.lg\:nx-flex { display: flex; }
|
|
472
|
+
.lg\:nx-grid { display: grid; }
|
|
473
|
+
.lg\:nx-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
474
|
+
.lg\:nx-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
475
|
+
.lg\:nx-flex-row { flex-direction: row; }
|
|
476
|
+
.lg\:nx-gap-xl { gap: 32px; }
|
|
477
|
+
.lg\:nx-p-xl { padding: 32px; }
|
|
478
|
+
.lg\:nx-text-2xl { font-size: var(--nx-fs-2xl); }
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@media (min-width: 1280px) {
|
|
482
|
+
.xl\:nx-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
483
|
+
.xl\:nx-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
|
|
484
|
+
.xl\:nx-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
|
485
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@yugnex/nexui",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "YugNex sovereign UI framework. Zero external dependencies. Web Components core + utility CSS.",
|
|
5
|
+
"license": "LicenseRef-YugNex-Proprietary",
|
|
6
|
+
"author": "YugNex Technology (OPC) Private Limited <legal@yugnex.com>",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
|
|
13
|
+
"./css/nexui.css": "./css/nexui.css",
|
|
14
|
+
"./css/nexui-tokens.css":"./css/nexui-tokens.css",
|
|
15
|
+
"./css/nexui-base.css": "./css/nexui-base.css",
|
|
16
|
+
"./css/nexui-icons.css":"./css/nexui-icons.css",
|
|
17
|
+
"./nexui-utils.css": "./nexui-utils.css",
|
|
18
|
+
"./fonts/*": "./fonts/*",
|
|
19
|
+
"./tokens/colors": { "import": "./dist/tokens/colors.js", "types": "./dist/tokens/colors.d.ts" },
|
|
20
|
+
"./tokens/spacing": { "import": "./dist/tokens/spacing.js", "types": "./dist/tokens/spacing.d.ts" },
|
|
21
|
+
"./tokens/motion": { "import": "./dist/tokens/motion.js", "types": "./dist/tokens/motion.d.ts" },
|
|
22
|
+
"./tokens/shadows": { "import": "./dist/tokens/shadows.js", "types": "./dist/tokens/shadows.d.ts" },
|
|
23
|
+
"./tokens/type": { "import": "./dist/tokens/type.js", "types": "./dist/tokens/type.d.ts" },
|
|
24
|
+
"./core/matrix": { "import": "./dist/core/matrix.js", "types": "./dist/core/matrix.d.ts" },
|
|
25
|
+
"./core/compiler": { "import": "./dist/core/compiler.js", "types": "./dist/core/compiler.d.ts" },
|
|
26
|
+
"./core/cx": { "import": "./dist/core/cx.js", "types": "./dist/core/cx.d.ts" },
|
|
27
|
+
"./assets/typography":{ "import": "./dist/assets/typography.js", "types": "./dist/assets/typography.d.ts" },
|
|
28
|
+
"./assets/geometry": { "import": "./dist/assets/geometry.js", "types": "./dist/assets/geometry.d.ts" },
|
|
29
|
+
"./primitives/panel": { "import": "./dist/primitives/panel.js", "types": "./dist/primitives/panel.d.ts" },
|
|
30
|
+
"./primitives/status-ring": { "import": "./dist/primitives/status-ring.js", "types": "./dist/primitives/status-ring.d.ts" },
|
|
31
|
+
"./primitives/text-stream": { "import": "./dist/primitives/text-stream.js", "types": "./dist/primitives/text-stream.d.ts" },
|
|
32
|
+
"./primitives/button": { "import": "./dist/primitives/button.js", "types": "./dist/primitives/button.d.ts" },
|
|
33
|
+
"./primitives/badge": { "import": "./dist/primitives/badge.js", "types": "./dist/primitives/badge.d.ts" },
|
|
34
|
+
"./primitives/input": { "import": "./dist/primitives/input.js", "types": "./dist/primitives/input.d.ts" },
|
|
35
|
+
"./primitives/avatar": { "import": "./dist/primitives/avatar.js", "types": "./dist/primitives/avatar.d.ts" },
|
|
36
|
+
"./primitives/progress": { "import": "./dist/primitives/progress.js", "types": "./dist/primitives/progress.d.ts" },
|
|
37
|
+
"./primitives/switch": { "import": "./dist/primitives/switch.js", "types": "./dist/primitives/switch.d.ts" },
|
|
38
|
+
"./primitives/checkbox": { "import": "./dist/primitives/checkbox.js", "types": "./dist/primitives/checkbox.d.ts" },
|
|
39
|
+
"./primitives/skeleton": { "import": "./dist/primitives/skeleton.js", "types": "./dist/primitives/skeleton.d.ts" },
|
|
40
|
+
"./primitives/separator": { "import": "./dist/primitives/separator.js", "types": "./dist/primitives/separator.d.ts" },
|
|
41
|
+
"./primitives/spinner": { "import": "./dist/primitives/spinner.js", "types": "./dist/primitives/spinner.d.ts" }
|
|
42
|
+
},
|
|
43
|
+
"files": ["dist", "src", "native", "fonts", "css", "nexui-utils.css", "LICENSE"],
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc --project tsconfig.json",
|
|
46
|
+
"build:watch": "tsc --project tsconfig.json --watch",
|
|
47
|
+
"build:wasm": "cd native && wasm-pack build --target web --out-dir ../dist/native",
|
|
48
|
+
"build:fonts": "python3 scripts/build-fonts.py",
|
|
49
|
+
"build:icons": "python3 scripts/build-icons.py",
|
|
50
|
+
"build:all": "python3 scripts/build-fonts.py && python3 scripts/build-icons.py && tsc --project tsconfig.json",
|
|
51
|
+
"typecheck": "tsc --noEmit",
|
|
52
|
+
"clean": "rm -rf dist"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": { "typescript": "^5.5.0" },
|
|
55
|
+
"dependencies": {},
|
|
56
|
+
"peerDependencies": {},
|
|
57
|
+
"sideEffects": ["./nexui-utils.css", "./css/*.css"]
|
|
58
|
+
}
|