@webority/theme 0.7.4 → 0.7.5

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.
@@ -261,6 +261,118 @@
261
261
  display: inline-block;
262
262
  }
263
263
 
264
+ // Page/system-level announcement bar (AppBanner / <app-banner>). Full-width and persistent —
265
+ // distinct from an inline .alert or a transient toast. Tones reuse the shared soft/text ramp.
266
+ .wui-banner {
267
+ display: flex;
268
+ align-items: center;
269
+ gap: 12px;
270
+ width: 100%;
271
+ padding: 12px 20px;
272
+ font-size: 14px;
273
+ line-height: 1.4;
274
+ }
275
+ .wui-banner-icon {
276
+ flex: none;
277
+ display: inline-flex;
278
+ align-items: center;
279
+ }
280
+ .wui-banner-body {
281
+ flex: 1 1 auto;
282
+ min-width: 0;
283
+ }
284
+ .wui-banner-dismiss {
285
+ flex: none;
286
+ display: inline-flex;
287
+ align-items: center;
288
+ justify-content: center;
289
+ padding: 4px;
290
+ border: none;
291
+ background: transparent;
292
+ color: inherit;
293
+ cursor: pointer;
294
+ opacity: 0.7;
295
+ border-radius: var(--radius-sm);
296
+ }
297
+ .wui-banner-dismiss:hover {
298
+ opacity: 1;
299
+ }
300
+ .wui-banner-dismiss:focus-visible {
301
+ outline: 2px solid currentColor;
302
+ outline-offset: 2px;
303
+ }
304
+ .wui-banner-info {
305
+ background: var(--color-info-soft);
306
+ color: var(--color-info-text);
307
+ }
308
+ .wui-banner-success {
309
+ background: var(--color-success-soft);
310
+ color: var(--color-success-text);
311
+ }
312
+ .wui-banner-warning {
313
+ background: var(--color-warning-soft);
314
+ color: var(--color-warning-text);
315
+ }
316
+ .wui-banner-danger {
317
+ background: var(--color-danger-soft);
318
+ color: var(--color-danger-text);
319
+ }
320
+ .wui-banner-neutral {
321
+ background: var(--color-bg-subtle);
322
+ color: var(--color-text);
323
+ border-bottom: 1px solid var(--color-border);
324
+ }
325
+
326
+ // Determinate progress-bar fill tones (AppProgress / AppMeter / <app-progress>) — the fill sits
327
+ // in Bootstrap's .progress track; only the bar colour is brand-toned.
328
+ //
329
+ // success + danger use the DEEPENED -strong fills, not the mid tones: when showLabel is set the
330
+ // bar carries Bootstrap's WHITE label text, and white on the mid --wui-success (#17C653) /
331
+ // --wui-danger (#F8285A) fails AA (2.78:1 / 3.86:1). The -strong fills clear it (both ~5.8:1),
332
+ // the same trick btn-danger uses. info/warning/neutral stay on their mid tones (info/neutral
333
+ // pass with white; warning is not shown with a white label).
334
+ .wui-progress-info {
335
+ background-color: var(--color-info);
336
+ }
337
+ .wui-progress-success {
338
+ background-color: var(--wui-success-strong);
339
+ }
340
+ .wui-progress-warning {
341
+ background-color: var(--color-warning);
342
+ }
343
+ .wui-progress-danger {
344
+ background-color: var(--wui-danger-strong);
345
+ }
346
+ .wui-progress-neutral {
347
+ background-color: var(--color-text-subtle);
348
+ }
349
+ // Thin bar for inline / table use.
350
+ .progress.progress-sm {
351
+ height: 4px;
352
+ }
353
+ // Indeterminate "working…" sweep — a partial segment that travels the track (the bar carries
354
+ // no width style in this mode, so the width + motion come from here).
355
+ .wui-progress-indeterminate {
356
+ width: 40%;
357
+ animation: wui-progress-indeterminate 1.1s ease-in-out infinite;
358
+ }
359
+ @keyframes wui-progress-indeterminate {
360
+ 0% {
361
+ margin-left: -40%;
362
+ }
363
+ 100% {
364
+ margin-left: 100%;
365
+ }
366
+ }
367
+ @media (prefers-reduced-motion: reduce) {
368
+ // No sweep for reduced-motion users — settle to a static full bar.
369
+ .wui-progress-indeterminate {
370
+ margin-left: 0;
371
+ width: 100%;
372
+ animation: none;
373
+ }
374
+ }
375
+
264
376
  // ── Spinner / shimmer ──
265
377
  .wui-spinner {
266
378
  width: 18px;