@idds/styles 1.0.26

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 (81) hide show
  1. package/README.md +147 -0
  2. package/package.json +55 -0
  3. package/src/colors/brands/bgn.css +29 -0
  4. package/src/colors/brands/bkn.css +32 -0
  5. package/src/colors/brands/inagov.css +39 -0
  6. package/src/colors/brands/inaku.css +28 -0
  7. package/src/colors/brands/inapas.css +28 -0
  8. package/src/colors/brands/lan.css +38 -0
  9. package/src/colors/brands/pan-rb.css +30 -0
  10. package/src/colors/index.css +11 -0
  11. package/src/colors/primitives/index.css +150 -0
  12. package/src/colors/product/index.css +205 -0
  13. package/src/colors/utilities/index.css +77 -0
  14. package/src/components/accordion-card.css +99 -0
  15. package/src/components/accordion.css +120 -0
  16. package/src/components/action-dropdown.css +140 -0
  17. package/src/components/alert.css +180 -0
  18. package/src/components/avatar.css +182 -0
  19. package/src/components/badge.css +244 -0
  20. package/src/components/bottom-sheet.css +61 -0
  21. package/src/components/breadcrumb.css +94 -0
  22. package/src/components/button-group.css +130 -0
  23. package/src/components/button.css +233 -0
  24. package/src/components/card.css +488 -0
  25. package/src/components/carousel.css +100 -0
  26. package/src/components/chart.css +81 -0
  27. package/src/components/checkbox.css +211 -0
  28. package/src/components/chip.css +228 -0
  29. package/src/components/collapse.css +84 -0
  30. package/src/components/confirmation.css +131 -0
  31. package/src/components/date-picker.css +1063 -0
  32. package/src/components/divider.css +174 -0
  33. package/src/components/drawer.css +757 -0
  34. package/src/components/dropdown.css +369 -0
  35. package/src/components/field-input-table.css +347 -0
  36. package/src/components/file-upload.css +357 -0
  37. package/src/components/input-search.css +428 -0
  38. package/src/components/linear-progress-indicator.css +34 -0
  39. package/src/components/modal.css +497 -0
  40. package/src/components/month-picker.css +325 -0
  41. package/src/components/multiple-choice-grid.css +383 -0
  42. package/src/components/pagination.css +415 -0
  43. package/src/components/password-input.css +472 -0
  44. package/src/components/phone-input.css +412 -0
  45. package/src/components/progress-bar.css +447 -0
  46. package/src/components/radio-input.css +263 -0
  47. package/src/components/reset.css +431 -0
  48. package/src/components/select-dropdown.css +663 -0
  49. package/src/components/select-option.css +217 -0
  50. package/src/components/skeleton.css +488 -0
  51. package/src/components/spinner.css +450 -0
  52. package/src/components/stepper.css +209 -0
  53. package/src/components/tab-horizontal.css +278 -0
  54. package/src/components/tab-vertical.css +261 -0
  55. package/src/components/table-progress-bar.css +48 -0
  56. package/src/components/table.css +538 -0
  57. package/src/components/text-area.css +216 -0
  58. package/src/components/text-field.css +275 -0
  59. package/src/components/theme-toggle.css +259 -0
  60. package/src/components/time-picker.css +436 -0
  61. package/src/components/toast.css +245 -0
  62. package/src/components/toggle.css +223 -0
  63. package/src/components/tooltip.css +452 -0
  64. package/src/components/year-picker.css +423 -0
  65. package/src/index.css +3 -0
  66. package/src/tailwind/css/bgn.css +43 -0
  67. package/src/tailwind/css/bkn.css +37 -0
  68. package/src/tailwind/css/idds.css +231 -0
  69. package/src/tailwind/css/inagov.css +33 -0
  70. package/src/tailwind/css/inaku.css +33 -0
  71. package/src/tailwind/css/inapas.css +33 -0
  72. package/src/tailwind/css/lan.css +43 -0
  73. package/src/tailwind/css/pan-rb.css +35 -0
  74. package/src/tailwind/ts/bgn.ts +20 -0
  75. package/src/tailwind/ts/bkn.ts +38 -0
  76. package/src/tailwind/ts/idds.ts +240 -0
  77. package/src/tailwind/ts/inagov.ts +35 -0
  78. package/src/tailwind/ts/inaku.ts +35 -0
  79. package/src/tailwind/ts/inapas.ts +35 -0
  80. package/src/tailwind/ts/lan.ts +45 -0
  81. package/src/tailwind/ts/panrb.ts +37 -0
@@ -0,0 +1,217 @@
1
+ /* =========================== */
2
+ /* SELECT OPTION COMPONENT */
3
+ /* =========================== */
4
+
5
+ .ina-select-option {
6
+ /* Base container styling */
7
+ width: 100%;
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: var(--ina-spacing-2);
11
+ }
12
+
13
+ /* Label styling */
14
+ .ina-select-option__label {
15
+ display: flex;
16
+ align-items: center;
17
+ font-size: var(--ina-font-sm);
18
+ color: var(--ina-primary-600);
19
+ font-weight: var(--ina-font-medium);
20
+ }
21
+
22
+ .ina-select-option__label-required {
23
+ margin-left: var(--ina-spacing-1);
24
+ color: var(--ina-error-500);
25
+ font-weight: var(--ina-font-bold);
26
+ }
27
+
28
+ /* Value display */
29
+ .ina-select-option__value {
30
+ flex: 1;
31
+ font-size: var(--ina-font-sm);
32
+ color: var(--ina-primary-600);
33
+ font-weight: var(--ina-font-medium);
34
+ }
35
+
36
+ .ina-select-option__value--placeholder {
37
+ color: var(--ina-content-tertiary);
38
+ }
39
+
40
+ /* Bottom sheet container */
41
+ .ina-select-option__bottom-sheet {
42
+ position: relative;
43
+ margin-bottom: var(--ina-spacing-8);
44
+ }
45
+
46
+ /* Header section */
47
+ .ina-select-option__header {
48
+ position: sticky;
49
+ top: 0;
50
+ background-color: var(--ina-background-primary);
51
+ padding: var(--ina-spacing-4) var(--ina-spacing-4) var(--ina-spacing-3)
52
+ var(--ina-spacing-4);
53
+ border-bottom: 1px solid var(--ina-stroke-primary);
54
+ }
55
+
56
+ .ina-select-option__header-title {
57
+ display: flex;
58
+ align-items: center;
59
+ font-size: var(--ina-font-base);
60
+ font-weight: var(--ina-font-semibold);
61
+ color: var(--ina-primary-600);
62
+ }
63
+
64
+ .ina-select-option__header-back {
65
+ margin-right: var(--ina-spacing-2);
66
+ cursor: pointer;
67
+ color: var(--ina-primary-600);
68
+ }
69
+
70
+ .ina-select-option__header-back:hover {
71
+ color: var(--ina-primary-700);
72
+ }
73
+
74
+ /* Search section */
75
+ .ina-select-option__search {
76
+ padding: var(--ina-spacing-4);
77
+ }
78
+
79
+ /* Options grid */
80
+ .ina-select-option__options {
81
+ display: grid;
82
+ padding: var(--ina-spacing-4);
83
+ gap: var(--ina-spacing-2);
84
+ }
85
+
86
+ /* Option item */
87
+ .ina-select-option__option {
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: space-between;
91
+ padding: var(--ina-spacing-3);
92
+ border-radius: var(--ina-radius-md);
93
+ cursor: pointer;
94
+ transition: background-color 0.2s ease;
95
+ border: 1px solid transparent;
96
+ }
97
+
98
+ .ina-select-option__option:hover {
99
+ background-color: var(--ina-background-secondary);
100
+ }
101
+
102
+ .ina-select-option__option--selected {
103
+ background-color: var(--ina-primary-50);
104
+ border-color: var(--ina-primary-200);
105
+ }
106
+
107
+ .ina-select-option__option-label {
108
+ font-size: var(--ina-font-sm);
109
+ color: var(--ina-content-primary);
110
+ font-weight: var(--ina-font-medium);
111
+ }
112
+
113
+ .ina-select-option__option-check {
114
+ color: var(--ina-primary-600);
115
+ font-size: var(--ina-font-lg);
116
+ }
117
+
118
+ /* Empty state */
119
+ .ina-select-option__empty {
120
+ display: flex;
121
+ flex-direction: column;
122
+ align-items: center;
123
+ justify-content: center;
124
+ gap: var(--ina-spacing-4);
125
+ padding: var(--ina-spacing-8);
126
+ text-align: center;
127
+ }
128
+
129
+ .ina-select-option__empty-title {
130
+ font-size: var(--ina-font-lg);
131
+ font-weight: var(--ina-font-bold);
132
+ color: var(--ina-content-secondary);
133
+ }
134
+
135
+ .ina-select-option__empty-description {
136
+ font-size: var(--ina-font-sm);
137
+ color: var(--ina-content-secondary);
138
+ line-height: 1.5;
139
+ }
140
+
141
+ /* Responsive design */
142
+ @media (max-width: 640px) {
143
+ .ina-select-option__label {
144
+ font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
145
+ }
146
+
147
+ .ina-select-option__value {
148
+ font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
149
+ }
150
+
151
+ .ina-select-option__header-title {
152
+ font-size: var(--ina-font-sm); /* Turun dari base ke sm */
153
+ }
154
+
155
+ .ina-select-option__option-label {
156
+ font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
157
+ }
158
+
159
+ .ina-select-option__empty-title {
160
+ font-size: var(--ina-font-base); /* Turun dari lg ke base */
161
+ }
162
+
163
+ .ina-select-option__empty-description {
164
+ font-size: var(--ina-font-xs); /* Turun dari sm ke xs */
165
+ }
166
+ }
167
+
168
+ @media (min-width: 640px) {
169
+ .ina-select-option__options {
170
+ grid-template-columns: repeat(2, 1fr);
171
+ }
172
+ }
173
+
174
+ @media (min-width: 768px) {
175
+ .ina-select-option__options {
176
+ grid-template-columns: repeat(3, 1fr);
177
+ }
178
+ }
179
+
180
+ @media (min-width: 1024px) {
181
+ .ina-select-option__options {
182
+ grid-template-columns: repeat(4, 1fr);
183
+ }
184
+ }
185
+
186
+ /* Dark mode support */
187
+ /* @media (prefers-color-scheme: dark) {
188
+ .ina-select-option__header {
189
+ background-color: var(--ina-background-primary);
190
+ border-bottom-color: var(--ina-stroke-primary);
191
+ }
192
+
193
+ .ina-select-option__option:hover {
194
+ background-color: var(--ina-background-secondary);
195
+ }
196
+
197
+ .ina-select-option__option--selected {
198
+ background-color: var(--ina-primary-50);
199
+ border-color: var(--ina-primary-200);
200
+ }
201
+ } */
202
+
203
+ [data-theme='dark'] {
204
+ .ina-select-option__header {
205
+ background-color: var(--ina-background-primary);
206
+ border-bottom-color: var(--ina-stroke-primary);
207
+ }
208
+
209
+ .ina-select-option__option:hover {
210
+ background-color: var(--ina-background-secondary);
211
+ }
212
+
213
+ .ina-select-option__option--selected {
214
+ background-color: var(--ina-primary-50);
215
+ border-color: var(--ina-primary-200);
216
+ }
217
+ }
@@ -0,0 +1,488 @@
1
+ /**
2
+ * Skeleton Component Styles
3
+ * Menggunakan BEM naming convention dengan prefix "ina-"
4
+ */
5
+
6
+ .ina-skeleton {
7
+ /* Base skeleton styling */
8
+ position: relative;
9
+ overflow: hidden;
10
+ background-color: var(--ina-neutral-200);
11
+ animation: skeletonPulse 2s ease-in-out infinite;
12
+ }
13
+
14
+ @keyframes skeletonPulse {
15
+ 0%,
16
+ 100% {
17
+ opacity: 1;
18
+ }
19
+ 50% {
20
+ opacity: 0.5;
21
+ }
22
+ }
23
+
24
+ /* Width variants */
25
+ .ina-skeleton--width-xs {
26
+ width: 32px;
27
+ }
28
+
29
+ .ina-skeleton--width-sm {
30
+ width: 64px;
31
+ }
32
+
33
+ .ina-skeleton--width-md {
34
+ width: 128px;
35
+ }
36
+
37
+ .ina-skeleton--width-lg {
38
+ width: 256px;
39
+ }
40
+
41
+ .ina-skeleton--width-xl {
42
+ width: 512px;
43
+ }
44
+
45
+ .ina-skeleton--width-full {
46
+ width: 100%;
47
+ }
48
+
49
+ /* Height variants */
50
+ .ina-skeleton--height-xs {
51
+ height: 8px;
52
+ }
53
+
54
+ .ina-skeleton--height-sm {
55
+ height: 16px;
56
+ }
57
+
58
+ .ina-skeleton--height-md {
59
+ height: 32px;
60
+ }
61
+
62
+ .ina-skeleton--height-lg {
63
+ height: 64px;
64
+ }
65
+
66
+ .ina-skeleton--height-xl {
67
+ height: 128px;
68
+ }
69
+
70
+ .ina-skeleton--height-full {
71
+ height: 100%;
72
+ }
73
+
74
+ /* Border radius variants */
75
+ .ina-skeleton--rounded-none {
76
+ border-radius: 0;
77
+ }
78
+
79
+ .ina-skeleton--rounded-xs {
80
+ border-radius: var(--ina-radius-xs);
81
+ }
82
+
83
+ .ina-skeleton--rounded-sm {
84
+ border-radius: var(--ina-radius-sm);
85
+ }
86
+
87
+ .ina-skeleton--rounded-md {
88
+ border-radius: var(--ina-radius-md);
89
+ }
90
+
91
+ .ina-skeleton--rounded-lg {
92
+ border-radius: var(--ina-radius-lg);
93
+ }
94
+
95
+ .ina-skeleton--rounded-full {
96
+ border-radius: var(--ina-radius-full);
97
+ }
98
+
99
+ /* Color variants */
100
+ .ina-skeleton--color-gray {
101
+ background-color: var(--ina-neutral-200);
102
+ }
103
+
104
+ .ina-skeleton--color-blue {
105
+ background-color: var(--ina-primary-100);
106
+ }
107
+
108
+ .ina-skeleton--color-green {
109
+ background-color: var(--ina-positive-100);
110
+ }
111
+
112
+ .ina-skeleton--color-red {
113
+ background-color: var(--ina-negative-100);
114
+ }
115
+
116
+ .ina-skeleton--color-yellow {
117
+ background-color: var(--ina-warning-100);
118
+ }
119
+
120
+ /* Animation styles */
121
+ .ina-skeleton--animation-pulse {
122
+ animation: skeletonPulse 2s ease-in-out infinite;
123
+ }
124
+
125
+ .ina-skeleton--animation-wave {
126
+ animation: skeletonWave 1.5s ease-in-out infinite;
127
+ }
128
+
129
+ @keyframes skeletonWave {
130
+ 0% {
131
+ transform: translateX(-100%);
132
+ }
133
+ 100% {
134
+ transform: translateX(100%);
135
+ }
136
+ }
137
+
138
+ .ina-skeleton--animation-fade {
139
+ animation: skeletonFade 1.8s ease-in-out infinite;
140
+ }
141
+
142
+ @keyframes skeletonFade {
143
+ 0%,
144
+ 100% {
145
+ opacity: 1;
146
+ }
147
+ 50% {
148
+ opacity: 0.4;
149
+ }
150
+ }
151
+
152
+ /* Wave effect overlay */
153
+ .ina-skeleton__wave {
154
+ position: absolute;
155
+ top: 0;
156
+ left: 0;
157
+ bottom: 0;
158
+ width: 100%;
159
+ background: linear-gradient(
160
+ 90deg,
161
+ transparent 0%,
162
+ rgba(255, 255, 255, 0.6) 50%,
163
+ transparent 100%
164
+ );
165
+ animation: skeletonWave 1.5s ease-in-out infinite;
166
+ }
167
+
168
+ .ina-skeleton--animation-wave .ina-skeleton__wave {
169
+ display: block;
170
+ }
171
+
172
+ /* Glow effect */
173
+ .ina-skeleton--effect-glow {
174
+ box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
175
+ }
176
+
177
+ /* Gradient variants */
178
+ .ina-skeleton--gradient-linear {
179
+ background: linear-gradient(
180
+ 90deg,
181
+ var(--ina-neutral-200) 25%,
182
+ var(--ina-neutral-300) 50%,
183
+ var(--ina-neutral-200) 75%
184
+ );
185
+ background-size: 200% 100%;
186
+ animation: skeletonGradient 1.5s infinite ease-out;
187
+ }
188
+
189
+ @keyframes skeletonGradient {
190
+ 0% {
191
+ background-position: 200% 0;
192
+ }
193
+ 100% {
194
+ background-position: -200% 0;
195
+ }
196
+ }
197
+
198
+ .ina-skeleton--gradient-radial {
199
+ background: radial-gradient(
200
+ circle at center,
201
+ var(--ina-neutral-200) 40%,
202
+ var(--ina-neutral-300) 100%
203
+ );
204
+ }
205
+
206
+ /* Shape variants */
207
+ .ina-skeleton--shape-circle {
208
+ border-radius: var(--ina-radius-full);
209
+ }
210
+
211
+ .ina-skeleton--shape-rectangle {
212
+ border-radius: var(--ina-radius-md);
213
+ }
214
+
215
+ .ina-skeleton--shape-square {
216
+ border-radius: var(--ina-radius-base);
217
+ }
218
+
219
+ /* Text skeleton specific styling */
220
+ .ina-skeleton--text {
221
+ border-radius: var(--ina-radius-base);
222
+ height: 1em;
223
+ width: 100%;
224
+ }
225
+
226
+ .ina-skeleton--text--sm {
227
+ height: 0.875em;
228
+ }
229
+
230
+ .ina-skeleton--text--base {
231
+ height: 1em;
232
+ }
233
+
234
+ .ina-skeleton--text--lg {
235
+ height: 1.125em;
236
+ }
237
+
238
+ /* Block skeleton for rectangular shapes */
239
+ .ina-skeleton--block {
240
+ border-radius: var(--ina-radius-md);
241
+ }
242
+
243
+ /* Avatar skeleton */
244
+ .ina-skeleton--avatar {
245
+ border-radius: var(--ina-radius-full);
246
+ aspect-ratio: 1;
247
+ }
248
+
249
+ .ina-skeleton--avatar--sm {
250
+ width: 32px;
251
+ height: 32px;
252
+ }
253
+
254
+ .ina-skeleton--avatar--md {
255
+ width: 48px;
256
+ height: 48px;
257
+ }
258
+
259
+ .ina-skeleton--avatar--lg {
260
+ width: 64px;
261
+ height: 64px;
262
+ }
263
+
264
+ /* Button skeleton */
265
+ .ina-skeleton--button {
266
+ border-radius: var(--ina-radius-md);
267
+ height: 40px;
268
+ width: 120px;
269
+ }
270
+
271
+ .ina-skeleton--button--sm {
272
+ height: 32px;
273
+ width: 100px;
274
+ }
275
+
276
+ .ina-skeleton--button--lg {
277
+ height: 48px;
278
+ width: 140px;
279
+ }
280
+
281
+ /* Card skeleton */
282
+ .ina-skeleton--card {
283
+ border-radius: var(--ina-radius-lg);
284
+ width: 300px;
285
+ height: 200px;
286
+ }
287
+
288
+ /* Loading state */
289
+ .ina-skeleton--loading {
290
+ pointer-events: none;
291
+ user-select: none;
292
+ }
293
+
294
+ /* Skeleton group/spinner */
295
+ .ina-skeleton__group {
296
+ display: flex;
297
+ gap: var(--ina-spacing-3);
298
+ align-items: center;
299
+ }
300
+
301
+ .ina-skeleton__spinner {
302
+ width: 20px;
303
+ height: 20px;
304
+ border: 2px solid var(--ina-neutral-300);
305
+ border-top-color: var(--ina-primary-500);
306
+ border-radius: var(--ina-radius-full);
307
+ animation: skeletonSpin 1s linear infinite;
308
+ }
309
+
310
+ @keyframes skeletonSpin {
311
+ to {
312
+ transform: rotate(360deg);
313
+ }
314
+ }
315
+
316
+ /* Compound skeletons */
317
+ .ina-skeleton-group {
318
+ display: flex;
319
+ flex-direction: column;
320
+ gap: var(--ina-spacing-3);
321
+ }
322
+
323
+ .ina-skeleton-group--horizontal {
324
+ flex-direction: row;
325
+ align-items: center;
326
+ }
327
+
328
+ .ina-skeleton-group__item {
329
+ flex-shrink: 0;
330
+ }
331
+
332
+ .ina-skeleton-group__item--flex {
333
+ flex: 1;
334
+ }
335
+
336
+ /* Custom sizes with CSS variables */
337
+ .ina-skeleton--custom-size {
338
+ width: var(--skeleton-width, 100%);
339
+ height: var(--skeleton-height, auto);
340
+ }
341
+
342
+ /* Responsive behavior */
343
+ @media (max-width: 640px) {
344
+ .ina-skeleton--responsive-full {
345
+ width: 100%;
346
+ }
347
+
348
+ .ina-skeleton-group--horizontal {
349
+ flex-direction: column;
350
+ align-items: stretch;
351
+ }
352
+
353
+ .ina-skeleton--avatar--lg {
354
+ width: 48px;
355
+ height: 48px;
356
+ }
357
+
358
+ .ina-skeleton--card {
359
+ width: 100%;
360
+ max-width: 300px;
361
+ }
362
+ }
363
+
364
+ /* Dark mode support */
365
+ /* @media (prefers-color-scheme: dark) {
366
+ .ina-skeleton {
367
+ background-color: var(--ina-neutral-700);
368
+ }
369
+
370
+ .ina-skeleton--color-gray {
371
+ background-color: var(--ina-neutral-700);
372
+ }
373
+
374
+ .ina-skeleton--color-blue {
375
+ background-color: var(--ina-primary-900);
376
+ }
377
+
378
+ .ina-skeleton--color-green {
379
+ background-color: var(--ina-positive-900);
380
+ }
381
+
382
+ .ina-skeleton--color-red {
383
+ background-color: var(--ina-negative-900);
384
+ }
385
+
386
+ .ina-skeleton--color-yellow {
387
+ background-color: var(--ina-warning-900);
388
+ }
389
+
390
+ .ina-skeleton--gradient-linear {
391
+ background: linear-gradient(
392
+ 90deg,
393
+ var(--ina-neutral-700) 25%,
394
+ var(--ina-neutral-600),
395
+ var(--ina-neutral-700) 75%
396
+ );
397
+ background-size: 200% 100%;
398
+ }
399
+
400
+ .ina-skeleton--gradient-radial {
401
+ background: radial-gradient(
402
+ circle at center,
403
+ var(--ina-neutral-700) 40%,
404
+ var(--ina-neutral-600) 100%
405
+ );
406
+ }
407
+
408
+ .ina-skeleton__wave {
409
+ background: linear-gradient(
410
+ 90deg,
411
+ transparent 0%,
412
+ rgba(255, 255, 255, 0.1) 50%,
413
+ transparent 100%
414
+ );
415
+ }
416
+
417
+ .ina-skeleton__spinner {
418
+ border-color: var(--ina-neutral-600);
419
+ border-top-color: var(--ina-primary-400);
420
+ }
421
+ } */
422
+
423
+ /* High contrast mode */
424
+ @media (prefers-contrast: high) {
425
+ .ina-skeleton {
426
+ border: 1px solid var(--ina-content-primary);
427
+ }
428
+
429
+ .ina-skeleton--animation-pulse,
430
+ .ina-skeleton--animation-wave,
431
+ .ina-skeleton--animation-fade {
432
+ animation-duration: 0.1s;
433
+ }
434
+ }
435
+
436
+ /* Reduced motion */
437
+ @media (prefers-reduced-motion: reduce) {
438
+ .ina-skeleton,
439
+ .ina-skeleton--animation-pulse,
440
+ .ina-skeleton--animation-wave,
441
+ .ina-skeleton--animation-fade,
442
+ .ina-skeleton__wave,
443
+ .ina-skeleton__spinner,
444
+ .ina-skeleton--gradient-linear {
445
+ animation: none;
446
+ }
447
+
448
+ .ina-skeleton {
449
+ opacity: 0.7;
450
+ }
451
+
452
+ .ina-skeleton__wave {
453
+ display: none;
454
+ }
455
+ }
456
+
457
+ /* Accessibility improvements */
458
+ .ina-skeleton[aria-hidden='true'] {
459
+ visibility: hidden;
460
+ }
461
+
462
+ /* Print styles */
463
+ @media print {
464
+ .ina-skeleton {
465
+ display: none;
466
+ }
467
+ }
468
+
469
+ /* Custom shimmer implementation */
470
+ .ina-skeleton--shimmer {
471
+ background: linear-gradient(
472
+ 270deg,
473
+ var(--ina-neutral-100) 0%,
474
+ var(--ina-neutral-300) 50%,
475
+ var(--ina-neutral-100) 100%
476
+ );
477
+ background-size: 200% 100%;
478
+ animation: skeletonShimmer 1.8s ease-in-out infinite;
479
+ }
480
+
481
+ @keyframes skeletonShimmer {
482
+ 0% {
483
+ background-position: -200% 0;
484
+ }
485
+ 100% {
486
+ background-position: 200% 0;
487
+ }
488
+ }