@lumston/ds-angular 0.0.4 → 0.0.6

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 (29) hide show
  1. package/package.json +1 -1
  2. package/styles/data-display/badge/badge.styles.css +244 -0
  3. package/styles/data-display/chip/chip.styles.css +245 -0
  4. package/styles/dropdown/dropdown.styles.css +14 -0
  5. package/styles/feedback/alert/alert.styles.css +304 -0
  6. package/styles/feedback/loader/loader.styles.css +132 -0
  7. package/styles/feedback/progress-bar/progress-bar.styles.css +193 -0
  8. package/styles/icon/icon.styles.css +11 -0
  9. package/styles/inputs/button/button.styles.css +377 -0
  10. package/styles/inputs/checkbox/checkbox.styles.css +157 -0
  11. package/styles/inputs/icon-button/icon-button.styles.css +157 -0
  12. package/styles/inputs/radio-button/radio-button.styles.css +274 -0
  13. package/styles/inputs/slider/slider.styles.css +228 -0
  14. package/styles/inputs/switch/switch.styles.css +483 -0
  15. package/styles/media/avatar/avatar.styles.css +112 -0
  16. package/styles/media/avatar-group/avatar-group.styles.css +37 -0
  17. package/styles/media/logo/logo.styles.css +40 -0
  18. package/styles/navigation/breadcrumb/breadcrumb.styles.css +144 -0
  19. package/styles/navigation/pagination/pagination.styles.css +336 -0
  20. package/styles/overlay/menu/menu.styles.css +138 -0
  21. package/styles/overlay/modal/modal.styles.css +178 -0
  22. package/styles/overlay/popover/popover.styles.css +112 -0
  23. package/styles/overlay/tooltip/tooltip.styles.css +172 -0
  24. package/styles/styles/_base.css +10 -0
  25. package/styles/styles/_tokens.css +75 -0
  26. package/styles/styles/index.css +28 -0
  27. package/styles/typography/link/link.styles.css +93 -0
  28. package/styles/typography/tag/tag.styles.css +274 -0
  29. package/styles/typography/text/text.styles.css +176 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumston/ds-angular",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Lumston Design System for Angular",
5
5
  "author": "tsanchez",
6
6
  "peerDependencies": {
@@ -0,0 +1,244 @@
1
+ /* Badge Component */
2
+
3
+ /* === Host === */
4
+ :host {
5
+ display: contents;
6
+ }
7
+
8
+ /* === Wrapper === */
9
+ .badge-wrapper {
10
+ position: relative;
11
+ display: inline-flex;
12
+ vertical-align: middle;
13
+ }
14
+
15
+ /* === Badge Base === */
16
+ .badge {
17
+ position: absolute;
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ font-size: 0.625rem;
22
+ font-weight: 600;
23
+ line-height: 1;
24
+ min-width: 20px;
25
+ height: 20px;
26
+ padding: 0 6px;
27
+ border-radius: var(--ls-border-radius-full);
28
+ white-space: nowrap;
29
+ z-index: 1;
30
+ pointer-events: none;
31
+ transition: transform var(--ls-transition-duration) ease;
32
+
33
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
34
+ }
35
+
36
+ /* ══════════════════════════════════════════════════════════════════════
37
+ Variant — Solid
38
+ ══════════════════════════════════════════════════════════════════════ */
39
+
40
+ .badge-solid {
41
+ color: #ffffff;
42
+ }
43
+
44
+ /* ══════════════════════════════════════════════════════════════════════
45
+ Variant — Outlined
46
+ ══════════════════════════════════════════════════════════════════════ */
47
+
48
+ .badge-outlined {
49
+ background-color: transparent;
50
+ border-width: 2px;
51
+ border-style: solid;
52
+ }
53
+
54
+ /* ══════════════════════════════════════════════════════════════════════
55
+ Variant — Dot
56
+ ══════════════════════════════════════════════════════════════════════ */
57
+
58
+ .badge-dot {
59
+ min-width: 10px;
60
+ width: 10px;
61
+ height: 10px;
62
+ padding: 0;
63
+ border-radius: 50%;
64
+ }
65
+
66
+ /* ══════════════════════════════════════════════════════════════════════
67
+ Position Modifiers
68
+ ══════════════════════════════════════════════════════════════════════ */
69
+
70
+ .badge-top-right {
71
+ top: 0;
72
+ right: 0;
73
+ transform: translate(50%, -50%);
74
+ }
75
+
76
+ .badge-top-left {
77
+ top: 0;
78
+ left: 0;
79
+ transform: translate(-50%, -50%);
80
+ }
81
+
82
+ .badge-bottom-right {
83
+ bottom: 0;
84
+ right: 0;
85
+ transform: translate(50%, 50%);
86
+ }
87
+
88
+ .badge-bottom-left {
89
+ bottom: 0;
90
+ left: 0;
91
+ transform: translate(-50%, 50%);
92
+ }
93
+
94
+ /* ══════════════════════════════════════════════════════════════════════
95
+ Overlap — Circular (inward offset for round elements)
96
+ ══════════════════════════════════════════════════════════════════════ */
97
+
98
+ .badge-overlap-circular.badge-top-right {
99
+ top: 8%;
100
+ right: 8%;
101
+ }
102
+
103
+ .badge-overlap-circular.badge-top-left {
104
+ top: 8%;
105
+ left: 8%;
106
+ }
107
+
108
+ .badge-overlap-circular.badge-bottom-right {
109
+ bottom: 8%;
110
+ right: 8%;
111
+ }
112
+
113
+ .badge-overlap-circular.badge-bottom-left {
114
+ bottom: 8%;
115
+ left: 8%;
116
+ }
117
+
118
+ /* ══════════════════════════════════════════════════════════════════════
119
+ Severity Colors — Solid
120
+ ══════════════════════════════════════════════════════════════════════ */
121
+
122
+ .badge-solid.badge-primary {
123
+ background-color: var(--ls-color-primary);
124
+ }
125
+
126
+ .badge-solid.badge-secondary {
127
+ background-color: var(--ls-color-secondary);
128
+ }
129
+
130
+ .badge-solid.badge-success {
131
+ background-color: var(--ls-color-success);
132
+ }
133
+
134
+ .badge-solid.badge-warning {
135
+ background-color: var(--ls-color-warning);
136
+ }
137
+
138
+ .badge-solid.badge-error {
139
+ background-color: var(--ls-color-danger);
140
+ }
141
+
142
+ .badge-solid.badge-info {
143
+ background-color: var(--ls-color-info);
144
+ }
145
+
146
+ /* ══════════════════════════════════════════════════════════════════════
147
+ Severity Colors — Outlined
148
+ ══════════════════════════════════════════════════════════════════════ */
149
+
150
+ .badge-outlined.badge-primary {
151
+ border-color: var(--ls-color-primary);
152
+ color: var(--ls-color-primary);
153
+ }
154
+
155
+ .badge-outlined.badge-secondary {
156
+ border-color: var(--ls-color-secondary);
157
+ color: var(--ls-color-secondary);
158
+ }
159
+
160
+ .badge-outlined.badge-success {
161
+ border-color: var(--ls-color-success);
162
+ color: var(--ls-color-success);
163
+ }
164
+
165
+ .badge-outlined.badge-warning {
166
+ border-color: var(--ls-color-warning);
167
+ color: var(--ls-color-warning);
168
+ }
169
+
170
+ .badge-outlined.badge-error {
171
+ border-color: var(--ls-color-danger);
172
+ color: var(--ls-color-danger);
173
+ }
174
+
175
+ .badge-outlined.badge-info {
176
+ border-color: var(--ls-color-info);
177
+ color: var(--ls-color-info);
178
+ }
179
+
180
+ /* ══════════════════════════════════════════════════════════════════════
181
+ Severity Colors — Dot
182
+ ══════════════════════════════════════════════════════════════════════ */
183
+
184
+ .badge-dot.badge-primary {
185
+ background-color: var(--ls-color-primary);
186
+ }
187
+
188
+ .badge-dot.badge-secondary {
189
+ background-color: var(--ls-color-secondary);
190
+ }
191
+
192
+ .badge-dot.badge-success {
193
+ background-color: var(--ls-color-success);
194
+ }
195
+
196
+ .badge-dot.badge-warning {
197
+ background-color: var(--ls-color-warning);
198
+ }
199
+
200
+ .badge-dot.badge-error {
201
+ background-color: var(--ls-color-danger);
202
+ }
203
+
204
+ .badge-dot.badge-info {
205
+ background-color: var(--ls-color-info);
206
+ }
207
+
208
+ /* ══════════════════════════════════════════════════════════════════════
209
+ Dark Mode
210
+ ══════════════════════════════════════════════════════════════════════ */
211
+
212
+ body.dark .badge-solid {
213
+ color: #ffffff;
214
+ }
215
+
216
+ body.dark .badge-outlined.badge-primary {
217
+ border-color: var(--ls-color-primary);
218
+ color: var(--ls-color-primary);
219
+ }
220
+
221
+ body.dark .badge-outlined.badge-secondary {
222
+ border-color: #9ca3af;
223
+ color: #9ca3af;
224
+ }
225
+
226
+ body.dark .badge-outlined.badge-success {
227
+ border-color: var(--ls-color-success);
228
+ color: var(--ls-color-success);
229
+ }
230
+
231
+ body.dark .badge-outlined.badge-warning {
232
+ border-color: var(--ls-color-warning);
233
+ color: var(--ls-color-warning);
234
+ }
235
+
236
+ body.dark .badge-outlined.badge-error {
237
+ border-color: var(--ls-color-danger);
238
+ color: var(--ls-color-danger);
239
+ }
240
+
241
+ body.dark .badge-outlined.badge-info {
242
+ border-color: var(--ls-color-info);
243
+ color: var(--ls-color-info);
244
+ }
@@ -0,0 +1,245 @@
1
+ :host {
2
+ display: contents;
3
+ }
4
+
5
+ /* Base */
6
+ .chip {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ border-radius: var(--ls-border-radius-full);
10
+ font-weight: 500;
11
+ white-space: nowrap;
12
+ vertical-align: middle;
13
+ outline: none;
14
+ transition:
15
+ background-color 150ms ease,
16
+ box-shadow 150ms ease;
17
+ user-select: none;
18
+ }
19
+
20
+ /* Sizes */
21
+ .chip-medium {
22
+ height: 32px;
23
+ padding: 0 12px;
24
+ font-size: 0.8125rem;
25
+ line-height: 32px;
26
+ gap: 6px;
27
+ }
28
+
29
+ .chip-small {
30
+ height: 24px;
31
+ padding: 0 8px;
32
+ font-size: 0.75rem;
33
+ line-height: 24px;
34
+ gap: 4px;
35
+ }
36
+
37
+ /* Filled — default */
38
+ .chip-filled.chip-default {
39
+ background-color: #e0e0e0;
40
+ color: rgba(0, 0, 0, 0.87);
41
+ }
42
+
43
+ /* Filled — semantic colors */
44
+ .chip-filled.chip-primary {
45
+ background-color: var(--ls-color-primary);
46
+ color: #ffffff;
47
+ }
48
+
49
+ .chip-filled.chip-secondary {
50
+ background-color: var(--ls-color-secondary);
51
+ color: #ffffff;
52
+ }
53
+
54
+ .chip-filled.chip-success {
55
+ background-color: var(--ls-color-success);
56
+ color: #ffffff;
57
+ }
58
+
59
+ .chip-filled.chip-warning {
60
+ background-color: var(--ls-color-warning);
61
+ color: #ffffff;
62
+ }
63
+
64
+ .chip-filled.chip-error {
65
+ background-color: var(--ls-color-danger);
66
+ color: #ffffff;
67
+ }
68
+
69
+ .chip-filled.chip-info {
70
+ background-color: var(--ls-color-info);
71
+ color: #ffffff;
72
+ }
73
+
74
+ /* Outlined — default */
75
+ .chip-outlined.chip-default {
76
+ background-color: transparent;
77
+ border: 1px solid #bdbdbd;
78
+ color: rgba(0, 0, 0, 0.87);
79
+ }
80
+
81
+ /* Outlined — semantic colors */
82
+ .chip-outlined.chip-primary {
83
+ background-color: transparent;
84
+ border: 1px solid var(--ls-color-primary);
85
+ color: var(--ls-color-primary);
86
+ }
87
+
88
+ .chip-outlined.chip-secondary {
89
+ background-color: transparent;
90
+ border: 1px solid var(--ls-color-secondary);
91
+ color: var(--ls-color-secondary);
92
+ }
93
+
94
+ .chip-outlined.chip-success {
95
+ background-color: transparent;
96
+ border: 1px solid var(--ls-color-success);
97
+ color: var(--ls-color-success);
98
+ }
99
+
100
+ .chip-outlined.chip-warning {
101
+ background-color: transparent;
102
+ border: 1px solid var(--ls-color-warning);
103
+ color: var(--ls-color-warning);
104
+ }
105
+
106
+ .chip-outlined.chip-error {
107
+ background-color: transparent;
108
+ border: 1px solid var(--ls-color-danger);
109
+ color: var(--ls-color-danger);
110
+ }
111
+
112
+ .chip-outlined.chip-info {
113
+ background-color: transparent;
114
+ border: 1px solid var(--ls-color-info);
115
+ color: var(--ls-color-info);
116
+ }
117
+
118
+ /* Clickable */
119
+ .chip-clickable {
120
+ cursor: pointer;
121
+ }
122
+
123
+ .chip-clickable:hover {
124
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
125
+ }
126
+
127
+ .chip-clickable.chip-filled.chip-default:hover {
128
+ background-color: #d5d5d5;
129
+ }
130
+
131
+ .chip-clickable.chip-filled.chip-primary:hover {
132
+ filter: brightness(0.9);
133
+ }
134
+
135
+ .chip-clickable.chip-filled.chip-secondary:hover {
136
+ filter: brightness(0.9);
137
+ }
138
+
139
+ .chip-clickable.chip-filled.chip-success:hover {
140
+ filter: brightness(0.9);
141
+ }
142
+
143
+ .chip-clickable.chip-filled.chip-warning:hover {
144
+ filter: brightness(0.9);
145
+ }
146
+
147
+ .chip-clickable.chip-filled.chip-error:hover {
148
+ filter: brightness(0.9);
149
+ }
150
+
151
+ .chip-clickable.chip-filled.chip-info:hover {
152
+ filter: brightness(0.9);
153
+ }
154
+
155
+ .chip-clickable.chip-outlined:hover {
156
+ background-color: rgba(0, 0, 0, 0.04);
157
+ }
158
+
159
+ /* Disabled */
160
+ .chip-disabled {
161
+ opacity: 0.6;
162
+ pointer-events: none;
163
+ cursor: default;
164
+ }
165
+
166
+ /* Avatar */
167
+ .chip-avatar {
168
+ width: 24px;
169
+ height: 24px;
170
+ border-radius: 50%;
171
+ object-fit: cover;
172
+ margin-left: -4px;
173
+ }
174
+
175
+ .chip-small .chip-avatar {
176
+ width: 18px;
177
+ height: 18px;
178
+ margin-left: -2px;
179
+ }
180
+
181
+ /* Icon */
182
+ .chip-icon {
183
+ display: inline-flex;
184
+ align-items: center;
185
+ flex-shrink: 0;
186
+ }
187
+
188
+ .chip-icon > svg {
189
+ width: 18px;
190
+ height: 18px;
191
+ }
192
+
193
+ .chip-small .chip-icon > svg {
194
+ width: 16px;
195
+ height: 16px;
196
+ }
197
+
198
+ /* Delete button */
199
+ .chip-delete {
200
+ display: inline-flex;
201
+ align-items: center;
202
+ justify-content: center;
203
+ flex-shrink: 0;
204
+ cursor: pointer;
205
+ border: none;
206
+ background: transparent;
207
+ color: inherit;
208
+ opacity: 0.7;
209
+ padding: 0;
210
+ margin-right: -4px;
211
+ transition: opacity 150ms ease;
212
+ }
213
+
214
+ .chip-delete:hover {
215
+ opacity: 1;
216
+ }
217
+
218
+ .chip-delete-svg {
219
+ width: 18px;
220
+ height: 18px;
221
+ }
222
+
223
+ .chip-small .chip-delete-svg {
224
+ width: 16px;
225
+ height: 16px;
226
+ }
227
+
228
+ /* Dark Mode */
229
+ body.dark .chip-filled.chip-default {
230
+ background-color: #4a4a4a;
231
+ color: #e0e0e0;
232
+ }
233
+
234
+ body.dark .chip-clickable.chip-filled.chip-default:hover {
235
+ background-color: #5a5a5a;
236
+ }
237
+
238
+ body.dark .chip-outlined.chip-default {
239
+ border-color: #616161;
240
+ color: #e0e0e0;
241
+ }
242
+
243
+ body.dark .chip-clickable.chip-outlined:hover {
244
+ background-color: rgba(255, 255, 255, 0.08);
245
+ }
@@ -0,0 +1,14 @@
1
+ /* Dropdown Component — Pure CSS */
2
+
3
+ :host {
4
+ display: block;
5
+ }
6
+
7
+ .dropdown {
8
+ position: relative;
9
+ }
10
+
11
+ .dropdown-content {
12
+ position: absolute;
13
+ z-index: 50;
14
+ }