@ngstarter-ui/components 21.0.1 → 21.0.3
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.
|
@@ -1268,7 +1268,7 @@ function generateNgsThemeProperties(primaryColor, colorScheme = 'light') {
|
|
|
1268
1268
|
return {
|
|
1269
1269
|
'--ngs-color-primary-seed': primaryColor,
|
|
1270
1270
|
'--ngs-color-primary': primaryColor,
|
|
1271
|
-
'--ngs-color-on-primary':
|
|
1271
|
+
'--ngs-color-on-primary': '#ffffff',
|
|
1272
1272
|
};
|
|
1273
1273
|
}
|
|
1274
1274
|
return colorScheme === 'dark'
|
|
@@ -1298,27 +1298,27 @@ function generateLightThemeProperties(seed) {
|
|
|
1298
1298
|
return withSharedGeneratedProperties({
|
|
1299
1299
|
'--ngs-color-primary': primary,
|
|
1300
1300
|
'--ngs-color-primary-seed': primary,
|
|
1301
|
-
'--ngs-color-on-primary': contrastColor(
|
|
1301
|
+
'--ngs-color-on-primary': contrastColor(primary),
|
|
1302
1302
|
'--ngs-color-primary-container': primaryContainer,
|
|
1303
|
-
'--ngs-color-on-primary-container': contrastColor(
|
|
1303
|
+
'--ngs-color-on-primary-container': contrastColor(primaryContainer),
|
|
1304
1304
|
'--ngs-color-secondary': secondary,
|
|
1305
|
-
'--ngs-color-on-secondary': contrastColor(
|
|
1305
|
+
'--ngs-color-on-secondary': contrastColor(secondary),
|
|
1306
1306
|
'--ngs-color-secondary-container': secondaryContainer,
|
|
1307
|
-
'--ngs-color-on-secondary-container': contrastColor(
|
|
1307
|
+
'--ngs-color-on-secondary-container': contrastColor(secondaryContainer),
|
|
1308
1308
|
'--ngs-color-tertiary': tertiary,
|
|
1309
|
-
'--ngs-color-on-tertiary': contrastColor(
|
|
1309
|
+
'--ngs-color-on-tertiary': contrastColor(tertiary),
|
|
1310
1310
|
'--ngs-color-tertiary-container': tertiaryContainer,
|
|
1311
|
-
'--ngs-color-on-tertiary-container': contrastColor(
|
|
1311
|
+
'--ngs-color-on-tertiary-container': contrastColor(tertiaryContainer),
|
|
1312
1312
|
'--ngs-color-info': info,
|
|
1313
|
-
'--ngs-color-on-info': contrastColor(
|
|
1313
|
+
'--ngs-color-on-info': contrastColor(info),
|
|
1314
1314
|
'--ngs-color-info-container': infoContainer,
|
|
1315
|
-
'--ngs-color-on-info-container': contrastColor(
|
|
1315
|
+
'--ngs-color-on-info-container': contrastColor(infoContainer),
|
|
1316
1316
|
...status,
|
|
1317
1317
|
'--ngs-color-background': neutral[0],
|
|
1318
|
-
'--ngs-color-on-background': contrastColor(
|
|
1318
|
+
'--ngs-color-on-background': contrastColor(neutral[0]),
|
|
1319
1319
|
'--ngs-color-surface': neutral[1],
|
|
1320
1320
|
'--ngs-color-surface-bright': '#ffffff',
|
|
1321
|
-
'--ngs-color-on-surface': contrastColor(
|
|
1321
|
+
'--ngs-color-on-surface': contrastColor(neutral[1]),
|
|
1322
1322
|
'--ngs-color-on-surface-variant': neutral[6],
|
|
1323
1323
|
'--ngs-color-neutral-50': neutral[0],
|
|
1324
1324
|
'--ngs-color-neutral-100': neutral[1],
|
|
@@ -1361,7 +1361,7 @@ function generateLightThemeProperties(seed) {
|
|
|
1361
1361
|
}
|
|
1362
1362
|
function generateDarkThemeProperties(seed) {
|
|
1363
1363
|
const source = rgbToHsl(seed);
|
|
1364
|
-
const primary = colorFromTone(source,
|
|
1364
|
+
const primary = colorFromTone(source, 82, 0.82);
|
|
1365
1365
|
const primaryContainer = colorFromTone(source, 28, 0.78);
|
|
1366
1366
|
const secondary = colorFromTone(source, 78, 0.36, -8);
|
|
1367
1367
|
const secondaryContainer = colorFromTone(source, 28, 0.3, -8);
|
|
@@ -1377,27 +1377,27 @@ function generateDarkThemeProperties(seed) {
|
|
|
1377
1377
|
return withSharedGeneratedProperties({
|
|
1378
1378
|
'--ngs-color-primary': primary,
|
|
1379
1379
|
'--ngs-color-primary-seed': toHex(seed),
|
|
1380
|
-
'--ngs-color-on-primary': contrastColor(
|
|
1380
|
+
'--ngs-color-on-primary': contrastColor(primary),
|
|
1381
1381
|
'--ngs-color-primary-container': primaryContainer,
|
|
1382
|
-
'--ngs-color-on-primary-container': contrastColor(
|
|
1382
|
+
'--ngs-color-on-primary-container': contrastColor(primaryContainer),
|
|
1383
1383
|
'--ngs-color-secondary': secondary,
|
|
1384
|
-
'--ngs-color-on-secondary': contrastColor(
|
|
1384
|
+
'--ngs-color-on-secondary': contrastColor(secondary),
|
|
1385
1385
|
'--ngs-color-secondary-container': secondaryContainer,
|
|
1386
|
-
'--ngs-color-on-secondary-container': contrastColor(
|
|
1386
|
+
'--ngs-color-on-secondary-container': contrastColor(secondaryContainer),
|
|
1387
1387
|
'--ngs-color-tertiary': tertiary,
|
|
1388
|
-
'--ngs-color-on-tertiary': contrastColor(
|
|
1388
|
+
'--ngs-color-on-tertiary': contrastColor(tertiary),
|
|
1389
1389
|
'--ngs-color-tertiary-container': tertiaryContainer,
|
|
1390
|
-
'--ngs-color-on-tertiary-container': contrastColor(
|
|
1390
|
+
'--ngs-color-on-tertiary-container': contrastColor(tertiaryContainer),
|
|
1391
1391
|
'--ngs-color-info': info,
|
|
1392
|
-
'--ngs-color-on-info': contrastColor(
|
|
1392
|
+
'--ngs-color-on-info': contrastColor(info),
|
|
1393
1393
|
'--ngs-color-info-container': infoContainer,
|
|
1394
|
-
'--ngs-color-on-info-container': contrastColor(
|
|
1394
|
+
'--ngs-color-on-info-container': contrastColor(infoContainer),
|
|
1395
1395
|
...status,
|
|
1396
1396
|
'--ngs-color-background': neutral[0],
|
|
1397
|
-
'--ngs-color-on-background': contrastColor(
|
|
1397
|
+
'--ngs-color-on-background': contrastColor(neutral[0]),
|
|
1398
1398
|
'--ngs-color-surface': neutral[1],
|
|
1399
1399
|
'--ngs-color-surface-bright': neutral[2],
|
|
1400
|
-
'--ngs-color-on-surface': contrastColor(
|
|
1400
|
+
'--ngs-color-on-surface': contrastColor(neutral[1]),
|
|
1401
1401
|
'--ngs-color-on-surface-variant': neutral[8],
|
|
1402
1402
|
'--ngs-color-neutral-50': neutral[0],
|
|
1403
1403
|
'--ngs-color-neutral-100': neutral[1],
|
|
@@ -1476,47 +1476,59 @@ function makeNeutralScale(source, colorScheme) {
|
|
|
1476
1476
|
}
|
|
1477
1477
|
function makeStatusColors(colorScheme) {
|
|
1478
1478
|
if (colorScheme === 'dark') {
|
|
1479
|
+
const danger = '#f87171';
|
|
1480
|
+
const dangerContainer = '#7f1d1d';
|
|
1481
|
+
const success = '#4ade80';
|
|
1482
|
+
const successContainer = '#166534';
|
|
1483
|
+
const warning = '#fbbf24';
|
|
1484
|
+
const warningContainer = '#78350f';
|
|
1479
1485
|
return {
|
|
1480
|
-
'--ngs-color-danger':
|
|
1481
|
-
'--ngs-color-on-danger': contrastColor(
|
|
1482
|
-
'--ngs-color-danger-container':
|
|
1483
|
-
'--ngs-color-on-danger-container': contrastColor(
|
|
1486
|
+
'--ngs-color-danger': danger,
|
|
1487
|
+
'--ngs-color-on-danger': contrastColor(danger),
|
|
1488
|
+
'--ngs-color-danger-container': dangerContainer,
|
|
1489
|
+
'--ngs-color-on-danger-container': contrastColor(dangerContainer),
|
|
1484
1490
|
'--ngs-color-danger-container-lowest': '#1f0707',
|
|
1485
1491
|
'--ngs-color-danger-container-low': '#2f0b0b',
|
|
1486
1492
|
'--ngs-color-danger-container-high': '#5f1717',
|
|
1487
1493
|
'--ngs-color-danger-container-highest': '#7f1d1d',
|
|
1488
|
-
'--ngs-color-success':
|
|
1489
|
-
'--ngs-color-on-success': contrastColor(
|
|
1490
|
-
'--ngs-color-success-container':
|
|
1491
|
-
'--ngs-color-on-success-container': contrastColor(
|
|
1492
|
-
'--ngs-color-warning':
|
|
1493
|
-
'--ngs-color-on-warning': contrastColor(
|
|
1494
|
-
'--ngs-color-warning-container':
|
|
1495
|
-
'--ngs-color-on-warning-container': contrastColor(
|
|
1496
|
-
'--ngs-color-orange-container':
|
|
1497
|
-
'--ngs-color-on-orange-container': contrastColor(
|
|
1494
|
+
'--ngs-color-success': success,
|
|
1495
|
+
'--ngs-color-on-success': contrastColor(success),
|
|
1496
|
+
'--ngs-color-success-container': successContainer,
|
|
1497
|
+
'--ngs-color-on-success-container': contrastColor(successContainer),
|
|
1498
|
+
'--ngs-color-warning': warning,
|
|
1499
|
+
'--ngs-color-on-warning': contrastColor(warning),
|
|
1500
|
+
'--ngs-color-warning-container': warningContainer,
|
|
1501
|
+
'--ngs-color-on-warning-container': contrastColor(warningContainer),
|
|
1502
|
+
'--ngs-color-orange-container': warningContainer,
|
|
1503
|
+
'--ngs-color-on-orange-container': contrastColor(warningContainer),
|
|
1498
1504
|
'--ngs-color-green-500': '#4ade80',
|
|
1499
1505
|
};
|
|
1500
1506
|
}
|
|
1507
|
+
const danger = '#dc2626';
|
|
1508
|
+
const dangerContainer = '#fee2e2';
|
|
1509
|
+
const success = '#16a34a';
|
|
1510
|
+
const successContainer = '#dcfce7';
|
|
1511
|
+
const warning = '#d97706';
|
|
1512
|
+
const warningContainer = '#fef3c7';
|
|
1501
1513
|
return {
|
|
1502
|
-
'--ngs-color-danger':
|
|
1503
|
-
'--ngs-color-on-danger': contrastColor(
|
|
1504
|
-
'--ngs-color-danger-container':
|
|
1505
|
-
'--ngs-color-on-danger-container': contrastColor(
|
|
1514
|
+
'--ngs-color-danger': danger,
|
|
1515
|
+
'--ngs-color-on-danger': contrastColor(danger),
|
|
1516
|
+
'--ngs-color-danger-container': dangerContainer,
|
|
1517
|
+
'--ngs-color-on-danger-container': contrastColor(dangerContainer),
|
|
1506
1518
|
'--ngs-color-danger-container-lowest': '#fffafa',
|
|
1507
1519
|
'--ngs-color-danger-container-low': '#fef2f2',
|
|
1508
1520
|
'--ngs-color-danger-container-high': '#fecaca',
|
|
1509
1521
|
'--ngs-color-danger-container-highest': '#fca5a5',
|
|
1510
|
-
'--ngs-color-success':
|
|
1511
|
-
'--ngs-color-on-success': contrastColor(
|
|
1512
|
-
'--ngs-color-success-container':
|
|
1513
|
-
'--ngs-color-on-success-container': contrastColor(
|
|
1514
|
-
'--ngs-color-warning':
|
|
1515
|
-
'--ngs-color-on-warning': contrastColor(
|
|
1516
|
-
'--ngs-color-warning-container':
|
|
1517
|
-
'--ngs-color-on-warning-container': contrastColor(
|
|
1518
|
-
'--ngs-color-orange-container':
|
|
1519
|
-
'--ngs-color-on-orange-container': contrastColor(
|
|
1522
|
+
'--ngs-color-success': success,
|
|
1523
|
+
'--ngs-color-on-success': contrastColor(success),
|
|
1524
|
+
'--ngs-color-success-container': successContainer,
|
|
1525
|
+
'--ngs-color-on-success-container': contrastColor(successContainer),
|
|
1526
|
+
'--ngs-color-warning': warning,
|
|
1527
|
+
'--ngs-color-on-warning': contrastColor(warning),
|
|
1528
|
+
'--ngs-color-warning-container': warningContainer,
|
|
1529
|
+
'--ngs-color-on-warning-container': contrastColor(warningContainer),
|
|
1530
|
+
'--ngs-color-orange-container': warningContainer,
|
|
1531
|
+
'--ngs-color-on-orange-container': contrastColor(warningContainer),
|
|
1520
1532
|
'--ngs-color-green-500': '#16a34a',
|
|
1521
1533
|
};
|
|
1522
1534
|
}
|
|
@@ -1527,8 +1539,15 @@ function colorFromTone(source, lightness, saturationMultiplier = 1, hueShift = 0
|
|
|
1527
1539
|
l: lightness,
|
|
1528
1540
|
});
|
|
1529
1541
|
}
|
|
1530
|
-
function contrastColor(
|
|
1531
|
-
|
|
1542
|
+
function contrastColor(color) {
|
|
1543
|
+
const rgb = parseColor(color);
|
|
1544
|
+
if (!rgb) {
|
|
1545
|
+
return '#ffffff';
|
|
1546
|
+
}
|
|
1547
|
+
const luminance = relativeLuminance(rgb);
|
|
1548
|
+
const contrastWithBlack = (luminance + 0.05) / 0.05;
|
|
1549
|
+
const contrastWithWhite = 1.05 / (luminance + 0.05);
|
|
1550
|
+
return contrastWithBlack >= contrastWithWhite ? '#000000' : '#ffffff';
|
|
1532
1551
|
}
|
|
1533
1552
|
function parseColor(color) {
|
|
1534
1553
|
const value = color.trim().toLowerCase();
|
|
@@ -1682,6 +1701,15 @@ function toHex({ r, g, b }) {
|
|
|
1682
1701
|
function toHexChannel(value) {
|
|
1683
1702
|
return clamp(Math.round(value), 0, 255).toString(16).padStart(2, '0');
|
|
1684
1703
|
}
|
|
1704
|
+
function relativeLuminance({ r, g, b }) {
|
|
1705
|
+
const [red, green, blue] = [r, g, b].map(channel => {
|
|
1706
|
+
const normalized = channel / 255;
|
|
1707
|
+
return normalized <= 0.03928
|
|
1708
|
+
? normalized / 12.92
|
|
1709
|
+
: ((normalized + 0.055) / 1.055) ** 2.4;
|
|
1710
|
+
});
|
|
1711
|
+
return 0.2126 * red + 0.7152 * green + 0.0722 * blue;
|
|
1712
|
+
}
|
|
1685
1713
|
function normalizeHue(hue) {
|
|
1686
1714
|
return ((hue % 360) + 360) % 360;
|
|
1687
1715
|
}
|