strivui 1.22.55 → 1.22.57

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/README.md CHANGED
@@ -1,174 +1,101 @@
1
1
  <p align="center">
2
- <img src="https://res-console.cloudinary.com/dpbwcdytl/thumbnails/v1/image/upload/v1753722770/c3RyaXZ1aV9sb2dvX2syZHhicQ==/drilldown" width="250" alt="StrivUI Logo" />
2
+ <img src="https://striv-ui-web-app.vercel.app/assets/logo-C6E6T3Lj.png" width="200" alt="StrivUI Logo" />
3
3
  </p>
4
4
 
5
- # 🚀 StrivUI
5
+ <h1 align="center">StrivUI</h1>
6
6
 
7
- **StrivUI** is a **hybrid, utility-first UI component library** for **React**, designed to feel instantly familiar to both **React Native** and **Web developers**.
8
- It follows an **Atomic CSS styling approach** and is written in **TypeScript**, providing a fast, consistent, and scalable design system for modern applications.
7
+ <p align="center">
8
+ A hybrid, utility-first React component system inspired by React Native primitives.<br/>
9
+ TypeScript • Atomic CSS • Tree-shakable • Minimal runtime
10
+ </p>
9
11
 
10
- Every component ships with **thoughtfully crafted defaults**, so you can build polished interfaces out of the box — while still keeping full flexibility for customization.
12
+ ---
11
13
 
12
- > Developed with ❤️ by [Syed Abdullah Ali](https://github.com/syedabdullahali)
14
+ ## Overview
13
15
 
14
- ---
16
+ StrivUI provides a unified component model for building React applications with the
17
+ ergonomics of **React Native primitives** and the structure of **modern web layouts**.
15
18
 
16
- ## Why StrivUI?
19
+ It is designed to deliver:
17
20
 
18
- - **Utility-first styling** powered by **Atomic CSS**
19
- - 📱 **React Native–inspired primitives** like `<View />`, `<Text />`, `<FlatList />`
20
- - 🌐 **Web-native layout components** like `<Header />`, `<Section />`, `<Card />`
21
- - 🧩 Shared UI building blocks for rapid development
22
- - 🛠️ Built in **TypeScript** — type-safe and scalable
23
- - 💻 **Lightweight and blazing fast**
21
+ - A consistent cross-platform mental model
22
+ - Composable, atomic styling with zero configuration
23
+ - Strict TypeScript support across all public APIs
24
+ - Lightweight, tree-shakable bundles
24
25
 
25
- ---
26
+ The library focuses on predictable composition, sensible defaults, and full
27
+ `className` extensibility rather than heavy theming abstractions.
26
28
 
27
- ## 📦 Installation
29
+ ---
28
30
 
29
- Install with npm or yarn:
31
+ ## Installation
30
32
 
31
33
  ```bash
32
34
  npm install strivui
33
- # or
34
- comingSoon -> yarn add strivui
35
+ ````
35
36
 
36
- 🔧 Usage
37
- JavaScript
38
- import { Button } from 'strivui';
37
+ ---
39
38
 
40
- function App() {
41
- return (
42
- <Button className="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-400">
43
- Click Me
44
- </Button>
45
- );
46
- }
39
+ ## Usage
47
40
 
48
- TypeScript
49
- import { Button } from 'strivui';
41
+ ```tsx
42
+ import { Button } from "strivui";
50
43
 
51
- const App: React.FC = () => {
44
+ export function App() {
52
45
  return (
53
- <Button className="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-400">
54
- Click Me
46
+ <Button className="bg-blue-500 text-white px-4 py-2 rounded">
47
+ Click me
55
48
  </Button>
56
49
  );
57
- };
58
-
59
- 🧱 Component Categories
60
- 🟣 React Native–Inspired Components
61
-
62
- Familiar primitives, now available for the web:
63
-
64
- <View />
65
-
66
- <Text />
67
-
68
- <ScrollView />
69
-
70
- <Pressable />
71
-
72
- <TouchableOpacity />
73
-
74
- <FlatList />
75
-
76
- <SectionList />
77
-
78
- <Image />
79
-
80
- <ImageBackground />
81
-
82
- <ActivityIndicator />
83
-
84
- 🔵 Web Layout Components
85
-
86
- Semantic building blocks for responsive UIs:
87
-
88
- <Header />
89
-
90
- <Footer />
91
-
92
- <Main />
93
-
94
- <Section />
95
-
96
- <Navigation />
97
-
98
- <Container />
99
-
100
- <Card />
101
-
102
- 🟢 Shared UI Components
103
-
104
- Reusable pieces for forms, modals, and tables:
105
-
106
- <Button />
107
-
108
- <Input />
109
-
110
- <TextArea />
111
-
112
- <Select />
113
-
114
- <Link />
115
-
116
- <Modal />
117
-
118
- <Dialog />
119
-
120
- <Overlay />
121
-
122
- <Table />, <TableHead />, <TableBody />, <TableRow />, <TableHeaderCell />, <TableDataCell />
123
-
124
- 🎨 Styling & Theming
125
-
126
- StrivUI embraces an Atomic CSS, utility-first styling model.
127
- Each utility class maps to a single CSS property, giving you maximum composability and performance.
128
-
129
- You can customize any component via className or extend styles with your own design system.
130
-
131
- Coming soon: striv.config.js for overriding design tokens (colors, spacing, typography, variants).
50
+ }
51
+ ```
132
52
 
133
- 📚 Documentation
53
+ ---
134
54
 
135
- Full documentation and interactive previews will be available at:
55
+ ## Component Architecture
136
56
 
137
- 📘 https://css_striv_ui.com
57
+ **Primitives**
58
+ `View` · `Text` · `ScrollView` · `Pressable` · `FlatList` · `Image`
138
59
 
139
- 🧪 Local Development
60
+ **Layout**
61
+ `Header` · `Section` · `Container` · `Card` · `Navigation`
140
62
 
141
- To run StrivUI locally:
63
+ **UI**
64
+ `Button` · `Input` · `Select` · `Modal` · `Dialog` · `Table`
142
65
 
143
- git clone https://github.com/syedabdullahali/StrivUI.git
144
- cd StrivUI
145
- npm install
146
- npm run dev
66
+ Each layer is independently importable and optimized for tree-shaking.
147
67
 
148
- 🤝 Contributing
68
+ ---
149
69
 
150
- We love contributions!
70
+ ## Styling Model
151
71
 
152
- Fork the repo
72
+ StrivUI uses an **atomic, utility-first CSS approach**:
153
73
 
154
- Create your feature branch: git checkout -b feature/my-component
74
+ * Single-purpose utility classes
75
+ * Deterministic composition
76
+ * No runtime style generation
77
+ * Seamless integration with existing design systems
155
78
 
156
- Commit changes: git commit -m 'Add my component'
79
+ ---
157
80
 
158
- Push to GitHub: git push origin feature/my-component
81
+ ## TypeScript
159
82
 
160
- Open a Pull Request 🚀
83
+ StrivUI is **TypeScript-first** and ships with complete declaration files for all
84
+ public exports, ensuring accurate IntelliSense and type safety.
161
85
 
162
- 📄 License
86
+ ---
163
87
 
164
- MIT © 2025 Syed Abdullah Ali
88
+ ## Roadmap
165
89
 
90
+ * Token-based theming (`striv.config.js`)
91
+ * Dark mode primitives
92
+ * Animation utilities
93
+ * CLI scaffolding
94
+ * SSR / RSC compatibility
166
95
 
167
96
  ---
168
97
 
169
- This version:
170
- - Replaces **“class-based styling” → “Atomic CSS”** everywhere.
171
- - Reads more **professional & polished**, like a proper open-source README.
172
- - Keeps all the original details, just restructured and cleaned.
98
+ ## License
99
+
100
+ MIT © Syed Abdullah Ali
173
101
 
174
- Want me to also design a **visual banner (GitHub social preview / LinkedIn share)** that highlights: *Atomic CSS • React Native + Web • TypeScript* for StrivUI?
package/dist/striveui.css CHANGED
@@ -10197,6 +10197,315 @@ body {
10197
10197
  border-width: 8px;
10198
10198
  }
10199
10199
 
10200
+ :root {
10201
+ --bg: #ffffff;
10202
+ --bg-elevated: #ffffffcc;
10203
+ --text: #0f172a;
10204
+ --muted: #64748b;
10205
+ --border: #e2e8f0;
10206
+ --primary: #2563eb;
10207
+ --primary-600: #1d4ed8;
10208
+ --success: #16a34a;
10209
+ --error: #dc2626;
10210
+ --warning: #d97706;
10211
+ --info: #0284c7;
10212
+ --radius: 14px;
10213
+ --radius-sm: 10px;
10214
+ --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
10215
+ --shadow-md: 0 10px 25px rgba(0,0,0,0.08);
10216
+ --shadow-lg: 0 25px 50px rgba(0,0,0,0.15);
10217
+ --transition: 200ms ease;
10218
+ --blur: blur(12px);
10219
+ }
10220
+
10221
+ .dark {
10222
+ --bg: #020617;
10223
+ --bg-elevated: #020617cc;
10224
+ --text: #e2e8f0;
10225
+ --muted: #94a3b8;
10226
+ --border: #1e293b;
10227
+ }
10228
+
10229
+ /* =========================================================
10230
+ 🧩 MIXINS
10231
+ ========================================================= */
10232
+ @keyframes fadeIn {
10233
+ from {
10234
+ opacity: 0;
10235
+ transform: translateY(4px);
10236
+ }
10237
+ to {
10238
+ opacity: 1;
10239
+ transform: translateY(0);
10240
+ }
10241
+ }
10242
+ @keyframes modalIn {
10243
+ from {
10244
+ opacity: 0;
10245
+ transform: translateY(20px) scale(0.98);
10246
+ }
10247
+ to {
10248
+ opacity: 1;
10249
+ transform: translateY(0) scale(1);
10250
+ }
10251
+ }
10252
+ @keyframes shimmer {
10253
+ 0% {
10254
+ background-position: 100% 50%;
10255
+ }
10256
+ 100% {
10257
+ background-position: 0 50%;
10258
+ }
10259
+ }
10260
+ /* =========================================================
10261
+ 🪟 MODAL
10262
+ ========================================================= */
10263
+ .default_modal_overlay {
10264
+ position: fixed;
10265
+ inset: 0;
10266
+ background: rgba(2, 6, 23, 0.55);
10267
+ backdrop-filter: blur(6px);
10268
+ display: grid;
10269
+ place-items: center;
10270
+ z-index: 999;
10271
+ }
10272
+
10273
+ .default_modal {
10274
+ background: var(--bg-elevated);
10275
+ backdrop-filter: var(--blur);
10276
+ border: 1px solid var(--border);
10277
+ border-radius: var(--radius);
10278
+ padding: 1.5rem;
10279
+ width: min(500px, 92%);
10280
+ box-shadow: var(--shadow-lg);
10281
+ animation: modalIn 0.25s ease;
10282
+ }
10283
+
10284
+ /* =========================================================
10285
+ 📂 DROPDOWN
10286
+ ========================================================= */
10287
+ .default_dropdown {
10288
+ position: relative;
10289
+ display: inline-block;
10290
+ }
10291
+ .default_dropdown_menu {
10292
+ background: var(--bg-elevated);
10293
+ backdrop-filter: var(--blur);
10294
+ border: 1px solid var(--border);
10295
+ position: absolute;
10296
+ top: calc(100% + 8px);
10297
+ left: 0;
10298
+ min-width: 180px;
10299
+ border-radius: var(--radius-sm);
10300
+ box-shadow: var(--shadow-md);
10301
+ padding: 6px;
10302
+ animation: fadeIn 0.2s ease;
10303
+ }
10304
+ .default_dropdown_menu > * {
10305
+ padding: 0.5rem 0.75rem;
10306
+ border-radius: 8px;
10307
+ cursor: pointer;
10308
+ transition: var(--transition);
10309
+ }
10310
+ .default_dropdown_menu > *:hover {
10311
+ background: rgba(37, 99, 235, 0.08);
10312
+ }
10313
+
10314
+ /* =========================================================
10315
+ 📑 ACCORDION
10316
+ ========================================================= */
10317
+ .default_accordion_item {
10318
+ border-bottom: 1px solid var(--border);
10319
+ }
10320
+ .default_accordion_trigger {
10321
+ width: 100%;
10322
+ text-align: left;
10323
+ padding: 0.9rem 0;
10324
+ font-weight: 500;
10325
+ color: var(--text);
10326
+ background: none;
10327
+ border: none;
10328
+ cursor: pointer;
10329
+ }
10330
+ .default_accordion_content {
10331
+ padding-bottom: 1rem;
10332
+ color: var(--muted);
10333
+ animation: fadeIn 0.2s ease;
10334
+ }
10335
+
10336
+ /* =========================================================
10337
+ 🗂 TABS
10338
+ ========================================================= */
10339
+ .default_tabs_list {
10340
+ display: flex;
10341
+ gap: 6px;
10342
+ background: rgba(148, 163, 184, 0.12);
10343
+ padding: 4px;
10344
+ border-radius: var(--radius-sm);
10345
+ width: fit-content;
10346
+ }
10347
+ .default_tabs_trigger {
10348
+ padding: 0.45rem 0.9rem;
10349
+ border-radius: 10px;
10350
+ border: none;
10351
+ background: transparent;
10352
+ cursor: pointer;
10353
+ color: var(--muted);
10354
+ transition: var(--transition);
10355
+ }
10356
+ .default_tabs_trigger.active {
10357
+ background: var(--bg);
10358
+ box-shadow: var(--shadow-sm);
10359
+ color: var(--text);
10360
+ }
10361
+ .default_tabs_content {
10362
+ margin-top: 1rem;
10363
+ }
10364
+
10365
+ /* =========================================================
10366
+ 💬 TOOLTIP
10367
+ ========================================================= */
10368
+ .default_tooltip {
10369
+ position: relative;
10370
+ display: inline-block;
10371
+ }
10372
+ .default_tooltip_text {
10373
+ position: absolute;
10374
+ bottom: 120%;
10375
+ left: 50%;
10376
+ transform: translateX(-50%) scale(0.95);
10377
+ background: #020617;
10378
+ color: white;
10379
+ padding: 4px 8px;
10380
+ font-size: 12px;
10381
+ border-radius: 6px;
10382
+ opacity: 0;
10383
+ pointer-events: none;
10384
+ transition: var(--transition);
10385
+ white-space: nowrap;
10386
+ }
10387
+ .default_tooltip:hover .default_tooltip_text {
10388
+ opacity: 1;
10389
+ transform: translateX(-50%) scale(1);
10390
+ }
10391
+
10392
+ /* =========================================================
10393
+ 🏷 BADGE
10394
+ ========================================================= */
10395
+ .default_badge {
10396
+ display: inline-block;
10397
+ padding: 2px 8px;
10398
+ font-size: 12px;
10399
+ border-radius: 999px;
10400
+ background: rgba(37, 99, 235, 0.1);
10401
+ color: var(--primary);
10402
+ font-weight: 500;
10403
+ }
10404
+
10405
+ /* =========================================================
10406
+ 👤 AVATAR
10407
+ ========================================================= */
10408
+ .default_avatar {
10409
+ width: 40px;
10410
+ height: 40px;
10411
+ border-radius: 999px;
10412
+ overflow: hidden;
10413
+ background: #e2e8f0;
10414
+ display: flex;
10415
+ align-items: center;
10416
+ justify-content: center;
10417
+ font-weight: 600;
10418
+ color: var(--text);
10419
+ }
10420
+ .default_avatar img {
10421
+ width: 100%;
10422
+ height: 100%;
10423
+ object-fit: cover;
10424
+ }
10425
+
10426
+ /* =========================================================
10427
+ 🚨 ALERT
10428
+ ========================================================= */
10429
+ .default_alert {
10430
+ padding: 0.9rem 1rem;
10431
+ border-radius: var(--radius-sm);
10432
+ border: 1px solid transparent;
10433
+ font-size: 14px;
10434
+ }
10435
+ .default_alert_success {
10436
+ background: rgba(22, 163, 74, 0.1);
10437
+ color: var(--success);
10438
+ }
10439
+ .default_alert_error {
10440
+ background: rgba(220, 38, 38, 0.1);
10441
+ color: var(--error);
10442
+ }
10443
+ .default_alert_warning {
10444
+ background: rgba(217, 119, 6, 0.1);
10445
+ color: var(--warning);
10446
+ }
10447
+ .default_alert_info {
10448
+ background: rgba(2, 132, 199, 0.1);
10449
+ color: var(--info);
10450
+ }
10451
+
10452
+ /* =========================================================
10453
+ 💀 SKELETON
10454
+ ========================================================= */
10455
+ .default_skeleton {
10456
+ background: linear-gradient(100deg, rgba(148, 163, 184, 0.2) 25%, rgba(148, 163, 184, 0.35) 37%, rgba(148, 163, 184, 0.2) 63%);
10457
+ background-size: 400% 100%;
10458
+ border-radius: var(--radius-sm);
10459
+ animation: shimmer 1.4s ease infinite;
10460
+ }
10461
+
10462
+ /* =========================================================
10463
+ 🔘 SWITCH
10464
+ ========================================================= */
10465
+ .default_switch {
10466
+ width: 42px;
10467
+ height: 24px;
10468
+ background: #cbd5f5;
10469
+ border-radius: 999px;
10470
+ position: relative;
10471
+ border: none;
10472
+ cursor: pointer;
10473
+ transition: var(--transition);
10474
+ }
10475
+ .default_switch_thumb {
10476
+ position: absolute;
10477
+ top: 3px;
10478
+ left: 3px;
10479
+ width: 18px;
10480
+ height: 18px;
10481
+ background: white;
10482
+ border-radius: 999px;
10483
+ transition: var(--transition);
10484
+ box-shadow: var(--shadow-sm);
10485
+ }
10486
+ .default_switch.active {
10487
+ background: var(--primary);
10488
+ }
10489
+ .default_switch.active .default_switch_thumb {
10490
+ transform: translateX(18px);
10491
+ }
10492
+
10493
+ /* =========================================================
10494
+ 📊 PROGRESS
10495
+ ========================================================= */
10496
+ .default_progress {
10497
+ width: 100%;
10498
+ height: 8px;
10499
+ background: #e2e8f0;
10500
+ border-radius: 999px;
10501
+ overflow: hidden;
10502
+ }
10503
+ .default_progress_bar {
10504
+ height: 100%;
10505
+ background: linear-gradient(90deg, #2563eb, #38bdf8);
10506
+ transition: width 0.3s ease;
10507
+ }
10508
+
10200
10509
  .grid {
10201
10510
  display: grid;
10202
10511
  }
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "strivui",
3
- "version": "1.22.55",
3
+ "version": "1.22.57",
4
4
  "scripts": {
5
5
  "build": "npx sass app/styles/striveui.scss dist/striveui.css && rollup -c",
6
6
  "clean": "rimraf dist"
7
7
  },
8
8
  "files": [
9
- "dist",
9
+ "dist/index.js",
10
+ "dist/index.esm.js",
11
+ "dist/types/index.d.ts",
12
+ "dist/striveui.css",
10
13
  "README.md"
11
14
  ],
12
15
  "description": "**StrivUI** is a modern, utility-first UI component library designed for building fast, beautiful, and accessible interfaces in **React** using both **TypeScript** and **JavaScript**.",